From d65df5bd2868b8327eda70acb7f1168394b7506f Mon Sep 17 00:00:00 2001 From: dorley174 Date: Thu, 2 Apr 2026 23:01:08 +0300 Subject: [PATCH 1/2] added lab10 silution --- Vagrantfile | 7 +- ansible/roles/monitoring/defaults/main.yml | 40 +- .../roles/monitoring/files/lab08-metrics.json | 454 ++++++ ansible/roles/monitoring/tasks/main.yml | 44 +- .../templates/docker-compose.yml.j2 | 61 +- ansible/roles/monitoring/templates/env.j2 | 1 + .../templates/grafana-datasource.yml.j2 | 20 +- .../templates/prometheus-config.yml.j2 | 16 + app_python/Dockerfile | 11 +- app_python/README.md | 327 ++-- app_python/app.py | 150 +- app_python/requirements.txt | 3 +- get-docker.sh | 764 ++++++++++ get_helm.sh | 347 +++++ k8s/HELM.md | 1331 +++++++++++++++++ k8s/README.md | 442 ++++++ k8s/collect-evidence.sh | 19 + k8s/common-lib/Chart.yaml | 5 + k8s/common-lib/templates/_helpers.tpl | 56 + k8s/curl_result.txt | 55 + k8s/deploy-bonus.sh | 8 + k8s/deploy.sh | 8 + k8s/deployment-app2.yml | 78 + k8s/deployment.yml | 78 + k8s/devops-info-service-app2/Chart.yaml | 16 + .../charts/common-lib/Chart.yaml | 5 + .../charts/common-lib/templates/_helpers.tpl | 56 + .../templates/NOTES.txt | 10 + .../templates/_helpers.tpl | 26 + .../templates/deployment.yaml | 68 + .../templates/hooks/post-install-job.yaml | 33 + .../templates/hooks/pre-install-job.yaml | 33 + .../templates/service.yaml | 18 + k8s/devops-info-service-app2/values.yaml | 70 + k8s/devops-info-service/Chart.yaml | 15 + .../charts/common-lib/Chart.yaml | 5 + .../charts/common-lib/templates/_helpers.tpl | 56 + k8s/devops-info-service/templates/NOTES.txt | 10 + .../templates/_helpers.tpl | 26 + .../templates/deployment.yaml | 68 + .../templates/hooks/post-install-job.yaml | 33 + .../templates/hooks/pre-install-job.yaml | 33 + .../templates/service.yaml | 18 + k8s/devops-info-service/values-dev.yaml | 27 + k8s/devops-info-service/values-prod.yaml | 27 + k8s/devops-info-service/values.yaml | 70 + k8s/evidence/01-cluster-info.txt | 4 + k8s/evidence/02-get-nodes.txt | 2 + k8s/evidence/03-get-all.txt | 14 + k8s/evidence/04-get-pods-svc.txt | 7 + k8s/evidence/05-describe-deployment.txt | 57 + k8s/evidence/06-rollout-history.txt | 5 + k8s/evidence/07-get-ingress.txt | 0 k8s/evidence/08-events.txt | 38 + k8s/evidence/09-deployment-before.txt | 2 + k8s/evidence/10-pods-before.txt | 4 + k8s/evidence/11-pods-after-scale.txt | 6 + k8s/evidence/12-deployment-after-scale.txt | 2 + .../13-rollout-history-after-update.txt | 5 + k8s/evidence/14-env-after-update.txt | 4 + .../15-rollout-history-after-rollback.txt | 5 + k8s/evidence/16-env-after-rollback.txt | 4 + k8s/evidence/17-health.txt | 1 + k8s/evidence/18-ready.txt | 1 + k8s/evidence/19-root-after-rollback.json | 52 + k8s/ingress.yml | 32 + k8s/namespace.yml | 7 + k8s/service-app2.yml | 18 + k8s/service.yml | 18 + monitoring/.env.example | 3 +- monitoring/docker-compose.yml | 68 +- monitoring/docs/LAB08.md | 522 +++++++ monitoring/docs/LOCAL_VALIDATION_WINDOWS.md | 181 ++- monitoring/docs/evidence/README.md | 11 + monitoring/docs/evidence/app-health.json | 5 + .../docs/evidence/app-metrics-headers.txt | 127 ++ .../docs/evidence/app-metrics-sample.txt | 142 ++ monitoring/docs/evidence/app-root.json | 45 + monitoring/docs/screenshots/README.md | 10 +- .../docs/screenshots/lab08-datasources.png | Bin 0 -> 127116 bytes .../lab08-devops_info_uptime_seconds.png | Bin 0 -> 53971 bytes .../screenshots/lab08-docker-compose-ps.png | Bin 0 -> 31574 bytes .../screenshots/lab08-grafana-dasshboards.png | Bin 0 -> 164361 bytes .../docs/screenshots/lab08-grafana-logs.png | Bin 0 -> 213142 bytes .../screenshots/lab08-http_requests_total.png | Bin 0 -> 62137 bytes .../lab08-prometheus-targets-up.png | Bin 0 -> 90490 bytes ...08-rate(http_requests_total[5m])-query.png | Bin 0 -> 56700 bytes monitoring/docs/screenshots/lab08-up.png | Bin 0 -> 53166 bytes .../grafana/dashboards/lab08-metrics.json | 454 ++++++ .../grafana/provisioning/datasources/loki.yml | 14 + monitoring/prometheus/prometheus.yml | 27 + 91 files changed, 6655 insertions(+), 290 deletions(-) create mode 100644 ansible/roles/monitoring/files/lab08-metrics.json create mode 100644 ansible/roles/monitoring/templates/prometheus-config.yml.j2 create mode 100644 get-docker.sh create mode 100644 get_helm.sh create mode 100644 k8s/HELM.md create mode 100644 k8s/README.md create mode 100644 k8s/collect-evidence.sh create mode 100644 k8s/common-lib/Chart.yaml create mode 100644 k8s/common-lib/templates/_helpers.tpl create mode 100644 k8s/curl_result.txt create mode 100644 k8s/deploy-bonus.sh create mode 100644 k8s/deploy.sh create mode 100644 k8s/deployment-app2.yml create mode 100644 k8s/deployment.yml create mode 100644 k8s/devops-info-service-app2/Chart.yaml create mode 100644 k8s/devops-info-service-app2/charts/common-lib/Chart.yaml create mode 100644 k8s/devops-info-service-app2/charts/common-lib/templates/_helpers.tpl create mode 100644 k8s/devops-info-service-app2/templates/NOTES.txt create mode 100644 k8s/devops-info-service-app2/templates/_helpers.tpl create mode 100644 k8s/devops-info-service-app2/templates/deployment.yaml create mode 100644 k8s/devops-info-service-app2/templates/hooks/post-install-job.yaml create mode 100644 k8s/devops-info-service-app2/templates/hooks/pre-install-job.yaml create mode 100644 k8s/devops-info-service-app2/templates/service.yaml create mode 100644 k8s/devops-info-service-app2/values.yaml create mode 100644 k8s/devops-info-service/Chart.yaml create mode 100644 k8s/devops-info-service/charts/common-lib/Chart.yaml create mode 100644 k8s/devops-info-service/charts/common-lib/templates/_helpers.tpl create mode 100644 k8s/devops-info-service/templates/NOTES.txt create mode 100644 k8s/devops-info-service/templates/_helpers.tpl create mode 100644 k8s/devops-info-service/templates/deployment.yaml create mode 100644 k8s/devops-info-service/templates/hooks/post-install-job.yaml create mode 100644 k8s/devops-info-service/templates/hooks/pre-install-job.yaml create mode 100644 k8s/devops-info-service/templates/service.yaml create mode 100644 k8s/devops-info-service/values-dev.yaml create mode 100644 k8s/devops-info-service/values-prod.yaml create mode 100644 k8s/devops-info-service/values.yaml create mode 100644 k8s/evidence/01-cluster-info.txt create mode 100644 k8s/evidence/02-get-nodes.txt create mode 100644 k8s/evidence/03-get-all.txt create mode 100644 k8s/evidence/04-get-pods-svc.txt create mode 100644 k8s/evidence/05-describe-deployment.txt create mode 100644 k8s/evidence/06-rollout-history.txt create mode 100644 k8s/evidence/07-get-ingress.txt create mode 100644 k8s/evidence/08-events.txt create mode 100644 k8s/evidence/09-deployment-before.txt create mode 100644 k8s/evidence/10-pods-before.txt create mode 100644 k8s/evidence/11-pods-after-scale.txt create mode 100644 k8s/evidence/12-deployment-after-scale.txt create mode 100644 k8s/evidence/13-rollout-history-after-update.txt create mode 100644 k8s/evidence/14-env-after-update.txt create mode 100644 k8s/evidence/15-rollout-history-after-rollback.txt create mode 100644 k8s/evidence/16-env-after-rollback.txt create mode 100644 k8s/evidence/17-health.txt create mode 100644 k8s/evidence/18-ready.txt create mode 100644 k8s/evidence/19-root-after-rollback.json create mode 100644 k8s/ingress.yml create mode 100644 k8s/namespace.yml create mode 100644 k8s/service-app2.yml create mode 100644 k8s/service.yml create mode 100644 monitoring/docs/LAB08.md create mode 100644 monitoring/docs/evidence/README.md create mode 100644 monitoring/docs/evidence/app-health.json create mode 100644 monitoring/docs/evidence/app-metrics-headers.txt create mode 100644 monitoring/docs/evidence/app-metrics-sample.txt create mode 100644 monitoring/docs/evidence/app-root.json create mode 100644 monitoring/docs/screenshots/lab08-datasources.png create mode 100644 monitoring/docs/screenshots/lab08-devops_info_uptime_seconds.png create mode 100644 monitoring/docs/screenshots/lab08-docker-compose-ps.png create mode 100644 monitoring/docs/screenshots/lab08-grafana-dasshboards.png create mode 100644 monitoring/docs/screenshots/lab08-grafana-logs.png create mode 100644 monitoring/docs/screenshots/lab08-http_requests_total.png create mode 100644 monitoring/docs/screenshots/lab08-prometheus-targets-up.png create mode 100644 monitoring/docs/screenshots/lab08-rate(http_requests_total[5m])-query.png create mode 100644 monitoring/docs/screenshots/lab08-up.png create mode 100644 monitoring/grafana/dashboards/lab08-metrics.json create mode 100644 monitoring/prometheus/prometheus.yml diff --git a/Vagrantfile b/Vagrantfile index 99eace0e39..53e2f6e4b0 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,6 +1,6 @@ Vagrant.configure("2") do |config| config.vm.box = "ubuntu/jammy64" - config.vm.hostname = "lab05" + config.vm.hostname = "lab09" # Disable project folder sharing inside the VM. # This avoids common Windows path issues (spaces, Cyrillic characters) @@ -14,11 +14,14 @@ Vagrant.configure("2") do |config| config.vm.network "forwarded_port", guest: 3000, host: 3000, host_ip: "0.0.0.0", id: "grafana", auto_correct: true config.vm.network "forwarded_port", guest: 3100, host: 3100, host_ip: "0.0.0.0", id: "loki", auto_correct: true config.vm.network "forwarded_port", guest: 9080, host: 9080, host_ip: "0.0.0.0", id: "promtail", auto_correct: true + config.vm.network "forwarded_port", guest: 9090, host: 9090, host_ip: "0.0.0.0", id: "prometheus", auto_correct: true + config.vm.network "forwarded_port", guest: 30080, host: 30080, host_ip: "0.0.0.0", id: "k8s-app1", auto_correct: true + config.vm.network "forwarded_port", guest: 30081, host: 30081, host_ip: "0.0.0.0", id: "k8s-app2", auto_correct: true config.ssh.insert_key = true config.vm.provider "virtualbox" do |vb| - vb.name = "lab07-monitoring" + vb.name = "lab09" vb.memory = 3072 vb.cpus = 2 end diff --git a/ansible/roles/monitoring/defaults/main.yml b/ansible/roles/monitoring/defaults/main.yml index 76fb4745d6..2524c6e8fe 100644 --- a/ansible/roles/monitoring/defaults/main.yml +++ b/ansible/roles/monitoring/defaults/main.yml @@ -5,23 +5,31 @@ monitoring_compose_project_name: devops-monitoring monitoring_loki_version: "3.0.0" monitoring_promtail_version: "3.0.0" monitoring_grafana_version: "12.3.1" +monitoring_prometheus_version: "v3.9.0" monitoring_loki_port: 3100 monitoring_promtail_port: 9080 monitoring_grafana_port: 3000 +monitoring_prometheus_port: 9090 monitoring_app_port: 8000 monitoring_app_internal_port: 8000 monitoring_loki_retention_period: "168h" +monitoring_prometheus_retention_days: 15 +monitoring_prometheus_retention_size: "10GB" +monitoring_prometheus_scrape_interval: "15s" + monitoring_grafana_admin_user: admin -monitoring_grafana_admin_password: ChangeMe_Lab07! -monitoring_grafana_datasource_uid: loki -monitoring_grafana_datasource_name: Loki +monitoring_grafana_admin_password: ChangeMe_Lab08! +monitoring_loki_datasource_uid: loki +monitoring_loki_datasource_name: Loki +monitoring_prometheus_datasource_uid: prometheus +monitoring_prometheus_datasource_name: Prometheus monitoring_app_service_name: app-python monitoring_app_container_name: devops-python monitoring_app_label: devops-python -monitoring_app_image: devops-info-service:lab07 +monitoring_app_image: devops-info-service:lab08 monitoring_app_source_dir: "{{ playbook_dir }}/../../app_python" monitoring_app_source_files: - .dockerignore @@ -33,16 +41,36 @@ monitoring_app_env: PORT: "{{ monitoring_app_internal_port | string }}" DEBUG: "false" +monitoring_prometheus_targets: + - job: prometheus + targets: + - localhost:9090 + - job: app + targets: + - "{{ monitoring_app_service_name }}:{{ monitoring_app_internal_port }}" + path: /metrics + - job: loki + targets: + - loki:3100 + path: /metrics + - job: grafana + targets: + - grafana:3000 + path: /metrics + monitoring_resource_limits: loki: limits: { cpus: '1.0', memory: 1G } reservations: { cpus: '0.25', memory: 256M } promtail: - limits: { cpus: '0.75', memory: 512M } + limits: { cpus: '0.5', memory: 512M } reservations: { cpus: '0.10', memory: 128M } grafana: + limits: { cpus: '0.5', memory: 512M } + reservations: { cpus: '0.10', memory: 128M } + prometheus: limits: { cpus: '1.0', memory: 1G } reservations: { cpus: '0.25', memory: 256M } app_python: - limits: { cpus: '0.75', memory: 512M } + limits: { cpus: '0.5', memory: 256M } reservations: { cpus: '0.10', memory: 128M } diff --git a/ansible/roles/monitoring/files/lab08-metrics.json b/ansible/roles/monitoring/files/lab08-metrics.json new file mode 100644 index 0000000000..b05c0fa86a --- /dev/null +++ b/ansible/roles/monitoring/files/lab08-metrics.json @@ -0,0 +1,454 @@ +{ + "id": null, + "uid": "lab08-prometheus-metrics", + "title": "Lab08 - Prometheus Metrics Overview", + "tags": [ + "lab08", + "prometheus", + "metrics", + "observability" + ], + "timezone": "browser", + "schemaVersion": 39, + "version": 1, + "refresh": "10s", + "time": { + "from": "now-30m", + "to": "now" + }, + "panels": [ + { + "id": 1, + "type": "timeseries", + "title": "Request Rate by Endpoint", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "targets": [ + { + "refId": "A", + "expr": "sum by (endpoint) (rate(http_requests_total{endpoint!=\"/metrics\"}[5m]))", + "legendFormat": "{{endpoint}}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + } + }, + { + "id": 2, + "type": "timeseries", + "title": "Error Rate (5xx)", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "targets": [ + { + "refId": "A", + "expr": "sum(rate(http_requests_total{status_code=~\"5..\"}[5m]))", + "legendFormat": "5xx errors/sec", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + } + }, + { + "id": 3, + "type": "timeseries", + "title": "Request Duration p95 by Endpoint", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 8 + }, + "targets": [ + { + "refId": "A", + "expr": "histogram_quantile(0.95, sum by (le, endpoint) (rate(http_request_duration_seconds_bucket{endpoint!=\"/metrics\"}[5m])))", + "legendFormat": "{{endpoint}} p95", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "s" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + } + }, + { + "id": 4, + "type": "stat", + "title": "Active Requests", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 8 + }, + "targets": [ + { + "refId": "A", + "expr": "sum(http_requests_in_progress)", + "legendFormat": "in-flight", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "none", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 5 + }, + { + "color": "red", + "value": 10 + } + ] + } + }, + "overrides": [] + }, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "textMode": "auto" + } + }, + { + "id": 5, + "type": "stat", + "title": "Application Uptime", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 8 + }, + "targets": [ + { + "refId": "A", + "expr": "max(devops_info_uptime_seconds)", + "legendFormat": "uptime", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "s" + }, + "overrides": [] + }, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "textMode": "auto" + } + }, + { + "id": 6, + "type": "heatmap", + "title": "Request Duration Heatmap", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 16 + }, + "targets": [ + { + "refId": "A", + "expr": "sum by (le) (rate(http_request_duration_seconds_bucket{endpoint!=\"/metrics\"}[5m]))", + "legendFormat": "{{le}}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "calculate": false, + "legend": { + "show": false + }, + "tooltip": { + "show": true, + "yHistogram": false + }, + "yAxis": { + "unit": "s" + } + } + }, + { + "id": 7, + "type": "piechart", + "title": "Status Code Distribution", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 16 + }, + "targets": [ + { + "refId": "A", + "expr": "sum by (status_code) (rate(http_requests_total[5m]))", + "legendFormat": "{{status_code}}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "options": { + "legend": { + "displayMode": "list", + "placement": "right" + }, + "pieType": "pie", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + } + } + }, + { + "id": 8, + "type": "stat", + "title": "App Target Uptime", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 25 + }, + "targets": [ + { + "refId": "A", + "expr": "up{job=\"app\"}", + "legendFormat": "app", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "none", + "mappings": [ + { + "type": "value", + "options": { + "0": { + "text": "DOWN" + }, + "1": { + "text": "UP" + } + } + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "textMode": "auto" + } + }, + { + "id": 9, + "type": "timeseries", + "title": "System Info Collection p95", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 7, + "w": 16, + "x": 8, + "y": 25 + }, + "targets": [ + { + "refId": "A", + "expr": "histogram_quantile(0.95, sum by (le) (rate(devops_info_system_collection_seconds_bucket[5m])))", + "legendFormat": "system info p95", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "s" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + } + } + ], + "templating": { + "list": [] + }, + "annotations": { + "list": [] + } +} diff --git a/ansible/roles/monitoring/tasks/main.yml b/ansible/roles/monitoring/tasks/main.yml index a30f1d9812..a0d3f2b674 100644 --- a/ansible/roles/monitoring/tasks/main.yml +++ b/ansible/roles/monitoring/tasks/main.yml @@ -12,6 +12,7 @@ - "{{ monitoring_project_dir }}" - "{{ monitoring_project_dir }}/loki" - "{{ monitoring_project_dir }}/promtail" + - "{{ monitoring_project_dir }}/prometheus" - "{{ monitoring_project_dir }}/grafana" - "{{ monitoring_project_dir }}/grafana/provisioning" - "{{ monitoring_project_dir }}/grafana/provisioning/datasources" @@ -36,7 +37,7 @@ group: root mode: "0600" - - name: Template monitoring stack files + - name: Template monitoring stack configuration files ansible.builtin.template: src: "{{ item.src }}" dest: "{{ monitoring_project_dir }}/{{ item.dest }}" @@ -47,10 +48,19 @@ - { src: 'docker-compose.yml.j2', dest: 'docker-compose.yml' } - { src: 'loki-config.yml.j2', dest: 'loki/config.yml' } - { src: 'promtail-config.yml.j2', dest: 'promtail/config.yml' } + - { src: 'prometheus-config.yml.j2', dest: 'prometheus/prometheus.yml' } - { src: 'grafana-datasource.yml.j2', dest: 'grafana/provisioning/datasources/loki.yml' } - { src: 'grafana-dashboard-provider.yml.j2', dest: 'grafana/provisioning/dashboards/dashboard-provider.yml' } - { src: 'grafana-dashboard.json.j2', dest: 'grafana/dashboards/lab07-logging.json' } + - name: Copy Lab08 Grafana metrics dashboard + ansible.builtin.copy: + src: lab08-metrics.json + dest: "{{ monitoring_project_dir }}/grafana/dashboards/lab08-metrics.json" + owner: root + group: root + mode: "0644" + - name: Deploy monitoring stack with Docker Compose v2 community.docker.docker_compose_v2: project_src: "{{ monitoring_project_dir }}" @@ -70,6 +80,16 @@ delay: 3 until: loki_ready.status == 200 + - name: Wait for Prometheus to become healthy + ansible.builtin.uri: + url: "http://127.0.0.1:{{ monitoring_prometheus_port }}/-/healthy" + method: GET + status_code: 200 + register: prometheus_ready + retries: 20 + delay: 3 + until: prometheus_ready.status == 200 + - name: Wait for Grafana API health endpoint ansible.builtin.uri: url: "http://127.0.0.1:{{ monitoring_grafana_port }}/api/health" @@ -93,14 +113,32 @@ delay: 3 until: monitoring_app_health.status == 200 - - name: Verify Loki data source was provisioned + - name: Wait for monitored application metrics endpoint ansible.builtin.uri: - url: "http://127.0.0.1:{{ monitoring_grafana_port }}/api/datasources/uid/{{ monitoring_grafana_datasource_uid }}" + url: "http://127.0.0.1:{{ monitoring_app_port }}/metrics" + method: GET + status_code: 200 + return_content: true + register: monitoring_app_metrics + retries: 20 + delay: 3 + until: + - monitoring_app_metrics.status == 200 + - "'http_requests_total' in monitoring_app_metrics.content" + + - name: Verify provisioned Grafana data sources + ansible.builtin.uri: + url: "http://127.0.0.1:{{ monitoring_grafana_port }}/api/datasources/uid/{{ item.uid }}" method: GET user: "{{ monitoring_grafana_admin_user }}" password: "{{ monitoring_grafana_admin_password }}" force_basic_auth: true status_code: 200 + loop: + - { name: '{{ monitoring_loki_datasource_name }}', uid: '{{ monitoring_loki_datasource_uid }}' } + - { name: '{{ monitoring_prometheus_datasource_name }}', uid: '{{ monitoring_prometheus_datasource_uid }}' } + loop_control: + label: "{{ item.name }}" rescue: - name: Monitoring deployment failure hint diff --git a/ansible/roles/monitoring/templates/docker-compose.yml.j2 b/ansible/roles/monitoring/templates/docker-compose.yml.j2 index 52f249fbf9..972a969a60 100644 --- a/ansible/roles/monitoring/templates/docker-compose.yml.j2 +++ b/ansible/roles/monitoring/templates/docker-compose.yml.j2 @@ -19,9 +19,9 @@ services: restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3100/ready"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 20s deploy: resources: @@ -55,9 +55,9 @@ services: condition: service_healthy healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:9080/ready"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 20s deploy: resources: @@ -77,7 +77,9 @@ services: GF_SECURITY_ADMIN_USER: "${GRAFANA_ADMIN_USER:-{{ monitoring_grafana_admin_user }}}" GF_SECURITY_ADMIN_PASSWORD: "${GRAFANA_ADMIN_PASSWORD}" GF_AUTH_ANONYMOUS_ENABLED: "false" + GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer GF_SECURITY_ALLOW_EMBEDDING: "false" + GF_METRICS_ENABLED: "true" ports: - "{{ monitoring_grafana_port }}:3000" volumes: @@ -95,9 +97,9 @@ services: condition: service_healthy healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/api/health"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 30s deploy: resources: @@ -108,6 +110,48 @@ services: cpus: "{{ monitoring_resource_limits.grafana.reservations.cpus }}" memory: {{ monitoring_resource_limits.grafana.reservations.memory }} + prometheus: + image: prom/prometheus:{{ monitoring_prometheus_version }} + container_name: devops-prometheus + command: + - --config.file=/etc/prometheus/prometheus.yml + - --storage.tsdb.path=/prometheus + - --storage.tsdb.retention.time={{ monitoring_prometheus_retention_days }}d + - --storage.tsdb.retention.size={{ monitoring_prometheus_retention_size }} + - --web.enable-lifecycle + ports: + - "{{ monitoring_prometheus_port }}:9090" + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro + - prometheus-data:/prometheus + networks: + - logging + labels: + logging: "promtail" + app: "devops-prometheus" + restart: unless-stopped + depends_on: + loki: + condition: service_healthy + grafana: + condition: service_healthy + {{ monitoring_app_service_name }}: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:9090/-/healthy"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 20s + deploy: + resources: + limits: + cpus: "{{ monitoring_resource_limits.prometheus.limits.cpus }}" + memory: {{ monitoring_resource_limits.prometheus.limits.memory }} + reservations: + cpus: "{{ monitoring_resource_limits.prometheus.reservations.cpus }}" + memory: {{ monitoring_resource_limits.prometheus.reservations.memory }} + {{ monitoring_app_service_name }}: build: context: ./app-python @@ -128,9 +172,9 @@ services: restart: unless-stopped healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:{{ monitoring_app_internal_port }}/health')"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 20s deploy: resources: @@ -149,3 +193,4 @@ volumes: loki-data: grafana-data: promtail-data: + prometheus-data: diff --git a/ansible/roles/monitoring/templates/env.j2 b/ansible/roles/monitoring/templates/env.j2 index 6afa6c1271..c922f823ea 100644 --- a/ansible/roles/monitoring/templates/env.j2 +++ b/ansible/roles/monitoring/templates/env.j2 @@ -3,4 +3,5 @@ GRAFANA_ADMIN_PASSWORD={{ monitoring_grafana_admin_password }} GRAFANA_PORT={{ monitoring_grafana_port }} LOKI_PORT={{ monitoring_loki_port }} PROMTAIL_PORT={{ monitoring_promtail_port }} +PROMETHEUS_PORT={{ monitoring_prometheus_port }} APP_PORT={{ monitoring_app_port }} diff --git a/ansible/roles/monitoring/templates/grafana-datasource.yml.j2 b/ansible/roles/monitoring/templates/grafana-datasource.yml.j2 index f607bfadda..a19cd5ec5c 100644 --- a/ansible/roles/monitoring/templates/grafana-datasource.yml.j2 +++ b/ansible/roles/monitoring/templates/grafana-datasource.yml.j2 @@ -1,14 +1,16 @@ apiVersion: 1 deleteDatasources: - - name: {{ monitoring_grafana_datasource_name }} + - name: {{ monitoring_loki_datasource_name }} + orgId: 1 + - name: {{ monitoring_prometheus_datasource_name }} orgId: 1 prune: true datasources: - - name: {{ monitoring_grafana_datasource_name }} - uid: {{ monitoring_grafana_datasource_uid }} + - name: {{ monitoring_loki_datasource_name }} + uid: {{ monitoring_loki_datasource_uid }} type: loki access: proxy url: http://loki:3100 @@ -17,3 +19,15 @@ datasources: jsonData: maxLines: 1000 timeout: 60 + + - name: {{ monitoring_prometheus_datasource_name }} + uid: {{ monitoring_prometheus_datasource_uid }} + type: prometheus + access: proxy + url: http://prometheus:9090 + isDefault: false + editable: false + jsonData: + httpMethod: POST + prometheusType: Prometheus + timeInterval: {{ monitoring_prometheus_scrape_interval }} diff --git a/ansible/roles/monitoring/templates/prometheus-config.yml.j2 b/ansible/roles/monitoring/templates/prometheus-config.yml.j2 new file mode 100644 index 0000000000..f3ffd4378e --- /dev/null +++ b/ansible/roles/monitoring/templates/prometheus-config.yml.j2 @@ -0,0 +1,16 @@ +global: + scrape_interval: {{ monitoring_prometheus_scrape_interval }} + evaluation_interval: {{ monitoring_prometheus_scrape_interval }} + +scrape_configs: +{% for target in monitoring_prometheus_targets %} + - job_name: {{ target.job | quote }} +{% if target.path is defined %} + metrics_path: {{ target.path | quote }} +{% endif %} + static_configs: + - targets: +{% for endpoint in target.targets %} + - {{ endpoint | quote }} +{% endfor %} +{% endfor %} diff --git a/app_python/Dockerfile b/app_python/Dockerfile index 2ca732ad78..7548f6608b 100644 --- a/app_python/Dockerfile +++ b/app_python/Dockerfile @@ -1,4 +1,3 @@ - # Production-oriented image for a small Flask app. # Pin a specific Python version for reproducible builds. FROM python:3.13.1-slim @@ -9,9 +8,9 @@ ENV PYTHONDONTWRITEBYTECODE=1 \ WORKDIR /app -# Create a dedicated non-root user (mandatory best practice). -RUN addgroup --system app \ - && adduser --system --ingroup app --no-create-home app +# Create a dedicated non-root user with numeric UID/GID. +RUN addgroup --system --gid 10001 app \ + && adduser --system --uid 10001 --ingroup app --no-create-home app # Install dependencies first to leverage Docker layer caching. COPY requirements.txt ./ @@ -20,8 +19,8 @@ RUN pip install --no-cache-dir -r requirements.txt # Copy only the application code needed at runtime. COPY app.py ./ -# Drop privileges -USER app +# Drop privileges using a numeric user for Kubernetes runAsNonRoot validation. +USER 10001:10001 # Document the port (Flask defaults to 5000 in this repo) EXPOSE 5000 diff --git a/app_python/README.md b/app_python/README.md index 48cffa6caa..d418c0fd0e 100644 --- a/app_python/README.md +++ b/app_python/README.md @@ -1,159 +1,168 @@ -# DevOps Info Service - -[![python-ci](https://github.com/dorley174/DevOps-Core-Course/actions/workflows/python-ci.yml/badge.svg)](https://github.com/dorley174/DevOps-Core-Course/actions/workflows/python-ci.yml) - -## Overview -DevOps Info Service is a production-ready starter web service for the DevOps course. -It reports service metadata, runtime details, and basic system information. - -The service exposes two endpoints: -- `GET /` — service + system + runtime + request information -- `GET /health` — health check endpoint (used later for Kubernetes probes) - -## Prerequisites -- Python **3.11+** -- `pip` -- (Recommended) Virtual environment (`venv`) -- **Windows:** Python Launcher `py` is recommended - -## Installation - -```bash -python -m venv venv -# Windows: .\venv\Scripts\activate -# Linux/macOS: source venv/bin/activate - -pip install -r requirements.txt -``` - -## Running the Application - -### Default run (port 5000) -> If `PORT` is not set, the application runs on **0.0.0.0:5000**. -```bash -python app.py -``` - -### Custom configuration - -**Linux/Mac:** -```bash -HOST=127.0.0.1 PORT=8080 DEBUG=True python app.py -``` - -**Windows (PowerShell):** -```powershell -$env:HOST="127.0.0.1" -$env:PORT="8080" -$env:DEBUG="True" -python app.py -``` - -**Windows (CMD):** -```bat -set HOST=127.0.0.1 -set PORT=8080 -set DEBUG=True -python app.py -``` - -## API Endpoints - -### `GET /` -Returns service metadata, system information, runtime details, request info, and a list of available endpoints. - -Example: -```bash -curl http://127.0.0.1:5000/ -``` - -### `GET /health` -Returns a minimal health response for monitoring. - -Example (includes HTTP status): -```bash -curl -i http://127.0.0.1:5000/health -``` - -## Testing / Pretty Output - -### Pretty-printed JSON -**Windows PowerShell tip:** use `curl.exe`. -```bash -curl -s http://127.0.0.1:5000/ | python -m json.tool -``` - -## Testing & Linting (LAB03) - -> Dev dependencies live in `requirements-dev.txt` (pytest, coverage, ruff). - -Install dev deps: -```bash -pip install -r requirements-dev.txt -``` - -Run linter: -```bash -ruff check . -``` - -Run tests + coverage: -```bash -pytest -q tests --cov=. --cov-report=term-missing -``` - -## CI/CD Secrets (GitHub Actions) - -In your GitHub repository: -**Settings → Secrets and variables → Actions → New repository secret** - -Add: -- `DOCKERHUB_USERNAME` — your Docker Hub username -- `DOCKERHUB_TOKEN` — Docker Hub Access Token (Account Settings → Security) -- `SNYK_TOKEN` — Snyk API token (Account settings → API token) - -## Configuration - -| Variable | Default | Description | -|----------|---------|-------------| -| HOST | 0.0.0.0 | Bind address | -| PORT | 5000 | HTTP port | -| DEBUG | False | Flask debug mode | - ---- - -## Docker - -> Examples below use placeholders like `` and ``. - -### Build (local) - -```bash -docker build -t : . -``` - -### Run - -```bash -docker run --rm -p 5000:5000 : -``` - -(Optional: override env vars) - -```bash -docker run --rm -p 5000:5000 -e PORT=5000 -e DEBUG=false : -``` - -### Pull from Docker Hub - -```bash -docker pull /: -docker run --rm -p 5000:5000 /: -``` - -### Quick test - -```bash -curl http://localhost:5000/health -curl http://localhost:5000/ -``` +# DevOps Info Service + +[![python-ci](https://github.com/dorley174/DevOps-Core-Course/actions/workflows/python-ci.yml/badge.svg)](https://github.com/dorley174/DevOps-Core-Course/actions/workflows/python-ci.yml) + +## Overview +DevOps Info Service is a production-ready starter web service for the DevOps course. +It reports service metadata, runtime details, and basic system information. + +The service exposes two endpoints: +- `GET /` — service + system + runtime + request information +- `GET /health` — liveness health endpoint +- `GET /ready` — readiness health endpoint for Kubernetes + +## Prerequisites +- Python **3.11+** +- `pip` +- (Recommended) Virtual environment (`venv`) +- **Windows:** Python Launcher `py` is recommended + +## Installation + +```bash +python -m venv venv +# Windows: .\venv\Scripts\activate +# Linux/macOS: source venv/bin/activate + +pip install -r requirements.txt +``` + +## Running the Application + +### Default run (port 5000) +> If `PORT` is not set, the application runs on **0.0.0.0:5000**. +```bash +python app.py +``` + +### Custom configuration + +**Linux/Mac:** +```bash +HOST=127.0.0.1 PORT=8080 DEBUG=True python app.py +``` + +**Windows (PowerShell):** +```powershell +$env:HOST="127.0.0.1" +$env:PORT="8080" +$env:DEBUG="True" +python app.py +``` + +**Windows (CMD):** +```bat +set HOST=127.0.0.1 +set PORT=8080 +set DEBUG=True +python app.py +``` + +## API Endpoints + +### `GET /` +Returns service metadata, system information, runtime details, request info, and a list of available endpoints. + +Example: +```bash +curl http://127.0.0.1:5000/ +``` + +### `GET /health` +Returns a minimal liveness response for monitoring and Kubernetes liveness probes. + +Example (includes HTTP status): +```bash +curl -i http://127.0.0.1:5000/health +``` + +### `GET /ready` +Returns readiness information for Kubernetes readiness probes. + +Example: +```bash +curl -i http://127.0.0.1:5000/ready +``` + +## Testing / Pretty Output + +### Pretty-printed JSON +**Windows PowerShell tip:** use `curl.exe`. +```bash +curl -s http://127.0.0.1:5000/ | python -m json.tool +``` + +## Testing & Linting (LAB03) + +> Dev dependencies live in `requirements-dev.txt` (pytest, coverage, ruff). + +Install dev deps: +```bash +pip install -r requirements-dev.txt +``` + +Run linter: +```bash +ruff check . +``` + +Run tests + coverage: +```bash +pytest -q tests --cov=. --cov-report=term-missing +``` + +## CI/CD Secrets (GitHub Actions) + +In your GitHub repository: +**Settings → Secrets and variables → Actions → New repository secret** + +Add: +- `DOCKERHUB_USERNAME` — your Docker Hub username +- `DOCKERHUB_TOKEN` — Docker Hub Access Token (Account Settings → Security) +- `SNYK_TOKEN` — Snyk API token (Account settings → API token) + +## Configuration + +| Variable | Default | Description | +|----------|---------|-------------| +| HOST | 0.0.0.0 | Bind address | +| PORT | 5000 | HTTP port | +| DEBUG | False | Flask debug mode | + +--- + +## Docker + +> Examples below use placeholders like `` and ``. + +### Build (local) + +```bash +docker build -t : . +``` + +### Run + +```bash +docker run --rm -p 5000:5000 : +``` + +(Optional: override env vars) + +```bash +docker run --rm -p 5000:5000 -e PORT=5000 -e DEBUG=false : +``` + +### Pull from Docker Hub + +```bash +docker pull /: +docker run --rm -p 5000:5000 /: +``` + +### Quick test + +```bash +curl http://localhost:5000/health +curl http://localhost:5000/ +``` diff --git a/app_python/app.py b/app_python/app.py index ddca2ada41..36e505df46 100644 --- a/app_python/app.py +++ b/app_python/app.py @@ -5,6 +5,7 @@ Endpoints: - GET / : service + system + runtime + request info - GET /health : health check (for probes/monitoring) +- GET /metrics : Prometheus metrics endpoint """ from __future__ import annotations @@ -19,7 +20,8 @@ from datetime import datetime, timezone from typing import Any, Dict -from flask import Flask, g, jsonify, request +from flask import Flask, Response, g, jsonify, request +from prometheus_client import CONTENT_TYPE_LATEST, Counter, Gauge, Histogram, generate_latest # ----------------------------------------------------------------------------- # App & Config @@ -31,14 +33,54 @@ PORT: int = int(os.getenv("PORT", "5000")) DEBUG: bool = os.getenv("DEBUG", "False").strip().lower() == "true" -SERVICE_NAME = "devops-info-service" -SERVICE_VERSION = "1.1.0" -SERVICE_DESCRIPTION = "DevOps course info service" +SERVICE_NAME = os.getenv("SERVICE_NAME", "devops-info-service") +SERVICE_VERSION = os.getenv("SERVICE_VERSION", "1.1.0") +SERVICE_DESCRIPTION = os.getenv("SERVICE_DESCRIPTION", "DevOps course info service") SERVICE_FRAMEWORK = "Flask" +APP_VARIANT = os.getenv("APP_VARIANT", "primary") +APP_MESSAGE = os.getenv("APP_MESSAGE", "running") START_TIME_UTC = datetime.now(timezone.utc) +# ----------------------------------------------------------------------------- +# Prometheus metrics +# ----------------------------------------------------------------------------- + +HTTP_REQUESTS_TOTAL = Counter( + "http_requests_total", + "Total HTTP requests processed by the service.", + ["method", "endpoint", "status_code"], +) + +HTTP_REQUEST_DURATION_SECONDS = Histogram( + "http_request_duration_seconds", + "HTTP request duration in seconds.", + ["method", "endpoint"], +) + +HTTP_REQUESTS_IN_PROGRESS = Gauge( + "http_requests_in_progress", + "HTTP requests currently being processed.", +) + +DEVOPS_INFO_ENDPOINT_CALLS_TOTAL = Counter( + "devops_info_endpoint_calls_total", + "Total endpoint calls for the DevOps info service.", + ["endpoint"], +) + +DEVOPS_INFO_SYSTEM_COLLECTION_SECONDS = Histogram( + "devops_info_system_collection_seconds", + "Time spent collecting system information.", +) + +DEVOPS_INFO_UPTIME_SECONDS = Gauge( + "devops_info_uptime_seconds", + "Current service uptime in seconds.", +) + + # ----------------------------------------------------------------------------- # Logging # ----------------------------------------------------------------------------- @@ -122,9 +164,31 @@ def get_client_ip() -> str: return request.remote_addr or "unknown" +def normalize_endpoint() -> str: + """ + Keep endpoint labels low-cardinality for Prometheus. + Uses the Flask route template when available and groups unknown paths. + """ + if request.url_rule and request.url_rule.rule: + return request.url_rule.rule + + if request.path == "/": + return "/" + + return "unmatched" + + @app.before_request def log_request_started() -> None: g.request_started_at = time.perf_counter() + g.normalized_endpoint = normalize_endpoint() + g.skip_http_metrics = request.path == "/metrics" + g.active_request_metric_registered = False + + if not g.skip_http_metrics: + HTTP_REQUESTS_IN_PROGRESS.inc() + g.active_request_metric_registered = True + logger.debug( "request_started", extra={ @@ -139,11 +203,36 @@ def log_request_started() -> None: ) +@app.teardown_request +def track_request_finished(_error: Exception | None) -> None: + if getattr(g, "active_request_metric_registered", False): + HTTP_REQUESTS_IN_PROGRESS.dec() + g.active_request_metric_registered = False + + @app.after_request def add_headers(response): - response.headers["Content-Type"] = "application/json; charset=utf-8" + endpoint = getattr(g, "normalized_endpoint", normalize_endpoint()) + duration_seconds = time.perf_counter() - getattr(g, "request_started_at", time.perf_counter()) + duration_ms = round(duration_seconds * 1000, 2) + + if not getattr(g, "skip_http_metrics", False): + HTTP_REQUESTS_TOTAL.labels( + method=request.method, + endpoint=endpoint, + status_code=str(response.status_code), + ).inc() + HTTP_REQUEST_DURATION_SECONDS.labels( + method=request.method, + endpoint=endpoint, + ).observe(duration_seconds) + DEVOPS_INFO_ENDPOINT_CALLS_TOTAL.labels(endpoint=endpoint).inc() + + DEVOPS_INFO_UPTIME_SECONDS.set(get_uptime()["seconds"]) + + if response.mimetype == "application/json": + response.headers["Content-Type"] = "application/json; charset=utf-8" - duration_ms = round((time.perf_counter() - getattr(g, "request_started_at", time.perf_counter())) * 1000, 2) logger.info( "request_completed", extra={ @@ -185,21 +274,27 @@ def get_uptime() -> Dict[str, Any]: def get_system_info() -> Dict[str, Any]: """Collect system information using Python standard library.""" - return { - "hostname": socket.gethostname(), - "platform": platform.system(), - "platform_version": platform.platform(), - "architecture": platform.machine(), - "cpu_count": os.cpu_count() or 0, - "python_version": platform.python_version(), - } + started_at = time.perf_counter() + try: + return { + "hostname": socket.gethostname(), + "platform": platform.system(), + "platform_version": platform.platform(), + "architecture": platform.machine(), + "cpu_count": os.cpu_count() or 0, + "python_version": platform.python_version(), + } + finally: + DEVOPS_INFO_SYSTEM_COLLECTION_SECONDS.observe(time.perf_counter() - started_at) def build_endpoints() -> list[Dict[str, str]]: return [ {"path": "/", "method": "GET", "description": "Service information"}, - {"path": "/health", "method": "GET", "description": "Health check"}, + {"path": "/health", "method": "GET", "description": "Liveness health check"}, + {"path": "/ready", "method": "GET", "description": "Readiness health check"}, + {"path": "/metrics", "method": "GET", "description": "Prometheus metrics"}, ] @@ -218,6 +313,8 @@ def index(): "version": SERVICE_VERSION, "description": SERVICE_DESCRIPTION, "framework": SERVICE_FRAMEWORK, + "variant": APP_VARIANT, + "message": APP_MESSAGE, }, "system": get_system_info(), "runtime": { @@ -247,10 +344,33 @@ def health(): "status": "healthy", "timestamp": iso_utc_now_z(), "uptime_seconds": uptime["seconds"], + "variant": APP_VARIANT, } ), 200 +@app.get("/ready") +def ready(): + """Readiness endpoint used by Kubernetes readiness probes.""" + uptime = get_uptime() + return jsonify( + { + "status": "ready", + "timestamp": iso_utc_now_z(), + "uptime_seconds": uptime["seconds"], + "variant": APP_VARIANT, + "message": APP_MESSAGE, + } + ), 200 + + +@app.get("/metrics") +def metrics() -> Response: + """Expose Prometheus metrics for scraping.""" + DEVOPS_INFO_UPTIME_SECONDS.set(get_uptime()["seconds"]) + return Response(generate_latest(), content_type=CONTENT_TYPE_LATEST) + + # ----------------------------------------------------------------------------- # Error Handlers # ----------------------------------------------------------------------------- diff --git a/app_python/requirements.txt b/app_python/requirements.txt index 78180a1ad1..46c776bf8d 100644 --- a/app_python/requirements.txt +++ b/app_python/requirements.txt @@ -1 +1,2 @@ -Flask==3.1.0 \ No newline at end of file +Flask==3.1.0 +prometheus-client==0.23.1 diff --git a/get-docker.sh b/get-docker.sh new file mode 100644 index 0000000000..9a7bddb001 --- /dev/null +++ b/get-docker.sh @@ -0,0 +1,764 @@ +#!/bin/sh +set -e +# Docker Engine for Linux installation script. +# +# This script is intended as a convenient way to configure docker's package +# repositories and to install Docker Engine, This script is not recommended +# for production environments. Before running this script, make yourself familiar +# with potential risks and limitations, and refer to the installation manual +# at https://docs.docker.com/engine/install/ for alternative installation methods. +# +# The script: +# +# - Requires `root` or `sudo` privileges to run. +# - Attempts to detect your Linux distribution and version and configure your +# package management system for you. +# - Doesn't allow you to customize most installation parameters. +# - Installs dependencies and recommendations without asking for confirmation. +# - Installs the latest stable release (by default) of Docker CLI, Docker Engine, +# Docker Buildx, Docker Compose, containerd, and runc. When using this script +# to provision a machine, this may result in unexpected major version upgrades +# of these packages. Always test upgrades in a test environment before +# deploying to your production systems. +# - Isn't designed to upgrade an existing Docker installation. When using the +# script to update an existing installation, dependencies may not be updated +# to the expected version, resulting in outdated versions. +# +# Source code is available at https://github.com/docker/docker-install/ +# +# Usage +# ============================================================================== +# +# To install the latest stable versions of Docker CLI, Docker Engine, and their +# dependencies: +# +# 1. download the script +# +# $ curl -fsSL https://get.docker.com -o install-docker.sh +# +# 2. verify the script's content +# +# $ cat install-docker.sh +# +# 3. run the script with --dry-run to verify the steps it executes +# +# $ sh install-docker.sh --dry-run +# +# 4. run the script either as root, or using sudo to perform the installation. +# +# $ sudo sh install-docker.sh +# +# Command-line options +# ============================================================================== +# +# --version +# Use the --version option to install a specific version, for example: +# +# $ sudo sh install-docker.sh --version 23.0 +# +# --channel +# +# Use the --channel option to install from an alternative installation channel. +# The following example installs the latest versions from the "test" channel, +# which includes pre-releases (alpha, beta, rc): +# +# $ sudo sh install-docker.sh --channel test +# +# Alternatively, use the script at https://test.docker.com, which uses the test +# channel as default. +# +# --mirror +# +# Use the --mirror option to install from a mirror supported by this script. +# Available mirrors are "Aliyun" (https://mirrors.aliyun.com/docker-ce), and +# "AzureChinaCloud" (https://mirror.azure.cn/docker-ce), for example: +# +# $ sudo sh install-docker.sh --mirror AzureChinaCloud +# +# --setup-repo +# +# Use the --setup-repo option to configure Docker's package repositories without +# installing Docker packages. This is useful when you want to add the repository +# but install packages separately: +# +# $ sudo sh install-docker.sh --setup-repo +# +# Automatic Service Start +# +# By default, this script automatically starts the Docker daemon and enables the docker +# service after installation if systemd is used as init. +# +# If you prefer to start the service manually, use the --no-autostart option: +# +# $ sudo sh install-docker.sh --no-autostart +# +# Note: Starting the service requires appropriate privileges to manage system services. +# +# ============================================================================== + + +# Git commit from https://github.com/docker/docker-install when +# the script was uploaded (Should only be modified by upload job): +SCRIPT_COMMIT_SHA="f381ee68b32e515bb4dc034b339266aff1fbc460" + +# strip "v" prefix if present +VERSION="${VERSION#v}" + +# The channel to install from: +# * stable +# * test +DEFAULT_CHANNEL_VALUE="stable" +if [ -z "$CHANNEL" ]; then + CHANNEL=$DEFAULT_CHANNEL_VALUE +fi + +DEFAULT_DOWNLOAD_URL="https://download.docker.com" +if [ -z "$DOWNLOAD_URL" ]; then + DOWNLOAD_URL=$DEFAULT_DOWNLOAD_URL +fi + +DEFAULT_REPO_FILE="docker-ce.repo" +if [ -z "$REPO_FILE" ]; then + REPO_FILE="$DEFAULT_REPO_FILE" + # Automatically default to a staging repo fora + # a staging download url (download-stage.docker.com) + case "$DOWNLOAD_URL" in + *-stage*) REPO_FILE="docker-ce-staging.repo";; + esac +fi + +mirror='' +DRY_RUN=${DRY_RUN:-} +REPO_ONLY=${REPO_ONLY:-0} +NO_AUTOSTART=${NO_AUTOSTART:-0} +while [ $# -gt 0 ]; do + case "$1" in + --channel) + CHANNEL="$2" + shift + ;; + --dry-run) + DRY_RUN=1 + ;; + --mirror) + mirror="$2" + shift + ;; + --version) + VERSION="${2#v}" + shift + ;; + --setup-repo) + REPO_ONLY=1 + shift + ;; + --no-autostart) + NO_AUTOSTART=1 + ;; + --*) + echo "Illegal option $1" + ;; + esac + shift $(( $# > 0 ? 1 : 0 )) +done + +case "$mirror" in + Aliyun) + DOWNLOAD_URL="https://mirrors.aliyun.com/docker-ce" + ;; + AzureChinaCloud) + DOWNLOAD_URL="https://mirror.azure.cn/docker-ce" + ;; + "") + ;; + *) + >&2 echo "unknown mirror '$mirror': use either 'Aliyun', or 'AzureChinaCloud'." + exit 1 + ;; +esac + +case "$CHANNEL" in + stable|test) + ;; + *) + >&2 echo "unknown CHANNEL '$CHANNEL': use either stable or test." + exit 1 + ;; +esac + +command_exists() { + command -v "$@" > /dev/null 2>&1 +} + +# version_gte checks if the version specified in $VERSION is at least the given +# SemVer (Maj.Minor[.Patch]), or CalVer (YY.MM) version.It returns 0 (success) +# if $VERSION is either unset (=latest) or newer or equal than the specified +# version, or returns 1 (fail) otherwise. +# +# examples: +# +# VERSION=23.0 +# version_gte 23.0 // 0 (success) +# version_gte 20.10 // 0 (success) +# version_gte 19.03 // 0 (success) +# version_gte 26.1 // 1 (fail) +version_gte() { + if [ -z "$VERSION" ]; then + return 0 + fi + version_compare "$VERSION" "$1" +} + +# version_compare compares two version strings (either SemVer (Major.Minor.Path), +# or CalVer (YY.MM) version strings. It returns 0 (success) if version A is newer +# or equal than version B, or 1 (fail) otherwise. Patch releases and pre-release +# (-alpha/-beta) are not taken into account +# +# examples: +# +# version_compare 23.0.0 20.10 // 0 (success) +# version_compare 23.0 20.10 // 0 (success) +# version_compare 20.10 19.03 // 0 (success) +# version_compare 20.10 20.10 // 0 (success) +# version_compare 19.03 20.10 // 1 (fail) +version_compare() ( + set +x + + yy_a="$(echo "$1" | cut -d'.' -f1)" + yy_b="$(echo "$2" | cut -d'.' -f1)" + if [ "$yy_a" -lt "$yy_b" ]; then + return 1 + fi + if [ "$yy_a" -gt "$yy_b" ]; then + return 0 + fi + mm_a="$(echo "$1" | cut -d'.' -f2)" + mm_b="$(echo "$2" | cut -d'.' -f2)" + + # trim leading zeros to accommodate CalVer + mm_a="${mm_a#0}" + mm_b="${mm_b#0}" + + if [ "${mm_a:-0}" -lt "${mm_b:-0}" ]; then + return 1 + fi + + return 0 +) + +is_dry_run() { + if [ -z "$DRY_RUN" ]; then + return 1 + else + return 0 + fi +} + +is_wsl() { + case "$(uname -r)" in + *microsoft* ) true ;; # WSL 2 + *Microsoft* ) true ;; # WSL 1 + * ) false;; + esac +} + +is_darwin() { + case "$(uname -s)" in + *darwin* ) true ;; + *Darwin* ) true ;; + * ) false;; + esac +} + +deprecation_notice() { + distro=$1 + distro_version=$2 + echo + printf "\033[91;1mDEPRECATION WARNING\033[0m\n" + printf " This Linux distribution (\033[1m%s %s\033[0m) reached end-of-life and is no longer supported by this script.\n" "$distro" "$distro_version" + echo " No updates or security fixes will be released for this distribution, and users are recommended" + echo " to upgrade to a currently maintained version of $distro." + echo + printf "Press \033[1mCtrl+C\033[0m now to abort this script, or wait for the installation to continue." + echo + sleep 10 +} + +get_distribution() { + lsb_dist="" + # Every system that we officially support has /etc/os-release + if [ -r /etc/os-release ]; then + lsb_dist="$(. /etc/os-release && echo "$ID")" + fi + # Returning an empty string here should be alright since the + # case statements don't act unless you provide an actual value + echo "$lsb_dist" +} + +start_docker_daemon() { + # Use systemctl if available (for systemd-based systems) + if command_exists systemctl; then + is_dry_run || >&2 echo "Using systemd to manage Docker service" + if ( + is_dry_run || set -x + $sh_c systemctl enable --now docker.service 2>/dev/null + ); then + is_dry_run || echo "INFO: Docker daemon enabled and started" >&2 + else + is_dry_run || echo "WARNING: unable to enable the docker service" >&2 + fi + else + # No service management available (container environment) + if ! is_dry_run; then + >&2 echo "Note: Running in a container environment without service management" + >&2 echo "Docker daemon cannot be started automatically in this environment" + >&2 echo "The Docker packages have been installed successfully" + fi + fi + >&2 echo +} + +echo_docker_as_nonroot() { + if is_dry_run; then + return + fi + if command_exists docker && [ -e /var/run/docker.sock ]; then + ( + set -x + $sh_c 'docker version' + ) || true + fi + + # intentionally mixed spaces and tabs here -- tabs are stripped by "<<-EOF", spaces are kept in the output + echo + echo "================================================================================" + echo + if version_gte "20.10"; then + echo "To run Docker as a non-privileged user, consider setting up the" + echo "Docker daemon in rootless mode for your user:" + echo + echo " dockerd-rootless-setuptool.sh install" + echo + echo "Visit https://docs.docker.com/go/rootless/ to learn about rootless mode." + echo + fi + echo + echo "To run the Docker daemon as a fully privileged service, but granting non-root" + echo "users access, refer to https://docs.docker.com/go/daemon-access/" + echo + echo "WARNING: Access to the remote API on a privileged Docker daemon is equivalent" + echo " to root access on the host. Refer to the 'Docker daemon attack surface'" + echo " documentation for details: https://docs.docker.com/go/attack-surface/" + echo + echo "================================================================================" + echo +} + +# Check if this is a forked Linux distro +check_forked() { + + # Check for lsb_release command existence, it usually exists in forked distros + if command_exists lsb_release; then + # Check if the `-u` option is supported + set +e + lsb_release -a -u > /dev/null 2>&1 + lsb_release_exit_code=$? + set -e + + # Check if the command has exited successfully, it means we're in a forked distro + if [ "$lsb_release_exit_code" = "0" ]; then + # Print info about current distro + cat <<-EOF + You're using '$lsb_dist' version '$dist_version'. + EOF + + # Get the upstream release info + lsb_dist=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'id' | cut -d ':' -f 2 | tr -d '[:space:]') + dist_version=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'codename' | cut -d ':' -f 2 | tr -d '[:space:]') + + # Print info about upstream distro + cat <<-EOF + Upstream release is '$lsb_dist' version '$dist_version'. + EOF + else + if [ -r /etc/debian_version ] && [ "$lsb_dist" != "ubuntu" ] && [ "$lsb_dist" != "raspbian" ]; then + if [ "$lsb_dist" = "osmc" ]; then + # OSMC runs Raspbian + lsb_dist=raspbian + else + # We're Debian and don't even know it! + lsb_dist=debian + fi + dist_version="$(sed 's/\/.*//' /etc/debian_version | sed 's/\..*//')" + case "$dist_version" in + 13|14|forky) + dist_version="trixie" + ;; + 12) + dist_version="bookworm" + ;; + 11) + dist_version="bullseye" + ;; + 10) + dist_version="buster" + ;; + 9) + dist_version="stretch" + ;; + 8) + dist_version="jessie" + ;; + esac + fi + fi + fi +} + +do_install() { + echo "# Executing docker install script, commit: $SCRIPT_COMMIT_SHA" + + if command_exists docker; then + cat >&2 <<-'EOF' + Warning: the "docker" command appears to already exist on this system. + + If you already have Docker installed, this script can cause trouble, which is + why we're displaying this warning and provide the opportunity to cancel the + installation. + + If you installed the current Docker package using this script and are using it + again to update Docker, you can ignore this message, but be aware that the + script resets any custom changes in the deb and rpm repo configuration + files to match the parameters passed to the script. + + You may press Ctrl+C now to abort this script. + EOF + ( set -x; sleep 20 ) + fi + + user="$(id -un 2>/dev/null || true)" + + sh_c='sh -c' + if [ "$user" != 'root' ]; then + if command_exists sudo; then + sh_c='sudo -E sh -c' + elif command_exists su; then + sh_c='su -c' + else + cat >&2 <<-'EOF' + Error: this installer needs the ability to run commands as root. + We are unable to find either "sudo" or "su" available to make this happen. + EOF + exit 1 + fi + fi + + if is_dry_run; then + sh_c="echo" + fi + + # perform some very rudimentary platform detection + lsb_dist=$( get_distribution ) + lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')" + + if is_wsl; then + echo + echo "WSL DETECTED: We recommend using Docker Desktop for Windows." + echo "Please get Docker Desktop from https://www.docker.com/products/docker-desktop/" + echo + cat >&2 <<-'EOF' + + You may press Ctrl+C now to abort this script. + EOF + ( set -x; sleep 20 ) + fi + + case "$lsb_dist" in + + ubuntu) + if command_exists lsb_release; then + dist_version="$(lsb_release --codename | cut -f2)" + fi + if [ -z "$dist_version" ] && [ -r /etc/lsb-release ]; then + dist_version="$(. /etc/lsb-release && echo "$DISTRIB_CODENAME")" + fi + ;; + + debian|raspbian) + dist_version="$(sed 's/\/.*//' /etc/debian_version | sed 's/\..*//')" + case "$dist_version" in + 13) + dist_version="trixie" + ;; + 12) + dist_version="bookworm" + ;; + 11) + dist_version="bullseye" + ;; + 10) + dist_version="buster" + ;; + 9) + dist_version="stretch" + ;; + 8) + dist_version="jessie" + ;; + esac + ;; + + centos|rhel) + if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then + dist_version="$(. /etc/os-release && echo "$VERSION_ID")" + fi + ;; + + *) + if command_exists lsb_release; then + dist_version="$(lsb_release --release | cut -f2)" + fi + if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then + dist_version="$(. /etc/os-release && echo "$VERSION_ID")" + fi + ;; + + esac + + # Check if this is a forked Linux distro + check_forked + + # Print deprecation warnings for distro versions that recently reached EOL, + # but may still be commonly used (especially LTS versions). + case "$lsb_dist.$dist_version" in + centos.8|centos.7|rhel.7) + deprecation_notice "$lsb_dist" "$dist_version" + ;; + debian.buster|debian.stretch|debian.jessie) + deprecation_notice "$lsb_dist" "$dist_version" + ;; + raspbian.buster|raspbian.stretch|raspbian.jessie) + deprecation_notice "$lsb_dist" "$dist_version" + ;; + ubuntu.focal|ubuntu.bionic|ubuntu.xenial|ubuntu.trusty) + deprecation_notice "$lsb_dist" "$dist_version" + ;; + ubuntu.oracular|ubuntu.mantic|ubuntu.lunar|ubuntu.kinetic|ubuntu.impish|ubuntu.hirsute|ubuntu.groovy|ubuntu.eoan|ubuntu.disco|ubuntu.cosmic) + deprecation_notice "$lsb_dist" "$dist_version" + ;; + fedora.*) + if [ "$dist_version" -lt 41 ]; then + deprecation_notice "$lsb_dist" "$dist_version" + fi + ;; + esac + + # Run setup for each distro accordingly + case "$lsb_dist" in + ubuntu|debian|raspbian) + pre_reqs="ca-certificates curl" + apt_repo="deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] $DOWNLOAD_URL/linux/$lsb_dist $dist_version $CHANNEL" + ( + if ! is_dry_run; then + set -x + fi + $sh_c 'apt-get -qq update >/dev/null' + $sh_c "DEBIAN_FRONTEND=noninteractive apt-get -y -qq install $pre_reqs >/dev/null" + $sh_c 'install -m 0755 -d /etc/apt/keyrings' + $sh_c "curl -fsSL \"$DOWNLOAD_URL/linux/$lsb_dist/gpg\" -o /etc/apt/keyrings/docker.asc" + $sh_c "chmod a+r /etc/apt/keyrings/docker.asc" + $sh_c "echo \"$apt_repo\" > /etc/apt/sources.list.d/docker.list" + $sh_c 'apt-get -qq update >/dev/null' + ) + + if [ "$REPO_ONLY" = "1" ]; then + exit 0 + fi + + pkg_version="" + if [ -n "$VERSION" ]; then + if is_dry_run; then + echo "# WARNING: VERSION pinning is not supported in DRY_RUN" + else + # Will work for incomplete versions IE (17.12), but may not actually grab the "latest" if in the test channel + pkg_pattern="$(echo "$VERSION" | sed 's/-ce-/~ce~.*/g' | sed 's/-/.*/g')" + search_command="apt-cache madison docker-ce | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3" + pkg_version="$($sh_c "$search_command")" + echo "INFO: Searching repository for VERSION '$VERSION'" + echo "INFO: $search_command" + if [ -z "$pkg_version" ]; then + echo + echo "ERROR: '$VERSION' not found amongst apt-cache madison results" + echo + exit 1 + fi + if version_gte "18.09"; then + search_command="apt-cache madison docker-ce-cli | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3" + echo "INFO: $search_command" + cli_pkg_version="=$($sh_c "$search_command")" + fi + pkg_version="=$pkg_version" + fi + fi + ( + pkgs="docker-ce${pkg_version%=}" + if version_gte "18.09"; then + # older versions didn't ship the cli and containerd as separate packages + pkgs="$pkgs docker-ce-cli${cli_pkg_version%=} containerd.io" + fi + if version_gte "20.10"; then + pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version" + fi + if version_gte "23.0"; then + pkgs="$pkgs docker-buildx-plugin" + fi + if version_gte "28.2"; then + pkgs="$pkgs docker-model-plugin" + fi + if ! is_dry_run; then + set -x + fi + $sh_c "DEBIAN_FRONTEND=noninteractive apt-get -y -qq install $pkgs >/dev/null" + ) + if [ "$NO_AUTOSTART" != "1" ]; then + start_docker_daemon + fi + echo_docker_as_nonroot + exit 0 + ;; + centos|fedora|rhel) + if [ "$(uname -m)" = "s390x" ]; then + echo "Effective v27.5, please consult RHEL distro statement for s390x support." + exit 1 + fi + repo_file_url="$DOWNLOAD_URL/linux/$lsb_dist/$REPO_FILE" + ( + if ! is_dry_run; then + set -x + fi + if command_exists dnf5; then + $sh_c "dnf -y -q --setopt=install_weak_deps=False install dnf-plugins-core" + $sh_c "dnf5 config-manager addrepo --overwrite --save-filename=docker-ce.repo --from-repofile='$repo_file_url'" + + if [ "$CHANNEL" != "stable" ]; then + $sh_c "dnf5 config-manager setopt \"docker-ce-*.enabled=0\"" + $sh_c "dnf5 config-manager setopt \"docker-ce-$CHANNEL.enabled=1\"" + fi + $sh_c "dnf makecache" + elif command_exists dnf; then + $sh_c "dnf -y -q --setopt=install_weak_deps=False install dnf-plugins-core" + $sh_c "rm -f /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce-staging.repo" + $sh_c "dnf config-manager --add-repo $repo_file_url" + + if [ "$CHANNEL" != "stable" ]; then + $sh_c "dnf config-manager --set-disabled \"docker-ce-*\"" + $sh_c "dnf config-manager --set-enabled \"docker-ce-$CHANNEL\"" + fi + $sh_c "dnf makecache" + else + $sh_c "yum -y -q install yum-utils" + $sh_c "rm -f /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce-staging.repo" + $sh_c "yum-config-manager --add-repo $repo_file_url" + + if [ "$CHANNEL" != "stable" ]; then + $sh_c "yum-config-manager --disable \"docker-ce-*\"" + $sh_c "yum-config-manager --enable \"docker-ce-$CHANNEL\"" + fi + $sh_c "yum makecache" + fi + ) + + if [ "$REPO_ONLY" = "1" ]; then + exit 0 + fi + + pkg_version="" + if command_exists dnf; then + pkg_manager="dnf" + pkg_manager_flags="-y -q --best" + else + pkg_manager="yum" + pkg_manager_flags="-y -q" + fi + if [ -n "$VERSION" ]; then + if is_dry_run; then + echo "# WARNING: VERSION pinning is not supported in DRY_RUN" + else + if [ "$lsb_dist" = "fedora" ]; then + pkg_suffix="fc$dist_version" + else + pkg_suffix="el" + fi + pkg_pattern="$(echo "$VERSION" | sed 's/-ce-/\\\\.ce.*/g' | sed 's/-/.*/g').*$pkg_suffix" + search_command="$pkg_manager list --showduplicates docker-ce | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'" + pkg_version="$($sh_c "$search_command")" + echo "INFO: Searching repository for VERSION '$VERSION'" + echo "INFO: $search_command" + if [ -z "$pkg_version" ]; then + echo + echo "ERROR: '$VERSION' not found amongst $pkg_manager list results" + echo + exit 1 + fi + if version_gte "18.09"; then + # older versions don't support a cli package + search_command="$pkg_manager list --showduplicates docker-ce-cli | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'" + cli_pkg_version="$($sh_c "$search_command" | cut -d':' -f 2)" + fi + # Cut out the epoch and prefix with a '-' + pkg_version="-$(echo "$pkg_version" | cut -d':' -f 2)" + fi + fi + ( + pkgs="docker-ce$pkg_version" + if version_gte "18.09"; then + # older versions didn't ship the cli and containerd as separate packages + if [ -n "$cli_pkg_version" ]; then + pkgs="$pkgs docker-ce-cli-$cli_pkg_version containerd.io" + else + pkgs="$pkgs docker-ce-cli containerd.io" + fi + fi + if version_gte "20.10"; then + pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version" + fi + if version_gte "23.0"; then + pkgs="$pkgs docker-buildx-plugin docker-model-plugin" + fi + if ! is_dry_run; then + set -x + fi + $sh_c "$pkg_manager $pkg_manager_flags install $pkgs" + ) + if [ "$NO_AUTOSTART" != "1" ]; then + start_docker_daemon + fi + echo_docker_as_nonroot + exit 0 + ;; + sles) + echo "Effective v27.5, please consult SLES distro statement for s390x support." + exit 1 + ;; + *) + if [ -z "$lsb_dist" ]; then + if is_darwin; then + echo + echo "ERROR: Unsupported operating system 'macOS'" + echo "Please get Docker Desktop from https://www.docker.com/products/docker-desktop" + echo + exit 1 + fi + fi + echo + echo "ERROR: Unsupported distribution '$lsb_dist'" + echo + exit 1 + ;; + esac + exit 1 +} + +# wrapped up in a function so that we have some protection against only getting +# half the file during "curl | sh" +do_install diff --git a/get_helm.sh b/get_helm.sh new file mode 100644 index 0000000000..1c90bbad5b --- /dev/null +++ b/get_helm.sh @@ -0,0 +1,347 @@ +#!/usr/bin/env bash + +# Copyright The Helm Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# The install script is based off of the MIT-licensed script from glide, +# the package manager for Go: https://github.com/Masterminds/glide.sh/blob/master/get + +: ${BINARY_NAME:="helm"} +: ${USE_SUDO:="true"} +: ${DEBUG:="false"} +: ${VERIFY_CHECKSUM:="true"} +: ${VERIFY_SIGNATURES:="false"} +: ${HELM_INSTALL_DIR:="/usr/local/bin"} +: ${GPG_PUBRING:="pubring.kbx"} + +HAS_CURL="$(type "curl" &> /dev/null && echo true || echo false)" +HAS_WGET="$(type "wget" &> /dev/null && echo true || echo false)" +HAS_OPENSSL="$(type "openssl" &> /dev/null && echo true || echo false)" +HAS_GPG="$(type "gpg" &> /dev/null && echo true || echo false)" +HAS_GIT="$(type "git" &> /dev/null && echo true || echo false)" +HAS_TAR="$(type "tar" &> /dev/null && echo true || echo false)" + +# initArch discovers the architecture for this system. +initArch() { + ARCH=$(uname -m) + case $ARCH in + armv5*) ARCH="armv5";; + armv6*) ARCH="armv6";; + armv7*) ARCH="arm";; + aarch64) ARCH="arm64";; + x86) ARCH="386";; + x86_64) ARCH="amd64";; + i686) ARCH="386";; + i386) ARCH="386";; + esac +} + +# initOS discovers the operating system for this system. +initOS() { + OS=$(echo `uname`|tr '[:upper:]' '[:lower:]') + + case "$OS" in + # Minimalist GNU for Windows + mingw*|cygwin*) OS='windows';; + esac +} + +# runs the given command as root (detects if we are root already) +runAsRoot() { + if [ $EUID -ne 0 -a "$USE_SUDO" = "true" ]; then + sudo "${@}" + else + "${@}" + fi +} + +# verifySupported checks that the os/arch combination is supported for +# binary builds, as well whether or not necessary tools are present. +verifySupported() { + local supported="darwin-amd64\ndarwin-arm64\nlinux-386\nlinux-amd64\nlinux-arm\nlinux-arm64\nlinux-loong64\nlinux-ppc64le\nlinux-s390x\nlinux-riscv64\nwindows-amd64\nwindows-arm64" + if ! echo "${supported}" | grep -q "${OS}-${ARCH}"; then + echo "No prebuilt binary for ${OS}-${ARCH}." + echo "To build from source, go to https://github.com/helm/helm" + exit 1 + fi + + if [ "${HAS_CURL}" != "true" ] && [ "${HAS_WGET}" != "true" ]; then + echo "Either curl or wget is required" + exit 1 + fi + + if [ "${VERIFY_CHECKSUM}" == "true" ] && [ "${HAS_OPENSSL}" != "true" ]; then + echo "In order to verify checksum, openssl must first be installed." + echo "Please install openssl or set VERIFY_CHECKSUM=false in your environment." + exit 1 + fi + + if [ "${VERIFY_SIGNATURES}" == "true" ]; then + if [ "${HAS_GPG}" != "true" ]; then + echo "In order to verify signatures, gpg must first be installed." + echo "Please install gpg or set VERIFY_SIGNATURES=false in your environment." + exit 1 + fi + if [ "${OS}" != "linux" ]; then + echo "Signature verification is currently only supported on Linux." + echo "Please set VERIFY_SIGNATURES=false or verify the signatures manually." + exit 1 + fi + fi + + if [ "${HAS_GIT}" != "true" ]; then + echo "[WARNING] Could not find git. It is required for plugin installation." + fi + + if [ "${HAS_TAR}" != "true" ]; then + echo "[ERROR] Could not find tar. It is required to extract the helm binary archive." + exit 1 + fi +} + +# checkDesiredVersion checks if the desired version is available. +checkDesiredVersion() { + if [ "x$DESIRED_VERSION" == "x" ]; then + # Get tag from release URL + local latest_release_url="https://get.helm.sh/helm4-latest-version" + local latest_release_response="" + if [ "${HAS_CURL}" == "true" ]; then + latest_release_response=$( curl -L --silent --show-error --fail "$latest_release_url" 2>&1 || true ) + elif [ "${HAS_WGET}" == "true" ]; then + latest_release_response=$( wget "$latest_release_url" -q -O - 2>&1 || true ) + fi + TAG=$( echo "$latest_release_response" | grep '^v[0-9]' ) + if [ "x$TAG" == "x" ]; then + printf "Could not retrieve the latest release tag information from %s: %s\n" "${latest_release_url}" "${latest_release_response}" + exit 1 + fi + else + TAG=$DESIRED_VERSION + fi +} + +# checkHelmInstalledVersion checks which version of helm is installed and +# if it needs to be changed. +checkHelmInstalledVersion() { + if [[ -f "${HELM_INSTALL_DIR}/${BINARY_NAME}" ]]; then + local version=$("${HELM_INSTALL_DIR}/${BINARY_NAME}" version --template="{{ .Version }}") + if [[ "$version" == "$TAG" ]]; then + echo "Helm ${version} is already ${DESIRED_VERSION:-latest}" + return 0 + else + echo "Helm ${TAG} is available. Changing from version ${version}." + return 1 + fi + else + return 1 + fi +} + +# downloadFile downloads the latest binary package and also the checksum +# for that binary. +downloadFile() { + HELM_DIST="helm-$TAG-$OS-$ARCH.tar.gz" + DOWNLOAD_URL="https://get.helm.sh/$HELM_DIST" + CHECKSUM_URL="$DOWNLOAD_URL.sha256" + HELM_TMP_ROOT="$(mktemp -dt helm-installer-XXXXXX)" + HELM_TMP_FILE="$HELM_TMP_ROOT/$HELM_DIST" + HELM_SUM_FILE="$HELM_TMP_ROOT/$HELM_DIST.sha256" + echo "Downloading $DOWNLOAD_URL" + if [ "${HAS_CURL}" == "true" ]; then + curl -SsL "$CHECKSUM_URL" -o "$HELM_SUM_FILE" + curl -SsL "$DOWNLOAD_URL" -o "$HELM_TMP_FILE" + elif [ "${HAS_WGET}" == "true" ]; then + wget -q -O "$HELM_SUM_FILE" "$CHECKSUM_URL" + wget -q -O "$HELM_TMP_FILE" "$DOWNLOAD_URL" + fi +} + +# verifyFile verifies the SHA256 checksum of the binary package +# and the GPG signatures for both the package and checksum file +# (depending on settings in environment). +verifyFile() { + if [ "${VERIFY_CHECKSUM}" == "true" ]; then + verifyChecksum + fi + if [ "${VERIFY_SIGNATURES}" == "true" ]; then + verifySignatures + fi +} + +# installFile installs the Helm binary. +installFile() { + HELM_TMP="$HELM_TMP_ROOT/$BINARY_NAME" + mkdir -p "$HELM_TMP" + tar xf "$HELM_TMP_FILE" -C "$HELM_TMP" + HELM_TMP_BIN="$HELM_TMP/$OS-$ARCH/helm" + echo "Preparing to install $BINARY_NAME into ${HELM_INSTALL_DIR}" + runAsRoot cp "$HELM_TMP_BIN" "$HELM_INSTALL_DIR/$BINARY_NAME" + echo "$BINARY_NAME installed into $HELM_INSTALL_DIR/$BINARY_NAME" +} + +# verifyChecksum verifies the SHA256 checksum of the binary package. +verifyChecksum() { + printf "Verifying checksum... " + local sum=$(openssl sha1 -sha256 ${HELM_TMP_FILE} | awk '{print $2}') + local expected_sum=$(cat ${HELM_SUM_FILE}) + if [ "$sum" != "$expected_sum" ]; then + echo "SHA sum of ${HELM_TMP_FILE} does not match. Aborting." + exit 1 + fi + echo "Done." +} + +# verifySignatures obtains the latest KEYS file from GitHub main branch +# as well as the signature .asc files from the specific GitHub release, +# then verifies that the release artifacts were signed by a maintainer's key. +verifySignatures() { + printf "Verifying signatures... " + local keys_filename="KEYS" + local github_keys_url="https://raw.githubusercontent.com/helm/helm/main/${keys_filename}" + if [ "${HAS_CURL}" == "true" ]; then + curl -SsL "${github_keys_url}" -o "${HELM_TMP_ROOT}/${keys_filename}" + elif [ "${HAS_WGET}" == "true" ]; then + wget -q -O "${HELM_TMP_ROOT}/${keys_filename}" "${github_keys_url}" + fi + local gpg_keyring="${HELM_TMP_ROOT}/keyring.gpg" + local gpg_homedir="${HELM_TMP_ROOT}/gnupg" + mkdir -p -m 0700 "${gpg_homedir}" + local gpg_stderr_device="/dev/null" + if [ "${DEBUG}" == "true" ]; then + gpg_stderr_device="/dev/stderr" + fi + gpg --batch --quiet --homedir="${gpg_homedir}" --import "${HELM_TMP_ROOT}/${keys_filename}" 2> "${gpg_stderr_device}" + gpg --batch --no-default-keyring --keyring "${gpg_homedir}/${GPG_PUBRING}" --export > "${gpg_keyring}" + local github_release_url="https://github.com/helm/helm/releases/download/${TAG}" + if [ "${HAS_CURL}" == "true" ]; then + curl -SsL "${github_release_url}/helm-${TAG}-${OS}-${ARCH}.tar.gz.sha256.asc" -o "${HELM_TMP_ROOT}/helm-${TAG}-${OS}-${ARCH}.tar.gz.sha256.asc" + curl -SsL "${github_release_url}/helm-${TAG}-${OS}-${ARCH}.tar.gz.asc" -o "${HELM_TMP_ROOT}/helm-${TAG}-${OS}-${ARCH}.tar.gz.asc" + elif [ "${HAS_WGET}" == "true" ]; then + wget -q -O "${HELM_TMP_ROOT}/helm-${TAG}-${OS}-${ARCH}.tar.gz.sha256.asc" "${github_release_url}/helm-${TAG}-${OS}-${ARCH}.tar.gz.sha256.asc" + wget -q -O "${HELM_TMP_ROOT}/helm-${TAG}-${OS}-${ARCH}.tar.gz.asc" "${github_release_url}/helm-${TAG}-${OS}-${ARCH}.tar.gz.asc" + fi + local error_text="If you think this might be a potential security issue," + error_text="${error_text}\nplease see here: https://github.com/helm/community/blob/master/SECURITY.md" + local num_goodlines_sha=$(gpg --verify --keyring="${gpg_keyring}" --status-fd=1 "${HELM_TMP_ROOT}/helm-${TAG}-${OS}-${ARCH}.tar.gz.sha256.asc" 2> "${gpg_stderr_device}" | grep -c -E '^\[GNUPG:\] (GOODSIG|VALIDSIG)') + if [[ ${num_goodlines_sha} -lt 2 ]]; then + echo "Unable to verify the signature of helm-${TAG}-${OS}-${ARCH}.tar.gz.sha256!" + echo -e "${error_text}" + exit 1 + fi + local num_goodlines_tar=$(gpg --verify --keyring="${gpg_keyring}" --status-fd=1 "${HELM_TMP_ROOT}/helm-${TAG}-${OS}-${ARCH}.tar.gz.asc" 2> "${gpg_stderr_device}" | grep -c -E '^\[GNUPG:\] (GOODSIG|VALIDSIG)') + if [[ ${num_goodlines_tar} -lt 2 ]]; then + echo "Unable to verify the signature of helm-${TAG}-${OS}-${ARCH}.tar.gz!" + echo -e "${error_text}" + exit 1 + fi + echo "Done." +} + +# fail_trap is executed if an error occurs. +fail_trap() { + result=$? + if [ "$result" != "0" ]; then + if [[ -n "$INPUT_ARGUMENTS" ]]; then + echo "Failed to install $BINARY_NAME with the arguments provided: $INPUT_ARGUMENTS" + help + else + echo "Failed to install $BINARY_NAME" + fi + echo -e "\tFor support, go to https://github.com/helm/helm." + fi + cleanup + exit $result +} + +# testVersion tests the installed client to make sure it is working. +testVersion() { + set +e + HELM="$(command -v $BINARY_NAME)" + if [ "$?" = "1" ]; then + echo "$BINARY_NAME not found. Is $HELM_INSTALL_DIR on your "'$PATH?' + exit 1 + fi + set -e +} + +# help provides possible cli installation arguments +help () { + echo "Accepted cli arguments are:" + echo -e "\t[--help|-h ] ->> prints this help" + echo -e "\t[--version|-v ] . When not defined it fetches the latest release tag from the Helm CDN" + echo -e "\te.g. --version v4.0.0 or -v canary" + echo -e "\t[--no-sudo] ->> install without sudo" +} + +# cleanup temporary files to avoid https://github.com/helm/helm/issues/2977 +cleanup() { + if [[ -d "${HELM_TMP_ROOT:-}" ]]; then + rm -rf "$HELM_TMP_ROOT" + fi +} + +# Execution + +#Stop execution on any error +trap "fail_trap" EXIT +set -e + +# Set debug if desired +if [ "${DEBUG}" == "true" ]; then + set -x +fi + +# Parsing input arguments (if any) +export INPUT_ARGUMENTS="${@}" +set -u +while [[ $# -gt 0 ]]; do + case $1 in + '--version'|-v) + shift + if [[ $# -ne 0 ]]; then + export DESIRED_VERSION="${1}" + if [[ "$1" != "v"* ]]; then + echo "Expected version arg ('${DESIRED_VERSION}') to begin with 'v', fixing..." + export DESIRED_VERSION="v${1}" + fi + else + echo -e "Please provide the desired version. e.g. --version v4.0.0 or -v canary" + exit 0 + fi + ;; + '--no-sudo') + USE_SUDO="false" + ;; + '--help'|-h) + help + exit 0 + ;; + *) exit 1 + ;; + esac + shift +done +set +u + +initArch +initOS +verifySupported +checkDesiredVersion +if ! checkHelmInstalledVersion; then + downloadFile + verifyFile + installFile +fi +testVersion +cleanup diff --git a/k8s/HELM.md b/k8s/HELM.md new file mode 100644 index 0000000000..ddd43a5cc4 --- /dev/null +++ b/k8s/HELM.md @@ -0,0 +1,1331 @@ +# Lab 10 — Helm Package Manager + +This report documents the Helm implementation for the Kubernetes manifests created in Lab 09. + +--- + +## 1. Helm Fundamentals & Setup + +### 1.1 What Helm gives us +Helm is the package manager for Kubernetes. In this lab, Helm improves the Lab 09 manifests in four major ways: + +1. **Templating** — the same manifests can be reused in multiple environments. +2. **Values-driven configuration** — image, replicas, ports, resources, and probes are configurable without editing YAML templates. +3. **Release management** — Helm tracks installs, upgrades, rollbacks, and uninstall operations. +4. **Lifecycle hooks** — pre-install and post-install jobs can validate configuration and run smoke checks. + +### 1.2 Helm installation in WSL +Recommended installation method for WSL/Linux: + +```bash +curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4 +chmod 700 get_helm.sh +./get_helm.sh +helm version +``` + +**Evidence — Helm version:** + +```text +version.BuildInfo{Version:"v4.1.3", GitCommit:"c94d381b03be117e7e57908edbf642104e00eb8f", GitTreeState:"clean", GoVersion:"go1.25.8", KubeClientVersion:"v1.35"} +``` + +### 1.3 Public chart repositories explored +Commands used: + +```bash +helm repo add prometheus-community https://prometheus-community.github.io/helm-charts +helm repo add grafana https://grafana.github.io/helm-charts +helm repo update +helm search repo prometheus +helm show chart prometheus-community/prometheus +``` + +**Evidence — repository search:** + +```text +NAME CHART VERSION APP VERSION DESCRIPTION +prometheus-community/kube-prometheus-stack 82.16.1 v0.89.0 kube-prometheus-stack collects Kubernetes manif... +prometheus-community/prometheus 28.15.0 v3.11.0 Prometheus is a monitoring system and time seri... +prometheus-community/prometheus-adapter 5.3.0 v0.12.0 A Helm chart for k8s prometheus adapter +prometheus-community/prometheus-blackbox-exporter 11.9.1 v0.28.0 Prometheus Blackbox Exporter +prometheus-community/prometheus-cloudwatch-expo... 0.28.1 0.16.0 A Helm chart for prometheus cloudwatch-exporter +prometheus-community/prometheus-conntrack-stats... 0.5.35 v0.4.42 A Helm chart for conntrack-stats-exporter +prometheus-community/prometheus-consul-exporter 1.1.1 v0.13.0 A Helm chart for the Prometheus Consul Exporter +prometheus-community/prometheus-couchdb-exporter 1.0.1 1.0 A Helm chart to export the metrics from couchdb... +prometheus-community/prometheus-druid-exporter 1.2.0 v0.11.0 Druid exporter to monitor druid metrics with Pr... +prometheus-community/prometheus-elasticsearch-e... 7.2.1 v1.10.0 Elasticsearch stats exporter for Prometheus +prometheus-community/prometheus-fastly-exporter 0.11.0 v10.2.0 A Helm chart for the Prometheus Fastly Exporter +prometheus-community/prometheus-ipmi-exporter 0.8.0 v1.10.1 This is an IPMI exporter for Prometheus. +prometheus-community/prometheus-json-exporter 0.19.2 v0.7.0 Install prometheus-json-exporter +prometheus-community/prometheus-kafka-exporter 3.0.1 v1.9.0 A Helm chart to export metrics from Kafka in Pr... +prometheus-community/prometheus-memcached-exporter 0.4.5 v0.15.5 Prometheus exporter for Memcached metrics +prometheus-community/prometheus-modbus-exporter 0.1.4 0.4.1 A Helm chart for prometheus-modbus-exporter +prometheus-community/prometheus-mongodb-exporter 3.18.0 0.49.0 A Prometheus exporter for MongoDB metrics +prometheus-community/prometheus-mysql-exporter 2.13.0 v0.19.0 A Helm chart for prometheus mysql exporter with... +prometheus-community/prometheus-nats-exporter 2.22.1 0.19.2 A Helm chart for prometheus-nats-exporter +prometheus-community/prometheus-nginx-exporter 1.20.8 1.5.1 A Helm chart for NGINX Prometheus Exporter +prometheus-community/prometheus-node-exporter 4.52.2 1.10.2 A Helm chart for prometheus node-exporter +prometheus-community/prometheus-opencost-exporter 0.1.2 1.108.0 Prometheus OpenCost Exporter +prometheus-community/prometheus-operator 9.3.2 0.38.1 DEPRECATED - This chart will be renamed. See ht... +prometheus-community/prometheus-operator-admiss... 0.38.0 0.90.1 Prometheus Operator Admission Webhook +prometheus-community/prometheus-operator-crds 28.0.1 v0.90.1 A Helm chart that collects custom resource defi... +prometheus-community/prometheus-pgbouncer-exporter 0.10.0 v0.12.0 A Helm chart for prometheus pgbouncer-exporter +prometheus-community/prometheus-pingdom-exporter 3.4.2 v0.5.6 A Helm chart for Prometheus Pingdom Exporter +prometheus-community/prometheus-pingmesh-exporter 0.4.3 v1.2.2 Prometheus Pingmesh Exporter +prometheus-community/prometheus-postgres-exporter 7.5.2 v0.19.1 A Helm chart for prometheus postgres-exporter +prometheus-community/prometheus-pushgateway 3.6.0 v1.11.2 A Helm chart for prometheus pushgateway +prometheus-community/prometheus-rabbitmq-exporter 2.1.2 1.0.0 Rabbitmq metrics exporter for prometheus +prometheus-community/prometheus-redis-exporter 6.22.0 v1.82.0 Prometheus exporter for Redis metrics +prometheus-community/prometheus-smartctl-exporter 0.16.0 v0.14.0 A Helm chart for Kubernetes +prometheus-community/prometheus-snmp-exporter 9.13.1 v0.30.1 Prometheus SNMP Exporter +prometheus-community/prometheus-sql-exporter 0.5.0 v0.8 Prometheus SQL Exporter +prometheus-community/prometheus-stackdriver-exp... 4.12.2 v0.18.0 Stackdriver exporter for Prometheus +prometheus-community/prometheus-statsd-exporter 1.0.0 v0.28.0 A Helm chart for prometheus stats-exporter +prometheus-community/prometheus-systemd-exporter 0.5.2 0.7.0 A Helm chart for prometheus systemd-exporter +prometheus-community/prometheus-to-sd 0.5.1 v0.9.2 Scrape metrics stored in prometheus format and ... +prometheus-community/prometheus-windows-exporter 0.12.6 0.31.6 A Helm chart for prometheus windows-exporter +prometheus-community/prometheus-yet-another-clo... 0.43.0 v0.64.0 Yace - Yet Another CloudWatch Exporter +prometheus-community/alertmanager 1.34.0 v0.31.1 The Alertmanager handles alerts sent by client ... +prometheus-community/alertmanager-snmp-notifier 2.1.0 v2.1.0 The SNMP Notifier handles alerts coming from Pr... +prometheus-community/jiralert 1.8.2 v1.3.0 A Helm chart for Kubernetes to install jiralert +prometheus-community/kube-state-metrics 7.2.2 2.18.0 Install kube-state-metrics to generate and expo... +prometheus-community/prom-label-proxy 0.18.0 v0.12.1 A proxy that enforces a given label in a given ... +prometheus-community/yet-another-cloudwatch-exp... 0.39.1 v0.62.1 Yace - Yet Another CloudWatch Exporter +grafana/cloudcost-exporter 1.1.2 0.25.0 Cloud Cost Exporter exports cloud provider agno... +grafana/loki 2.16.0 v2.6.1 Loki: like Prometheus, but for logs. +grafana/loki-stack 2.10.3 v2.9.3 Loki: like Prometheus, but for logs. +grafana/snyk-exporter 0.1.0 v1.4.1 Prometheus exporter for Snyk. +``` + +**Evidence — public chart inspection:** + +```text +annotations: + artifacthub.io/license: Apache-2.0 + artifacthub.io/links: | + - name: Chart Source + url: https://github.com/prometheus-community/helm-charts + - name: Upstream Project + url: https://github.com/prometheus/prometheus +apiVersion: v2 +appVersion: v3.11.0 +dependencies: +- condition: alertmanager.enabled + name: alertmanager + repository: https://prometheus-community.github.io/helm-charts + version: 1.34.* +- condition: kube-state-metrics.enabled + name: kube-state-metrics + repository: https://prometheus-community.github.io/helm-charts + version: 7.2.* +- condition: prometheus-node-exporter.enabled + name: prometheus-node-exporter + repository: https://prometheus-community.github.io/helm-charts + version: 4.52.* +- condition: prometheus-pushgateway.enabled + name: prometheus-pushgateway + repository: https://prometheus-community.github.io/helm-charts + version: 3.6.* +description: Prometheus is a monitoring system and time series database. +home: https://prometheus.io/ +icon: https://raw.githubusercontent.com/prometheus/prometheus.github.io/master/assets/prometheus_logo-cb55bb5c346.png +keywords: +- monitoring +- prometheus +kubeVersion: '>=1.19.0-0' +maintainers: +- email: gianrubio@gmail.com + name: gianrubio + url: https://github.com/gianrubio +- email: zanhsieh@gmail.com + name: zanhsieh + url: https://github.com/zanhsieh +- email: miroslav.hadzhiev@gmail.com + name: Xtigyro + url: https://github.com/Xtigyro +- email: naseem@transit.app + name: naseemkullah + url: https://github.com/naseemkullah +- email: rootsandtrees@posteo.de + name: zeritti + url: https://github.com/zeritti +name: prometheus +sources: +- https://github.com/prometheus/alertmanager +- https://github.com/prometheus/prometheus +- https://github.com/prometheus/pushgateway +- https://github.com/prometheus/node_exporter +- https://github.com/kubernetes/kube-state-metrics +type: application +version: 28.15.0 +``` + +--- + +## 2. Chart Overview + +### 2.1 Implemented chart structure +I created the following Helm structure inside `k8s/`: + +```text +k8s/ +├── HELM.md +├── common-lib/ +│ ├── Chart.yaml +│ └── templates/ +│ └── _helpers.tpl +├── devops-info-service/ +│ ├── Chart.yaml +│ ├── values.yaml +│ ├── values-dev.yaml +│ ├── values-prod.yaml +│ ├── charts/ +│ │ └── common-lib/ +│ └── templates/ +│ ├── _helpers.tpl +│ ├── deployment.yaml +│ ├── service.yaml +│ ├── NOTES.txt +│ └── hooks/ +│ ├── pre-install-job.yaml +│ └── post-install-job.yaml +└── devops-info-service-app2/ + ├── Chart.yaml + ├── values.yaml + ├── charts/ + │ └── common-lib/ + └── templates/ + ├── _helpers.tpl + ├── deployment.yaml + ├── service.yaml + ├── NOTES.txt + └── hooks/ + ├── pre-install-job.yaml + └── post-install-job.yaml +``` + +### 2.2 Main chart purpose +The main application chart is `k8s/devops-info-service/`. + +It converts the Lab 09 Kubernetes resources into Helm templates: +- `templates/deployment.yaml` — primary application Deployment +- `templates/service.yaml` — Service exposing the application +- `templates/hooks/pre-install-job.yaml` — validation Job before install +- `templates/hooks/post-install-job.yaml` — smoke-test Job after install +- `values.yaml` — shared default configuration +- `values-dev.yaml` — development overrides +- `values-prod.yaml` — production overrides + +### 2.3 Values organization strategy +The values file is organized by concern: +- `image.*` — image repository, tag, pull policy +- `service.*` — type, ports, NodePort configuration +- `resources.*` — CPU and memory requests/limits +- `env.*` — application runtime variables +- `readinessProbe.*` and `livenessProbe.*` — health-check parameters +- `hooks.*` — hook image, weights, and wait timing + +### 2.4 Helper strategy +The charts use a shared library chart named `common-lib`. + +The library chart centralizes: +- chart name generation +- fullname generation +- chart labels +- selector labels + +Each application chart also contains a small local `_helpers.tpl` file with wrapper templates, so the application templates remain readable and consistent. + +--- + +## 3. Configuration Guide + +### 3.1 Important values + +| Value | Purpose | Default | +|------|---------|---------| +| `replicaCount` | Number of Pod replicas | `3` | +| `image.repository` | Container image repository | `dorley174/devops-info-service` | +| `image.tag` | Container image tag | `latest` | +| `service.type` | Service exposure mode | `NodePort` | +| `service.port` | Service port | `80` | +| `service.targetPort` | Target container port | `5000` | +| `service.nodePort` | Fixed NodePort for dev/local access | `30080` | +| `resources.requests.*` | Guaranteed resources | `100m / 128Mi` | +| `resources.limits.*` | Hard resource limits | `250m / 256Mi` | +| `env.appVariant` | Application variant identifier | `app1` | +| `env.appMessage` | Human-readable deployment message | `Lab 10 Helm deployment` | +| `env.serviceVersion` | Version string exposed by the app | `lab10-v1` | +| `readinessProbe.*` | Readiness check configuration | `/ready` | +| `livenessProbe.*` | Liveness check configuration | `/health` | +| `hooks.preInstall.*` | Pre-install validation Job settings | enabled | +| `hooks.postInstall.*` | Post-install smoke-test Job settings | enabled | + +### 3.2 Environment-specific values + +#### Development profile (`values-dev.yaml`) +- `replicaCount: 1` +- `service.type: NodePort` +- smaller resource requests and limits +- faster probe timings +- dev-specific application message and service version + +#### Production profile (`values-prod.yaml`) +- `replicaCount: 3` +- `service.type: LoadBalancer` +- higher requests and limits +- slower and more realistic probe timings +- prod-specific application message and service version + +### 3.3 Rendering and installation commands +Render with defaults: + +```bash +helm template devops-app ./k8s/devops-info-service +``` + +Render with development values: + +```bash +helm template devops-app ./k8s/devops-info-service -f ./k8s/devops-info-service/values-dev.yaml +``` + +Install development release: + +```bash +helm install devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + --create-namespace \ + -f ./k8s/devops-info-service/values-dev.yaml \ + --set service.nodePort=30081 \ + --set hooks.postInstall.sleepSeconds=20 \ + --wait +``` + +Upgrade the same release to production: + +```bash +helm upgrade devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + -f ./k8s/devops-info-service/values-prod.yaml \ + --set service.nodePort=30081 \ + --set hooks.postInstall.sleepSeconds=20 \ + --wait +``` + +--- + +## 4. Hook Implementation + +### 4.1 Implemented hooks +Two lifecycle hooks were implemented in the main chart: + +1. **Pre-install hook** + - resource type: `Job` + - purpose: validate that required chart values are present before installation + - annotation: `helm.sh/hook: pre-install` + - weight: `-5` + +2. **Post-install hook** + - resource type: `Job` + - purpose: run a smoke test against the deployed Service `/ready` endpoint + - annotation: `helm.sh/hook: post-install` + - weight: `5` + +### 4.2 Execution order +Hook execution order is controlled with hook weights: +- lower weight runs first +- `pre-install` uses `-5` +- `post-install` uses `5` + +### 4.3 Deletion policy +Both hooks use this delete policy: + +```text +before-hook-creation,hook-succeeded +``` + +This means: +- the previous hook resource is removed before a new hook is created +- successful hook Jobs are automatically deleted after completion + +### 4.4 Important operational note +The post-install smoke-test hook is most reliable when the release is installed with `--wait`, because Helm will wait for regular resources to become ready before executing `post-install`. + +--- + +## 5. Installation Evidence + +### 5.1 Local chart validation +Commands used: + +```bash +helm lint ./k8s/devops-info-service +helm template devops-app ./k8s/devops-info-service > /tmp/devops-app-rendered.yaml +helm install --dry-run --debug devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + --create-namespace \ + -f ./k8s/devops-info-service/values-dev.yaml +``` + +**Evidence — `helm lint`:** + +```text +==> Linting ./k8s/devops-info-service +[INFO] Chart.yaml: icon is recommended + +1 chart(s) linted, 0 chart(s) failed +``` + +**Evidence — `helm template` verification:** + +```text +--- +# Source: devops-info-service/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: devops-app-devops-info-service + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + +spec: + type: NodePort + selector: + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 5000 + + nodePort: 30080 +--- +# Source: devops-info-service/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: devops-app-devops-info-service + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + +spec: + replicas: 3 + revisionHistoryLimit: 10 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + template: + metadata: + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + + spec: + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: devops-info-service + image: "dorley174/devops-info-service:latest" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 5000 + protocol: TCP + env: + - name: PORT + value: "5000" + - name: DEBUG + value: "False" + - name: APP_VARIANT + value: "app1" + - name: APP_MESSAGE + value: "Lab 10 Helm deployment" + - name: SERVICE_VERSION + value: "lab10-v1" + resources: + limits: + cpu: 250m + memory: 256Mi + requests: + cpu: 100m + memory: 128Mi + readinessProbe: + httpGet: + path: /ready + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + livenessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true +--- +# Source: devops-info-service/templates/hooks/post-install-job.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: devops-app-devops-info-service-post-install + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + backoffLimit: 0 + template: + metadata: + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app +``` + +**Evidence — dry-run/debug output:** + +```text +level=WARN msg="--dry-run is deprecated and should be replaced with '--dry-run=client'" +level=DEBUG msg="Original chart version" version="" +level=DEBUG msg="Chart path" path=/mnt/c/DevOps/DevOps-Core-Course/k8s/devops-info-service +level=DEBUG msg="number of dependencies in the chart" chart=devops-info-service dependencies=1 +level=DEBUG msg="number of dependencies in the chart" chart=common-lib dependencies=0 +NAME: devops-app +LAST DEPLOYED: Thu Apr 2 21:17:47 2026 +NAMESPACE: devops-lab10 +STATUS: pending-install +REVISION: 1 +DESCRIPTION: Dry run complete +TEST SUITE: None +USER-SUPPLIED VALUES: +env: + appMessage: Lab 10 Helm development deployment + serviceVersion: lab10-dev +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 10 +readinessProbe: + initialDelaySeconds: 3 + periodSeconds: 5 +replicaCount: 1 +resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 50m + memory: 64Mi +service: + nodePort: 30080 + port: 80 + targetPort: 5000 + type: NodePort + +COMPUTED VALUES: +common-lib: + global: {} +commonLabels: {} +component: web +containerPort: 5000 +env: + appMessage: Lab 10 Helm development deployment + appVariant: app1 + debug: "False" + port: "5000" + serviceVersion: lab10-dev +fullnameOverride: "" +hooks: + image: + pullPolicy: IfNotPresent + repository: busybox + tag: "1.36" + postInstall: + enabled: true + sleepSeconds: 5 + weight: 5 + preInstall: + enabled: true + sleepSeconds: 3 + weight: -5 +image: + pullPolicy: IfNotPresent + repository: dorley174/devops-info-service + tag: latest +livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 5 + path: /health + periodSeconds: 10 + port: http + timeoutSeconds: 2 +nameOverride: "" +partOf: devops-core-course +readinessProbe: + failureThreshold: 3 + initialDelaySeconds: 3 + path: /ready + periodSeconds: 5 + port: http + timeoutSeconds: 2 +replicaCount: 1 +resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 50m + memory: 64Mi +revisionHistoryLimit: 10 +service: + nodePort: 30080 + port: 80 + targetPort: 5000 + type: NodePort +strategy: + maxSurge: 1 + maxUnavailable: 0 + +HOOKS: +--- +# Source: devops-info-service/templates/hooks/post-install-job.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: devops-app-devops-info-service-post-install + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + backoffLimit: 0 + template: + metadata: + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + + spec: + restartPolicy: Never + containers: + - name: post-install-smoke-test + image: busybox:1.36 + imagePullPolicy: IfNotPresent + command: + - sh + - -c + - >- + echo "[post-install] running smoke test against devops-app-devops-info-service" && + sleep 5 && + wget -qO- http://devops-app-devops-info-service:80/ready && + echo && + echo "[post-install] smoke test passed" +--- +# Source: devops-info-service/templates/hooks/pre-install-job.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: devops-app-devops-info-service-pre-install + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "-5" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + backoffLimit: 0 + template: + metadata: + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + + spec: + restartPolicy: Never + containers: + - name: pre-install-validation + image: busybox:1.36 + imagePullPolicy: IfNotPresent + command: + - sh + - -c + - >- + echo "[pre-install] validating chart values for devops-app-devops-info-service" && + test -n "dorley174/devops-info-service" && + echo "[pre-install] image repository is set" && + sleep 3 && + echo "[pre-install] validation completed" +MANIFEST: +--- +# Source: devops-info-service/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: devops-app-devops-info-service + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + +spec: + type: NodePort + selector: + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 5000 + + nodePort: 30080 +--- +# Source: devops-info-service/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: devops-app-devops-info-service + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + +spec: + replicas: 1 + revisionHistoryLimit: 10 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + template: + metadata: + labels: + helm.sh/chart: devops-info-service-0.1.0 + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/instance: devops-app + app.kubernetes.io/version: "latest" + app.kubernetes.io/managed-by: Helm + + app.kubernetes.io/component: "web" + + + app.kubernetes.io/part-of: "devops-core-course" + + + spec: + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: devops-info-service + image: "dorley174/devops-info-service:latest" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 5000 + protocol: TCP + env: + - name: PORT + value: "5000" + - name: DEBUG + value: "False" + - name: APP_VARIANT + value: "app1" + - name: APP_MESSAGE + value: "Lab 10 Helm development deployment" + - name: SERVICE_VERSION + value: "lab10-dev" + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 50m + memory: 64Mi + readinessProbe: + httpGet: + path: /ready + port: http + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + livenessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true + +NOTES: +1. Get the release status: + helm status devops-app -n devops-lab10 + +2. Inspect the rendered Service: + kubectl get svc devops-app-devops-info-service -n devops-lab10 + +3. For local verification through port-forward: + kubectl port-forward -n devops-lab10 service/devops-app-devops-info-service 8080:80 + curl http://127.0.0.1:8080/health + curl http://127.0.0.1:8080/ready +``` + +During the first deployment attempts, two local environment issues were encountered. First, the Minikube kubeconfig context was stale and pointed to an outdated API server endpoint, which caused a cluster reachability error. After restarting Minikube and fixing the context, the next installation attempt failed because NodePort `30080` was already used by the Lab 09 Service in the `devops-lab09` namespace. To avoid modifying the previous lab environment, the Helm release was installed with `--set service.nodePort=30081`. A final adjustment was required for the `post-install` hook: the smoke-test Job initially ran too early, so the hook delay was increased with `--set hooks.postInstall.sleepSeconds=20`. + +### 5.2 Development installation evidence +Commands used: + +```bash +helm install devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + --create-namespace \ + -f ./k8s/devops-info-service/values-dev.yaml \ + --set service.nodePort=30081 \ + --set hooks.postInstall.sleepSeconds=20 \ + --wait + +helm list -n devops-lab10 +kubectl get all -n devops-lab10 +kubectl describe deployment devops-app-devops-info-service -n devops-lab10 +kubectl get svc devops-app-devops-info-service -n devops-lab10 +``` + +**Evidence — `helm install`:** + +```text +NAME: devops-app +LAST DEPLOYED: Thu Apr 2 21:37:40 2026 +NAMESPACE: devops-lab10 +STATUS: deployed +REVISION: 1 +DESCRIPTION: Install complete +TEST SUITE: None +NOTES: +1. Get the release status: + helm status devops-app -n devops-lab10 + +2. Inspect the rendered Service: + kubectl get svc devops-app-devops-info-service -n devops-lab10 + +3. For local verification through port-forward: + kubectl port-forward -n devops-lab10 service/devops-app-devops-info-service 8080:80 + curl http://127.0.0.1:8080/health + curl http://127.0.0.1:8080/ready +``` + +**Evidence — `helm list`:** + +```text +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +devops-app devops-lab10 1 2026-04-02 21:37:40.003860076 +0300 MSK deployed devops-info-service-0.1.0 latest +``` + +**Evidence — `kubectl get all`:** + +```text +NAME READY STATUS RESTARTS AGE +pod/devops-app-devops-info-service-b9966ddc4-49k97 1/1 Running 0 101s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/devops-app-devops-info-service NodePort 10.108.253.122 80:30081/TCP 102s + +NAME READY UP-TO-DATE AVAILABLE AGE +deployment.apps/devops-app-devops-info-service 1/1 1 1 102s + +NAME DESIRED CURRENT READY AGE +replicaset.apps/devops-app-devops-info-service-b9966ddc4 1 1 1 102s +``` + +**Evidence — `kubectl describe deployment`:** + +```text +Name: devops-app-devops-info-service +Namespace: devops-lab10 +CreationTimestamp: Thu, 02 Apr 2026 21:37:47 +0300 +Labels: app.kubernetes.io/component=web + app.kubernetes.io/instance=devops-app + app.kubernetes.io/managed-by=Helm + app.kubernetes.io/name=devops-info-service + app.kubernetes.io/part-of=devops-core-course + app.kubernetes.io/version=latest + helm.sh/chart=devops-info-service-0.1.0 +Annotations: deployment.kubernetes.io/revision: 1 + meta.helm.sh/release-name: devops-app + meta.helm.sh/release-namespace: devops-lab10 +Selector: app.kubernetes.io/instance=devops-app,app.kubernetes.io/name=devops-info-service +Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable +StrategyType: RollingUpdate +MinReadySeconds: 0 +RollingUpdateStrategy: 0 max unavailable, 1 max surge +Pod Template: + Labels: app.kubernetes.io/component=web + app.kubernetes.io/instance=devops-app + app.kubernetes.io/managed-by=Helm + app.kubernetes.io/name=devops-info-service + app.kubernetes.io/part-of=devops-core-course + app.kubernetes.io/version=latest + helm.sh/chart=devops-info-service-0.1.0 + Containers: + devops-info-service: + Image: dorley174/devops-info-service:latest + Port: 5000/TCP (http) + Host Port: 0/TCP (http) + Limits: + cpu: 100m + memory: 128Mi + Requests: + cpu: 50m + memory: 64Mi + Liveness: http-get http://:http/health delay=5s timeout=2s period=10s #success=1 #failure=3 + Readiness: http-get http://:http/ready delay=3s timeout=2s period=5s #success=1 #failure=3 + Environment: + PORT: 5000 + DEBUG: False + APP_VARIANT: app1 + APP_MESSAGE: Lab 10 Helm development deployment + SERVICE_VERSION: lab10-dev + Mounts: + Volumes: + Node-Selectors: + Tolerations: +Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True NewReplicaSetAvailable +OldReplicaSets: +NewReplicaSet: devops-app-devops-info-service-b9966ddc4 (1/1 replicas created) +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal ScalingReplicaSet 101s deployment-controller Scaled up replica set devops-app-devops-info-service-b9966ddc4 from 0 to 1 +``` + +**Evidence — `kubectl get svc`:** + +```text +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +devops-app-devops-info-service NodePort 10.108.253.122 80:30081/TCP 103s +``` + +### 5.3 Upgrade from development to production +Commands used: + +```bash +helm upgrade devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + -f ./k8s/devops-info-service/values-prod.yaml \ + --set service.nodePort=30081 \ + --set hooks.postInstall.sleepSeconds=20 \ + --wait + +helm list -n devops-lab10 +kubectl get deploy,svc,pods -n devops-lab10 -o wide +kubectl describe deployment devops-app-devops-info-service -n devops-lab10 +kubectl get svc devops-app-devops-info-service -n devops-lab10 -o wide +``` + +**Evidence — upgrade status:** + +```text +Not executed yet. Fill this section with the real output of: +- helm upgrade ... +- helm list -n devops-lab10 +- kubectl get deploy,svc,pods -n devops-lab10 -o wide +- kubectl describe deployment devops-app-devops-info-service -n devops-lab10 +- kubectl get svc devops-app-devops-info-service -n devops-lab10 -o wide +``` + +### 5.4 Hook execution evidence +Commands used: + +```bash +kubectl get jobs -n devops-lab10 +kubectl describe job devops-app-devops-info-service-pre-install -n devops-lab10 || true +kubectl describe job devops-app-devops-info-service-post-install -n devops-lab10 || true +kubectl logs job/devops-app-devops-info-service-pre-install -n devops-lab10 || true +kubectl logs job/devops-app-devops-info-service-post-install -n devops-lab10 || true +``` + +If the delete policy already removed the Jobs, that is valid evidence too. In that case, show that `kubectl get jobs -n devops-lab10` no longer lists them. + +**Evidence — `kubectl get jobs`:** + +```text +No resources found in devops-lab10 namespace. +``` + +**Evidence — hook details or proof of deletion:** + +```text +Error from server (NotFound): jobs.batch "devops-app-devops-info-service-pre-install" not found +Error from server (NotFound): jobs.batch "devops-app-devops-info-service-post-install" not found +``` + +This is expected because both hooks use the delete policy `before-hook-creation,hook-succeeded`, so successful hook Jobs are automatically removed after completion. + +### 5.5 Application accessibility verification +Recommended local check via port-forward: + +```bash +kubectl port-forward -n devops-lab10 service/devops-app-devops-info-service 8080:80 +curl http://127.0.0.1:8080/health +curl http://127.0.0.1:8080/ready +curl http://127.0.0.1:8080/ | python3 -m json.tool +``` + +**Evidence — `/health`:** + +```text +{"status":"healthy","timestamp":"2026-04-02T18:39:48.600Z","uptime_seconds":107,"variant":"app1"} +``` + +**Evidence — `/ready`:** + +```text +{"message":"Lab 10 Helm development deployment","status":"ready","timestamp":"2026-04-02T18:39:54.967Z","uptime_seconds":114,"variant":"app1"} +``` + +**Evidence — root endpoint JSON:** + +```text +{ + "endpoints": [ + { + "description": "Service information", + "method": "GET", + "path": "/" + }, + { + "description": "Liveness health check", + "method": "GET", + "path": "/health" + }, + { + "description": "Readiness health check", + "method": "GET", + "path": "/ready" + }, + { + "description": "Prometheus metrics", + "method": "GET", + "path": "/metrics" + } + ], + "request": { + "client_ip": "127.0.0.1", + "method": "GET", + "path": "/", + "user_agent": "curl/8.5.0" + }, + "runtime": { + "current_time": "2026-04-02T18:39:44.233Z", + "timezone": "UTC", + "uptime_human": "0 hours, 1 minute", + "uptime_seconds": 102 + }, + "service": { + "description": "DevOps course info service", + "framework": "Flask", + "message": "Lab 10 Helm development deployment", + "name": "devops-info-service", + "variant": "app1", + "version": "lab10-dev" + }, + "system": { + "architecture": "x86_64", + "cpu_count": 20, + "hostname": "devops-app-devops-info-service-b9966ddc4-49k97", + "platform": "Linux", + "platform_version": "Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with-glibc2.36", + "python_version": "3.13.1" + } +} +``` + +--- + +## 6. Operations + +### 6.1 Install + +```bash +helm install devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + --create-namespace \ + -f ./k8s/devops-info-service/values-dev.yaml \ + --set service.nodePort=30081 \ + --set hooks.postInstall.sleepSeconds=20 \ + --wait +``` + +### 6.2 Upgrade + +```bash +helm upgrade devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + -f ./k8s/devops-info-service/values-prod.yaml \ + --set service.nodePort=30081 \ + --set hooks.postInstall.sleepSeconds=20 \ + --wait +``` + +### 6.3 Rollback + +```bash +helm history devops-app -n devops-lab10 +helm rollback devops-app 1 -n devops-lab10 --wait +helm list -n devops-lab10 +``` + +**Evidence — `helm history`:** + +```text +TO_FILL_HELM_HISTORY +``` + +**Evidence — rollback result:** + +```text +TO_FILL_HELM_ROLLBACK +``` + +### 6.4 Uninstall + +```bash +helm uninstall devops-app -n devops-lab10 +kubectl get all -n devops-lab10 +``` + +**Evidence — uninstall result:** + +```text +TO_FILL_HELM_UNINSTALL +``` + +--- + +## 7. Testing & Validation + +### 7.1 Commands used for validation + +```bash +helm lint ./k8s/devops-info-service +helm template devops-app ./k8s/devops-info-service +helm install --dry-run --debug devops-app ./k8s/devops-info-service \ + -n devops-lab10 \ + --create-namespace \ + -f ./k8s/devops-info-service/values-dev.yaml +``` + +### 7.2 Validation conclusion +The chart is considered valid when: +- `helm lint` finishes successfully +- `helm template` renders Kubernetes manifests without template errors +- `helm install --dry-run --debug` renders the release successfully +- the real installation creates a Deployment, a Service, Pods, and the hook Jobs +- the application responds on `/health` and `/ready` + +**Short conclusion:** + +`The Helm chart is valid. helm lint completed successfully, helm template rendered Kubernetes manifests without template errors, helm install --dry-run --debug rendered the release correctly, and the real installation created the expected Kubernetes resources. The application also responded successfully on /health and /ready.` + +--- + +## 8. Bonus — Library Chart + +### 8.1 Why a library chart was added +After creating a second application chart, helper logic became repetitive. The library chart removes duplication in these areas: +- naming logic +- common labels +- selector labels +- reusable helper patterns + +### 8.2 Library chart details +The shared library chart is stored in: + +```text +k8s/common-lib/ +``` + +Its `Chart.yaml` uses: + +```yaml +type: library +``` + +### 8.3 How the application charts use the library +Both application charts declare `common-lib` as a dependency in `Chart.yaml` and call the shared helper templates from their local wrappers. + +### 8.4 Bonus deployment commands + +```bash +helm install devops-app2 ./k8s/devops-info-service-app2 \ + -n devops-lab10 \ + --create-namespace \ + --set service.nodePort=30082 \ + --wait + +helm list -n devops-lab10 +kubectl get deploy,svc,pods -n devops-lab10 -o wide +kubectl port-forward -n devops-lab10 service/devops-app2-devops-info-service-app2 8081:80 +curl http://127.0.0.1:8081/health +curl http://127.0.0.1:8081/ready +``` + +**Evidence — second chart install:** + +```text +TO_FILL_BONUS_HELM_INSTALL +``` + +**Evidence — both releases present:** + +```text +TO_FILL_BONUS_HELM_LIST +``` + +**Evidence — second app accessibility:** + +```text +TO_FILL_BONUS_APP_CHECK +``` + +### 8.5 Benefits of the library approach +1. **DRY** — shared helper logic is defined once. +2. **Consistency** — both application charts render names and labels the same way. +3. **Maintainability** — future helper changes can be done in one place. +4. **Scalability** — additional application charts can reuse the same helper library. + +--- diff --git a/k8s/README.md b/k8s/README.md new file mode 100644 index 0000000000..1fade15d84 --- /dev/null +++ b/k8s/README.md @@ -0,0 +1,442 @@ +# Lab 09 — Kubernetes Fundamentals + +This report documents the Kubernetes deployment of the Flask-based `devops-info-service` application. + +--- + +## 1. Architecture Overview + +### 1.1 Selected local Kubernetes tool +I selected **minikube** with the **Docker driver** on **Windows + VS Code + WSL + Docker Desktop**. + +**Why this option fits my environment:** +1. It runs completely locally and does not require a cloud provider. +2. It works well with my Windows + VS Code + WSL workflow. +3. Docker Desktop provides the container runtime, and minikube uses the Docker driver directly from WSL. +4. It is practical in my region because the lab can be completed locally after the required images are downloaded. + +### 1.2 Deployment architecture +The main application is deployed with a Kubernetes **Deployment** and exposed with a **NodePort Service**. + +**Main application path:** +- `Deployment/devops-info-service` +- `Service/devops-info-service` +- `3 replicas` by default +- `NodePort 30080` +- container port `5000` + +**Bonus manifests prepared in the repository:** +- `Deployment/devops-info-service-app2` +- `Service/devops-info-service-app2` +- `Ingress/devops-course-ingress` +- host `local.example.com` +- routes `/app1` and `/app2` + +### 1.3 Networking flow +#### Base task +1. A client sends a request to the local cluster. +2. The NodePort Service exposes the application on port `30080`. +3. The Service selects Pods by label `app.kubernetes.io/name=devops-info-service`. +4. Traffic is forwarded to container port `5000`. + +#### Local verification flow actually used +In my WSL + Docker Desktop setup, direct NodePort access through `minikube ip` was not reliable. I verified the application with: + +```bash +kubectl port-forward -n devops-lab09 service/devops-info-service 8080:80 +``` + +This mapped local port `8080` to Service port `80` and allowed stable validation with `curl`. + +### 1.4 Resource allocation strategy +Each container defines conservative lab-friendly resources: +- **Requests:** `100m CPU`, `128Mi memory` +- **Limits:** `250m CPU`, `256Mi memory` + +These values are appropriate for a lightweight Flask service on a local minikube cluster running through WSL and Docker Desktop. + +--- + +## 2. Manifest Files + +### 2.1 `k8s/namespace.yml` +Creates a dedicated namespace `devops-lab09` for logical isolation of all lab resources. + +### 2.2 `k8s/deployment.yml` +Creates the primary Deployment. + +**Key implementation choices:** +1. `replicas: 3` satisfies the requirement for at least three Pod replicas. +2. `RollingUpdate` uses `maxSurge: 1` and `maxUnavailable: 0` to avoid downtime during updates. +3. `readinessProbe` checks `/ready`. +4. `livenessProbe` checks `/health`. +5. Resource requests and limits are defined. +6. Runtime hardening is enabled with `runAsNonRoot`, dropped capabilities, disabled privilege escalation, and `RuntimeDefault` seccomp. + +### 2.3 `k8s/service.yml` +Creates a `NodePort` Service. + +**Key implementation choices:** +1. Service port `80` is user-friendly. +2. `targetPort: http` forwards traffic to container port `5000`. +3. `nodePort: 30080` is fixed explicitly to simplify local testing. + +### 2.4 `k8s/deployment-app2.yml` +Creates a second Deployment for the bonus part, using the same image with different environment values. + +### 2.5 `k8s/service-app2.yml` +Creates a second NodePort Service on `30081` for the bonus application. + +### 2.6 `k8s/ingress.yml` +Defines nginx Ingress with path-based routing and TLS. + +### 2.7 Helper scripts +- `k8s/deploy.sh` — deploys the namespace, main Deployment, and Service. +- `k8s/deploy-bonus.sh` — deploys the bonus resources. +- `k8s/collect-evidence.sh` — saves Kubernetes evidence into `k8s/evidence/`. + +### 2.8 Docker image security fix +The initial deployment failed because Kubernetes could not validate a named non-root user with `runAsNonRoot: true`. + +I fixed this by updating `app_python/Dockerfile` to use a **numeric UID/GID**: + +```dockerfile +RUN addgroup --system --gid 10001 app \ + && adduser --system --uid 10001 --ingroup app --no-create-home app + +USER 10001:10001 +``` + +--- + +## 3. Deployment Evidence + +### 3.1 Cluster setup evidence + +```text +$ kubectl cluster-info +Kubernetes control plane is running at https://127.0.0.1:60412 +CoreDNS is running at https://127.0.0.1:60412/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy + +To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. +``` + +```text +$ kubectl get nodes -o wide +NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME +minikube Ready control-plane 14m v1.35.1 192.168.49.2 Debian GNU/Linux 12 (bookworm) 5.15.153.1-microsoft-standard-WSL2 docker://29.2.1 +``` + +### 3.2 Deployment evidence + +```text +$ kubectl get all -n devops-lab09 -o wide +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +pod/devops-info-service-7b48589b6b-2cf77 1/1 Running 0 5m26s 10.244.0.6 minikube +pod/devops-info-service-7b48589b6b-52j4f 1/1 Running 0 5m9s 10.244.0.8 minikube +pod/devops-info-service-7b48589b6b-wrvvj 1/1 Running 0 5m19s 10.244.0.7 minikube + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR +service/devops-info-service NodePort 10.100.203.165 80:30080/TCP 13m app.kubernetes.io/name=devops-info-service + +NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR +deployment.apps/devops-info-service 3/3 3 3 13m devops-info-service dorley174/devops-info-service:latest app.kubernetes.io/name=devops-info-service +``` + +```text +$ kubectl get pods,svc -n devops-lab09 -o wide +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +pod/devops-info-service-7b48589b6b-2cf77 1/1 Running 0 5m27s 10.244.0.6 minikube +pod/devops-info-service-7b48589b6b-52j4f 1/1 Running 0 5m10s 10.244.0.8 minikube +pod/devops-info-service-7b48589b6b-wrvvj 1/1 Running 0 5m20s 10.244.0.7 minikube + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR +service/devops-info-service NodePort 10.100.203.165 80:30080/TCP 13m app.kubernetes.io/name=devops-info-service +``` + +```text +$ kubectl describe deployment devops-info-service -n devops-lab09 +Name: devops-info-service +Namespace: devops-lab09 +Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable +StrategyType: RollingUpdate +RollingUpdateStrategy: 0 max unavailable, 1 max surge +Image: dorley174/devops-info-service:latest +Liveness: http-get http://:http/health delay=15s timeout=2s period=10s #success=1 #failure=3 +Readiness: http-get http://:http/ready delay=5s timeout=2s period=5s #success=1 #failure=3 +Environment: + PORT: 5000 + DEBUG: False + APP_VARIANT: app1 + APP_MESSAGE: Lab 09 primary deployment + SERVICE_VERSION: lab09-v1 +``` + +### 3.3 Application verification +I verified the running Service with `kubectl port-forward`. + +```bash +kubectl port-forward -n devops-lab09 service/devops-info-service 8080:80 +``` + +```text +$ curl http://127.0.0.1:8080/health +{"status":"healthy","timestamp":"2026-03-26T19:47:24.216Z","uptime_seconds":264,"variant":"app1"} +``` + +```text +$ curl http://127.0.0.1:8080/ready +{"message":"Lab 09 primary deployment","status":"ready","timestamp":"2026-03-26T19:47:24.232Z","uptime_seconds":264,"variant":"app1"} +``` + +```json +$ curl http://127.0.0.1:8080/ | python3 -m json.tool +{ + "service": { + "description": "DevOps course info service", + "framework": "Flask", + "message": "Lab 09 primary deployment", + "name": "devops-info-service", + "variant": "app1", + "version": "lab09-v1" + } +} +``` + +### 3.4 Evidence collection helper + +```text +$ ./k8s/collect-evidence.sh +Evidence saved to k8s/evidence +``` + +The raw evidence files are included in `k8s/evidence/`. + +--- + +## 4. Operations Performed + +### 4.1 Deploy the application +I deployed the namespace, Deployment, and Service declaratively with `kubectl apply` and confirmed that the Deployment reached `3/3` available replicas. + +### 4.2 Scale the Deployment to 5 replicas + +```bash +kubectl scale deployment/devops-info-service -n devops-lab09 --replicas=5 +kubectl rollout status deployment/devops-info-service -n devops-lab09 +kubectl get pods -n devops-lab09 -o wide +``` + +**Result:** the Deployment was successfully scaled from 3 to 5 replicas. + +```text +deployment.apps/devops-info-service scaled +Waiting for deployment "devops-info-service" rollout to finish: 3 of 5 updated replicas are available... +Waiting for deployment "devops-info-service" rollout to finish: 4 of 5 updated replicas are available... +deployment "devops-info-service" successfully rolled out +``` + +```text +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +devops-info-service-7b48589b6b-2b97b 1/1 Running 0 8m32s 10.244.0.14 minikube +devops-info-service-7b48589b6b-7fttq 1/1 Running 0 8m25s 10.244.0.15 minikube +devops-info-service-7b48589b6b-jjtsm 1/1 Running 0 8s 10.244.0.17 minikube +devops-info-service-7b48589b6b-wmf6g 1/1 Running 0 7s 10.244.0.18 minikube +devops-info-service-7b48589b6b-zhkpz 1/1 Running 0 8m18s 10.244.0.16 minikube +``` + +### 4.3 Demonstrate a rolling update +Instead of editing the YAML by hand during the live test, I used `kubectl set env` to trigger a Deployment rollout by changing the Pod template environment variables. + +```bash +kubectl set env deployment/devops-info-service -n devops-lab09 \ + APP_MESSAGE="Lab 09 rolling update" \ + SERVICE_VERSION="lab09-v2" +kubectl rollout status deployment/devops-info-service -n devops-lab09 +kubectl rollout history deployment/devops-info-service -n devops-lab09 +``` + +**Result:** rollout completed successfully and the Deployment spec reflected the updated values. + +```text +deployment.apps/devops-info-service env updated +Waiting for deployment "devops-info-service" rollout to finish: 1 out of 5 new replicas have been updated... +... +deployment "devops-info-service" successfully rolled out +``` + +```text +$ kubectl rollout history deployment/devops-info-service -n devops-lab09 +REVISION CHANGE-CAUSE +1 +4 +5 +``` + +```text +$ kubectl get deployment devops-info-service -n devops-lab09 -o yaml | grep -A1 -E 'APP_MESSAGE|SERVICE_VERSION' +- name: APP_MESSAGE + value: Lab 09 rolling update +- name: SERVICE_VERSION + value: lab09-v2 +``` + +### 4.4 Demonstrate rollback + +```bash +kubectl rollout undo deployment/devops-info-service -n devops-lab09 +kubectl rollout status deployment/devops-info-service -n devops-lab09 +kubectl rollout history deployment/devops-info-service -n devops-lab09 +``` + +**Result:** rollback completed successfully and the Deployment returned to the original values. + +```text +deployment.apps/devops-info-service rolled back +Waiting for deployment "devops-info-service" rollout to finish: 1 out of 5 new replicas have been updated... +... +deployment "devops-info-service" successfully rolled out +``` + +```text +$ kubectl rollout history deployment/devops-info-service -n devops-lab09 +REVISION CHANGE-CAUSE +1 +5 +6 +``` + +```text +$ kubectl get deployment devops-info-service -n devops-lab09 -o yaml | grep -A1 -E 'APP_MESSAGE|SERVICE_VERSION' +- name: APP_MESSAGE + value: Lab 09 primary deployment +- name: SERVICE_VERSION + value: lab09-v1 +``` + +Rollback response check: + +```json +$ curl http://127.0.0.1:8082/ | python3 -m json.tool +{ + "service": { + "description": "DevOps course info service", + "framework": "Flask", + "message": "Lab 09 primary deployment", + "name": "devops-info-service", + "variant": "app1", + "version": "lab09-v1" + } +} +``` + +### 4.5 Bonus status +The repository includes bonus manifests for the second application and Ingress, but I did not complete final runtime verification for the bonus part during this execution session. + +--- + +## 5. Production Considerations + +### 5.1 Health checks +Two probes are implemented: +1. **Liveness probe** on `/health` checks whether the process is alive. +2. **Readiness probe** on `/ready` checks whether the Pod is ready to receive traffic. + +### 5.2 Resource limits rationale +The application is lightweight, so the selected requests and limits are sufficient for local development while still demonstrating correct Kubernetes resource configuration. + +### 5.3 Security choices +1. Non-root execution is enforced. +2. Privilege escalation is disabled. +3. All Linux capabilities are dropped. +4. `RuntimeDefault` seccomp is enabled. +5. The Docker image now uses a numeric UID/GID to satisfy Kubernetes non-root validation. + +### 5.4 Suggested production improvements +For a real production deployment, I would additionally introduce: +1. `ConfigMap` and `Secret` resources. +2. `HorizontalPodAutoscaler`. +3. `NetworkPolicy` rules. +4. `PodDisruptionBudget`. +5. immutable image tags instead of `latest`. +6. CI/CD-driven promotion between environments. +7. centralized monitoring, logging, and alerting. + +--- + +## 6. Challenges & Solutions + +### 6.1 Vagrant was more complex than necessary +I initially tried the lab with Vagrant, but the workflow was slower and more fragile than needed for this local setup. I switched to **WSL + Docker Desktop + minikube**, which was simpler and more reliable. + +### 6.2 Docker Desktop / WSL networking behavior +Direct access through `minikube ip` and the NodePort was not reliable in my environment. The stable solution was to verify the application with `kubectl port-forward`. + +### 6.3 `CreateContainerConfigError` +The first deployment failed with: + +```text +Error: container has runAsNonRoot and image has non-numeric user (app), cannot verify user is non-root +``` + +I fixed this by updating the Docker image to use a numeric UID/GID (`10001:10001`) and rebuilding the image inside minikube's Docker environment. + +### 6.4 Rolling update evidence capture +During update verification, one local `port-forward` session was interrupted. To keep the evidence trustworthy, I documented the successful rollout with: +- rollout status +- rollout history +- Deployment environment values after update +- rollback verification with a successful application response + +--- + +## 7. Recommended Local Execution Order + +### 7.1 Prerequisites +- Windows host +- Docker Desktop +- WSL +- `kubectl` installed in WSL +- `minikube` installed in WSL + +### 7.2 Cluster startup +```bash +minikube start --driver=docker +kubectl cluster-info +kubectl get nodes -o wide +``` + +### 7.3 Build and deploy +```bash +eval $(minikube -p minikube docker-env) +docker build -t dorley174/devops-info-service:latest ./app_python +./k8s/deploy.sh +``` + +### 7.4 Verify the application +```bash +kubectl port-forward -n devops-lab09 service/devops-info-service 8080:80 +curl http://127.0.0.1:8080/health +curl http://127.0.0.1:8080/ready +curl http://127.0.0.1:8080/ | python3 -m json.tool +``` + +### 7.5 Scale, update, rollback +Use the commands from Section 4. + +--- + +## 8. Conclusion + +The lab requirements for the base task were completed: +- local Kubernetes cluster started successfully +- application deployed with 3 replicas +- Service exposed through NodePort +- readiness and liveness probes implemented +- resource requests and limits configured +- Deployment scaled to 5 replicas +- rolling update demonstrated +- rollback demonstrated +- evidence collected into `k8s/evidence/` + +The repository also contains prepared bonus manifests for a second app and Ingress. diff --git a/k8s/collect-evidence.sh b/k8s/collect-evidence.sh new file mode 100644 index 0000000000..22d70da958 --- /dev/null +++ b/k8s/collect-evidence.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +OUT_DIR="k8s/evidence" +NS="devops-lab09" +APP="devops-info-service" + +mkdir -p "$OUT_DIR" + +kubectl cluster-info > "$OUT_DIR/01-cluster-info.txt" +kubectl get nodes -o wide > "$OUT_DIR/02-get-nodes.txt" +kubectl get all -n "$NS" -o wide > "$OUT_DIR/03-get-all.txt" +kubectl get pods,svc -n "$NS" -o wide > "$OUT_DIR/04-get-pods-svc.txt" +kubectl describe deployment "$APP" -n "$NS" > "$OUT_DIR/05-describe-deployment.txt" +kubectl rollout history deployment/"$APP" -n "$NS" > "$OUT_DIR/06-rollout-history.txt" +kubectl get ingress -n "$NS" -o wide > "$OUT_DIR/07-get-ingress.txt" 2>/dev/null || true +kubectl get events -n "$NS" --sort-by=.metadata.creationTimestamp > "$OUT_DIR/08-events.txt" + +echo "Evidence saved to $OUT_DIR" diff --git a/k8s/common-lib/Chart.yaml b/k8s/common-lib/Chart.yaml new file mode 100644 index 0000000000..b7ef5e10b6 --- /dev/null +++ b/k8s/common-lib/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: common-lib +description: Shared Helm helper templates for DevOps course applications +type: library +version: 0.1.0 diff --git a/k8s/common-lib/templates/_helpers.tpl b/k8s/common-lib/templates/_helpers.tpl new file mode 100644 index 0000000000..00bb324574 --- /dev/null +++ b/k8s/common-lib/templates/_helpers.tpl @@ -0,0 +1,56 @@ +{{/* +Expand the chart name. +*/}} +{{- define "common-lib.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully-qualified resource name. +*/}} +{{- define "common-lib.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := include "common-lib.name" . -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart label value. +*/}} +{{- define "common-lib.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" -}} +{{- end -}} + +{{/* +Selector labels shared across resources. +*/}} +{{- define "common-lib.selectorLabels" -}} +app.kubernetes.io/name: {{ include "common-lib.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Common labels shared across resources. +*/}} +{{- define "common-lib.labels" -}} +helm.sh/chart: {{ include "common-lib.chart" . }} +{{ include "common-lib.selectorLabels" . }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{ with .Values.component }} +app.kubernetes.io/component: {{ . | quote }} +{{ end }} +{{ with .Values.partOf }} +app.kubernetes.io/part-of: {{ . | quote }} +{{ end }} +{{ with .Values.commonLabels }} +{{ toYaml . }} +{{ end }} +{{- end }} diff --git a/k8s/curl_result.txt b/k8s/curl_result.txt new file mode 100644 index 0000000000..8725f74d33 --- /dev/null +++ b/k8s/curl_result.txt @@ -0,0 +1,55 @@ + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 917 100 917 0 0 20928 0 --:--:-- --:--:-- --:--:-- 21325 +{ + "endpoints": [ + { + "description": "Service information", + "method": "GET", + "path": "/" + }, + { + "description": "Liveness health check", + "method": "GET", + "path": "/health" + }, + { + "description": "Readiness health check", + "method": "GET", + "path": "/ready" + }, + { + "description": "Prometheus metrics", + "method": "GET", + "path": "/metrics" + } + ], + "request": { + "client_ip": "127.0.0.1", + "method": "GET", + "path": "/", + "user_agent": "curl/8.5.0" + }, + "runtime": { + "current_time": "2026-03-26T19:57:23.089Z", + "timezone": "UTC", + "uptime_human": "0 hours, 1 minute", + "uptime_seconds": 61 + }, + "service": { + "description": "DevOps course info service", + "framework": "Flask", + "message": "Lab 09 primary deployment", + "name": "devops-info-service", + "variant": "app1", + "version": "lab09-v1" + }, + "system": { + "architecture": "x86_64", + "cpu_count": 20, + "hostname": "devops-info-service-7b48589b6b-2b97b", + "platform": "Linux", + "platform_version": "Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with-glibc2.36", + "python_version": "3.13.1" + } +} \ No newline at end of file diff --git a/k8s/deploy-bonus.sh b/k8s/deploy-bonus.sh new file mode 100644 index 0000000000..f099f39332 --- /dev/null +++ b/k8s/deploy-bonus.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +kubectl apply -f k8s/deployment-app2.yml +kubectl apply -f k8s/service-app2.yml +kubectl apply -f k8s/ingress.yml +kubectl rollout status deployment/devops-info-service-app2 -n devops-lab09 +kubectl get ingress,pods,svc -n devops-lab09 -o wide diff --git a/k8s/deploy.sh b/k8s/deploy.sh new file mode 100644 index 0000000000..baef96f8f4 --- /dev/null +++ b/k8s/deploy.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +kubectl apply -f k8s/namespace.yml +kubectl apply -f k8s/deployment.yml +kubectl apply -f k8s/service.yml +kubectl rollout status deployment/devops-info-service -n devops-lab09 +kubectl get pods,svc -n devops-lab09 -o wide diff --git a/k8s/deployment-app2.yml b/k8s/deployment-app2.yml new file mode 100644 index 0000000000..4a0b472fde --- /dev/null +++ b/k8s/deployment-app2.yml @@ -0,0 +1,78 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: devops-info-service-app2 + namespace: devops-lab09 + labels: + app.kubernetes.io/name: devops-info-service-app2 + app.kubernetes.io/component: web + app.kubernetes.io/part-of: devops-core-course +spec: + replicas: 2 + revisionHistoryLimit: 10 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app.kubernetes.io/name: devops-info-service-app2 + template: + metadata: + labels: + app.kubernetes.io/name: devops-info-service-app2 + app.kubernetes.io/component: web + app.kubernetes.io/part-of: devops-core-course + spec: + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: devops-info-service-app2 + image: dorley174/devops-info-service:latest + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 5000 + protocol: TCP + env: + - name: PORT + value: "5000" + - name: DEBUG + value: "False" + - name: APP_VARIANT + value: "app2" + - name: APP_MESSAGE + value: "Lab 09 bonus deployment" + - name: SERVICE_VERSION + value: "lab09-bonus" + resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "250m" + memory: "256Mi" + readinessProbe: + httpGet: + path: /ready + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + livenessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true diff --git a/k8s/deployment.yml b/k8s/deployment.yml new file mode 100644 index 0000000000..283a808676 --- /dev/null +++ b/k8s/deployment.yml @@ -0,0 +1,78 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: devops-info-service + namespace: devops-lab09 + labels: + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/component: web + app.kubernetes.io/part-of: devops-core-course +spec: + replicas: 3 + revisionHistoryLimit: 10 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app.kubernetes.io/name: devops-info-service + template: + metadata: + labels: + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/component: web + app.kubernetes.io/part-of: devops-core-course + spec: + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: devops-info-service + image: dorley174/devops-info-service:latest + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 5000 + protocol: TCP + env: + - name: PORT + value: "5000" + - name: DEBUG + value: "False" + - name: APP_VARIANT + value: "app1" + - name: APP_MESSAGE + value: "Lab 09 primary deployment" + - name: SERVICE_VERSION + value: "lab09-v1" + resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "250m" + memory: "256Mi" + readinessProbe: + httpGet: + path: /ready + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + livenessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true diff --git a/k8s/devops-info-service-app2/Chart.yaml b/k8s/devops-info-service-app2/Chart.yaml new file mode 100644 index 0000000000..b44318d903 --- /dev/null +++ b/k8s/devops-info-service-app2/Chart.yaml @@ -0,0 +1,16 @@ +apiVersion: v2 +name: devops-info-service-app2 +description: Helm chart for the bonus DevOps info service deployment +type: application +version: 0.1.0 +appVersion: "latest" +keywords: + - python + - flask + - kubernetes + - helm + - bonus +dependencies: + - name: common-lib + version: 0.1.0 + repository: "file://../common-lib" diff --git a/k8s/devops-info-service-app2/charts/common-lib/Chart.yaml b/k8s/devops-info-service-app2/charts/common-lib/Chart.yaml new file mode 100644 index 0000000000..b7ef5e10b6 --- /dev/null +++ b/k8s/devops-info-service-app2/charts/common-lib/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: common-lib +description: Shared Helm helper templates for DevOps course applications +type: library +version: 0.1.0 diff --git a/k8s/devops-info-service-app2/charts/common-lib/templates/_helpers.tpl b/k8s/devops-info-service-app2/charts/common-lib/templates/_helpers.tpl new file mode 100644 index 0000000000..00bb324574 --- /dev/null +++ b/k8s/devops-info-service-app2/charts/common-lib/templates/_helpers.tpl @@ -0,0 +1,56 @@ +{{/* +Expand the chart name. +*/}} +{{- define "common-lib.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully-qualified resource name. +*/}} +{{- define "common-lib.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := include "common-lib.name" . -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart label value. +*/}} +{{- define "common-lib.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" -}} +{{- end -}} + +{{/* +Selector labels shared across resources. +*/}} +{{- define "common-lib.selectorLabels" -}} +app.kubernetes.io/name: {{ include "common-lib.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Common labels shared across resources. +*/}} +{{- define "common-lib.labels" -}} +helm.sh/chart: {{ include "common-lib.chart" . }} +{{ include "common-lib.selectorLabels" . }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{ with .Values.component }} +app.kubernetes.io/component: {{ . | quote }} +{{ end }} +{{ with .Values.partOf }} +app.kubernetes.io/part-of: {{ . | quote }} +{{ end }} +{{ with .Values.commonLabels }} +{{ toYaml . }} +{{ end }} +{{- end }} diff --git a/k8s/devops-info-service-app2/templates/NOTES.txt b/k8s/devops-info-service-app2/templates/NOTES.txt new file mode 100644 index 0000000000..513703355b --- /dev/null +++ b/k8s/devops-info-service-app2/templates/NOTES.txt @@ -0,0 +1,10 @@ +1. Get the release status: + helm status {{ .Release.Name }} -n {{ .Release.Namespace }} + +2. Inspect the rendered Service: + kubectl get svc {{ include "devops-info-service-app2.fullname" . }} -n {{ .Release.Namespace }} + +3. For local verification through port-forward: + kubectl port-forward -n {{ .Release.Namespace }} service/{{ include "devops-info-service-app2.fullname" . }} 8081:{{ .Values.service.port }} + curl http://127.0.0.1:8081/health + curl http://127.0.0.1:8081/ready diff --git a/k8s/devops-info-service-app2/templates/_helpers.tpl b/k8s/devops-info-service-app2/templates/_helpers.tpl new file mode 100644 index 0000000000..3a2d3c36ad --- /dev/null +++ b/k8s/devops-info-service-app2/templates/_helpers.tpl @@ -0,0 +1,26 @@ +{{/* +Compatibility wrappers around the shared common-lib helper templates. +*/}} +{{- define "devops-info-service-app2.name" -}} +{{ include "common-lib.name" . }} +{{- end -}} + +{{- define "devops-info-service-app2.fullname" -}} +{{ include "common-lib.fullname" . }} +{{- end -}} + +{{- define "devops-info-service-app2.chart" -}} +{{ include "common-lib.chart" . }} +{{- end -}} + +{{- define "devops-info-service-app2.labels" -}} +{{ include "common-lib.labels" . }} +{{- end -}} + +{{- define "devops-info-service-app2.selectorLabels" -}} +{{ include "common-lib.selectorLabels" . }} +{{- end -}} + +{{- define "devops-info-service-app2.hookImage" -}} +{{- printf "%s:%s" .Values.hooks.image.repository .Values.hooks.image.tag -}} +{{- end -}} diff --git a/k8s/devops-info-service-app2/templates/deployment.yaml b/k8s/devops-info-service-app2/templates/deployment.yaml new file mode 100644 index 0000000000..bbd23b0644 --- /dev/null +++ b/k8s/devops-info-service-app2/templates/deployment.yaml @@ -0,0 +1,68 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info-service-app2.fullname" . }} + labels: + {{- include "devops-info-service-app2.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: {{ .Values.strategy.maxSurge }} + maxUnavailable: {{ .Values.strategy.maxUnavailable }} + selector: + matchLabels: + {{- include "devops-info-service-app2.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info-service-app2.labels" . | nindent 8 }} + spec: + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: {{ .Chart.Name }} + image: "{{ required "image.repository is required" .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.containerPort }} + protocol: TCP + env: + - name: PORT + value: {{ .Values.env.port | quote }} + - name: DEBUG + value: {{ .Values.env.debug | quote }} + - name: APP_VARIANT + value: {{ .Values.env.appVariant | quote }} + - name: APP_MESSAGE + value: {{ .Values.env.appMessage | quote }} + - name: SERVICE_VERSION + value: {{ .Values.env.serviceVersion | quote }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: {{ .Values.readinessProbe.port }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.path }} + port: {{ .Values.livenessProbe.port }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true diff --git a/k8s/devops-info-service-app2/templates/hooks/post-install-job.yaml b/k8s/devops-info-service-app2/templates/hooks/post-install-job.yaml new file mode 100644 index 0000000000..23a394fd84 --- /dev/null +++ b/k8s/devops-info-service-app2/templates/hooks/post-install-job.yaml @@ -0,0 +1,33 @@ +{{- if .Values.hooks.postInstall.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "devops-info-service-app2.fullname" . }}-post-install + labels: + {{- include "devops-info-service-app2.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "{{ .Values.hooks.postInstall.weight }}" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + backoffLimit: 0 + template: + metadata: + labels: + {{- include "devops-info-service-app2.labels" . | nindent 8 }} + spec: + restartPolicy: Never + containers: + - name: post-install-smoke-test + image: {{ include "devops-info-service-app2.hookImage" . }} + imagePullPolicy: {{ .Values.hooks.image.pullPolicy }} + command: + - sh + - -c + - >- + echo "[post-install] running smoke test against {{ include "devops-info-service-app2.fullname" . }}" && + sleep {{ .Values.hooks.postInstall.sleepSeconds }} && + wget -qO- http://{{ include "devops-info-service-app2.fullname" . }}:{{ .Values.service.port }}/ready && + echo && + echo "[post-install] smoke test passed" +{{- end }} diff --git a/k8s/devops-info-service-app2/templates/hooks/pre-install-job.yaml b/k8s/devops-info-service-app2/templates/hooks/pre-install-job.yaml new file mode 100644 index 0000000000..adac174cce --- /dev/null +++ b/k8s/devops-info-service-app2/templates/hooks/pre-install-job.yaml @@ -0,0 +1,33 @@ +{{- if .Values.hooks.preInstall.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "devops-info-service-app2.fullname" . }}-pre-install + labels: + {{- include "devops-info-service-app2.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "{{ .Values.hooks.preInstall.weight }}" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + backoffLimit: 0 + template: + metadata: + labels: + {{- include "devops-info-service-app2.labels" . | nindent 8 }} + spec: + restartPolicy: Never + containers: + - name: pre-install-validation + image: {{ include "devops-info-service-app2.hookImage" . }} + imagePullPolicy: {{ .Values.hooks.image.pullPolicy }} + command: + - sh + - -c + - >- + echo "[pre-install] validating chart values for {{ include "devops-info-service-app2.fullname" . }}" && + test -n "{{ .Values.image.repository }}" && + echo "[pre-install] image repository is set" && + sleep {{ .Values.hooks.preInstall.sleepSeconds }} && + echo "[pre-install] validation completed" +{{- end }} diff --git a/k8s/devops-info-service-app2/templates/service.yaml b/k8s/devops-info-service-app2/templates/service.yaml new file mode 100644 index 0000000000..d6031dac77 --- /dev/null +++ b/k8s/devops-info-service-app2/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info-service-app2.fullname" . }} + labels: + {{- include "devops-info-service-app2.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + selector: + {{- include "devops-info-service-app2.selectorLabels" . | nindent 4 }} + ports: + - name: http + protocol: TCP + port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} +{{ if and (eq .Values.service.type "NodePort") .Values.service.nodePort }} + nodePort: {{ .Values.service.nodePort }} +{{ end }} diff --git a/k8s/devops-info-service-app2/values.yaml b/k8s/devops-info-service-app2/values.yaml new file mode 100644 index 0000000000..b3523bfd9f --- /dev/null +++ b/k8s/devops-info-service-app2/values.yaml @@ -0,0 +1,70 @@ +nameOverride: "" +fullnameOverride: "" +component: web +partOf: devops-core-course +commonLabels: {} + +replicaCount: 2 +revisionHistoryLimit: 10 + +image: + repository: dorley174/devops-info-service + tag: "latest" + pullPolicy: IfNotPresent + +containerPort: 5000 + +strategy: + maxSurge: 1 + maxUnavailable: 0 + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30081 + +resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 250m + memory: 256Mi + +env: + port: "5000" + debug: "False" + appVariant: app2 + appMessage: "Lab 10 Helm bonus deployment" + serviceVersion: "lab10-bonus" + +readinessProbe: + path: /ready + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + +livenessProbe: + path: /health + port: http + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + +hooks: + image: + repository: busybox + tag: "1.36" + pullPolicy: IfNotPresent + preInstall: + enabled: true + weight: -5 + sleepSeconds: 3 + postInstall: + enabled: true + weight: 5 + sleepSeconds: 5 diff --git a/k8s/devops-info-service/Chart.yaml b/k8s/devops-info-service/Chart.yaml new file mode 100644 index 0000000000..20b1962009 --- /dev/null +++ b/k8s/devops-info-service/Chart.yaml @@ -0,0 +1,15 @@ +apiVersion: v2 +name: devops-info-service +description: Helm chart for the primary DevOps info service deployment +type: application +version: 0.1.0 +appVersion: "latest" +keywords: + - python + - flask + - kubernetes + - helm +dependencies: + - name: common-lib + version: 0.1.0 + repository: "file://../common-lib" diff --git a/k8s/devops-info-service/charts/common-lib/Chart.yaml b/k8s/devops-info-service/charts/common-lib/Chart.yaml new file mode 100644 index 0000000000..b7ef5e10b6 --- /dev/null +++ b/k8s/devops-info-service/charts/common-lib/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: common-lib +description: Shared Helm helper templates for DevOps course applications +type: library +version: 0.1.0 diff --git a/k8s/devops-info-service/charts/common-lib/templates/_helpers.tpl b/k8s/devops-info-service/charts/common-lib/templates/_helpers.tpl new file mode 100644 index 0000000000..00bb324574 --- /dev/null +++ b/k8s/devops-info-service/charts/common-lib/templates/_helpers.tpl @@ -0,0 +1,56 @@ +{{/* +Expand the chart name. +*/}} +{{- define "common-lib.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully-qualified resource name. +*/}} +{{- define "common-lib.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := include "common-lib.name" . -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart label value. +*/}} +{{- define "common-lib.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" -}} +{{- end -}} + +{{/* +Selector labels shared across resources. +*/}} +{{- define "common-lib.selectorLabels" -}} +app.kubernetes.io/name: {{ include "common-lib.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Common labels shared across resources. +*/}} +{{- define "common-lib.labels" -}} +helm.sh/chart: {{ include "common-lib.chart" . }} +{{ include "common-lib.selectorLabels" . }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{ with .Values.component }} +app.kubernetes.io/component: {{ . | quote }} +{{ end }} +{{ with .Values.partOf }} +app.kubernetes.io/part-of: {{ . | quote }} +{{ end }} +{{ with .Values.commonLabels }} +{{ toYaml . }} +{{ end }} +{{- end }} diff --git a/k8s/devops-info-service/templates/NOTES.txt b/k8s/devops-info-service/templates/NOTES.txt new file mode 100644 index 0000000000..dade968511 --- /dev/null +++ b/k8s/devops-info-service/templates/NOTES.txt @@ -0,0 +1,10 @@ +1. Get the release status: + helm status {{ .Release.Name }} -n {{ .Release.Namespace }} + +2. Inspect the rendered Service: + kubectl get svc {{ include "devops-info-service.fullname" . }} -n {{ .Release.Namespace }} + +3. For local verification through port-forward: + kubectl port-forward -n {{ .Release.Namespace }} service/{{ include "devops-info-service.fullname" . }} 8080:{{ .Values.service.port }} + curl http://127.0.0.1:8080/health + curl http://127.0.0.1:8080/ready diff --git a/k8s/devops-info-service/templates/_helpers.tpl b/k8s/devops-info-service/templates/_helpers.tpl new file mode 100644 index 0000000000..b9380d7edb --- /dev/null +++ b/k8s/devops-info-service/templates/_helpers.tpl @@ -0,0 +1,26 @@ +{{/* +Compatibility wrappers around the shared common-lib helper templates. +*/}} +{{- define "devops-info-service.name" -}} +{{ include "common-lib.name" . }} +{{- end -}} + +{{- define "devops-info-service.fullname" -}} +{{ include "common-lib.fullname" . }} +{{- end -}} + +{{- define "devops-info-service.chart" -}} +{{ include "common-lib.chart" . }} +{{- end -}} + +{{- define "devops-info-service.labels" -}} +{{ include "common-lib.labels" . }} +{{- end -}} + +{{- define "devops-info-service.selectorLabels" -}} +{{ include "common-lib.selectorLabels" . }} +{{- end -}} + +{{- define "devops-info-service.hookImage" -}} +{{- printf "%s:%s" .Values.hooks.image.repository .Values.hooks.image.tag -}} +{{- end -}} diff --git a/k8s/devops-info-service/templates/deployment.yaml b/k8s/devops-info-service/templates/deployment.yaml new file mode 100644 index 0000000000..d711e62ccb --- /dev/null +++ b/k8s/devops-info-service/templates/deployment.yaml @@ -0,0 +1,68 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: {{ .Values.strategy.maxSurge }} + maxUnavailable: {{ .Values.strategy.maxUnavailable }} + selector: + matchLabels: + {{- include "devops-info-service.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info-service.labels" . | nindent 8 }} + spec: + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: {{ .Chart.Name }} + image: "{{ required "image.repository is required" .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.containerPort }} + protocol: TCP + env: + - name: PORT + value: {{ .Values.env.port | quote }} + - name: DEBUG + value: {{ .Values.env.debug | quote }} + - name: APP_VARIANT + value: {{ .Values.env.appVariant | quote }} + - name: APP_MESSAGE + value: {{ .Values.env.appMessage | quote }} + - name: SERVICE_VERSION + value: {{ .Values.env.serviceVersion | quote }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: {{ .Values.readinessProbe.port }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.path }} + port: {{ .Values.livenessProbe.port }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true diff --git a/k8s/devops-info-service/templates/hooks/post-install-job.yaml b/k8s/devops-info-service/templates/hooks/post-install-job.yaml new file mode 100644 index 0000000000..88e5d358ad --- /dev/null +++ b/k8s/devops-info-service/templates/hooks/post-install-job.yaml @@ -0,0 +1,33 @@ +{{- if .Values.hooks.postInstall.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "devops-info-service.fullname" . }}-post-install + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "{{ .Values.hooks.postInstall.weight }}" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + backoffLimit: 0 + template: + metadata: + labels: + {{- include "devops-info-service.labels" . | nindent 8 }} + spec: + restartPolicy: Never + containers: + - name: post-install-smoke-test + image: {{ include "devops-info-service.hookImage" . }} + imagePullPolicy: {{ .Values.hooks.image.pullPolicy }} + command: + - sh + - -c + - >- + echo "[post-install] running smoke test against {{ include "devops-info-service.fullname" . }}" && + sleep {{ .Values.hooks.postInstall.sleepSeconds }} && + wget -qO- http://{{ include "devops-info-service.fullname" . }}:{{ .Values.service.port }}/ready && + echo && + echo "[post-install] smoke test passed" +{{- end }} diff --git a/k8s/devops-info-service/templates/hooks/pre-install-job.yaml b/k8s/devops-info-service/templates/hooks/pre-install-job.yaml new file mode 100644 index 0000000000..a4eb9b7d2b --- /dev/null +++ b/k8s/devops-info-service/templates/hooks/pre-install-job.yaml @@ -0,0 +1,33 @@ +{{- if .Values.hooks.preInstall.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "devops-info-service.fullname" . }}-pre-install + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "{{ .Values.hooks.preInstall.weight }}" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + backoffLimit: 0 + template: + metadata: + labels: + {{- include "devops-info-service.labels" . | nindent 8 }} + spec: + restartPolicy: Never + containers: + - name: pre-install-validation + image: {{ include "devops-info-service.hookImage" . }} + imagePullPolicy: {{ .Values.hooks.image.pullPolicy }} + command: + - sh + - -c + - >- + echo "[pre-install] validating chart values for {{ include "devops-info-service.fullname" . }}" && + test -n "{{ .Values.image.repository }}" && + echo "[pre-install] image repository is set" && + sleep {{ .Values.hooks.preInstall.sleepSeconds }} && + echo "[pre-install] validation completed" +{{- end }} diff --git a/k8s/devops-info-service/templates/service.yaml b/k8s/devops-info-service/templates/service.yaml new file mode 100644 index 0000000000..14b7ce49f0 --- /dev/null +++ b/k8s/devops-info-service/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + selector: + {{- include "devops-info-service.selectorLabels" . | nindent 4 }} + ports: + - name: http + protocol: TCP + port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} +{{ if and (eq .Values.service.type "NodePort") .Values.service.nodePort }} + nodePort: {{ .Values.service.nodePort }} +{{ end }} diff --git a/k8s/devops-info-service/values-dev.yaml b/k8s/devops-info-service/values-dev.yaml new file mode 100644 index 0000000000..0bd7f4d242 --- /dev/null +++ b/k8s/devops-info-service/values-dev.yaml @@ -0,0 +1,27 @@ +replicaCount: 1 + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 100m + memory: 128Mi + +env: + appMessage: "Lab 10 Helm development deployment" + serviceVersion: "lab10-dev" + +readinessProbe: + initialDelaySeconds: 3 + periodSeconds: 5 + +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 10 diff --git a/k8s/devops-info-service/values-prod.yaml b/k8s/devops-info-service/values-prod.yaml new file mode 100644 index 0000000000..89dd180c0b --- /dev/null +++ b/k8s/devops-info-service/values-prod.yaml @@ -0,0 +1,27 @@ +replicaCount: 3 + +service: + type: LoadBalancer + port: 80 + targetPort: 5000 + nodePort: null + +resources: + requests: + cpu: 200m + memory: 256Mi + limits: + cpu: 500m + memory: 512Mi + +env: + appMessage: "Lab 10 Helm production deployment" + serviceVersion: "lab10-prod" + +readinessProbe: + initialDelaySeconds: 10 + periodSeconds: 3 + +livenessProbe: + initialDelaySeconds: 30 + periodSeconds: 5 diff --git a/k8s/devops-info-service/values.yaml b/k8s/devops-info-service/values.yaml new file mode 100644 index 0000000000..911fd72ab0 --- /dev/null +++ b/k8s/devops-info-service/values.yaml @@ -0,0 +1,70 @@ +nameOverride: "" +fullnameOverride: "" +component: web +partOf: devops-core-course +commonLabels: {} + +replicaCount: 3 +revisionHistoryLimit: 10 + +image: + repository: dorley174/devops-info-service + tag: "latest" + pullPolicy: IfNotPresent + +containerPort: 5000 + +strategy: + maxSurge: 1 + maxUnavailable: 0 + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 250m + memory: 256Mi + +env: + port: "5000" + debug: "False" + appVariant: app1 + appMessage: "Lab 10 Helm deployment" + serviceVersion: "lab10-v1" + +readinessProbe: + path: /ready + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + +livenessProbe: + path: /health + port: http + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + +hooks: + image: + repository: busybox + tag: "1.36" + pullPolicy: IfNotPresent + preInstall: + enabled: true + weight: -5 + sleepSeconds: 3 + postInstall: + enabled: true + weight: 5 + sleepSeconds: 5 diff --git a/k8s/evidence/01-cluster-info.txt b/k8s/evidence/01-cluster-info.txt new file mode 100644 index 0000000000..378eadb21b --- /dev/null +++ b/k8s/evidence/01-cluster-info.txt @@ -0,0 +1,4 @@ +Kubernetes control plane is running at https://127.0.0.1:60412 +CoreDNS is running at https://127.0.0.1:60412/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy + +To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. diff --git a/k8s/evidence/02-get-nodes.txt b/k8s/evidence/02-get-nodes.txt new file mode 100644 index 0000000000..d9a2b26a89 --- /dev/null +++ b/k8s/evidence/02-get-nodes.txt @@ -0,0 +1,2 @@ +NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME +minikube Ready control-plane 14m v1.35.1 192.168.49.2 Debian GNU/Linux 12 (bookworm) 5.15.153.1-microsoft-standard-WSL2 docker://29.2.1 diff --git a/k8s/evidence/03-get-all.txt b/k8s/evidence/03-get-all.txt new file mode 100644 index 0000000000..ae2d1d6915 --- /dev/null +++ b/k8s/evidence/03-get-all.txt @@ -0,0 +1,14 @@ +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +pod/devops-info-service-7b48589b6b-2cf77 1/1 Running 0 5m26s 10.244.0.6 minikube +pod/devops-info-service-7b48589b6b-52j4f 1/1 Running 0 5m9s 10.244.0.8 minikube +pod/devops-info-service-7b48589b6b-wrvvj 1/1 Running 0 5m19s 10.244.0.7 minikube + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR +service/devops-info-service NodePort 10.100.203.165 80:30080/TCP 13m app.kubernetes.io/name=devops-info-service + +NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR +deployment.apps/devops-info-service 3/3 3 3 13m devops-info-service dorley174/devops-info-service:latest app.kubernetes.io/name=devops-info-service + +NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR +replicaset.apps/devops-info-service-7b48589b6b 3 3 3 5m26s devops-info-service dorley174/devops-info-service:latest app.kubernetes.io/name=devops-info-service,pod-template-hash=7b48589b6b +replicaset.apps/devops-info-service-8689cb4bbc 0 0 0 13m devops-info-service dorley174/devops-info-service:latest app.kubernetes.io/name=devops-info-service,pod-template-hash=8689cb4bbc diff --git a/k8s/evidence/04-get-pods-svc.txt b/k8s/evidence/04-get-pods-svc.txt new file mode 100644 index 0000000000..037a7c981e --- /dev/null +++ b/k8s/evidence/04-get-pods-svc.txt @@ -0,0 +1,7 @@ +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +pod/devops-info-service-7b48589b6b-2cf77 1/1 Running 0 5m27s 10.244.0.6 minikube +pod/devops-info-service-7b48589b6b-52j4f 1/1 Running 0 5m10s 10.244.0.8 minikube +pod/devops-info-service-7b48589b6b-wrvvj 1/1 Running 0 5m20s 10.244.0.7 minikube + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR +service/devops-info-service NodePort 10.100.203.165 80:30080/TCP 13m app.kubernetes.io/name=devops-info-service diff --git a/k8s/evidence/05-describe-deployment.txt b/k8s/evidence/05-describe-deployment.txt new file mode 100644 index 0000000000..1efc8774b5 --- /dev/null +++ b/k8s/evidence/05-describe-deployment.txt @@ -0,0 +1,57 @@ +Name: devops-info-service +Namespace: devops-lab09 +CreationTimestamp: Thu, 26 Mar 2026 22:35:19 +0300 +Labels: app.kubernetes.io/component=web + app.kubernetes.io/name=devops-info-service + app.kubernetes.io/part-of=devops-core-course +Annotations: deployment.kubernetes.io/revision: 2 +Selector: app.kubernetes.io/name=devops-info-service +Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable +StrategyType: RollingUpdate +MinReadySeconds: 0 +RollingUpdateStrategy: 0 max unavailable, 1 max surge +Pod Template: + Labels: app.kubernetes.io/component=web + app.kubernetes.io/name=devops-info-service + app.kubernetes.io/part-of=devops-core-course + Annotations: kubectl.kubernetes.io/restartedAt: 2026-03-26T22:42:54+03:00 + Containers: + devops-info-service: + Image: dorley174/devops-info-service:latest + Port: 5000/TCP (http) + Host Port: 0/TCP (http) + Limits: + cpu: 250m + memory: 256Mi + Requests: + cpu: 100m + memory: 128Mi + Liveness: http-get http://:http/health delay=15s timeout=2s period=10s #success=1 #failure=3 + Readiness: http-get http://:http/ready delay=5s timeout=2s period=5s #success=1 #failure=3 + Environment: + PORT: 5000 + DEBUG: False + APP_VARIANT: app1 + APP_MESSAGE: Lab 09 primary deployment + SERVICE_VERSION: lab09-v1 + Mounts: + Volumes: + Node-Selectors: + Tolerations: +Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True NewReplicaSetAvailable +OldReplicaSets: devops-info-service-8689cb4bbc (0/0 replicas created) +NewReplicaSet: devops-info-service-7b48589b6b (3/3 replicas created) +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal ScalingReplicaSet 13m deployment-controller Scaled up replica set devops-info-service-8689cb4bbc from 0 to 3 + Normal ScalingReplicaSet 5m27s deployment-controller Scaled up replica set devops-info-service-7b48589b6b from 0 to 1 + Normal ScalingReplicaSet 5m20s deployment-controller Scaled down replica set devops-info-service-8689cb4bbc from 3 to 2 + Normal ScalingReplicaSet 5m20s deployment-controller Scaled up replica set devops-info-service-7b48589b6b from 1 to 2 + Normal ScalingReplicaSet 5m10s deployment-controller Scaled down replica set devops-info-service-8689cb4bbc from 2 to 1 + Normal ScalingReplicaSet 5m10s deployment-controller Scaled up replica set devops-info-service-7b48589b6b from 2 to 3 + Normal ScalingReplicaSet 5m2s deployment-controller Scaled down replica set devops-info-service-8689cb4bbc from 1 to 0 diff --git a/k8s/evidence/06-rollout-history.txt b/k8s/evidence/06-rollout-history.txt new file mode 100644 index 0000000000..4e3de9fb60 --- /dev/null +++ b/k8s/evidence/06-rollout-history.txt @@ -0,0 +1,5 @@ +deployment.apps/devops-info-service +REVISION CHANGE-CAUSE +1 +2 + diff --git a/k8s/evidence/07-get-ingress.txt b/k8s/evidence/07-get-ingress.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/k8s/evidence/08-events.txt b/k8s/evidence/08-events.txt new file mode 100644 index 0000000000..953684f826 --- /dev/null +++ b/k8s/evidence/08-events.txt @@ -0,0 +1,38 @@ +LAST SEEN TYPE REASON OBJECT MESSAGE +13m Normal SuccessfulCreate replicaset/devops-info-service-8689cb4bbc Created pod: devops-info-service-8689cb4bbc-49c68 +13m Normal Scheduled pod/devops-info-service-8689cb4bbc-gbntr Successfully assigned devops-lab09/devops-info-service-8689cb4bbc-gbntr to minikube +13m Normal ScalingReplicaSet deployment/devops-info-service Scaled up replica set devops-info-service-8689cb4bbc from 0 to 3 +13m Normal Scheduled pod/devops-info-service-8689cb4bbc-49c68 Successfully assigned devops-lab09/devops-info-service-8689cb4bbc-49c68 to minikube +13m Normal SuccessfulCreate replicaset/devops-info-service-8689cb4bbc Created pod: devops-info-service-8689cb4bbc-gbntr +13m Normal SuccessfulCreate replicaset/devops-info-service-8689cb4bbc Created pod: devops-info-service-8689cb4bbc-tmcsb +13m Normal Scheduled pod/devops-info-service-8689cb4bbc-tmcsb Successfully assigned devops-lab09/devops-info-service-8689cb4bbc-tmcsb to minikube +7m19s Warning Failed pod/devops-info-service-8689cb4bbc-49c68 Error: container has runAsNonRoot and image has non-numeric user (app), cannot verify user is non-root (pod: "devops-info-service-8689cb4bbc-49c68_devops-lab09(73e9a23a-7db6-421c-b843-970354f1e086)", container: devops-info-service) +7m19s Normal Pulled pod/devops-info-service-8689cb4bbc-49c68 Container image "dorley174/devops-info-service:latest" already present on machine and can be accessed by the pod +7m21s Normal Pulled pod/devops-info-service-8689cb4bbc-gbntr Container image "dorley174/devops-info-service:latest" already present on machine and can be accessed by the pod +7m18s Warning Failed pod/devops-info-service-8689cb4bbc-tmcsb Error: container has runAsNonRoot and image has non-numeric user (app), cannot verify user is non-root (pod: "devops-info-service-8689cb4bbc-tmcsb_devops-lab09(67a638c8-08d0-4a24-a638-9a1e6b758032)", container: devops-info-service) +7m18s Normal Pulled pod/devops-info-service-8689cb4bbc-tmcsb Container image "dorley174/devops-info-service:latest" already present on machine and can be accessed by the pod +7m21s Warning Failed pod/devops-info-service-8689cb4bbc-gbntr Error: container has runAsNonRoot and image has non-numeric user (app), cannot verify user is non-root (pod: "devops-info-service-8689cb4bbc-gbntr_devops-lab09(6221b7e7-e23d-42bd-9957-c4efe897415f)", container: devops-info-service) +5m29s Normal ScalingReplicaSet deployment/devops-info-service Scaled up replica set devops-info-service-7b48589b6b from 0 to 1 +5m29s Normal SuccessfulCreate replicaset/devops-info-service-7b48589b6b Created pod: devops-info-service-7b48589b6b-2cf77 +5m29s Normal Scheduled pod/devops-info-service-7b48589b6b-2cf77 Successfully assigned devops-lab09/devops-info-service-7b48589b6b-2cf77 to minikube +5m28s Normal Started pod/devops-info-service-7b48589b6b-2cf77 Container started +5m28s Normal Created pod/devops-info-service-7b48589b6b-2cf77 Container created +5m28s Normal Pulled pod/devops-info-service-7b48589b6b-2cf77 Container image "dorley174/devops-info-service:latest" already present on machine and can be accessed by the pod +5m22s Normal SuccessfulDelete replicaset/devops-info-service-8689cb4bbc Deleted pod: devops-info-service-8689cb4bbc-49c68 +5m22s Normal Scheduled pod/devops-info-service-7b48589b6b-wrvvj Successfully assigned devops-lab09/devops-info-service-7b48589b6b-wrvvj to minikube +5m22s Normal SuccessfulCreate replicaset/devops-info-service-7b48589b6b Created pod: devops-info-service-7b48589b6b-wrvvj +5m22s Normal ScalingReplicaSet deployment/devops-info-service Scaled up replica set devops-info-service-7b48589b6b from 1 to 2 +5m22s Normal ScalingReplicaSet deployment/devops-info-service Scaled down replica set devops-info-service-8689cb4bbc from 3 to 2 +5m21s Normal Pulled pod/devops-info-service-7b48589b6b-wrvvj Container image "dorley174/devops-info-service:latest" already present on machine and can be accessed by the pod +5m21s Normal Created pod/devops-info-service-7b48589b6b-wrvvj Container created +5m21s Normal Started pod/devops-info-service-7b48589b6b-wrvvj Container started +5m12s Normal SuccessfulCreate replicaset/devops-info-service-7b48589b6b Created pod: devops-info-service-7b48589b6b-52j4f +5m12s Normal SuccessfulDelete replicaset/devops-info-service-8689cb4bbc Deleted pod: devops-info-service-8689cb4bbc-gbntr +5m12s Normal Scheduled pod/devops-info-service-7b48589b6b-52j4f Successfully assigned devops-lab09/devops-info-service-7b48589b6b-52j4f to minikube +5m12s Normal ScalingReplicaSet deployment/devops-info-service Scaled down replica set devops-info-service-8689cb4bbc from 2 to 1 +5m12s Normal ScalingReplicaSet deployment/devops-info-service Scaled up replica set devops-info-service-7b48589b6b from 2 to 3 +5m11s Normal Started pod/devops-info-service-7b48589b6b-52j4f Container started +5m11s Normal Created pod/devops-info-service-7b48589b6b-52j4f Container created +5m11s Normal Pulled pod/devops-info-service-7b48589b6b-52j4f Container image "dorley174/devops-info-service:latest" already present on machine and can be accessed by the pod +5m4s Normal SuccessfulDelete replicaset/devops-info-service-8689cb4bbc Deleted pod: devops-info-service-8689cb4bbc-tmcsb +5m4s Normal ScalingReplicaSet deployment/devops-info-service Scaled down replica set devops-info-service-8689cb4bbc from 1 to 0 diff --git a/k8s/evidence/09-deployment-before.txt b/k8s/evidence/09-deployment-before.txt new file mode 100644 index 0000000000..1564dc93c0 --- /dev/null +++ b/k8s/evidence/09-deployment-before.txt @@ -0,0 +1,2 @@ +NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR +devops-info-service 3/3 3 3 29m devops-info-service dorley174/devops-info-service:latest app.kubernetes.io/name=devops-info-service diff --git a/k8s/evidence/10-pods-before.txt b/k8s/evidence/10-pods-before.txt new file mode 100644 index 0000000000..69ceb653d0 --- /dev/null +++ b/k8s/evidence/10-pods-before.txt @@ -0,0 +1,4 @@ +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +devops-info-service-7b48589b6b-2b97b 1/1 Running 0 8m24s 10.244.0.14 minikube +devops-info-service-7b48589b6b-7fttq 1/1 Running 0 8m17s 10.244.0.15 minikube +devops-info-service-7b48589b6b-zhkpz 1/1 Running 0 8m10s 10.244.0.16 minikube diff --git a/k8s/evidence/11-pods-after-scale.txt b/k8s/evidence/11-pods-after-scale.txt new file mode 100644 index 0000000000..5936628d54 --- /dev/null +++ b/k8s/evidence/11-pods-after-scale.txt @@ -0,0 +1,6 @@ +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +devops-info-service-7b48589b6b-2b97b 1/1 Running 0 8m32s 10.244.0.14 minikube +devops-info-service-7b48589b6b-7fttq 1/1 Running 0 8m25s 10.244.0.15 minikube +devops-info-service-7b48589b6b-jjtsm 1/1 Running 0 8s 10.244.0.17 minikube +devops-info-service-7b48589b6b-wmf6g 1/1 Running 0 7s 10.244.0.18 minikube +devops-info-service-7b48589b6b-zhkpz 1/1 Running 0 8m18s 10.244.0.16 minikube diff --git a/k8s/evidence/12-deployment-after-scale.txt b/k8s/evidence/12-deployment-after-scale.txt new file mode 100644 index 0000000000..6f3d84e203 --- /dev/null +++ b/k8s/evidence/12-deployment-after-scale.txt @@ -0,0 +1,2 @@ +NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR +devops-info-service 5/5 5 5 29m devops-info-service dorley174/devops-info-service:latest app.kubernetes.io/name=devops-info-service diff --git a/k8s/evidence/13-rollout-history-after-update.txt b/k8s/evidence/13-rollout-history-after-update.txt new file mode 100644 index 0000000000..76380fc135 --- /dev/null +++ b/k8s/evidence/13-rollout-history-after-update.txt @@ -0,0 +1,5 @@ +deployment.apps/devops-info-service +REVISION CHANGE-CAUSE +1 +4 +5 diff --git a/k8s/evidence/14-env-after-update.txt b/k8s/evidence/14-env-after-update.txt new file mode 100644 index 0000000000..c4222427cf --- /dev/null +++ b/k8s/evidence/14-env-after-update.txt @@ -0,0 +1,4 @@ + - name: APP_MESSAGE + value: Lab 09 rolling update + - name: SERVICE_VERSION + value: lab09-v2 diff --git a/k8s/evidence/15-rollout-history-after-rollback.txt b/k8s/evidence/15-rollout-history-after-rollback.txt new file mode 100644 index 0000000000..e2feb8609c --- /dev/null +++ b/k8s/evidence/15-rollout-history-after-rollback.txt @@ -0,0 +1,5 @@ +deployment.apps/devops-info-service +REVISION CHANGE-CAUSE +1 +5 +6 diff --git a/k8s/evidence/16-env-after-rollback.txt b/k8s/evidence/16-env-after-rollback.txt new file mode 100644 index 0000000000..abd5fafc86 --- /dev/null +++ b/k8s/evidence/16-env-after-rollback.txt @@ -0,0 +1,4 @@ + - name: APP_MESSAGE + value: Lab 09 primary deployment + - name: SERVICE_VERSION + value: lab09-v1 diff --git a/k8s/evidence/17-health.txt b/k8s/evidence/17-health.txt new file mode 100644 index 0000000000..2f5438bd07 --- /dev/null +++ b/k8s/evidence/17-health.txt @@ -0,0 +1 @@ +{"status":"healthy","timestamp":"2026-03-26T19:47:24.216Z","uptime_seconds":264,"variant":"app1"} diff --git a/k8s/evidence/18-ready.txt b/k8s/evidence/18-ready.txt new file mode 100644 index 0000000000..422d3a0176 --- /dev/null +++ b/k8s/evidence/18-ready.txt @@ -0,0 +1 @@ +{"message":"Lab 09 primary deployment","status":"ready","timestamp":"2026-03-26T19:47:24.232Z","uptime_seconds":264,"variant":"app1"} diff --git a/k8s/evidence/19-root-after-rollback.json b/k8s/evidence/19-root-after-rollback.json new file mode 100644 index 0000000000..e618153f29 --- /dev/null +++ b/k8s/evidence/19-root-after-rollback.json @@ -0,0 +1,52 @@ +{ + "endpoints": [ + { + "description": "Service information", + "method": "GET", + "path": "/" + }, + { + "description": "Liveness health check", + "method": "GET", + "path": "/health" + }, + { + "description": "Readiness health check", + "method": "GET", + "path": "/ready" + }, + { + "description": "Prometheus metrics", + "method": "GET", + "path": "/metrics" + } + ], + "request": { + "client_ip": "127.0.0.1", + "method": "GET", + "path": "/", + "user_agent": "curl/8.5.0" + }, + "runtime": { + "current_time": "2026-03-26T19:57:23.089Z", + "timezone": "UTC", + "uptime_human": "0 hours, 1 minute", + "uptime_seconds": 61 + }, + "service": { + "description": "DevOps course info service", + "framework": "Flask", + "message": "Lab 09 primary deployment", + "name": "devops-info-service", + "variant": "app1", + "version": "lab09-v1" + }, + "system": { + "architecture": "x86_64", + "cpu_count": 20, + "hostname": "devops-info-service-7b48589b6b-2b97b", + "platform": "Linux", + "platform_version": "Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with-glibc2.36", + "python_version": "3.13.1" + } +} diff --git a/k8s/ingress.yml b/k8s/ingress.yml new file mode 100644 index 0000000000..2b6e7d130a --- /dev/null +++ b/k8s/ingress.yml @@ -0,0 +1,32 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: devops-course-ingress + namespace: devops-lab09 + annotations: + nginx.ingress.kubernetes.io/use-regex: "true" + nginx.ingress.kubernetes.io/rewrite-target: /$2 +spec: + ingressClassName: nginx + tls: + - hosts: + - local.example.com + secretName: apps-ingress-tls + rules: + - host: local.example.com + http: + paths: + - path: /app1(/|$)(.*) + pathType: ImplementationSpecific + backend: + service: + name: devops-info-service + port: + number: 80 + - path: /app2(/|$)(.*) + pathType: ImplementationSpecific + backend: + service: + name: devops-info-service-app2 + port: + number: 80 diff --git a/k8s/namespace.yml b/k8s/namespace.yml new file mode 100644 index 0000000000..3bc418d3e7 --- /dev/null +++ b/k8s/namespace.yml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: devops-lab09 + labels: + app.kubernetes.io/part-of: devops-core-course + app.kubernetes.io/managed-by: kubectl diff --git a/k8s/service-app2.yml b/k8s/service-app2.yml new file mode 100644 index 0000000000..14b9aba0df --- /dev/null +++ b/k8s/service-app2.yml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: devops-info-service-app2 + namespace: devops-lab09 + labels: + app.kubernetes.io/name: devops-info-service-app2 + app.kubernetes.io/component: web +spec: + type: NodePort + selector: + app.kubernetes.io/name: devops-info-service-app2 + ports: + - name: http + protocol: TCP + port: 80 + targetPort: http + nodePort: 30081 diff --git a/k8s/service.yml b/k8s/service.yml new file mode 100644 index 0000000000..c27e336f28 --- /dev/null +++ b/k8s/service.yml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: devops-info-service + namespace: devops-lab09 + labels: + app.kubernetes.io/name: devops-info-service + app.kubernetes.io/component: web +spec: + type: NodePort + selector: + app.kubernetes.io/name: devops-info-service + ports: + - name: http + protocol: TCP + port: 80 + targetPort: http + nodePort: 30080 diff --git a/monitoring/.env.example b/monitoring/.env.example index 7b1de1cf95..dd8134271f 100644 --- a/monitoring/.env.example +++ b/monitoring/.env.example @@ -3,8 +3,9 @@ # Bash: cp .env.example .env GRAFANA_ADMIN_USER=admin -GRAFANA_ADMIN_PASSWORD=ChangeMe_Lab07! +GRAFANA_ADMIN_PASSWORD=ChangeMe_Lab08! GRAFANA_PORT=3000 LOKI_PORT=3100 PROMTAIL_PORT=9080 +PROMETHEUS_PORT=9090 APP_PORT=8000 diff --git a/monitoring/docker-compose.yml b/monitoring/docker-compose.yml index 91209015d4..c32068b172 100644 --- a/monitoring/docker-compose.yml +++ b/monitoring/docker-compose.yml @@ -19,9 +19,9 @@ services: restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3100/ready"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 20s deploy: resources: @@ -55,14 +55,14 @@ services: condition: service_healthy healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:9080/ready"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 20s deploy: resources: limits: - cpus: "0.75" + cpus: "0.5" memory: 512M reservations: cpus: "0.10" @@ -79,6 +79,7 @@ services: GF_AUTH_ANONYMOUS_ENABLED: "false" GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer GF_SECURITY_ALLOW_EMBEDDING: "false" + GF_METRICS_ENABLED: "true" ports: - "${GRAFANA_PORT:-3000}:3000" volumes: @@ -96,10 +97,52 @@ services: condition: service_healthy healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/api/health"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 30s + deploy: + resources: + limits: + cpus: "0.5" + memory: 512M + reservations: + cpus: "0.10" + memory: 128M + + prometheus: + image: prom/prometheus:v3.9.0 + container_name: devops-prometheus + command: + - --config.file=/etc/prometheus/prometheus.yml + - --storage.tsdb.path=/prometheus + - --storage.tsdb.retention.time=15d + - --storage.tsdb.retention.size=10GB + - --web.enable-lifecycle + ports: + - "${PROMETHEUS_PORT:-9090}:9090" + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro + - prometheus-data:/prometheus + networks: + - logging + labels: + logging: "promtail" + app: "devops-prometheus" + restart: unless-stopped + depends_on: + loki: + condition: service_healthy + grafana: + condition: service_healthy + app-python: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:9090/-/healthy"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 20s deploy: resources: limits: @@ -113,7 +156,7 @@ services: build: context: ../app_python dockerfile: Dockerfile - image: devops-info-service:lab07 + image: devops-info-service:lab08 container_name: devops-python environment: HOST: "0.0.0.0" @@ -129,15 +172,15 @@ services: restart: unless-stopped healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health')"] - interval: 15s + interval: 10s timeout: 5s - retries: 10 + retries: 5 start_period: 20s deploy: resources: limits: - cpus: "0.75" - memory: 512M + cpus: "0.5" + memory: 256M reservations: cpus: "0.10" memory: 128M @@ -150,3 +193,4 @@ volumes: loki-data: grafana-data: promtail-data: + prometheus-data: diff --git a/monitoring/docs/LAB08.md b/monitoring/docs/LAB08.md new file mode 100644 index 0000000000..2a1e0dfd2a --- /dev/null +++ b/monitoring/docs/LAB08.md @@ -0,0 +1,522 @@ +# Lab08 — Metrics & Monitoring with Prometheus + +## Summary + +This implementation extends the existing Lab07 observability stack with Prometheus-based metrics collection and a Grafana metrics dashboard. + +The solution is designed for a fully local, free workflow: +- Windows host +- WSL2 for Linux tooling +- optional Vagrant VM for a 100% local deployment target +- no external cloud services required + +The repository now contains: +- Prometheus instrumentation in the Python Flask application +- a `/metrics` endpoint compatible with Prometheus scraping +- a Prometheus service added to `monitoring/docker-compose.yml` +- Grafana provisioning for both Loki and Prometheus data sources +- a prebuilt Grafana metrics dashboard with 9 panels +- updated local validation instructions for Windows + WSL2 + Vagrant +- extended Ansible automation for the full Loki + Prometheus + Grafana stack + +## Architecture + +```text + +-----------------------+ + | Grafana | + | dashboards + Explore | + +-----------+-----------+ + ^ + | + +--------------+---------------+ + | | + | | + metrics | | logs + | | + | | ++---------------------+-----+ +---------+---------+ +| Python Flask App | | Promtail | +| /, /health, /metrics | | Docker SD + labels| ++------------+--------------+ +---------+---------+ + | | + | scrape | push + v v + +------+----------------+ +-------+--------+ + | Prometheus | | Loki | + | pull-based TSDB | | log storage | + +-----------------------+ +----------------+ +``` + +## Repository Structure + +```text +monitoring/ +├── .env.example +├── docker-compose.yml +├── docs/ +│ ├── LAB07.md +│ ├── LAB08.md +│ ├── LOCAL_VALIDATION_WINDOWS.md +│ └── screenshots/ +├── grafana/ +│ ├── dashboards/ +│ │ ├── lab07-logging.json +│ │ └── lab08-metrics.json +│ └── provisioning/ +│ ├── dashboards/ +│ │ └── dashboard-provider.yml +│ └── datasources/ +│ └── loki.yml +├── loki/ +│ └── config.yml +├── prometheus/ +│ └── prometheus.yml +└── promtail/ + └── config.yml +``` + +## Application Instrumentation + +### Metrics added to the Flask application + +#### 1. HTTP request counter + +Metric: + +```text +http_requests_total{method, endpoint, status_code} +``` + +Purpose: +- total request volume +- request rate calculations +- status code distribution +- error rate calculations + +#### 2. HTTP request duration histogram + +Metric: + +```text +http_request_duration_seconds{method, endpoint} +``` + +Purpose: +- latency measurements +- percentile calculations such as p95 +- heatmap visualizations for duration buckets + +Note: +- `status_code` is intentionally not used on the latency histogram to avoid unnecessary cardinality growth and to keep PromQL queries simpler + +#### 3. In-progress requests gauge + +Metric: + +```text +http_requests_in_progress +``` + +Purpose: +- concurrent request visibility +- simple saturation signal +- active request panel in Grafana + +#### 4. Application-specific business metrics + +Metrics: + +```text +devops_info_endpoint_calls_total{endpoint} +devops_info_system_collection_seconds +devops_info_uptime_seconds +``` + +Purpose: +- endpoint usage tracking +- system information collection cost tracking +- current service uptime for dashboards and troubleshooting + +### Instrumentation design choices + +- request metrics are collected in Flask hooks (`before_request`, `after_request`, `teardown_request`) +- endpoint labels are normalized to avoid high-cardinality labels +- unknown routes are grouped as `unmatched` +- `/metrics` scrape traffic is excluded from request-rate business metrics to avoid self-scrape noise in dashboards +- `/metrics` keeps the Prometheus content type and is not overwritten by the JSON response middleware +- the in-progress gauge is decremented in `teardown_request` to avoid leaks in error scenarios + +## Prometheus Configuration + +File: + +```text +monitoring/prometheus/prometheus.yml +``` + +### Scrape settings + +- scrape interval: `15s` +- evaluation interval: `15s` + +### Scrape targets + +1. `prometheus` + - target: `localhost:9090` +2. `app` + - target: `app-python:8000` + - path: `/metrics` +3. `loki` + - target: `loki:3100` +4. `grafana` + - target: `grafana:3000` + +### Retention policy + +Prometheus retention is configured via container flags in `docker-compose.yml`: + +```text +--storage.tsdb.retention.time=15d +--storage.tsdb.retention.size=10GB +``` + +Why this matters: +- avoids unbounded disk usage +- keeps local storage predictable on a laptop or VM +- is fully compatible with a free local deployment model + +## Grafana Dashboard Walkthrough + +Dashboard file: + +```text +monitoring/grafana/dashboards/lab08-metrics.json +``` + +The dashboard includes 9 panels. + +### 1. Request Rate by Endpoint + +Query: + +```promql +sum by (endpoint) (rate(http_requests_total{endpoint!="/metrics"}[5m])) +``` + +Purpose: +- visualizes request throughput +- supports the **R** in RED + +### 2. Error Rate (5xx) + +Query: + +```promql +sum(rate(http_requests_total{status_code=~"5.."}[5m])) +``` + +Purpose: +- shows server-side errors per second +- supports the **E** in RED + +### 3. Request Duration p95 by Endpoint + +Query: + +```promql +histogram_quantile(0.95, sum by (le, endpoint) (rate(http_request_duration_seconds_bucket{endpoint!="/metrics"}[5m]))) +``` + +Purpose: +- tracks latency percentiles +- supports the **D** in RED + +### 4. Active Requests + +Query: + +```promql +sum(http_requests_in_progress) +``` + +Purpose: +- highlights current concurrency pressure + +### 5. Application Uptime + +Query: + +```promql +max(devops_info_uptime_seconds) +``` + +Purpose: +- confirms the service is alive and progressing normally + +### 6. Request Duration Heatmap + +Query: + +```promql +sum by (le) (rate(http_request_duration_seconds_bucket{endpoint!="/metrics"}[5m])) +``` + +Purpose: +- visualizes latency bucket distribution over time + +### 7. Status Code Distribution + +Query: + +```promql +sum by (status_code) (rate(http_requests_total[5m])) +``` + +Purpose: +- shows how traffic is split across response classes and codes + +### 8. App Target Uptime + +Query: + +```promql +up{job="app"} +``` + +Purpose: +- shows whether Prometheus is successfully scraping the application + +### 9. System Info Collection p95 + +Query: + +```promql +histogram_quantile(0.95, sum by (le) (rate(devops_info_system_collection_seconds_bucket[5m]))) +``` + +Purpose: +- tracks the internal cost of the service-specific system information collection function + +## PromQL Examples + +### RED method queries + +```promql +sum by (endpoint) (rate(http_requests_total{endpoint!="/metrics"}[5m])) +sum(rate(http_requests_total{status_code=~"5.."}[5m])) +histogram_quantile(0.95, sum by (le, endpoint) (rate(http_request_duration_seconds_bucket{endpoint!="/metrics"}[5m]))) +``` + +### Additional useful queries + +```promql +sum by (status_code) (rate(http_requests_total[5m])) +sum(http_requests_in_progress) +up{job="app"} +max(devops_info_uptime_seconds) +sum by (job) (up) +histogram_quantile(0.95, sum by (le) (rate(devops_info_system_collection_seconds_bucket[5m]))) +``` + +## Production Setup + +### Health checks + +Health checks are configured for: +- Loki +- Promtail +- Grafana +- Prometheus +- Python application + +### Resource limits + +Configured Docker Compose limits: + +| Service | CPU | Memory | +|--------|-----|--------| +| Loki | 1.0 | 1G | +| Promtail | 0.5 | 512M | +| Grafana | 0.5 | 512M | +| Prometheus | 1.0 | 1G | +| App | 0.5 | 256M | + +### Persistence + +Named volumes: +- `loki-data` +- `promtail-data` +- `grafana-data` +- `prometheus-data` + +### Security and operational choices + +- Grafana anonymous access is disabled +- Grafana credentials are externalized via `.env` +- Grafana metrics are explicitly enabled for Prometheus scraping +- the app health check uses Python stdlib instead of `curl` to keep the slim image lightweight + +## Local Run Commands + +### Docker Compose from WSL2 + +```bash +cd monitoring +cp .env.example .env +# edit GRAFANA_ADMIN_PASSWORD in .env + +docker compose up -d --build +docker compose ps +``` + +### Generate traffic + +```bash +for i in {1..25}; do curl -s http://127.0.0.1:8000/ > /dev/null; done +for i in {1..25}; do curl -s http://127.0.0.1:8000/health > /dev/null; done +curl -s http://127.0.0.1:8000/does-not-exist > /dev/null +curl -s http://127.0.0.1:8000/metrics | head -40 +``` + +### Validate Prometheus + +```bash +curl http://127.0.0.1:9090/-/healthy +curl http://127.0.0.1:9090/api/v1/targets | python -m json.tool +``` + +Open in browser: +- `http://127.0.0.1:9090/targets` +- `http://127.0.0.1:3000` + +### Useful Grafana checks + +- Confirm both data sources are provisioned: Loki and Prometheus +- Open dashboard: `Lab08 - Prometheus Metrics Overview` +- Run ad hoc PromQL query: `up` + +## Testing Results + +### Static validation completed in the sandbox + +The following checks were completed while preparing this repository update: +- Python syntax validation for the Flask application +- JSON validation for the Grafana dashboard file +- YAML validation for Docker Compose, Prometheus, Loki, and Promtail configuration files +- local application runtime validation for `/`, `/health`, `/metrics`, and request counters + +Captured application-side evidence is stored in: + +```text +monitoring/docs/evidence/ +``` + +Files included there: +- `app-root.json` +- `app-health.json` +- `app-metrics-sample.txt` +- `app-metrics-headers.txt` + +### Full stack runtime validation to run locally + +Because the sandbox used to prepare this patch does not provide a Docker daemon, UI screenshots and multi-container runtime proofs must be captured locally with the provided commands. + +Recommended screenshots to capture locally: +- all `lab08*.png` files in `monitoring/docs/screenshots` + + +## Metrics vs Logs + +### Use metrics when you need +- rates and trends over time +- low-cost aggregation +- alert thresholds +- latency and saturation views + +### Use logs when you need +- exact event details +- request-specific context +- raw error messages and stack traces +- forensic troubleshooting + +### Combined observability model in this repository + +- **Loki + Promtail** answer: *what happened?* +- **Prometheus** answers: *how much, how often, how fast?* +- **Grafana** provides one UI for both views + +## Challenges and Solutions + +### 1. `/metrics` vs JSON middleware + +Problem: +- the existing `after_request` hook forced `application/json` on every response + +Solution: +- the hook now preserves the Prometheus metrics content type and only rewrites JSON responses + +### 2. Label cardinality control + +Problem: +- raw request paths can create unbounded label values + +Solution: +- metrics use normalized endpoints and group unknown routes as `unmatched` + +### 3. In-progress gauge correctness + +Problem: +- a gauge can leak if it is incremented but not decremented during exceptions + +Solution: +- the decrement is handled in `teardown_request` + +### 4. Windows + WSL2 + Vagrant networking + +Problem: +- forwarded ports can behave differently in Windows and WSL2 + +Solution: +- the local validation guide includes both localhost and host-IP guidance + +### 5. Free local deployment requirement + +Problem: +- the lab should not depend on paid services or third-party cloud platforms + +Solution: +- the full stack runs locally with Docker Compose and can also run on the Vagrant VM via Ansible + +## Bonus — Ansible Automation + +The existing `ansible/roles/monitoring` role was extended to cover Lab08 as well. + +Implemented bonus scope: +- Prometheus variables added to role defaults +- Prometheus config generated from a Jinja2 template +- Docker Compose template updated to include Prometheus +- Grafana provisioning now includes both Loki and Prometheus data sources +- the Lab08 dashboard JSON is rendered by Ansible automatically +- the deployment task verifies Prometheus health and both data sources + +Playbook: + +```bash +cd ansible +ansible-galaxy collection install -r requirements.yml +ansible-playbook -i inventory/hosts.ini playbooks/deploy-monitoring.yml +``` + +## Evidence Checklist + +After you run the stack locally, verify the following: + +- `/metrics` endpoint returns Prometheus-formatted metrics +- Prometheus `/targets` shows all targets as `UP` +- Grafana has both Loki and Prometheus data sources +- the Lab08 dashboard shows live data in all panels +- `docker compose ps` shows healthy containers +- dashboards survive `docker compose down` / `docker compose up -d` + +All these checklist you can see as a screenshots in: +- all `lab08*.png` files in `monitoring/docs/screenshots` diff --git a/monitoring/docs/LOCAL_VALIDATION_WINDOWS.md b/monitoring/docs/LOCAL_VALIDATION_WINDOWS.md index 7055bf9974..f66c637525 100644 --- a/monitoring/docs/LOCAL_VALIDATION_WINDOWS.md +++ b/monitoring/docs/LOCAL_VALIDATION_WINDOWS.md @@ -1,80 +1,119 @@ -# Lab07 Local Validation on Windows 11 (WSL2 + Vagrant-friendly) - -This guide is tailored for the same environment used in earlier labs: -- Windows 11 host -- WSL2 Ubuntu for Linux commands -- VirtualBox + Vagrant for the free local VM option -- Russia / unstable access to Docker registries is possible, so retries are expected - -## Option A — Run the stack directly from WSL (if you already have a Linux Docker engine) - -1. Copy the example environment file: - ```bash - cd monitoring - cp .env.example .env - ``` -2. Edit `.env` and set a real Grafana password. -3. Start the stack: - ```bash - docker compose up -d --build - docker compose ps - ``` -4. Verify endpoints: - ```bash - curl http://127.0.0.1:3100/ready - curl http://127.0.0.1:9080/targets - curl http://127.0.0.1:8000/health - ``` -5. Open Grafana in a browser: `http://127.0.0.1:3000` - - user: `admin` - - password: value from `.env` - -## Option B — 100% free path using the Vagrant VM and Ansible bonus automation - -1. Reload Vagrant to apply the new forwarded ports: - ```powershell - vagrant reload - vagrant status - vagrant port - ``` -2. Make sure the VM is reachable from WSL. If forwarded ports do not work via `127.0.0.1` inside WSL, use the current Windows host IP from the `vEthernet (WSL...)` adapter. -3. From WSL, activate your Python environment and run: - ```bash - source ~/venvs/devops-lab/bin/activate - export ANSIBLE_CONFIG=/home//work/ansible/ansible.cfg - cd /path/to/repo/ansible - ansible-galaxy collection install -r requirements.yml - ansible-playbook -i inventory/hosts.ini playbooks/deploy-monitoring.yml - ``` -4. From Windows open: - - Grafana: `http://127.0.0.1:3000` - - Loki ready endpoint: `http://127.0.0.1:3100/ready` - - App health: `http://127.0.0.1:8000/health` -5. From WSL, if `127.0.0.1` forwarding does not work, use the current Windows host IP instead of localhost. - -## Generate example traffic - -### Bash / WSL +# Local Validation on Windows 11 (WSL2 + Vagrant-friendly) + +This guide is tailored for a fully local and free setup: +- Windows host +- WSL2 for Linux commands +- VS Code connected to WSL2 +- optional Vagrant VM for a dedicated Linux target +- no external cloud services required + +## Ports used by the observability stack + +- App: `8000` +- Grafana: `3000` +- Loki: `3100` +- Promtail: `9080` +- Prometheus: `9090` + +## Option A — Run directly from WSL2 + +### 1. Prepare environment file + +```bash +cd monitoring +cp .env.example .env +``` + +Set a real Grafana password in `.env`. + +### 2. Start the stack + +```bash +docker compose up -d --build +docker compose ps +``` + +### 3. Verify endpoints + +```bash +curl http://127.0.0.1:8000/health +curl http://127.0.0.1:8000/metrics | head -40 +curl http://127.0.0.1:3100/ready +curl http://127.0.0.1:9080/targets +curl http://127.0.0.1:9090/-/healthy +``` + +### 4. Open browser pages + +- Grafana: `http://127.0.0.1:3000` +- Prometheus targets: `http://127.0.0.1:9090/targets` +- Prometheus graph: `http://127.0.0.1:9090/graph` + +### 5. Generate traffic + ```bash -for i in {1..20}; do curl -s http://127.0.0.1:8000/ > /dev/null; done -for i in {1..20}; do curl -s http://127.0.0.1:8000/health > /dev/null; done +for i in {1..30}; do curl -s http://127.0.0.1:8000/ > /dev/null; done +for i in {1..30}; do curl -s http://127.0.0.1:8000/health > /dev/null; done curl -s http://127.0.0.1:8000/does-not-exist > /dev/null ``` -### PowerShell +### 6. Prometheus queries to test + +```promql +up +sum by (endpoint) (rate(http_requests_total{endpoint!="/metrics"}[5m])) +sum(rate(http_requests_total{status_code=~"5.."}[5m])) +histogram_quantile(0.95, sum by (le, endpoint) (rate(http_request_duration_seconds_bucket{endpoint!="/metrics"}[5m]))) +sum by (status_code) (rate(http_requests_total[5m])) +``` + +### 7. Grafana checks + +- log in with the credentials from `.env` +- confirm both data sources exist: Loki and Prometheus +- open the `Lab08 - Prometheus Metrics Overview` dashboard +- verify the panels update after traffic generation + +## Option B — Run on the Vagrant VM + +### 1. Reload Vagrant to apply port forwarding + ```powershell -1..20 | ForEach-Object { Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/ | Out-Null } -1..20 | ForEach-Object { Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/health | Out-Null } -try { Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/does-not-exist | Out-Null } catch {} +vagrant reload +vagrant status +vagrant port ``` -## Useful LogQL checks +### 2. Run Ansible deployment from WSL2 -```logql -{job="docker"} -{app="devops-python"} -{app="devops-python"} | json | level="INFO" -{app="devops-python"} | json | level="ERROR" -sum by (app) (rate({app=~"devops-.*"}[1m])) -sum by (level) (count_over_time({app=~"devops-.*"} | json [5m])) +```bash +cd ansible +ansible-galaxy collection install -r requirements.yml +ansible-playbook -i inventory/hosts.ini playbooks/deploy-monitoring.yml ``` + +### 3. Verify from the Windows host or WSL2 + +```bash +curl http://127.0.0.1:8000/health +curl http://127.0.0.1:9090/-/healthy +``` + +If WSL2 cannot reach forwarded ports through `127.0.0.1`, use the current Windows host IP. + +## PowerShell traffic generation + +```powershell +1..30 | ForEach-Object { Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/ | Out-Null } +1..30 | ForEach-Object { Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/health | Out-Null } +try { Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/does-not-exist | Out-Null } catch {} +``` + +## What to capture for proof + +- `/metrics` endpoint output in the browser or terminal +- Prometheus `/targets` page with all targets `UP` +- Prometheus query page with `up` +- Grafana Prometheus data source test +- Grafana dashboard with all panels populated +- `docker compose ps` showing healthy services diff --git a/monitoring/docs/evidence/README.md b/monitoring/docs/evidence/README.md new file mode 100644 index 0000000000..96a3a3a14e --- /dev/null +++ b/monitoring/docs/evidence/README.md @@ -0,0 +1,11 @@ +This directory contains lightweight validation artifacts captured from the sandbox for the instrumented Flask application itself. + +Included files: +- `app-root.json` — sample response from `GET /` +- `app-health.json` — sample response from `GET /health` +- `app-metrics-sample.txt` — sample Prometheus metrics output from `GET /metrics` +- `app-metrics-headers.txt` — response headers for `/metrics` confirming the Prometheus content type + +These files validate the application-side instrumentation. + +Full multi-container validation for Prometheus, Grafana, and Loki must still be executed locally because the sandbox does not provide a Docker daemon. diff --git a/monitoring/docs/evidence/app-health.json b/monitoring/docs/evidence/app-health.json new file mode 100644 index 0000000000..09e5ff36e3 --- /dev/null +++ b/monitoring/docs/evidence/app-health.json @@ -0,0 +1,5 @@ +{ + "status": "healthy", + "timestamp": "2026-03-19T13:05:23.900Z", + "uptime_seconds": 9 +} diff --git a/monitoring/docs/evidence/app-metrics-headers.txt b/monitoring/docs/evidence/app-metrics-headers.txt new file mode 100644 index 0000000000..a9447d71ae --- /dev/null +++ b/monitoring/docs/evidence/app-metrics-headers.txt @@ -0,0 +1,127 @@ +HTTP/1.1 200 OK +Server: Werkzeug/3.1.6 Python/3.13.5 +Date: Thu, 19 Mar 2026 13:05:16 GMT +Content-Type: text/plain; version=1.0.0; charset=utf-8 +Content-Length: 9658 +Connection: close + +# HELP python_gc_objects_collected_total Objects collected during gc +# TYPE python_gc_objects_collected_total counter +python_gc_objects_collected_total{generation="0"} 523.0 +python_gc_objects_collected_total{generation="1"} 0.0 +python_gc_objects_collected_total{generation="2"} 0.0 +# HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC +# TYPE python_gc_objects_uncollectable_total counter +python_gc_objects_uncollectable_total{generation="0"} 0.0 +python_gc_objects_uncollectable_total{generation="1"} 0.0 +python_gc_objects_uncollectable_total{generation="2"} 0.0 +# HELP python_gc_collections_total Number of times this generation was collected +# TYPE python_gc_collections_total counter +python_gc_collections_total{generation="0"} 26.0 +python_gc_collections_total{generation="1"} 2.0 +python_gc_collections_total{generation="2"} 0.0 +# HELP python_info Python platform information +# TYPE python_info gauge +python_info{implementation="CPython",major="3",minor="13",patchlevel="5",version="3.13.5"} 1.0 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.35983104e+08 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 5.4464512e+07 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.77392551375e+09 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 0.26 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 6.0 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP http_requests_total Total HTTP requests processed by the service. +# TYPE http_requests_total counter +http_requests_total{endpoint="/",method="GET",status_code="200"} 1.0 +http_requests_total{endpoint="/health",method="GET",status_code="200"} 1.0 +http_requests_total{endpoint="unmatched",method="GET",status_code="404"} 1.0 +# HELP http_requests_created Total HTTP requests processed by the service. +# TYPE http_requests_created gauge +http_requests_created{endpoint="/",method="GET",status_code="200"} 1.773925515830881e+09 +http_requests_created{endpoint="/health",method="GET",status_code="200"} 1.7739255158618011e+09 +http_requests_created{endpoint="unmatched",method="GET",status_code="404"} 1.773925515895349e+09 +# HELP http_request_duration_seconds HTTP request duration in seconds. +# TYPE http_request_duration_seconds histogram +http_request_duration_seconds_bucket{endpoint="/",le="0.005",method="GET"} 0.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.01",method="GET"} 0.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.025",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.05",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.075",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.1",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.25",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.75",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="1.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="2.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="5.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="7.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="10.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="+Inf",method="GET"} 1.0 +http_request_duration_seconds_count{endpoint="/",method="GET"} 1.0 +http_request_duration_seconds_sum{endpoint="/",method="GET"} 0.011629433000052813 +http_request_duration_seconds_bucket{endpoint="/health",le="0.005",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.01",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.025",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.05",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.075",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.1",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.25",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.75",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="1.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="2.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="5.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="7.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="10.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="+Inf",method="GET"} 1.0 +http_request_duration_seconds_count{endpoint="/health",method="GET"} 1.0 +http_request_duration_seconds_sum{endpoint="/health",method="GET"} 0.00015099899997039756 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.005",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.01",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.025",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.05",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.075",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.1",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.25",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.75",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="1.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="2.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="5.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="7.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="10.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="+Inf",method="GET"} 1.0 +http_request_duration_seconds_count{endpoint="unmatched",method="GET"} 1.0 +http_request_duration_seconds_sum{endpoint="unmatched",method="GET"} 0.00043901000003643276 +# HELP http_request_duration_seconds_created HTTP request duration in seconds. +# TYPE http_request_duration_seconds_created gauge +http_request_duration_seconds_created{endpoint="/",method="GET"} 1.773925515830906e+09 +http_request_duration_seconds_created{endpoint="/health",method="GET"} 1.7739255158618293e+09 +http_request_duration_seconds_created{endpoint="unmatched",method="GET"} 1.773925515895371e+09 +# HELP http_requests_in_progress HTTP requests currently being processed. +# TYPE http_requests_in_progress gauge +http_requests_in_progress 0.0 +# HELP devops_info_endpoint_calls_total Total endpoint calls for the DevOps info service. +# TYPE devops_info_endpoint_calls_total counter +devops_info_endpoint_calls_total{endpoint="/"} 1.0 +devops_info_endpoint_calls_total{endpoint="/health"} 1.0 +devops_info_endpoint_calls_total{endpoint="unmatched"} 1.0 +# HELP devops_info_endpoint_calls_created Total endpoint calls for the DevOps info service. +# TYPE devops_info_endpoint_calls_created gauge +devops_info_endpoint_calls_created{endpoint="/"} 1.7739255158309686e+09 +devops_info_endpoint_calls_created{endpoint="/health"} 1.7739255158618608e+09 +devops_info_endpoint_calls_created{endpoint="unmatched"} 1.773925515895407e+09 +# HELP devops_info_system_collection_seconds Time spent collecting system information. +# TYPE devops_info_system_collection_seconds histogram +devops_info_system_collection_seconds_bucket{le="0.005"} 0.0 diff --git a/monitoring/docs/evidence/app-metrics-sample.txt b/monitoring/docs/evidence/app-metrics-sample.txt new file mode 100644 index 0000000000..5b6436e2cf --- /dev/null +++ b/monitoring/docs/evidence/app-metrics-sample.txt @@ -0,0 +1,142 @@ +# HELP python_gc_objects_collected_total Objects collected during gc +# TYPE python_gc_objects_collected_total counter +python_gc_objects_collected_total{generation="0"} 523.0 +python_gc_objects_collected_total{generation="1"} 0.0 +python_gc_objects_collected_total{generation="2"} 0.0 +# HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC +# TYPE python_gc_objects_uncollectable_total counter +python_gc_objects_uncollectable_total{generation="0"} 0.0 +python_gc_objects_uncollectable_total{generation="1"} 0.0 +python_gc_objects_uncollectable_total{generation="2"} 0.0 +# HELP python_gc_collections_total Number of times this generation was collected +# TYPE python_gc_collections_total counter +python_gc_collections_total{generation="0"} 26.0 +python_gc_collections_total{generation="1"} 2.0 +python_gc_collections_total{generation="2"} 0.0 +# HELP python_info Python platform information +# TYPE python_info gauge +python_info{implementation="CPython",major="3",minor="13",patchlevel="5",version="3.13.5"} 1.0 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.35983104e+08 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 5.4464512e+07 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.77392551375e+09 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 0.26 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 6.0 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP http_requests_total Total HTTP requests processed by the service. +# TYPE http_requests_total counter +http_requests_total{endpoint="/",method="GET",status_code="200"} 1.0 +http_requests_total{endpoint="/health",method="GET",status_code="200"} 1.0 +http_requests_total{endpoint="unmatched",method="GET",status_code="404"} 1.0 +# HELP http_requests_created Total HTTP requests processed by the service. +# TYPE http_requests_created gauge +http_requests_created{endpoint="/",method="GET",status_code="200"} 1.773925515830881e+09 +http_requests_created{endpoint="/health",method="GET",status_code="200"} 1.7739255158618011e+09 +http_requests_created{endpoint="unmatched",method="GET",status_code="404"} 1.773925515895349e+09 +# HELP http_request_duration_seconds HTTP request duration in seconds. +# TYPE http_request_duration_seconds histogram +http_request_duration_seconds_bucket{endpoint="/",le="0.005",method="GET"} 0.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.01",method="GET"} 0.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.025",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.05",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.075",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.1",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.25",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="0.75",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="1.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="2.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="5.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="7.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="10.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/",le="+Inf",method="GET"} 1.0 +http_request_duration_seconds_count{endpoint="/",method="GET"} 1.0 +http_request_duration_seconds_sum{endpoint="/",method="GET"} 0.011629433000052813 +http_request_duration_seconds_bucket{endpoint="/health",le="0.005",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.01",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.025",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.05",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.075",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.1",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.25",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="0.75",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="1.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="2.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="5.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="7.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="10.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="/health",le="+Inf",method="GET"} 1.0 +http_request_duration_seconds_count{endpoint="/health",method="GET"} 1.0 +http_request_duration_seconds_sum{endpoint="/health",method="GET"} 0.00015099899997039756 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.005",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.01",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.025",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.05",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.075",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.1",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.25",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="0.75",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="1.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="2.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="5.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="7.5",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="10.0",method="GET"} 1.0 +http_request_duration_seconds_bucket{endpoint="unmatched",le="+Inf",method="GET"} 1.0 +http_request_duration_seconds_count{endpoint="unmatched",method="GET"} 1.0 +http_request_duration_seconds_sum{endpoint="unmatched",method="GET"} 0.00043901000003643276 +# HELP http_request_duration_seconds_created HTTP request duration in seconds. +# TYPE http_request_duration_seconds_created gauge +http_request_duration_seconds_created{endpoint="/",method="GET"} 1.773925515830906e+09 +http_request_duration_seconds_created{endpoint="/health",method="GET"} 1.7739255158618293e+09 +http_request_duration_seconds_created{endpoint="unmatched",method="GET"} 1.773925515895371e+09 +# HELP http_requests_in_progress HTTP requests currently being processed. +# TYPE http_requests_in_progress gauge +http_requests_in_progress 0.0 +# HELP devops_info_endpoint_calls_total Total endpoint calls for the DevOps info service. +# TYPE devops_info_endpoint_calls_total counter +devops_info_endpoint_calls_total{endpoint="/"} 1.0 +devops_info_endpoint_calls_total{endpoint="/health"} 1.0 +devops_info_endpoint_calls_total{endpoint="unmatched"} 1.0 +# HELP devops_info_endpoint_calls_created Total endpoint calls for the DevOps info service. +# TYPE devops_info_endpoint_calls_created gauge +devops_info_endpoint_calls_created{endpoint="/"} 1.7739255158309686e+09 +devops_info_endpoint_calls_created{endpoint="/health"} 1.7739255158618608e+09 +devops_info_endpoint_calls_created{endpoint="unmatched"} 1.773925515895407e+09 +# HELP devops_info_system_collection_seconds Time spent collecting system information. +# TYPE devops_info_system_collection_seconds histogram +devops_info_system_collection_seconds_bucket{le="0.005"} 0.0 +devops_info_system_collection_seconds_bucket{le="0.01"} 0.0 +devops_info_system_collection_seconds_bucket{le="0.025"} 1.0 +devops_info_system_collection_seconds_bucket{le="0.05"} 1.0 +devops_info_system_collection_seconds_bucket{le="0.075"} 1.0 +devops_info_system_collection_seconds_bucket{le="0.1"} 1.0 +devops_info_system_collection_seconds_bucket{le="0.25"} 1.0 +devops_info_system_collection_seconds_bucket{le="0.5"} 1.0 +devops_info_system_collection_seconds_bucket{le="0.75"} 1.0 +devops_info_system_collection_seconds_bucket{le="1.0"} 1.0 +devops_info_system_collection_seconds_bucket{le="2.5"} 1.0 +devops_info_system_collection_seconds_bucket{le="5.0"} 1.0 +devops_info_system_collection_seconds_bucket{le="7.5"} 1.0 +devops_info_system_collection_seconds_bucket{le="10.0"} 1.0 +devops_info_system_collection_seconds_bucket{le="+Inf"} 1.0 +devops_info_system_collection_seconds_count 1.0 +devops_info_system_collection_seconds_sum 0.011327940000001036 +# HELP devops_info_system_collection_seconds_created Time spent collecting system information. +# TYPE devops_info_system_collection_seconds_created gauge +devops_info_system_collection_seconds_created 1.7739255140238588e+09 +# HELP devops_info_uptime_seconds Current service uptime in seconds. +# TYPE devops_info_uptime_seconds gauge +devops_info_uptime_seconds 1.0 diff --git a/monitoring/docs/evidence/app-root.json b/monitoring/docs/evidence/app-root.json new file mode 100644 index 0000000000..005e35267b --- /dev/null +++ b/monitoring/docs/evidence/app-root.json @@ -0,0 +1,45 @@ +{ + "endpoints": [ + { + "description": "Service information", + "method": "GET", + "path": "/" + }, + { + "description": "Health check", + "method": "GET", + "path": "/health" + }, + { + "description": "Prometheus metrics", + "method": "GET", + "path": "/metrics" + } + ], + "request": { + "client_ip": "127.0.0.1", + "method": "GET", + "path": "/", + "user_agent": "curl/8.10.1" + }, + "runtime": { + "current_time": "2026-03-19T13:05:22.568Z", + "timezone": "UTC", + "uptime_human": "0 hours, 0 minutes", + "uptime_seconds": 8 + }, + "service": { + "description": "DevOps course info service", + "framework": "Flask", + "name": "devops-info-service", + "version": "1.1.0" + }, + "system": { + "architecture": "x86_64", + "cpu_count": 56, + "hostname": "17ceccfebd47", + "platform": "Linux", + "platform_version": "Linux-4.4.0-x86_64-with-glibc2.41", + "python_version": "3.13.5" + } +} diff --git a/monitoring/docs/screenshots/README.md b/monitoring/docs/screenshots/README.md index 25d39fa7a3..8b6572b859 100644 --- a/monitoring/docs/screenshots/README.md +++ b/monitoring/docs/screenshots/README.md @@ -1,6 +1,10 @@ Store your local proof screenshots here after you run the stack: -- grafana-explore.png +- metrics-endpoint.png +- prometheus-targets.png +- prometheus-query-up.png +- grafana-prometheus-datasource.png +- grafana-lab08-dashboard.png +- docker-compose-ps-healthy.png +- grafana-explore-app-logs.png - grafana-dashboard.png -- grafana-login.png -- app-json-logs.png diff --git a/monitoring/docs/screenshots/lab08-datasources.png b/monitoring/docs/screenshots/lab08-datasources.png new file mode 100644 index 0000000000000000000000000000000000000000..c607a53a921e0405d9789182172ee8146d20c8bd GIT binary patch literal 127116 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

POu_mr&<&vO8> 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

~$ET7qteItneoP0< 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 I@!FmL0dtXUvH$=8 literal 0 HcmV?d00001 diff --git a/monitoring/docs/screenshots/lab08-docker-compose-ps.png b/monitoring/docs/screenshots/lab08-docker-compose-ps.png new file mode 100644 index 0000000000000000000000000000000000000000..8e518c34cdc550374130f256c4515818ae0f47b0 GIT binary patch literal 31574 zcmcGVbySpZ*Y5|BZt0drK#-7z5hO$!rDI43q`O1u96|x<5K-xlp*y6cyBT`uA%`>i zyuar?=Q->AbIv-f#l$`Lx?|thwfA>__P!!D)D#JDX>b7m0D;mgIV}JHQxo+$7aJ4x zs{8$m9qJ9uRZCG8P&!PvgZlCiETbv|08~KmZp|=I-*KE?>AL~|gq?r>(Rv-fTLJ(+ zdrERLZ@o+ongiommAsel7UwrTR-+__obiVivmO$}QFrXie24SQ=Yh;T*hcpho?42~ z;B|Ai($POY*!xi4v0FaWC5I(S=X$*M;;x5@-QegtoTm=Vx|(c25n(LkqU;mvXu#y) zTuyp&Zss6*nv z{D7*X)khkt-;$WTdZzYGh3$}E?5dV;V`lMNAw%Y4m^_8W-TTv4PH)J(SM4A&wpT|I(@X9~&9l0`vlUv_soPV2) z2lI!a+)m)-wDZ9MV`oj>J$or)qY&rRlmWct4s_^z?$>(mC|`endwLl_RDa+eNPF1^ zb?$`)=qE;d?X*5w+kj+#@~8b0+2c>8v;0BgDPTDOe?*!MsPZxV=tN{8ToCM#!uVb3 zHREiy$n)bykoN-L{U!gx{Sl!_Z4+~ACU#vjl2k9?-omSde#v&~{vl%Hb!F8C>RxQU zvD8{iB5$U!Y>v_pBF?bAz_%W$%bf8|ko6uoFjD$3K65^!-Tuq;`Y+&3tJ5_) zUlQXmKhc^MQRy0MkZs_x&DAQ|tJjP#1JyEn4$Abpi|$t)O|Mk@)l^zHI9h@jufNo- zY%{gE#hwpEoE#+?zc|y=Cr2QL22M{)^mMj8XY2jTgD)ajfbq z%>SMoN-SHRdADbV&e!03akV9XOpc~jU$~q%0=321v7;ZVzWOjI0It8VVB3I4Hk`>= z$8e+CbVTd9b`hxArp%MG>`NmeeZ}Z>dTIgz#lC61a}~9>ImEcCVC*@7-_eSGZs;W3 zvst)=v_jG)M%HT~fy8|NoljPN06S_BcMb5GH}_j9&f@4szLyZE>oY#@=GPb>`zqp`3-tP^hsta6!udq=B(cYs^FU^v*j%X}^Zhr@M zAp$l>ku@;}MGCA&f5&!eKYDe^lO#aU8{jd=Wv&SNGI9a!(Cg-< zXz-rbp)0f=x%DU+ulI+tlK{pa_9AAE;_ArkxYIAzjk6k>-o4)^`NPWKJtfYS9j z#(SEUt8R6uP5Bv1;qk%pBVjW9J!(H#bZeNSrw3Y{-9qGEU`1#r(Eq8)F&?~!NUtrL z&yRj&UpfZvw{G*8nLt%Z0fv~_!S{o?60K}2cR1GB%~_2KnY5RGJdPsw3@u5U1QMaY z_J8ZFJCkaxNYHUQ{br#0_v(+{j&uGhMr|(>f0cC%0LOB5u~g|BZ^bLGo|Fw_pOaX%FaH>f z_G;lc(RH0Sbn_TiKGE@5w2YA-dt6_1v{wowpI`YgxMWc8Cs{&Gc7xCCf#^?yw>pI7 zH69U(y=5kfExqil#d;3Rzej`o^2AC1@o)X+wWQt6B60>Vj!!;#t``tRL*?m2IEtai zi5>SJ1Q|aQg|(6vB7f+~5g#6Q@0{mtu!k_V1_|EpqsHn5^8-2{0}|+bgQd3K4ZPvH z1~}d0s%4!wAyy2XxzGV44??Hc$$|_a_aZCJ@);G7J)c?loxt$zn-%#*XM^l}*M-Zo zlw)SV0+MC{c{m$=gYeA2AOmc=nhSIow1?iVfWIU;nsieG>KX&Nq#8)eP-C0emb}n; zdOnb0uuS~vl6UvZ08ilQX?<^27kbcm;K5?wMwmn=sBFad=md26YNhCQ9C#_bIgHs1 zG$A}%dqeKGhhXSMpsh@B9qMBo?W(V~1YRaxqWM0e0;m}vRioloufdfr_G>M~Ds5?=>iw57V8n3Ig zQ~*}c{P05fX5f+YvAP^h8b4vC>S*sEC!cwbv18Hd`3Uzi6~`eiEp2YxZ?jS&+40$o zBd<&^3sUfMsmY6Dv!`a{FOd6{w_O>2O>!PUoq!{yO%f+Z{>2Fz*IOtP1AAK@f z?GT}KG-h|Ip}CH92jQncu&=GQ(%kE;aObo z;NV}tc6hFLBh-TU3L5Ni|At`HhP#^ug*G!C?|C1k#`?4c7u zU5gt~t#uGd-xfLl0eOF&tQRqQd;{t(p+%_+k$}L9wSaNoHRU_pM!={<8{0uj1_`D3 zvfm^1z!Rb)`kQ6=LEu9W^rUG6`y%CpQ3jC!3b|_+KfJV+M@7@Rl}JT~Hd2U?Jus_R z@ct0(rVi^PR73VmEWwpsvkc{)9A^WXC_&I$R)>W%F@kf&{x^_yXf5N2kv}n?#67VZ zdi@1RYV~%yY@I@FeVEak&*{9%s|9sCSM28MP2Tc!6o@m6djDAyPEnuV{=AnwCYQBm zq<|G~NkjwD`k%8W1>U*?+I|!t-Td0Mb;boCrz!3HUwfSZg`96&Gct}V`<$nbcF8lu zFaXnIHz#ES>h{tx(2?l!()-Og>^%#{p6Pq7nVTJvXk&5SL10t?G^-008VMzj;S8Pb z08#fc(JU@50#&N;VRq{^_vuO{ldf3bkdm+o;PSQ0LVeL5Cm_q`J>E#f?qayU6vdnD zc(=IUy%1>=@RIeO>*ji`G-GdFHYxme5-thIi5(g=2I!L+KCMVv-*)b8JEQJg<`IE*(aezNUo)}J5GSA1Q11T&iD zDE$(deJ7^Y zw2L1EJ~rPv7j>67T1yF_UH0D>1MsbM7v?NGqXWDc_?F7=GurEKepobXykN3>#Jna8 zqXo^jBeFanZR~kn<3YEV6X|A?+?H?Gc&{(tEQo47t)zOCH=?}klzq8wo82wadI>)O zA&&3VNEAU%$U2;3#i8kAf6s$*>^+m?Y5Kq_bI{hE&F#u^lRA%1^O`guyT?^Go5W#h z#po0A@u42MxXH}`Zb5_?>(j;0>bUJrQC`K@H&o$%qP{L+@khMPXabxnGdbW zDU$tgpc$PbE`VSJnVyaCVbbfXZ^iO#4s<$hLmae^_Eb6&8E{~406W>v`C8* z?o7egLhqZ15+uvWCEV@QmVFr=Zg*HN4^P$6m%XUMA(DSYW3(BKxw&|+JY^XyPUWOS z=unuXmd4<|E5_H{{SzU&zsf$WA^!s{smj`9s}Qp}>Vc_`oheN{IT z?`OVsBZ_T$qu+JUukiFLf|ic8cRmD;F$bDqP&6J573|eNjvGm&)CiK~E!KO1h;n1q zr43gEB#&Hsh|tkr*El$qb~lo;Yk`C7B`zsQe0t-TiTlh5)~p^)aRI7{oF6_mJcEZ& z6Y~+|kL_iIM@s)AWBa@!Oyv3(%p@AOmfKf0568_PwSqyzhfdqSLb5s{p;E2OUXP}M z7sew*{FnT`?TGrz0ouNo4H3LWapHjsVnOYiY%5CVA>!%TrIO>J=lzz&7om~ZldDbK8ox8G2AcI3i zms^yZEZ={PKO@ZFrlU1(GL5IKSYxm+$~{;ARnPH8G1N2%l5p3>%45RkccrxO&}nOk z)?8*Um}s5cGm>69_(uDWBdK9;1T-$T4}Wr2c{hkhfu8IvOjOLP&lHVi!n5JBb`g`4 zU8Gl;fsvc6-lUt%8v0{cMv7iRR6+Hno*wwL99T&l4W7+Ql3ucCWKRzpyZ(39w9e#1 zvN^kVF{U&8L6>l8r0>A^NwQ}RpiLhvyp7RxsX77|nE-Xr9Cx|aN{_5v11Wp;uew_R z$fFVGQ=Ix1dWZhI>b8IA%r{&K_Bi?RM*K%_`11U2G_9i}jFc;m(9-(N^GC zib?kTO4y{jYW=LzjWS&2JCMetmHF_f?X<0Gxxy7m?YB2ArFcAw$|l+sdeKwd9gZ(h(1#QNN*QmR0*>_k;DV0rx~Qnq(s+aA zwPic9E)OU)Ij6Wc#>1mU1VUi7R>q8Nr1NVh$1+WaA?|7|=^Z^^%3BA0L3lyqe06*H zij3*DY3p4o<4&^Td!pXq=Fjn%jvwTmc8DInocozVvL;P|f5u;#{jlNSFeUn?T{2zS z(eH+<<+#ipfphNE1dWrG;rU*#2viMWp{xB+)cZ}*=6rOPD`!^wz@$EEJf0Ko z*x>;t{LnBgZtei2!AThYC@eg^FEqQGgEi>7+;2IqLHv#A9~UjaAUll$M1dF8Qt+yn z@%wExKwBgTi6wd(?>dYXH1+1<>&%_#X{p>P@@>3DQ#5{r`b>vAZ3O`8DZvZ@ zQVvx_x(Q;(OL(Gp<$9mmM2OyrAAUp$Dhh)%JQv4%5@(w#!DA`v!>%3QWu|*i`F23JJM;j|&^DWWo8z^*p}zV{V)+Af z-y*PS!DE0Bc828)lQ_Vuag>e(XFoK#9_Cvi2cF1eNZtuKNa?q`LZM#6(gCou%-|nT z`8Z$B=|J?6dD@3+tyh%C0}E{dYAqM*_22{2HjwlV1JvyzlaT_VjwCa=C}kw~Y@WH6 zd&ENUQt1^KP8c^2_a_P>Z~6lPeDBlVk+6mIHARphylQ{8aUQPAYC@>DEi8eN$1)4& zTfP9v;Ppk28)aqI^#t^I5nQk+;B@%aiGAh($IT+dchJ`++*Lj5RQ=`=VUwq6{Us#! zJtG5JAM=XJOaH~$=9Nr4#*4lms}U2kj}P$EF7lP7^V9#`f+ySOqZzX<}8pjrP$DOedFN8J$GQ7;czA|!0EIfMRkZ>|Y=Ks61O%g@V9Gx}dj=1xY-R2Fj?` z+gq048^$SVb0B02Hbp5N-Rgq|P+N~eKY*;%9Nv^&{Rls*d}E$? z8mWHwC$9mE>cT`4Prt&QnG$I}-)0^mdIYb!3NkYjW4e z!CG!@Yl))i5S$msiz7nEnW$`u<4_Va~_Qe9af+dXo2X`fh+X;AjXzB}9zNe2R+W-)eut_90U5h&@T0JjdTULHw&1 z2bUf0x1jm#Ul{}k@JQFTNqds&y$Jw^?NawE(|%Wf2-)$;O#w#fB%5bD3#d6F1H+9k z{ZP0ZKHrz+NhyFLtx9bP|QfCUr(?EEbk1Qz`7 z^vBs$NYP_2dw=En&Gf!}QhNRQL}0ro@M_r~Jb(b+?p-?UDJ`5Bi7p3TJTbbTxR2h; zraK`drq8~m_k&N1*I(`91&7kH1uIW|fH|!TUUb7RF|T_84xk=;&wI~>OW!|?5*W3| z*b+huuf9j746Br7BV%Dsrxhb>a}u6TgACOpIty&Ox}z9DOK7}Gf@T~pKrWAml6O>D zo=r5|t#!-jk#&i{ zu`bg4_f8WU_k;41=MsS*;gX)lKj46y#Pc_W&RkA)ozg7`L&lC(WRh3AEB|E)EUT+7 z0F15(I#~{1dFm>X?fXdae)VN(I{Xf%zS>9WxVmN7TJ-^38dWwxDR!t}G~YH>HgI9V z=y>);5dc`e?+iZ%@}=+4g?ZB`#K#YdAXnB!eXbkRho@UFF#PNh{8z~duTW}_^{{j1 zCvH+bhq9NHu(yB5r7;Tpn9C?{Z5WqzyX+*iJ9O*dm6%U8;}s;LiyLAT_omJ}I+o_n z*2EWK-*YLaXzD@tf!}|&#K~6eHJs*!zCOer>Y%|ybVRdcHU-oeJgpu!#u+P&J1-&h z>C4+*$RAtkGRTcAT~mW>Oh3eT6OMvDVa}!tj2fi3BcH;OP*LglS+=febXK6;rkZC% zRpR>fzr`MvXhOeb2W$<60Bi4>+#5@{~pdxy`!Lp{ST;ZK}Ls zri_{+(`kEl7yYGpob=VR7K>~G&$UDK$EPiID^^|%Be&4HdT8%J4Mmi7UJmHT<0p?n z_A}9VSr`$Y1f&0rjP&VZJo0|=z>!eVyHR66>8iqDYsBdN-TencfSUB%t^-Crmq6h0 zIMM0_WOrmcn_70wq3aF>*P0%@fFHZ5n6ekBYaxFzqmYPz;iwKr=k8B`O1x2^d)eK3 zaQy))Iq(3q#kL>&_O0&=jIK8*{UeC6^`C9Ia701TJGZ*as*jq9Fd$Wp2kVSosLbUx zlKP(-MeFdxZ_XT5UCi(vy^VTOfp>=}(0})#Zq@1pE-V67y&YMeiw|Uf0;ceE|CKlV z&(SHuua+V|+M>L1;BQ{$rpsJVHv+l;WWj~#t`$|;a6f8RAKrQpm3>r?VrTkJStzG< zRdx>uWLsQzDMH{QcTW`SgZ`mvA;bb@5}N-okN=X63Rc6OdHu&}za!-V)6%9iwT<=p3K(PhM*>+f@+EQ2ZG$7$@gepC>i19x=C4awIA`MM+wJa|Cv*;cj=A1#PiA~sEAjUh&rr9xLYzVvWTdnxhc=uNU>^VHz*z;U zfJQfr#eMJN=Pw#U7RIdXOvDw421U7{Y?f)MGw)M}U`53K<;EWM*k5qHjs7J1XuLZ* zJcDc-JjbDpDtE6bj~EUgX>p|1^Zyhv!k=3JxbJ)T1pNleev7CH(Y~sCC?;-)exOX8 zt~sof^u+uD`673ieT7VO#b`{Hv|>0vNa&|vFUH>FkA%0){7N@UufehuS;B;neIUX0 zZWNruugk$xFBw(i<&3C^cu+0EmrqNTK}c*^a3J#@rF=J@jst?kOWnHRo38p+7O!53 zN7PPgq=SqB~HY@!XtL|PpO8soPbl#LEk}A3L}V@ZkeWQ?A1$0#FJaQ73EzC zj7k{8x;cLcTlLrca)taDgE45QC2_K&K!G2j{@Lg(L9#p>=6R2-pxbrdl~tTgrkDxJ z?s1lTu}U-Q(q@@BOx_vBn4=PLv$_ZY6=>(*X{KH*Pj>u#N?@3q2-BnXwZzj;mp*Na z0?myN@f1bv(9ahM%UwudRo9qL4efF#PjE+A*hxEPbUN)#+%9hqZB5dX59M-)NE5YG zb{~?8ys&Iu}eu9o}ZcdY~*CgmD=sb`rQs z-gK!c?fE4hhxlC)i7+Fb+jPaDNiv7jACEw5z59@nMuh!5ET(p7lGvz;jg_FfqTyYg z{ZKn))(KYD*g=k~S+QV)8Dl0)D_nH8bGDt0U1J@d_Kd>-CeO~*YNu;vLsc~#!z{!@ zP^?=Rs^3iVy5oXW^?^8PWrUvCTS>fy?oGm4{9SN(dq2^;12v()BmQHTiJXitX$rL6 zm7}{Llfs33WZGEXIoakU(cH3W?{Q zE+xF}xO9(l%1AM{7v-jC1=56ddv_DbPiG#;va9&hhswU$rxFA1TP@n#Nzcg;>8vb0 zUcTDCc(^N*VbA$@q`bY}KIM*@ao?gcZBBa-RxI-EJ@DnON}ufSJ<~yGTXXGBz^&%GZs9$Tex-IFNI~m-a55>Af*wxRDF3 zW8MeiM7j&z9kZ0asj{3RYE!XZz?TUec88c<0t}b*A~sO>l^&%vsX%A72vgkCloo+= zx}E0>nkIj*%<_8sg!|LB_;}7cI)bSpL6yo23k=@w3b>u9INiLOh-`#D$ar>`X!7t+ z!1W0;kdyJJ%-lQ`h5w=s_1l5@kx)h5Y16jOaQx`4)h10Z`+UG>T1?0F`;H?dzF!06 z81+F{UK-I7V^D(c41Yz`N8xXHc8ba)^n9b3B5n*{`Gq4(z~~~?K#6j`XC0HsiHT` zxjroXH_q2M$jBML^St^hv%0Jdl*h*y^LIDCidsDUYgHVxdU-Mw>IRhWTdcfn1(dg9 z$0#4IDQ3wiB{HG3oUpdc@FUWv&i22$wyIzQFMLUDL!Y`m&OH5@I)j>j0)$=0azmwV z8H#&!r87z92Sd-v(u_gW#T#*>G0qfKIHkZQ_dp^h|QQ!v!^5 zFxMt&#S^PhVV9;>{Ad>1njIg5x~=Cg5tGjk;uw;x{yY~oOMx#fw=Dl4o_~p~zC6JV zwg2dBiN6Yq=KM#{{g?W}{ok5o@`C<QAQ06qwU+-a`;`Pl5 zdxHN^DCWv6P@_du(swv!Gu&)XRe)`)XR8;>Gw&-&Vds>6o(AVk$A^2Bq&3MQklu&M zJyXxL&z4cBtE1M1jG+hRca9DlaSe0}JyT(n)gqWD6VMs>USnYW_Vff@_FeqhoNI%Q z%<%5oNi`Szf_-XV`0MOvMxQT6G*g}u+g8z}IMMO)ic$<2M&9aaCg8yXN{H>prsjsN zFcK5TL?Ho3VIX0BM562orH*NC_;AP2(h%Ry(73>BF}&tr+^J-seuf ze=(W0QAAK}Q1U_Or-mqAq0#9Le=(4dM0|w9o{j;njf5~ZR+4_xTmU~wI^=8m7rQs_ z68ePY@f$JiQ-_UZ>q)cn0}oWcMFy0cl*Y~w;Rau1aQ#XBXHhyhnmX_)3LE_?WRgz| zoOJ55|2TObj--NMsdl^`P<`-K+9XX>^eCMR?C*Ix5D*LW@)cXP! znv3$rfadk0lO(hsT$H3etp3xeS z3FF?MB(Sw7rpNxsEdtkyxWuO%&deqV~TXXkS~O z;=N=~+DY$M2m}YVw(|84hfS;gXl;i1w@fed&W^mEziYm`LoRtdS@E>-9f1oICnLTb z1UN!Li3=Eagos`}yT#3VDAInvKG1RBD;s_$B73K~$MXB7k4PA>XNPok#7Oz^p%x8~ zT-MyCJDBB?X9cpcyif=^7+LaYWtEzrp}wRohMqm@wNI7%_E|P;(wkrY4KKc(Nv23g zvfqxQd6B}Sr5=JaC1xI6tA{uf&51)apZIEkyNxQw6hn9XyoDslUqz|aPiQ563cr2R zy8E?yae01u&oL##FW#=}7&ILIqW+!t&)ReudfqJG(|Nvt8*FM)rGRiKKd~5+EAWBC zTL;qLV9VpWbd%$`&q`To*a!Mg-&BE14o?LA7ecAFc?xR=VxMx+K2z;{l_}yOFvht`X_^s+lHn$J+rnzgIs*4kNXcrSxIWz#mKW6XJbhKl@!VWp9DZo_aB*=VXYzhm;5=uH zM_qN->CUm;^UQ*|hW4|nyz)_I5Pc74u-ST9f26d3^Hq`Kdf2pBsycPEbTy2B#+6-E zN`Ih*%u1++x(WY10_zAJx4ht!$L_iWQE zhCNAP?|u2IZ7oh+C|^*hX%IFKQ{a}$s`;gq<8pSE!aYWVQR$`k@>FSw8qo_%Rk%)> zj9lm4@hIwunk66^%C-~z-q;4c8(N&rqCrM!Prxy-eDBTz^_^j-Z zM^7l~ zj$%iPuT`?ZhJDsp6Y!8^qMOJ=)6qMyiub^}Y9rB?HW*+pead&56gw{ALvM$Je+P41A_e;$uTLj%9AD&6)G; z*NVD)Lzp>5l=$x;zsZ*E>QEgvEakL~$4Ys8l!O)bCjG>QWFe~hq{)r|24b6{YFE?!Le)Y(0xnB~$@}Sbkw1{o}9hOn3CC)*3p#Mz4*Tnc^ zfi>f8NcW-!nB1bIv(pW8E`{&`o~RW+PJX7TT{JcZd*{29vB4Bmin~ZEUz&e~k60#D zXdzGAW{%GDt8nL9CzoQt?-XgJj@s|ZiKCGq@xZ2PrA@7v}EN-pLJS_9lq1-bkm$%a% z0<}d=c78bK6hG7ywYMvs6}O8#XlRI9ezCVFPMJg z&4<^+vUNKIMNewWyC2&lf3f0a7YLmM`Rpk;{N?UE%)p$H5v9 z9CMp@X_ljtm|E&eTg(*%I(j%Ml>a=niYvJ<2mfmL^ISu`X#%F6jVo#>luXJN@pp)= z{MDg6ZetS;nbnIZ%_g7ug<4(<$-|Y4QkVm57@a_HFCRBB+43O=UxQ`Q8^6r%!rK zNxG$pM0}U-5?N85k@X8NN7jF~*n+Z1y@`JwjTk)1tu|LOe0va0h^pdv|Ge6j-{4s+ zc>mEwwfL;TFn*w>?Sji$$8dtW$V5fljC}^_#TV_W%ds9W9Qcl8%cg;q%iZ1C{2GuY z^Ube4|A}`e23eiSN3+f(#Tuqb_u(WxB=MIc7c+$%^i{e|Vb)ylv{$r>ef4JPmET3z zKSpQy{4^?h48G#?RU_SUug|>Csz{*B=htL*uaBfp`_#VL3tG>OGj`5z=JQuQ!->Hn z{rG3{)Q<7)ejzRSYeFxYG>eg>4KB`io%V~F`02qcZ`VGRmA4%8+>ko%Q_~Tpg?#=* z`{raa?7M5DY9|EzjghbF*i_EjlXsB!wZ!p2&8S3v^+8H=I$4W_SZ@gGy!HG{$-wbC z0#fT!oLRrQeiRobot>G5!{PIlRbwNT!q*ZvH+Pu?WfI5fd&3m1=_lmKm$;!mn#tazq1oF{$!ECyLegJr*Ad>|h~0{)RhF)k zb<8XsLw;XQ>5RGn2UsPXzD0uAqBEqCo%&^vd1$%@EEz$1NJuq`61DC|xJ?1^q=g72bxdQd0D<^-N z0wCAD^$41OVjZ{)w2PP=`RELp(vNd3-+#C+6fbIHU0T&UoM$%+R(E~;ZIe6CQL+jt zdhxT*^D{l>eveS`*9Ez#o))RZ7BBfdNn(F*Pu6FQUURlYg^pHf$gF@23&-{@-FE&$WyKrdyjzFuGlgqk{ zfVUm=K=|cIVz%=B;{LYX&d9vy0NkbAh*UPr^5c4Y{Xq(XuyFOKoMs`f;sm!+rw`ZW z*O{&Hn099qJQXBQa;|j#!EOcOnV^6mk6RXv5lzkL&Pxi?U>6x|YQowlAu5!~G6G4W zij7y0RKtf|#~LKP>7Q&l-!aigt6@`TkwLIdwT*u1zo--2c!0~qrDb>eBs`kateS`^ zPPusns5tYZ&j+i%D{IiMV$^%CXUl-;Ho6ogRV!1eKH@ zb?&*Ad{a6LN)Pw@k&dD#zw)MM*Fw0MA`^O!O&KN?@SggD4I158s?=%h1B6$cO%i72 zBMU&jq)WJpi6|#XI37+c`%3HYQGbD{GxojWRl-p@8LkfDyLp{_r?_1-Vs9gLRN;UG z&+8X8lWW(;e3>cm@y}9f3P*oTfCe4MYYIsJ{Ox6G|9>uxiFfW?Z~Bkg&i`%Eru`_I z6Xl^xDBfFLwP%?1R&Bn@k80ZQ32`AP(LvWvN?Cknn~K;l=Cm{vs0nvwNwLybpOgGz zgDO8rZk8AcR@pWfsn9BA`_-74nDl72Y@C@jC-AuVq3!-Xofe|Aq1tLHk zA&JiIgH7{+uO^IBwEYQgzGl{^7QwYLTZH`7tC=%wmL5uFQYp6N8^yf5M2mp92R*k9>G5OiJ?zo_f1 zjpLuRx9r&9D{hk|%B=ns)c8qrKp)kzmo~hS*7;o+?q`$Pr%QB_LK6m(#(FitC_wYy zq=0R+!%EIy;VB4BVS?kyBZ#gzRdX{{&lW63tR{A1HK3rxcA0&FP+%GM@XoZ^h_)b* z674`t8-*aqs-)a%DFl%QbLo1v9%h?dt``MPTAQ|ncaeg_s;Djm=On-ni0p<)=A!`gF&v$rH}~ z(3bWM`n2U?G>g(J*;x{f+A6)1f2~ zt;7<{!^GxJb3V1tc4v_aNj2{m0t~1a+#3#C`x5Uq+eB~jomQ+kUPw1Wyk%^MRapzE z@r`NMPisD@Tq#gYh>tSYJ-R}g$^E0ul|ZQ>^VxCK9Fm@2oe@?ywi_E_Y0;Zs#f4lw zj!GJSZMR{KD#q13Aj6*pQ(1}##e*3zUqu>C!gft0+Zp?(e^%O_aZa|f&-=;Ln zNCC@5YAy#|`%+(>NG!yD=sVWEB6Z4lNspIiiT-I%zE;DXB>9|VuFBxsyAgxMP4IO+ z9{;Gmn(b#=!?(hwX<-TC^ZqfWbaXcwUqefvyP5i=+H*a;AVE09o)!)9K4I{c)_H0q z?HlJo#TdkI(y|r7@sq>XeKYM}3DtGZ4t@?8KPy>lB*{}lTp}&CtZ035hYI_*dO6-j zbN*DAL)w=|m~(_>XgGYE|MKW_LX=ualDC@P(l58px@Ej^j-=Ub_`?nn${MD$9UdZN zCQLkk3}t%b2N!npId#FiB>*GZM0-(db=0#8_Dkj_(KiZYxjmk3Dtx3pi+T#uIGn|L~xv&jF`5dVC3{uGEefrCEw znXjsm&44kf{F{~|>*G9z&udK;q^}U=Uh?0noPGJ{^M?3>g;etGHBg{t-m1Z&n$1DN z`XA1am$fiIPr4~niKXav#h{NFyXU?5U!WoVg|8WFyXOP{R;s(DQ2|l@vBENuKrC;r zY0}O;x?hDcCX92ZRQqD28MN_o+3;0Vn2qC-I1#k>>llA#05%3bqk??cUi$KU?5pv@ z$@4vAeQVKyI)(eyg>=$gOx2F8#5f)7gEdR_LJlD68Q({T{ z)h|g!YD1>d`EUEb_6z5Q2*dFleT0G1{Nlq!Mg#4;?nl;r0ds!ml9k(eI}N$to3A*< zrSKZGs9(^g5c&kwe8gKic=@+)`0#V%Orx7Lo?E)!X$adbS|#jG@zgCn3ol_8+A$>N z`^FX(g;y{4G`?Lp2@d<9~YI(+O&j!#b}Y4a1yWWPT(ZqozR-9sq(?8Ry8 zC{JHC2|d&@ry(pb!@PsEOP;QjFe-^Squ1h`z5vsdFynn`}$Z^dDACT@#LwDPqlJiqST#0koyyzSJT zQoHDMSFGkj^Tf2~%O#oHeqxN z>(|F2q7UuNuc={`5%osw5WKuP7ONKjhMg1r4K!5o^+sIONdV6{;yKxv4Q|$a$u8>* z+-t$B(`6ViLSeYx?DjNy7{EI*%Joj{D4V%RIr%n8mB>ZdhnoRl?N}NLIgT%3U zRz7vJ#&~?Jc*;zcil1(*zz6!Mf5u_IZbT{)RxMJYW1Sbx6Lr!(^&@5)d!3#thTh0h z1k-(DCbIlx+h{Bf3G(Z2Vf@@7+xW$=?OW>>C^yx?mCOT}&3lFkA*(X+bT`_0Fg1W7 zks!yRXyTp3k%HN^!#Yu6GV_SrP+l>6g-v`j4YaH?VfBLMms@T8VC2IwD95^jpVg=C ztM(G*HN2*HwV!c*HB7VWB+^MDmTSmQBTRcYT>R2Lv{{Kmbs`m8S1!=VyvkpSZxl+j z+Xp^)7PdWO-6Z-##gc+o<=-03uQ;T#DF5M|FfNBpLZgt)CfE z&{hd$WZ1{E>UDXH`l)<+>q|0;5IjKa4wCKhqlV<83rX>B;)*Gmk-wL^td=DsFXL-` z^#$8SJz2F|wkEP8<6QF><<7Iuy*z^p_)OZi*XhSA&?6sP)ykw#S6K^Zk1`Kv(;-le zCBgX|O>6qb#nIYi723}O(YSSpuzCci6-O`NpZ}DM_sZF7VOv}Q=p|)X=kx(=8lk!{ zRCNMF2#VwX<7JqII}QbaTepI{4cBGcRJjhf6jj?ptq?>p#)HBqwQN16CrHs=;XaTx zo4mMPOUn}ez8_xqT~sNy(B1i;^Cfp6St)NCl6P_IS+o|G+$=eV6PwUv3+L zJX=sz#9o&%>WrJ>U5#`L7`z;Y*{IUa*jW`;gPLc9f67zO6(rN=7iFJhYd-N9z!=vc zEko(39n(}7O=(JG_ZsKH@U!cggU4}%7E@qM`~pb$50oQgiW|UQO4$^UYl`S1wn@dD ze{A+kQ{sCuY|?^7CWb#DC3g-lsU=&c)iXjs6zAhkdN|chc#Sj3dV6k;lzLB=eJKMG zA}cy_nB9tl5LM7eACXkLGCKRJ<0N255vkvjNE28vl>N1*!65IP-<%3~GC20qm^A6? zVkm5M;axv_didh`UltOK7>&O!_4iiW0DtHJ+7^WTj$*Udtl<;?Md1&k+$y3>sB%mB zi8JuL;y27ehHLu4d{LLay(YN0$BHU*e#VHDJFa1XmFuNI+gA(wkFJOy*n=0I-C~4E zh(e=BpBsM*#ik|>NuUF-e#^6=3YS`$E0PW6=6nDwZl6L1==KkZff`(wdoTl*VgzIHh*o(WK9Q!a42V-e4aoda3t&V zVS-LMMpBV)5z)m5@_zY5I)#5AikjRXvwt6}1zk93UB+$Fk^al{dPtRJVU?UA4$D&; zj->uGRZ9zSYiq0H;IIPlkLcQmBRqwh4!aynB@AyJ1nyL9psjVS%c#E{N6wA`yZu)I zmy4fk5f9Av;r0mSM4*gk+L0{lcJGUeT4nS)67gu5@7+NnOhkmf3*KXzjZ|-b(2N zE2oY}pQYPj?H;3YpOD{g^QExPl$NrZ1AZ*)0`YpJ48UT;?Ukf4<1bK4?;3^~B%&*= zvZaPTq$Zbr?E%@GD(+5uXaCsOsHOc(tGhOZN@JMiEtVNHcX*(>4b-5fJa>kOmL`cu z!X6qu$_f7m6w}vOw7@woAh1mE7snL2B`+2&#QYziOs-h+fu?24ll&TYOVWdMqLb^-o?oNrJL%MO@gZ^v3?^=7UeeCtgFB~$= zGtWKuef`e!dPr8p+eyNO0*$i!W@=nE1yZcY2rma|MV3S1hdxo{hg1*os^?^l@mHj{ ze`47NzI#kYx8M|MgWkfBVK9L5uqkq3SD`*2kOy^@%lGAzhhpO3zl8y$lmTx`)Q|EF z^GTnN15p-$+j=ZtmjX?yalvgsT#D9=9)B1fnTRmhHNW1LoJAZ(X^wkn znbhoA{!ye=`52px(X`LXbu=48v%r6}&WdcD&5-Y7MlVbgHQ#v$4LbsF+4$nQM9+)Z zU{-~+dg8iSDiwVzFdYW3L*!{lHf>#^0vjJZ(*QyFi`e9DqEgWawl8GqNH-*XO}qN| zGxE_g<&)?25?QR#ER)*%RsAt0??54gulit`w|Q~{yW&;M>p(O?kE=wB+rQa)uTG8$ zeFGd5id+1>#M{%-$vou0TxToZo?2P?p=NRuvoCF%kPEn_iJ;u^9;pKykZ`e{rkjO2%#5Z1D&3jgU8{FH{!O$a*r)PzOX{jb55SvJ}y6}?$GMrdE+71Oq&->I<^x``r3)_ z5?#gZn$M`aa_F$8JgumhVXnGb9n#47bPUxYsq?N$ypm9_rD)tc#|g@sD+sGpR3C(9 zg^aJ&m9Qf4Zde)|ZS^}qR+RHx^W8{^3?>zS$x$w$oD~?JKk2+UsrH}; zy{q`Mpz>9rf>Nt(C9j@manYh;G9hz%>2o)AcMs29x!ioK&Gt3SVd`*)HV#Fc9M|-{ z#$hfmua%myoj2TfDB5&jieG~}Ek(|P80gON|2u)nmOBeZh#T#ozTfT>P4VdRqOP&- zbAu^~uXUM%QF}tXdEl~Nkuh1FD%HnE2}++*Zs5N))|}NsS?h}*p6>{tNxYR-(o|{X zl|3ZTNgn*AXrJSeM{R>Is->Vj{H*>$Oqp}===BG2Tt3z%FB?8ehfFb}j5M5i!z7#- zZuXfUTgQzD9q<{*`yWj$vs@N~0DH z)I%SMa?y1r~Rh}wp-GjpIQ0qjTmR_mM`qZLP9Y$JYFo6^R+tj zhAFRWm(=!O;=P41%ssdA=^FaZmqxbhb)TSZ!l;XQEPL-hvSUJ;qR#89^{($fc#-xW zrH}a@@!xUn6+5y$JSF=Q`gA3`m{Mq{6~d36Za*5#?72(ew+*5!`NA~*ulOKB|d29@&nng0&G?5*O$rrTI8q@Eh zvJ%R*wFonNdWC2~34o;fADJfmi#X|vwVj_x^0bjceKxat)cPm`nLZ{F2TaC?rVW*Z z(MR8e+xtlB^p)Rd1fv?>-A7&3{v5b9yi)R{!k<%7y^;KZ>#PT^Ld9AY=I46)>4Xw) z7FeG?VMqgpeO`ejhJF1DQ+2LuP=gXuFKbHNEUWvCw|dj+MR^{jqKl@wCa3g@)5)U! zZ7p^6B6ixMLhRna3@OFCJ_QSn^eU$#pvx=e#0}aL zDB?%2R{`?bN?8*sec|`IgqmNS34Rm=TJ;g~sfMhdUr2z7qOhxkUGk*yK{a=F@=J#Z ziGmX2w|eCHgUSxKkSq=5N~H0nqYE^SCAp6{2(IUeLe*nszY`Q`Np$KA_;OYt8QdV^ zKaflg4^R?GU0AIRJbRP9_Q36BSMVye=U&|Hc=B5x#G}}Hjj*h%Bw(YtH;wC%~+0IX~#&xKwJ=h>xru^x_4u> zaxKYQ($-nl+ShqwJ%bY@JlfjWX!HZMQg?Z_*PVj-6fecJmZC5c@j>|#JVsGMyQ0`& zJ(lb<(t+nFHWVKL9)FYGalp~asNMyOr)z@=V_|v+BrD!^*&GQEyL2~i=52>Z#yZGs&Xa=35ovl#F&a{tMOkz()*kMMsszytyYM+hBZ6AHKZ4# z4oC*VD~fE+ykt`>UR(vj4v}}_Lqoq&1fT$C{f1$neq%pnOWs&w;ygY6rWkf2$th^L zz!Z3(07(rwY>ZK#pyNG5WFB}lc5zmo#)LrhzR(G(_pw(x%uwCfnKdvdDT}OgCG61c z(PJ`+F&^nDKZ=gRh+@$a7deikq^^3UAX06&nW`HWm^*=$K??W24(N4Dd;#K(XEef2 z>}+!zrqPe}qGjw!Dgu#YJ>5hW^F-azSU;PRYQx~isa!w%RV6D%I*R?aLd@zRu~}fN zcQ+ULwbH`I8AESP(iER!M#n_qo{`|yM-u=L6s`=gj__1(%0(T~FrByJFNltA8##Mg zYfI<6?MW6=Ui@}*9x#pf(9TL-?$msX7=%3Xcqu{RQ6wb9D-B;v-f@w4rcJyR38YoC zo<``mtj6&X+|6SeZP`p8&-n-zj9g!YnU(uDLsGWp=*$UFuW>UkukrIr``%B)-}g34;(aXns9i^19$O_bvOJh20)w8Ak0g^Uw}2agPhBo- zBfCugNvVoYPt>`+E|%%pM#aSh?BV)|vr#46<9darH)m9+8;B}PHgugiI+3*8YN10{ zEsh^k^D_gytsEDY&R3m3UW-+$Ty^stEm(vYzY!LJ@h=a2G0KB1-z4pK-I&~O-sBAZ~!%OEQGA!4$G+@E6PUIUml>R(2 zO0elHviT(N^3+g@PO%Mk&(i&C+C(k*46XX94?fHX%_<*eL|Dt`haCsj{QbqOw?D4X zXCG0M(DsQ9S#}*_TW_j^xu1hC)3$SoFhyeot6wZinN5)0=u$k7bz=l=GV0F&2)H`~ z)|Ng8&Yw28XQuD#kLv+Q2sPhlndC>I3j@=3kxmjjdsDyLqm)C*%>?1^L9&r9_U{Q& z(OT#38-7JTD^%!bd78-L-dse|OL}`B!;&*9YRa6$c6gh1pQ4+~r~5c{Z&;!439l>R zwBrKtg)5{1y)$<7oE2Mcj=yZJhLwg5g(qI{9$_jeTPr%J^Px>@H{UuJD<}vU1AQ|=2!$)pDhi#@8_qAtzclusUGUo>e zBm4@D{Ds>^*okpIr7- z#H=NvJbMzK)Htwy|5?kaRkiF0BJ893nk@vc>o5Lf0I@N^@WiR3S=vOe>%-f?Kxy^& zw^Y8QQtw2Q8E8|raO~q2;!`6;zkED2JkiXB$Zqc2`#`1s`v7$wnM$~1S!yqHDnbxZ z5+J^>%Mx`zkSvEr`rr%fGLHez?n;&$AFAB>{qf)%TsK4Fp(fsMl?ri)y)YN?wXPW( z`6b1wrbm%bg%`)s z1vCJ>lF`a%whwXH0=D z^gLgTtsIaN{E2b&PuOLWT%a z%VN;mEglj(QHGB@8&OVP$MuE?k#W0DQ7hIi9bjJZTFEu-Weq5JG+~TwD6){k3Ly|- zt<1!%9J^!LGrL}b37;^HQc*sBp5Qv{r=ho-!WY>yg!qWR9iw0D3WWxoQv`G_Q=w$& z^b6iPg@rqDG5;jTHBv9GyVIE`p$?JSHgto~*I$j+XH8G7F&-R`DK8{~jsBz6xl-!5 z*3#!Zc^V}nDNJO$%a$p#L7z+Xl6=;1xEtj5MEqvCYTdhle=~!k7>wQq z0736Ur8kpI&~x$1>^RECf*PtDvSlzSc7ZSjOq1++ao7|IqQ3d-r`+2>WTWp_MS;@% zregS%Isp|k=?18nBdiDN72Q1LGY;|dvGcu@*O*)X#9(s8PShMsw~EFK&Hvj8{iB6) zomsvFpImJ5#A*`d0xI;4&ry;3@rvws+MKaOTH99fd9Xwz9$Ff)Si&n_pc;Fi0P4_r zNG-Gui5(|`CV_J1Lb99j)`C;E-=cgcCvFMLV}&?OeTjfJol`odWrma~5}TXenD-x* zpGGwSR3uY|IR2G)%Xw!&*l<`mTO1eM{qJS~;Y%(#)5(sQHH{G*gwars5CJr+sl$Df zygqi=$ICM3_SkChSF|vI$(}+sHmE=#@qj5?mi8ArW`2_8W;@RqST+I3!*4gZefl3+ zi^)?TNsBOC6`eVFH5>K%=sY1r$I{P6qg#S(Ooa)iYafpz5aEl-hQ2AiE%LBv&k9Co zC8YbZ=3@FRZ$yNZUWnT82-@*4(sC>Mzc|aZ-zo0?)5Y<-_2=ymVHD91S~D1LUw7W(v*Z@$_4E04)QndF!D%WYe|`E}r7V}K4k z0VKRLO8l;>hZ(OFo$W48F}Vnhh|5+LoCdVF=0QiuRA#Y4rHRD{I;6|Qf>oTtE-rHQ?g-C*Z=sYn5e1YLFx8uR@sWtFUfN(nSknIKW_H>|L6q zvY0*H;|nifSz?y-nfVq4%5^2+->EBZs5U8f>>hF6sHwv7US>{&~DisN%N(!zSs4E)S-`+Lw>U`g4}v43h*g#!K=%tCg&QdVTtl zrOTXA6#>s=qnNa@m^=vQw_^74Hjc`z(&H8Azs8$4Vg@ecaL3kd5Qk5boN~Skt!L<+kU24qGi2&Rm5_vk z>Gx2b&AsZ9`STfChM@!KtN4mT414x4DPko*O(gqzZ)rg9`eYA@CwesAxqz`WFSA>B zhI|%$2pj&o9Nbw0k8cRt1gOwW>SxvYQ!SC9kg4%;!i?wF_)Abh^;Lg>bW-(p<9=f^ zM*8}x`VkHnO~eI;qrn54i|1E})7jHB8GY?(<}bXRwmPX4<-LybVm?ols2&%ZxX1g) z3c7HMpe-=1K;fdy3$~uXKSUWhg^Kq;l%b){;qce0H=ZTuQ$*P2JWP#x{mYbjS)*DX zd*pOG85*Oawz;<&u&E|S8l7i4$oGI31OyU(yff(+1FIj2ruzS$+qF^^hgzK+x$2!6!gl~qPUiJ-W8jiZ#)(8r*S7jEhh<@=u1;V+*~I2sux|pnAWEyP zfr-vkstSJLiIuSgz+zUSD-6scvcLpEjpCP5QzEKJ)(O7~inol^G3ZSf_kO0XvF`vP z<~=W(#vO#@@9br!3!6T#*44m;07rXNp8Ta!PE$uY_*HOqy)v=kIrQsI>RHDVbyI&$ zP^H0(ZZ)tF0ICW3P8Jfu>GQ4 zqD&V^ev35`Gp1)VS2p^1F@>@k9y>M0S0{&lm@8Tn^@C*0`R>JYd+ZNIAZwSwq#w>C z@t3o)^KEHx^nI;o#<4Z$)-DDz-DLiElNyo#SyE#^8$?0ScV>kopsv14eWg#a4cXOx zIu5T8c*l^zFtYr)J;2ZIh-9sFWbGzEax5z7arxn*RO-~hO9`C@Po{UUk`Q8BkM9|x z-v_gAmYyPS9!T!o2>^jkRGWN7L+V*x9aupb?M zYO|@MoslHhsgfH5s$`B0U0F1Z*BB#$$e~`HutM)k4+QpWLW&Eh?D0OoE$o3b+Tv@x+g{y{_HPUjF1%p`z@9^uiJ0 zzK9S88Ry!xR=!jaD9Pv8IlH#xxhjf0f>72?p}NJ6bl< zX+u;nPDL&9q2QGV^!B5 zT(tI&uL-{!p_aYs$VB1^v~$kMe-R;L@=2(elqlr@$*-P61|yJ*JR{^#~8{ zFOQyge2bugEIjPp_`;xtQPCg;-fnGwI()3_x4SJFqI_oBX}0;k@K=CSCu~ZL+P%7^ zVB<_THUF4}7^lUIS)X#k+^}IRKY=)LN20@xNoaI)Q zZMxP;ZLc-7Qf5*_yf>ZtY?6HQ6L?s6<#Obcen~q6!SoxIgSYdh#peX>zy*S+=dSAN z6lm7WBB+cj^kcA`yB!E5?;wiGPnK(#>toIcVPKPlFKkEMfTWIfwsat@G~-cKPJgU)}jFxLDG zrPn0Pg!8bNvIdg)ZxZGhbxTjGGnvPD$wqH;`Vhh!yH#t#`!SU#)p2EtZ2-uMeIBfsenI%Dfp@$my4C4sdZ?pn zY#tVVyEKvI2d)B>0Sm!Y@u=L#+c#IakRdF;Bv(|`tekM5))Z;k2T&hK8kJr(1T1_L_CivGW*LzKt& z#<*?{z#7bPM~(SH&C_W^vTW-m92;UP!fMnx_u2+DMkQA>{FT67s0(GvHN&|-`PvQY z{pALs4;m8}3j%-cw;hC__uCF~AZ__=2hm`+Q~_HnWis|n3O|l~MdGMzbJ2D29cgvt zO3xjCWZBjS+Pg|C{$G!5$M-jvlfG5;)ywodJy;8S#;f=(IklH4vj+)F=SC?JWzzj^ zvU3;@JI=cjTV?`gdH8!0*vSG*d&_ho+oU|1sCQ7*^(X|Rr_+o?qTl!M4vNTB-0S7+ z8RgM^y(1h0xh13QqsC@c^s~AWNbc5LkW{Fsc{Y0Qe_mrIuiGtNZa9mZmp28&Bh^I zMWebn%_s%a)OC%1oNIZ&u8N>1&i1x;cs!9;F$pornK{ZB-j>? zX$Q*lQA5^CYqV$W;GVd-9;{3|#{Z)265(D^%Ug%~lTVi2LM7wd1S9)Tye$)P?lby#{s3Wc;@V!>r7c=Ly|aj!gugt#&scRgVB!ZG zyE<|NWQj%+&cZlBEU%gg)ndRgDWGfB0-eS*y{Q=TJfCDU(%V9k+M4`>z-OYZP#*ZS zUVcjp-F*=Anv&tMhpR@Hdp3**y|k9+Mmsd#JLXMcnnxVd^@^e?9A6;I8?K4GQcWcO!@0^yI zD>G&*(9s*HPI2tAP?*I$-Dw+(57C=dVhWum%qT8s4=axO=V>o1W}Lt_o5?I`>wtT+ z)_R(Dk^0nN!I(?jGV6SnLp8ICVPI|3PfGTmJf*L%9hrKH$lFYiULY!)ZDyUsho zY%jnpR*p3hTwSnM_AO<$*qw%A1FQ6TBH(0FVXy99b20(dEl>Wz$*j$V2E?AZJtrmG zZat3|+_ss#-KEQ7c?TQ9+--j}{^}X@#{>+wrSvT|=d5(R(9?$Aa|T@yMFkx9H174R zO{A42VtS;B8^n@H|E6UU%}R|5I`rZK&880=2>ODpGKm8IZ}4Fw>eVBXQCl)YpEL$b7$U&ac(W2vSPnrdzl7-AGkr!)|u^jqKht% zx)5gZ8-gIm2nwrnSe>g`C7tr{=Ps;6;lV<8X&w-_a2UKvz<+2fc5N>??f`q~UA42} zfowW5RA^9@DI0XchIy&4x-&zyex*2Aw#}?6SZx`3W&;blM#MrUv~RLU z{!3~TM7;gqdFs!9>(M|>%xORZD%H%6h9McMgZ2!~e4@Av72Sc&iICS6N6Tk0DTI;Q zO;ZeMHgrj0g`X1lo2Y(Xj0yo_kgSGbOhP7089HaDK)lxJSR7Yas~A^W+T}%c6T~-N z#7Xa4#5P87kBYj=@HA1`b*T+IyL(8K2|4H9_WY}xWQZ&VgKZ&Wvkm=eCEdOK;#x|I zC<1e~kBLX{FbA>HC5Y?>38_B6ai@!5bdbPYhkoN;eH>hi3fFeMUYNCBCXIe=tPBS`4WjdRO`CPFGSUGYn ztZfF6{wyp^;FVmF7=2;ni**<}>A{ELFfBKoAx~lHKD*(JGv$Ze)g0_Ec4iQUe|F}_ z#tCI7j$hkLdS|iOZjDy1%id;I!Z>0ghf|X0<27DpKNE-vX z(o>F!i<4#xEb$SksRneK#I5EqoX)MF@&8;Xx)-}zXtz7)#hjI{te%9Sm3M$rzoJ8> zuB4&sdK6Ht&sj)bWfMg$G2PQlwJpqjbrEskFoV7~@K{kGO;+?6N-`Fl*w2r?y6Mau z2Dv-1L75esKKE5wO;v=V5GaJi&Jq57@V)<(VicJHp`!36^{53pw}bO>^~( zAjJuEjjDmEmbCV&Yw3;#6a!by9jG$AhDnwdqn)mMX;u{+YZPVp#X2{OAc@CEM`u&i z;miQpp}4nXS1LY+@i8Oy4dq5=K;U}CcfR>8*Z$y~JTciHq*ZTkpVyTKyDpmR`bOfo zow@9*>D2$T#H4gC5vAw&jawA2WHc#=S_J3e#jObrZCEpWB{UyP17Fk|&yXJ;%RXRaO0M7lZ$78hDbUDQ&13juTb^Pw;DHE;0)mP*F8lFlRShs zFBUDM$eth=_MP{A-Qp6!rxdJriKr@$6y^^^Q*nVVv;ADRcxCOMp>fl!UP=ox zw^ybHf6A&=L~c52L_-}NFyfw#v0pOdW@N~BnUP@k=io4(LqFp(1`<(MY-K~QD~}^_ zd~D5)VoY&J5@{y7n}!1NMA5QF=JqZU#^CopsAT7-Yy(?k@g-U ztuEmP^dAZ%Yz%N6nGfx8%XwEdc%ErqEv^ibFdxDueF(Y{9tYK32FUu6Rs%reVRJIa z)PGuVg5NNKU&E9vPWHrgzqsH70;HthJI)p_G4neVmZRYLD@R$m*taN({`%?Fyj~dy zBY0mLg`2*=`;dr-;U49udsyIFgdO@z=T%B#5;~S#*!bzGLrV z<&*DXuJsm+WxF%4MWXKAKdMk*-&iRC6x?>+BX|@tW*YlSvJc^LyA|4cb`g%TF9zs(K;DPsm+K*0YJb?I zLFXbT2f!YVYLVg1cDw=evbRsWU1mnCKcTAsLS7Ppu@(#6qgr|QIMEC2rC#V8<*u&c z)QW*du#KsJYBVWvP>Sfbi;Z(Q)0NZ6!rPH?Z=mG+QNjZnAp7&sZD*bud1@p{6jd9F zqXk6{PXqzE$osjMw31pVOjZ?qF6q>Her&IXCs!zSPx3{9kAqR5jBDbf<;o=TQLfBZ zuYJ#;UMfq5YI#=OMlP<7Jwc7M$w24kQn%3csW_bH_04048VQa96^=<#ktO@De5C=V z;3W_m^0{}w$RrJnU!=+5-<}6;cJOacHY=ZT&DXj zcsmwqu}bVG97Vnx{!w*~8NZ!E@kECHSk{*W7$ z6z;xyU#LFu5EZGjuv}beFtqH^Kt@w*1mg})Q%YT2hZ7-ImfO9JsW`o7^{TPDH$l0Y z>vtVt3{nfiW6tG2a+Jt#awh4;?0SO(+j4Q&3Cf4nqG)M#=_-G2_X@z#oAOxyAh}Fz zbgCjJM06;I;t1S((kPwvyE%rKA?4(Qo!_TN_S2_)%0q4)SY3}iOEYZs4{0x0J5kx(G7Sxilurx{4N9KPLZt0nS=o2# zl2zV9$zpb_ryS#-%(Ws$?r~P`h;fFaWsG5bxK@nFeWD!2HOL4j_YF5Eme+UR>{P|A zT0C`Fz>M)>WifZWg9vFd4v&M$PWdKSdz2c~trk6>c))<;CO7Rhksbl+1Oh5U9l9K& zlw=l->>w&YFG@n{Pc>^O<>JElGqHSXPMq1lY>-lP8U-j=nc{aOhI*QkAw1w#0l(>;KbH{alGs4jMAz$!K z18MqUeNPwDasPttA%h~iHB$$jjL!GyS5_{~gA;@Yo%jkwdSiUEjxz<6jntq?l5P(B|8;ZP^{~Jk3c2lPz z|L&kbpWzu)4qozi{Q7mx5{m4oa>nOHnn=(ojo^W&ZrUg8Z|SR9LFVsQ^BM6_^%N&u zr=02ig^ILP(j9x0%v4H2z9~nGo(&zZ-eNw=8YLj4@_|T%M{(w{s~DDczZOgItzFd& z`Hx~ypPWjQ<)Wlmd-O>k>9e>>Yig_0fIZ3Mga~Y?XRx;vgGZ2sTu3qr^F;4`n4LaM zfKWLzm5vd8GEk{#4&O2@u{Y#r5|@Bna;5Y9@vE!`Jzruu6SsQT%b3I6@*Uwiqf0rl zQA+iCyXy8cv5EN%YC1R1zVyx<&41)0|K20Y+zPSyRppX#k7o#8<_kzQD2VEAU>80Evo|W&im6ye)R~0J2THNU_Dfc;qxx@8i zTGs+%p}itBX8UU~IN)@{%$%1&YVET&@SUNG6`MW}2s1Jm@FtcvN->I`K1f9q8ObH3#oX>mr{dfI5Rt&4BhJPsfy~SB$%5=c7c%1GNUxMr;P- z4pWvsIzD`%1m%1{AZhu4lm0?(nUPu6CHUC^6;!lXJ|4bzjsgKIH^yD6ovI@nSNSNVXdzUsd+%(UVlAFps~UCJW`A{y)8=|K|o-pL+GHX306}PYJ$w3?8c#|9WukoR^AY@~t;G6-g(QwPCsma!{FR1Dicd zov*LRYLP0c`A*hfyFGK~x4uTQjKjr4_@IoYxn>W*puscx17n_LIm}nnsfhniQpY&@ bC%O4+jVmhU3R>_i>>JYJ3SwVGbUptADiwjR literal 0 HcmV?d00001 diff --git a/monitoring/docs/screenshots/lab08-grafana-dasshboards.png b/monitoring/docs/screenshots/lab08-grafana-dasshboards.png new file mode 100644 index 0000000000000000000000000000000000000000..30740e612ba3840ace4b240162b68943aa33db9f GIT binary patch literal 164361 zcmZ5|1zc3k_cw?NNJ%OZi==dSsem*n4NFLiG)u>Vq;z+zN-5plwe%uLclQ!YEwQ}o z`}}{;`}@D=^I`7H?7eem&Yg2+=A7>#{Joky!IKwHFfcF(6cuDOFfg#CF)*+)a2}&; z9veZj&=*XQhWuNMvQg??bm5`(8`U=$7?rVjx2BKKWn3o(eGmo)VfWuZOsL~e3k;0= zd_~zeTAs!Siyod@+9>GBWuEFsl5rn}w>V#(8sr5jL;dkN|kRn5^ea5N`j8E#f60t zt=rU^9~By+#hiFL0lC?{vn%PXkI1HfkrNY(``=?|Xe30N68}T-h$p8+^qUq>3e|zp za`f~Xu^be5;5HPsx~Kz3Q;D3MT(zS~An(G@NvKdJXNc$HjkT@p*kYfTYFxb-WLx5K znTN7!8F-WfWgGh0QN<`OdtkjlD8{F$63TUGEVR2jmm?)Uz7reZ`&vgwC%=g>8C(>S z&Y4X~y3?cjMs0ygr(K+x{y(Ha%EiUCvAs>%jqVBT^z_up*_k(Vlh3@4jAV&7aYm{T z$KLM+(ei_=k=`_wk9=RM8=s>~Z-EfzIv8u0xRqHQ*^A6y9{J(0g9E!Q7)0H`;6+YO z&Vu)TXGWa@EHHwH;-E#>5AMSb2^43rl<6)Yr>&Z{eiU0J0p1xK?Z|2yfDdMZ) zu4`%Q?c$7Bl#p&A37KI(C+(tVhb>0XqFMCh^8<<@EMu&O-dw6Togp=iV#!p%Fv{Xd zb|NC8s;a6qX@99OBEVJqaqGmPM1gZD>pAYrVrLn)DxA%B>@{lLJqjy7gnwhg< zs+99^_+?*F4S$$ZDG=BsWb-9*05=ggr?H7Tb z>tQBA{(ih2jWx#&OF%&JV*|b{)x~wp+3sMST^Wlk}>zk;l!tHwo5~9x*4r zb9D|j_>&pAKz`UZddOdynXf$|i$kE;+O#nDEd)INEn!ZjbJGkhcTH#8gpf`F`AKIb zy@8-0Zx1ZK<^k1wm2EnzCir*dHeKjtWN)rWSR!jW+4KEB;Z!t^-U(qWi(Ti_vI&j8 zG-1)&vU$S|yzAi(lc6OXHxpzdGTkSiw)8KmKOn}O3=IwS5D4|YAD{I(9P~r4#vXV_2`$^tGXA}&p)Z?_JpXI&l&+J#T$HBv=uW)rPTGP8Vo}^X2arY$8 zqHDeN*pjo5=Jt(z(S6adMne$+G3QFR-s6J?h6EfxU5MbX(7CBI!1)9sH_E+zC6)c* zd_Ua}H!?cc77y?Qrd>!lyhI#)<+HY`-;~BWTr)M%`nsFnNB-&BwyeXJ4fwwF^W7`) zf^9L6;kMwA>-E*&81wcHGPh%JPm7~X*_g@-sm3*$sSI}-agy=8w1orw(Leh!e||rj z_eTp%JbS7&zq(p}HeYD*pE4tP=BW0>6i%S2yP$dX>{q+r31vn;Pibj8zjtE~jEo4D zxzk#;WJ1TkD|39=ny|cuo(6KYR?}sNw^i({ zY}Q_R`TXlLG?cf>v;#;%Aj{U&v=_XfPLKNg3ciRiW|jNt??}ybAOgFg$bGSxBa1{C zHR^UCRuSZnx-{ol>UL;D^SYQ{E8$Na#}=eCq@A0e>qVAA3nZTa&}e8b@pse2cmHzN*Mh zu(45)4v^n8LTx<@Y_Wdf-{4WrQaL>JZzG;$JGpW( zf?yg;z^e4|c`i_M`~oo`GOW9C|Bv?YPfGk)fd%SW7saIua=iBCyXN_FlQ!3#2}(p| ze#x?9Y)@21=kZD|hnG2KbJQevLX~+&-Iw}p4yKX!a2n}!MH;`C9{wZs^Yx^DVrimH zzBJ)|RS`|gooB@|ibnS&AlrL8m64>JYWV99FGa+@aHg8?OK&D>V{^krK`$>%WMySH zp6E{GKsbT#cpVNNl3c)7GacJ{K6BoS3v+M;u6E0tRg)v8fYq$8e!iLF`N>@$bs*u<@#6weea|bfJ^2WZY_HzMBDGo-T)j&HmMjBl-T>+T8JA>7+g!oYHbZ z;_r9Jgu0%SzH+r?Zlek1txBw1>!o;IOlb7g#vw{rV~N;s(-!~TSaArqoSgON zsHeAJmVZdd2TycJ|e?OQgRj)?~f>-ZP{fwXd3TC@J&0-g)6qu7f(| zRA%VXU*$vmiuF%k*^raMOc!u&4 zzuNQnUxVCVv)|vsug1 z{n3wwx8ma9tPPb*aVz^?UtKxh9mk_p(?bA28iSCT>2xze?&0Id6S+R>GVBE1{40jx zXD<43)-$OP4VwWrG4WX&t;9O2LD8_*N1u+&=|`7?2XMiP+*VUL3A_$pnAMn3lauk# zIniQmi0Vl?a!-bi5L2%iOWYnSAz9kph)hPHvQYA}F49LIY}}4oMg%U9E-h z*T5uuj^#~QhpFG!Pfda4LKfpEF{$aIRpc??Zm*q6XhY@Z%eJe{r&stE<7c}IK9>Rx zfEVh93WS+L)O4vL%#t_q%zY2nCWjMO;3xPoZX21kJ{XSIizfn?%iXR+z8!%7xwyQO&SvtV~O5zId7leg}bX+OqL}w%^$vlnogt%9fFyco$;{5p=OG+ z9WhBSBxsn&`_CKaat;kz`%qbNC)T-pgRnwpd><;scB-3|)TRh^9h#qpWV~^_l6Q(m z%>m^3L|f?24z9zF{S)D4Jpo*@PQh+BO63F$o>#TIXD%ao-P!(Y@jecw9}&J_>Ef&5jXz4J& zT!I}=6ESl=h`DbHJKati_4kw7J|a=3HV0%3U|p)MZ`rQnD2N9G>x~6O^}G$0=KPLd z7U-P#j)y!^d_ zluDwzFz?wM%GH4;3e<-gW0Atx=6l2cGgX>Zx_#g@p>nmF$ZBo5jdWyDt=eJR`5XV@ zO^A#4rB4YLQo;goR-j$}Dnn1Va??ZVcKg{x5EQ`Aw zt*)}hbYi0i&Yvit75k3gY*$!?nDYXCI8KBY6nyW&t`1b;<*eCvELBPd@Zn?J?yv4r zs(S5}_<*rY_oYXS2cW!(^Lic^1qn%U+0~rdu%4PH;jd*fjlIGd3n-Fmrh}ed76`aG zs_xgBir6ixnhsn51_{3(olo;O$jf(S=+Ao4)pj{ml?A&2I*;E3HP*??(+3$2sEDap zDTXxc!>!)4lL9YjxPc7trsiFmtiG~5e2ih!?C|!B$B&_x3}vdlhhmu~D%?LZvsPx( zU%!=zt(1D%+ETIkdQDu+g>9Djl9@bKJgwWC-*@NzW5OMou>PmR`b^tO3knWL)Dgf$ z=7#zxCZV3T(u+fPW@-8ys&cBgRMUcX{Jo&=Zz2!)>OmE*T3LuT^|Ihz0;_(v?&k|P zY;&PLi9VjvzqT7{PvO#mUpi+?Os;5)V^dokUg?Y56T@K_Kez^a(>hHxuyPdFp4B)xK=3Eq(v|ozRf7 z_!OC?%Zddpmqmih%Bu@;4<6y8-iq%sJIm$5hx9VM*32#f#b@PM{3GH7R>$9Lcb5yX zD??AWrlTx-v@t~lBF+1cS6y)xHtSmpF@)!OmV1s-)8jWq?y^_u{WJbqb{Ga@mDU5x z;L6-ahmZbcpJ{?w-JU`BZQipG+bEO;dr%G@ci!#JwFxeTV2e2ML5?xkDWC4jkk(@u z)E_h3L%~1FAa8|_BXOhN(8>Eaa%9dW|I|`40gTo9)GxnJI$^bd(>@!I? zY2{`+r7||lXLQXmS>iU6@6r6QohA-A6t8;`$<;K6|I*fiFa5dXXAW_9yUlu4s&9EL zJNBf^BrAZg^|3_1f7{PgZ3;)&3-ML+eVQ5$B0LnYf=`=7jZEsP){9nH5^fb(!>F{J zXXf()HE(?jEc&ZSS~K4fudV?%E9x!n;=m>0yauJ$&o3@ojQEVdDnY~^HM}S7QiKg69ZPmpyK<9EQkcpBgU1`ypmTBS z%l-ufTjD$Xje9G=gAR6ql>Q5bGy(do4T9wgup^;f*?MEU(T_KT zsG3eusq=~KkO6h>I#O!ruGPJw^%Lh(v~cJ-*dmsM)xX+z(vkzm$98ok*P()nT&^vLmN~^W0CdLwiG69NUNtjr>I|{O={Omi zdk)?Xf-x5>rW&k0P<)7eJQT6l6QUGP*>Be!WEl-#cT zX(%t%cb9=ER$z}@g**Rg@eX*wU zxy#C(cCa&dQK65hTtX|@dRU>!D=)FZR=ALwVTXT(eMWL>s7##;DzM^0PeX{O7-%Gq3!ezm}@!g<+JbjSiQQ-f~gpbgU`NWg! zst9Ha|fZKO{X&)cwHIOJhVdOX@Bo zF|#I;=2uK`PxME__EWA@UWNjmGLMHbznW(<;v&pFrTZ48s_bTLh}tn8+_ntvrS`q` zRZ{y1a&%~N#wj&AoVQ;t6CYfLvTZu=G>|KM60NbxuCLKoSkRca^L_z{XDFIq6T{P# zx-N|J#NLf<7bJj~_C=r?Fbp{hTJhmZt($2vS}^9r8aT8zKCZ=9JZv08*yQblx5uol z548|d={`~G1(^0cg>bX|GDepcG2Yv)Q*+I9cHNLG4OcrV_EDvWTUG8b;)n&TPn&qn z8h9sBpX3dD&Hv=$Rd&YcU0TohNUD1VtlCTVi`KLrAo!6fOEcI)Xg%yr^fJT39j-{9 zj88HuLNeAw0!SEV0o6{*H957-k3~ z_VF1Wgv0u)F^ zm6x|(G6vMwb87<9)KW+DmvxOLq@>zJ#GB(P>U|SlW{&jrMelq0qo`9jZzy7|as+CV z?zt3anyIQAahHsxEGt9TKBw(hOHF#r$Hc^-x8o#~l!_J>j9U%_QrR+7v7&0O8icr>x`)^@*x$x!439`tAV!F(mT4<_owbQQ?hWy`%)Eo=JkLLq zVnh-_j#z(@7-5|-LjuRcP?)|yc4k=1d~r*!dXZ965We_rV@U4-w-BcI6@0=Y?flBZ z7A9w>#G(%K@qE_!pm)eBH?C(N}U=q9^!XpZSG(QeUlX-z*ru-I}KVzF8g zIDkoNm;e0vl}O4Lz|CEruwfA5xbBa=kJ8k0?k*;sG<3vV!@=vfUar5mOS?-QxOKY_ z_iZb1$-GHX;Sd!f;y=vv6RH1N&7!N^Kz$$DtQ0c|(uAxuuYWmfvuSCqSSEWcw^?m^ zVPVzg;AlR+tP?-6CdO=NU9M5RU%l!v;O4>mQ%;J?Dwf;UV-Bj=pym1cm#xw`C&u`1_!xpeXNl39d;Jn3?c^TT`mh9**s*K9*=MluPu)(+XI=M#k^8&hgr z2PQ~Ua@?QSrn_??Pp1tNh_tfy&mQhCdnc-=a#_yy1@)ZmD!l#;P8rFDjc+RJUk|kF zC&kIXZf;9X@DufsGJ~fo>(`x0>Hs);y3Zf7E5$&&VD*W+JIV?JPuqF@#7LaHg(H`^ z>=86NG+c}gcTc-!VAq??1Fr(JlJYr<1ui#ng+?mdiIkK|I}~-$nst+g~>`ofpB0bwW`Fm zOEX~NM(=d_Qm+MVht=j4wAVhG5C*EpZEt+ReoDC!Y2N1mzH+e{@Tp3&+y{T()Bg@! zTYVhzXxr1*&xb8tppz40rX?lM4)3MCay6vvEF8aw_mHkV|3T%6D^5SdYO#N{)2}-O zVyP&I?6F6QKo$s&lDoa>R@bj{ebgLKqwOQ|j?UCbDQwza(Xir~7mK^*cz9dj=NNWz z1(nfW2D&NKw>Nfp4-}Y1hav;qFD}*t{pb!~wHpt!=Ams!vRrQ{BJ<~ZSl$a!mj!i; zwhM8_4-zS-g1*rO!*dJx*1!B(5cPhQ&CdLmcjB^WDlPVY7>JNw58GTm>AelH8#?`_ zU2lwG0iWxbgGjBHs<+pr`d4LZs$t6N+%kk(2(=-krEcKj;44ntIl^y7uZgi!+DD+v zeo&%izYgF~eVj{QxK+-k?Iz7_Q{E!X^B#J)A%vT6zso;QKd#`Gi#Fe>-JUTc+OIS6 zO}W<6xnWqfdXS%_m)Qk%nVx-4(IFRQrsglp=upNLwMZW+zzzj zUxtTO>Kx|nO2C~V59a|FQt^hUkx;bXp}Ws5_+c0cKss2nP%R}^cB#Tnsa0BiHLEU;yZGLmlYXg)zg%@vF-u7K6%Q1YbD}W-r+Uc z?<8MsHR9yr(lsy;ZZ(pzx~-dYR`zpnc}=*ks`8TsFQJuBx%#l2h0b$=A3(YljbS`0 z`z&5Y2VFo={pHMbbD1{p8wx7+SnV=Ra|Xa_zI2;GorITs2*+Kz9ieuMNhR&tHg}t; zNzZfU#Ty>j-L7h1t$Pr&gBD!)!w15!Y4GqRHjsBO#zrL*DOT+e(HltRK<+@+FZQLC zpRa?6TIvxO;l+~J?oHcju?d1wz~O}^tzWXfKU{{6E6sN4gR<<4^uXMGy{6mD!6C;m zrR!|W;NRaHsiypjugbdIK6Pi%>O-zUgCsMwnGDZ$!EHRK+8=OB@!`Mt2Yb>soN zYoo^tO?Y-+lFt!+fG-YCxpVp305o?`JHtTE9*%ttmFv9e2Sh*qgx%I;7&;0&znTq6 zs|4`dZgoe|koBS*rM9*i$Q`p!D{0y9XLAfo4|>{S*?QcoT#j(Fg3NZY1!4)H3AI6x zRP9fQX~0bK>N`D_n{HOYCMha#sz5A$RXxx&!DIhfrij+6$I7)|*ejf-nC&IcWR|1n zGUaR997qR1trv4y=TdHq7KxAp^K8BN-D7<7Gfs~QhJJEGLw2Ske)W=k2}hS;qk&x! zZ$a*T!N^?xZ3q)@5_sC3Wt=Ifho%^boF1VbbZ2RTah{1oyMOcMS{?UCrIV*LiyjG7 zm2oyY%$ch|E}l;SvIhL7gEbnCuqm`#tU3D`YVG8GaS`rJM?DU8Itovi;G$8J2l9HZ zUL5t`BxHc^U5IopCjI|IR=CJF@wSZJZV>$ekb2>GLSjBEN0<*)=!3yf zBHPHT8|(*h$=a1+eWKJRQ0t@HbA^?}@$W|QszsA?ZHL~~sM*PX%+0@*F&v(1v7zZ``t|!r~=i1>ikDR9+k6$^6zVt@tfiA`5qX^fI7bX9uY&d z-1k>mHXYGzS(a?3C&~FH)h;zW0a%u9qYJ}BdPAmcjk9J{UxY7ZdL6xR~N%+l93nRz`aW?nNwuVm+h8bp14)H zs`q4E#Q7)l^t@Zk^;q|?abhsY6X1}3%6!C~hCbkG-_whw2L2eFKCXGvn7cJ{K=e%u zjGfRgs)=$^GAe^<*Jp;-c6F;xg=jYJ*T&8!Z^{h2X?mVU_j24$7;T1k8x)ma;v9f5 zW18>ZH~{7nQ##*>Y*KIOg;o-=kdf)eY-+U-4NJ)o$B0mh_Ey8hL`?USL@EWdfJH*eT(>K(22FGg|@xAe6?gK)2|M;7zHw@Yhg;Y@u??OZgmU6nV&-1ZP#nA^nAML|tX@GPn1kuoW@ zb5E{WW~VV(9#di#_~J%8zeRA^--mcVc5{tlJRQuy%zuay-vPyJfEu-Qn5e&en>ssj z%eNkSuP_TOswONEx3YFR{n-#ba`H+{?sQBpJ#Ql`g6qD8h6>uvdYRv2hiBZNhD; zMjhXA+me@3nKu|&5_MEHybebhHoWAWlDT_azjh>4rfO@uW0!Y2FM7sp&;#DC`G(^j z)AL&rH4|oIv{Up1W3R4ejmD4kS=9b@&1+fTqx=Lwj_)isM6vxIe$y-*&CAbEi2tx? z61Q100MxJFz*_P{l>0V_l7s$C;^Sjitn59A8F`CK$YvrDp%$Nz@P=#5s^3qg5usBS zPQWr#8n+QNDSfp)@dssj)p%4Sw=r(jR~o{rBkV(QpV;1VP4BPYl-k1YgWQ{Zh8!xs zw>W{HiZ%K?s}`ul&6bZX)J*m_oNhl#^&1KdInp)IP-9MX;X{^OT@JMgmZ3dJErt|e z2?*MRV^?QJ;VTfkuu$#8Zj7JbDuQ(j17ld9?i+Cn}sW-+lgYfaO4D zQfGJ0c4wz0vEGrY`+g*Cc({Go%(ga`pI~$Eg6qKB@nQX8nLgRkW8PF3$`pZ zF;{M#haua2=rt|N6a3v9Wsj+ zKdtt8zsabV#O<&Vr(ei|dd6#Ea3YGq>1)(L)xM9)h4Uu_eOoZny(I>X`^>ukc+vZYd^lQ+Lv?9XIY?-++yTe zw=nXuB=zc2U7oIi)M)hgqU(OV1 zD6(VR-Np9J1Q-bP zc=?WO;$1Cw`P%zJmKGQ*iw_l5yWXgj0k4zA?!K`%+Ke@V4QPS3Adg(G&uq+3R*QppgQkylrNvT*og?ghCZ#9YwSMkoiVnjlJ_!57ld* z}Ei5tMM>0jl1Qqb^&+g;&>p>G9ZSM}GC#t_8 zbUYhV3-L8`CC{BlCfI#Nj~EURiw*8u}p) z^1Kpryn&UOKGge0*Pcztjf@VI72}=8506~ai%7s4E{OI_uRoRokjXS1+ zjF!m*F+&BXY22Rrih$YFhTqeqhdHA;wM?WU4$>+wFl%V$V--9w@ZwwLNe}UCpj=Ca zPckp4U&6{6gxz8*h<5iD(|>2bUA=N2eKA=Z3Z8X~>-we^h349&URm}rHf_2{iH5qY zZnYmO^o61x6orq+Sx)&bN<4twbP>vn{6ZPU-bl0rNx^L6#g9ewMuqfWdH!H$T$OyR zVl|hCdxp#IRo*J$>=xK{yO+>|L8T}Xulzbp?aB&Z;g{?<>mYQX4jt!fJ22!8JKrj3 zw&po3h-mdO`q|m)z@*)(-W?WWbrm<7cEX5?p;T$B-Y{i zvMh#Ex&v~3>O1ETB0RJ_-YxLv5a#HRfQ<}Z5~mMw-^8wvjirBb>>jJxuXFy%lXSu0 zo!U|tl7{Kwe1A58U)D5l^GJNgwLiima`d5yu3(hYuMC=LRj8UNVK{w5#eG)>a6ssg!|86C$Mt0r|!jf*OkZ7Ha#1+ z9sVf21iBI|pG+Is#}@K1pVt6;N$)Ld4-^{ldO_0b5vb_ zf=Yr{AZbtt_W@nhRIHcRlv#qz(ONzc_~QUJC~aIUjJz7M!ocpDIAsHBvnpH?MjU>SN)s6zeP;U0#C^$1l12 zvYfEE%hM;-zEu;?$y)RSYH_-1(SaiXq zaoSbErQLWdpjY}-EO;L z5dr%pF$%xtFVyW|rt&+wZu5+|7C3v#-0}fJ>DH1veWb-nRdH<^k>xZ=t4nv38pJ3r z{voZYp7D43(A4^_h}c$qOR?2a<=?|b7N_tfJ{kdSI$cJy;M5(x;J+**aow-E-~+p> ziME0M=!G2LRXH|pWuVUXW}yvDo$uPN)~q##X((N{U9D9716kLx#|C%FGE>1yyO6KY z6izF-1b$wbLO%0rQVE^{?!N#on}K(9;ee^b@2{LNGz+9VqjoiS50muo$f&&bugrGe zRkd96U7%RfobM&^@kcGEPeV$?VXdF!DAd(CQeMARD&znmdb-yl{Xg0W{lSX0a=5w* zo7t{=7LT_*F0x>+s$)i2^QFMTXacZ$9Xfq z1yMMA`=0lq)2Xmd*%iThLu&GrbX}4M>XiP-*Z_cbqz&jkdkWCRpQ)Htk+}VZ2eB{mmdAKp z%egjkf(#(w!4#50j)cogm0E^QvqZ#XZ6LQl+UDP^rIV#5Y`$U*qSNg8&guHt3_?fSZQgZ9i%elMz!#1 zsf~OTI(pZp(|-Rfc2+zP}aft;z8HlD-q|o8qnhJChVtM+OntL|A3axGFlmM zoQ6alv+-bUj(IeUjqWrtuMctssKGBGFbvJRL zZO7^Y4ou>!G^(o>hl+JJw0qTM6PJj9#nf?^v{`Wd;Nb1Yk95q5SdER=YPsf3klWk2bCfh>&H?lqAu;Fis$-&( z^&Y1sJ!?(ESn)2j`;m>Si~ZgFIoS&BQw)`=$PPhOm9X6a8lcVIy|)e`7!}UlpVstQl%Vy1e@K+(f=! zNg1;@k76^vR#PiIY@7emty7)A!2ipk{BYUQk)6;gp zT_xw*JH@}7$bV_WOj*su|zTkHbV(%8Zpd*mGjzP>bi`R->pnSnE`Lp5& zl2W9L_@&0wf-f#EQczyQ&wVmzu(Ph*gYfXc0_!%Fzni>XGOui5dPVKo!<5RG;KQZd z)Al5q#EmXCGr)hQ4DqkX<1r@^qJzSUiZMM#diwKzv{$H~f>ZF|kZI-e?}Siz|Hq~! zaP(t$C@v{s!5}D!V&2Zuau=HE=?_xO)bArCRJw+prpE)i&}PBpa2T3WAeYy?9fkV*wv*}ZTG zM0!+BP04qV>CL~=gqEkgYza3KWldpvdV`hK)$nT29bqR6y$h3zvvXf}chJ|b6nYs3 zB3^rWl@SWLd8UqXc^}3q>i?%#r#^xp$I$%nN6(%;Gml3z;0+ioHN~%UewBn*AQjrG zeX1$@;t`Yde|`KiyYu+lKmWGyPeU&H@6mVuH*w(=5IQdk9F+dU+5brmwc3mw`kwxA znF0PCY;@ojTE_mR#wwf9|LBQ-D&t9%z!Cr5LcisI5B~2>jU4}v$^UdF^?!F59S~6U z?cY!QPh*A@N&o#~v=?OP?~=J-g^vz3`-HYQ&0{>qRT6?|)^b z*gz27o2K&U-XoE%(UgyY-csSS&3hI`=BcS}Q8LR*ijVfG|Xy5!pYU;Z^VtBYv<uM|7z8~Jd(=KW&e~$28 ze&&A{4g>M{$gfXYMe#1s{jVnC#X#=veFFot&)e+K^SU4AC^66x80gEP%Gu}C`pNEQ zPVdiIT65TiU}#<-o}2Ig_b`>PmBf1Af*HPvP*!#}D;t|oD0jvWdaBV;fM9i;V1+T1Z1&7u0P?%7tFl**!T#oA)+ASA69-H|)fD>L1 zC%$)iKk!`t|93YwT?$%QS;nO&tHsi`M)m4OW#(kTfcLx{{yFcSnac%~O?VzkbGwkf zUS_$1WyN}eYg+qr<;3Uejs;4_8eG#)%d0PIUH!Sf6}&n8L`C{m)BKJ3^g^OFZN$dD zbgkJe~hVyyLz;iHw0U5f`_m9wio9<1z44I@O&E5xLvzzaeswYmBu+5Mg8 zbG>!j9i3Qcqs5#aI*#rg2ZeBnPBAaXe*}|0Iv^+rD?a{1Pfhq{QA62TV-q)xn6ca& zFs5>wv5L#7^O~5EoR*frn>R1fc(2vNLmAR(W(!M8Gh0TPU*0}9XpF<)b180hBK1=Q zB6?M6?i?Ufd~1SSFY%advQPAzbqlb=;HZg)^ca!$@io{!Z)BwqbGLgtzIHTAiw<;Y z1+Mt|3ijSXK6=j6WeA;b6mfmHZE(pxu^en@NJB?h@`S>QnQx2}{p^>_8I2@}PI}p^ zuZmnv>Y3v3T`BMJH6Mp1ULYtEzWn^4e!QZ(=)8!)yYW_AN8&CzkJxk)kUDNRNf{lB zwuWaz@ste8oU*Pj7{^ydG70DEg;6=}PS)1^jfW0fOJ7zQf!BO>J|b{cj)&0NZf-Zh zd3Bw+VQ<|;b2zC_Ca;!0z@)&<$>OFyeE5nlEE&j$?6I&4fP`m3s%J@lN1fPbiMUah z(NcHxw2gc^N*fxKk-IqeTWs_(q$4ug?~TsRT+>V&a)d@=deCOR7!FpzruV+)FU@6u zI7(rSNP5}5#n8O=;{91m>Lst1sHe(S{)#(u*e??2$c06;@m%`eb}r^J`n%GtZ)@~R z3}0X0sFxV%qt8uNnH#*p3&F#@;Ek=CA+T932RNDi5&LO8kCoJ+HE3(3J8IIlll-Ux zr>n&%`q4-9HeTX^V|C^0|5|Wf7(ip37erh*(8f3!#FnX^I&ikmjsI^v>Z3~T@r;pMUksD)j9>)5m?5^KD)kss(cq8sWNvt~SnL+!q z<}}#vV^vr%YOc)3>;pVQ zShElI-CMTFX{nZJV8gO%6rtmY3u`Y_$|nq883vpqZ@hYs)1uoz!Ihnz{`FWXWm#DZ zeGYVJ8WiA1!BU9Fk8PQ5kF?z_88RC z1_8h%Vc5d6;fkv1U*atCr1ve{NmJi9MO%M<o}MFQHCKYSoIN3#wso$H?k|0JNMW34TgQ~Dl!jj-NO&D{l9ayce_obi*?xW-S*+ZeFD@399@5peCo(Tmc$~>K7;%X(Stn6Lk;r7 zV0;w9Tn^4EzbeX)?oQl&eD4jnP@Yd?jqjo6^@gfWb1o=^!`l#Y#BB4GvGLWVZ3~Yd zm$>@P1TUD!i9y))oCS2pk#n_eXY7wOra0(lX_@}yol=%j7cpHR-NWynIW%fneYN&l zYJ+Aaa{Im~kcQm2>l+&9_(zk)>uj|U2OpoAhb~PX;FU34;`#&+FM5(nXHPN5AZf&T zyCAAbGz(%JZT4H{P1I-O%7o~=+OWpMW%;x-Z$hXuy~LA_!LUe8&&?n#iK``N+HCX9 zh9JB{r35GjQl3BUZ0(IhX5zbB91jEXO}@)nM%ufTSM`2zG8u&-t1@gYS~TPovm)`v z{kEEKaS$Hg8zFf9_wDc1EXhB-cRlg(nifIMB8wah{qJ76xKyQ!AJL%y?ZD6=I{BMN zS2d!pKe)CP0rTDddubTg*3;@Kg!s#@eeuI@a(_i5-a}cO6drB^t@tin;eT%|g|vGa zBF7}-ZVZp%-cHtqa089+Kao0-ceXj5cBCf72sK&Gf2q1RsdA}9D2Dj?Z7y;TMqK!b zq!OgRtg*M*Oue+KE+3CzQM|4^yH{3J3MqhNj@3Q_kLnOQ%xmd@W`8HHY{_}r&>hu$ zFU|0=9<{4;Tpl!!l^7w7l^!a~o=?BqYLA-a`noO+*sd!iZP+@J_u8K}JoR1l+F5$v zmpoY!pRLVD=Jc7D9Q)-3uFc@_hYuV#n(Scj@oYLa>+4g*6H(*S`>7nY6}zpA|GS17 zRN4hTa#U&XN}0ZwG}dhb=|7jCHFKmlKNo+!OKKl6yL8j4JX?v z^L}t1t1sFn_ct65&d-W;f~r;C1-2q^;dTOTB2|wrr+Fuf|m)K*(tNy+XpAaHv&1a6bM1wUSiS)1?%^ z1&DQ?gev)c7}=aIY48%Vxg8l5jmfc168ScYOo6q~Rp#l#ip56S$8el7bNGh&hV`!l zbKgmPO8xP%Y;|$jE4mLIxWqR^c#0Q4WVL>+RG|5`PNyXR6c5gk0~%J7_0a%6g`6w9 z3LQ|rLTRYxrEm^TuUpc292Lja(9sx7myRr}Yp+dosZXTKaX|^}+eC!?1xTq)rVr#} z!kwQ=i>lyiIhiOlOFv=F#q58f6T@@XBAiUG7~^8t(>|KLrxg z%E-t^AP|gztPvpdP#D=KO;3Zos&~D4%7)EHvI|P8FaLM#f-F(Gt{c{^`!kLhEkb7# zH7qoaQ*NC~wV`RWxr|nGiahVz@#v(WAFUPt)Gd5V^ndg3uCjdZjkb3G%0SbN`Bf(u zhu)SULLz2IJ{ekABBXSe0|26 zIL*_aIw3gephl8oKK`2oe%Y9bJi_=$QTYDJ2L(ab+N3AmPhEIXIZM?oZWy!|wmC)^ z)FLOCsh9DvE?DR~$e%;uMp29W8l`y4<=o>P6-|xT*(9lKZlheWR%Ilh9 zmOX60q`X=;$1_P=58mMP$DF#G6St}sZypu$jPku(^uy`MWHQ-D$KN!xwKm*AyW`^! zkVWlG1fN#}hJqtGqN?r`<1sPjdN)GWMxy<`T(G5xz_WlV{Xwj6+2co0KNs)Z z@gXs@L8<-=2Y_MS*tPB-=vJMk-%$@RbZGlPA7^aZ5k!;1ynEObA5~*Ps<-Koy)Q6=ymf1kt+;`0CMUNlb zeL9}I4EHXaNjmM6sz0uhablZAlB1?oT*VSS|R#pU7P~#7c%oz?X@9kK3cZrTB zG=Yf+TF=g_JIkWxRI~SkN(zU*IjPbL5Q=2phBQom=#qHYrJnPJ6S~(#^P-&U0Yb?) zY-Q__Lbpg_#|P`qj|p^upNv}tR2Lxa@?(&)dC~cGlSUt`yW_oo-hz=T=o1e2MTfRy z9`!^<99lBR4;@1p!Da$l1XQyea<^!{%t)Ue@rlhW^v%n}n#1-;%EV^0by+-kk9Fo! zGxRR~JFxer#WF;!yh3YOH#-0_CKveRvD~bBGY7_EjrU8be3HpbHc1COYj3`0ze9gHR8<5OD)}w*>@T0f7teUs1H)nP!&O zWvi$Ed`c*E|An&1xkFX#C!73RwCt0FF`ntht4863x+Q*ZEjA8cdm{Ds3MzX4aHwVooSHs6H}1PM4Kf zc8~l&cZvGoSqQ;|H;r)&Zd- zvY~CEO@>-5wSC%s=NgYr6?T50Hdd<;F-AUN#n1Kg32gYGJU%`iKitB9d!rDpUb&eQ zGbF^x&L_6g@l%P;{YBlgt{jA!U5CJgX_-Omo80GuHnDHMm+G6#I=}4rNIN(i8^*>6_9FW?kkqO_x z9`!jRk&5{5(^1VktZ$gN;-^yG_yw}cJuD|7OAsEY8GD!t8&Fpg=-;#c58_}(r(upO zbDM1aB=M$1>!5ewQ~S2vS3thHw>@3eGdQ>uO#woq6W->d(JUAq$F)JaqG!8fW4f&! z9sRH>rN#EpC9jfYM}@qp3UT9a#N%1KyvpbBTp&Mqk>kHHdB0~6IFrb$eV*H+ z>qOmTY-n?yq`SC)WR&eDU;$xd&lDIK2&5UsofLM2gnxiT(KzYZ*v*dS|DV7;1YFBf z{vN7SsMw7cW}_FxckIg85Qfv!C(U@)Ej#S$YsDs-gA)%Rj^^+F3(wS^SZ6@5>Er&r z!Tt5G_QyX??0WhE;N(AbiNBWE{|#^buOkC`?f(TSy&hfGo#`Rnfh#+7`naM0er`8O z`&i!q`OSyI!jr)Bqem^|udlIREMVB+voKw|fc^7u2n^XEw#0qT9t)>DQvEkt0$y?8 z{69F0Kk>}#gZ}@*YtzE=EQ#nDGIsY5ct~$Vr9~?mE{Zug4w8pSN+SB^AbxE!GXHo` zU4LKgM~lK8loA+{Qc_eB7>taJcsv1=7it#&>q0n~097Ef2;{kyg+1oO!#CebzRH_x zn9od_%Uo@Afwr^n^(FSmr?}9yP1R7cUU5WwOM$je-RL83lc|rjEKvwl=llVSU0+vc z<)vk0U`#@FNK@lcj5m7cCcjBF(TL++gU*lFzyJ3^B3R3Z@P@gWet@4)wOE?sd*(>SwDc`!SJ2lu zkXh>@g{afrnW@uPiPcnHkr@=8ZFmPev(eIk&jfzv>o>#MLiwP*vDxP4%RMJsvKPfd zvHnt^&0h<9;f;+{H}GklsKLnwIyZ$X%mub-iXH`IoYylA&A$AhZ$s(9_eudY;mFw5 zNH-R4x|-gCyE*#4`=J_7EPkxU=@s{vI8OUsx9t~`K2Wz+#7c5 zKPE=(_-oVPaT=?X%QrM~$4C61ZN6ik`2n@-dh?)ihyEvb04*SCuC;ont#_&b=zzDt zfDRZ23wGFjCmLX1)kXAr)=uac5l%~}B-fRZuUnZU-`vLO=QpZ0!YLTst~1qR^+4__ zWyeTTfb%sGe;EVC&Bd2?D#tPW9~LQGm+l)jI7m-cBn7-NYb~PfQV^A`>={Ui^0OY>NKF)!PMu(lJec(3$ZE-9x0-oYEC6(E|Z;GD&{7VAA`w4V@R)2{twB8NoH z6}iN2j78^(Q0V0oWpoidIzJF5MQC*neKeVDGn6xJvo0oIC<_9@&7taiYdBjM3K1zY22o(WGxIZc`~V-K}$G z{B~7lk(=k9>Aq~M!K^MZlWqCVZ}HD_SZ)@{!pl)GuF*Q!~?JSlJ=uCM3i)TdAS;8)K_m`O1Z%V{e^ zU3By;EPd(~s^=G&f~jw&HiG`MXGkwC0qnt!#h|h>5OZvg`n0}-g9E@mf5gc-r_Sgg zBLYu*B976DHQBh>SpS?H~{*biVNKX(Uwa*?=qYZDDV#F;bf*xProV`8&;C@K;_ zH2*7bq9m$cRL@6Bv$QepHn_D@v__d(7{0EpJFJ7GXeqB>Tc`v2q~*4 zDj66=m&p1*eca7LPyZo93Q7?s$zdKCcsn3CSnt5GuDIB*xR@)FChy?I}cfI$-Q@PADe)n=^e5!PFu}q zdLrCI?0dyFEB?M0DOJdZt{geFSdEe6r^XGbjgN~q5pAt`Ih=5;he6+5h?jmNg8 z7fXDkHiMlR&SV~{`ScEi#>U3GyBR7;d#e|RF(-c)c5A4wzkk_8_kd`|@`sQgb*-)R zzy=Nc&n^mwixeJPs4%R&?xDzE4pgdWsHs=KHxkiIy0*4_Mhv75OvD!NhQwqMUD&M2 zBsvP42j9RiUDFp{*=@wNHKKDE88+m)_)^~uu8vp0NO5uG<@CcBIAZR%qKo9WaZ>vr z)EfCVH;AmyWCN*J+DEDUVzFc;|F&6rC}+#|5u6?N^1+s6zO$H=dWjuhm$ude2uIp| z3}NomOROZ`YS59Wb9+|B-RdWOL&)dks@5o(eeFPpo z`W$rXZ1fkmky9gR=qD046yn_yb8)nvG3VRzkuik!=pnQ}vBz7$rG?!cPcKfjTdV7f ztw7Ym4Ah>We>ob9nTXCQNT-jqw6eFv@VLylM>vL+iPjSN{TLD(MJLKa7_4mdLfjzdB4fX*wZoexqxT3z^0V5t3uG>j@R zP?iIT8DFUZe*0#;|g8mvej3Y7nDT*(jO8^ zcX#gs>q+w>^sEf(? znChF(KRIqL9k7;>KOi($=BwHMkr^rNZO(?&iim{+PNvt%*K86>Pqj!x#^4n?vpVp_ zi+tU(7}u5a1U|@>q-<}f?8bkQ6#x=5B?|?#Id`@8SD3UV^aswH!Kw&G9|lhV7uTLTn5@ z-;3KQh@0A2fQ5FbqtEDaYQCa(KYH!2La(yqvUr*Lba!t*FA!<}_29rxOVcIumaJb~ zqz8+NTBfdI080dLT-|ibG1`3H3nI98W7P4iXBd+nyWviwC@~osA)q<-$&vUr3(itwG8`&u?p_f|FjnFS(~Hc|h5^D`st1#q229 z;8Qg|Z2MGcjxzYLDuP<{tm7B>V_2A_w~asmATR@i!QBW1Hz{lc2#NN5RW6?y7(9Y| z?LPwS9S1+$-YIk4p{1sl*LEDhs6Afo7=#qjLm-3Ir|tk{jE9FOd_mU2(RzJo$)dH5 zo?Ot53nr}Fp_J!iywK|2pM-*_7HA@7z3WOyrdH=5Y1N849PX?ugQZ2CV{+g=pB5JvWw%n5c7h@L7D(gx>HYht@W3Xm#}~G= zFK?ZpZCZFDDZ}K{YZZT?&la)m*`Xw<>OCS#7ZG%FDEy{vF*j@i7dx4Mi_qh+KDoXgJnQ913b`ts1k5%S zVTFq=5OC*^k(Ar%nv_Mwz>(#Lj{5`12%T91FQDaTXw;k7}vC~b{7_s77mK4 zIbt3@qi%oFm~!=i34M;7b0im887)l&=n5*#N+w6XEAvP)b zz@Do!64pFkLe%RsTk8xeYPzIkXVBta45I2=B-4|t#Ut;XzabjRMH;u(s#DcLw3ygE z44La0sG9B#lOuXm%(=9^{rWY_C+ygl_W@x|w(Iutiq`h>;oB$G<&QWm9285^J9$xC}w3>py0Eelt_OGcS_^w@xAL44++f`u6Ydy zWE0iatvZY>@OfX`i@M%+mga3yk)*TBsq%2E7l8j|LF2PR}Qq?5`gfz&|@VOzb}3?#x`RDQ};nkv>g+ z0-c@H4;{oY!&PeFhh6$Su~N#f=WMvz;qbs}ZOKvst;K7(+qcl}U!3wRe2)Hc@J=W6 znr+5=?_W%U!=!>jv-C~MsI~jz9@5Uy5!w7+veIe>AWC7X(77dwd7mx-HTdD3#&3JY zF%=X?qb)7(rD%OVlCb*fuMHPHjXT_NWyfd6QY}3H%ogv!L!qY!IX#9V!#KtA-duUL zdPHP<7RLoBC6xYDzw1ZVVCx;=xm_PtXG7WfbBlp1YfJyCXZSe{dpQ+2(354ZjixFx z+g6*3jYXj3%ovx5w#h&8`GB3Xh4{OK#&Q?k-l8+S0itkUzqkuXV^_WNlV>-cq=bdg zPQyqQ*St!tK;=y-o`ts9R99^oC>P8cYF*z{Qq0o_TgcXJTc1ZA<7^U1r^DU{1Z=IA z&A8c0NzL=)%+#0GkV^@(-En{4`O1ZhcMHXEy$72TJe5=^EN0xu4tq4`Cf1#~W7lm8 za(PvIS7tH6IM0_la#ntE1t~F`Z90|kZX@4n|GcN$WAkh0=)#hALC#-J$2m0>DqI8F zH0BS6!}2nyH7b3IE)pXWTQHAj2XrzDnK(MBHsT9Nf+j`BxUKUs%}0I4wOn0Yg9xZ( z!bsV%@$i<$^n6=P%Z7l`wA1SM&@|CP)8j&#%rs$h?ZbKt(55x8^n^g^TBml-QzU{B zkj0r6|4=}v1lS63j-H>#mYk$o@U*|PE>vKNq+LIW}=oQ>BGITV$8Y}?)jGB>a!K9Rg$&d&@B;}+!Y2Dl!0yCNSPKr zo!A~Yc=Bz%Y2-rM6M*2e&jixd`51Te_0hR}Y~5|N7NazB1H))s%5Qlbt5ib3Hwa^4QJmmdUE-C+LwrDiS z^DR?OrMrN0e;l?~K7YTdaE9QsD23YRdJih~{p}Ps?N?%S>BtK2P?z8g?71n-t&}Ax zF)WutHoXWuD`BhKO)E~{?z59UlQw4Dx-;FeTkOT7xUw|igG&IuBBQNqWV&tsL|sQ> z&1Iuae#=U)jX^Ldq84qdajXZ#z(fXZtqLjI86)@`elTcuA|Hc1zWzr61c~ z*ow6UMSgu#_2_yb%SwPVKp=3SinAAN4xI;f!g{phiSvbKzbQyb3@!B~V~Sj@0Ep8E zZj4viasuw+({4+GHk95d4Y?xSF^pn}JtrX{J6?gddN4lAUQZ5AZ#=MQFV;&;UY;x+ zSJ%`K5)&J;eIqiH62M@)NL#7MVgAle&J&sCuZQ(g!Pmd*6t=_2j+Vzy>JK>LP=~@E z<}h3H!MjJG3faDl)DtH}SRcjLTu>um7o(1`d-Lm%@GpUm_!PI(Bo7jsC49*>Kc62b zx3PlemerOVIYc!VcW_ybeU;p!XjbD9zeG+;ZRb5?O3{>kb_n>NzIXF!F6SdYxE3g0+gxg+L&Uk}o zu>DUDmE?noCSN@bt6?1#x1*#4Yy#U?pG|8pu{LK2v?{(e1-xnvDmt;>+mKJ$CyU3d_0WKv&rZUm`JX6O#**tdQNTUijJQP#@GdA(jjQzC zy$Rpq#JDF|y!wdt>UiwC*UdH&PlK6#VL+eNz69Da>-P$7|=C`Vu`M3 z7l{Au?d=U#Vh5Ktw2~tW^%NBm7{+F1Bel*{o~5X4ErjOFhXKk)P&6;{q`w#0NVu>bdU|bnRD5{6g1d~%7weFYFhcevAzdxvo}1nX0R1IHd{GIy)vyAgEGxsN-CJnTH(Tf2K~vy?!NuT{+5hN zAo{KXv&zI(SlA$~X(?doo_0ZE|9bewXnyWE&TygAs$7nT+;?@M+C?MM%X|LYsr?5m zR|rc?t@&^q4klQk>W*|~^Jl({OVk~u3j_ML3zxFxG81aPqo{B110wp=8~4c`@T6j| zaYuLAo?W2aSIlTQ)}l?AL~}5@TWYH^zl(X(D~KXSQaI10@pIrw5rX5$o`jf?^6w0*uFk@@+!Y02oDN&{Z+Q&X*Uz1B1k zsY2HIv-%&cJI1Y!(!xj}dL$&I@%66`*+fN2{C11)`k+nlsv_w+2CBjZE!~%g%#S=4 z*af|7YZqQoDZY7Qd53^9sKcRgHZJbhvT@l#T@f(MihNdiAWG{7eXJFYkA;aLd*AON0W2I@E^g^JWfZd4(w}7S2PD<+}Q# zkxl9|d??A9`K=8j@JG+%O!T3em&E3DL? znWfcSJ@ElAh`0M;0|q6e%F3f*-%=CuKv5E>mA!i}3m7@Au`MMwRI|baM*Txm`yJkU zh-D*7aMAMSr%*^}U2y=XnX`>%dTk_Fqiibkb#m0qGNdV2l zx##=vU{rLpsdj~~)kJCNmoM~pIuo3X#GvWv_b1EE`w%d)9b=IsLpnndu7};~PP&c& zJ`fNf+G)oZxx3T{Fv$9p%8YHrqMo;|7qPNzOsA*`22ag93rG926pRlpY6|OV1tWJ` zS#9^1@LA(kVH7@7PM7DWb@Gs%`*mc}L2)B~9c2<(b|HCG`b1LUm z?_39NF+&dTl<6g_TYstk(Q%p2f9p>YJ4bOqz|8sD;NUCeD5a`G(L^pE!-=TWrt{Kl zV`&8P8jvg0H>|y39^?#z|aT5eqE^7I2J^CN{zWb2RFz9rvpWUpQv82o1 zx5aYA?ZG2+I6^FSP`ElwZ80R4>J!|a6{YYp%92Hn`p`og4qUV6)a_R%7>?4k3T@nO z=FchJ<0xO{iYavpHerO(YtKv4LsZpKhQ-zKwsjpP$v*~Lc=M~HO3+Ve;b`TaeXy@j zfw8*w$wgN=DGvzbewrlZzP=U=Fp&V(CpiS-o0e=&r+JFhQ;ox8_nr!<3klm0fBsy| z_Y~#G$hgU0sA&td0Xnho;3-@ifv>Kjj(HkAhp!fZ-M*Br5$GDiRp(+0h>N0ZW;`gv zo&sgjOzSBZlQ4kBpql&MD}So8)O$*Gh5a%x_GHAmU-FEroG~U150OOW_IZ=qCj`=T z1cnZtQ<*{H?Zx;k`_TP1q>Ww>73Ro=l`~{?)Xs~lM@D$oI=7}=Vu5(5yOHEUQUS&6 zD4hdAtg$d6mP|36Rvhy@!Y%yjFUIP!NV(jrlGN-!D+}B6lCM$OOb|L41Eepy~ z)j!k5!C>f5Pn5llXd05GYoyQ{Oa!Nv6Oj|c&YNBMS~7rR^3x`g)K3r2k_b-6YzP)Z zpw!M(?2V`SdU}p(uEd4Ea}49Cdbh2_-nZY`Fn%oi`x{GzYF z{~-u8LT;nX9D6+xRf}|6nl29oK89^c%#o6i*{}4QUtcPhEsJU)XF2cPmO5aAZZ!fp z*Ex!66k+B7!JI(!guJ9=3)oT}MUTD}Hl(If`{-QZVBW!P9T=EV$Mu8jVfbE-%(<_u zCG^INY*%-w7r5{@_6*agrnVKCEGpv^$Lv&QJv&i8Lvr)PxL{`QA3$b*T_i9o*HLKZ z*|IJd3M5_(vx0rpl*HL|C7moH6Bvk>b?YC6^mz}cX}x~PmA0m&knVcc818vuP>3H8 z+r(~)jUnN_4!7M!=H!6D!#Dt>Wq85v7dOI3aa{Q!Y)`}b@t<{eZN|Fe&1FQW0O-o! zwa*Zkt^FPseB0HIY%EHX!C$QIqL58}fHW}iv>A7@V#An?W8||0%XZC~PfQH{?n1C5 zkde>7sB4j+(6(Qjq0Of&IWY4yTr3eF1)c2?R&ULz7>rLb^e0_#W7kCErd{5#ZQ65X zKHg(ATJl<9uN*r$pVI5LGavZMqNm@v`msSo&U;|)>XI8<)pt?{5|@*fiU^?ntWMOl za+rYp#K>RZb=f<2!kz0E<)h-h-jj

F3{f)yWF~xg?obam0;koc908{ps?!zWE0? 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 literal 0 HcmV?d00001 diff --git a/monitoring/docs/screenshots/lab08-grafana-logs.png b/monitoring/docs/screenshots/lab08-grafana-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..423709452f35c45bfb42ba8ac79f57bcc1f2d97e GIT binary patch literal 213142 zcmc$`WmH^E*EWa*2p%A~OCY$@I0+D3g1fuBdmy+32u=fm;10pvoyOhW-E~gx=egha zn_2T?{!Oh#ch@=9r>ko3U3=HA>mux{oH!~H0TL7x6sn|zs3H^;0xuL4Y}Q+N;L4W- zdo17$+DTDd7^-ZPXdkG&G5ak0849X02KmVV4yYsAOK3PjL7{d1{e$kaD=>zFdd-y- z{jBV+d$jE4{(kzU@BEf}p2`?YQBqhKiTsMGC5KExA(c!Dt0GJHjBbwbLCLyZWr`kW zDkA%1cJ|wEZ$Eyqn25MS`$bKaRy%NV8Y3&rCP{{f`0lRRd*^&Tot?djubPkM5_~C; zH+J?Bfr5e}=_5CH5EjiwWDijJx0rPP{*)gY`V$_G_lqb{%1BK?>^Ko1Y<_;$w2@>P zY9lNR3=CSBkgk9cQ_2sF*u|WPTEQc8qM}Tn0_1=@*htRdp+M0l^`?JVR~t`aH-p5b zrV4v{((Ugz($Z5gOrZhyvLK#z2>U>BBmuiFrw00!izkR0=YsG%HcXHZ1 zTNgoc1bXo^;L4dW1dX_RdKz^#+_%>fgVrAg{BLu|&%n@Hv3+=ap9(6afU!zxXfG)M zy*6}ZCoC52{%1UYdxC+{Ko-%H*4^!t8UgfTi%mklF81fo(4GyO5=@LhHgL{l-$=LD z_0qik=;&6ZY1`)i6F?M*hYMlnfA?SR%8v21I*hcTI%qE(T_r=rvA$;quA*gzVB@ zS)D32WasDzRxB%?wtEZ=+o?;Y>gBM%qXUWrK5L51@BDoH2tZ$cNB+*uHDF5tR7&lq z-}d_hXKqQ+QmW?W@}z9Alm$>q&je@rsUMVJ?86R?k$u~iYSTCk_-x> z8#~UWqbz%1*V37zz-utQSE~8Ru5hS$2kE!}{M>(EwRtEtmC1_?U{0{v95@@!r0hv` zkxz!KI(*KZY2B|X^CNijN9a3z>^U3Objjljf)OLl6?*2HMWr~$@O3)A&ssKA=SAgL zBKd2sF!5_G53kw?+}jDb<#C?rOCrnXfv(ni4&eOW{yUrhygS}EG&Qp1czM}|qYl$L zb$mZKA)mT>o0}*8(e`@~;j;aJh0?OXnpgcjnlN&ZDqsVk8X@}$r&4IH_F)Iy5$70jZ_jcqt{8{m@<^50j9qBz$!$@2d zv_s3j%`pFpJv`StS05u*>H*LmN_*n*WR}B!g|k?{v%B_B&am_XihusVaFWVN&+=A! z??nrHgrvh9ij@dld`bw6EezRmY==&W5Cvzkj@#+O)cM=4fI!k0p5db!GZZUa*-98N z2)^;cw~QQo>x11vTvTSFJ^rNiwG=<=C(j~t z=pn5@9S`0a;@1*dUavAqBR9vDcJl#uEQK~+=&~Q~<^o>wgoi`Xevb zNw8ko5tbitV<&)>W#IADS4vnICdARjnW9K^{qS(8Y?)6&y6FsSeBOriZq^=+nAg07 z2?JQ#f4dir)%)mpLu^d;gC_`em;gbWY%0QlvFY5$i`DcDi+Xo{_Rw@2Nz3Oe=B}kz ziG-kCbfs%hQB&{yOh}f0ivgXXU+1_nMmrIC4SaXIJpsvC?2BryLQXG(ZdE9-R`wn^ z7M8$*RdR|ajuRIv)SIE_>ip32<-i-mDN0n-A2v>LKYjiBj+{IJ5w#Gdz0yeh&f|q> zG(*5@PIJG0>XR85jmDw;t9?m10}Obdw#@pmCGJ17cV!?t{BlQ z2?aCE(ooCC_^dOZVV)0JO&WXt!(rOq);CrzNtL)X`CSve>ZXad`Tp3mq#;~7Z9CfS zZljFXxW}f_Ho23Sd6@MNCI)Rof2jG(;|WJ%`5kz6#ho_)sgOoDOZM=FpWE{d0=jNJ zta5to7ZpKRFc|Okev+fKKJC(*)lf=8r+I;5FTISpw(w7?aqxKdd&%13}-Aj@e%_rD2VMCpL--zkX#ljCg zh7%b&d`uNE&$9YB_`k}A&vW7X9O~Y=5s(bR?{Zy<(G5y7A=*H+H^yo%#1}j+)(h|eDZ$M@XY{)GdcPq{R(D+l$;g!X7gNr@5~n+H*Sp1+&V82iXXmQ- zljhZmV=p{5%QiDVd27Ntbp)Y*1^18b#Hvp~?9CVHaF{fEZUW6JG$<^1jVYA$PULMi zJ#)?Vi+PhJ4UhR+_U4P@zoi5ES<6ne(2~{y$FPW=#BkfH4eNTmv&KV@_*hpxpiToc zn2pr3I}Xe&7fP$MHa?i5wO*|KK+})-Bg59{_C&{<|JWyyQ7^o%4&;VL6rQFvE{Z$Ya0t_rJgIa~Sf=$Lv`$FoCpXMrjdbHC~fC8=AbvS{6&8tXHaHYJR5U;?>;xEeOTQH}CrC`q$;AB+{WPOT8<~YGUaKHD2jBH1 zoZ)5&=78lukJ5Y(!3-q7T^aD~u~wL$axpr|&($atmG_^nqf;{(=%Kq;9YT3HDMTWz!CBIlo{(y_Ec?2@!BC-Q&B0%P z0=ObpyOkJYV`IFuEqiVv2Cdqk0$y$y@7_toQ;$T-GG!C!XsL7w!!+%*^!2f~ZPxW5 z-`lK%yl*=A7z9$`6D>I`aE-MUfayiH*%P$Kt6NoGRws9qj&xdw zP1O}E*+@yb8n^zD``X5Up8;R}37Pa<q5q7-|WNO4EeaE78>qdcetOl;){QlMxQ_g8GA$Eo2o~l$jnOv_MTeX2}X+>^#~b z((f8JPv*g&mO0w&)1$xkbrk-6CxT20N3tb0l(2=sz?(X0xD>UmZvEGosAe zr6grBnV7ty@{jJKKHK5Tym&hw0y4~o|6@Q_34MJ^fBmkPnsH8 zP`oP&L5F5J3Xz#t(3>Hgy^3wPM!HXAyP7__D>f|`cVvyqwE9}xKgEr)cyIB0$2x9V zoX^NSYf7|AE}5D~J_Vz-hI|%CTSNYYr7!0HaEDFGTIO}F~)=BT7ub($KD2` z5PixgEW%!aoQGyBJhonua(p8X6tg!gXW|I&7n1oi&Pa*Jw#P-VE?as7TkiyXV=1m~ z)u?bfb@73xj@@_-ikCB-;x%!!da5z36}I};3#-OEl2KH&yU9^Sn4Um7qQLN@f;&vv}XGyF_{ ztF4?678&({I*;A1^_IgYb(Wl(E3tp9%(Gy=5})ZLq?&nNeya)61Ym82;kxE5deY@x{>mprF#2|9(;qYLUA zk7!3hOYi2VaM@7gJk;hGOiNI78Wk=#eFlJ=KYH)20>E3Z!=Mb5It!zzd;(i$oj3RqbNeo^*lnmUe4J` zlcbT#`x4o=WO;I+;K-5b%4+A$N`vJB;_cCl@0U*D;7qgktdumYFRiwthkDcM1hx1b z_2{N7Wlk6{k%_ka&jSp-%hS=pm6f8R;5OgZ*RM^@nJs!$HAY5-I&N>2bcsZg#45YH zXFhb6``f5QQBe%uYxXvS0zs#Zf2_{21(-BC`Bu6_p6z})$Y2Y9gF!?L%M(jm;dfsp zOI6{j9c6AFVR@)25es$0O!LzTaq4CCgAo>fTc|vi0}VJh#g!BpY6{96Zr>+78u<(s zRop>KS;N^A9e1zCua$-lC(8M8vCwzlCrYyTro3?2t$Jy^Z^c(UMmu?<^_5?lIErxO zD*VVg45rPe9H4F^n;G>|wPHN$93U-jvOeDnxhNPO zlL!-d4$c*x;5W1{dl6xw+KJ>JU;O^1JN zr>rHF7vjvo0E1OV-&fa-8}!HXKaYKczup(N&alDFwh$6SITep3UA``my?xBs-tQyL z_PRN2j9wb6$M^BPg|KI{rbR>`x7Z#_N9>eFs;IRLCUik@+v^KCI5>D5WK-mvofr16 zQzG13oVZa@XHeE^qIPx_ZCTX$cJUtF$k4&5bdHRq=buQOU(m0F4o;{pJ>&9?&2#rd zpPF_kqmHc+(jQojCzOpP;N@aC%;Eo4 z?AhvF4SgO~ogtFQgKG|?-S&!z^?S|v+NvW9ItR>M)VT=nc=ha?nGD#uk=qujD)3Ts zq0TD!L;S;JwH?Uw<^VF)2Jz=f%%B9vFYvkm`VD?t_@n#AuFpYy)%FU1E{rb&+@+hw z$GS|S|EX*S&?+h3=-vHALsqT2^O5S7J&&f#I?s*lz&RK~_KR2txHlw}7I=-}VU)Z) ze#LrV`E*8q)12Nh7860NlLOJrfaNORu8uYjJNTXO+Ak<+-LQtCwTY@qANp-n9f!{~#MZYlDl;Mfua8e{5O^XO`Z593YV4Kc*HB{Qy} zst>MUF-BKb*j|=zSg)G;d`GMNa_4tla?|$v6v1)lqm{tsy6X!hJFZY&#^N=D<*sk? zW>tmm=-WWDcwwCKwwvOHO zwwE;yxntMG>;vVtPNNVoaPayTPFD>kw$xItzB_e`eR}-7^!`v*tW)UeX1sXxx%KwL z5IXQowWJ$?sJan>w-NRxkIin$S2Opsp;~XFcyZjeih=ko-?mM`xpZ58FhD2;bm=#o z+?Kkz^ELIVHBBzTe_DveXlFGYegcibw0HQG)y}01^$llMA%u12nJbM)`enzxtVsA? zg@WS`<~&45?}xZbBieyDWm~oNodLn6YaW4?_GM9!8aZHDp0@-)c0b#ysi}G1Hi8K_ zEwN1BLM0*?B!J8B-IrL6u(fJ!O~*I%?p$wXkM7L)XykZde`R3PZCRMrE%G=}pv4b- z9~(Q0by8Dxn4C$h-8gBx3mBE6ma(0uSJvG*PAf2Y{wjF6pymp_K?om z!a8j?HcUK>m_4#)upuZg)=rGq{CXy zY_kqaBjuXXcA5WsLt4E5R|>~GYRirvXqCyOhbb?2_cr=EkSR0M%4K-+D9>%_M@=H3 zk>`whtiG^90_oS6Kp>sU&PAIN&gkyGdYVFmi}lH9Qn)jl6A=; z5L6p@nR2mSyM*eL{%l3D=_i=%^6W$s0|8M53X09dPUjT!}vi8PpuzggD-Us%lM^pAa`!?ipum^UkK+7Ar8Ms?+$kHGjDe9@W1O zqd6w%H6%|69D41m3Y_;`ExUwXT>S+x5!v22iJ&?Q2 zsBh%8*HN?-CShx4Uzw0{NaE>wZoVk&vPLpY;TtC5JI>m+PRYE9g+0|K}6M^?Rs?jYjT zYJ2e;*SNW}XWnR2|1>>pOZ$$oZSi+t2f#GSQX!#Dx zDbi8m-S$=vYpB|4BH-TUuA@ztZ{+smOW(KYwE0E{J`dqHNetiQ0^!H0KE{?Jmz9y3 z1D`URD8#{wtO-Sf?RSTI^h;Pv6G0uM(dd0?;-V=s@;(R?)zMmEuWz(mC$ zuIJCE3sx`gO(*JhIIObzEiD;;ScH_hfo?g27A}M>%gy#T_qE&M$V|!oBxoruui12} zS(k-*XZGhZZ}MGiBh zmW1OcabK$8M;PvwwC@p#Cd*r>WO)ikyenM6GZ>>nC_r-GFfMcv$P|2MaJVPQ-WMB@ zaO18^ScRA=jl^|dxinR-%Npmn1~;;IZ~GdufVu*u_InYMC>9kM-&u#aRo8hM5pWIG zDCN^=AK`J^xnB`aI17u;&JP=@ zYXceF-K5AZ_G79Y*6EDMosw*N!uevSqcUGTFh+_t(TNuB5JMspigznm(Fzokn1bmJ z$4l=Q`05fyJ9L`DMtrmhIH_G1p`&3F$2LaHQWg^gm{1Xs9RsH*tylF+q)p~mHjOtV z^_5>1t!%I1*-Df+8D^dt!0hqY^PqDe)wI=Uf1=F~Mg9RVQesi=nC6W zKaa;8JM~5jba4n(KnSw|C-2zy3G32i%jYsELrOY?#?PG&XpQ0+7zthjWK4pnXOv?e z@)NYI(IZ-}rf@thh|%HMGpITR7+>cC&Ck>4j6Wh3?Gsse9zYGr;~%K^HRJ1DY#to> z7)x&sD;RCQnFvpsmKEJvm}2?%brvQ1R5$&$?sAVm&+krX$7YmNd2n~wKoxsE4r{TB zPseUl^IHqFopAN5&!sF!k+F7Hpd4lJI0aS0GP0olXm2r)#~I7|Yy{*)aq5)|*5EYo z2_juER4Bs2!+(jD7_8(W_xBHPEuOZTLRNH?O9@0yb)WZV&7c$%SdSLlLNuyP^{W%w zkhS!)oUT?sM!_>i`#x>K11ci;R zxZtfVM)ILZXNH4V9+y_V!4<*fSTjFPSXPFerQD3S{-pSv*gYsWldsmo-*M$syMfcc zn%%ra6!iy;7J~Tj=KG;-(TEy$=4F`4#(u#8kP2R**$}^i!LGm5jg}1y`7e z*DO-|;NS0eQCILbb-M2Yt=rZ{4k9Z4811oVUfj!=`CmOJ(Oe9QP?~EtB!BLnSdjZ{ zd1E+S%zpQGdJt%L@v@Ns9!vkpQNez3S9Y5@Dk`lCV?zgFLjTb zEw&xHbDj;P3B_;&$;e2Z&w`GAbGcG|iRVv2*3X*xIPNs&JNP4h5lsE_7`BvUPJMC{Q9MmNjb5kGBRkIFPB2DkcXd@OKqQ|mJ26C9fRjS0--d8Y{bZcC zZ%5cLRq}acQ%xBaMn9P;-?XK1ER~SG&>u#Eu#%Lcru3N>axPX|zG3Cqi zO}d{f*YW8s4+Up8 zjQK??eBX1I3oS?n*8ZoD)1LSfQ#Q$icj;-->oeG!bb@t}n|E*zUZaG2thc)ivs@LZOEAQ(03gJO=-$!pQzPP2gE$dv3yw&NtoY6!A z!{G^j@9Wcfw^5u==Bw%TmVx@&t{%Ol41=%pylvg(Uxlc0!Aj#Q-3{Scjnj||OoyV8 z2Irz_~cSA_!3@ihNXc#z51(>Pb+|c1ySc877eT^pO z>ukOkB1rpLnwsN&G^0M8pTxR8WHTqsdw!<$eZ&r5a@eMqtzxPuQpo;hN)<4f+>jX9 z6VVwt4RLvkqtqW@a*P+c;=9Y&s^tpXx%hbK6DZ+_x|`yxwqK*ql6?RUILEA3-gG<{>F))%=cW_m)=+- z>G_Xlgl15~=YtGV54#5tgLZS=2m+e@o(utwn~`e-@|k5V$fF>{WqLe%$PL`Kfny z7uL*rJJs2#uZYOExgy&@n(Ts%fWVF);bvpM68si=V`hZTU2s%*ZX)X5P0LA+24A1zl0}LyE2JcZXXWmCNH6Z{8I>Pq3@6bqjx`*vr>xVBXrwq1WTS8fB zD$hg0N}e8kaEN63+O|LT60WjColG@&$gCiwGc3E8_%PT9AGa|M>BP_06$4wk*PTFo z{XO=n)^a`-3LEHRSL$_)>98iRrBBM!MWWLUVbITZWOQTbvn5m6_R$=K^$)7Kw$nvHiJHOr z6x@ye_{grYTRLE-z{c!8|8n9c*W-3eS&BSMP5=TGef`IBK5-Om`^)oMvzHEv0Av|H ze>9rW(j*}z#i6Q)F>sCx={C4Bm}6-zanx(w?y4~8&BIk$de-9@yI&{3&3itEF>P{U z8i9H7vm1J9a1)2Ptbd9N{BpZ!t~Wi;Q@U}OrDVMlZ5de6yx7#BDj7m+XSDE`S;0#3 zbQrUi05Lm%DaOKcT6Nd;FoW0g;|QK1Kbdod7;gOjc1gBdZHT|P3BLR#>*0XnvjEB) zBHr}4j6eT_$O6yEob{(x>Bon|c`Ml0M0xh@^Uux}Q(=NR)Mqc^l%d<0bwJ4VUGs5; zrX(ul$IWKS%?3BT^S)@N!Db4Z3z00n@Diy~ie{>VTwJoC4VstD3J0-3;BDqW3q*kf z6{Vfe2X}N!|HI#a>x~+c!D;LAa4KhDWaQKAEoR|YFdwx~`_FHQ;-1?a#XhS>S0xA0 zE|<76cdUqWy;E+xPW?EaCduV@ktu{RC9%C&4Gu)bmS+Y$Y<$d6WS`q_An4643v+_F zhcw=7ejqL<;$Yt^XnFKQ`97vVyvq#~>Z{Oh>&4z9&<@@#o%&5JU9JAGcqW_g6KIz!A%3zhjV_NEudccZqkE=7(D+MwX((QaC3w&_;TlSbGj<+ zu8vKDcg;d69+@p3v*LU_5!H0sniSF(nIm?cN|i3XHntuZ6ry6VMl8aT7I6-Bn;|qu zk_3%iG`_tujdc)De@2zBhpeW8`3aYEpMxa9Ej=XG~sbpFcaGr zNIxeo?+a}(5x{xrlZOS)E0NkPLc&lgx^E06ATv`jMbh!3u=S4_Xm6C#Uo;4YlFBwk zg9!~vNrBsG=8DD8jEze@0?z~+((vMLPrVA8mR}}PTbKF93M_Cvol6~BxevG+-E2SS z%+!t7J>PGHp0w;u{Xw*8LeJ{DHw5g;?C_}k-o}lh71h>gtla?RU^+t`QhlV(66L`o zRN!~|=*8i>r|JR0boeQNLX1FSkvq_1adZP`BE0n()nY1lNlIRR z7dTjTaB<0TD_=Z6>wopXU8wN`!p+m8m6l2MFYfNxwvGFyZ0ziJF5}F-2lP8j`}AJH zIBu`FsLn9WRdWd#tEuzgADr2f>Cb+S2}VNW!vM%pa}cy`UPTyZ`Ev0%f>OoP)W#7I28 zgyY_8q-#Pu`Sgw(r;{L#gP#6MEPN+5KEuhRbKgow*hC`bplTD>0vAWb}%ls^xs&UT(}M73Wy7iBsVQ6@Qs117fo4SdhmDa z6heTg=$bqAW$5(!3@sH5i5YOS(%l zM_zYyy>G_ zITa*!U4(J8DRz(|zyQ8RY}?IvptHeReXdXTF=ML?n*MFkx41XaNFM8Js~%If)ntd8 znK`&NW!S3qfR2by@@97LQ<87pc;#nKhJ3ZEr%$Yp=6yJqBh4=96`t?3bKr=ZZnJD! zK6(@9&)xPVd0(rY?>;$8wWq@W2;dZ)r9zpZnqY&9ljy(pPvxYY#?P+lb#kE^#KNF0 z6e&r)=CYIVjlpMs?Tds^vl(1?dEdINFocG@CiniH)!Ph&tQak%`}`0%-JwCg_~W!N z46=(dn_$@NPSf}&(YA?q!Lakuys2roc_c`!kKJTu_2*TRZkgcg(b6b@bt~B09P(d0 z?OqkKYuuVNle^s28cM&0nKu3tX(DF5s%F5Mx;&}=h0qy-@Px=wPsNM@yDTi4Q=0&_yOtg$QYg*w*!+H>-93jc+W zeVTygI$;`&)PbY@8$kIdiz(cFB{)?REi(mxZOyMI`BYR?_Iqamm)k1YXV=#zvnRyA zb9L@MhaAURp_8EBLf4k>0&YMAvK( z>;6U*;|TV5#?Du5i>0A+YO?lT{LRCQw-oKq@6Ax~&-r1#+4DIaR6U_mQc(1$<#@`X zZ8g5SH7rfk&|DvKZtdO+RoQ5fcdR&4bJdCkjs;A#p{|Ai?e*9@f7P7gDdj zDTjGv212sEr9yfDPzATPH!kAMb9o7~s9Q9rZWbI8*L*59u9|I0bE#>sXXzPaNOAhH zSLVo=muRj!kFfrB?^U95H`B84TSQ7s)x>P$+PC6?pkng5{q_zai$0HwZa1R2lb(U+ z`-w)Kua&UidH9dNA z-abAltj~M^*mH@eUcOL((OCz9ce`qca1Y3qW5iaerUr~=v!uu@d0N>S7EiCWytabv z-Uk6&4-aZ$LXpS$j!Zn7 zXy+fO_F73cGy$k?J#~txeGx5lGcZtji}IEO2X`oiJ)g(% zs-m*K`~BX}A<2Kx=CMPEjtIQf9v&JJax?K~K&0){s2DJ6rJw;^<+L74jwa^aJkh<= z-aJ1yyZ2ZjiYDPRETL0LBG^NDE4`hTX4h&RFbduFGMJL{1zfwsmWRp~}axM&z^XH1v zwon}*^yeipaK0@={}fCa?*?I@rlfbVp@c{*Atn21* z7lvy&cHhHW-B48;iVTR=>MCZjQ}mBk;bK(>JDSGq4U;TrT=~V^PeqW<>hdp_0{hvP z_y6b$MuY1=J$AgO9n+P-R@` zpRW1>c}PdefKe1EkXKle(XM_k=_tDR|2_fuR7Qf<6eeKxtWix9<~I?2DZk+0nhS2v zNT|ipcY7E}Z(JHWxr*npIhvbKaHYt%9m${q`q*dCcJ`Es>m*rdCGvb+;!7h)4_C^L zeSDfW+?%6n^{sFjP(!RVbqin2#M&dAP_c2MV&`MhTlRBMB5sgvVj{t$$ei^lR ztQ*$ zGq6P|xn(L4)JC@q0@hQt=zr1HOhS5oY}Q-=Xx!vKq=?F>=Rx``=FJnaqpmlU42m{Cs(v*}Gfb;<%+`ib_+KPTr`Eb(hV2v+D z$m~cCx0`|u-1(;r7!Fm$8p~!oZrlH7yj1}7LqbLh(6rxg|Euai!`KKZZrqsV49NsK zjN}oMcuyH%AL41sl~$n=a^;>YNr;G|u`44sP@K zIIyYdTLvKB58EfUy^D(>Sy}o;Vtqess~sMWER5JOXoGeD(~4F6#q;2;4LA0NM$ z`a|C3^&pUq=!8JZm1919;8*)QK0uUzC+VLealdnT7y*EcxwLpwZcy0RkGYSK$oq3y z89uwN5TMDJMNzH^%Ngc>snDknHcNH0p~|N$TC=S6kAK z@Gbl30<6aWmVOr|7M8c9nc?d3@eB+g1%Q<%?MS&!6T%zcK_o zCtq)x+|TqV3$%G65l;M)v$CXmP3Nq+1n-YvRm+~b)IY%Z*VUmTpq+qlaEqvRtrP^V z)^a%PW-y_emPeN|+stm<^a#@c6nlo4vhw@BXkw6RLQ3Z-w%Td9?`G6@KpZ_LmF`A0 znocURbb0`u3;SylsmATCrM8Yv z0TF@Rr77e2<)zVK?Z}+8gYK8rqU!=2l1Q~)L`=n~nppy57v9wYMp+TbmBtWufE6;l zyc`%59XuMk7PPP0#g4FLJI$RLjVloew?`3|lP>CjLB%+T#otHDa zU<*7taA&n?JTg4o4N!Uhx+awr+9U1p(0^Em1mk}rr@uw<<)?9w_TMAi$tEEvV2f~Z z;`O>d_6xSx)ZNpQ&ADF!5Mz6ILfhrK_$hwc`*_mQV8IbEarXI$0IOc7FOCmq07PvY z{hRjk!o?n+k@;Rr=6x5bSzaY?-&fs-KQs#J^LOL+)a4vAxV4IkhTCjd(5 z|CYg6MlDd4%cAMay%`}sml=UV{6Nrvakf#29ALb=e`*$wWdM@H&GF($=z7k@6n4n0 zjXdk0SW+r$gPoxDNS_;r48MJc3{PwB*E)M4t|xQuEm~Wb-a@J2Vn>1Or>I=GGo*aE zWpnSS?WAsD^<&SVZ7+1ynNjz!-PMc%TO*Yjt1_i&h`Kh1?)p?Av0SUp&Zf7`mj~-I z;o}8Y7^&7#86lhb*KER2LxqR@tAl~b@ zxxrHoGJoqALC8=5o3xHro32Qs>u~_0l3WTb0y56i@D3y4>uj|R2 zkbxs0(fy9dEWcB|Pg-p}(8=$j({!~~#uvhR9DjRnG#|(Bf{Q!)1M&5jlL`G|>jQ2% z^B;l(MrW@l9r&4Ad*=a4e$MB9IK^+Kxd8&)Ne0X^5RJC|EL=QKrLv#(1LAYsw?5R6 z)fANpXU0{TF02(Hq*+awtU~>TV3!O7D}K&*;rLLBEsT^@l|8)77cjeeK%@M`USn&E&ZBa>|gHY@f$8#}}LG zc>w9((U(sVCK>j`e~N&^tQ*?qN9N8AOo@3+3zFdJAW3g`csTOsdWwHEUWjC?%Wjv}SkkY;x>nuet}%D!5dmPUBH3WBemkE&borG)Up z0qYiRJO&uhysgAC0ak;Jv2|E)u4hW%5GoWAtIqitK>QO&760qm|2iU-QDZg?0>ycC z6#s!O6rLb8G@6eex#gD^T#BLIzI{8aq{{&=(8ZTn?#uK3EC)q@2|DV6R}Qx}C}}R3 zLE7DX|02$x3(9Y0{4c;2|0h-My1kLb2yumPqHFF?YcFRh``p`eI?2Wf1Zb6b?Uj~ z*_UpzRj(&NS;){U+CCy72+V43lQNo!_ZbnU>8*dBKS!bv?rTS|-!+ z>>ld~*wscK59g(?ofk*_VBY0MMcVC9c9k>9Ic_s-ap={#w2R-}*9V$0AK9r+wN-zU z?QVa~cNJKuYYSu4;yRzh%DIOumT%h66@KlANYRtujTI-=e|gFTf}qX2^PFZO7o=Mu zmY;R`%^DkIH0_ybH?b&hYP%KFqPGn?y%vS21_!fd8@tk6cg z_O%#%?Pv=Pd+qWh{^cGe|Ler2jLsXP`|mb=P_Lh}(oB_KQ6t%Vn9 z)j>nGy>Mj$|IT2p!hl$-me)w-(k~@~k^b7TP>U_hqK&j;XG7e&PNDf>1?2rS}||1$@ra;CntP8zsv6q35K*a5;6~CAfXGO+;{h74k-Eda2AW#zNA)y`iflTkF7gVrfvi5ckB>)r)TQwI(cltF*So$V znvsZ8MR%nOYk7jQwTvPeM45SC?Tf-9Iz9i@x{h^ zC_N@J(OU_51$mM9B&0~sIIaD}uD0WLSwP($4d8!9DR6|fW`Tr?D69LvU)K|v5;7X*Bu8!N~3hC#HVu^>qv=BJLl4(Jc|Yago^V zAa41hDgGx$cWACO_IFywrf$Pfu{s`xOP39a0aNGj&CjTX+Q_x%w~Xm9*$3!UD0@r4 z>2&AjYCQAECDf&MS_h}TJWAT%Qr6CY5{vcso z+*9d0LKja4bU{$~l$}MKAq5#{*d6)J8{JM1=#}k>m45pzfxCK+Kcj%A-qYQk{j|9L zUh$K+va+09P3IvZUaq7`D`jSbtWC)RDbdl!pP9bhd}M!bkDIstQaIfL;X(5Sd#)7- z{p>r7Y;w1atg#}taX6j#UJFWkJf5t$gbJ)~AA}Q~|RBKL-@@iKcGU)c6c-jwkEM9wC*blQbwHO76j4b3;iR-|$sxTB?0CBj9@ z>-`$Dcd3t?m$hqr(wZMzrC2IwFO@sb)PLDeqx$beX@!QS(2_$(2t{*zTsFH?w`W+k z*4_N+xDPz(UBbeU}qUyiq4PlzHUMVMFTTrk?Iy zM4`b6R$;1v(uLbKW-|L!6gA6-mycP_w@Er+M^ARIP({fq@VJf0+bK3$)tzv7nsScf z-sDkuP;fAi3H;q(>O7r8j_?EZZBrAvq9+l4_#+RI@Eb*t?$m1e^$yPCClqguL&J_5 zP;-bOX1meZ$4?cdrTG{59;}`ukv*cCmwNr4$g-mGi_jE2ed({?5LA=rt@qX4yZ33! zKich3PmwNFv@B5WF8oGU|K-oVPmAgQ^{Z-zL#IE&&(4mF|9SSmN#H+!)nn3DeWje8 zfgcE|ygM6Qp(JmoJn-$ZOoX@q6B6TbHmmV{1+s^}ri)7p% z0Tsxft^Nyt`}{e*G;;`uYona-2RZ+iPD@LMlfUC*lb)zfJ{!?r$+N5e`QS8Ql#h4N zglL*T+uxoHuS=8nqr8Dz2<;kjf`q z3P#bx{`mRLHj~zW>pH0(sw{V)g#2O5Ds>!xK?m_j;e+Y44XNrxFx<~BV;B*G%WHmVZk3$hgLjyBHWJ?tL2p0TY3ZH8`DzAf1BKC5rKz{BaLDTWm z)1w@D&ojK#h9PRD7N%EEx%RCuFI9beWIF4&2>i#0bNoM2;Nk&VB)&m>kn@s`sx-Lt7P8kuIe{3{~F`xGx*o=ldKt#n(n zPrd#AeY@3VO`6O*@1%}0RcET4$@j61rm@J$iPMh;4h#BU;t1;M>R{SWaD}Q$7!LM* z(wSz!qg6;Llp>HwMZ#u z1e0L+*@D*|)kz{hU zl{S%Zw>ZXXL^k3dFQ|V5quTpE=aW*vDj!%})Qr9iLmf7r_)Zap3*=JG?D)=}CEgwus52!iQ5X#S<J{j~)GuF{@92u?UvlUPdt^YpoaExcY{}e47G^)*aQBMpJG(vKNv=r*+x_ zbsy=X=>63DnioB@ePGGTdBo{ccqXGY91pBl+dJAfgBwzmga%7EZ?MR~vQmERITt=a z+UL5cFPW&fvs0`EDeKS>hf2@+N9go+varkNtBaGL5gwwi$dq{ke0_G8C(53C@2{8% zti1eCKd9l^;U4MA8g}}`$R_rF(^r+F7dE>D@@KPWOe5CKgw7#d2D_hS`eqGve&c;X z&qS1tQuZYXCZz~m_&37j4PA?=^S7=#i@d(A5BTRRg5|x8j<&W(+rBe?KsKSEett2z*5qjr5hDABI~bTcC2 zO$yy@x=z$5?rXPYYgCEB(2Lo8M2WF~QDt9o@Lta|o&H1j=GkStx~B8^#8h}`4{w-h z)&+C&x6&!qeJ7d4uJNlEPYZ&7jkTt6=0^zC`!$4LU!V;ynC{#FNgD(@YdqR_3v};o zo?IR`sct^nxig-j&Hr=Psh+q-8ZuZB|pFI=;j`1eFBu>j+AC0(bdv2w~CD&Ea z0D=Wzdf*iB1dUm#l>;F}p&s;c!I-QBwLaPCAkX2hYAaS z=05`f6wY0`ySfZI#inm0+6^Kr3Qg!$TwYr(zZoon-}D)&*90Y^Q!%fgp||C-^+(<) z-bD@sUbhwyN)G=ec|7jZdGr`dpoCY*ZF@eLG>y~Z0L#=@MEA{rW4ipU6f_zWqj0V? zVD4Ju&kg_nf?Dp>tCbAn)@@cd@%=wxbQ+k{pDjJf3TR#>zJ}27L=2PXINz|u@7)U~ zDb4+966!Pne5n3&L~t%N`**h+GsiC84Kf=%xWlZ)9hVSAy?9pQ3S_WGmja~@n8Cy> z^V1Njg>E+z5|7j_ggh%9#S^ym+}k+u&P{r5^54>K#)GqigDtO!$a6?7%Z$MD(%=HC z)B`3PWb8W)hv$U@EN#nq`N3bzU9a-WL@w)j8DFF?Rw!1Rhm4vBI(~*cP3o3rruAR{_nkvOUbR;BwrYLaX z%I5AWEiyL2YXGKwOhw$1Ol<~rg5zV<%{Ve0Z}1xIN9uzL%0_aPg01<00^e+3Y*AAD zbuR=1xZ?!tRUa?yMZELoaq?80X6k$^t@2X%Q|8izK$K}A+ig)=acq@Oy|oZfTl}|z zl*O0yzw%Zcs-~uydi+WAMy&$5a>$B_gDA*H3I+0}HTOG?;gXGJr!GoKbLbIL#< z&lwqi7i#}3hO=~R6v=UDpa6S9ruFZ^bdT{}`SuxPl z3nBWHqbdy$f~8wJKPb|!cCke|uV)9a2rxO|oH*?@n>^sB>u}fun%e*5TjJta-~?!1 zzWjDyPcL4FyIi>^th-(O4jY@2lG1%V9bI|gTb7rX=dPCfDvdLJGiw-3Up0aHxg3p*jf zmEuJ1KJ9k{M~;P!jn4(a_hMN--pMJub_`o=#aIGt6E3k z*8s_=rKN@2cH)WHHHLh9*V48<|93I30GCa;{l=(_Q6(sDKmXsw(P%$Vv;dGVXV0IvPGq)$2}=qF%<0)#%tl$}SEOtn)=h=~zf0f| zy)xZ5E{gyA$V7bj^`Fc8_uU@K|Diej=R^NLeuU#&fRsSUKUG5_3JOE!|3a)7xNh!< zbRI}L7ykO+{@)c%Q26Kk{r?RO;r}Qj|6h|C{%^h|{%vapMaQ2=K#Hp{pZzgax$*d^ z$~{6lqbLe|ieyoj$Zesj19*PS4cCMr5D+B!o##LOkGbMM&nZ(rdg}Xtpv%Tc@pdR6 zg6Ok%-81+j{{B7t_SCHO_LR#%PK*Dw`jV(vJ{PS2cdeM8Z}BPAx*|ycmFp;qV%Fjc z^PwNWsE*fevWpFOl`QFo&YSV*fBBk%eNZ4q>(}8)lbaHdbUPsdi+@`?bnFc1ALCMI zyr6d1R81)&BO1ETDlbB^%tCU?o>Guzrik>Nn?NWN{DU-@cceyzoxVu>#-u70$394pPDi!?v{lW57Ort1*a$E`$&AL;B&v@hgG z$Fl#uOeQEMa1MTu%M4T3f%q$~-9%=0%XSO~MklxWl+Av-_G+6y+ziM0X(7^9EHbzHz;pkc ziOcqq%qmz6dH(rgLPDE=rC6zX;8^Wom<>=ZhEB%zuNE>$c!fzO9L{(h1c0ENy7`U8fXSJZQ>a-G()*W|qqz#eLb1wb&ajX*Lbg&{xpfY2v&_UAVVC;%`{Hdh;%&Or5@TmY)Qs~@6a z#-I+SCt@brC-{-wfv51ji@$F?1L>G3s85hQb45Q56@47;*+@EGiy6~UxD|iRvKg7Y zQmN&ZAz6z1wd$8dIACU?-i_POb(`&4?TSXhLr881UW6HXoto>hJ1b6yGf{v-Z!Vbrc)p`q8AWIXv=guy})_@`|X{=@j@|s z*4J<+hVY*BIY*JdsH+2pU?-K%-Qnmlj{S0t1B$4En3>cdVC@_fRL7+;wdLwnduhGx zDg*+u7j$|JF!!t#^p2;8ro9`gCUe*JN;{RdZvC~y3GD3?Gkso<_C|`S}j=+~@orc2%#`O8@0+3T$sq zriA^hNIjm@iUFs{7K?lB%`RPPEw9S|3p(dmyoya#Ch`;veN5Hd zH96RnPX&mb?XuT)WRNIUn}H^?p}nma3C3%(;0X~{4e zU<;ptCt=6BSFyRrk@~I3N@*9}c6p1K@564ovd~pb9IN=kbb1b_)YyMf{s!k(d5_2x zcUIyZ;G|^IQGRG)R3zlP8q5>e-IkVUlV}{Xy7Fi;M#z)**(d&SKa>RKO~KzQ_BuK0 z7M~4ja7*}haWN@{#xa)=)HUAK9+MnD>sAw1hiM7II}%=dnY`KfvnK4N*T5|_ zmP$XX@NQqMT|5-6g2`Y%2<0Y|E;$*}DD=|cey;wLkcRiJ7|r3b?Ko0c+}Pv_!FGBc zTpeGPyS82+zC3)1+=fq-?%M%#t`KCZ2PvTUA;6PaIJjny1TZSd+rNg(pd? zzAfp0R?#nlzKV2|GY8<@v%VAh6e83FRw`(@CH2BMI|lL$SYgwciW1Ei!{IXyNbw%it(5Y0cXKJAF~0 zb}bV{p18j?!nXhCkkA~F%dm;o>xZ%lzp=FZ2oqE13vLe#36U33b)hVsrZhG+H7tAL zy3MEo0-nc&gBGlck0O{}iOfg>&kG_SpHS6bo3%P$WT)(Esn#xhU0$sVta2-}GpUqee#$1?^aUmnk=!K~8o2Bw_MtLV=?bZt?W|4IpjZ^*Kg%i2h)#X*Caah zEAPn2Ul4z-xn&$_%3`jc)s{iLeU2FXVswKo13ro0LpKB>;^}pyWZOG)L?zk4UlTfu zv-FnNQ}=x}>b_tl(bFCajyUbXJhq1D-R&n{3y$~P_x#ai5*3lq{S~e^U!uxnF_n1- z7&xwgmuIlJw02WDK3+DyhK7dHX|9lV$Iza>zUJQEUchtI(<26E$~S!w922r$rx_C&}n5Cz7(llLZh;-iNjq|&OlH1niEHu1w6J{0OmiG?Z4%AAz&tJ%g!*JAzl;WV?oV-mal)j5Zb4vARO>R8x`c8gNzz}3`Gu9xPl z<9N_B`yOriYZr#36RK5tPL0p`Lxr7S4?bVVo0FZ$2=<+kvJ=e%sC7Ew$EG% z)k^^>m&+ct?r@nm>oelZj@^9~Bp3CYgbz)aBRN;s$t{@cXmk&Y3nO(1aUEx{1ThyQ zl`!~ppoVtS5PA$-tN>Lm-aA?k7jY((99Qdw6AkWo-_6&2y~p}LFj>RLc9oOj`0jEE z*dD6;L9Rxe_Bl5ryMeomCHJ%PXZDUnyFS46hgq*Jk@7;|soBe4KLs3FS;Js3jpp)N zfEwL__t?~C7!es|Fsm){78$glu8pQf;b*%Ct;UA5*&nox-aV=X(ExCsy>OZJu;X;~ zI=eRNGUi+luiKP1&8Cd%HfC<3iRu>jJpX2z%u1&3w0{B|u|0ro6VW+&F_EDWKTGvVZ6pQ0R2i(E)i#Uj&d*@>TH;+UIL~emV>eG34IBcZ@ke}W zhd6~VD0&#RE0Z!34D!Z#=~HZ~_CT@IHlQLyNFz$M%Bh#Ou;!5(lDIWj9zy1v`;Er7&=^r|ya~C(xl~nZ z4N+^Y$YP#(D3xtRG&SQz&^T57%k>MdbK}*U9dnAWR;wS?t}Avf15lTJ2aRgr;m)G) z)2(_XM{S1_^uAE1TUF2}PxnMhfS8uA?sfBCKFrvCU-?-i_u2YRqlURPvoY1B=h4issj4G=c-4dRmc_iH~JzBHtk38N|e#{B>Tn z4ssx)R!`xLnR!aK*%Gfs6aoNF$8R@juvw~a1TYoUJ+hMtZvO)vY?9Z|m=u1`_-_iX zPJaX6aBA`TP=ocd~-Z>+~=#0eIKd zv%DrsJYIiOkpISg+0rglyEk1EcOrqwD)sQVc~+l}!)x>G;L{1p-VORtM;Qe*KYuVz z|F-k@;NL4yd?)o&jUaNnt>nYquV1k`!uDQkkaxf-0e5w1Dgr!+6K(bPw}nd#=;}_QgcazMW!nmr&kB<*VndfDNyb z=UWx`4kUkFUD9Dx{cf#|;(*R>0pF1XOcrnoXbmJN^E{SSD?&$&jy_qk zjLWQ$Ajr&PuaQ~%FK9TQ*b!!?OhOP6gEqLd zA7b_}BExo(eX4~0Lf4|wBHb-D4IgL9jqi0Q=8Q&&BU+U2+yBrp1Iou?6@;SVN4_z( zY=0P&nCnSKZ^{1URL-+7XTl+_WdDIjWvR^ki31VKmwe+A;+gi}uINZmp6JOO{hJ0M zg?2DQS6V-=@!StlaeCg*A)4Noq^Vx$dw|^-k)xAY_@o*nNw0QLBGdFEO@D6oSsg&Eu-@7ZuEd;T|%y>ocy zq$^Dfdi!d9=uaH3f|+@*Gy5hA+NYh;oTa!~@Y-ys(snEs5Oft)R8*_%=6V)i;%Zd0 zdc75|jbHRFxxcufJ7m{TR{CONJTEX!AK<~i-96Pn)SvKD&d;Q!W>DBymY4PQ9&=^A??xz7WE0M1+Ix~l4y|ec6?)Tq%)>thueHxI|r318Kn)=c> zy~pWEM-8=pe`$Ku;N*w_x|eHLIVAKQ0YstuSGKds+GkTHdGAO6AW zn@Z_uqnp(b){*XaF1<)DwgiHY4-o2M?1k1L>Q#L@q<-e$>D+p{$}+E@%QS8!rr=y?XT>8;@)R`2B$g`&LOQ(!mLiRSz(xwCxqs>goOC z?7&CVyhEVoOL_kgy!GxWB@dPvR7pV>St{GY_C>C5c51)6lc14{hF zdILlllI6Rab3QX+irS8rX!&ESHct4m6Ioey-$qxBitEfUMLOS`u2E97z8uw10q!C` z+rwGp8ImIMS+Xr4LIb=;i;+5!O3N`|O*jKgr@4w9?~G+4TOsVfA`+H1T_dj9s+cnV zSvUZ|Jbi(eY3a-Zn3f%N>%KHRR7}M#x4uC+#xYMDp zm`68{U$xrV$ey0{?SQ5(j_}>SFO-7^4j-by^{jM=!gvZbObY)Mn;kDsW^tg&*0;YXN6<{F<&uJV?mw-Jj zz+C(Ln~)%c%&Ggi;FZ?gVAQ)hLYt@TPhf6TX^^_Mri-7~>`<=3!cEw(@1=I{6fySf)7LNc z`689JgijVe4!n%pTCfRSV@_nS^OLr>zsqIn-ILl_4|oB@J{J#~TU&1fo!K9K)#i7q{h9(@npa({Cxk6KJ09bS1)`v%O52U{2u8 zz(T{x7=@|t@k>Z_(ts9`=eQfT0A}A1-de)N8%V^nT)+~+p}yq9kc(qAL>OK75H1($ z!yet-Nq_%00w&Xfn&*1@?MJ4Np`KQFp^%~{>`PJU@=DdD&!`a;FC~VnsqqJv&9@1D0k+}z&h;5L`=Z_gd6AjG6h%Ul>V6`kD$i^*8ctgttx8ff=$oe_g0Zs z)pG#>(oX z*&Q(wnTWN4Pxu`1{->eT?3U(!lA%6d%LtCl=HF45iq1~D!5pOBmVU&UP8xU2!qXy* z=%If!)Kf>PUpKy|Ii{|n!06+#K&VFy6i5^$y2Nwuiv$o1UQ1_o8!w*t-u6JHgj@Xm z6;XCxUgtF-f`x_Uc)CZM?ZX)p5)vYOOeusAKU^&`AKeQOUI8(uyH`&VsHY|J*vL#* zQ67#4bB(Q5gu@K}{#uB?AHTPs>P2Nd+=j~4Y)xQ2wFH`Asd`twTYKwf)Bw{PlKh4~ z-}L6S)(Hgt6>eic;8fEe+d4T!J^$=I<9>AVFqKjz!E7f#IVa_VWnBu~lnQC=jjfRH zHB^;aT^1Dmn2ilt*>Bn_w82A5>z_y6&^j_G+_N(yw10A9+P3$hVgGy@E4aM z%zD1R#NJW4hwT!OGWAv~C1rs6d9j`P5=DwsIF;$~hS&}Lm!AUv@#96!%5w<%+{&ZL z!}~|MH|mNnS=6VeCMg*DV08f}iE!;cy}IK3-1QaLV1sC0;CPvNJzLR~T2A`Q&x}pI znl++Kjf!w751Td&K|X?|(*wNZu1dYe`qZT%e;@P5o*_g@@19;RM&SjMZL4Gzt9PG8sfi_KRsDE-%0JamJn)GD!b z#gtTMjlleIY%=;9YPi2iX{#EnM?Bz7>zcQ=)Vw2{G~y)fb88qM>OKCJmF0t!o`P3c zred>2m5*qkOGl5+Fp3%3X$M>Egq15|fKr>vzq@qxoG(2FIbRW*bC@E~LzFFbnva#U zfXxS3lO%JADe{6q7<2)H8g*6)Z^nMjx+WB!V7{xaSh`sB;nK||l}RvgoNfNS2K|(z zM(Njp$g``G<&;M~X}mty{iQ8eYqRUbg4Koo$Xea45T?^9Ep|ULH&~q4PE*tl@clD! zW=tBV{`GEW6Ge5uaX`q$?1+hAxLR3PhvZsjmg)5@d;%T7J^>59>Nt~vUc9Q*(X3$k zE<{Du`jcuV&qnXHHx%iDsZX2v;=eKEM5N%wMnnk3EuE$c)WE zIdxpZTLdGP5#hf1<-x$2H|}ozDbH4a$~#H+QYkk{U&HE>(w$2Q%3iCuTXNlxC@jxhx0S7HOH&k=K8Q_ z^wrj_P)#x5Icg+yLN8X#oMfRY+q)u4H@N|~>QaU@eo9LdD;vv)?!i4Wvjm_ApvlZm zJxc#*Z3vf*4OdjOiCO={!IS1VPN^Iai%5o31<%-;{rO75@5Jkux&|0VH;oI=@iq^x zhynX3A~sgGHGuEo;N@q6%Y8SfUiDPZbHa6>&`Vaq^fy-VJAS) z79;KetG_uV7D8{v8b?Oj=Yt2xsuw2|Ec{8PRYwnS%%V6gK1{zYO-q;?C%M)cqDUbz zD{~(ynl1u$!owxV*ErDOgWwSVTHd=k1pS(QvFpg&`H zG#CsbRe%Ic-6-253Wh*3QaU~8)&sgXHdonb%T|DfxP#E`XPZ->@=cph2ztddtqNVH zjxpzK99`}IY@%p|>xKD0uf;!2H_D$+su!6jS4#r_S$;jcjsDu%_E48$Q^vw+9EPj0 z+pxvU@f9bHt>{UDDzQj1eAY8MRl!nF|J{`uaN~WaN3O($l1z?D5W6B(mLkaZ@IlrM z@gxl&qEYeZ9p;Jp?F4pq!U-}&Vl@ooF<(dTSlzr~qsaeo(IM~T)aD)&VDFeTd zk03i0K3j&JnY8FsS$yS~%aF3jyg>`osS6Er+dB)9$lP>6eIx@YqBao4)Gg3j;e=-QuG9hYy zw8BqaQ(beE8cn^j7#W_FqD4RB`x|`dnNP5qRXw+a7EUXH?j8)R4b)C) z)i@kUH5@M6*O{Um3@wLGS1&wHw)tw7lyV;Zv}%21rS@qyZ4duU2s-W&<#CW8<$kcO zncTV^SWLR@BOSwOF+@}8eVxEq;afQ0(Ya`i}fQ(tkcK@k6LYcxq2V zeNo~4HYaY&Xt&X=nD+&ylo-C+4b2)ZA8yRGF6_)w2guZiUX2B7*75|!nNjpsGizv9 zc$leQ8?8)`k^_{jrhbLGmMM-^$fdm7c_DB~z3?y5bJU&>REp8*-JuKAjPqis{i!2D}`CcgVK20M2;GVRj zBFG(1KquVUOMTTG8@2vPXowPfgh#!e3>9W%@8efWX?lz-;W$aH_c(ZNCaC8mZnoo> zi6Yuu)9GtEl^0augDz@de?YTZ|L9%L<%tSdu(cLVkrDh$gBYusB2qRR&G9~5)$pv$ zm$Du+H?-pZJyS|@y4uTt(EAF5Z#=m8q>f$rtZLX|6?RD3iFuikr<{T9^6XYz0L4T#Uu*k2_L>`v+fFxLo@Mg!=^a!kBlR=3*V4Q>&S)h? zkEF+~oaryKhlGb4KQVc#C?|TQ8uXT=9SjJil^c`qZBkUFV&=YWOd1>pR1U zcfnyg5Iaqk+t-7n(KhCO#GD?I@Mb?@#h&#bVH-q<3-72{`rtg@Fykro6Z6r=F;=e9v*+38V+Z)6sJCYQhUH^3UhCbD*+cQL4n!a6Ps{z?eNn@JEPtL>3Z8yJPiK6 z0S`6)BOxKkEtQ3US-g;<;H!FKQR62f&>XC@P375yJqk7$S1{-!-m+pc#T zEv0tf!&+TkT>Jy0_Du$@NUaJPNyzwYdukjY$cAc^Zd za%ed68+4q1ZLylfkh)PekWlQl%iuoh`T-Px%deY7f$%F=t!OLFkO6`m^#5|Rc<*>w*6e%W*m`vk$>JX@__NgcLK-a3f zgJS+SR*3LEg=#*3S}A|b7)eOu1LU8vKMSAwFO=95XtK)#Z&HcI6zY<&2Tbhq8ykj; z?H^-mH?uK}##Gsaj-jm)*FL16q{gv1UE+Q^hdM;2F@fenMx$357ULCJW$Px+@pkBQ z9CCvoix{Nd+!;>XeAntO^!!=-W}3d@4ZXC>CFAWKHuTlr5>OE^=4|=nPz}IIS*<t-$mQjwIiiLE#BacB8-%hT%g*XGbAxcUU}8ut zlSawCjkFl6>;Isvv~rc`Z?r~nr!;&{@0^}`P_MPF(&}`((Qgm2KI>2YD!YK`tpUAf4rf7PR~REJt&)US>zVB=5slb}+t#prz}6ub8-xc|?#>5?dp5TyGan*HucjzDH8`u5i!0 zlB@TvX3@BVtfIafHmkcXqH83x=Sm%j3+!FrgO_%Vr%#r!s|8L_Z8~jrgS!j0Y<^}l zQ#^gw2Mko_#fx<5N$_@w1S^f|69ZM$V3iKiu5)KZbbeDYoV7n?+O(6biS?F7tDSZ- z3}>OAH7iBV%FPcxWp6@{oXC^t)kij|=WzLfJHm1rpOcoNc%FA0ubu@Q1)SIZCS2_J zOsxE-0T0Lrg$@S21O67S%Lwbbhgr-B#^CHw>${*Y_B(e^_cGiHHm=X(yw+xm=v9mz zMGyNjtmk}P11qIv9IypPs%#t>b`iDY;lc+`!o_&~)mXyulgVwSHHo{yB4nKkkZvU-SR__R{FUUu?hR>R;4vM{QH*=py?`Kwtcr{|EV*h07wA>!w zex_AnE^)ZZ5-w0Fx2+LFsiU@f>CZpzvRJ!1Jm8PuKRu$B91zpMe=XZLiRWBpx%MtR z7A@@L^gyjQ;=+=Om=H4e;J0DWhbpEevdR;5>aCRebF{4G!w}{BtvAYo0g`D>`D;=adI6AH8liYERvt9f_MM^Z?_U( zDcuLuRvVL0f{!0rDH~GYKU_;bIvsxw;n`xu+RL6+QA|N<1f8xsg^c=~m79!48&kS5Nm+ zd_$e1cj#50uLFg??W=F`vk3Quk5%_u;u@O?t6gdM?PyEpe$(W1ecPzt&4~g|T(XYO zCBqtsgWEs18!l`V6lXYO&>0(VfdxK?%uFap_`GYR;c7ha^t^61lT7r|a`tL2NBDU8 zP~LZ!3mdO4Gk>77Gfs-yBN48b(zXs^J!38ekRm;QCNuU25jWmtq!uYpo+?+=i5GAlzL1%S@Xo#{tBne_G8 z);8;;1E1bWQ{;7!;<}X&>?L4~E0mn-a8QzJP3mUNja67}-CHj6nB}NDESaA@zZ_VV zN4DyfHR>-!Bn1vVpFG1l@6pfZ60;$Zh&Rvm@oIe&mMa)L-ak1nyz@43sM<5RZF{Z~zb)YQlQNI8-0&%~O=tJ5;6-#il_J20hYA>(F%#nwh@3v96m&LR>NsxT-M_PBjcf?UA;{|)ovvj1 zLLhpnubKk$!w~VJI#cq!+&8YGG};25ahzUkPLOQ5GYR0%mTy9y$Y&?>1sf0J6@vrz zhGk^J`lVibC;aM*&hh>Q)MnaL^z7(MKFkZX5m=3iFc?|xwo}JjFyc)j)p-YxHIr?@ zL=phcsmB<05YI1cIldjEOY*x4zQJ>TX?U*gW!7(vo*(7 zt+^Stz*IsN;}dnuz;$qP)c6)d=OC^YeY|F4L2`kh*I$nIw~7&8MgvTJ5h}6;&{?1D z_lfi#Z(9US{mcrPj1MCFC+^bZHFAB|PjT79ZSYa&`+OLCctVIeRJc0zOZh(PUtZ3c z?Y(~wG=ZdhS^Eg=W36NAx>BtH4Ayeff6UVSq%GDhvRg;XYHF|md;A`r$ie)Fl2jj3 zmt%7b*X^l$z&GbA%ThQGhF)RSsX(ALsk#jDY*gjA@B7W|4Q0ByAFR&O^QqMvcR{%ox!6m@N)y*3$u>T1dq}agu>kq3S=tp} zZyejpo7ppiV!xR;McO&#mdB2%342&CU%u>^9Pkk9Pxha&#i3zkO--^TQ&)A{GoW=s zQr#m9Cv_rZ=nl>pqtjSr-MR5ZZ+Fhb1emCpt(FdjCXr)(J%~otPTzinoLy; zCU_>VBh&l}&v*E&*Dm#PQdX>2qEy`{5`svHyge~{OtgQT?!{esSN}cz;%PeBLm|v= z!FLEJ8Olna9z;;I9#*#xmj$r}^FDFd)vkZV>atUCo@w}9asJfEnXJ8|!(lyZfPQRb zcmVC@xQf7gf;mn%LyG^}j@5Dz=Si8xP6VwGqES>V>L1HbTuBemjp6$8dA%#8$Ee#t zvgSW~Q6iUFZ0~{M_$4>8pZi%7S4DPC6H|p1#V$p!lOMKRNDML`@z%_(zP(<9^AN|B z$|w<)~Q>zBrb zwLxgf^O&C$?X&LeE(G}l-9UM4jD_kV^Yx54h%HqHy&o1@orOQ^l zYRG3QJvVLpZdE$HeR-JX=5&4AZGZlYU#D%g)5@OJ_u$|hC*)3Mmd#Stbmzgu62U>U z*skfpvP?&N^4Gclhpx8{tLodLhCvVn38fna0TBf029;JqLAr!PcXvp4w}%h`5jb?W zh;(;z=;qK}-{Ked-uHW-cmJdE;NEMmz1CcFjydNTll4_JX2ts?<1ERBjX;_C_9I(w z^SSD$$1a3Tb?1REXws>;W?`7ZLyEumKc(3fq!Bi4jh^cY^(rc@@K3Q5Q8`eFuwO?U zP9Da7{4?I2I_nSs6x5g&Nk)c}Gs@hq!$NF4BYJm^C)rbTcB>;U=WddcL&u5*>K>4% zp|(0fMw+x23iFstX%gz~(8uBX1k_$Uq47}1XdSGvFAu(A)h7naYdR>`PRCqiJhyua zZ@R`sq-hTlS}a*&adFpv!QL5yEuLZgkZyWUDp+m1DPb-ilcZCIEZK%+ck1-ApkorC zAul*u^Y;Z^ADC9fCng>)zQL#w$aL8H^t*-jITI6PXR7R!bS7GBzMduW0e^Dn9|%(g zUsBCBlA4Rrt!`VXEqbI(pZ;8}ue}8VNZ2*@XgEcAH6%)#B)fV4whOdtkavt@Vr6A* z3#$pf6&8sGYz2y%?n%ia{jazM4p(nFE;N5lMLDY6LqQ*S_G{8@dPpaN)9&)(3X5Hv z9khr_SwL&rCY9oy6wv_Vi|W>hGX;d71pOQ><(BxqweXInY|FgeJoikcI}WmQV(D&o zRq~Z*@9-%@#}qG={UL?Di5?oRF_{G#F8U;ThU|C$(PV=-XokfQpKa$d{+GH`mPu}} z)|~gJqSibJ&sDUmaBQ(Taes7cOr#*@kg(vRr@y0 z*i*{iF1o+!ohm<&cC3l2xSS?;=RAKe?CPjl!Dblw{6*dam}-3r?h9q&M+(uSszUh!WVX}g|Jy4t6~CcEOhofrHul$tBwvo@qK6;a$LOg}vy z*IA6LX+j2x!EV~6bQ+ez0OJGFm^1{1Dj(wpY6DH`Yg=0g($H|f%(qzAgKKFSsm17h zc_r-opv}H4nRmZ6Z@WETLc2RVQ5)wAIIF?B{~FH}314y7(kM56%B{ip=1sGv$SOVL zn9ar2^HtcwLzpsiN`@ilE7a9*NM@k9qXv zqU(U)iqQF6id);!0+?-KH(0Z_p3INn5E+GMrh)kR7CTY@~p7UAU_wT+0MErFd zc@z-0r61TzLIQpP0ZJM}os1U;4-@oJ#0HjjtzH$%YgX8$Qx_CEhe)!@wP6wzBsa%} zc&0hteqz%$kV2Qx@>;G%`O3bUhts!jFbXhz6650bX6)okOh@^8*XlRmb1hq+Yf+It-dV0e1M6$FyHK3f7>iD z;|7Q4m5%q{j~|~K^Fv_C?V%h@2=*T%qn{S`_cPyhx-a_>l8|)hw9U4L^H7jxE>oWh zc63CKkMUj`%xL-frA&R}hr(UFi>e5a)Bc>)BvuKZ51q%IEn7Kn6~31~KnWQ>yU8|6 z*70Z)FH_xhKT4(_Z|Ik_YHSWI^608tn);ky|5Rmm3TrKP2$_=faIstP@{iWhtIAxZ zx+Fo5r{}Lf1lBp9_VPHNBqzF@oI5%1=%55uxGt)cho^6OO2rKyT;bBi>E+0ZJ~VTj zsB!rgzjfhSY?wnC7>EMHsgI}~TqIaW7gA5Eu?UJ+LF{EocGp(de{GRBJN2y~yhgC= zXPx01Xhs@;Mi0#qC`*p8-E(Ub*(cSoNaL)vz1NS0^Q!XE<6IRq?0Uaw+CtsE`KK_= zny}(x>%s;@=9lW_i?v&ppsOv0?mbbN%OO4HL)?L?{@1lmTb)xCOpMPv(19XNi2eI2 zX2{|n)=5oN)unX-1oqr@@nXu&LXM!VEV)n5=kA--NVp*TDk-Ve;pmXyuh^{j>1(sZ zI;)dL+N-V7{T!Tw_~s@(?oJ07wRT!<(>g4))W!5TOP$hvc8JiThL&m^?ozYrK#fTU z=8q`O`a?M~?l;(T7ke%N7pnr)S$Tz~l)ffB2*tTP&GzxRg=k?L)rRZmU1!ZMsS5#J zY+f-ju}p2}=R*@&hL#2WxG?xu&&>AapPYKm zy5E$*vp+`OZ?_x1RDG&rwKv5jTXOH*%yZSKC9mWDdSc|cg=Fp_*;Po6v(v$4{aH_U z{n=EGJEsjrYKxG!V1kU-<@!=3FRn&to%2?B2;`{ulyrCm_c@)%$uvvyV+JF>I;IKZF=>1*igxLe^Nc(8O3A%Bsv)rVNu#C0S`_yecGQTgjxBszQE4 zNqSmq*Ccqkcq!;&^6Y%_m{xJiT)oN@`}VvaU*8a+*SFiG@WEPtMi>-Q2<+B3mz$)= zrlz)T!)IHB>GR@H(>3DCN9K08l?Q-qdG(jM>Dm_UE}nvYtUr(PQ_9Lc&Jj#%-&Y{w_~ zbcm1hQloOUm3VIcd+5dM);0DMEL)c8;<6-J($*wd>&vKDJq%JLf@5}}%AvvZeTAaS zSceA(dPfdCd%wLHhU#7317p>6bwKL{*ekALl^IG}r@Wk}Y6!Ot^r1uVZ@gfkNry!KillL5 zP47{R^l<4jl7RIU+f6@_wH5}=tElJO@frVmTCLix zI$rwJmCfoqk5}VvH?h3y;V!g5a}@4dDJ!>d&{c(zsgvFV<&weGSuihMCNxqu`~=5v zKiY25blP|#F?WGwCFhyc=UseS6LZ;Y-@8S=O8>ces1@iv(7fZ z=NRrN5|m_Mz$Zsqwp!d;qsm<%n>QA>OIysAPmI>WLgnqRDaj~4&nH&ZG&Tot>@_r) za5s1|a_@}y>V$P^DfnRojy>5J+fQ4{mg{fE#7rU{e(jC?{v56=Ng_x!W=S6{QquAH z&W{DFiVr=dju7RqWJV(NTF=J*^AVb{72dS7H0UoYwk}^B4VCytvI02d^+i1?rq46 z!cd5BN)tA;$t5I5SjeWTS5l+Jjk=en;paiM)w_JdzJ1GnQcsoP!jiJ-sU5Q>;Z?Rz zN26pz$S_$Gr)&=E6~r!?2L0j4A8IL9!BU+Vy{iuGJu00Y!Ar=%C^|XMb!WrrY;%@$ z5qZ8fFNHhbF$bdd(lLQmBp%(zv>&v$s8zV~0eaZ0tp$dlkPvR}+>fTFZa3$@XhB7{ z@b$JYM_R8MHM35mUmc<`Ja<@_M;UqVBrABv>6X%bs=is(Va(%b(5?RVMgY{Q@!PNW z+&1j909W9J6Wl{2v#8EHkjg!U=hliH6mxO{v1pC4B{?Dx0QxU$llZ^zGD%QJMJ|9azCAe+BWzu5^$&7TNeFW2qeWvZZ6By|=- zE>Dr^+qCoyW+QAHHMX~JdDw>hsz(2;2r-w-aB?_V@No-Vt#Ql0;`@b~^!XN9wW%S+ zVVV*Kw=~lFnp#jNcXF^PH+OZePDUDbsHX+c>Pw)M0$o^?#M;8n0-m&lO=Y=NHn`&EC zvE?JmEuP8Q!}GOtzVwM(kdHZE2(-#rTwO5`ErMkVqygU)gH=Q6$Vdp4a!}1b{*Q2cQ z@lRlF!`o^@0+VO#^hsSz%qFx@A!*kE8NpFEErfzc(IpLbLcRy`C$-a}^6WR7pa+2g8~JdJY0rv&o3|ShQq6d zGXu-s5BEZO4$km#N4HomBC}yV5_)=zCKl6W8Q`ygPAWOsElkNWG(3E%Ye8kWK%+lz z>-XkeaK97@-ya>m!9IvqFxnHC`Dd9WOfvwFUY4 z$>j5cj~cRjR5gDshKt9I53J=^G;4zO!34j`-%gy6x@VzAH&u z*w7G4zK|r{_0VaiJtD?F-V^!w`o z%TuH-yNOcQ!1rGi#g@$l#;i)~)(-oHQzJU{Z87Y-N>ZN>xQuZ&h6c;yJW0{&xmu%? zam0ys)wVgUU3oi?*w@ZwA2^>fV~x`JaEM*@SVjBp;JI7wYL)IKV1$LK*DJj2!l!)^|uB6;X29HzZ>@bk474ugm9TxF(3{QbrP`#)uGrZKTG)#!9 zX^Qi+mjB9dF~B@W&YB;L2lbWroRxQuitnyPdokd0FX!@--*n^{i<)~V8&+MNRFvb@ z39vffUgg_Lc=9U3MhX8eQpr*V;#w7*v!N-F*-uXGEek!5uc;~b&|k*(mcL^gWN$s6$}7R}(os|jV4yb^`0lsuuB8{;;lH8U)QL#z z*Ku7c%L6)<(X{c*5;j)QQtn`f{LKp zjR!fy_OtWRIn~AY3CzpciRoNK*1 z5?!U`tT~Lo2+Xl5kb82`ujiQHJ6t1`NfYdxSoWI{ax|kIP|I}?r7qmSf2%N3QulPW zJU@x2sheJ)DJ6t7Hzt@T*re$iAjLMB z?C9abjX&7%5;TE-rzyrr>M3TMZN4aQ9J6p}WYLD?l;2$Iyar!_;%`&@GhdR!{cN;t z5#RN&VEpX*R42T3t-+3IV59w~k+6ZYZL8|?me=P+zeqkED}g$b>LO#3u`!1!6%aN_EDz9Q+kW7`D90Bdmy%U(GIt8xfr9zHfxp`trS z)xg_M8tBY>nE}OhH2Guc=rpXR=Se1ZhZ8kLBL<`lqTX_RiZeomrhjQujbPsA&*rXi zi?)M7Hxb4$pTEnaKP(_icAi%vpKdyJOu%JY2)$L8wy<2?ynI)am3Uu1-`8Q90tR3F zJWC|dO4pVh90ZDgkD=R$^BHq)yHTagn#BWJh;3RJwbxYy$bF`lsAlz5|1%$nwJQjx zPnSgqtp}G`Eca3uvtF-FE+I-Zh`swbfWp@Qb7*@fKINolq#5pwl5l9x&3_zTq3QI>=4y_w{+ZK2;%b<9XATmr3!Q`SZ!PPTw?J&GO7L z!lB!L{!^q=E;+Cy6}Ovn{>AbH>o5T@#X<!wzdwie?%tYaXpTi&Rx#QjXr_yMf*D@mm>C z$#XfWcH0J<-|_i?T2r-~=IHYBe*-OJIxHlV?O6cMRy-XmTMDwx^XfeJ)1hxheQ&e|`CsLvwCGV%U231W-QEyQ)3@ zoGv>X$XbyC-oU?Nv>#dJtIc5!!ik52xtdj)5A5sH1>{x)@~%~?dR7&u8HhqHmqJox zi9#oLAXTrbECZZlAWSS1Cd~XSsfT@qiZyb%!F^GnO}ChH6$^ylo{wLjt~$ME^cgO6uPn?(Z^!o=Er}hIYsjk z`S9WO=g(0ra^hlrG$4Tw^y_#(eE1Bzm)gG~XrFiIzfkV31t?xenBI;8N(aB3#CFCV z{QR7pS``Am_dSOA%JTA6k+ZXAjT}VMl-+Q_7FByq{yXQ5@(mL~DRkhKm)BNmJhq8ecJ;Qd zZb?J4BepfTl4E|)wk<9V@$GK&jc&z#9WnXF!Ta2=P4?@(fof?EAK$lOvYS!V(ZSNs zp3y)4uCMSo+Lg8GNjm6WUE12p&r$6cH7vsbT6{Rv!ZMz38cQy+w)=aV4VmazSg7(x zO<_cjqxtnJ)B#(64geCaYxvqsiTTsJ&%bdOf`fy9u0L(+>}~=Jr=}QMTU)`fjnjit zo`Rc#Spcb6`SXd{(mgH5g3CEo<_c!3E!=GlAz&vJ?E3`DOqWuO_4lnF9r=|MSAtIM zFF||Hkz{y>>#8iL&CQkT?y0lSZw`i$OoUdxoEpdzCkK4h;_b?vs1y@o>WB@=zU&Fyh4%SCN2vudM%X{Pd+Op}`DoMr==)7`0&^GIC1`Hp6AgPV_=JS zui?@_hA7x{WA9W5;{^-SI3HmB86U@Gm6!Jb8o8#)EeqeW%Hu=>L%@Es?m?JFO0L=E z%5NS3SMb|X17dUqtnl3t&GpM=fa-!QfP%u}4VMoEe4!-}0}~VGG<~wS(1MD3rl_p! z*8W!OXE$V=^?AeucjDuOk@zoBVm(xAmMU?Ti*GS48VOQ;z2zibFk0^mfFxzoRWHX3 zqVU9dvt`%J<5OZgp#$kU1@F9`0_e!*up>@)KS5RruTIFy(pQFQb^&yoo4bgxGjX;h zh~AUHJgp5KZjqIxo~n~WUY)H%pEYP3L~Pe7;sYI}NP&bKG&Gc(ua7Q+z$yE3n22i1`!>O#enUC&urc~}r}MCq*}A{5Jd~@%bt{c_cLau>ctR?ZctW@f>7#dpKQ*0UM}E1%@BHYR z-zmeQn;tdMfuXVEF~JKh>6%a>Ol-=fMg;?!qxjhA0lag^66 zTW#5e7?;|lmZ@GW-X@_unhhLOIeF4XZXNeg8;vL*9Z6inXb-`YpT{nd+6|O*TmJk( z6?hmLsULhoDv&0(z^8AB_85Oj6HO^Oajv{(krm5w8U1xl0c_Lb-ARwpRF2)xH0PaB zQ`9Of(}46`y@tJCdM{|r&iU7)^1|ezA5N@@7G;69eZk8s#R;t0b~R=qs%k4iP%UIQ zrIKDZGD>9dKcBuM`R=_vTu&KTxRJrpLcu$c9@|@}B`{gMFP~7P*>ynpp7EuSZJ7{c zT&}CTn@{zVl#Mh-(y!rRd|X^6;IBA4JMXOpII!$4L};BnS0EREL^htRTp~PiVic{k z{MAE^(P-%{5pxe+tp|rsH`uHBRtLSm3A0ch{rU2k)_CY!m`|_B;T*coLHpu4v#L|j zx?y-w7-r6!RRwO9XDt3ayK=Fgt?s#pP71Dx3ZI+OdogQC%C)-DRqTkv(pizyl9{hh zgoLjb#`9p^QQADV23wygYVyw(00?1;a3_Lw{HoG@xJVN#^`KY(d{uDGr{2}N_h*FP z*U$;R-S@&t{Jt&^6HB|PB=cE%A8;dgtrOII*0MR50s^PfOA@llJYG1Cb!E67xS{@D zLPu7$PIW;;LwGkymr$EA^^CCp(P-d{m17#HF>^xe{mKo96+&AAao8ND2$T!7o575B z_Rj9&Eu$7szMHJ!085Rh)NUdz3q-&!j)^fIv7pepsz7#3zH zxm>7$IZB8#-AkofF1(KFCt9W$orQ4>sP**0;reZDo8IFDXxNB%yc<{h&78{AdCyt; z87wm611Rwx;O;#w(wlvIq5W>xSm)i4=X`^j#*4X}FrQhoN$N3gqKq_9jjs6%D33_p zg{tsE+Hi6n$lMiQk}N%ym-#(P0eju+3ogOK?Ij29^}7FM9JZxT4!@7!wf^=6Y^pE5 z=nnxO1q7T77}(f6-1*U<;BZ{a2?g+t0RMMBRz9_xPpdA`voC90TX!nOAj@F&gCCDK zTkkrbGlkO(dlkmkJqD8uYxgPwd#n$;L1Cqgwbam%kAB8+|*3r>Y# zFOffh7iD9h5kK;3OZx7`K*dX`dn+E5%hj8Z&`5Ye)qkvKkd%iF*hEO68q9pIG}=%W z3LFx7P!}vEFQ57IXU9bOJ6|+!O{X2zd*rC2rcs9v$X(njOLS*#6Ii}>Z#EFU&4fI_ z4*9P8oftZnWkV7XJBZ=TmASS;OTxddccD3wdh&95;00aqXDg1RZ^n^qnfM2lEc&93 z$Ns#09Q>gjuuZb6w=FnF#sofGPa>3GPEl})Umzv%rEFFKf7K9cDlO z8adq)fu-!~c5Xcxwa`Y-!qTv8ONNRXlb)`E{-!UJ&?3F1+$pED<`Hu=W4VZ~vJs|e zd&D<0Tavlfx`}#QHakQ2-*J&T3r$R=Vd3%`E`1Wpg_@3GCVU#2b3^z=#hYF#4-S7% ztJ2dDXMuVxdcjNHroNkGP;T@2cUh#OvgP(CjeiFvCYI%yAOD)+^_w@y;Fl&{HfPLqZ}HWIwKgr&*KFvAiJ3L7K%N^~2h9 zL4gl<#sDH~P(YRT?`12TTLH!+CG`M_kMA-}iN)47<+?5aHIOV{PE?o(E=3bNHIzF# z=>57#xy2X{EsmhrEwH50a7EJLFzM}S)@RYljimMyA%jOFVU2ALC!4>6rgs+-OueVE zr%x4p(Ajz~@VAC|Bbr|>6<5av|9AC);Hyc_Ev#=-K~dllVB1e8A1^agK?4Yq{pN&! z8u2k5UW%woXMS@Y5*SR>VV49np*e>LtVGHen)Y~z%qO7tVv=Hm!0$EV6%Weros~~Q}yaO zvHeYUZ1gLeIC|Zv-JE;8k0dp&grhxB;$=*b)lAyz$EVINu6VQM#3(EqGWF>UCn*L! zQ=du(8r=4zrRlht1BeRnjOR_7Sqo7-&~U#6*LQZ+5fp3)v@hQ*5~j6 z6_Rq1ww&Hu(ZXu?XMpRFuK3N9eH)CdAC)b7+|jYIceos~YJ*|64O`CkUIgJbb0{76 zi?Cn69?@h%f+8YlCgAvX(l{m$f9#+8XpOG&im4~~2ZYB4M}$4)=f{h@4xK0$fgX7f zEh@%5zzuzxD@{&D=eOYIj8ev(Y)r7D^WIx-{xcc5ox601{1ZX;kUw#T&sqZ(tQhH? zx|xN~9l0v=+5)BE<>c=*F)?%>i_vpte0)pbtzWthwZBqtUnl~Ba|+#m+4O-?i0Yl2`HCNKEV*kEWN|C|vEbG>PYy zXK1KWDLy-kbM-rwN6>@FpD)~Yucf!)I-+D*K|v$`hj==8BW|LUywXxz3f||>JC>$* z8y7Pp;SLzK_spj&{c%MusNwx*Uwu%{c_|#bx+Cp-{-L4!XIt5_o4(A%f5OR`QeS^P zvEv9C{RmJsa7J{k5ej~3g&P~U;Z5n^ zzXSch5W-~w8$}lvQaZX;3PDvVON6KUwL1n5HW#4u{^#N|0`3}!>VSy`1IaApxEsjc z@gXgbRa413F*!vk>j!}$IH`_?IkoXb|Nf_@)B@e;JR^H`W+EWC0Hg%};;1*3)cR{0 z#9GB-q0oFRxoCbcdeC0}d#*<)$K58+GW%an`aUlsGu5oF*G9)r7&dExR^TQ|6OsrJ z_aNYWoJ-q>Fn_=QaF0VdmB4}N<-Z?Bmv_2_MhT6tyQ{0Ct4raI6~E5|=xa=vX9ER< zTybs<4Dc@iKVo8G{hscI*1H>Mf@tioOH&FU+8w>!t<&A1zkWS|IHdlhT4rWs{0qP8 z^H9zw)Y!;%$YG>m02vV7JB9Z4l?7e8C&kG3(J}u5DE=CSt@m?Y>n~q^p*cHOJ6Uaf z0xTV+rKKP)L3hvsmigElh-}Lw>(Mym!C+W-Oqaqe|9t_Pl@$X}*_CooEQOe;veHqC z`U}YhD9oo^4U>OA2r_WjF!tUR{qR`J}H5LPE_96d~GwE=V^}cg2qg{KzYReD} zu$hd~y;J`9`-(pN`uDw#lSWMooR2w`|GN;!{~iz@I$-b~Xw+h;Z}9l zSNi1(T390j?c$VNtedFdf0P*h^DCglN~EyH6$|^`y~!pKs0a^?i#uBJX#Fhb>;|fn zeAe|068}jmNPe-wNqFVb%5!B5dV2@9{C)A|{H?BJn{ako z97qOOR&`)9J10t7R5h6v@$o0CSi4o36^gK_oEa^q$~lPA%a4vY8&gh5ftJCH=N8c3 zjN6;qVkLprw9YP_X^L=DQ{ED2@jKo1fz3Gd@3d`_Re%S-XK4flN3XiNDa~i9({gn@ zBs@JEOBjhl{XrIC5L6r0H#AH%xDiu(uqOlBt}t#31+_9m!dMaKoIH;YA08!QQ@(+Y zS?uo>TNf7xsg-#xo{AXOF^?N>CqV(_A4;9m?&69{dQN@)O!m#38`U#mVQ*O|_ddWu z^149pO#2s4;w9>NNi{XTyKKfK^^ZDzY=%D!`+p$#;HC91cofg!ZdP|p5<69M(#FOQ zfIH;BYa~--3J2ZnmbHU5FBzIdK<6jVV1ov0fDW4v(B4hDYJP@>TOUXCQXNtjf3PGE z-*2CR0|kJ^&FJyyl$5vNaSw@mm!MWTl*ekXU`{qR7)`zB{yIjtnvj2$ocNro-K;t( zcN8?pLXnEkcpkX^R&_4DIHv3XHG5R?1|Rqw043yXa^0QF?|1ghvUcCmReNOZr(=9< z4j}sz7z(qZ1v}!7MgtuaGpx0O=GF6{@84-4B~lHJfRYDL?nJaMdZVD%IT~2cziyV6 zJBMji1*D{SIJ>zGXLuNafK;ts-+SL;W)WedsnNa)V&7%ZRR&r3em=2N*vt%)`M$V< z?*KCeIXBEMS0H+>;o>ndxxA+*mB`IeYRS~yIg1e3U1}q@WMF$5JP`Hjj&^PgcK`ZP ztLNr=a(kkr;jiy_>$(Tmv^jr3L!0>k8-tdSF}X0+ZGL4(HgvTBU}L|i?YvOF+2vRY z-b|qKJFLHTRz=Ntstdr;fr|IIc=$1@<<7!5lD+-Z+@>ROU=;X-grXqj=V(ZAjw@<9 zeWJ;Az)wT-U9Hsq>DH|#U=e(TD{{uGfd5knZw6wfSBwBEijp|o&XH|^K%!O^F@eo`oW;I40Rplkw7As*;ouq zYTaQ+Q`(=Fmdw1F7QF=>+-oSn2Y-kkeoddse@QE;`5rEe!iIdfdfOK(FY-GdU+42F z0t<9IkqWF5DJYPsR8Tt{lT200X3tm}A?o>*cDlRF%S|Vz3?`9O!s`>F=08;CS`194rwfzBocyrDS*2pWAixO$J6r;^taR*Ns$IOjCJzd0`$Lsy6Cj zAdN@X_@C_Xe^fSH3Z!mYDPf>mPQAURb~&#RlWcv3I1vEYpRJml#RD9S>^HBU6gAw? z;HP=`>};5Tb!*rAlMU3uXs4dtyZa$fRze#1;qU^)&ADHjY#VSXUo6J<3(v1k7cLb@ z<9D)l(9&hIEm_v#hqfy0Q2smXZ=KY=``(p#UHbPoolO`_B~-RfV12PL(TFe=xUA9% z>%9w<`rMM;998bu0UG1(712NldvaKBpBso@nC~1((Mvf&{u>h@3b0qK>U>p#VZSjG z4p6NE0g( zvEN@hroMu{1bNz|wVTUNN|!uv&v0LK+*)Rlr*p|qF^es)P49BtpfdqZ{(q|upsXYWweJxI8nxA0727P%|qf0qmY4H@y0Ohn3+I$t< zYvp#%HJ*?ualhAT_zYfW1*p4pWAGH$XAdX5M->fNS(id{(+|2~)M~}nEYu!XRDn2@ zzs)Q6z^~_ZiQFs;0pR-!us$VhHb_caTA+_)94@m`)-R$DZ)9#vXG@I~aY+X*HyMxV zySkBxwyJ+r(4rrz7NGK<8W=@Km$Vr0I~Nat`34w9q-h;%onxD$sqmFBz}c<_hZ}GY zs>lm7qIfxMn=y&Il?`+evhfwum+FOUvxYlJCMBc1*Z4JZUAz7oxz7r>NCA z8NC8n5wK{+Ls@(l@{pOni!M<9@u!JeZ$HN0-WVP%d2{^iu6@}tmr@NZ!$`rKCm>JJ zHfbsg5Zm8xTS_L)nYC&s4469rKWJ=1<$XZw9ZTPf6cieMClm@Thy(MctbqqpZ}5S6 zxM_7c8fKNTx=|x}xZ%$CHC_7>y-ZO{7r8y41^uFqq&#Kxp+voF03a8W5K}R5sC>U8 z_167fb~YWj!M!g4<^V*aC^(ca^cH@*uyljK!0E(r2kiHuYH7v9+NsY>Otf`V4jyXB z*yuR#EV8#}lC_mQ=U+diqbs~Dvu${YLr`o5*Pg1{Qsp8frv6bp!1d~1=l`t*sGQ)U zLoe;<;%8r>y4O@pz>i%M*rXL5l4yelT#M*3VZ+O^sl<#fur}{ujy{`FYD_h zf(6R&EVxg$J2}e(0NmY113E0()YRPePjTlLn?+r2M2hx~N5B?uz0G{TX4$qXsa9=F z1&R^d+S>zJv}#cXSSnB&8$Imc@&cMk@0i+(CoqLyTz-qX=Kn+Aa7LXh~r>6FF*LOWF zSaaU#=G$hz*CgRfIw~pe1AOU@8Uwcr$GeeUo*I$ovyiM1Hur%ex~C`I=oOd=#{2{= zH5E+E14h;=$Zx;E_CZM3C1|a_N=;1#U7rDfJ+HqXo{jS>pXQ1BENB+0zAl2e0OF`~ z2*OI=Um`V9%izRCgK*PZ~Ggw)`ap|kFq8dG~#d+fM0^vr358 zK)lg6^{OQs=5L5G9ydeHY@6wtV5?$xJ^MUGN3kRkrGmGErrEL{QkluJ_2v)>l4*KR zeaPqxJM0eVDH8ffTs!xyoLr%Tib1_nr;JLIZD`VQyJGy+H?5%(4rTcRj>@`a<+cb? z34tr)x%@>t?V;vu+2d16A@^T4Y0CIp_K^{J$GX%+9gm1$t9rj# zPeWlv;4-w*1p?Z=?=E)Zy6B*Z8e?Dj1DmF=ncHq=Em=fZ7!5mnS2j!m%+Z~zv7r_C zq}XJf-v9#w%b`jkv}NJ*?wk;d!)W|;w+(L!oGCQ0HM@`QYXLo+IxICr=9H=}eJ^HPMdc|VV z3Oi|WD*3uI!j_yU{9Lq8Y2u2br1WA0*yr<_IL4B$Nrk?YEJ<*Dv%q9~+E_QR#+AWSXi#Z zt08V@(^0~l(qYfopT%_~5lkJE_fqm;WduK++UPUF!is#x&K^TFKG!)Q$M{D~0*{nR z^P`zFy!eA&OdYR?m+WKZqECg@*Hi%~#u9H;pX)x&Al$tqmY_IJ7F)L06h3-K1-y6V z{G1X@;PQ#yx`%uQ+O@EF4@tnu(x|m-rR@cuG_=ZGU(%J|u*_c@0AqC7HcGQA ziCWU{Y%xKzFCb>EDd$O+(HzO-Nz`;FMG_Vk1|E^zcN#5LOel|8XI-qYZdVR`piZSJ z?*Kq*&siKJdes1~b*S7}R8_?T!iN@M4}i<7R%hv;M7~Cn;kI{lw7A%uh(|#1Nr~qw zBp(1KSwDY9RcxiCXVU|#Z~d(p=}Tq7w90);UmqWm0Wa(Dwd7%?nmJ%iG;Q}kFelI= zk0D>9A9e=n>`!%Dsf5e_YbEb}{yXEmr_Uv4^3K}&6=;q@<$hqFEGU%9^Lp&ICSrS= z8H7=Hnki{%X_6Jkhjxa%i0--Wbn-FMxs~O=lPkC(Cp`uZwIyRFR=)K1vJZaOF(HnMF4AL9l+itiBkj=;OkAn+kTxZf)c-_sBA%a1k{m3oqAec#MbGi(fEe`IFt)R|0f}&LIjgT`IWzATqup*q8ZmWV>P!D zn%pD+=c&Y=B@^(?7_IU;?3NsUiD|3i)h3YM_jzvdoNyN^=I*m)gcm(**SbQxG1$NW zutfuq;805bKt=TM)^#0jzw7uI9D`S&MSBTW@f$ecDEIrwmnvTV8@>d6QoUVM2fn>f zWmescP(=SRqzsU9{Aq2&A9xbA&{DXV7d>7pBg)#~Q@*3oIaQSivi9ZgcU~JClQg)V ztb9i_R9_u1ZMb~Y0q&V@+ckz3O-r6g_mlfkRdONQI52SaaIKNxk#{IX_&x z?MrJ&<}{n~85zNeo9@o<`q^<)|5MTmDe<7|^k{!ycXX2wlz}gFxK>HiJrxcPWulP0}|mGf=&bXn&uWw8LBUv}NLLpTeoMlj7p zu*+`fIk=}@sH6A|I(-(=a}SY*UUN5@zsy%1h(5(Wwgn_Jn=_HBP4_B$uKZ;KUwkDt zhisi-jWH*6pVU%2zF+n!(cgFr!s<7dj+7=d)ue~3{mtg=`=C2*eIn!G)_BoEvJrI- z47NB?VBp|_Cot~INVE3PDRRl~dIE-J|Fzc;6iG zKv2xd3DET?cR@Muz3kx|F< zt+saIdnjn!_`Kd-HHx8hJGAQjc;k?rEE!8 zth`MxS=t~-YY)i1Z9i@E3sWAqKAkt+qTu$MwvwWIWkg!!@v7{FwHl-DI-F#bGYOX6 zzqddg@Q%0nZlN$IG@glQ@<4DU;KP9=)7*xQ`+R1ao2GL&ouapGK|h+~05xLk;yG+G zPOi|#Up#BfS(RDvYM^OjsD`{dfwfJq1h})b-73rr8yJxgf#AZ&@=72HKq?R>^0|Um zm@V4lG6k{}EH!I$$}6lB*$XN|7WI}GLCbyjn5-rGIF;8CDZj(^owS7WX0oK#CYXPz zcQS3}+_AB-Eq!4Sp;Q$Cyv5iD4xPK}r($N$UVC60ssGEtBc**s?Kt z4~p;oU_Yo-HWWxGVQNU)i+e`Xq96gC3(kV zO}h(vz6-v-h-Bh59o-2omks~jpRl(5wo(_}l@l|=eHV|2Bmw)wqu~T9wi|+-f=Wuc z3vf=of1Lapw~EA|1b5L1m-ll=#g9lT9NL!_N$$3xYeUm_~ol$3~aR;Q#GXk{X@f-HQS|3`}-%l=ONiJ z)tV85#>GWF5X|ZJ&&good~)pm=!A*0TxMiNKRJ0RSJOQXLL?)15tYKz{geNEB#oJd zs^tiXf&EvI7^yi+c2j?dD(uG0FutccXa0 zR@@_he|F4LZvKb$uCH82TFZkm0_rVbYJ7poiXysQ%f#oNZY4I3&o%pac7@w-Jp_Gg zwko5OHBcLMpE;4WVYevmvsV^jKb><%B5^%FF21NEq6n=^-xq^v`;l~id6aLbsZ30_ z(Q~~mt_>9o=X=jn%E1uHUi4W{U8|?#BT5igC2{nyGJpd7jHuVfCq+OH8L5o(iA|T> zQ(sU97Ez$9fLT(4q3PObP%p57ukE>yP2b2KoO5$6nDI1Ydpfaoo3Dw)=-(_(w7R{z zw;XOh2doO19wO$HE%u$>DU>gXIUHvzYWuZ3X8j*6#tWPreN2yGv9A^$4~iNS?;_LH zo!Na9S4&*|qx$Wc1%Hvp9v_EMzfo_5z2hp;lGX7m=J}xSFeT=%=X~ihp8kn*$)Z27 zuVMs-dM5^6W{5eyO7K>ZdFA=~;{uCO^IbOk{RfK9wlMOS4cF?DLjI?I6yD-j?#CTG6@&?y|XKjyA z!**JJP9v5OW|!55mPCk^dB$fFRK30v%D!4<6reP4iW%>@-f3+J^QYAk4|!5l&hHv3 zyPE}1U0+$~r8Lj&m^!@(8U0sk9Xj}a^a#iRyr5kW5 z#4vSdg0z2{;_A81G*5J+4dkl5&_a(~J;~?C(_^Hyn=Geo z)^rkH!hofeeTCURFz5I>Es2w12JJeP^+#zdfpRN+SoEj+N!Rj1Sn(|s#LBBUwGwW> zyzR#(D(if%?F2&Uu{ zLO@DD8l<~RMMb)#q@)!P*dUFBbZwCC?(U8=x88U^@B2O9`QwbU#!!Z`H|%w-E9RWP zm@h>oE11K67~sm6X^1KYaRf;fw;9ymaLRv7-WDs=PZqb@kYLmoW#(FoT_0KVF>5+R zWl~U6`##@A?vWlIXMWav;s*~H^nZOfSB_M8OIg1cDSCZTC`8=+u@wi)!p2+@!Ss!P z?&|j!E`pRVy~3V|Rox+`ZFcgXcXtnc0vhUj$K*I(j#2{mF}7&KP3PD6d7Gv77+_TB zZGFNyJZuVJFrApdE}EWaUThk!yGT|xA!k3m3&;NQVsO3%BagLA8=mPyipzKS(TE45 zq?hMJIIovpmiX{<#Kx*=8->`T-9zddgfXY*aB~PuT;3I-!kTvtZd$)`_f8|(tKdPK zocnc{I6)htzYkxv*7JFkzYpIW;FilZL1JNRateisQ`)c47bX6Nu{#w-4TK#i*4Dfj zLdxA=AqdcpkI}{Q{4NDNVCT8&UEd#sM3T%=WAvln(&rjj=Cr)s?pias%)6%-KB<_o zW9boHctRla`CgNsUg+dAQ^xaLr$8~Psyt~EqbNGlyI_8Yg}hOD5rt>vLR1OhfauDL zBi}BDob9D4@J&Q9|Hb*9hRZD6gR`jFVu!OE^auZ3p{Iw%^FyL@d|Gt8Dtc2>sOtD= z1v&=tJx-&3z#4IA!z>DSnLrFk1>v2C$i)Dondo&mwa&va^xv@~Y`t$j^>bGL<#)|~ zxuk;?Z3c{z58}ziF3-hObjb6nb{H0GZ@S;MOI>eb6eH}O{ z#a-7l#b~SKcvqPOAH9kUKXAaB)MH`C4!Td(tbbK8o%+QKe&uhm5t7{csG&w(Np8Qf z_4#l4T2#as7QHb)EI*N8e7ZpU@~#z&Bo#IkJ>Gy~?$0G>{u^%Hintt7wWT0DI5DPG zQ&nX|cM8X1an1aBL0HvT^q2bCY79b$=hd#Hq>9b@>bQUB(oq7>bJzylxzNN!a1CnG zt++)74Ok+xe~TJUf7i@|-^#D!wEEcx(&Xd(J~i6EA)Y@g>JRR_6=7{69g?W+i)>t! z#T&7cQa*!zegIVB4#4e zYo~3V5hcnKz$!|uF+t$_BuV4f&e{lpaD9J!PDWRl0t}WIY$4Zpd(M+-(Hjd;-NMe8 zOn?A`BYFc#cslkbb1_jluWEtmSSoa{ZOVwdN6VP#TCxqeE1?0Op?24!+efxg0r&Y`YHFy!^pV@M zhs+#|c#MqZp!mB-Pp{RJc@11Ui|jh_$F;G0OZ9XV20A;peM_xw4G+Iq>@7NrmfjUo z>A|42TJgkiD2;w;z&1%DME@2pE{Z71Hj>>W25w5C~YZx#7Jf?+Pdis;`9v% zl!xyK{}H+}7#Cc{MY6F&A{m{PDs$Jm)eLlwnZ*3wA67rfBrRXU3`hdW3KZ8G>Mbr% z`=PM((o)~-HVd7u%hyS5E`xVtAA&W;ygUw>P;+&4eN$iaM6kN1Mky~>S@MBN#7|@l zPsH9v0K~{GdR(EXQFLg#adYn+pI)F5U;~p;Na{CC&kq2n6{2W=$kh#Kvuha z=@Ju&y)l_R?e}(YEq=D1$sM78pS-e$YztF{75qQ{a6$W!G4+{ zTu;HM`}=vI${uX72QI)Ki|2e5Pxw=+5^(Md}l?LmOp;WD52LF51x0zFnjJ z&NR)LdaOj~@XE~2Lk)z=iLo(3Gc$%YOD_s4ilB%<;k7Ysl#)z2@3twBVfwiG7&dw+ z?z04skKgq6#!#SV1iHvzsT$xwT3SfG<<^$kswxkN4O4VHk>}1m&@`yU$Tu7C9de7V z&ppkDK15p*l-Ok(bzM>X_FS+w6a4jc=uQG?GaLE&*tKtJJ7Bntt1IA5~z z8nc3lr75WeMN>a1>F1Ub%zAq4E-v6CtN$orqs)oLU}*!kcoQH0EwuWChHVrS6u*iURQEUM1HudN zqBzVmc8Hz|Pb!0Y-dAKMubB8HH`6`X_#AC>1Q2EV2JEQ~kzHJ_;eJD&{uuVleI-#a z1twNz0zhIg(9z*5Wi&Z8Rg+CCI=-^fTDIugyuT#|RZG7X>Bg}tkt7NZDo)O~u6+k6 z-cn(qLng5ujvpc09aCpQde!gb_wT<4o<(mS?O8H14XC9eL7s=&2fK0-5)vdn$WR!M zys%pw6qJ-C4hoWOjuHr;8pJO~ju#jglTytM`qn8;`idjl<%qDxf+(n{WI+=O4AStO zAnWkd)Kt~FHH5#^=@Z~`gr7u_EqDXQ>b8IYcxO;jafgA0R=oMh>+go4kHe8e;*THe z+fSRp96$FeD~k+;5&&N9M|5)THVt#6Y@%ofLdalyW-?GCuS`$+bO4{D!@F~ZkiJ6_C?u(M5Yj3o4W1bR1-lXtfKCw4f6R8qV?&^_*dJQiZ=3FQDL_~A zr1F7jzc0vka|}0vK2zbKQ<|H{rIic45n_sJQE;D`oYX8B@bd9Xzke3gkb%-9B{#8N zY`m*jgEC@ePhEH+XHP6XAr%|Sq5*JQ<|wHL=G|{H0p$+_mnqba=GYVm{!|dIsZIaG z4}qcIdH4Q3t8P6GG?YX2Q%#XR@CA0yO&o%jz$Xk#g4i4N8H&UI2en+NJ`1V;=MFbu)ex`5V5*AA$ekFq_EwP(n7T7 zv>(p95m&d{b9V>9#|Nc9Wm2bA%Y;O2KObI7^%WP-o#DMr&W>}U1O{nW)lV80R$Lkv z?6;Y^A;2@W;;aj+mE{`#j(D98^LuxGfd=Th56n70#)rRnU1LR|tQ=EbF3_XqN&Ldt0JPWETB&Z_wot+2;S`K5k+%xa;@+Q>YDF6l^KKJGoUOG~U zzos4WCeJY`>6bs#|M_&!DHzD*z_mizN`aK5x#Ps~jccEZ!d9-^QDoi8(G4J66{XP` zYv8sX&M>=0ZCr(2t6+FtDLmt2hwVM;n3y>>sged}cF-C-rSId%gic7t)x!?s!sdD( zj5-?{Xs#7)UTN0vX-1-*pk$F9?i>z*k@7au%#-^4; zQvG8HtmgD!1ms_s0T+kdZmH2C(xCEzJ?h^!Wtf7% zHwEH}FJJJ(tz={vGYbzNm-7CIfOfRtrams`UdD7}Deo*+P@i~__J`}&n5m-L_Cyfb zUCJypIR`E#%)nNW;hffos)d~=iY|eA4rFe@?s_>P{GMXlu_id2h-_b>_ywsdAP z796y_5!=`1_hnv`Q{pI=SH@(ua&&vwpVuBKyNl_ncIkJrC(9xDZMV9buwbUMOxET~ zUg1YSb+zjDBRvK^HZL!Kz1{2}V7D=Cr8D;aI1sl$I2WKKGohu2YGu*f$!YEf#lV*L zhUl7$tFOAYx;<;;A?U1uN~S@!RR((wgiRsg?uXdlyXGZybt$&3c${-t5OI&fH$~xq zymT2OepPdfxo$AS#JX_T!tdY-()IY*&5We3j+^~7A)K7NPG*M#VF&bJR5Fpt;#yb- zc)=-7yXCd2><959~AO={S8%1`E(mP#)uR?&g}geT9?b@wF=R&peImHmY|o4>EVM{k-m1w2r*Y%X}QC*7qgh zOU=t=0)f}gqTk<+lKK{JjPNqMosr?)l@Z-BmT37w+S6Rn_fS*`Dd5Iye{D(dGXksa zBnYhaZcHn=Uu>pe91Vw8b+@T%1h?sx4Ll?(``OXeF(K+}R%c*W zg9AZuI(8@zB$p_Du7Av2-8Cz@Z+>Sq{-&IH>CKAXH71oEMz%CNJD3&Fs6F}GZE6ED zR&dYF$&u?XSb?T?9}x|Xm1y zIG5MXD~=z4oriXhfxj6f;OO;@{Z;d9v_KlV!@|;^{kAyQ#ge<4@|RXU=X*t;XY9px z#2y1wSaued1x&x)Gr933F^Ph(#&$YZY+2J{pjKFnGN|od=y8w#%${df3JaAJub-&Y z=+uE(g8M)%MRiSZU}rFf(qLs%Yk)zv*6jD}UW%K+gzZz6N<~NG&j_KX;0+>Kg_WF) zFUm8;zWdazCy;CvV>{wteQmwps)}=0lBdW{$e9<2ZYau^*!i=Vq`dX!*7{wJfw@#& zXXE}36**d@^Y-Y{l9XJq@k1IK#2t{Af%Td-O)F!)!O%V%s0YzB$OJB2FFdC)vcdSu zM%P!m%7#Ubkh{tm;(ns^?C0N5eLU0z_NlZJbikdvN>Tsp=#GF}mA>^c5k$*&Xu(7& z&qBM3zRN^Bpe2bC(_uI`U;-P#b*aH#+6xPn3X+Zn7`3X+W#2BemyY7S*qgESEm`0; zJD$-Eo9SJZBCYjH^oxwYpbko8bO~il)3F0Q^NH#5;fj`mBR`1^R>b)N-A?*~o*Q(2 z@v@TKtQto|93yrl90Ge@xrJ6L7rQsQdTI-d(&p*9-X{k8LvS%Ru8uhCcETXy#~7$xV=> zLuG;)c$E~Ova0lW56%pJQuA!NmzfmwQAx_>h6ZGtS^(*fqKT{>7-xBf9$+IwC7K4N zQfF4m>fu!xt*z{Fi{3rkZAmm2*P}vsVcWL_5u7GtHMWyE@!1V@Fp$)8S~Uu{i|lw| zU{`$Ic>RXi3RZQStm}uhd)h6X91+I8R%bq%YE54aQ3+96vma)J{;|X?uOsr6I%?Yv zF9~EW4){Ox?p@uQaLGe_N#KnWSrI@sKOhpe(RLuKGQn9&&1lL}R4mFcnJ!zqHln23 zos}i6?MSK|!ebpt9s_IcC{!Cw>>W* z5s}ULt^f#2ldWgWpg^$N(M&+h{Y+l7$#B~|w>Os~P}1fagaRNzjZe#TFRw&vKHR(Lw!21DY`=27B4_GJLyNWl3Jwtcf!6NjZ^Z!W z_DrK=*1I7zjP5PnECT&%M;Z*$`BpE7s3kvX5b)aQ4HN}u`HqAPX=H10+#nWP(7Awj z5O`DPorkLOgF0oUY9-?i#F&_*5AuDni5+QInYIeoK;P(4@HBmz47;5!4*HmI0V@*v zARk*kgO7Tjg*yhCC#e2gh>I>Mi#?`1ab1ffOa&J$l`aNXF+!mAKo_R+s!qc==D8RS zkY(_o7^GeLC&wnkv75zBE|5LR2pk0Bz1YWuAcWu*7!;AgCSRV$z7^URd0wY}nzsR} ztCn0!pfab9D{I|eLJHDjV+V_yMZ6g@qvkLd*csjcp}^MJ(Qp+3#g@2ySK2tY<2yhB zN7IapKN*$JvqoO`ElGbrSH$QmHP&YHVvmc&&!gMq%?`(9%+y%58wsd7hWdpO5ItNlFNhS7;vxk?sJD7EVrdz@F z$e;#4hT3uY6i32>&1ZY16&09W#JGi@&cLZ}gdf*2##!VW;p{wfn}GML`?T;s#Kmo7hPGdp@3J_haASjjI$P>&z-MyoKTc&~9uQI)mk zp=>#jE1nml&r^##slmgFJh z`SXsoRAycaE?guDya@K$hclT+a~(~bwzsWLT)GW-&idL9vb_~qcRnblO zr=mNbBC}iZ`7?yC3Tx=qPOA6C=Bm$0j;KD?M-25o6PAW(ZDML_s{4NdPPUE#oZM;C z*UEvU;_Vw@ltq2;^kjSUfm;--59nT&f6NFT9;&gD5wn#_ndMF59oK3(ty&KWO8!rVozeio4+pF!SR^%$@3m_q4<;{;8BgYL(V#8h;2 zgWo20mFrTX)q&th%$?-(v-q>As{MD<1^;~0A>i1n_Ltd;4dgGY%?{YLlrYyO5at!t z9NqG}>N?O(X*y7x`1{qZ>hS0bewd|KnoYH)Bi`9Z*|a=+PS?RB6yQJztG$(TIVFgVrbcAS>UTUU^1Qi63rGY*2_>iEPQ+cE zBd@I-&WUJ@85)!QvYVjF9Z$(&Ap+&C85t@Gnp(Va?MkQn?)-;8_sP?rkGfAY!-H-T zxGn2=^MUmz`#DLx({DT038H*+W82=9nJxtXef10j3iY0dQ19W^kYtlwreR>1c3=6? z(3Hh5Bl}AbQhl)SV1>dw8XSj@P{Dw&ZvrsFVLI@J2t){5uF+h$3aQwAqzaYi#z;!z zMLU4UphSF+wxdJtH2Rf0;Y6h*3&yfjJ1}C^KIPK)mHV^4{q&Ogsta(tHw>!zCj9zG|#OpB60EYU0t& zP7}c-QkEztEvpD7tv5zlsfmzH$MAGSf~bZ+YW+@D={7G&W&<5J+zp_xytwUThwb!h zW6*KH7P$uK{ABc+-2R=i5v4~(Rn?i=Jea23;)1X**L{eVg;!g_oPPWmgSP%J{=W5T zt{|P8yZF5m7b~X}PGmII?!tQ(MdCI;Myw$DJadgO#B8Zz_*tnsYN{6&1M-t5zwvuV zGw|5IOU+XU4rmWyLcSdM{h(m}6?}L7JzI;~3YM14UzpLQ{Yol#Gp6H?|KF4JUoIb7 zGv|F)PQR?*hkSD$<@9G2l4fE8CGAt|r|< zMX%O>3Xs=F>RgD{u~yWz{*=Z7*zV-BJ}4iHKym)U^`cFyT7g4zs2hS-@GIhztWrR{ zN-i!`SF+UXk3xNk+1_IEyWqJCxI;~o1lK1y%@nF0BA(t3i(VHAoJ3C240r2&_NGe= z8JbROi$Sb)ix#h{#w?__y_GzLE~Ajj_@wWh%8*SMJk=F`fO17Y)WHl4vfS*w(ef#O zwBof(+0n8wB*@n)I&x1Jk<~1*6_hj@TB07Wv?xJ4h}2#X9V&|y{qTjNG#V5< z0Pz9`#*2}|j^7kq2b)7yKsUzgB1hJ?lX}$W0|0&xM$s5aaWP2`c7zs(W3)`h$?15Tm7f^^ zJ_(jp=5%4t|F4J9b|ZBOk&n@4m(EpR5o#OQu8WiY99+nE`KH!6)&S4Y{mV;wc7faP z9SrMo8c=HH&dI}rp8It~4!bl0m?d2b06Xq&ZeT)lXLdy|H6~!?$jtQeh5+UIyE5J3 zLOk_sTl`glqfHWXsZX;kWH_(elB#uCb{6gSGGO{SnEj*$2GK@!$ceUrD5OpX^2!d% zKlWvwx+eVJPSfpe4n_{#u9xi^ z9j#lsz`E%&o1#~};}@quYv^`Yy0Lsh5QWzERfhwmNwPm$;tyX3s=!TB(#qq(XzTlb zH({$gfBY^~LDYTrq2<~gT!v3|potCm1iiZyx`v_Csc{y;6LAaiyky{U%;u{eivk*6 zk3=Sb6Z3%C9+7*|5yP?7f%>3b)5y#2?_6lm2#wlRjN7z7X?+sA6$Jk>wL@;y?j-gc zP*ycBKWHp`c^ZLp38DNJf;JR^-+%^GZ}9LMi7X!tNKApIY9-AR(5#IuF_W5!sXkdv z7|94Z4$#7Hkl<9c-BDt)sn1TEYk$I!Y8Zlx2Ku$p(4JVGjuZjIffN!@$Xtf-0Y$zU zc5)`So@rrbcz(LiAaD5nwl+y%IM5L2vP2^TYdSQPj2RFj{B-mWeqIyB#^z|6uq6O2 zaqIpYBGj?>=FOQZV)7YA5F*I)u`i@Iu5nviTer?F8?h-$paP_S0teK2L~lCsJ04=# zG)-sbUZDPu@CbGCc-Ers`f3=sfp8`4ckuh*F=}p`m!sXd(e}z%%#ZT+XTdz&RP+CY zoo@zNtGT)HL&D6N>Jk0VzCez56U9)PES=$$9y#xcfunH5!^9K_x52c~6ZiRkFV_VD zfpR13ztArTRUV?;Jc>T!+?tesW^>~el!3sAZov?64X_SF19gP;(w7A=MPqAr)CU$= zb#1Lqo)clZTBjW}`Tge#vW`KSepm@wa}po&E{G9xg20TNpW*dx;W@CUP3u2*(X%~8 ziYI(;{<)+L9U!zs?&Sw=nI-yk?&S;onI(2~ckXC0EP=;0ZE@9)@P$l*rXl;`rWy}V ztEyhrBCW-53QMpe3)kMO2GFf6A3)pCh+N!?)1wG>ZuQ^&$j_TEbhn@y83AGZV+_HZ z?qdHOOS0)m?f#arUv5_mq`|>gL!KRSMUwKvi`qeLT|di^@GK%tUM?N z`tppaJIW&)^G#KiLEj7Q4QoyK*W*1rgf3rt`LOb}3)ub<0fZa@bqLh&0*{RJZRFq2 zL%t;zbDsNPle7Xvy#hwySCWeO3cy>86{jyH8+4JOqTOM?cy4kO052F-?3vO47RQ+(!b;cDeU__7IdX9il^HgDGZm#A_dY#1py}bp@$D*Td9&vGTo5*r@$AevM z+FVOe+=s7&^c_BOrHNf^**8U6wET9ta67w_vlqn@N}yyFr+-{AoWTbT0(55s#}1D& z4+`Bje-pNv|7AAGX>>|_?$BljUjoa~(G5oaY50ROsT35+_l1wzcas#?KOle+_V%XC1hg#hZU~Bud>vOV0C8y6r}F&JKIjfW@1S^& zg?8`YV&S=$n0P#ACdtC>o+ywPrN+6|L#ELB9RehvV}T-x$)PP-tcB64 zEL)il;Irqb%@s%)UWiYhKi?MBa6T&|u%`hdbrwZl>rHx$l1?lj4;=OzPOK)b7u+Nu z&@=fv8w`|V&T*%65<`FM+jn&?^4KqwF$9tdiPDoX=zwBZY`X-WE}T+?90tIEdT~-7j^dg{9v<^Fe>w`WWX_|q zZY2c^8c?uacuq@6$qt?w9*c{vXp0Ta)!=>1RfJVmCiW&2V#11%k@9(SFh~Y+mq>0( z3+SAZOl824t6bZC*^T!{>FU;2x)H5a*@pm`(d3h|N^N zi(g6ap`o2@N(c)+Be3OzpZgg&1-#p{=isDCeZun!2pn~9Q#EuSmIDgk9!=}%H=cZQ z9QR)LlyS|~G|%3q^2^Wkk;~1qX?!B?vH`MBorxy$1>Zq?jtCL3z*G=cG-y0_ zW(HNYTW>v&1e|wBNEJd)EDx`TJa&qCDE|84C3=d7NfKh{=;*TOT9t3IwN>o*ii#C8 z(igPxXzyoUKmRf1^OsBQNjn&K;?F<2|N5cs*f6GvfZKn0$hjj&&-n1@3@~#rkKNFt z8%*!0sRDJODqYgI>$R;^MXC19OXwRdmThgKHNt z7N?4bkLH|*u6O4Tm24%rmkSc}*+pEW9;%|hdx2%D%U!;}jKqvAk(TE){63b%kh1Ci zDj$A8#b3XwDyAYce5QGK-x_?0^*i!eru32ngRPc>>8!2&?2%rPr*oZ09>Gfo3*1sAkm~eW7At;OZ+O&){!O z15S=O;eAaF4PLk{s@P=Vnj0_MDF`2jwI0o-zKcdS#H$v(800mf=uzwNT3nRGWq4jO z*HLqDZnY`PM+LENFKH|Fz{kwrGZl|kk?t7yqrH`J^-hXlgC=9oCub5d3)Ir zo33us+Cp#*AQR6AygM&!2@wWDo3bYPSe>f(wzWpZ_DfPnfls@$G^*aL%sgt~jbwAa z@b29^o2CAa{(RLQpmEzqvf8u5n4TRiNG{KIsgZl*Av8Putsw8)={Eh0J|wkZMOSAm z^n)2;)wcrQpM8Dj(LzG78yX}~vdCJ$Pfvxh1n8m-1~cT&v8_mckHe-eC_|=N_v9K{ zujy3vPi63^i67OAzj;K6J?9iC<)u>F(qw->$aFyoVJ5~hBTc}OA~o~gA(p?{Tk62a z=Z)&GcrSsZ72Pf5IQA%>k~A5NeT1hcwMt}U?fB!diG?T9(*B6u;9{HQ3l*=ckBIr4 z@Lw6<O8MhH*p~r z)($SWan3t;uA|It1K4P}+{kNIGw@)&*}=?ET-KREE_K@xM9zWa)?dBEKF55-%uVB% zDE&lPaQmxC)G^SzIBo8E(* z5fb21O?NBXTzgWD212Dw^Bsu+=)r^!m;&Bd)BN;FB3S@oqLESQp&fbpzm@-pvrDeXQrvllASh5NpDaa zotLB%%~S_;!pJ7>iGu*0=Gi;d6M`FNck$Vrh;{Z0Xuq1)J&Y=6^iX=jjX_uw@oNH~ zHRsHe*<#U~BdNLqq5(R)pBWw$6uta%N8K}YIrm#FpLd+WXGFpjny4RX-537kCktVY z>X|{+JM?|!zY=GO$P7mmpcca>KG)@AY1$8tPfAW(rLj^`9D(4b`REa~=pgr}x7#G* zG6D_2A?9@6rV}{+ej_Br>-E|9EaTn3z@y4yb5;w;Z~BX6?J>NLZ_auhG&FLboP84> z&T&`l@LjoYF^V;3>}b=G;?TKqn~%OFg|7nfF%fT3CMjQBf=kqH`<;8IJ_g1e4vv6C zG0eV?1_lN}R)_aUV`CvezDaz`H`NnQMJ1A0!0aILJ?sbd4O}7?fqf}zrzu97bTT!! z``#9HO4-KqH8K&AXfEqzZgI5v&Up2Kb6|vL(v<%5mq>=d$Eztf5*jJaxV~uy?)`J$ z(ty{OWgjp_F<;yZ?c5(T-zacZQ@yS;J|r|tNaDrC`Kn@Hmf~7r05cy$;Ny%DPiAb< zU#U{JuD>~Z=^8sW>5#{3dx84Zx9=(aFf7yjG4-uk6HM2$g1)~b^n%8*#fF|aI1d8+ z<6m>3Nr%RMWOP)olp?UJySM+{n}Vs$w~tuDBujRXtrJPBaxYH@trJ0w@WNZ?ww@|C>BQ)X*@ zTt+)~%#@{-6;-jyRkZo1o-g>as57Nhb#m_`#-85CjlT3n!%0u)>qEkG#5ygDJr0hI z8>NSH+CoQq7E3={T(wufgb1~-#BJ2lGOjh!%15jn+~FOlwLD%qQDt$kxY&#=BHl~< zezYN}o*nf45$4a5A@Py@8hQ?5&iCi3o5%ECh-p3{bnvK=dqwjFtK}O`kns6pbZV~B zF*R$nGl@*8^jfv5ts9NTtsAu*#uA8EViQO;Jgt|ssNAvMGpapN-kdmtjBUyNdXkHhjJa@4u;!bNJbwQCzL-Dp zc#nqrI5?P5P)+M@Cv4lDEuqTa< zJ{pcFLZ%$;*{b7jX<`yin&?1lfuM7R+xT^7m(+TH3_P;=?nT0y%5rl12Is3aorzU0 z#3v4Zb;-4_d%-<{arMC*{035yGgrtsgT`788A!#jzS>2{#5m4-;e9af2m^}b>f%O# zkSvxA-`*KGO8W9mS!MV(7_F>Lu^mDwIeR77D?Q*~!otO}1bb~9%bh~6-ThsJ`3WhM zIElQElcqXEjIKD(tW6m?? z^yiWNeynsi&Y-@z8NUDGHax%sGGgh8AY3o~7Lo)Yj@ zl`KW9_k4di6}z=P%gm6PQ$9W_8Rc&8S7_2KHbm|@)eSb5|F>F4sOWgIJY7<_SMU*zE<%MyvVHhTtT=+`GxAw zDNFq4$dz+J9l6nPwoZ%`{Zf9Gxw8^!{NE2-wR^u*=AQKAo8cIQOu9JFr$bE2%5Kh{ z8M#lrW>s_f-aU(E94WmbE-v)QXkJFc%O+1KtDa7d*#&Lu21a2Y zczyPv@Mr9>OZaV@(S&>wPN7U8|j$Lnh}9l zM+ZArhYnXD6Hzb8pO{#Bk}5sp_CSjzQe1rYp{(p3)qInjuu~&l@vh==VT1HA#CJcL z?BgFceT=0?$n>XH0?2ksVoH@7(+;#3cJrzp+STk|*qH z=G3=mxU=3-h-(akWyFrO*b?Yxh`xKwzCXt)G#_MJ!5%Dq>s3~y^7y4K>o*y97oWz; zPo`dlD$s2}o>_qvD}i#5X_ zKT|Lo$88Rxg)^3pL=p{XAsYCXvGjSxsr8K4Leq?c{k1GH5(GWRm#q9v?|e0JCzngd z!NpylUtnCD9>{vCjKq`_7S7a%N5?S|`;*LA5rS1?QdeD;v*!3e=c0*+olofP7J2Q> zw_FdlSGzlvxGcvxIX21QxRFeeGT|M_Hy>*$(5SQuJq|pLW|FuI$AxG5w~WzdJAZBK zcU*NpB=t#tCF)1WI{Kc-ud|@1hxAR0`3j zm(i1w<1XC89%#GDf{~N5nbvaMQ=-PB0$1Oqo>K3Ge?bvdxm+_cJbJIkx0Io)q%^v7t!n>T;8Y zrVgdo{BtE;QMXL69x3CChR87@BFw@0K)H#Pm37y)K^qOlAS0OvBS}IQ*4ClO_JIM< zhzMNND`6~^o3cKdcUbxosP9Kq>>iNnjKA8BP`_F~nD>F;2?ha&rLUh)Z?qg*ndP-| z=Uc8kwO9j|XjLnOA|^vNR=!I+^rJgRTtMc!L%9@HuuwJnYp0!~{d!LR+Jg4LmO+Od z*&S?w!=spb$v!)V%g?RyQp??MPm<`I6kWweee@(SuDL+O@r{~>>zA@^Y|^AKyV-LY z(f4c83#Y}Pbpv>e)DA1x6r$pH^tqOBSv`|3WOH(xtG^qVB$u!wjT=ECZsAZEqnD0Xu|56!it8f)3k zS7F26y0JG}joqCmgz`Y1X7#?AK(^S$gch^OqzpY|>WD0H3k!zX9m*1ifsl)hv7c#+ z`mwW#M^q`5vQKf%-{HrzQ0_bNSR%ELoV&itdq$ZPBG<5K4)Z(h44*@IG~a_sNlWX| z+$s%e za`&`RP1c5sn1nvGBFe(&>H<_(p3;$HXs_^g4`#%k@i-&Fr&V(0!!wNko?Y=A#}N66 zOgWvz7S$#^Del)<5I;SL6*abFRdd8#)WF02SvO7$uxMOZ7t%L^qtT$CKtWB$%h+%^ z+p@z+A9Ri8LH*A%21VN^Sv8R*|r`*u241Xm{Fv{XLyB%G^=FA@H4LuDCe}AnPQRv4( z)&Fg+C$nsAx+288vh7KGCX4#Y)GziIl+-Gl*d7XB$t^!3WN7c!Mr1GUX!I2sdm`p# zk~Q-GB%}Xl^wNbB!xnNH*mQ;emHEiH?{$mk9( zUamc@sC*&w<+^CcT$BA%WFaUmQ5fWlA3j_fotlzrCH=wWy8pn(O-+*?xY?u4a~(;k zseRv11qeX`;WuF%;Huc_8G88Ag9+AL-84N>JjLGJ{J7|FAFq}43_i!{XA2St`ty3L zu8pm&WH>yKC7(K4d&oFAI7)w%I+`}}G{m--%~evX%=*V~g|_U@?c7R3*1udn#>YZGBz;u+R%EdGaI~e}6XkOD^;yAWq;| zn*J#(ixEm{yemf1kAtIhR){O>e+fCR3AC=RZDKl%)ik(l*H9N06?K%a+>YA*`+nQ` zw{Jyn5uj))i#Wt4RC}X>I+n>`x;P5S8<@pEV{x9bG>wd^GAC*IpemNDJ;m}OcD)o) ztX5g6AM3g=z!@3sus$co>B8C9TP>>j^fRJf>+tBT_!AyOy0FKe|0z-Yo)yWvzo&?j zvx&J=N-pAyT5g=0*8dEzlvGXRWs(Se(&(LA>HF^TXM!Xib%#NXH|PRby7|)>ZkKs4QcU8p^!L8y z)?4_uloQL&by1uyY}BVw_Rd0u+tzt?c85G1gg%X1$9&d)BH=c9b=^UyRhVyOzvJtx zl-zkXziVr1c?>q@NI8hEz$v}e>ZDqNeaduV0Q=Uh=7#T`Mxm3ZilL%U_fUu=oMx1{ zTyKZ@vhLFI`0QORV^utxZM0=|6O#(0jCHIb8VS~^nUeVKWIK`$uYM*x0&0}$;NQI= z?ZZE_OJN>Lr{|&;a_xqUP=%0;3#ja(XV}3D!nqDA_E<5p$mY-JLJd65VbH)n1Y#y; zv(slyt|07%GW^FXy6?K*Cw8r9&S}`i*c;I(YGrlvaR}DKa2J6e~A12v;O}6 z&;MU9!H}_GH*NPlSUKX6m6bxZjfBhH8$j{Zp0%C0ox+1muj&WJW+u`b5n+SwBNVaD z)4&kp!N}#R?)`U&BdV}tP$HF z&z9uj!pO^>ZNdpEj2jIVC1exv5&>&%5&VUO=}+>AE6;|IPP~q%_hZB8_8k7fb0e-T zV0g&a7Bz(9;^6BN&E@(DIvePO`T>bao25$+IoJmW2j;7hu;ZW5z3nmvM!a*uaIMto zKqh%Vb4tiv$m4@TG#=F0r+N{0>5d)mKt9N+GkoqD*rB0{M;={8akELv!oDbT@K1rj2*gUkg zJQ@k{5ma``h}bhHHW*WLb!HUNpiFZaoCt(4LsK11C`glXo$HwC&fUb?N!8s$!#+ha-MSa)I6|+#FQ)M;x6ZcPu2Qhl!O0;g zG_+xDf`;9dnERu!G?M0xM>G2r>g}jY&h|drufFdRtn-~;pEx-YUd2PEf_ge-7>-tp zF_-oZ8EqD>U-12?{l*Ue-lrV(QaU3t&QM@-Pc**F!CrE%XVnhO@WPlA>zMT?FYSN# z`B~Nb!R{I{pFi`_z-y%^P9MLM;bV>si8ASL=0(Jy&)nb+Agzn|CG>%@kEN`9X(V6I z>}?&U=I$)Sw|xF%t^-(Z@muykp0``JeHn-1yf;5HY5oB)dC18Xfj=4{SwrT*Vcu7t z(Wim1>RJIfh1G3P80>kjyz=p(l}1YI>gf?Wq4^}QmbMn7-i5m4^58z_Ry14$kWh+$ zs)+zH#=UIi-duY;Fb{I8oo~d#^XS7__czhHxFF8`0&O^`T8x0`h4RY)%R%QS0^>v+ z)r(}WiUe=1@rg2xE#Il`ryxFB<$z*pfp#Z}koe2N8{igFj_Gjjtv36`aji3wq%}*; zuXjJ1%wg*u>=d!E`gtCQj{O+Fgn6yPgdKZ0jjU<~U(3PF!j#R|%N{e{*oIZsk;#oR{9TN> zi_hhBkMVeh02PifmU2e6mhGP7;IQA{A<_MhO+5Zj!@2BcN`r1wQ zX@2Gu6VelwzpEgd zD;ytw9N29v*^l6-XZadqiVk(WyO3(nvT&rbc=7YqMAAh;k2k`&5@PD;csHZ;WpKe@vk2-rbA|Ew(YW z9qs2olY809-;7Se>I|L1PS6<(Q}InobCtgL7hX#ThCT{@LNSJ=M}{lMVuen2<`W@% z(_T7E>Wdph$DJ>u}A2<&#vFv9n>gp~kDOE{P zXNlidPbAV#cvV^~HQSM%wKb;Ga3T8t;q5J;qF&p6VXzex6{SN#Km|m)!JtzC0i~q7 zrBgwW970NJi-a^oHz+VPNJtIcAl*`PuF>uD?Du`odA{$g^{sE#V#CH^82)kJ*Y&IG zoOz#Dfbb{coDNS1{F9bc4OVrZOry!ieZ;?K3)w%kkdv#u!{$J4>Nye<#}?@)k*)F) zx%M?c9tl}_5Ip+8Row+U?6aU#P|p4Mxvnh~{oNVgTO|deCCtnyI%VAbKt;f&edspK zK7o57;6e<)WpU9mLBMSI2j@2rPx{z&de>lSw*=?O(=ST=bq|8GVQ2m*JNA2#{-IPN2jQQMU}bmyA`V~RygAW6?A9*=5&(Qb&D2_Zk-d{V6JyDO>+AYd zq3$@*Z)i(rCu2Hv2K~$i@^;=JD4S6ikD2Z{ia|=|1C`-GeHxo*dGBxWdmPV*6CIU$ z5^K8pp8%>zMr1l80+?@8%gXv34YV;Kc_$!N2H!kCPR9$jR)F31-zp9i*IdPBtG??s*v5HYwkekP`d zNoV~um1&0-b8!o0a~tmAeQrU_hC;u=YezCX(dmq*s;W(yxi$6h1|Df^e?-23KP3v_ zc45r+4c*nsh{iW=(m}|@Ru}?mdF{cC6dVq-%NFzNHX>a`q0}KAq0D|L zDI9wGE{n6aibpKz2znT*NQn(rq zdpr(DkiXEXdmOO~N05n0!O?X;f7)KWCY~mLFI3Cb11=jL@-+m_#9_dV>>W(0_Ytq$ zUL!(h5>gwD`oji-Pm;Lz-=6duUYovlwkJqUL*hbA8g9vxt7o=TXVm5f96b zQD2s5^N!&~!J%AiCHKIfdokeF-VSm?f^S@0DeboI46hS;45uOMLC=LXqsxyUA#QFh zUllLSCFB*4WZ#T!Aa=U+Nr{L>y(3heyRB>453wrpV^ZzCvOlG;%uLm3Q%R}TFU=#w z)KTooX2-z`W2p*S{IY}Q*=(4jiS?@RX#D=;IDx|Q;NR#=Z4{L0ME321k({=rlXGqDF;xavM z83c#Ek2KB7aLsWm`%%5Km#Es_ns|?^&;OlL`7iv7<(1@7#QFcyz9VN1wxRcxSoAa5 zA1wD#{2LegB{KNGU_4-p;UIdbuhA6)%L&YSdA?dxX4T~inOdwdapwr|7zAnK*YYG} z=ovZ^1X~I4=G4$R>f0{cvNk95(n4O{4^8$`iJU&wBrTmaearCiRUf(WoG;d;WG0U) zL?%y8>r->~{`0iH>ve_OfP>F=7TYc(mq}>vM{2#^6uL3R z9+67FdibaL{q?4MA6=4ubs|nMwh>}fqCu7emEkR6Ocv5lJ$=cX>3E4#GlA``@tA8z zU<@^z9njP3>nd4N-4O-@kLR=h z=(HJmsNYLjx!dt7M{-`Tr&y!n)R{{pHltHM$K2gadW@mLv1x5D0sbh<+{>$NI<8})xtW07%F6PG?tJ@EG`nS_?7wad z1-n0QNlvDK2>Jv_Z7Koz#2L?+f*QTC<0_8N)KZ(#wkjt32WPEjw~V`cdRn$_{5e1# zTy(!M!|4q6?f8ByvXu`ct?u>6uUH2BEaWSYs}OT{ z0eq3vW$v6oef=245sA~##WBJ`!bJ^tA3?BLd~MhyFgo~6l27>R@;pFmfv z3FUGa0Tl<4ihtg_bHUW|tV974bikDM`;;yG_|Zy;5R_M%qCd^5NfGYbTfuVfpCByVY)xe5hEk8 z-=sHG^rQCc+fB#aBkmws(1+6f|A*h%wb1iMF+FcP+mlKbixUEqxa9?Qn0Dpk^b|+A zss$mEF-}H0TUqiKUKZMlbb8@+K@gUX4Dvr0q3x~)A$IX*kV_7UjRlpv>~t=qfMGvY zD(J8FWbxu;Dzh-GzobDTtp(VB(m^HF;=R6W-RXVyHq%|bmC8X>&TkAnuB4+l_Zw80 z$>m+$;Kfn6Ls7=`P*#gdF*)@&{{C~;bhYR6)AvXcPuS>$VvccbXWLKQU}B0pU^w=I zp%^dOVxY;g50g*zsLhpjXEQsR>$xg~ZF_$AKv<0PZ}^pyw>Sd1WTwAmeG|U??njG3 zOuOy`qlfk|Q=j|wEX`6D2V5+gsa{}5wZeOr3O3y~#R_NylZ|J(G@O1_o2s@2&fP3(Sc?6B zTvsMGW{guAnJx2EkCuYW^_Qjfw{27InhM{|Ol)~VdZ0k+rWDyS5Y;mODPO6tT1iYe zqDx#qJ~J~UNNRP`$NmiGGmxHribVl6@-VPsGxu=n zi!Ukrz8qXw{=UAxST6unLqXpJQt5Wbxc%l5oMO<8!F6U3LWnIa)9pw3(AAF!ush0! zjP9%Pp;v;+05HU_wkBa#tDl@B_H3T^9#l_+`G~CRxdh$d?}>|x3xfDqcqpkkj0(Lb zPKbS!sObj8OkAuF{#-;^6Hw@almYJnzVlCqli&MRa!9`Xul4(`!J-gx8gWBE!DXOtoE$s(BbHAdaA% z{UW(*)%xzWjMMg5Z?>8*x^cec*ZqloqHxc32EMvFnzG|^a-6;OwAGmP?Kz053JMIw z@9tIrIW=kGu_c-9Y{!Wkpo=-VPr$XM&|C>)zP7v$r>MhAe?&gTuW`DjixNgX_K2?? z_x3^csg#lIZ!bJ_btTx}3Sd>n9tidCAe#4UR*K@aHH0{6AslzLeLPTL(1E!fynW>V zriAX=H28HKADums_i8W~#?E|EHMhHAO$`$;aBuMO`S@I{3zEGnek2rFW_oVjfI!Bu zN0PrZ{9*;6q+}~D;z3eHkj`N(PYx=87^|`Jr4Rb#D{D-1_EK_Kcz8>76~DO&_V&y% z_&-6Q+0_1jAkf3-Ik&q8nfT6FvQR511n2J~uA@xU)z#;LO*phWJQCQe6?xW=)D>nJtF7%p3)fH}90H0l}@`B)ZR!=$%-!6?3&@$imG zMC+{RD(m*hu4-ZXFKpCi`@*FQsGhojtSlMWj*#j6ptOyPQ#^Gx#=Pa%nulFj7S*37 z6>Md+WuuEpGK~iA2l87`%bS@A0C|IxOd*VlVNb(d+g{h*WBye35p$z1GODwtvq;3{ zf#$|lp#x(EC!hVwWYIR&NC_$nk-`O?&!_*1hHl+H<6!3Ji@b7q%!5K#jNm2}_t&Yj z_g%MmP=Qp9Yt_r=xHa#Rb@^%obeg4h%dsd~+!#YE{*5-Zax`FYskQ0KmND_Om1>-E zGD+9OD}i@M5DztsG4Gd~@wEpvw|Vjr__o&! z2vz-SmCpX<`Q9#Zb0O^U93S_Jv^y>j@veFE5NcAshQFViPI`N^8@GV{iIV5(w8`oK z8{T~9Gl?w1rvy>!Pxz<4pDA0?;(7ZV{nyWLlK5tU+p7wf0?u31Upi)Vi*>xVYKuFr zR5`|bKzx509W+OmE?O@HtjA2XALg%jG@}XoCJ}Lg1pfs-bl{Bm8$L{o1uAZHO*m2S zN1rVCVhOqICbUCk+&50!*vMI9yr#?-kIl3vv~Mxck^fJqFyhmQr;+ZJQK3;ieS^XG z*=l*{S<5m3PN(5WZsitRBog)_tJm(Z;mvG6O$gY=?iL#R<0pCC0BL3&|1hrRX0{`wa&X2%`#SIbJSMQ+4Z`WRQcqy zk)Na;4+3WB{AwfdkAGZF613snXk;?DCw+@x?Hy_DJ9q27ScSp+M}kCYkt3_u`ec5F zOje{2F>-f3Kh0__rP11!OBDKE#r2tqHTuLa?PySn3j@s#8x|*?XnwWyjnwm5rpnrC z6umA|HBgo@f_ALl#Dz^Xxg1*%?UW7P&SwSN{)xfC=W}%IYDH%4HB{~&rWk_PcO?nU z7h4EPt{E}eko-qL_}`V$FLW4-0Mkh(kkw+hb1R9Yg4OMl@60J1L8kZYF+NbeGO#mx?Fu`RLqg$7%o+}nG_GaMCLbhl`xvHw z77C2%#kF00F&bUn6wG*HWZoG)Hm_P!c}nf4U4vxRiLl7Z`anDV590XRhwaSkAaaco zW)Ak{?218#8ut*X=H56x?})B@m96!J{)_6q>u*T8MVy8vbtj6WPU|aBJ4o#c>;IXc%73~cg)DwrW zYv^Gb3W0{V3a^}u{kQ-@Zeu^~6Bg#yEOoP)E^O^xJ^|hx(lSp1T-gA%MjxM-G*NZ@ zLHs9-rE4a8EIa9Vm#4;~Z>0f{R#+J^F*12>*Mad~r`*#p#pw&BrKM~?(}^XG#zJ8x z`Z`FDH{!9&?tMc;vi_NOBT*Tq^9%8ynG4Ak8d_jFq9kdX?{ql2TJ7 zbF5i0lr+B{p&7QKejOt&_OR)DArRDXR>qf>0s{i@PM`isAu;R=U)5Qb1$lbj=!oO3 z1IbG^I!8;(HRZ|!1%>sn)QjXk&s&!q&IFuZ+xirPTuiF8vOANn*s8U{#g8~qo1W9G zI)y`bFiBZg8!OH_yf#lZd!}^aY5qoxZ!BR*b8|MzJ?FibZocJBJPePBriSoW!ZY^| zgCzyF#&4kz6c1b-CA$?xmh7RG^#i$eP;B4&^t3o!DGb6Grtn0k_wb#re0?SYp|uce zc90&tqb6!+;M_jtbq0SX;k?HukUa=&*W(phTyNZ=RC|87`Dh9|Fz44pK@`fC^J|+d z4Ga!oD|}p0d>#j216JEUl_lXk0u>bp@QnC>`{sjBcK?(o9PiNg>NYi~upOKgi|s7^ z9ki$k*ErFmPq%e7ono)iuN=xw!Lax*SB4;UBk+*mpPGw zC|o@(Qg$w=WK6ds?E8{Xw3NYXa-oZp^R_)k&b{0)$;qE5`c=qxkF4Z6c3E%45$|1}SL4_-tTgnFFxP=7tF_{XFH%%i|RD>(lhy(iLI%jz~PjfW)Ca9U3S_`TObR{HC z;>aZkXe(Oe7Bd7MkT})_@$m8@^_n~5_#(^|EfWcs_?D!?i6&0Htq=K@!`WU}cmAD8YmtU?Plem9 z1UozlbfxEDrb4!4(Uwkqc~g%;Rl)$FKB=cM7K26q0?_dUdDg2wt=w4blX)3%=y zFQRYDy!STp#)ntrP2&S+c={y`$GWKp+;U8>q~C;Lrp+yFfP!71*3yCk89T!|<*3W|#va{OF#cU{Y(b=3p zT?2y5g_^o_#RI?Z@Rvu+r@1xyyr*Eg=e{Rif0>%nZ*c6Sjl#g;=9~<+AJH#qMmJ^g z1`H-Dd&-MYXylSVLU@z3?+*>%Imo9gjAnl9K%i@_$C$#9lC zKss{xbd&yO3H$SW;fNEt5;_(5FJB@qiNuaHNj`6lldt)7Yve+$kCSi#?Mc_KlkX6# zkJJO$BE&8QN{(ibwvB~63J#~9FyFtwHjDczh-=E3D`G@ge(pl~zjH;g-Ly!2$hUVi zULHT+;=(_xb*sa@>!ZY~BKMlHQr3UvMy331V}VJGR!T{PS@QC?y{#E90+4cz-Itvm>&NkLUdHuY}Iz2-18YWOOe5i%GpC92??kV zMVZgbm!dW&)r!q!sVa8rBN-_wQabI-qby2!D)P-6i6Fg3TujVIwqnR;DSKW$C9F|l zVeah|gF^JtazAR3F@g5`Ye8goTff@A(@h43xynu*1KV@lTjbuEnX&C$z#gy8q%{bW z1Z2{=1fN&As^&811bV=&g&qQ1t8*^9%adR-GVMK3P0!fNdfBO(C7XCXZ*#y3xvD&a zG^|ATDBnY1mCL_`jy&(79eEF0RI;58-S+m@IRM#dF>x}jMA^UzH0s=`|NcEVz1&)decUTx<%*JBC61t>uXy=2s+^_@4a5lFYSXc-c3=MJIRe7Rz zM?G4Has=qZ{b0k4PY}#)gccKIy!67Gw?W|Wq{CgE>6r8FI;VB$02zAdU|&3lqV?O& zlF8Xwv5o}_&HYaHzVOx}<4WZjR!G^ud8oe?Us_QX9u?(V5P)ar38dfpn2KiJ;IY)K zn4QhsG9d|v)otj@>EKO3J9GgL4gSJVJpW3bd(P*Kz6 z3;j(Ma#RkS;XvfUZp~5nyEQSc&In*4xko>I^$D6o>6-KGkTuc}$7DwEMt-fMaoX^k zJIC5TSNqy+7&Gn|>pbN?$S{g^2FY1m71sY_W~P0b0V7*5AH69Q@N@&S=Yes2 z@4US@Xm&Oa?l>%TfSNREOwj!rf$B?e(%cc;fdSEwX%H44-;Q3bYynw;S#fSh#$v%6 zL0x3AtMXrQtj(u`FGlTKJfqSbBPL(nDU4_}#G13QezAVl-(*%W=V4!0eSIO=_JwWH zS{9SD6DOmO7dQk21StFZfv?Ql-mZLrvr`Hty`~jdYh1_ z9P@z+w|^_%&s3JVB- z{~qKp=HV6VOYrimpe~QqOP2oa75T9r7I_OLOdx>Nbe-UI-Yrjv=PwD5bni|b9o_4{ zc0Fi0qWV~z+R1;SBzSVZtB!)#rb$&J6J`30k`NAenQ>G0bOLYPCdNHXO$=WTUK#wX zEa3AKNgO@OGSAhsP-1{+z1jUA`w%0iO%?Zwpd^^0z7DfbZfwl3&{M$zuJ9M=QHWNE z=hKA2OR>>bog_ank6%8xL5LbLJ@P0G@$b0kS?hTNAVuv-H;2K%u?bqstfvh3GEJ7m zL^)?7wP|^QF7B*aJH<^vU2E=9<_EzwU3^@@h0u_}!H^Ypb;({ravb(O1xvW%lP52;$|rdhG?X}sBaWPXFIC5& zf|9VUurlrw;bh#7jt*CD!_@XtN}f`OAPF0tM%IsPI%-``qrbJgdTxj+{rU%~mHU>9 zec5%(x+rZf-+?VPjb}54r(IAw=0CF@oJRb|0x)Q0%1X~HXSNwJFh{ND+ zKTf%kik(zRlXG*8L)#v3 zn@utb10=nEM6h}L?%gE2A6$LKI~_rb8BQ|N!^4Zn=@PB1*3RYOA`l5PrzZF^WUF1T zF@W5mx!``A{a2UR4c&}2E?Hm?PO&*74AS`s9c7>U$jFHCwZVb?5ar3$r62GwZ;`}6%??*fD^^V!GSOAAq-n? z-JI4n%ovU<{~W{~^2)q?dH>_ZuUX5c`^f%;GLuzRwrWJgcR1x&haB`;XM>Vc;ypG- zM|l+}2MN_&v{oB*&_K&nx$Np%x@xYkxAK`b|xWWDN8=XwEfY1X`<) z=2*=2?l6rn4Nhu(;zk(1&Wz=c<<2cha6C0oVoA{K3p4rfla0fTZkHjNV{@xI8Cm30 zoMhH*?(LYZ&dda529P@$Zo;9{HCH2~}lUs#VJSnXlsWY8!&@#dOAjbVE@0-nN zZW6co=mV3*^JKjQbOKCQJ+-+n&Sm!tk2lO|VO`eFVr0-IlO($DT#0V4n|u__lKM=lX;#J8eOWW?u+wV-DMD zfZsWdy6b-d4}1f43mOb5% z*=f6oaHis^;0cd)LCs>2^cfk*3Q(|!At+G{J;H?+c;j<(i16^{)XpI``(;0K(MAg= zq#yw62UMl8zEnSBWhqXc^s=(G{q*_sIcaTcC)jd^*j1KErDv)T5gXgvGpRRA!oqF+ zA^xK%ol(D&B0XoxFIzBoR|m-%BQtEXDWR^R9t}AzqHkx$KDPI?#(w?!$i~KGwzQ!` z_mQZs+9>PCq)h=hTy;JZaT0>s1(lq1wzq_Z6Aijpxn{mUd*-HG8;n$q6=GD{8n8-- z+Jq8si4?obd=UTJopHC=aP?lX<(SUq=}earO%XAU*?}(FK0=b&kbTt)8@$RJrW5&L z1eEm+gKzVEuAuHRx)kqjZa22KU$lg^KX&8N=GT(Wl(`!709}+3z13bYMs^ zGt6&kO|1m;(z#1)wl}O3x221DdAx^*1%j!HG{`u?iSm9*e0^;T!jZnE<|x_QM{Y+A z&mgg9S_4`2wcq20bq%s9gDXfSV=X!)H1rGLb>=I%W^6HF762h@o=g8F)1MJ=qNky1 z0mqf4Ek+Ea6?}H(k&u~EU^~Z!v)FI>E;g3&PGcv+TxZg~V|M0gjr&R6hzLR3x}F|F zD3soKy@}z~#l`*=!gJlR)?W|1@cmtMVzls_p+SdgZGFx0a+q|G zGVygmdUaznM!rrjuQ%&kYc!0EJ+ro_Yd=1goSu%O;c4Px)qsFT!_!M70YwW1k3|2s zyTi0R(e>}|SwF2N{dFU8b+#ivq1MX5Hmz1?LXTIPoYZ5c93&+xl`hu^>4Wvfo1?7Z zEN^c&=-oYb&V!r|gZ5+ph)nm!*4EhdDf%I%IweB8mEMS(+?QyXmv0r+91Oi!nOzjq z)V%ln`5@OaE|hlW#|d!dIs}q`8N*mkIx)Oz(Um_m&Btr#OX#<>G&4PLwCiR4DBv*0 z8LFH;2~dV$fX8z^<`P4T-dos`bTwYY>x?$j!I282%Ab26xa-`TZAwEcI8u5Zu*_@L zD|bIaBZ939AWl7ur8>@{r#K6*JqR4_Os7vjNxR3Wd`};CE0~5x3sNxavHBXq>)(4* z6F(&1MXdm4-FnC?yxAn2SP%1I0D32b=NI(#_aR+A4h*r|vs}k&n%9@x-d1k*HG-IJ z>VSH7<4a+B-~N#EQq?#0B10yPdAB7ftzZ2Z3a@f;V7Kjy;zGa2-o}#muBo|buD;bF zry^?hBtK)jp?6oyW3#NCODusZ;o7xpAdGQUT2u0J@cZ#&%i zp7}lTI(kR|+uuR%CbPPShQ}p}fx1{rd1RSXa&bABrwUE`Uqfmq`j*v_K2lXeS{Nhb zl5&rW8(OkXY>kC<7;eGBfsH-F<5+KYBQ^155)u(i^~u&PC0nKM0~$rnr#FdR8(C_O zB}U5a9M@iZuFeSC#?pREGuz0f9TD99HKLhntc=o{1H$54a%9OjxE4 zqM?tOjrBQs-*zW3bCN_Yl2#Y*J``wsKlfQJj~${aFDy-nV>%#0Y~x!U!Tsea2d9Jh ze#hCeMzA4DLWo3PX>uqn;(U>H0=hLc@%mjpBGVs+r*qZ@o{SDGIH7T)r4!v59Oc!>inRz2UzqkJrSM-{y|7xRR0^9#eyp1dm*WUbDJ}EX2@!7c&`BK13cQlq&HT*Nmv0*(@n_w9HyH)apH{?+u-Qg z4V`$t?Cubj<&pK= zIIH++j4k8@D4FGMZQHN*1%P-1348_wVD+nN+yty!8y(CH(YS;?S$oy~oL^F)y(UBB zv36{NaSTdMjg^f;7-$4-)61XBcu^NiLPbSx8Y zOR43YQ&eIpQXb1xB$u1!wA{bOl>wT?6KQh|_Jr<;<7;zs%=EMu*UU_M(=fPP2>Vl+;o9Pwfrv5PJ506B z(|U@UBhMNJE)oPVaT`F)-xPFIKxB30-TI;&3vG&yONwsEmLnOJ!GQ-bpaU>gMNY0m z#GAPPd#bLb=7cmGN$ozXi87I?$ z$}mZ%Y4m0cG8dh5QrLJ1NYoVMx4r5ii7kE_^eJ5>m&zA0FgjLTZoBonnK}5?%>4H= znt{E4yTs{xax~6DEYvnS_!7hZrJ8N7bE?MHvXc(V@v39Fks^)>YAMrO-yM?3Y!#XGF2pY}@bdbFgj|k2 zzy}-hRqC-|Sd3wSX7h`cl@+;9O{l&aX|%GQ#a7kInFRMmQL!<5Us)$tSC`5vSDw#E zm(c-A0Y?&WY=nN{9yMb=3CG~vxpTL6+eq1@R|r*p^{K!5k75WZp*rYi$J$n79dRK7 z4H!ZZXR-C8d6QOTNs{gNQKX(L^}%*YLz~uGe7kO!{8%`6Df|c8wWDvVfO zc-u1P$4DY2e@W;E=dU@-@^L(J>gp~ZxGg0EX0su6Y|4k+Vj3WWkCzTt3lI`g8KhdD zW$6hqy9jaPk-Ne5^+&)p!fgT&?28hUIv@cc46XtC3?m}S$7VmcAXU_d-LS)|?jpAh zgcU%pxb~3vYS;(o6Tf;N@Ciz$UDDXoUA`N;zB)A}jaaF|Roy^$>KW({T*rL)3T^V{ zJ`0hWC;9%xuXR1)Gp!y|^GMnvlS+lRjozO>ryed>W9lG@1c=S6=rc$>s+td$=Y(~=rbx#&Q<^(Dc{oo)Hn z@{lH+Qb+6#Yi+GP9KU-R&6j{>8@n1;pDHQoInsTXhu$mCkf|@V^TG}Vxm3jNNJgdZ zYr(0Jgkl^0U%bWs%`YgLCs^?2Zoq%Vhq-rHrq-|{0DA)F=SgD4m8Md`4&0VA!jChM zXHDr|?T(GL1kz)uRn4FSwg&bz5L7lzQdmR*s$~pV-4x=vdZ{AG01eKMS zcY|#mLc8+K4~Sr!(CZ&=YHPUx3-0{9K|Q!NA^KEAjB9qjix%tNh|PSMQ2~I?okoN; z$T2@~27G+hs)`LZR##U8iQ`Y>^+%&_7;rLe{iCU8zI#`vz5E%6(YFvtdF@G`DuVYC z0S1~12lKh_{aX2&MXKb%RXc6ZTu|L9qm5D#?wZ(iGQrWvjQL+(J+pn~s6Q$)tP}6v zy?b1V4LDrpnh5NqW3_9Db%?RFwzZvVO!QyJL3s%$J$bd0~K+$g~IcRK!K~@rv(ngHKaV_vNTJC^!**I(DF8we-K_H4E|Xg1&!)GvEX)`;Fv{f5 zZlx0Q(+^CU1X}mdw_7b+UJG5bkK@QPx`BCl>IbPT=jG0bg3;X2!|3vG7C)F`(naXu1DCeu_di=dEfr zE$4bp4rSO<|MgJ+{(e5|uiz5Fw#Sg`@X5b$r>aD{#Ls#r$VN)h+#* zkeE`h_F~T82kQ5KRXFMR7;B3Z3CW@_NDLwaWQOl^8ylL@Op=I4-JkO6cl7A9>HZxl z@#n`>SpTjE-d~sKOc+UDb$=5-mUV-LJ~HG1_XQR6$q=ORoqmZ)mz_@zbHVkETnzQ^ z+dt~w6VW2{qFz|iEQsi3G`74vYJSSAqWCL|EhEF??gZ+GbLi#%Nad%;*C(bLaK(*;>oYO4YtKL^krV=#`&+i#3G)|XQz}-T^}VjKv+GBV)^3efixzVAbk!_J z`>)b8%+z!i`)?k6d&(y5rCn#Qr9(5!nv!s1CQw^TYM{PMpW|Ui8jmZ}r&}GNTO{`E zBV-3t3oDN_q8@xe)%T#t(Aby<&)~U+51Tum@^xrz%Kone5O8xa-pFGVDu z){@sW;(u}K=cKv=rCM04q}lh?x@guTKl5=!R2sv|N_8*7Kjm4|9h*wBxWv-J5;tD5 z!ewdneapqtqGT6egHw*>6AKGLQCg3aranyASPA;2wOCAuEsY^ZG7lsq( z$ICBw`{kI|ty??P^|X>Fj?)*KkhY{Vt4ZF8U1F+WfnQ$XGDUn%GJLOiZnflQM?#K; zWHvagaU3{$3;jUyO zBXTe5pA~}apIhA=t7J-+j-C1 zXM&f+^{P&E7kA7|VcK;TGW5-)c2k`WiaD%sFSO9#TQ=9K{%bbgZ^yQ-l|3pOZ)~o| zsRo9{I(Kjw$?AFtKRSW;{5k#l{MfR+g~_t`(;=~H%oxWkvs#D$c5|<3?;D?4iLWPv z^DG?rC^E(M9_bzq2S}8xJib9$p&2k(h7+JD*z}?~n6Tl<$6;P9_JM=kQbI#&y-irH zGB^jy39eW`q^|B6>P}T~F$ZWlC@DRDQ%9~~*~zz)c;;MkW0TsuZI)ZMy9n2CHonSW|H{zUMINDX2=Q^ZoQ7OCQiuZy~#6wafVtZf;dOmh1n(Q@Kf zyp0i6e<*77B`-4AlGyyyR-sl$$7$E%*^rxeoJp5iZrV075iJ+)eD!&5%ALg>nQx@8sH`$agzhkpLIjpxXG2Z`Bsm+1(( zPmqa5DxK;cUOJl`qC}R7XSLj&aGRisztp=kiY`n=A)&w)cPwX2yyaL#jxXw(m|fc2 z!Smf*Y__9(rhyw_k?d1x@zdjCj%E&r(kL*EiHby3+hCe(dRH$M!_zE%i>{ z`&$P>!aV(FDuZo!c`yI+LfViYC+CR1USF$ce)rE`ka~^VT}9nb!eQ&>N)s# z&&yFT3NVF1v&ZrSBfDfvXDf0KOJ&11&J!>m1^9^E;scfX*R3O9qPI_)EASaHBDV_zn-?)sO3}0uWcO8=lQ4{hC?@X zJ2o46SIf-k9K8*1rENUYzc58>eW3*O);9c77?gp4XQ5Y3JTa|l_n>f~>f>jcFD9Lq z*;%XzWO*e0tyL~1e2vaw9*sI7MZd}{l-^TrRfwL_83 z*YOAfrauu>zXUvpWpB@Z_R$#vGK1l*H$d6@nN#{!R8$}r!$w_~-LM~!ILPU5*2d6N z&1X3_2Z2Ta4E3d&&&iEMA3wELo3hmi|K^7fJ`5`vI}E}4%ND5J+VMJNznEP@8Z$)9 zNzF>=yKENic9ILD8cX?CSuN}zrud=8UlzbGfnSUYWSJY{+?4`iyCYLEbz`A%Y;BmG zWpgK%dSl&J%LWEX{Ou(ReIf4G5%3Oys6W}nyz!T5ZuQn3r$ReEX{zy_&-_8Hg}YYv zXKk7#SW}yDg2Qxg7niuD+;^Ec6TRs0arXE#hW;|slzHY-8-Xqfkkn>ny2f= z#9`^h8r~e9i609p0`yXoaZz^j`C&1{it#$wdZri~6HSDv3~8ugVpG;oF#EwHmmo8< z8or_r8i>Iv!!$Sx(w!2z>ns7$fXU3V>;;2<_%C2;9!$EM4uV2MA0Tj)EQ`@nbcN$m zm!T1rqMfwJ-p`*?nz>XU?#f$nSkQ&Q-zPS2m#TIJnxM9Wrt9sYD_RQ&D|<*dPcXi? z*b>El+{oT3h|Rh%0wiyD?0`UqK3vu%okE38{4P4ThPgO6Rx65Wc4<&RE{?~7Jps$G z4KKZcNfYgg@|Crabi}623sLc3g{fSoxIG2%52l!l#_aVc6@s2`D|{B((lud0_`PCem!J?$rh-)x6Ag| zbyQqtfKS7wrsC771i&@tE_%KcD5mN?8@|O~ejDmv-z%Q!D#SfO*#@f|LQwuX6<9dEOqYatJFE=AE0&f4TV>Yp9 z;gfBnDNNUz0z>%TWb48q(twVo>X1pT#3Jdb9^r?^!aQRS&az$}W~_=3I;g;gCt(uz zES-iJ<7wX)rU$Ze9-woxr)D81Bvk83ZMxzh*A&)y!G%_D768LEbm?VTnTagPApJXs zkFV2g8Q?Tm)&IOkn_0`1Hy$G5uYkmZ&wfeg@5rfSWxy0`8ydhrfM-Jd_%oww@V$wd zJDrKUj=CBb#vgibCj{mR3ldt<{Po3YQ2yO#g#3aVgY*EpS^=`EPu}O9$v=(~WxBVE z^ltBS)xQ^uNF^R?WW9Nz;H)0ih^lMEWVwg}liVqerAMVTVcn|LWZH<8fIAKvysV5)OlVbCQB&hMH}WC%ZMC+G z9v%d`+HaqwMPnP9Y-@+nI#@5d!H)g@dGN-HHDSzgmkJi*?it0z5sV&CuUj{mCpf}Y z04tSPP?AyaZU3LP?z6Dm<GL0iW1T`$Krn8k*RBQrQ zvxX%D`SkB%Uk_F?(N3!VhcWtA{OUcVAQZrQwtu(-=deQJ!mZ_YOiAswc3N@l1FDS_ zFM6-PMuX!a$5QHqE5GecMNM~d5Kie9Mbv2FK(0p|kM*#senhN;kG#;4XIjEBaaoyR z;CINLi-$z&b#!;4dCTU8jkS&a*M^z=mDJ-jw%Ese<5d{e?RJFO2dPM zoytBUpG?pC1bKv1_-s!Mr=OERTZPCBpELS?S-zXM^dkped2pTa_{7+S0`BSff#zd2 zv_{jvF@A{0(p@TcX%J;wmn866xN0f zZnT{A;^F0AA0$p(YqLcZKui$0fvhoA;rBjpR4QN`*RJr{Ew+Ft?pKm4&obrW2bn-> z?obf&+U!ZNVP6WedxEi(Wjb7P)plJ#BZyDxiWd_@T6sL{;RN}wOCu$*KlZl_n?zUI z=fO!jQXX~euh3cN1(NEpkZ-R$Q#IjF=_+KvSGaDB z#j|21&gzSIHF$73I-+)4`(aUmaaY8U0B_JUdl6;wt4#}iG1F~$B}XiW@;rh4o5ROT zn)+Exp(XywQ>Vv=Lgu@Z)fZ`$m)ddrC7fZ#=$8?`%jg^eFYz&H#5lX&&?r&U@lFIy zlzvSPZNsG4RQ0Y+|2N!Mf##BrO0)w>`+ZTGRHZ}|4F)&Ud(A1DPf%kX$UGMx(5@Wn z5x(qUBgvbWy`)TBY>8X5+KIawiC^|BalET?%g(p#VINFqVKj~{@unkJ%!?-LF1jVw zu3PbKch(OdK~S&9TTi_yMb59fP+cn8wYzd2{|EZ*K=h?85{}^WBcImRtkTBy78Gn# ztnHH?M!Ar(e+q*;yVUVP3m(X517PBn zF;&kSxEWxwOh8KQo0QtGaOVvEifDP8AhlOh%Wo2 z*k~FguX1M+0Brq$KJ2T(w7vJBzF{>SWfF?pxddeC)++zGfQGL-%W6ROe0oO{OeLr@ zvier|-gr-E>iTd^;xy>NvB4__9tWHdBFzyH%qkTBomfk5F1SK$qf?v;vUOWk&977F zp@7eQ_f8CgPZJ>z9(3>>UIYU5-)<7iC2IyY>**Ypx}3*9r`LtR<8iNCx_Ex6=T>jb z0^(FY#D*|B%Xr)hq5rr;SHWdD`mUfLd^;f>7&h#@D;ouxAlg`LAhlIq3$;;F>w-)`(9xEBQg-zFt5eug{4&+dJhljIc=>dq;NB)j*768QjX-SSQVf^(N zUr>kZ86=;CNlbOWL%(i-MK95nF9?gvLsgY)XFLc@+7*(^A`m2lO7jXM!5m@eZRSQw zSS`PlpcZWeITl!}k8P-OWu4B3H~VpqI>)rDagoLTjv(m0EA=X}?iWT_Yh$)5n&aR4 z+mT6A_#83$zqotrs4BbeT^MPlM34?eN)V84P*Pd}>5z_1Hxe7ArCV|n0wN{SEiGNr z-QC^a+WP4G{LXv6@4s)HG0q-C2W&Ps>t6R&SK@qK>1bC z84B`%W8tPy8b%&7RtH<+EykAqmadQWvC(AQm!xg|M^z6GUj#I4CdiC$`^v%$WYuWD zU8(Jfe0I%ovxrP>QFTK+Ya7*_+v%$Whfi9W<7~y*`%)Hhw=g&R-=Pewe+pN+m+@}o=mA$_7@XiKo;CTks}TwRXr;&PPqw)fhva?!KBnviCQ4&h z2WX={1+q!q{p72xZxFOK#pjhic3fw|4$i(z+FL3S7TFA?&D-9cNjY`09Ziw{_WDb(`~bR-%B59k_NHBS*-%mdOfND0v8k;wd`D#K^Q^RNNP)Up?N>`x( zq%e2BVFjYUrAXDZtV~#mYtKF$&wjadoJf2#!YaUe1`{|xr3Qa1#N}d(#+el^Tl`P6RO<{)-IWMaPJ=u)YCs$lvZ*vC7DpYOD8c>cLYWIR zzP0uCh8g#Fo8e8we)oEIygg$Oas)c5PLHdtQ>ptsCVmuwu5J`iEdbz$12X?GGAht1 zmxVbCL`ndLx#&7M(k^(C-NeSpuC@E9@g%e6CmARw;8}3lgVvQ{YaVVw(2_J-38_A^ zmaG_XH7!z80}_eC*M~@;GSH%$HSNKor-%D9NAo0I^(l)Nj4Li};tCgzf6p&g+oQCZSu+;CJiAOdr@ir$|&n$$f z>MRV#w_H5k%3p~;AER=D#eM2DI$@!?IFYlRP?&+Ha0^|3;FQFYEB9z2UD{efnJ-x! zTmggkPpbbsrZ1EXt_ZCfed&2!*L4aQ$2>O#mn{T@?N(YUKW*i4`UlJL*0}RoM<4QU zEvRpzR{u&HgWAQQwpnDcveA)}7_PXlclogs(h9GCD z^rwuS$6us_T0}q{9UkWzo(!tvQ*QPx9Y&jz zrOBxeil=&y03-Kc;mm_Fi|HQ#VpeIGex%6os9n8dx(-mVNhuCIe~;)LXf~YG8X*UI z?Axn+%nm*h01Rt7C^3eR_U0o3z8UUms0km;^Af99@PG}_WjwzMKR0??S3>oHp8hLT zJwc`$ms{02DLDxc?e$a-j40X|-KfUdWgdLpyfV)Qa2KfHC4Q}&PFS_3pur&HG3Y2g zz4+u7|8&nO>t;t(gw)6OK<-g+_b)3EGrv#6M^3{M^T|7qnq2lVx2+3>+k|RlO-Zxx zl521K!=*QSLZ6c3W;r@&m~tvCrOS#6z9dh?eTtTm>>*i^DP!6`87QLv#|sFOO}GuH zIj93#qfYqo;PSn@EN%8d!Anfmk^0Sxlh>1y*GzB;4_`AO|oJ9kX&=gclHO z+6+KUM1oF4qE=NYBQx&tHO2R@!|l}pG80Z$4@L~AZ?3@>=zT(U)46l%#1)5;}JJEA>qh;E`KK*uQtz|4sn44#qsKNBI!BKG9clm z0POLoSZhtY6R5@ZaRyMc3a2efpsdipOQovw&nW=)H#7W;{QZkK%>o`NSBo7f&l|g- zq6%qp;gm)Ig9R9$L9V)5IqeM&$FAK6_mSa_c zmzTvQR^$rrGQGAYxZxn1>*iWunY4iT2dFA(6uz_|BJqPk5rEE)UeBcZFr$&j)#cOp z>&wDmz*0db%l8bl>i|qcd2C|$!;&CC3ZOX#W{>MbFo25%wgeG=0}>+iXANHE<%LCS zMrZX>Vf#~g;+X7Om2m288gr}mFoJ(v|PX&EwU$tcdOe*Nf!Yf0RRSgk*i{R zdDY-=Mmm!MjtDEEMGJt_5sn~&OaymfY9(o#j-_)lX_PGQMi_>|c;rn@MYn4_5P`j% zACdn6x)2MS?t4aR{!<)D)+Wq`9i7%N=OZn3knL%i==86jx`AR=%t-(SjV2`p0fiS= zFF{w_{(Gs>Zv`8Ju(|T!M*YW&eQAagljnr+EED|Sb{&KY96m|8bH3L49}r*YGZZ#e~Q7KN5 zu}m850B#DhImEpBm{$dq&yx9u78n=0#&jcMog(|or+Nkzt`gz=h%EJos8-vAbtfi9 zIjaJ)GQv{NpWm9Bi)b!23j)9>w0kG7UcP(=gSVv)#sY|r0LNO940GWo=p=)8Pi$J( znSd5PK#l-ucpwmNs+@O|(&>V?osE~~R+h=&q{Ls|gMV%p zusI*F2+si#ShWcc0Hp<6-tw@f#NOy5g+b6N1e1k^;Q{?CzC{9|^I42*zPVfXaJI`U zvyELrgY#$2lL6gVLN|7N_AA}A--W~7XfH#gpf`kiSdY&3+ECn|T7D^Vtpp&H;OuNd zfNz5f3?QLl76}1->7(v+O(O0bRzPNZ` zObA^hT!gdcovnJa5OF#1fcwfwO-+^Ug{Ht2t3X6N{BnC=eGM*RlFsQm104u@u9CV;d+6i1{t$^b(SizuaYU(Po zb6(MS24JCxU7GIxnkr&PG`MmCpsaf{{oXnx5x#zaQU!yfh{&T4!M-4ud;C9|l-1%! z@NnCToGBnyD*0J*33GFE&*vMiV#=D$#Q|3H9&!Ii(4ZJZYa+dqtmY)E)gyFqff61c z^JCyr&R=*h|j%`Knwp z$$lXn0N35W+n*!8umMCjX62qSXz~pOeS|)dZVp1nKL$Zx+aByj$fOo6>-QX7^8V2` zVX0+~{{7w$nCU@m$RfZLcIj>}CKfKUFLYMcTpYLgNOFL_se1bM-$7&h0p7xG*L zpyPS8v#BX6uS*sv$n5SN(a_Pg0pX&UuHQZ0uW1AYL*Nn+jO=&-2rm!gh4ZzX&3c!s zSD3#0qfdEx`wy0i3yOw}>=j#Z|CjiS(d`m}tp9CqwW!RcC+zL*qtBYEl#l=LwH2s<)zbnf%6v$7_Gi0rbsXTwLbX*RwwTp_hEY z1YmxkubY&DLI)Wc`4?5JLJ9|0F55p#8S#*)O?0cPRgs?I0m}tZ_3(9TBv#-e@rJlq zfg;$n{+leddcbvaaWU9G4$aDHn}?qtXoQm+{6)y*Gyt_|IH?Wy2`29t@9Q!xOP~gp zSf7!R@f?(?=%pMq>=dO0jfx2Pt1o7Ewotujj5yhaG`r^562~%^&?#04Q7-BiLafV) zA%KKFno%xXD;PYk*G&-zYQML1@SNHBjsAuMSRmYjvIHbplK#?h2q&aQSwlT^Ig zC*L)QF4%Bd{pFJVHGkOu(1+kZ_{OA7;-W7#)4rZeXR*_Unw$ardoIINQx$_EKLKbz?Amqje9Q!Ke~+j4C@U} zXRK7&hEUhZSc3|YNcCu0$%i|QYlnKFMg&O^``du#t|CoRm#@T9CNZ`jnHM&{TZGx8 zondbM4>G0I10{g6@uSelZ=6kwI9!IL0>XI7cA_|1@f!o91RZeRq$_sd{}tQwq~ydCWh6n-FCsp%!CmN^8IW^m}<>%2?E0W z!S797>a@|ES?srZpFB_AaC2A%WcfVyt$%(C-%Lt}u8CvvsIxPnYeVLr!RPW+P{58Lx}vFsN^Hj4s(X+tWt zq#edL6a(dFgK2_QnBMO_=2MD1Jjm?*swd_~7+!fHDU@)HC8Nq>(lR{wGtBHgFE#qk zBgkm7>w9uYY!MY>^s(G!(dJF4s&K+I#2BX@M{L971(Jrc zqFoQ);TMcIKWw@lHFafgDr8lnb7Y!v7fAMHj4ihFU^^lyeNdxEebk$0sM-EH?t02< zC2QCd-)L(wZf%DZGG?cer;zp46F=gp$xQj?328Ywvs5tGKjQT6p6SKZ#=MffG_3L}>NF1wP}BVbS~1dD=>SNY8|d*ie_i*6(BTal0xNnr!i#WZ^l;>p zdoB5bmhGA;k*Z0fatqX!37;w*?E#}~t=U^^=k+YJsFJZF2%XNp4oR$G`?yy482*zi4+N1S0eKRtOas2@{B*KlHi#>%V#FZv53~PQF43OW^`9AFHyu zL-y(Mede87d!if0v$`gW!cD~V0QuXadZ=xqrOW-Er|r;j2r0M=>SJLw#u!3bLBw1)RZi z=j1hC*GlTG{5QDv_8U+I#3B-eUp+Qcqk7kG{3TQyGZ>T1Ehuj{A-EKaTssxev`J^&CkhB7OMHenwQV4aQPE$dVUTl=IT}cr}Ktl>? z65$=fDLEx<`MM^*JA{NCIA|vQl?OB_Py;;4wzyj%@}>IUP# zA)UEqth?x9cVC*Lb2%&<`XtfK_Kf#ooew|74eHEwkM7=-NnKMEY08_ab;Zr|+4t<9 zFT-(gIG*MOQ<*gg3Y;&QoNha(%t69tL|+ZK^x=Ic3B)GawnQhg~JeOfz zZS4#meWb49c zU3<*#dA(rbdL~QwId74F3(m&5%?K52I3#v5gFgVxoda_VmOsY^r`T(!+X^=I7IM}+*Q zWGJHMk7eF>-2R^rAs{gbnXk}`%ZzvfrX?3ifcoWFL49Ii!3m8vymeslb81PaeYLlQ zwRv2G8B9Bs{U)^VAjBH#?PwOIq+N1|JsY3YOsC9U`H(G{CdeBxbk8~58pnGMmEp3} z^q5uPju=fb)f;6~#9Sp~K@L2x4@yUvcl`uUdQu}@&LRc>dv4FUiu#?t zk>k?WQs@tid_CS?;=$61mZm|HtL70BLcoW4*NE^(oYU(+(w7Q;_obDYD1g?(6Y&-6 z+NU=9JuFfwjjw*y+w`sJ4jIaC*ZAt=zLf>Vk>>Gpg=My@%nvL_5#=;*1k!jc@oo2( zXQ(*5syskqs6v?hS?V8^k|Ql}o~989_@Qe>ZL@NjJdS@Q3$4{2!koDCqMY|fhfL$=S7}Ad zMHbz)(W8!iZn610v0+1n*?#ic1eH>OhWLy3C^JR#%c6=GnYSOyQ)?|`Y%TgHSt6Y) ze~QM}4+7a+CTtW@G1@2k-Baa}=8E%Xe9aql8{UX@A_2KZPsREs2Jw;v=wyxAk&uuY z+C>6*otQ3){`C}88KwyccgOULypZ`=^aT2Hey)NF&#v{HISZ1uWAu(k7|#~)5wL|XRKYdRNKH%aWvzH5>az%p4wS9sJ)EqepRZdcq%Ubq!ryS+H7mlS zBn&Bc^<}=DF*P+oC*w0@S~v|N71=Ks zrTXWd<}TcMSRkR56mvd4KD)>pvFb1|K7KFhiO)xak#Ce3|8WSmnIG<~pt$#Rbs^t& zxbx8GBjX6$Gpcv;4-3K|V`2YVbrp*2D10%u{@1-#1l<-d95)%P%jM=$vfH$eeuWxk zl>WXstYRd6YmKjRhv@M?%u@YXxjuL2X_pVqh{(xXmPqtdtr5!II4XW{vJQe+iNcY=i78P9 z1!tQgUT!e2Sq1lheNdIAL;s;xVRlA__q%sOe*W6`7V-aH;S_Vb}4JEFTV z1B$T3hzLE*2*24ph&&>EZo#B|Sap~S4h==7`_ID*=#B61$91UMon3^;!_BB65PVkb z^Zb0?&yitNy52ys?5N@4*jdAe&14v*lyuZI{X=7cniBAN{=Jf6yym5-8T|n|*3UBf zQ(w}*4+`i-fc3Wh_<`>2jdXZ?tg{z3-qhF_@Zm#NS^+Z;L>~Ws55{RyeEe--&?4xp zsv=n7J|bX{T9j$W25X6b?xWd6$)Ut|)f5Bhqg7~$0_uHsK0XpHS$EXWL*^VLOnllr zuU@@!aB}J!8^hJIP!aJc$NvzIn9Syw|9fPAF64vofVoG)#f68HbI8G=g!O43%k!Sz zul@b6P*KmO7sf^7rmeemZVWlfrDnVuw%(^=w`T0uiJnPRG_QujwATOlt6jfChC>w~g6w|oH z(uX{`Mph5c+%a*&p7QkhPb}Q-xt>(a9ipb8QBqYU9Y{z{tJA#WE33`;&n*8LPL>e| z$=c2i2D)8B#*}#|gn&ppw77`YtfIt$9;GU7^uEI?Z4(#eS^kC%X$Go_VchDIPE$v>uwNMlMZQ;{w z=*scLHeeeGs=t{qIlHL$hz&l>^V$z0WLhe`uCJf-@4fbco~=+GNa|h?sN^!G2LBz% za>`VS*Hp^gBmrOWMaw;~L;Cicf;1*+vOH;$qowk;35dt8^IK5*6goeZSo2jbEQ(YwN+V%K)jZnU+*I% zYm;A|(g`nqZ>YVs_UBPHo2b8iOS{smdMe!3qK>rBvQ$>;{B16+&CJSbvG8W+hA?R> zTbaStF?LH!c3;~NtlW3S8mt@*Y`rWs+%F59P8!Mg?Zf=P;F2%SVZlP~-VV8^q z&1E*bW4hlSJ&=?f_;56-9v*B)g}6qVx-{w!h|QAb_C5_MT;IpwY0m257&aDXJuYjM zQy9XYb~6wrq{S`=hNUSo>q;e40c|p8yLzt7E%+L?J9kl?lgQI>AKeNs4sX3W^W|T^ z#+Lqj{Y(aQ8MEtpoQD-@SOUkh2NS-)ow>Ny{c5y<<|05LEkm&PGcM&gPC;6Bc~7z) z&qLDA3n`5M*X+_~4n%-hbbCt6>L!rHo9M|9`s+J^V?cicnP6ByDno&e(P zj9W{8SD)<>1$0x&O4E(dsywmwLP&3?PGR@0$E59qpuqkv-nAX0>SUv~^Q4SRMGCu7 z_UKVNwu1&aO$!EM=!&egF_=k^q-;-Xx;VS)>{Xh1DXF4@t?ROx+LG#5fI?5EvsEJMizo5QXb zbVth!Fr+gheKBIgqd#JP{}NMv7Y|Pq3S|+#Sqeky*b)9p=qrM2<8GqJrjZ{yJ+0&9 zeu*n8Dypoix*r9*X6(J*r92yfUid$LB>10MT1t{?$0uZdV`%6@=y^iwxt9yu57NDg zhJPa=AwmCGV;0uoboTAFDF+Dv613L?)$4vXo-_Viqh(2Y6A+@dC?r+L0|IgjTg2De-5QA&t~a<%k1!F5DL2= z2Rk~+I$jgj`@QeJ2YM2C1OyTW21u~YYn}(zH`jugSXe+i4M>9A0u9dhGZn>^?C}6o z>1}%G`k}3aq$J|N7YG9}2?-V7cw>3}(F(AOsgK>p9lfzd9&H2~nwq;V0=F*ydj9zi zIb@oNaZO$qQ<(78;Tj&;YVQ&gOPNdaIk_ReS~dlN5NH7()h#G1@JmQwxH0jns?zX7 z_5a$&f2wYd{gc&rF|9jTP+ zI6svLzUE~IX=9Otv=D1kYLB}=){qT5;kgAhZ`9SqGbQ$>k40H%J9}ex-H6G+D(EPn zA9jQeRIj)8+EQvBrmy_+JoBvt_wQppbCaBi_A;=y$Gf`nppRj=i7x5yCqUri=SS>7 z79NbKFcwANVy9CIsS_1D=x{{Cpugn!-H(5oEf zS?`91cU}mFH_wDA!bp8Zq+Cv$Nup*C&URfUuX_>5$+vF7dR0|+_j6hLCMHBR%uy9Q z*37Qgc5XtTrxPZRAL|gkJXXR}Z>-9$YjTF2VJldw`+imuf73@@_qdY{qbY}Vidp^jLRM?VK z2)4Gis}B2!QokOc?9j{%+JbNjM%LgOx{^Q2Cr4-JTd70xS0mL8ci$=Ex{v|K4qsxY z!!RMZXGzc7#1|FyCJK?*uG`SLKEL_#v-I!1Ywf!Tq$1Q#-`%~rkj}h^f9GXz4DisW z?sa?LS4MG?=tlGQZozIHZ(sPBT(5AS!ERHHNByr#vBZ4zh@nV3<>-?O(?Oj_Bz{y6(ZRKU0B zWy?fp?kg$|1Uwac%Es2^+v?}FA9x$k4HzLuE6B-7<_;l$lKWg(xWL_e z^?v8NP+8{0o2vWQk%M~D64$q^nYUfcTtplr@euPtjK zOLpaPrL2;YQCS%g8*5ym!36fR6EyMSZ+13(QFP?E`zwU|@Cc%O#)%u)R?W@a#O3

EcXNpWA1F?Jl9TT%qG~`)ank5jkgxxo zUP|hK&GtUKOir_TJ<=k*^!XZ$)&AaUaQT?4OB3PC+%}yDnVH7nDY1b#l-cr>pdY4v z;gl$ml!kM~UIEhok%WB;AOeQLinNLgHJT1|W(`7?k-8xQa0dOMD)1EjTshlizSKY!U3yeE^&|}A=?e4`7kW?&ot=R0V=~7v z&bk}hkqVDD7viF!>EFznEF!>o*AgN_6MqcUT5sCvj1CK+dhm(Tg8TelMr z@{JXl5M|d?s(S0TiXmOpVp7`&w3~30Jv~fiO8pVBaE=!%1y{;gt1q+<9Jg8G{W=%?iQBxFoHhIYY;&+yc6(5{;6g>ABO-nUEwYy=$x<0gRqlL%}Xk7{dBSL!f zgVSeZ;~`&1V<4X7>6<}*Qx1*IJ?wAAc05j(KcbJ~3Z%zLh6$QeNgOkRe`fGHfBe!g zD-sta-7tVmh05}E<#f`~&$HAw`1FMz1J2h{bHAe2IF9%IbJWsfKXSCQP0^3)mIYhO zVKp%EGWp{;-S#sRy)64+&^)b?y2dlnxlWu=6Lxn#%lLnn`5`bD#xAvPZJSW9v$(I3 zAM1LsuU>!6N-@3b@;x>(sRKYQKIazFu(KyNi_rmZJo)V{Q~C5;(lCotDzMvlc+_4l zSL&YLi30R$=jW5hnbmMHCwPLY1Q2I ze-xowfsG?_>8{wMqZmYI3eADz}5Jrx?`wPw!%wIRd1a_I!+qz;NU0H9|+$R zHN%a5CFKT%DZjfR?yXc>%?f&~*4KOfdS0!yl0+CIp=O^QabfW?b{fnr7=%jU#s-HL zD5Aqe9NJ6QMACK*(qy8NqXYMPKhR*r!xH60lzBu!=4hkTJD6!7iJGvutEc6_CE;=P zQxSJNuC=jBeEgWmIAc2figzA6bsf_^-yP*eaVKe+>3%xPqy?0RFeURg=ocZRg42cS z(J`%T<~%9%GTXFtuIA`if}tk{jWGU|#9IQK$@*Jykno$!LTH=f18#FSqQk*!V_Yx5lfQd&y?uj_s+e}=9EZF6DiY&%nngG&l&+1Rt$JjHeL_~tEq zb?kf#9OAC)0bLuq7uxm=FrqrIe$)LOVLrYNc>LQAy$;{rHdF2Vdu|ho8W?2fh1NCR z@G|$1gbT+x@G-S76hnu9D$m<>KhDnqfCj|#>^a)uSn_5)SYHEGu@;rVSJN#%z-eY5e#dM9n@+5diQkUH^`CW!?p_ol# zMbgU|Cg1eWPi?HGySj>al?wU#Zhv(jV~BmCBj4o9=Xo;#y%=1ubXx9Z`EJV5KQYk+ zAZ(^qX8SA9xjj1DQ9RHvN(Vqf``Nm+_b9HGlc~=bTuXGT=>GTD!)e4K<}uL>K-P8R&w@esVlc*)0-bU zoyp>6A03~Lt2Q;rCDJEO-lZcqSm@cSxLz#DKvgMZqG?Y}abS8^Peos~VYaL}&U@CF zNR}L3AjhC5E=A$wO+u8ua>-h@&EGvb-JYjYA4_e3%-WAiWSU(&gG4UrdhOlx?Dj^T znwUe|tCXAOrFy@f!TLq*8!61iCpvOg(gLXWXV=r`fBJ78=<1@coX+kxKW{UQdaP0O zQA-n<;Y~$$Fdn}X+Aw)|$v&$J-Seq}I3A+9SpJ|$*3aMBUp7VLYi5JsPK$D6KTPd& z1OCJ2nA@e4x`lN)ia8*H7SA3Un4Xr`zFM3S*O_iakvTmOzL0T0MMO--V;d+A2o7%E za&zn9+s0pxvg0&V(B>AJDD~%A>t{V%c`c_6c}nynF)ob#F>x_3KqH}pxC+^8a`G$> zx{GVU#ScPni(!}Lm8HR{L2(WjFW*3}rkB7q|d61hVIBNLsgt7Lh;$}Wr$wl0@- zr+u9>v#uNrsenMS!K$!g?FQfHiRCGU!rzh(iP&*b$>$L51LL8xM+*AMAieH6ek(f*`MM9Ix3;d&2Gp3I

5KU0@^Fk* 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%0A^%k|udBK9w{BKc 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 Y!b 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 literal 0 HcmV?d00001 diff --git a/monitoring/docs/screenshots/lab08-prometheus-targets-up.png b/monitoring/docs/screenshots/lab08-prometheus-targets-up.png new file mode 100644 index 0000000000000000000000000000000000000000..88ad4c63652f37dd23aba332ae7dcb6e1b63b4dc GIT binary patch literal 90490 zcma&OcT^MG_Xmo-0@tgEQY~~8M0#if0s_)|38+X75FvzWz>XqCsZv7kB@rQkgr=gP zKxiTKfYM1I)X+l68}9dd-|wHd)|<6ha586RPR`k9@6Z11&+x|7SdaZA&q+2mHg^3x zx6Rquj)BOhpzpZH*?6g1*3b6d%+_ECtplE*S>5KDP+=q@!TsdgHdqN@# z9d(5FbyUMuF$L3)*;f=ka+lkFJSdTyeQT~kiwwL1oXiJ1 z^Qa?=2KwrF_}?Bz_LSzU1f8hx4ed82ke+YTs(zB1?iLfJ*|MKCZoSlbDIqQ{V}s+< z6ixg4neo3DwWhZm2We|*Cw7Z#YJSmNU0sc@tE+2kZ@03xw)RU93JMAe2@d{2AQ<`j z`btPjTKM@@`hS8|hfKP;3be^B@jT+ubU$k`o?T^Broa=>a*0msaqz2{n4-CL*w#z? zWc7R7=4tG0YfJW*-+<2ieHiIsa2#~te^2LwI`Rj+diAo@Cd&zUvbnzgo2aNLOHW#y0(^3Q&Xd=s%mLzna{;SnYy`6zCbQc z42xGnayJT=h*9#AiO%n!zRyHrvx!G`nM@KZagQ>bQ}!UORZLV`FKly(#Ca;bI};Hm zF^ue)J&lQjpf?+XyL=h=Vo3KqjfUzOi0;>!brjMcZV0M*kn6JWth4yF7_JTn87g%R zrRLQnep38io$~7P+-(c3?i2s}KEHw|DcMzBo`}9{^{K!Yvb44?92~TzQ%Hv3xls)hKGRto5=~;5+>Q#BSjtj_uUVTvTa<+o^U^Y9i zg4p%zMs{{~{y{-Dw{AUo@ZdpTg@YmnI_{*YscByqSTPpP@L3#ha?Z@m+*vFd?+EI- zl&2fr%YN0jy9%vV)_15RKHmX_*IB8Uq&M;I6@AUsS`&#WG>KCWy|-}4OJHmiwMz)yu62Uw5u@6nsp7ifbzX)hw02*f?>LlYOB0Oy2s4bCc)vPST7U36uf1 zZIa$5J378JeBSx%^F5xKlLtVfEF)LkH=Du(##vdV2j0mOxJg@kFC#zh9Eg&eyz1GXlC%kZai>dX&%^EOs+^0F;20z55Fwq{V`w`Zr+OBSo{PlaCb9Uig4LQSPOc7U9=jp zi$OS^JQ1JSFyIJtyfpW(|9e#L2k#CUdpRpEDQU=LYz{or#2QSa2x1dK<|m6tDG%oQy~+#J_Iev^wcTYKGh$*<#w z%*l1mK2ngilZ!?XOF8Y)>|vu+Wt}kdO)+U{lk^~8>kypbm79@ik%|Kh=>~N9!Zo8T zHL&CW+7j3Vx?pvKq77B6I3q+y$&Ie0nMPTg{RQ1R6_;M-NU2m2B;uG|^4uyu5iQ|h zg`Jx)KQ5_LptHjw9;?j>T)%j;Pe|YG?oBcz7&%Hws2VJeRNI7WHY)g%i=TZx2uslY zJxeW8%tUDW*kgLaoa>8*vbq8gjK$!7jh&-@7i2F9q$0|QReof zP%SX`Rt_RzGs<{Ia-IA%Mtm3xOCNi@XVd_qT2aL5Y)*Hv&QOR|d&)T5WAIu`<_g@BAjT1@^-P6m0Rk2lEyd zm36na8Ik4z4_!x2LEm%mE6_xhKJElsUuW24vLJ#NyR3XP*LwUh!qH5RG+d$mVdTFd zFjf)80qSCnZ@0CznKy+q1De?t=lUI>N$Kh7^$iVH=H^#8IXSt`oh#1IzYT;Ve;CXn zBm@WawsdkrU6gh6=r6akuMe)&($ZR=4AMwj`syj0nU+IC;?v(^eAhrRArJ3CxIfs+#+UCmiAXCCu<#&Gf*f+T%bZ|iYRS%=f@+$@3s)=bL z_@=i6=07vmkAhq*N+vi^aC(`<1?4LG$b(ru+RW6961{#()vql2I}h)#i8ZPI4tIA6 z4Grf!feY~4TE_aIcYe3Z6j8}3MJfBv`>WR14kMoL6<48FBZJt`kpA}2*{UGER~et~ zf>m5+&LJ4o8c@ZoXH@KK1x3$u`zsHG!Tc=lz49Y(x$nexDzEVs2;3nFvIe`<8i4p7 z&YBHEh79kAyWUQ+3cX(sDxL#=CUxQAi61;(L-tp%WvtY$e^X-M`{b^&A!rA#9$z36 zww7uk(b-+4E)IE}8zL9;gdwLS1rcA4?`AgC__N|-blp0GM?DljqAOX;ri@ln=y;VVFN0@rU@$1Sczp_zv{;^8A-@Mv;o<(* zEFOIomzG8!SFE`224Egq?Ied$x`I)Hs7e2HinEgpURF%3_{vsw?8Y@|X=wNBHmMWf zz6OgR!uI{x79&3Qps*>N-omhyk$q_oXB?_HOV#C*)-$bu7IF7M46ML-QN`1}&A9HJ zMLb|g>s?V1eZq}z!P_e$Ats;p>{jA3)3-C!_cmOFm-GX7X72v*v|7q0wvOnTjBV!A z8n&I7HLDurtzR+2bx<_UF0YM1AhppYlTuQOr1GpUq_L{U)Mj zOjI8q@S`B@W_T2+dhwF8pmW20%s%%e;C2o;J?V#4}q@Jpb;Y}BRdrC$tJADoIy*Y|Eh$x zhMt?M6O0X_0)p4LBJE(o9%|@qh1RV-#g;@Yme?2Q4SA8Kv1ez8g`fjMyV{y6Py+TL zPVsW?nUxibav046x^=iU$@cOYmQQpW`^g)+hU&6JG3Zc}|9bwlIL2UWj6VeFQ(W&| z;rejSF%RX+YHO8Mu?Y>fpT=^U$m$jkV=J-gtA%|ls(G}p4$=G0gO|wI+e5Fg(1@wv zIwJbfW7NO)!4?TD+!U2s2AIYCd{LG)fL>3YJUIpUW8nzt9#KI=?ot!e$&*2>7Ilro zdJpH;XQ&n|81%HzdF3ZQok?TR9T!LHOdJ%U@=If$XL8QO=j#}9i+h6O$pkY~YT2MTk_~vYGKW07ZKqstaD)#pPe5nsS<}~I-ERE69)>_;EOY@IdH;uUjLE7n2Hi?nkJYTWp2?zHYu` zDB0Zk?iOGwR~21lLsuWgGRF~Nme@*ALlKjw@abOCfzpa5o55p0npjk&zc6Ew${kEt zs@%gTE3C7=iiL-gqf1_kj{5Gh3i*3KI>daWHQ&KU(W~B08d~if_&W7gyy}=DoDnC&Pw(4-W;^e z+oj~_ib2$E{kgd5~5SwBh z%TvgpnUKI~AD0nIy=)gTqHM29QlkePu%WX`hx45t$nVs2Z?f3&+*qsP8oFlAsmgpZ z#>k!NUb+L|l>sbxq}sLh{E?%FB`OVbpB>C_==vn}!2VltaqS&mtoIF@A-j6-O1G|5 zpCCpstu=IFTC~FmEF}Wc)#zYpYU^_JynC;`J`>rpUQ#m}@%B|TU#$hA{7C*DOOeGVrms@W@3 z{C=Ce1XZ|R@4@NTen@kRj`qIuAq5G!3xlw0s$i4sF*o*_f@<1ss3>(` zC}7OLO(M=TGON#gOe;DWzMS0V`84n9V$lk}LajgkSAxn2wB}LCnclP!c3#JeQ5!Uo zmq#xuQul;C=^|IxtC1qXZHOdI$$wWYTesiST}@4GKRIKkDu_uBTzI(V=$B)D%75L# ztZ|0)d&9!4QGt7gLd-q*Jw?UoX7@EUS#Z2u?f5;o2l0y|xa`xXo9u!&9hZ#5Y_yMZ z$k-?j0!c(+%!q>5ZtV(B7{QjVQP70q3oUR8-*p9?H1)Z(#trC%x!G^CwBUi;m?&RY zROutHE(`kS565_1v3<44e#Ya*)Q~iR3u{kMJfTSw_AMoL9nG~^=lqZSVxx|YWtmuRGte=Jj0 z_aw&x1SPMelD1|`Z%*$W&$2SsfFOrAyYG8;V_E`AT|_Qi<>HUI4Sxkk5|0%bAUhRx z--#^A_m7vOj~GV(!eCuK#r6U|IkU?ZB3aZJG4A?mA24=5`i}&my7)i*a>-sx|V$L|9KdK&S4tWV4`>pgl7o3#VIkfecx#@`{A%B~X70#WHJ~y@eINea zPu~KK%8X-F>JMyAuT(|8Bh3ss{vruG9bcK zR#x)d_-spC$c(?jE+r|iSdnsmdOEc24PCOmtz9mh5)2L|zucLbg$8WDOc_uL?eX55 z*iPI2eU}`}ijlZ}o%Ac5y^DWGWP{{jG1iL~+$-gD+Py{in&!FNw}SUxcg4GW<;QQ( zAn>*4ijcKVLg@BN3Z1IgM9E9h=uOf_C)PP2uhiM|t3EbW9E-?{-xQ)2ypg^*Ya@mG zX~Y>Fa%)mIhPWRvSGr;pp~Lr_AG2N-HY$_mM*t`-tlz|>rvptZbZ0oJzTJy7Zzc)& z%JwSfeisWt3+jjdG&LV=^SLdL<3MU2*Qqu|`;Efz4tOm!Hq3~yW2F&Us%mPIU;A8) z01(i7vsZ2_`pZ5|ax#mlXXz1jbOR!2JiT#Db{Qz!kr+4a60pU9{t=ta-y z~@50bvO0-&S^)8nKNw?df*tIZ|7nL4^p zR3`mklC2XD^7-os1y;zuO8-S8y&6jYizH#WhDEQ*+I^GBK<+gHsXEN?PfR=XZ{B?O zZuAbFDyqNJ)EghQQ|3@@If7jYtYKWCVjmB_bWLKE85ujphJ)A3gi65PDlmA(Cs-9+ zjQURNnRbU2ytm51#0U{kYJVHsz59KQbmh~_LUoW8{|LNqFPdqO3oi)FUoiD}R9vWj z(@L$5-Y00tdM6aq5Lk|CSg>D{;=QJ#=uo2(Sa)99xx95L+>xM_?%6&6JmB}QQ}T$7 z05!!m2hI|6 zb#wT*q+!@H!gF*e3ampI|{ z8mP6$o#K5I1fU{Gg%(?P*+!%KKd8vH!3@F+keKqPe5_Z30@ghCNxBk7+^z0ZB&6KL zlUQkX>NCGK-5zs=Uax8;sZA3H>R;8_SABp3O9rq{Nw;W_Gq<_ z;JJG*o}Wq{#J+P1M^ofb%|{Id5s)TkA;0dWurH}eu2ifg%E}Yt87Tv%9#0QxkyauO z_6II@EI3Z8dkan)sYHw4Kb9^atrx$^)9S54|CpCO^xncmfz~>@*PgY=qV{A`r#OgDqYurLf-VNqZX_k8%%|0% zdZq?MseA4;8`FF5#?n@k$HMn~$TAd;27rA-Y`3KBV@s!0W>jX{ULvY-&1><_P|n+~ zhQa#wP#I3sYf|F&;+j}kTHP~1A#YAOX=yY^; z2=XPh`0&c_?*8@?ppBwApB;P_K>Aq5<9gXfFWhlCPiX$Rw0buHi2~+hQcANw-hwEi zNc+upW{bxU02Gy8z8X14#AO-83k0toV85t*JMM1y?RYupo@#o7Li~c`Jd38FRmSiw zcO>?NROLOq5KD6(yyxQ6i(89fTx8U)uuR5Xnii1*`WI7Mcrs6= z@c8JeJ&g9{3&bMoz+o}WYYvcVUQkPKr^sjEGcyIsqVz>c8W{>Sy3~oLszI zB&o-H0GK~3E_N$zGg1bLg0n2f$`Jw5e~{NR`6V%+s9>2``7KA;`{XrAVs^bM_+5J5 zDSudi|NW;N!NHVr>k2shZ8H7}zJT`D8@0W6z-vUoY4Yk7k|e5PhG8T7?)!lt#ULYm zQ2hB$yW-#6rw1|wXT)5gQ8+uy(M{fRnX9dHi?d_Nk&%(-uY(`@nv2R1T&g`8BCc+( z2JzM?=MpLnXMBofSG-jl98>$~MJRl!fZaiHj;0?3>Ewh-V8Ndry!qPvb$XHfG2=SG z!8##&SE|v_h#jmz+U`3b-7ktrX1SnHej~3wa{Pc?n;CFIo;!DLuCgR>wVw7rqC=QGcG~INkrMg17prYh*jOA$*Fo>6BDdRFsL>vXejM>4w6dJ##+C zMx-GZ7<{o#zVJD(hd>3T`;%3B0Ks*jSi6oxLhM@iQUnVHWa}kBGtlSI?xB4@n1t7` zf+$ub)uq?@ZZ+{HA`>d0;X5rTpS;29=Htr3E{N~}8=Jj^=7>%)2;e{QcT9fgC_E z6W7S_(vUDuHeDY{ZDGX${NBxD>m{JS0Sk3GIk0bDYRee`^Ej)bBOE7hv>jcS*>D9< zu8yQ`TwWg6*X6AO9(*Hs3ZZK&agq2nwytnhhOuHY|1y%`V7)}-j&b2<)K)ToFO)t- zW612yF_%IID_SC;7o-RomP2l%n3lAx{#h~}Nq-zk_Bxyy7cCRZ`>%1C?xS*`isV5o zG}>VXwOT|cT*i+{xEduKK96FtxZq&Y< zgrk`Xru*d&-`b_44L2EFumqlcW*^nK<+Z)NGe0ztNutD*5sWC`h|Lx+U%m`<-FGk( zr_RFrx!g-wu0Yl4(;l8#IfC(~->eHf^72T$5VY&n5hMmkvHTizjrwf>f>=FsuTl!c zxB^RRuRXGJ6feZTz&CDZqOn~4xE`_oBT=u~>-lrcVX%cVPBF>IO!<{c)b>=A+m9*#RzVxh= zsSE|&Vq$7)iKz2q^C8?&D2$Rm9CR-$GmNg>pgs-X=YNH(4ZCsf$g&e%Cf!ja$@L$| zxViPQBFMkA@tQAH7!ID6{=54&W&v7WH81uHj#(Hjwdj&^^mOT>PJa&6JE!Vxj5@yL(o1Z8=!BD)xBL~ zIgqPmWHKThx9U&Wr}J!$g7@vBihXaf z6NVZ{=66`1_{Kf$o6uPokB&owFiZK*BRRZ)N|B!GRAPQp3bO*B1Fi4h&k@m(vvY2u zW1Ldgqnr?{RtRSQz|JncOWy0782=BYY@l19{tr8D@i2>Zpk~H(QJ|zG&ctddA&iQQ z8#e>kTl{Lgq_95nEQmT<)k)fInkmb#zAde`9dEpZz`G$p?XH(aV-KB*fqTl&S;Atd zuCoTS8D>mGSdCswi(Unpi2^kz=_dEP;*uAMT%2<*ccmc$^Fzlk^!%SH?HT0d%a(GG;H-Z zV!#(VH&94el_@LRD_S3DuF)v3P^n2P^O^>z#C?AMD^*&~hU8Gy?G_5uR6^k!WidC! zZp^-M01F1>uJp;zRpak<9|6sF!1}}+6L1D4jDKo5h&7^On>_r=AC#8u34;TeC+B{S z!CYc?{KVfCw$}1zrxR!qlUU`{1B1 zc$-q|Eu^DCFF!GD|;$In1K@e#!#F&XTAhH zq7--W&k&T1<#f9}-8eu5NB~FI&;CQlWF2_|4C3Qz;)cIt6VPZG*Rm>LQ&oq|x+SF- zcKaL$5VOupy%K=r!qt&{LRzCcPA?AC=oJ*OM@Sh99Yz}6)qeg*xxn`5f%4y)v%jD5 zk**JyA!Rj1jlGpkMk%WU{C@_(W_&4~qV%j%0peJ%!PgXA@ZX8-F?IT~9JllDfF_~h{im#{sN9X%CQ${ewRST_Eeuh<5N@`+Hp1zL`>6o;|jV}D68p*e4Z zsP-trf3TR1baE@`d2^GYp`n#E4S&FzJB%?8=aeS7$GOHQ*M`kWNIQdnEs73&Lo1Di zFdGc^r6ToCX@6-zHA3)fhWo;ne~w=n@ot(Dr%t{L3q+}Mx|P+}JBH|l0PFNL?`d|` ziBU*+UHH>KTeqN~KtfFX($qIUphJm&g6gQF?6~}&^GbUF;dJ)VMD2e%1>j8f zPd~*!l@6f!xia?uDoql!|417C>3aE3jTLBhPwj`PcIk;wo5-X>XOQ`Pw{l<<0&>vT2{5t9Y4o`~{O?lRI&Jv(v(~Uj+Dj|7b0zJTopt0fMFC z=UQ2hw2aw|hBH50mRLWb$bD$PL-*8;-2HoSm^)f7AR%$hRNwCnpxfyn>Ag%(uTyPMod%XAD2NjVMh0~t1U8FsadW3D0;BQ>aF~SNHv)#0>8_8O zsA=?++PBk3eB$C#=HX5#+}4MQS;0#t(ok3>(f9?d??gbRyt3Q#&d;CO=nFmIH){AY z_c+?g(*d-v_j^m_?JK=v;;k#JD2+^D^4Ol}R#p>y&rE(`pY~QrpEmQX<=lk}*^x9H*ygmL^`w}wovwfQ#p zNMEIPJ#JqS_s{X`g{hO1n-s{6v}sGNBlmQ_bMg6s)f?_n>c4tEKp`%w4?@heLVpvO zk%-&_CkyEt3;}|Pg575aVP-Gq&J*Yzlbn*3dOQT;CwMhx&=JaYAK^%6|HTI{;rWCKuYh{R0uy*4o+% zT>UBEYRBhy7FUG3`>f?IYuu1kw#5RA*I}Tnr%_E1SnC`w7uUu6|L6GYNbu$H$j{Y3*t$WV8zVU`n6}TI-+_M-1nxI$c@)_{4>@(}6lT4NYd8Uq&P6GF z`J#yrpW>Q%@ZUUGHUoOM=f^m@)h2z331?fWq?F8o{1b6=I}lW_XVJ#{nv|4~1d&Co zj3TvYsj*jkbG%{*O6YbM>_idcqm@9a!+~?VwYYAs2M(CN!E|&&N`mzIQuwY8Rngas zT5Ao+tNInknI1OdjbL7Yexk-T?e%=oPNj4=B6A(&Y9JO!Ynh(mh)YIw@j>Zjz`!U% zY7=s>Gi-ADXXXt%{s}sL+euVtoqw0Os6pIXgrVJ~2skmnyZ=?(8Xtq!@=j-faey4P|1$b6zCDiU24#nMx#f;m@ZF31eyQwH$Hh|5 zENApLHgR`)9nVg8&CJm!hP60cNr+|svxA2)E;gSG3=BGq*it+$lC@sy=ooZ)405aU z@hSx3M*t^dWL^{_o%VKrz4=5xaSGn#Ru)#RPtD9waw=LkC>Jxd$Jv)KHhwlYYtJHO z2T=_|Nl8ibL$l6(isRu>l)t^{oe#KTYr0x%Ri~CfkkT%Z{jOdM495cJ0Gx@6mL|4`$ z{RT*6HF$rj``jnP$P$~0pEF+i=76W%38e+?gpZkkO2QP`n;w1$-BcZt`h@{Kx@6=W z!DwjQ+X!>*`wbxet||pzAam9+cR7L-&FZs?Qwxs6)!Iv1qk4#4O+xxSk6Jv3v52C; zB_j-ks8Sg@Tpdf|9=`xR2bGp?P;!m8my7!Zu}R?6V3<2csB}3xa=OTejSYGENMXg= zx~y6@r4)AcUeDw&B#RQ5J&Amm>czqF!NL4&Q z`3}^PImaVXI+ZHWLgJnz9;3%zCpGY%6S0=vL&_qz?(b#JJSgI8lk9obKxdHnpPW7R zPndqR>#x99MZy@0HmJg*w6vaC0a_bqBU4lG@otHE;L>{`x`C>ltaHWQ_!(H^u07Ey z)C#Cl1Bo3;l&`EyIkT^!Y%F!V6j%H8g?`suYgR;3Q&v_Z%Pkf#5Q34AKCCHgpKcj* zbj;hy$jeaeYL{-X-5i5Qs;ct1e{aK36+QY0E`;wKq)k-_?Dq3ceDq9WzM@+L+IfbT z3JY8uHKQtc-&8c)L?OA(^WST)@{zwj){JFOU;?dt}?F- zydG>7cNZ+g7(6e3b?)}0GAl!qC#;>Fi|FO<>MA~IS~!f2E%T6#_?;C>j|l=)u$$rs z*c`Z>9-({%5qaPth9IKQM4i=!I&IYc{y0d3pJ?PRBDY}pdzbwfoZvtOpn>Vre^8B5 zxboT9p{V1W1FcI<6(74zftjKHK4CI9&PpD^%#&r!&`qn)z^OwcRpSG^P+nPBzYgMS zB|bAxsDZu{fP8Eo#NXD@H_?>h@nd_o4Ol|PhG6$d)fllxW4CzK|EdCHq!2@EbSXDh z!Ndu95{BUt5>nRaZwY{E7}budFT8R%P#4i@W}G=Yf^Nzc5QQfQ6%^8lBTJ2FI8{;N zx*GV%_K|(9@7=rAsM-Z{WJt?A*T{aC@=f)=VLESOawclG{;`gZjs#u@1`eG6&J&RQ zo(}B8GAK)vYlM{FIBS=Fl_#K4Zd(64HcEzDB{3xh?YF5>s-4<$0P7)8fM9TbNEgRi z83GkQPhxTfm#bfeJ>|Q2!oo0VW+P0%y7W17z{s^5M;$PfZ}Uf7+R3*d3Fju^GvS4u z#@+?DIQ84CddnFBOWe^5)duz6<+>cS3XU)0JIj2Wo>3w z=@zkEITP-@T`)h#Q=!;+F<)ugi&V~gJH?@{g#+ZGg{bz{67(6%Dq6BGOfN(F_xwC# z;6X!=CG3&LI`Bq${#PJpe-||_K9iqqVuD1*GF$Nn$QVD{;%7-kCNw)#7=a$+J*>@y zyCx=L;E^E0pbrX_i&``}{0~z8ywaZfsH2TYv{-7Awcwu^fiPl`JV9O0hapx3C{m-k1skUxkR{bPr?nqjSieqnkp9_^7U1srRhe?L_h*bFGXUaY zvM>q|Qr+YLg@5I6b)(#}PXpVn($qljtZPm^0lro0TSpN%{cnQv^2J{>5ELpM)3^d6hqj9WOdoi=Ba#bUp-6iaUK(UW@%!1(LVdjB0plt?Gey0uKU^(s zLJS|XTJ&-C$L@`#*%dqVO-4GYe_+J?sCwYy@RLZiH5ZeIXZ4rMyAdekOLF?= zfV3Mx|JVikoaD!HZhKQxTbD=T`t!+jg;Q^%yrAism-QvYOK{|#snzT%SS!a&E>EhS zjdhK$9e_2!m%OY7va7-dI%jfQD%W)gV0SxS$-;_KsjgGM?(q2UDX(sB4s-;K5j&^O z!Qd~y=3X%hxsL}lS#lG-_h-Dg_4@`(s@B^G%sz36TVq(|7eP-ZLNkl%GDCDGrIkQm z&hfbY*mkGx!XQg@Y5Xr$r04d7J|$GoJb#RMny@&komCPEX1+f&URJgO3ffkTJ?roh zT{L!)WJlbS{^B_8?{}zg@YOb!UB*7Ry0r(}!c zclJROP@Z&Ut}mvf zG5b#==<~;RrX$gC18K&6Z~kH4=kp5Q!{vaYtPaG-FVz&))9AwsGmG)ovm~|d9oooK zg%Ghu)1b#OKAqvzxxQO3RTSYePjq`54Be9w6TQYvn$pTjm4LiQm?dT7=q-6<=+^rxtWnwQ-o)MFFuUv7Wc$JuPzX5U+|=8qYH z64$QvaXUx2ps|ML$o~-z4IDTmOU>S!A!LV$gv9`R{s5(1jTWfEVyi*&+#m%hjwHS&xPy!_A9SY zY1N}2?8m{YMffC@0_X#DwNycLGn9nL4F@TW$DVjZN*90VPpsuv29$4 zXE{gXkKA!czSjFh*?e@KpT044hH~C(*SB){UZER09>p^kOz5c1^r5fgt_SG8D0)09 zxwM9j+w`hfTuJMz%`8}yX$-z~*`}uVotTT@%VV z{-d~%w9R%AGFGf8H%S)Ft!xXcni+V9U_^4hfIL9o)7icwA=#76RoFUyLj~*`t>Ug%Da099btr0T860fNgfyb?5j`Z_uq?qGMOSv1sU`XJ@4$@ z&*H+8qVxcNnX0cp|%=&Sd zxz~C{zjvRw*o7UFY|6eh&RovhbI8nB@bd$)M!$HCqbmIU{ozAa0}@v!vw;+zJ``C+ zQf=Eh=3yWDiiTJ=^BJryc`!~Y=~8a{xmHh&t;FvD&K@}V>U3Gir4}C--+ns4CTXXp zf;PVz0;AI%mord|!CNaU<9LF{SpNbw*th<<=;-5$+@xagNdHVO$n&gC4LtVXE|crm z5>(3fFhRc12sRn9CYwaL5zSlbX)@*rfUS7%qK^xYQZo?|pJ=>(rJ&okhYZ^L8pjTJ z_2cVaMW>cai*Q&~6WrX?Q`B;7X#Ay(l?O^~&l6Q{RfKVp&O)QDoaueFHbq{eFZpBM z5kaI+1q9~V)>7y+P2zSIyvD7o*5PWXgH~tn1Fj_d*b424n6N##nqSVejK`BR2}P71 z!%&{fMTAOuYPa*GQ?S-mzUwDOe%~}=c%-$kdpVp@I-g{)x@>;W+axCVUa3<k8y{GX0hGbtZ`a)5 zCQ0OIhr!I6=@;@ld*TCb@yJt=akLasn) zsi*OpAtJmmJ^^@aNZf{@mtXU_m?j}Jzb{S_Z8zFDxsHfkljyB>S@%6#et^F@z@G6J zIl#>@rm481lX9W3uS0A4TyiNmKg$>*mK#(IvhTd4Wm3B98X7N*82H6+6wLznd>_rFmR}ywKAA=9kW(GQFDEPT z^mdSy&g-iawB+4v^^j&gEjBJK>)nt;X(i9I0)E}f#6C>^Df-zt#jzI*J8IpC%?N2w znplAR5CvIFX9$%4WmkA1P*H$2kilBaw`g=oDwIwUGzGxs3?TAJ-~-Z8cI779z*`y> zYW|o1d4ckdxmIMbe(x}bN&t+i5Dp0mv0`d2_H>KqXzTpI`7(858kwl5cSInWe||Jm zTz|)BPfLyUHDKRYG%&vCrQKW<)(7~hCp($F4)KZU=>QDj%R|qGqvPZM*3o@I&AmKp zGs+#SnsN+j20wkozNPP64+*8tokR_drk_C!*|N{yJ28lr9=HZOq(26hHqC_=#y28! zdbFiT*_Rdav|V0#4JX)?KwqR-rj>zDjgcA@!KIqq&N-Suk2&t9?%sy)@%4S>OQg^l z8bzyah7#c#6aw8gvskLPd@hBzd``>AfhzD&BSTv=EBw%7(nCfne2&iX ztR<~{s|=k%?RhO;7Z0kL>8iH@F4LNI4k*!W+RE#9*I)HT?F~dH$;eFB;5Ypz`P@<1 za&TImuI%+$pCFn-{fHxq*Vue|J3ZFu3t4{RRonf^qmz|}rxPp_OY+gqeI#I{+uY#N zGQm)rw;SgTPnxFW3{cf)j|mRs)(JFhdrz+X7|w?}l|NQJO5RR%V^-_`jO0gaylqMG zTYl&74YD?;LWuexT>6+KvRt(P5rRPNu&-^z|GB70~jFSFT>K zIRB9S?y4G|vJob?(-OA6G3=;+fZ~S=X=q`?ylx|v#tHTv;dZ`%QD-M9eE6NXzE{t0 z)%1<$eQ2bgOgNQCuVLhkq*yjZXJPp8VNhy)-m1x zoV(fg#Ytg~2=yMeW9xHEscrH3PwvHB95R$#qLm*rdOF))l>+%Z!Iy_TDaYEL=2_nL zC$GOXYl`U7BcBd z{qxiSeSe$Ctr-qoO@@S&m|m5}u8GVh04Gee>BB>WbHXm5-}(vHi4(?S`Dj^w1O}Q@ z)OFG-u`aRRE#c^0d(?r16tB;mEo(e{f)&Tk=A&oJd!Nj5+Uv?Cd(am;7Ry(z2w%Kx)UlvRC?fve!ILU*~^nt9=J= zDca1F+kcouMZJ}$Bv*1#0}RaDlV!MwU3(2v<5B+l_L$I$)zvj&{YCF&AJyRHcbOr+ zX^q>oWBR?~4Q1`_kA#%)JiV8EOGmoMbwP{e=L!7Lr~R~+z6nGfS1j}?U*25C>&5`h>j`4@GIjKUPKM35CJ+^-t>MxOt z%q*I$;t9pw*PFu2BcW-zA>z7&Lp#y!^1W^h1E*E>>N_UmYsoWqOAp(jY2jUA_Ffkk z`N$|-lzDhruNy^n4I?~0sJAO_Vdq!Mfh$Nm)#49WQ5kej-RR)E_^ct{g$@bd6<)joS-BG86GT z4n`Tv@8kW2Luz_UQZjt1T(#G2>RlhsqY5}7J7@*s38-BTXOTwvNEWm5(`miY4Sp3; zx!s4I4I1$J#}zT9JMPH)9haMYBA=J!@O~YpCZ7ih5azEm9}}_Fb=)f}+N*ZTSI?Ga zk#qR;qkONf`TvTvMifTQSOPSizJ~PJ{qm&?B;8rNgo-bSbAl4$5mkF4v#Lj#CWlmb zGy_%((J=#dlmUB;HsELHt9hgUsy<2&VT#G>FB$C`I1r{uKPscUH)9RDS)JA4oP#AM zGZ!r6^Geq<9;mHaOaT9YBkN@Q@Xr^vx%n1s>}V&qU2oEUT99|X{QwE5h3G`NfnPpzwihl3%njbcc{5sGs?QLWPEXG z@V=!=DF+FT?k7a99&|-sE9!BU4&#_>e3{HFTIzFVT+1_MIyRvULU3{$%`s`|iG@Hi zf`B`4!hJ6Oil2YK&y0QMx_L9&^HKRzcO%Lt-6G0`XoW(xu$V_*M%oQ)#zWsedoJPr z4U}Q0%wOvBL0q4ZcV&9XeOE{>N$#?qlg@-M-h=Oy%!50z4vw$ z0U`7dkZwn*N|!1f5=aCRdO$=#Is`~C^j<)cAOv=J9xFsvW1NvyrY74pE6*DzMX_(km%mZAuJ*C6)%@O|8A z9ooaF^O~`C>Xe4>)*>3smWQnoi7**AT7K>&(x=zfC40_lgHnOx2@Vx^{TYU|^Dc{9 z)8wzPJU2`VS>D-CtS?lpjXWgxl8-@4HqMvy&5Iy!C23N1wEQfim2atV@VAG#+|%PW z7qXPLV?w0G=VHfQ#w_jQEz7qGTs~FT+pb4CyYL)8{(}@{-&c^y7J(dtwF<3oKouz2 zgQNE90$@@o)5PqmtIt^sBTsNDVP5N;yTImhMHIIcN?l9s;rEdC5f6E3po)w&OCh+& zOB@E4XeZ>}#8kdC_)SkTzohGXg>h!`aOOn&X!J7?4{iYXd@8EA4j19S+m6Cp-C3@R zu0bcZU0OPzzW4S;4ff1^VXeddu;bv5y_EKGa=R|OdbQ!>n%NZ+Av<8a_%A{-b_{)FJLn+*H05+W^I2iLf|F*iX-%-4+ZT2TRr{25t%SYt#% zPzTDvv|V-PEJst{iY=~N$gFd;@#9Ngv1@UQZ+>`2aoAj`aV4TH$|8+}XPf6Ym*be2 z9W0(N_B32JLpQyjuMs$Ld2vxP?9GMAuFVzo%*D4(1xv53R`Ei9BLx^XDL7<4dM;mb zDShbf85UZJ)k>9KPRmH%nx1YS2=x+PM_KuFe_Uc&<-2)PUsre9_D{ifB8o!yF8#(3 zi_y=eB3|%y#6J>_&;6?Fa^WwHW?~I-?Q!qv1|(j%WAR?4*QJ}B#&F6!h--u z&fd%1zrnBVesY)}dzO%MgQ3+D|NAJ4!i6k)4Ds!y%7kIye#yykWtJPAuP%@0T16}W zRqUNo8Qv;vMoKh29O~*Ri_ATFzWkI1+mt#FSu8)_&6oOuy0BZy>Sah%FZ)6PA@Dxw z@g5_l*!h>5?E|l0Mb?Rv`bI;9jGTNP z6S}Pj{*q2l{Cj_>B_~Qa04tW87MwN9;>_vh)1IKq>GZ-*S#rlW1sU)tF~qi3T{bV) z&r^%SCaQ~4pfoTkEei@u);|ejc(S;;^Dcb&X>?Z2LF8llARWl`Gl{ngRYRZfIg5cn zY%*)UuJepZp57#U(UJ4RJ+vvm)$!*mmH}--j1L-_8}-IC1?uFdvoNlWP1$RgZcu3} z`atavyVFAvlU!`RKDwnGg5ldjRtZ#d8j)P zXX4Wm^LA^~EExKWwU6Wb(zIeBTo+`xU&iYlFEXeMrYG zy3lPmyW4Oj+ij;kU-Bhe)D;PiVYEL)wdx5PP<9uosUCx&9Z~mg$lSco#1;H0J7g&W z#H~}*RTs$wyFLO`3CB3z*|$5-+SZcY9BSqoxY!J2jYtYlZW^UHdkyHOVaR@`yRc=IKR`!T@dNN~j=7-v5b- zyj+p{7GzEwPf^BR8l|{Keb}!F2?$Nes5)?Ec~$hd&|)>Xm#yx3vJ?lVAzAYU9y2ETf>P{X#Q?bGi$6;rQkSZVR7R`%z; z0Cao2<4W%rmymm2*)`r@J%R6Q2lXoHz7muue2|&b#!tFRJwf?&u%1(BuDY9_$|LB} z*XG+b2)Ev)7WLsXDY%_LpWPn}lJ;*e6f*eA>q!s#c=A5wSlrd@5*%1uyGnhytifEV zr{+fxPih%X2o~MCt_XFmQ@S!bid^2@`GefUkBj!P=Qw4SdT8_7foQ}hQ8gE`9=VYN zQ+t~GMG&jtUn-}FvHs20I%gIphYliFqPM*&IcN(4c46a=XErH%Y(6Ww&2p5cQOi`3 zwtl;$44XaH$S4+XO*v`PB(-Wbl5w|fv2I)<E?zMxx%sUU+))8%+>4`s2C^Xy_sa>XcyYh=9t?WOF8?!*0 zc^p=U{e*IV7JWe4BF8%9PQ97LtEz%*tuY#cFOg>9FkzE&#|?RHKi=Bo(ukGwTe_)i zH_h6#8hViDl#yy$%ISni6!rF#7M9tsnDEm{+jMOXxfqxRB(M_FvbEH#OGN535I7t) zQvVr3rcPquk3d6+Eez>KlCcpDO0FK_p>FC9JQdd!XBpPear^P-rO%~UWtSmtOXa0uk0lU(aVYAsj#%P>Y*}8M#Y27S` zWB-rejctX~#f3Ctg0VXNA-c#aw=pN}Jle|CKzNxS3mZhmbu7t=uvLnxbpEj+VEsq7 zPp{u};A7(F-uCZI*J1L~+PoI|ib6LfV$?Q`jWgRDYAgx_h4>B1V81^koM*+A<)gB; z_TG8NJDjSSBBGJWeAnFnW;iE>Vj|WitSnnxd3^(Qe=s!B&S&=tzAo|peDaZC|6z?N z>Ac6{db{8Lw5cAaCP-u_v@{bWU?pv3O~f=2jSRUQyViD?p}oB%reL>U1*gY=snCzz zhfTg23YXLZxlt#pVCj~=o>B#7V)6ObnU{QQ-jSar`R^F@U=(%jY{ZJg=FDq)saRWf z(T3O2=VoVd_I4iqFFh)1w=e)_dgKVjXU8+~^8P^qNY6Ciot>Qg+xXQhur0mJ%tC64 zQ5I+6Vrp-X55N{^J#OkAvIZ8L|B9XOSTU&p*Toj{KY6XZtrU&hu2 z#@K$?tx($E+z1$TtP|A=gzRR$6Bk~3bn0^)!R2+1WUrIZU`vq3X_NV9hvEcN?@5x= z8W8siy~6|}q%lhRbzd6g;oIsI*lbTKmk6Yu39zRMP=j2vzg%Y~+h(nXNUzR*h2E+( zUlk-GoRwGMRc=I&ApZ~#FNfX0h$v?^DRNIaWUo6Lo4^fayIE!N30YTIo2X4L;ON=v zk1nE7I(8Fb%usPjDAGY_2+z`$A-5PTY5GeVz0>;(1ufzsgDZrUy&#YDoi>^_Do5Pbj`E%6=!r3_`b89 zQbQr-(c9IYDpdZr#DEANbxGyJh2D(JLJqy{L9U!%Y}?&Nayj&_1VA$aY?EE{J#~2wS1vbUMmfI~&AzO=gW9Oa)9?#PE?@KRrq_c- z!92<#$D_)$OXy4k{?Uf1{hwQ+ZjEZ>@|Ra^_G}%I7{6`}7dML@==hvV{uda=Vb8(( z##tkuF7EF!b;pMVIBOlr91YG0lMAr{9R)Soh==F&d0lsP$}?CC`o=9UTc0NtHs0-u z@|2jJnRDqI*OFWnv6fBht`Are)q-qW>fW+m=T#*Yb>*^;&(MMm9nJrWqQ zS;{)KhnV8k@BP6^O3U1Hf)!FD#zNaREfp{Kr5Y0%F~2nF>J@lU$Ur;a=L?L#}?IsJ&L#PEm+ z!@rA4SCcYA?jC;d^L|cZ=lJOKx)l+qmBU!GktU-ku3+19HinQs|L3$|ZRObk@uulP zS>ks_J|~9-grtRLw~$fR$n5mAFqa>2)9zVStPJLep!&2)g|(Y*DP=P17Cf;dqqEaI z%yU{)_ZK&WI*d#|zfyjdh(HVMhnEv+Y>Td6Y6R<`&HUHJXJ^v(UQIxi zS8!SlH&P?Kp1;{^u(iasj+>9KPnx7WbU%{pLp1MFR-=y*3IFe5B&FYGOw6p2^oO#t z;%-SD7sGC>Flbs<*JRiG_1wcAw4d=E9@5m(BDndD7I4V>0d^nrB}2(a#X7;=rQ^=Q z6x=}D+`~4p?2UY@)!r3FwZb3!;&DFsrw4NYXJHp&^--Ny$ypd_@CzYJCl);4=oV$E z)iyAAPd$gWNrned6ahViIVF_r{^Rj**2eVQm)ECH{vhyyp}}G%I$1Q2{?XGcTn!R) z0{pnT`*B!h7LmTwsnQO#^y~E_wN@uZ(#w5VD777iv)~mVwp#V^o*S?b z(n_d<#%)=I{M9>|hVVJ$mUj7DK!p1&?NOPnl?R7A&m#JakImlS8WzO$z8Gq4S$-@= zXYHua-oBq~%0MOQdlK9a>S2`n8*yn=b)H8m$xk1W?myP%GU=rvkLS9T@0@Tc7*|xY z6P^m&KIimpeovXa75r&W<(vnXpg%)&co zqY>rVKKMoQr6qzjmSNkd_US{iMYT=hY<2E=Mc7&|#Alm!XjFij8&;5l3@pcMCHy&i z^%bUX(JcaPkC+u*^{i-7^sH1%n<>B3n=d@Bi$pwfAwLf_?%nmFxK0YJ zetJTY=e2bw9pZ@LEco}A^ClUi`l^MndHY?|ko`NNUL{a`@$kp~y{$x)!-EaL{aq|- z6IqzZA~vK=3?*ZplouGvP+1^W2a zu{C(mRn96~<~SPQHiFjp4bT(ZEL-XH5dA}OT{CT;GyZ}8ZLO_VbY4Rp$gOnX-D+kl zYSGe|IR|_A^e;+CaJScX2KMynv&NN3o9i9lI!zD+ez9xT&z>E1>8q;_NpH}1%J8b8 zLp}h?ZP=IjGP6nNPNi4>WyOt=GrkZ%xg4eWo4h?6?H8JuN53R<-Ey9F>3TBlhTZM1 z4WO0yZO#psQ)qRWoAcSt{K9+&VLMx3<9Q>qjvZ4}EH_=7V&C{}bIBiDqg@3S`c&{GI# zsDUj$5=MH;2w24^97JxB{hE)f%&R%bnTEOTjTK9;)T(f}I%Ns)C)Q#44~4r1s3^NZ za=Gb{1Uv+tlO7PWAhC%JtjUlmNT_pbhqGtCAYX!F$C5>jIf~g5FC*^TYTEoAtiUP- zZXjDE@D9qFVAJJFcrVVC`hpxUV_MFeQG&1FHMxF;*P{4E=wX(PVz;lSYeEmg*k5-H zzbDdVj0)c9~($R<1{#z8fFpS>$cL?cdW z*zK6i*Ee+1?8MG&=grScUn@Ndk_vQ9r|0Jt)MCkX5NaTo_QQcrBI7Oby((+=jZ zB_s?gS_1Y3zzju3zUgIR;>2%ngy8EkLqyGnPn|y78y6Epcs_nOP&t117yv5)cCvtz z3k8PP0+vx()J)zOJXjqVx13GAT0sH=&jw8Z&Q!DN)%gqPO`)jzeOn#7PZ~vulDoyX zZ4BJ=eM=5>`d6#7T)z3g6b$xCQ&Ze7NnB|+j)v{t@DSmiDQ6$=i*{q0^xX{F6SIl~Zx2v~sZydKT zR55>@*@2A5f#JcSN0xH?8)Kn?@FV?=ob_M7bw_u){<8C2&dW3%8+Z4yQvj{x2g!soD_}~Da8^2&2 zA0Je>4DMujP#Z~hVzL;(A*q2!Z%wmyq@H8bB(prln7jsd78ns^~y z-uDJ+vNhAdtCZ&@AXygjs`(s~vHi(XJpza);-`BpfLIirf!28Yc6(RHAmFvNf0J3j zaZw0Pmp%&g7{qofO#9dnhWVs ztUlD8orUkMTy)yp9Gu$)H^YKg*>NzP@E1iup$sJQo)d+wn;V4l{{#?;xnDa+rOV#e&q z#u!tso?T75Zd#-D*&|2vJpj8Rn&lsg1?k?&)_=IMm?Gf?A88he*IibXi%2>z5Uj!F#Us0?fHJ$>Tz%FZ($=491F`=8ItJy@G z_3&x+x9)*O6rDsU`inLE^Q$tt?4=)#5zyLY28SBE*B)u+v4zOkl9 zZ|W{*K^YkJe-cbJ3~%4gI`8DbxAEh_E|m(mcwG4W`LV99>sp_8Nzauj;HT3B+>~%L zE4^Qee@Zd1H=JIFnphh@5>~q5?;qGf5czCvjbNH&haF3Ia)VptY!n_(H~oh}thwB$ z(1WHTRI>D{e9>4u7-2e^!yKy}1-F{$qYb2_MT=@a_K#YF zmrs{=FF6*@j`@Qdd@N?UlCJ*kr|yM}@Gl}c=jq@tuv^6i-oFi(Ir2WWr}MgxdHWWA z&tm>XvwwP{08G69tm|IL4VLgjy}fAGJ%{C{@af0O*c z|9?69Q~E#dOs|NT7!hffn&(MLNzY%r04gg2K+PSO-((7!g4+; z|K?ejCGs;IeZ;f7uPXW)qevU?{q@a+k(f!+O@}-~jc3NmLJ3kU_Dn1+PQtOQ0t;tP zp45NxqzX`{O@K5LP@IA?9Vui18Up{+FS&B%3ee`3l=kAIiXUm^rh-Z~^kbfVk#uu? zJ?Yq&uDsUzk+VfIJ=RNNV4ewQ*5E;%g2~BAxuBg-fFE7`?)YcA(-)taiE0XC6i`sG zwzajLyCHlx^u)vyRl8q;02684{v4{DwmRZ7@sZP8kH5C&vx30fix)3|jD6tD>(yg2 zR{^69=yaGhHa5=jCuPwaoAa;6z6XuX{0pkl?|mtHeD-z$P%Axs<_u7nnD7RR-8zLL z$x?fkcI7G4(O|xx4R{J=-IEJfVDlPR|6(8$0#KoxoSfPkCnnwiT1;G+`n1qjZE%D4 zRQ`2?E%njYw$(jhU@PKeb9UJ+O=!(X=$#)zNgGKoq%)@y*>(yd>*LD62{0S#q!(J4h~Xq zk%_10r;AKX0MaE6gp}^b0;dWPR`Y;BxFiuQB=o~vat?OsRZEK2QfJe!*;P?8kP>x3 zdKVU>&BM0c&72LMRl`HXj5>LQFZ>)~z?e$pUly_~1Sg@_I03Nz&Ozb6WG?=5)sBwU^@qwxYy4UEJ(do0*Kq);MPc>{3n-d(*LpPpV4A5VoXmzI`-NrkKP-vE4EC*%pwV={ev zhCn4&hO*eN4sv?L8W^I&V;s4>?5Y9wIF*(au0`&nHDFU3#`WfBA3aqYOePqxUi6`! zknG=OQa17miS|9%%h5cu(WS$_{$tH(xSplGpJ1n~==JJ!8DmQ7K-Y!ya*8REkgclf zPgg-5hUo8S*59Y^@ricpTqz1OaYcT8+o-IIrTQ3|-www`cO@-)UFGN3J>aj*c$i zVS;lT8XLz0Gs8v>g4=JVih6h4PgpaR4_{SeYn|U7=iVJMrA4}yvG(>zwU8E)caU_v z!x2g^=*k%@S*VH4tFLGyfK`V0;f|FYP)+hYtjGgGZX4dm)tdRP=VJ{C!logPDgFeQ z(K`oWuT#SoSl8;*Gtsi|Z3a+w%Kaq~*Sg5j$KTsTkJ|qh{qEbh`>=)H+lz~f#4?8n zu*pIDk}a8;nTxC{>67Y~hxZpC?Sv~T$N=<+fDZ`k)(2cJBLSE#=}M$(Zp|jCK)Ce* z@BDa85|t8ZWW)77Cto9UjJ*NHZI&%kGJv#^_YVkg8HAg(x5E!2yn(Gw6t;l_EIMpy zpv`*p$U!*C0>fCc>W8~Q82{M#r2A)c)t{$^6*e<&gwv1Xy?-QBa4sr{InhbTe9&Zek8Xr8VhTej2T?KJXo4Eqt?4< z`Q9eJS6dEUy?!j#g!mfna3s1O?8r-Ov6iXQ9#UpSAk&U8L*XmjhC5AoU-tIuQ&z|A zemikiKZX-%8LuEsODs(WG6R;1SZ@IW!1k&g`H!F@yeFtQO<*Ej@Wmg*#KpTz2Frj3 z$b}0J=-N8qka0h*RuSKx_w>h~m}M`=boZl^qK4HDTso0fK|yt*+MiXYrl#UEGTeoc zwcmu7k|qk`bBUo>Jl+^5g`7H#*s1;4UO}IujUuWV0ec}eC%uTNB91(*3mESAG)xt|qlKxWNO&)%+i3O@dnSPiUzrj6teF=0P zvX?v<()su_D|B-H^`;Y;%yQc!P)y*qyO2fMJu(qv)RUnouv7`O{DB=n0Ne{GFa^do zywIvXsM>dVD9cDs(WJx@gX>W~EM8t-4yVeMZhA;I=mFk-qEZJi0X!A$s3(jj!J#I> z%B;gfk(RPm-$Q=a778|Hu2?nuKy@Atwj#C}WLg=e>tOwhb!Mk$wUv!`cii-yI_&=* zKa>e@ja{Ew=A1q)8FIsfrmbI+DJ|9GVVkU(^nEp;Wv{={ufTF?d2n*aYz7hKHq0N4NXQAk zA#kgd+9ULVn&QI64}a0H*A&)m-j1He#SVuc8MS>D^@l$*xSW8@e8+^A%3C@e}YBN$`Jlabe8 z+hDgiZ2AE~x*^_dJ$2E`%WLkMMyz_dV;3ioZn}5>J`iby?`u_Z?q6c&Kze2#%gZH{ zDIdyEmil#V!FclN^3BW5z1gIw#vxx}qz~2t!BmEOEqo&aT6>0!h@l#1lI>DIUW-pd z3*#FYZfGbrb9vN&WB7Q{Upyu2Tsy!Pij*ddxUO*X4V-bQMbx&1p#Q6zH{|Zw9vGZ%v$RK- zW>`I9;h`2hUJH*(B!dfnHzj9}#y@}_wAfGOeDZzYZUqTGYiRt(kS>|1+9t$}S$}e= zNSIbry>{mVYZX`}ybJd3+?&U(AXMv=s)~d~}9%zRG07WdirLFnDhZ zIG(tb(OO{Yua?*~*n*YF2>bv$&jX;$z?|8H9_$u?_0!I)JlYzV>jdCqW88+Nn3)HI zZDAUQD!Ef%XvX@}kg@fHPNLbG($?uH10T<~VuGufy3I>@kE;0i<#Nl$%lv!Pd{+wG z0kFOyKK|Hon700Na$s$~QpbhVEpnZaz~1w-(yACpf$y`#p0KHh{;FyMBMo2cx!%uk zF`Ox*nlyDZ3~v9O_Qj3*2g!bRoO&J8UCEAc%XGkcv>`(yU|JRIP7YiS z3Q{~$nc{r>Z?ugo=Q3hX^K;ryAGqvkw4g26;qP z_?X=y?ScAmev49N3*mj&hRv=F>t2)_Gi2NUJOLCAz|j{duq-MmDVk?dsdyMyjKczoEPYmMf{9zdMQ2w|Ef6;pNY~Isv zzUyO7do(#sw_zgJ3&CKUhXT^I_21XFiSW$#6*QAa2PaZDBuCBMdaCcj4sERnJto7e zjorcBvWIeFGTR=n;j33dn<>jVzP1(fwjV#<=PRiQWuzPX&ll*kbH?iM`@w!HMt_8F zp3lCOl}BVxRkb=SyfZHSw8wWrp|^fK33$Fs&Q@B3|B#SNf7LDIT`hCBfd^l_4sL{ zN6q=~mty~z`}>|oN-RnC%XP79+UDI5t68wz`ZhR|FuNaT*fc> zc8RXrXVxT2^fV2g*%ixGR;)Cxr=_fF`D@yiT7+H7f7zYT1EGI;@tt!+bk9*4BG?`Q zH3Z`|zZ}~7{QdCd?3a$f{5@#9NT}+|Jxzvwmn+YVv2`{bh|NZMKbHGl*BlOf)+ikW$Bj2};m$)Gl+ucGr1cNR z$|lrtbh>7nG-X^@Imy}5gY{WlrGQ1)4C33j*OaQc`QafCq0D(1B=8p72?VpgzP>p) ze^5}+B{s#C}%KiUx@@dgrP&;7?HmkP$IOas|DS+jfgZ(J{@mrFGuK|uG}o~ zrD;o!Gn8Z=J-@4YMZ-7e#D=dBVeW;Y`JJTpklK`b3ujUSx>lvWM9xad&c*RS0je5m zlDUeRn=Xu~3F?-m$hmxLxU$cEX_1#hQeyAF?3Snv35#`v5${C0nL=^YO4nu3%Vju6wenJ7vfQP^l^ zkCPj5x~*0-{a(|tT9*GE>ez3c%;z~@girjXueNbtRSFtp=e#&~W5y5W7&^*~6*Ttl#sToe+nV`|= zmc7}Sx4^xuqj)b}LyAXox#t$O{~dvr2y0Br3CX>2ei&G#TaOT18(9y4E5Nhc*0aAO zyD-j9D{TIIG1FCs_QBZBBw9pocejkhO`=*8J4~Y8>}>T+GCk}Y5@-i+pVgyrEm3Sd z8rT2|Ksppu6LnFx*qQ0+91eNk!m28wmm6i81#z!71f5C!zW)P$8%{>S_moHVC);DMI#-iB$nU?Nf6RrnF^3+}p^Laq+02jRrj1=KupG zsXng>{iMB4)C0?kZ{1S!vwuhZrC}Hn?cL?TEXX3ePn+Rwt2B9-(E7cu!a(QrI=rDE zJmSvLXX_@%f9YkB z3aqT99ztn0 zXG^_e%QH17CX^jPn)9m~<)rZCsrBh%YLL~j?@T9yi?E>VB%~uz2!u-pKR^48nVsF$ zonAYTLLN2~6%_^LbNfN{3{ZPjSXouWm$vYbP{L+TSS^PB*-99Xi+tA;VjB0& zaqwkSg|*jywQSkmuDZ}T0|#QUwp_9fy$RdhjqYi?Sh2fHIGF95rI{!;5KIYU{&XuI zG{#>wHGUTVX*9X7)j|0>-ARASlxBB7mpZ zzxg4L#ladxxvX4;Ph&1(2X7_RA0S)vcy?jRB zz;+pkY0|fg{^iq#?(Rqs-D19SrReByCyYnvv5c=@@70!pzix_(8i1~>6o`n7GzMjH zyrHCFCidG5ZdBI(t`JQHLfN_1W%cks`|)zD28JvxF{&4tKfDKN)j{14=2119K)2?G zv5KpSsn z@kY129*ALp%vk~`#Mmt}ebzrPFx3wl3HiMJ{Y2?5(uwmn=ar&cVL3bOvX-r@#Wk<< zc~2w-b!!OkNxu-y>3Qg;bdxvn*3a#zOwMqx=xG4^~gpArUwHmRWxY^rt<5S_RY)OaL?%tkB^^fN*Al7H)^{k%01wVDlpwfL5sK|W; zt%IY{19fd)MfBjp0Tp42v@QZq&}^ivEb>)yrQ5Kn0oWQ!X&8c%Wj4bJ0%l7|b|GGE zZ@OFT(+|+~{hNc`lY7H`g)GC1CNyB$=bxOuTd>>8hy37GS`qTVtt%!<^m(~q6E)bZ zaQBIuYDGnHs-N~tmR4S>VIW9dg6IJ5%d0bVC$hPv1@6?7AxB2{U*h5t(V)LYj}?J1 z*}Hdtq{HwQI=supv$c9JO!_N_f(v3FWxSRUyVlu=CY+aOStFqJI-FEYOw{G!?c0r( zR5|rb5%u=>2Xtpf*2z{KllGzdy&bJ-7HfY17&((X&*pyFy&1{EH>O0I-iUNU{fOd@47 z%^`#%i=T>vi;0P$Jtyx3?~yAl%O1ToEjG`}454al%yspHXG||2Fdlkn1Ij3$K7U@x zw@DWoYBcS~W#&0on~~*Bwd_D+OaOuAqiA%)YYHpkP?z*r=t0N!?NpV@{CXsj63f=U zpC<3~vVnl#g?4`+80gIFo8c+NHi!NU^zLrWS;t+}h^;N4VctcilhFQ+1^a+9oros*F>o`>*nt?Jvpbwehtyhu`a$6Fw*j98?%I zuq}&aWQBY)#&V_FouB7{G_5>`llP|wn&+OQy&e>%*kz>N^OY*;09ND{^G%1OS=_6* z?ZtPLFYn0B`QL=23HQrRYJF17Xm9l|?|RdVw&CN~Prle`w5;Z9fFed0J$DWSHbV1c z+36+P#Ur||CGBm;Mu`M;|qE) zR#P*@mSIs7SQ1TbZDaFfueDFm`EL5_hYzy>C{|DdIEhB!HHb)RTXAs7=O!C+{883N`%{csF5j73Z5*_*ulzYqB1L;&b8_qUjHwDN5|SS6U*l zI!uovBp+)}nIRKD(*4;R#Ar29s#rr%|D!2j@CMg5@^#Y!goSdlQkuV`-x?<^;h#w% zR$#w}EogBF2n*xEJ`NMS=Q}$yGc*Wxa2)*)3Yre`uZ}yV&vg1J7L|#tM?@JV_mkMA zTh)fC%YWZn{Q!bXe~C#nwQM&Y%X3BVYTvg)buo0sXw1%cWOX4qN>+Ac z{g&T^ph{Zj)5K9Z0f(vda4V=D9_1-r-9E2K9~vLwBay}$hT7ZW1C%eR1B)Y&v>F(8 z;c~N&a+5ok&RcraNNfIHWJH8fKtN4(Rmip4Lc8aSEX@qk@)^;C;C!7d78^$K=+u>%Z`Mpf{)}!oCH3(_a{dkoo#2? z`JjH$`{y}h_Al{(xJD|`OyNeNTx(e?2U@r&dN=M8i094BJc5>LRh21|Myktee910Am zV3DLaF5c}7PQbQr7f`T|Hyw6O#)m6{BXX4RK3)SWAtdTSxpU^_2Mw!BJ*`9*nSPP) z<%$R4wA8(c7pWK-MMK)feOKx-JSGzhr}cwYVfx3{?3b6FfCC~e$zccUftK_*BtZG~ zHE}13jItkYxKS6EGN9_HoFyXu$L=|TGk>tN&6B`D$mgd=>5GA*WBy!Erd?0bXCai| z;67_HH3WWuo&VJEei8d%wh&d)w3oFqPT}9HPuaW7!0Np}NI5zeA_E*1f%Um7iPowI!&&OFe?luq7EbiTVIWjuR{O6zMqOVHmc^6=5 zjZIDGaC-`C=ECQPU%RyyauW`ZVIZ2IAIzJ&Cno+5-X8U9o$;Ay&HW~9@*HVzlhFIq z_XW~+^n3%oG(lJ;>W)3JqpPXkdRE`Ux%B+%C=!>wG^Yp8;b!;YY%(Go`@F`ZsA$7* zp1l`%njmiM?l%l#|L56dJO{o!omP9qW*>fsBr(w{xDn8Fg!KiCb$C2v4~P&sAB0Do zv#-&oPlY2Xg}Cfv4$IaBn{J4-8jg|bG1%340~LTgkorCn@Q`?u^08Y_ zTMVqNi$U@)HNxQBAwE6z8{<#7>X9S#T)U3#&v1GO?cych;*!~fB&0+$f2o}^1yN;@ zk9TOdJkt8dAs$N);`3A(#-)^9{&@>&pmZsdN*q3UBdb62sEk2x(m!F{0#Q^>)x)Un zoamo|R6joqX0PLaOK#iCzt_UjlHboSY4!3ExF;x+3L^W}Lkj->Su z5e$s+Z}yZfMt@nW-G>_iClKsr0Z3=U8-!N)Z{EE1zf4DJvi>_ANnhelo_q(=zCbhG zx&`D^j~+b=!dYTw)$~N>G{?UZnbBWimzW(>wNesuJoiD;G$JA*;r;t8;Ew=zRn+9l zkt9&gH7PSQ6PWRM@CH3w%=9aPn*HwtYF%_T?jfIalQmId#_`YA(3jQCt*uF^XKWh5 zr9n^`Yzh)U1uB47S;_+iZ;l^74sOO}gz*yFrqhvV>CL=f9o;R<3L-6&JiEVZWYov* zi3V}x6%QmMD{j^H-R%ZhH0b+*Nxr-{vQJ{{#!=L{{?tSD?owN zk6169=4`ZGk2>`(CM+iC40guiUjDxn^^dSKg7lsVaG8sX1wpbr6=4I!Zvj$7(zJK+ zJCBMIi#jo3R;j#y#p9nz0eT>clDH5SqW> zH$T5Hv14Fpm<>)2@{ad`h&qTIh)Fy9fFXyazD)k9NB--?>|tf)$Z@fx2=lSLk``4-J{e$G; z49UP7;vYU-m-koXicyHiY%PDlZWF~Jt39@vKY7 znP$g*qlf|vbr&`tPj&3lII_RAscWv|-I2=Sl9UwIav8o6_ezWF7yjK3Dt43gp6C&l z82sl4)s7~~HAx6#Y(QA_iu^;C7w~m)X=SVK%-z( zj}#>P&s)aRPWutagSBc_7d%CDRyyOo=ez#Z8Hn!S#G0z3Xn^Rk^nbPCREPfLHx0Sf zR_Vp{4c?_4!Sebu)=ZKC_g-%St#f+P^QsBmgCDrPJBdoI!IKNZd5Ea| z&2UtT>O%9$e-HfYGndjUCvMoRW6NO==Z=zTPI1*LNslrD!e7@~QrZ}-y5P53&8!g! z)Q7ybg0p527^eOfh%mx{Q3(uudCaB&XW;^NOrUv78Zo67>Fc zn&^n&%AkAA;te75PoD)>SpM_M*R5QXK4Mq*Z}%K*Yr4tzItuq5Z*`s;n#8?lL{Hx> z7q$+tM6i-7T$;E-N(NCY2IbW%T+n^OYv+ki*5xuE=c*Yo&V6#^VRM9il+e;+(mSW^ zqrpEWZn#x%tS&7q+_JlPYni>$VnCqUT9`HkRMeuR#|o`HuqJ+^uq12Yq-yg_wSUi( zzph$Qln-fD2UOcAR_@lGDWi2*6n{MHVW~}K3QTIt?TK|y{SWD2G-|MTDK0uwrc>~= z%qI#oxawhq1v{wvp-1Vv`<@h|thini7=cDhjD{Z4sFRGLg?0z)Nz_@9(4z0FW_-NO)X4H?|Qj z<;Ga=*v}@iaPXZ+)p2Phi_5;wfR-TZCrx#@obdN?_jDR2 zO>GpR5AQqgc3QzG=aluUb4PGc3QfQRHz+*t;_#slEeMXHHQ)nz_#x z5MZeR_g~}2u%k0UU1ZOSvaqva5rI*Wk!KY*d+(-*+P@B=_Gd1=SLf{Gj#0?YJlHI# znRtE%9klE1@aR#p2q}(w|0A?$<#5+Q4stJ1A<%EBD~SNnf?*}9j9K>gFDM2TRo4-! z3Nmo%ESK8K{UY!U^{OVBk^-Sa<~BbL6%k=5v81h~cF2D<^vJ_GIn`<1?)OSSpEInp zeT)w>!sxT;*Ph_-8RP3V3dim#7}i@&_cR#Jr^h-7XM8H2J^@<8Fh1^d`Mcb{!ORD3 z@t6*&h=5lBT%))(WS=7D5FWA~m-)CWMe53AYVKTVsNwbW3Rqh&)noAdU|eHxQF0w&5(&cw(L*eE6m zLXBUnq3rTY7O*%krR~8?#cY2TETT8&kFZW7-leabrom-2MND!6HrA>j^lpIDtapk3 zq$<{8SDHp)jCnj8F+5l(n7$JQl^6-qc#adh7FK21px}7)Vbda6tWDqkfc z4~JXfN%6{P3G|)Vfnp)O&VG-(wnm5~_fTUGycVlh%3Ow9i4lw4zi%8N7$wXhj2SFk z;x0#S6Dt>a$Sx;^Ac#PnRkB;ciS*(=?mMK5gHz5@5y#fm&PheMp5yNpk2n@BxmEwi z1_)&N;52xh$Ljn8NF|k>OHa?SNiBp6AbS`3azMCRp}a92~a zvnzPL@aAPDl=`R8=iAnQ*2*8urT?Nyuv_4mbZD_!uF zTLOUsG4+KQMg@F`uZm$}S)9VBANNZxm|*@qAjfrP-+E;q5pU+g^#^%jp*QK!6%6hX z09433BV46oRpBa%_~JTNXCdy`*$X#8bi$SLJU~ez8@O3T!^b>=U4BtPLg6FN@+Amj zbFRb6*h82!|Gj{}yt5TLaPVju_aB2+Vt><{dFd%!nviUQ9lFXv^hor_NN`C;#7<2_ zzq#;N`jg2vR&U4nN7cefy7gPeIz$*ACp7l6;1+SsI9up79!m7M2Na=pCG z7yMVRf8vT=&){dNs4d#lPG0qN`6mrk^lA}|HBF7Ky0#H6@N>R!y)>Ky9ZB#DER-2U6i~xkX?>vUCOGM= zF}6Z!Rz#SCf^jaJbtd)7#@h$!2V*CmGTqDd+L#(rp79Bfo r<^}tN@ebtQO(XJn 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

LzOOq7W57`^SbBj-Ixes#HHB6% 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 literal 0 HcmV?d00001 diff --git a/monitoring/docs/screenshots/lab08-rate(http_requests_total[5m])-query.png b/monitoring/docs/screenshots/lab08-rate(http_requests_total[5m])-query.png new file mode 100644 index 0000000000000000000000000000000000000000..1ecfc5ad6e86dbf1aeed0c5c3641b7050e0c801a GIT binary patch literal 56700 zcma&OcUTi!*EWuNY$#v>Q4mo95fC_1r3(lckWPry97S3}krI&5R1}n|p-Jy8flxy) zDiTDbr_cf-J)sCBL_+%w=XuU~-|ze5yMDPYu4HER?3umyntR>rUTb)3Vx-5x&d1Ki z#>N41nZHdoM2n8-F-!8fvn!RmPp#d2|%m zKKb;%l@A*mXZyk5p-#`@Cv0q#v!HvL7SHULD1kw}jQ!5F`QGZD4?S+2KBMXL7ta}7 zPZYk6iq+4*u56mS@cgpY@t+1_tg}k_DD#s#-ru&k=l*mus_yCC-t`iwrB%cA$d~85 z+9+6?rioSNypLTLjkQ#TouA)Ds%$-DJvjl~#eYAMXPq66{IkKvHokO1>(IZO+$w+M z{JX&xDIiKZaWH_tKR4CQ;1F}~?F;(S(-QL=mEO>`WLxH*^W|gXzU)X3St0I!T4rCY z{6hzoV2_7%E!$j-U{fr3nK|~qI_`KQa`W4w`qOHe%x?U)?*BRhT=J#KKi#mgb;QQU z6&Z(Dp6!T>OO8XK;uBD*kCzVr)1c%2c%byfv>Dl-ryR^*Jh3ahCuZcrw_Ci=7(g%HKH$+woNE~Bn##!5qB0HnwczKxamIDVu&G^lO|R66g&>r{qK*5_fd|hb(HDt z2VKT(7z@Erpxa9&i)P+vu|;2mDj?9ZG6PjH^6lX#U4T#u}WoSDs@!-pFGoN#%F+eJ^$*$%jD$b>#4fM9uMsj zr6KlSC%u#ra|t2V8}UY&>aGH0w3P&ys{~ul8{}RcZ0hajNBZb|j5@U~m?W%|8Ew(A z&g1^F-`lafYoyDHzs`eDRINd*Jl}ab@ZW`3#JmjG2>>nbwxVEi@1>w9nRE-0k2V6B zqYJ(IA&rv55D|)9Vrr%ouc#H0&Lj6eb9b`;@6O<1iJrOAqhJTR|B2;*2BNm4`?$q4> zgLRy`t2hB!rs8mJM48=|Y0nnL-)aXFH5-|TTm7X@MB5ucdw0!%J4LPx%=?P0MTQ$+ z#Kzbt^7$YCcj>kMUV8ebqQ2LfSqI94)g0`OEBje)o*Yjncb&2h{F!@QT15QDZ7aa$ z+9J}lx}TL87RbOXu=$6Z#~EXl8+`T1w(Ab@vzdN6D}t&XL2oeY517t`ra;eN`iNd+ zWGqTpZGU)!z3ehNwnar;OsT6L^xl<}oieeoAO3ACx!QG~jxm<^98pcHg-^ww&2s7P zm1NCDct+cCf}4=;#A18xy@Fi^&}j{9SKNKFnsVosUh-qvHM(V+wZ*mIp>#_N=pO{ z!N9~b_GXy4xjuQ;T)d~nU{St3KO?pE@;yMHacxmtP&<0; z5A=S;-e}<0%B~%FUt8h!Y9n-IWhIrhY|&$-+BvGo>KQ;oi(2)O$%NV8-J|u0JY6F` z*X1ncqG}?SxMzze_kiT*;U{^M)4PPlOe66{JF~8?uF+

hS1Gk1sos7Zmj{u3?4V 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 literal 0 HcmV?d00001 diff --git a/monitoring/grafana/dashboards/lab08-metrics.json b/monitoring/grafana/dashboards/lab08-metrics.json new file mode 100644 index 0000000000..b05c0fa86a --- /dev/null +++ b/monitoring/grafana/dashboards/lab08-metrics.json @@ -0,0 +1,454 @@ +{ + "id": null, + "uid": "lab08-prometheus-metrics", + "title": "Lab08 - Prometheus Metrics Overview", + "tags": [ + "lab08", + "prometheus", + "metrics", + "observability" + ], + "timezone": "browser", + "schemaVersion": 39, + "version": 1, + "refresh": "10s", + "time": { + "from": "now-30m", + "to": "now" + }, + "panels": [ + { + "id": 1, + "type": "timeseries", + "title": "Request Rate by Endpoint", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "targets": [ + { + "refId": "A", + "expr": "sum by (endpoint) (rate(http_requests_total{endpoint!=\"/metrics\"}[5m]))", + "legendFormat": "{{endpoint}}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + } + }, + { + "id": 2, + "type": "timeseries", + "title": "Error Rate (5xx)", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "targets": [ + { + "refId": "A", + "expr": "sum(rate(http_requests_total{status_code=~\"5..\"}[5m]))", + "legendFormat": "5xx errors/sec", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + } + }, + { + "id": 3, + "type": "timeseries", + "title": "Request Duration p95 by Endpoint", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 8 + }, + "targets": [ + { + "refId": "A", + "expr": "histogram_quantile(0.95, sum by (le, endpoint) (rate(http_request_duration_seconds_bucket{endpoint!=\"/metrics\"}[5m])))", + "legendFormat": "{{endpoint}} p95", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "s" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + } + }, + { + "id": 4, + "type": "stat", + "title": "Active Requests", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 8 + }, + "targets": [ + { + "refId": "A", + "expr": "sum(http_requests_in_progress)", + "legendFormat": "in-flight", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "none", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 5 + }, + { + "color": "red", + "value": 10 + } + ] + } + }, + "overrides": [] + }, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "textMode": "auto" + } + }, + { + "id": 5, + "type": "stat", + "title": "Application Uptime", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 8 + }, + "targets": [ + { + "refId": "A", + "expr": "max(devops_info_uptime_seconds)", + "legendFormat": "uptime", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "s" + }, + "overrides": [] + }, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "textMode": "auto" + } + }, + { + "id": 6, + "type": "heatmap", + "title": "Request Duration Heatmap", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 16 + }, + "targets": [ + { + "refId": "A", + "expr": "sum by (le) (rate(http_request_duration_seconds_bucket{endpoint!=\"/metrics\"}[5m]))", + "legendFormat": "{{le}}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "calculate": false, + "legend": { + "show": false + }, + "tooltip": { + "show": true, + "yHistogram": false + }, + "yAxis": { + "unit": "s" + } + } + }, + { + "id": 7, + "type": "piechart", + "title": "Status Code Distribution", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 16 + }, + "targets": [ + { + "refId": "A", + "expr": "sum by (status_code) (rate(http_requests_total[5m]))", + "legendFormat": "{{status_code}}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "options": { + "legend": { + "displayMode": "list", + "placement": "right" + }, + "pieType": "pie", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + } + } + }, + { + "id": 8, + "type": "stat", + "title": "App Target Uptime", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 25 + }, + "targets": [ + { + "refId": "A", + "expr": "up{job=\"app\"}", + "legendFormat": "app", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "none", + "mappings": [ + { + "type": "value", + "options": { + "0": { + "text": "DOWN" + }, + "1": { + "text": "UP" + } + } + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "textMode": "auto" + } + }, + { + "id": 9, + "type": "timeseries", + "title": "System Info Collection p95", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 7, + "w": 16, + "x": 8, + "y": 25 + }, + "targets": [ + { + "refId": "A", + "expr": "histogram_quantile(0.95, sum by (le) (rate(devops_info_system_collection_seconds_bucket[5m])))", + "legendFormat": "system info p95", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + } + } + ], + "fieldConfig": { + "defaults": { + "unit": "s" + }, + "overrides": [] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + } + } + ], + "templating": { + "list": [] + }, + "annotations": { + "list": [] + } +} diff --git a/monitoring/grafana/provisioning/datasources/loki.yml b/monitoring/grafana/provisioning/datasources/loki.yml index 9c54f7c886..abeeb463cf 100644 --- a/monitoring/grafana/provisioning/datasources/loki.yml +++ b/monitoring/grafana/provisioning/datasources/loki.yml @@ -3,6 +3,8 @@ apiVersion: 1 deleteDatasources: - name: Loki orgId: 1 + - name: Prometheus + orgId: 1 prune: true @@ -17,3 +19,15 @@ datasources: jsonData: maxLines: 1000 timeout: 60 + + - name: Prometheus + uid: prometheus + type: prometheus + access: proxy + url: http://prometheus:9090 + isDefault: false + editable: false + jsonData: + httpMethod: POST + prometheusType: Prometheus + timeInterval: 15s diff --git a/monitoring/prometheus/prometheus.yml b/monitoring/prometheus/prometheus.yml new file mode 100644 index 0000000000..405abc0fdf --- /dev/null +++ b/monitoring/prometheus/prometheus.yml @@ -0,0 +1,27 @@ +global: + scrape_interval: 15s + evaluation_interval: 15s + +scrape_configs: + - job_name: prometheus + static_configs: + - targets: + - localhost:9090 + + - job_name: app + metrics_path: /metrics + static_configs: + - targets: + - app-python:8000 + + - job_name: loki + metrics_path: /metrics + static_configs: + - targets: + - loki:3100 + + - job_name: grafana + metrics_path: /metrics + static_configs: + - targets: + - grafana:3000 From c6681e8410803a96ba957e0bce914ba0c4821f49 Mon Sep 17 00:00:00 2001 From: dorley174 Date: Thu, 2 Apr 2026 23:02:28 +0300 Subject: [PATCH 2/2] removed bonus point placeholders --- k8s/HELM.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/k8s/HELM.md b/k8s/HELM.md index ddd43a5cc4..b55e73dc21 100644 --- a/k8s/HELM.md +++ b/k8s/HELM.md @@ -1307,19 +1307,19 @@ curl http://127.0.0.1:8081/ready **Evidence — second chart install:** ```text -TO_FILL_BONUS_HELM_INSTALL +didn't complete ``` **Evidence — both releases present:** ```text -TO_FILL_BONUS_HELM_LIST +didn't complete ``` **Evidence — second app accessibility:** ```text -TO_FILL_BONUS_APP_CHECK +didn't complete ``` ### 8.5 Benefits of the library approach