From e5744586b3bdcd7b5af9fa57984eecb626d9fa3f Mon Sep 17 00:00:00 2001
From: "Eshan Roy (Eshanized)" <148610067+eshanized@users.noreply.github.com>
Date: Sun, 25 Feb 2024 17:40:03 +0530
Subject: [PATCH] Initial commit
---
.gitattributes | 9 +
.github/ISSUE_TEMPLATE/bug_report.md | 40 ++
.github/ISSUE_TEMPLATE/config.yml | 8 +
.github/ISSUE_TEMPLATE/maintainance-event.md | 17 +
.github/workflows/graphs.yml | 39 ++
.github/workflows/response-time.yml | 40 ++
.github/workflows/setup.yml | 72 +++
.github/workflows/site.yml | 48 ++
.github/workflows/summary.yml | 39 ++
.github/workflows/update-template.yml | 39 ++
.github/workflows/updates.yml | 37 ++
.github/workflows/uptime.yml | 40 ++
.templaterc.json | 3 +
.upptimerc.yml | 36 ++
LICENSE | 21 +
README.md | 107 ++++
api/google/response-time-day.json | 1 +
api/google/response-time-month.json | 1 +
api/google/response-time-week.json | 1 +
api/google/response-time-year.json | 1 +
api/google/response-time.json | 1 +
api/google/uptime-day.json | 1 +
api/google/uptime-month.json | 1 +
api/google/uptime-week.json | 1 +
api/google/uptime-year.json | 1 +
api/google/uptime.json | 1 +
api/hacker-news/response-time-day.json | 1 +
api/hacker-news/response-time-month.json | 1 +
api/hacker-news/response-time-week.json | 1 +
api/hacker-news/response-time-year.json | 1 +
api/hacker-news/response-time.json | 1 +
api/hacker-news/uptime-day.json | 1 +
api/hacker-news/uptime-month.json | 1 +
api/hacker-news/uptime-week.json | 1 +
api/hacker-news/uptime-year.json | 1 +
api/hacker-news/uptime.json | 1 +
api/i-pv6-test/response-time-day.json | 1 +
api/i-pv6-test/response-time-month.json | 1 +
api/i-pv6-test/response-time-week.json | 1 +
api/i-pv6-test/response-time-year.json | 1 +
api/i-pv6-test/response-time.json | 1 +
api/i-pv6-test/uptime-day.json | 1 +
api/i-pv6-test/uptime-month.json | 1 +
api/i-pv6-test/uptime-week.json | 1 +
api/i-pv6-test/uptime-year.json | 1 +
api/i-pv6-test/uptime.json | 1 +
api/test-broken-site/response-time-day.json | 1 +
api/test-broken-site/response-time-month.json | 1 +
api/test-broken-site/response-time-week.json | 1 +
api/test-broken-site/response-time-year.json | 1 +
api/test-broken-site/response-time.json | 1 +
api/test-broken-site/uptime-day.json | 1 +
api/test-broken-site/uptime-month.json | 1 +
api/test-broken-site/uptime-week.json | 1 +
api/test-broken-site/uptime-year.json | 1 +
api/test-broken-site/uptime.json | 1 +
api/wikipedia/response-time-day.json | 1 +
api/wikipedia/response-time-month.json | 1 +
api/wikipedia/response-time-week.json | 1 +
api/wikipedia/response-time-year.json | 1 +
api/wikipedia/response-time.json | 1 +
api/wikipedia/uptime-day.json | 1 +
api/wikipedia/uptime-month.json | 1 +
api/wikipedia/uptime-week.json | 1 +
api/wikipedia/uptime-year.json | 1 +
api/wikipedia/uptime.json | 1 +
assets/upptime-icon.svg | 4 +
graphs/google.png | Bin 0 -> 16200 bytes
graphs/google/response-time-day.png | Bin 0 -> 12229 bytes
graphs/google/response-time-month.png | Bin 0 -> 19755 bytes
graphs/google/response-time-week.png | Bin 0 -> 14117 bytes
graphs/google/response-time-year.png | Bin 0 -> 75602 bytes
graphs/google/response-time.png | Bin 0 -> 70906 bytes
graphs/hacker-news.png | Bin 0 -> 12250 bytes
graphs/hacker-news/response-time-day.png | Bin 0 -> 12148 bytes
graphs/hacker-news/response-time-month.png | Bin 0 -> 42727 bytes
graphs/hacker-news/response-time-week.png | Bin 0 -> 21019 bytes
graphs/hacker-news/response-time-year.png | Bin 0 -> 30987 bytes
graphs/hacker-news/response-time.png | Bin 0 -> 30774 bytes
graphs/i-pv6-test/response-time-day.png | Bin 0 -> 1196 bytes
graphs/i-pv6-test/response-time-month.png | Bin 0 -> 12104 bytes
graphs/i-pv6-test/response-time-week.png | Bin 0 -> 1196 bytes
graphs/i-pv6-test/response-time-year.png | Bin 0 -> 18763 bytes
graphs/i-pv6-test/response-time.png | Bin 0 -> 18763 bytes
graphs/test-broken-site/response-time-day.png | Bin 0 -> 1196 bytes
.../test-broken-site/response-time-month.png | Bin 0 -> 1196 bytes
.../test-broken-site/response-time-week.png | Bin 0 -> 1196 bytes
.../test-broken-site/response-time-year.png | Bin 0 -> 1196 bytes
graphs/test-broken-site/response-time.png | Bin 0 -> 1196 bytes
graphs/wikipedia.png | Bin 0 -> 23004 bytes
graphs/wikipedia/response-time-day.png | Bin 0 -> 12683 bytes
graphs/wikipedia/response-time-month.png | Bin 0 -> 36430 bytes
graphs/wikipedia/response-time-week.png | Bin 0 -> 19347 bytes
graphs/wikipedia/response-time-year.png | Bin 0 -> 34356 bytes
graphs/wikipedia/response-time.png | Bin 0 -> 35893 bytes
history/LICENSE | 540 ++++++++++++++++++
history/google.yml | 7 +
history/hacker-news.yml | 7 +
history/i-pv6-test.yml | 7 +
history/summary.json | 512 +++++++++++++++++
history/test-broken-site.yml | 7 +
history/wikipedia.yml | 7 +
102 files changed, 1736 insertions(+)
create mode 100644 .gitattributes
create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
create mode 100644 .github/ISSUE_TEMPLATE/config.yml
create mode 100644 .github/ISSUE_TEMPLATE/maintainance-event.md
create mode 100644 .github/workflows/graphs.yml
create mode 100644 .github/workflows/response-time.yml
create mode 100644 .github/workflows/setup.yml
create mode 100644 .github/workflows/site.yml
create mode 100644 .github/workflows/summary.yml
create mode 100644 .github/workflows/update-template.yml
create mode 100644 .github/workflows/updates.yml
create mode 100644 .github/workflows/uptime.yml
create mode 100644 .templaterc.json
create mode 100644 .upptimerc.yml
create mode 100644 LICENSE
create mode 100644 README.md
create mode 100644 api/google/response-time-day.json
create mode 100644 api/google/response-time-month.json
create mode 100644 api/google/response-time-week.json
create mode 100644 api/google/response-time-year.json
create mode 100644 api/google/response-time.json
create mode 100644 api/google/uptime-day.json
create mode 100644 api/google/uptime-month.json
create mode 100644 api/google/uptime-week.json
create mode 100644 api/google/uptime-year.json
create mode 100644 api/google/uptime.json
create mode 100644 api/hacker-news/response-time-day.json
create mode 100644 api/hacker-news/response-time-month.json
create mode 100644 api/hacker-news/response-time-week.json
create mode 100644 api/hacker-news/response-time-year.json
create mode 100644 api/hacker-news/response-time.json
create mode 100644 api/hacker-news/uptime-day.json
create mode 100644 api/hacker-news/uptime-month.json
create mode 100644 api/hacker-news/uptime-week.json
create mode 100644 api/hacker-news/uptime-year.json
create mode 100644 api/hacker-news/uptime.json
create mode 100644 api/i-pv6-test/response-time-day.json
create mode 100644 api/i-pv6-test/response-time-month.json
create mode 100644 api/i-pv6-test/response-time-week.json
create mode 100644 api/i-pv6-test/response-time-year.json
create mode 100644 api/i-pv6-test/response-time.json
create mode 100644 api/i-pv6-test/uptime-day.json
create mode 100644 api/i-pv6-test/uptime-month.json
create mode 100644 api/i-pv6-test/uptime-week.json
create mode 100644 api/i-pv6-test/uptime-year.json
create mode 100644 api/i-pv6-test/uptime.json
create mode 100644 api/test-broken-site/response-time-day.json
create mode 100644 api/test-broken-site/response-time-month.json
create mode 100644 api/test-broken-site/response-time-week.json
create mode 100644 api/test-broken-site/response-time-year.json
create mode 100644 api/test-broken-site/response-time.json
create mode 100644 api/test-broken-site/uptime-day.json
create mode 100644 api/test-broken-site/uptime-month.json
create mode 100644 api/test-broken-site/uptime-week.json
create mode 100644 api/test-broken-site/uptime-year.json
create mode 100644 api/test-broken-site/uptime.json
create mode 100644 api/wikipedia/response-time-day.json
create mode 100644 api/wikipedia/response-time-month.json
create mode 100644 api/wikipedia/response-time-week.json
create mode 100644 api/wikipedia/response-time-year.json
create mode 100644 api/wikipedia/response-time.json
create mode 100644 api/wikipedia/uptime-day.json
create mode 100644 api/wikipedia/uptime-month.json
create mode 100644 api/wikipedia/uptime-week.json
create mode 100644 api/wikipedia/uptime-year.json
create mode 100644 api/wikipedia/uptime.json
create mode 100644 assets/upptime-icon.svg
create mode 100644 graphs/google.png
create mode 100644 graphs/google/response-time-day.png
create mode 100644 graphs/google/response-time-month.png
create mode 100644 graphs/google/response-time-week.png
create mode 100644 graphs/google/response-time-year.png
create mode 100644 graphs/google/response-time.png
create mode 100644 graphs/hacker-news.png
create mode 100644 graphs/hacker-news/response-time-day.png
create mode 100644 graphs/hacker-news/response-time-month.png
create mode 100644 graphs/hacker-news/response-time-week.png
create mode 100644 graphs/hacker-news/response-time-year.png
create mode 100644 graphs/hacker-news/response-time.png
create mode 100644 graphs/i-pv6-test/response-time-day.png
create mode 100644 graphs/i-pv6-test/response-time-month.png
create mode 100644 graphs/i-pv6-test/response-time-week.png
create mode 100644 graphs/i-pv6-test/response-time-year.png
create mode 100644 graphs/i-pv6-test/response-time.png
create mode 100644 graphs/test-broken-site/response-time-day.png
create mode 100644 graphs/test-broken-site/response-time-month.png
create mode 100644 graphs/test-broken-site/response-time-week.png
create mode 100644 graphs/test-broken-site/response-time-year.png
create mode 100644 graphs/test-broken-site/response-time.png
create mode 100644 graphs/wikipedia.png
create mode 100644 graphs/wikipedia/response-time-day.png
create mode 100644 graphs/wikipedia/response-time-month.png
create mode 100644 graphs/wikipedia/response-time-week.png
create mode 100644 graphs/wikipedia/response-time-year.png
create mode 100644 graphs/wikipedia/response-time.png
create mode 100644 history/LICENSE
create mode 100644 history/google.yml
create mode 100644 history/hacker-news.yml
create mode 100644 history/i-pv6-test.yml
create mode 100644 history/summary.json
create mode 100644 history/test-broken-site.yml
create mode 100644 history/wikipedia.yml
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..2a9eb71d
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,9 @@
+# Markdown
+*.md linguist-detectable=true
+*.md linguist-documentation=false
+
+# JSON
+*.json linguist-detectable=true
+
+# YAML
+*.yml linguist-detectable=true
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..e705887d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,40 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: 'bug'
+assignees: 'AnandChowdhary'
+
+---
+
+
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 00000000..5c1e2009
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: true
+contact_links:
+ - name: Feature requests and ideas
+ url: https://github.com/upptime/upptime/discussions/new?category=ideas
+ about: Suggest an idea for this project
+ - name: Questions
+ url: https://github.com/upptime/upptime/discussions/new?category=q-a
+ about: Please ask and answer questions here
diff --git a/.github/ISSUE_TEMPLATE/maintainance-event.md b/.github/ISSUE_TEMPLATE/maintainance-event.md
new file mode 100644
index 00000000..7abcd253
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/maintainance-event.md
@@ -0,0 +1,17 @@
+---
+name: Maintenance Event
+about: Schedule a work window
+title: "[Scheduled Maintenance] Site down for Maintenance"
+labels: maintenance
+assignees: ''
+
+---
+
+
+
+**Additional context**
+Who/what/when/where/why is this maintenance happening
diff --git a/.github/workflows/graphs.yml b/.github/workflows/graphs.yml
new file mode 100644
index 00000000..57a9f898
--- /dev/null
+++ b/.github/workflows/graphs.yml
@@ -0,0 +1,39 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Graphs CI
+on:
+ schedule:
+ - cron: "0 0 * * *"
+ repository_dispatch:
+ types: [graphs]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Generate graphs
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate graphs
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "graphs"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/response-time.yml b/.github/workflows/response-time.yml
new file mode 100644
index 00000000..cac5feba
--- /dev/null
+++ b/.github/workflows/response-time.yml
@@ -0,0 +1,40 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Response Time CI
+on:
+ schedule:
+ - cron: "0 23 * * *"
+ repository_dispatch:
+ types: [response_time]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Check status
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update response time
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "response-time"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ SECRETS_CONTEXT: ${{ toJson(secrets) }}
diff --git a/.github/workflows/setup.yml b/.github/workflows/setup.yml
new file mode 100644
index 00000000..2bd32e61
--- /dev/null
+++ b/.github/workflows/setup.yml
@@ -0,0 +1,72 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Setup CI
+on:
+ push:
+ paths:
+ - ".upptimerc.yml"
+ repository_dispatch:
+ types: [setup]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Setup Upptime
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update template
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "update-template"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - name: Update response time
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "response-time"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ SECRETS_CONTEXT: ${{ toJson(secrets) }}
+ - name: Update summary in README
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "readme"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate graphs
+ uses: benc-uk/workflow-dispatch@v1
+ with:
+ workflow: Graphs CI
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate site
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "site"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - uses: peaceiris/actions-gh-pages@v3.7.3
+ name: GitHub Pages Deploy
+ with:
+ github_token: ${{ secrets.GH_PAT || github.token }}
+ publish_dir: "site/status-page/__sapper__/export/"
+ force_orphan: "false"
+ user_name: "Upptime Bot"
+ user_email: "73812536+upptime-bot@users.noreply.github.com"
diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml
new file mode 100644
index 00000000..f5e597ad
--- /dev/null
+++ b/.github/workflows/site.yml
@@ -0,0 +1,48 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Static Site CI
+on:
+ schedule:
+ - cron: "0 1 * * *"
+ repository_dispatch:
+ types: [static_site]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Build and deploy site
+ runs-on: ubuntu-latest
+ if: "!contains(github.event.head_commit.message, '[skip ci]')"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate site
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "site"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - uses: peaceiris/actions-gh-pages@v3.7.3
+ name: GitHub Pages Deploy
+ with:
+ github_token: ${{ secrets.GH_PAT || github.token }}
+ publish_dir: "site/status-page/__sapper__/export/"
+ force_orphan: "false"
+ user_name: "Upptime Bot"
+ user_email: "73812536+upptime-bot@users.noreply.github.com"
diff --git a/.github/workflows/summary.yml b/.github/workflows/summary.yml
new file mode 100644
index 00000000..08f8c09f
--- /dev/null
+++ b/.github/workflows/summary.yml
@@ -0,0 +1,39 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Summary CI
+on:
+ schedule:
+ - cron: "0 0 * * *"
+ repository_dispatch:
+ types: [summary]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Generate README
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update summary in README
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "readme"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/update-template.yml b/.github/workflows/update-template.yml
new file mode 100644
index 00000000..b1c69953
--- /dev/null
+++ b/.github/workflows/update-template.yml
@@ -0,0 +1,39 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Update Template CI
+on:
+ schedule:
+ - cron: "0 0 * * *"
+ repository_dispatch:
+ types: [update_template]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update template
+ uses: upptime/uptime-monitor@master
+ with:
+ command: "update-template"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/updates.yml b/.github/workflows/updates.yml
new file mode 100644
index 00000000..a40fd975
--- /dev/null
+++ b/.github/workflows/updates.yml
@@ -0,0 +1,37 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Updates CI
+on:
+ schedule:
+ - cron: "0 3 * * *"
+ repository_dispatch:
+ types: [updates]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Deploy updates
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update code
+ uses: upptime/updates@master
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/uptime.yml b/.github/workflows/uptime.yml
new file mode 100644
index 00000000..4138a4fa
--- /dev/null
+++ b/.github/workflows/uptime.yml
@@ -0,0 +1,40 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.36.4
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Uptime CI
+on:
+ schedule:
+ - cron: "*/5 * * * *"
+ repository_dispatch:
+ types: [uptime]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Check status
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Check endpoint status
+ uses: upptime/uptime-monitor@v1.36.4
+ with:
+ command: "update"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ SECRETS_CONTEXT: ${{ toJson(secrets) }}
diff --git a/.templaterc.json b/.templaterc.json
new file mode 100644
index 00000000..3c6c2a11
--- /dev/null
+++ b/.templaterc.json
@@ -0,0 +1,3 @@
+{
+ "files": [".github/**/*"]
+}
diff --git a/.upptimerc.yml b/.upptimerc.yml
new file mode 100644
index 00000000..9eeecf2c
--- /dev/null
+++ b/.upptimerc.yml
@@ -0,0 +1,36 @@
+# Change these first
+owner: upptime # Your GitHub organization or username, where this repository lives
+repo: upptime # The name of this repository
+
+sites:
+ - name: Google
+ url: https://www.google.com
+ - name: Wikipedia
+ url: https://en.wikipedia.org
+ - name: Hacker News
+ url: https://news.ycombinator.com
+ - name: Test Broken Site
+ url: https://thissitedoesnotexist.koj.co
+ - name: IPv6 test
+ url: forwardemail.net
+ port: 80
+ check: "tcp-ping"
+ ipv6: true
+
+status-website:
+ # Add your custom domain name, or remove the `cname` line if you don't have a domain
+ # Uncomment the `baseUrl` line if you don't have a custom domain and add your repo name there
+ cname: demo.upptime.js.org
+ # baseUrl: /your-repo-name
+ logoUrl: https://raw.githubusercontent.com/upptime/upptime.js.org/master/static/img/icon.svg
+ name: Upptime
+ introTitle: "**Upptime** is the open-source uptime monitor and status page, powered entirely by GitHub."
+ introMessage: This is a sample status page which uses **real-time** data from our [GitHub repository](https://github.com/upptime/upptime). No server required — just GitHub Actions, Issues, and Pages. [**Get your own for free**](https://github.com/upptime/upptime)
+ navbar:
+ - title: Status
+ href: /
+ - title: GitHub
+ href: https://github.com/$OWNER/$REPO
+
+# Upptime also supports notifications, assigning issues, and more
+# See https://upptime.js.org/docs/configuration
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..f76bb38c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Anand Chowdhary
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..4ca83625
--- /dev/null
+++ b/README.md
@@ -0,0 +1,107 @@
+# [](https://upptime.js.org)
+
+
+
+**Upptime** (https://upptime.js.org) is the open-source uptime monitor and status page, powered entirely by GitHub Actions, Issues, and Pages. It's made with 💚 by [Anand Chowdhary](https://anandchowdhary.com), supported by [Pabio](https://pabio.com).
+
+> I find Upptime an incredible clever usage of \[GitHub Actions]. You essentially get a free configurable uptime monitor for whatever you want. – [CSS Tricks](https://css-tricks.com/upptime/)
+
+Upptime is used by [**1,000+**](https://github.com/topics/upptime) people and teams to ensure they know when their endpoints go down.
+
+
+
+[](https://github.com/upptime/upptime/actions?query=workflow%3A%22Uptime+CI%22)
+[](https://github.com/upptime/upptime/actions?query=workflow%3A%22Response+Time+CI%22)
+[](https://github.com/upptime/upptime/actions?query=workflow%3A%22Graphs+CI%22)
+[](https://github.com/upptime/upptime/actions?query=workflow%3A%22Static+Site+CI%22)
+[](https://github.com/upptime/upptime/actions?query=workflow%3A%22Summary+CI%22)
+
+## [📈 Live Status](https://demo.upptime.js.org): **🟧 Partial outage**
+
+
+
+
+
+| URL | Status | History | Response Time | Uptime |
+| --- | ------ | ------- | ------------- | ------ |
+| [Google](https://www.google.com) | 🟩 Up | [google.yml](https://github.com/upptime/upptime/commits/HEAD/history/google.yml) | |
+|
[Wikipedia](https://en.wikipedia.org) | 🟩 Up | [wikipedia.yml](https://github.com/upptime/upptime/commits/HEAD/history/wikipedia.yml) | |
+|
[Hacker News](https://news.ycombinator.com) | 🟩 Up | [hacker-news.yml](https://github.com/upptime/upptime/commits/HEAD/history/hacker-news.yml) | |
+|
[Test Broken Site](https://thissitedoesnotexist.koj.co) | 🟥 Down | [test-broken-site.yml](https://github.com/upptime/upptime/commits/HEAD/history/test-broken-site.yml) | |
+|
[IPv6 test](forwardemail.net) | 🟥 Down | [i-pv6-test.yml](https://github.com/upptime/upptime/commits/HEAD/history/i-pv6-test.yml) | |
+
+
+
+
+
+## ⭐ How it works
+
+- GitHub Actions is used as an uptime monitor
+ - Every 5 minutes, a workflow visits your website to make sure it's up
+ - Response time is recorded every 6 hours and committed to git
+ - Graphs of response time are generated every day
+- GitHub Issues is used for incident reports
+ - An issue is opened if an endpoint is down
+ - People from your team are assigned to the issue
+ - Incidents reports are posted as issue comments
+ - Issues are locked so non-members cannot comment on them
+ - Issues are closed automatically when your site comes back up
+ - Slack notifications are sent on updates
+- GitHub Pages is used for the status website
+ - A simple, beautiful, and accessible PWA is generated
+ - Built with Svelte and Sapper
+ - Fetches data from this repository using the GitHub API
+
+_Upptime is not affiliated to or endorsed by GitHub._
+
+[](https://upptime.js.org)
+
+## 👩💻 [Documentation](https://upptime.js.org)
+
+1. [How it works](https://upptime.js.org/docs)
+1. [Getting started](https://upptime.js.org/docs/get-started)
+1. [Configuration](https://upptime.js.org/docs/configuration)
+1. [Triggers](https://upptime.js.org/docs/triggers)
+1. [Notifications](https://upptime.js.org/docs/notifications)
+1. [Badges](https://upptime.js.org/docs/badges)
+1. [Packages](https://upptime.js.org/docs/packages)
+1. [Contributing](https://upptime.js.org/docs/contributing)
+1. [Frequently Asked Questions](https://upptime.js.org/docs/faq)
+
+### Concepts
+
+#### Issues as incidents
+
+When the GitHub Actions workflow detects that one of your URLs is down, it automatically opens a GitHub issue ([example issue #67](https://github.com/upptime/upptime/issues/67)). You can add incident reports to this issue by adding comments. When your site comes back up, the issue will be closed automatically as well.
+
+
+ ![]() |
+
+ ![]() |
+
+ ![]() |
+
+ ![]() |
+
LoE%wh_uWHA%YCjA<`!q~pTh~_qJ#|Z_GBQ|6Z@BV*YVjxT-K#hw7~+nk zuabNe8dvgu>f6oMTCwap52s!|owPb)*RH;4Yz!}4c3j%berjiNKt{}B3S${3Zh2tr1PRFgM zFIt|b-4%U6C@yg8nVk>+`bNnxJov!E^K|LDYf35!j4HPru5GP;;$XMBqHc>;wGH#M z9jh-0Zm`?PeAhgql%e79nbUo%PpQf6Sk}|P`oQqWJq^nV@83L%4WC;Yaq`fOIGy0? zo-lR>3zKg#JH5}%d~`s7k^4Y$%9``vZZiKUj*Qr1tsZLi`0wn}=UUg)qU0DBB>SC; z|4 FMR4*D~pHUYLG=lFwI7$r` $`#|&k zN%P8zCuW3;{^n?NDT;Oui%R_9RmI5gU_nEu`ty^S;97M3L*px1mL2jh9$s(0baCtI zDCRJS@H$U@1_q0c6xrNE)rNK9OxKiecg
f=dadyXES|aWQ?78>sQqVrS;*5Lcf?ktmeJ8pg?0=SLlplyS XtjD8GYzn5%1S891I8Q{w&Kn@w4#MH4aAZ1HsG@;d#C8g4X7) z?w5Ie+t%#;%UxH^wU>!Oz}E4Hxuw1R{>@zttPeKkdsr4R+z;Eo?K< <9+l@u z4NF&pyexHK*|&f<93QM}h1RtcM@g+YI5A>p+dtM Y{NrfDBey-M8}suTQIa4$2%%AWY}@>7-{Pd+PR5^G35aoYNr+>Za+ z>>rA)wSJo M-&Wnx=6IRWcvj4&BwcE2LW|^*DI z?tggdhncdX=S0`+-^9<&5F|Q(VT|1SPnKJ>9P|YZriwpd*te}Jbw0aJAxou)%68L~ zrLDznm%JG!bp0sJoi&Gh{mMAU156*TnX8y8v48k3eb$aY;$m$?sQ29Eobt=2GbpGs zPg}U6NKa;ap)Di#0d1Kba?dZnU_HHU{hM{39Sx=TmoXjBc1q>6Wo1|?x#3EbrMO?V zmRbU11?&8UeeX`cF64U}eD>)%(KYuk1~W`3a@o{ZdXNA2t9MpRVh!c{WHar%MK?rG zHek#y^KPCh$hWO+4P)!9`S+L_LY&^%Pc42R>H7JR+5StL81@QnxMF45usl!OYes|W zo*g!2`U}rr$y>giL1F3#$x|)!G#GqOGkq~&f3> =QqAK;qdB?wU|qrOLe%X4QY zu?Ba6)lQu|{(Jp8wNC0e*ERbiZT?lf3_(n%txnDR{?GqhqyD>9ARlWagnl`)eQ`xq z+QmH)CoWxm_(h6g2@@#O&-u;P`rM7%0F)#I)?G`PpTK|Te9GU|6|(=|p6s5_yzHBR zEjz=?28$cY&-Zz2O*>K=x3rY8$|yndVD{4ow%bb*o!Yb)u84V4;VZG|IfH`fvy9xf zIlqq`tK?>1%YDJS`TMb3S2?9O$lZ>6wc^D((~HFn6O@X-NLhaO?fNX5wnfjOpD%7} z1mC@r(T6ytH>7R763u+(TGQg+m#(i?zgW#M;ZO0FPwbZN_M1Tstp}_|$_pRQy{^A! z&u+6s=4k~LFCRr5477dDRwckN$tuQm(|* %eol#*W^R$IA*P|9+_}3))-g2rK+Y3b(kBQCSf8CnODZfF@Osa2k z%PS+WsR=J{U0z#Ua#jnJF4)#b3EZ~HRH->oRps9LStXI%mV?1lZiCoK%lt!Wpk@!} zr%!zw+26Joeb^^({M7;5r8nvozA0{5mn6AU{qjVH30oLX2W&t6^IhjNBPOv1b+&bq zGK%c)Ub^n&lwW6c>xEuc#l^`C6MDYr&-iXyJ@2;mvt1>@ThrdHR8L^6cszTeQ7qfk z)vKpft0mkG*nH{dtPhe^LJX5Wdl#HLaZTxhs% YrTA!vEMcNI8ioqG`af4 h6ziGw 6Nfn)+24v;RxCH4TA`P4 zclXA#Zr^u;OcZ8xo~!YE2c!wS=fHtW+xOj!iavUwYRNV)|KAzGE0q&8XTJ<(@YvMw zRon9T-HXlnk{Ou|JNWL**;w?T??vNj=jy}P-v(%Ky_fxAYv;fI#BVKIZibUh=L3|B z=G7Hs3o>#aP`=-jcCyiWTVAg^^R$ADlTA15);PU&suE+E1kPpG?IwJ_-ECXZE7{8{ z;Qod&T8sVNl(mBA+19LHHSKtu@T^xUAhnF?l5-DE4Cp_%c#E0CoD)4QecRdJF8{6X z6}C3K?0SV+!ri?O??xQBbT$6+ZiWdwKT4kRS#FPw+6Zb6b~a{fOh4VI9k;R4G=_6| zo_5(h6`iH!j0%zkd5?GOtm9?mJ|NBLT^+}F=XG{?l~uytO{ TF4GcDh1)yeJfqaIEt?Y&tXQiEM6|);=)@s@EFw9#fZoWf!1H&WNuxl5; zHT(_WyYsv}tkNzaHfo}{wdacL@=GTf9=y~)nD~~*a`{}TnYSMoYv}R`ursw YVRK>Xx%>gH8Q;*5mrJla1A(S2r!;h?p$p``q(T z=oce~imG{LQ_ZUuH(4`sE6iiQ9`O0e0ona44K$gqT|O&%uJ_&k#nTxNJpNp=bk5}? zo|#Ny4d!g` t#Wq_Vp(%jm-iY&a5irwqw@EZDk+9NCs<2w9{ 07bh z2bercj&NFAX0W$9Uz4$(q2hc%XkPrT6M`GItbUox@Zrhy1Y--QbE%;I&(xoj!`KTv z4_uL(z+9g4)Y?;cUCZ^WYdTnUVr%EzV`I>NWPF7^`FF~6P)L3}dm @b{<+Jml%8*TpBDpa{GT|GJB|7K#buY4a7A36?KOunTX`=pgWTNZ z<|lXN{Q4FIYKTwXXm?wk{q2E*3$v~U%@1MBJ~r>yi=$WB>yDpqd-k+;W*j?%f9q<~ zo9Z_{Uw@t?=WQPP`YWja-_RnzV^`IDo`~sRKAe41yYz;@tzG=94W8Fj$ujI|IUk@m zz4*q4ORam&$}fFl$YYwe^4W>T>U4dPb+5VCuZR-kj#&1MVJ{!Uy 8am2O2y5PU7=Nzuvvw0Fo-4CAJnoaNb3+>yn`c~zn56p&%7k@K6 z=)AgmLs{FL{eHb?wm$pv=#J-W=92OU%MSe0UO8jNllQa4I8!hEW_ZwB88uVo`MT3p zI|WSE@?W^yIGgGB`X%DipIe4+%v=1O@qqH@EtkSu7i88p (_y_%R8I4Hu*C!s94RMc)|S5e3{2UaYMH2!`? zcmspbzvw`&xBG?c_AWjoxgqKY3xmU=$#P+NlRjVT*mQKSUH&CzhP#{*np^&RS?peV zP%0tIDB-Pi#II}SKSdZElpbHcdi|-5?lwz-4GcnmqbJUk_E`Ei{L*J{@uPl1Vr=W5 zOlDx{{OcNF{B(|Ks`m^~*mS&33d;OH^~ q);_SZNo_=rp$^(KMro`BBGECU;d5ffs;`7zU-Os+Boa3p_P|~_) z&EmP&^=z)j%rjzqz42}8x!!ltKMWWg771Ordi-gP=_=4DiNeK?qFLgn9IaI*-CliN z@5|Ol9mQ2Si+|s%n`rL;M3|9*b7#}j9S?r~^R;5+el+Dy@14oUhZS`%^ZZp^^%vCD zSL4gg*3v)WSnVrctNqHmeX3s1+9c6c_aB1vy2sr!d~`3wGTav2Abz)Vf!^;OJjPo} zOYW}nKickPv8(K9dfA06xk>+zg=Z*UXI$;UcgwTa?G)>p>{a0wal%@cf4VR@EPBYT zEq Q}F!(|BPGC7q5y2-z`tR z`>NS0>d(yN=1nn;H{KXu{eARUZq&x$=5J{?%ak@Oi`sE(|HZviKt|js-nwwz)X!JG zo4sbyd0_==I^Dlemt5arSH`xS+j@u4gGHORFJ7(pukXs$RSpr>{bII<7F@j=f7)#K z&bnMLwl&umOW%#Qw~hzb>vob16Aa$0um2ht|9-zxLgf?(7f*hPsBM2A{w)8!K}D{v zS-E)aZu33TwqI36w$5ssrn4dLc5u3Hw${dDSJrN0Yi)kpeC>H%Y-Qi|w)VeaSE_8! z^>3THB;|n6yy! FYU&jk>u<5w5 bK(^wT?;~ X3MpAr~P9+rEt?tvdqGF z>gz(QqL8yi$6qZs>-A@6P&p%>7+h;scBz_`k=ttGslx}o|17(9#V#T?=HE8cwJUcV zJ~#LBC4sL6@(uFuS9I;O%h_+9?Xd9K@~g=|c)mK`v{Tl;=XtYWYyINt#?POPrh|<1 zIbd|9{OKQ)js5;rm!&)X;_ex;=dt`hB-wOC?X@%O>UCDP`4Y{qug~1?{(5i2#9}L1 z1@^U@Vz!;NuufP~bf9XB=C+Hr39EW*tQZso1yZ}_eCOY{VfCyAR$1c>U)JXT;?3P_ z9MQQq__4X@t%Vx@ (MyPkjl8ROZnqLJzLA!q-(cO`ABy|t%B=zl9vs^78FVpsm@kMIB1 z)+<|BO#OW*eZ}I`>N#^6n#~N&cIhW9wq{Vd5hHtdvCQ1*>sCj49%yR*`1;h^bC SoQJQPHf>)kSuM1D!qcy&+H)1N;|~P9^IF)j z)$!lE$ ;X-@y*L63-`h=LoTvng+D_bWJ8?x_6)!L 9 zzZ)?($}aC-d2jxd`yE_O%un`N1m3MXHZRI4lzm>H$@xHjZ`pG%*c$Gs7z jWP0AbRq *T-$yspookc9_H-BTu$Bt3Q3;wW;fJ zv%8kXD~lf+^mXlT^k3v-*lQI2{=T;K-1;Np|7LQQU1qbr!Y#8yIWzlp^`l3uoZ+um zS$CaY?jH8U()rrF{HdA$C$cbRxBr>D?8`yh32~pBHXZGodS=eXo(hH+yiCi!1t`6r zy0pEDasI+5r}!P+N`k9XFWJPz-wMs; Hys#_na`?Y0-vc<8$ z0+R#{W66&U7rf)!!cXsXk8$un;I*|NHEX-|_gLR7lS%IwfB$vc?E8{UKYsQj^Q+sR zyf1WqtHl(uoU5;G?qB(|E6fi5m-RnA>-<*pdA*Cyd4~h9SdY|+>|glTwT@w(@1xUA z>sLiRt2yz{GU3U*H(USRig$AU>+nzR@@y}TfLJ|?Reyr7EKU5v?BFkCaCP_7J;rNN z5}nTVehKnl7bkhk`V+GPm(jjyN0wi7Q9O6Kt4P*WeXHv{=?#6s^U}rjJKh;8JCypR z-|Q=i-Pv`KpTV}X;@Anx=Y4H8Okr82`>N(IZfP_vjV`=opRznpH|z5%g9MH8%2nri zwubz>yMK3~?ZK7Y_X0Lw5?nV`CyjyOg=X86{U1f2hZdhV2^ZK9)XE(G@K3(hyQhNd z9g`Kke|OtY`m5`|#_ZLp$hF!A%hL94+THfx%HP@u)iX>C7lN0}ywzK@&vJD|-Jx^c zUqa5WX?bF4Z7=C%RI=;T?|HkneZM^Ol#oA*j=Sjt?bXu+XYE?Sv7|BLz%QREYKdwL z4RV#oW@YuwS)acy-uZx+=%vG_e9wh9U!LU^{4P;DuAObpdM@9u?^@*6WN-4{@PFR> z?P1J$T52Yxhl{<%t(vx$*=}ZJI5HPB0B`xM{z=T|8{dMM!n~He`pf^yc4Kg}cJQ~v z>e$}Lp$k|3+gg7x-{12}U9s3|VeP(Rp*2z)!uPDq+iIL}HqDKpVTXNs>02Yq^E{fT zd|&*Wb+0S^xb!Rkl;iWIW@hi*WnKDyL-zkw0drRPJji#xoqY5a7pM2#FYVFFeZB9p zM2(pkj!4g6_%G(1@%8H}-~OdlY5RTA4>-Tk`p^AMkL5iMH7$z$>VDhn)*h`d(x=LW z^S+)sAt}B3j@+iW=Sk_}ORZk5DcQVrzrDR?{lV)qB^ea<6>r;hTl==HwZ zt6myU?<>9ItugJ>Oj!nny!eh%Rqu29i&sro|5M}9ztcs={k!xj`IP1NgZ58j&$X7% z{J$z7{JnR_!K{qzC-+}w@$-b`&r!$?&e_%|$;9x;Jbm@-Cx478y;~Zlepwy9>sQt5 z&Nh#{lA~?xZw0k#rC+tz*;Xeot%-Ykd;h9sk^br#stM<1^D-m{y{wn^b%D8Z9%{cd%4*za?vtakA? zf3yl)Uv*3{wL5t|r|;XcG%kjM{Z&iPPWXIER8Eu4cl}O h9<)S(TmL~uk zY(1zwSM;|0_QTBl*Zpj2q_0_qZ~UivD*DSo2i #V77K4e#Tl;67f-ZbLyX)#Or1JXy%zSz6{%$mO9c`|=K_G$fE z%Kj_Dr)ksN%RLWn`baTccw2cp E7M>rIdS&sxoPO@W ze~%oh|If}YW>{d&Qc^lET-@Zv-gRpl)||9E`0k1Q$#eUv5AU||iM{3{^-ANefWcL_ zi^o2`+s^%JQ~&1wKTAK|S3bp2Fg5V}>pR)cFK@M;>Bz7^`uv^#r#7ELiY*znGbe9Z zxkn&+)tvOROLUsE=Vz|V*e!oLM7+zHrBHTB+pkrd9qw+PlKMh4KfgN3 ^I;akH;4rCvL#@sC4#eZKMf8IQKdyXS9~*G|wdetb2bJu9wO@Bhum zW}+9K?R_%&+jd{~{rmL4=^IUEa1dv@mSx#~XRG4;hN)|Q_ Z`j_m+;}i8_UgQ*Q3%!&*vA<^*eAvvU*9~r %=GBJR?lQ7ene=)`ebCM+k*o}S?)AzRH|FVoJE?ynQckzs#a~V{ zK{9J!jYUk@Pd@&$aRGa>?GJA(SKs9s8^UaV ?Neu$bJ3FHX-lSj}+Y;r!jFd@R#D)+)!%{r%$PVco!2w^BD=_gVFo z=lJhx-;MFB?s`otSbILi_!iHRLvud2i#)A+wC0pvot)6j?A|peHm7Y~x%d3sU29jo zeR_V68cT!o#{b)<*sC6%mu~gBK=W2eSBiRk^xjGBsrtW9y_0&q=#%PO=V>>lPn`>D z<>=bq@V}zAdtchq{rpx_BQ~Gfm9M;>P57~CVza4*(C$As<5$$R-(+R5in(EM<@S>p z#d~fQKfR6iR-W(+TUVSn=^0CuyzQL(*&B{sSz8#lyJ$jqn7;LkdUYnl>km~fWgiON zTes7kp~5I(?bPC v3-AWc6*KOim;P@Vy3eyJie{<&(Y7WKeXYhkMWIVR=a=v z+;SqusgTLCwtD5}sQ>Xtzq+0=Vz}^ZXS9HffbPZ3`^6TiXU7X}=(}<<@vYeNt6KVR zS3OjmsbH7KzV>3-1JUnyc(*xExv{)7@8zKv=kKqqQLhqkoD=o?;537`Q$1YWqor=i z#BjWLC6Ok@kg>h$>!vx%dTUR7{ UQg}E}!7B2e%*EB`_{^?!u9aSXSn+jeoT=imtA(? r=%= zemgWe-~C>i9z9(>*}S~_`~LM?uY7cHdBeDVU7XzQ?xm~ur+s7eNc<+Rb6fFwi>GJE z{t4%{o&=37TYvk$sTtJl;&(bSZ&l~jkVkjk{99P>`;GIAQ?BH!>EBcLOUfvU*k4wf zu%}!4l!m1|4_Et|nSI&kIU+n8&R>x$p7w11$-ku?w&B93zrA_Hy778To7KcfjbjeV z6}fGaRsYvK`YF$K^!%gq8Im5St~a;sia5t=epNL*@coqcF@+&_@-ylu%G%Tkf4{Ey zZOiwZi1#r^S3NdVe!e&$%FW`-$1Te)UE3xET5<6&vtDoxs7d-=+=(wvdT&qMnj%pa z_9fv@YNuXfUO#c8-R<=L|L32?D0uA@*f1%xGAKNL%G~O-i+h%=*xUG`_3S(5!w0WT zP}O_ycl4(^XuVZ@c;43iPyU|CYfqZLu(qc1sWto7=|46*-#z+rjc(fR)A_5~a{F#r z$QVr7eTmz7d8bmJ%{j%7Ve7X@e)?RU`17`>`T3 9qZI_}we}=-6)`)8^yW zUsQj8w>y4M&e!wM>$5?B@4lD0x%2rHoegQ*KU{ErqdWh0q~zWUUk^y!nJpLCuJSe| z8Prj?+P_k7Oa1kFSv{UkYw7f@N6db8%|EX*FF!VD%Nd(Usse3v8klzdL;{B?ILgZ?$G|9ql7uJ+%oQ%knx_nQf9nDplEd;6sCa;_CG z6u)h{zcOal6;)|)3;cI^^^LM>cSU!WGlHqzYolLXj|$!{7ODSk)wXpj @IN;$&Z&4+7QKGkuTd#wB-N|8~+~f5#;*_N>=`_bqlX zUR1KtG_g3by?k!h&WxbNnZ2vx1VjJ4DXS9_UtpiazTR5u)8d8RcR~tx98m4jyM69e z{DOJTA`L(Gt6g8$clW3Cmb5o3l@nCC|Mosecz&|AeY@z#4bE?rk7lpC_PW^TtEs=g z-o!P@wQZlAf0zG^{e3|x>rc 6Q~Q z*>{dLwdgJQ@#$SucGBX!*ubrC3RXw|&hcj6Wn^kB^oz}qF-E7LrZ8ct$u9B94O3OX zi@MH<`rVH^<;=ISKRmc?s!qwCc|mDauWna37BqbJp8fe0Xb|xA&Qn*CHh)yU?X~Fl zJ|jNaZFXDF3V+>kgsm=#x#Zv11;4a^T1wq?^b}&67JfLiZbSTnfJk-g@SF`#8QX7s z?^3?i*Zy7opU1cDLbZ0Cc?s92uKBi{$@uI9_2y9befyT{?YbEE=C)UP%%!{MVi|)g z74M$m6_9^WP_x?SH~&VjySr?cubk2F^yl}zyR2-CWwN&I@2#Dc=wBz9W>8h7esk3^ zrK+F5WS(nHd+RS$?RQac^Z&lvw{m&5uUi?HxOdZPHO=21IaBuM2RD}POFkcCeROu? zR=eQcf17r_dE6mf@Zp|z>aIU~=0tB&c*#FqwYHs4r}p*ivJF-LfA^-n*4M3*lbM-) z_D1mO!@P!pVH>x(-I}8z6R_f^aIT%?n)Lt6&j a}&8G7C`_f@Uhd1u$g zvaO~XHs1phU!PY}Vegr9xl>d?Rr__u{&nxB%oi-|`limJ)4%_{>DArtVS7Fo{*M3C zwQA|LCn{@Xx?emE)p`D^ tzj5j!*M3;mv-Jdm*E*_AmWdy}%K{jILA@0QeU zl6vt&^wGW-q7KWd?7yondo^!0WSm^t<~#Go<@pOFx3IZBQ#-0%!ZdB2U0v|qSLbj2 zf3%3>{tgx0ytWsi%gv{5skC4(d3tHzJm({wmcQQ%Wy#Cwt&hptJ7vjw=G~7!Td!Vo zTk4vt_G$T~(AUiSSMHn2QOmWrxgvB g{ zUK?J1{i1*DiuI~~A@gEw{s%Z_=cifxxc=Eo?5}qmZ_58aCl?fCXns_YjN{kx?|b=x z_tK4Brk>Tdepzc1Bwx8yKEM8;;KZ&Cf8M@mm_Kz Kcm`6EfYWN6!zmd7r$0rtzeXN4bA?6}@&%&Humm?{i0; z0-G63k2P0Xhu>jO<9{G#IpL^nj89od+=~4n_v`fiSD2eU{>7s@J#_WF(r1mmA0H`7 z8(8ntdfIj?^!J~(ZEAx4lbpnvuFZNQY; ^c=S2y>5WS6_Oz3`I3!SMAyUrleOC-LmxvD)gX-EGgC8(+S@I{A&? z-+;1pJ5=X&@?5O;%Q9KJ+Nz?p#P#Z?{@OOPeWxck{|(sYe6{>-<-_t^`CGF}gYUk2 zakqL)b^MgFj1BX0^!lxCZ#?z!Odr?lTdzcA?=?#pY?0c(GS+{J=YhADX$38J-RGa) zC$)d2fvWxWlQ(y^{Sv;p@%a>;j%%rjLe5|2JvI}INPhF+^1t)$*Vp~oeq-|0m!68+ zuQLi)H`}V`Wc*(s7q{(1l}+oqogbg9J`!ts?d;d=#p0Rre_jO`Gbg^aN%Bp)02-4! z7v3yBUElNOBoEIW-(PKC-cfxf<+ wn$&cIn0RCCz;w#h*qsZZP`nvA*-j z$pZ~5ZJ(HLUG|MXt? e*kX?0t5uyNi3dEAP@q_VpRHf(BdOZ26O5ujD7M^iJC3 zis-rU=9QZk+Nv^5` y-4xGrb^_~5g8zP= z8M9oB=j-z|af)h{3s2d8y(qeZaaq}s09CW~-PPxh)&0! z`d>)ht<&DNCaeB`uV(y-ZQ`Y8D!$HhVf2={S+*|D)}_(m$ddd0%CByBp8T`s(a&oS zPTa{Tyin{d9u*$0yZznf|MibTg>t7_sSCcpHQ|2XhdfW?t vimqOF4ORa4uD_AH((?ASf~iXwwG&qC z?^+wDyDV8y(D0X3Wysl2&Dw`vXEp9n>s)cAH@u1UAmc@)^?lz&me<5D_Q?Ols#AD- z*XLc`D{n{ab#gf}g#xuw9iG?yc!EQLZri`0_%>ucErx*rz$>g|!!3MD{YN zt1?YnaqIP(TjyShDk;gGQ=fHuk-G2g);0dQ@n?Hl`qcf7N`Sfv8&9QgKl|VEw)Yw~ zyH`6JWG5RW{4Due`ut*mAD@y^Qo5JboxKlZvkx>%GbXWmUA;S{L|JUD&T#*U5~p+`46zfqN{De!Ff zcUApy#^Z(b$$6_m3uV7HEVRk|e{O%a{2G^)-G$QJi&odw#04oNbgt(A)AnupHEvaD zUMpci!Pu!KJGNCFJ*X 6giOJWWfO?mmrxghPLP4>5Hm24N6p7UxIf!9|ydwr-E&i6Z#)gNwr6}0Yz)hG2z z TT!mchyD)yPx >P;|1E&Z!vyw zfAr4v_xo?{&aA6mWQ7LiZ85uX*;?zx`zibp-`X$!3otp&f8193+U3rUjvJ3tW!222 zWUro|^lq!J=z4+LwxUYVq!<78MJ5(T*Ci5I?1j7LADv&il`ZAKg?+jIcdPv T_LH-bhRyY=wXJ8%J34MucLlMA zhv{#=#QV0u@tJX;Vq8pz%!RAsi^I>%uvGq=R^Z~6@^1dSdlUADhfEXins0n~;eSpM zjm3Z3isr7c7d6<*e&p1Q`yunUI^RD3cE0$H|B@U3SKiLCw+!kiveJ;*;uiKK@_SCj z^{Te1T1?jz (_a-V>5bJ#pT`Iz41cTs-1H}wV19=6g<7~le5aI_xm=jZsT)tIntu>@xy_% z%e(fKEiKJE+0^G{yQK=Wpy1#4N9T75EipQ*`1;Q!*K1QlPp^r7eLYH8y7aZDwNK$o zBgWO$jHg4UAI*Co=lNVwDaq;AD%l-J ;1g^o){ugyHV^J2o4fBW_S z`G}m^w NLuUy$BZ?#^F{jS%Jd)xWp+lg(HUTE)=tk#(CaG>kCVX(5r4Zg7W z6T2rI`N~!zr=(Q%Hsn!(b;jM0?Wd~h(nCW&ZvJ8X%2H^ JBXNSA{f93@D>!q2()=%CSXL~a8SbbG6r)+yiM+b{e`Redn+D0+F`q3`S z6_u2f7*F#$f4cvp>vPa^`5ey6nH?P+9tVoTXF1Nj@hm8P-BCvu7Z;{!x2xH&MoDhi zw|ioCp@5*^#D=GzqGY~uNv>mSYreQksYF6aNl9qKqmYO%Y+T(+U}L|&3T=~JV>g}g z^~^NA6)s?7PVWsr<)6CaS6QW;Y%AC~;SaNXzj2mrsETJ>vogB-g@%iZi%P=ID%*?| z{HF>^%Rbg*^DUKxSo!PggEUFdLM;b%h|BN3np(7zCtUL31k+@H+qo?e6IX}t+SYN2 z2ken9;mn^0>&iC#3SnEbeAelg3J~L~ZCBXpAHLd}nt$06tggs4?Apb$4OtTzvx63U zK34$y;Oaf?;JuM;tAmw`*G5iBbAWiEnw{4)o^4I^tLv8x!Fsz6?`^Jj-N7|u*4IDh zw5-?!1qC@H-gy~oL>7I`N@4xZ2M!Nyx!JexPiD;iG>v0!6WF2Czw`Cw?cO=})LXDI zMbW=s$x3cGc5UrKXNZ5_JxO?X^4zJn=ijVY0u|Cr$n+1`DGRpZqm6CGis+OBvu>=o zED14UXVuqS$#q7D6kl(hW@W_;R`xDzy+|nAn%CLkmjofIocEuYt$yp^t7ORya`}3T zl_9o$N_u|MD27)%) VnV-waa)wJL*#3u3IV$(YLB- z_sV}x;Kh=c86g%NzOZMH{%_x}>x~j@H?5t)2i1Nnd|B0Yp73 AL;e@v96tF~+><0ZHpz-@2aX>vN-o-c@mqi k(^;@l5S&fceVb}@f-mg1%MLGd)7Mk) znwpq_jf`0v_tI-x%-&sViZpq9!PbUHTnjAQa7&f>+7n$tDJe+gX>He@e!9Ta!sz;} zt3m$G5R0EaD|2OAb8+kHj1;i7I~9$EtnTrJ$)9NW`s16Clq6X1y0G;=Pva!lozt6_ ze|BLb#65it3!j~C0PR(fk^rm9vp5>?>-ND{#e(bJEJy_{`C@Ye1^2Yw*PCAj7kz#8 z=##369@x!~3aSbw^F# ^}f^EzWQ+Lj#C`$Yp+MW%7}qDMoTYi)&2>LuV=k_ zYN7+y7$bPn>Kb2IJ!CT*RPfH!v=frrhp)bL-FfYen3O2k#60uu&rdd#djE}r2}pp3 z2<`{`(_{uMCNixEry1RvSp5M0mq5*LyY>`NHO(X!x2^ zY{}c%(b4fjE#W8cTXslh0>zlpF20CeQEJTBcKEWIfUI0JyJ2dagjMgY@Q#j-jzXRY zM(4Sz;p^8e04K{uryHh%w-DCpGhcI#RyI*kQc?nGNy{=n1=`@5eYS3WBOBBKZxW`e zGhe&0%hW^;sti=-^M%bn)$rA)n6(#F?1Nn7`_&y(?8o{X1{I#W_#)bZ^qH@ qfhfMM}R_P9n-W_*{9d9&NWK#%`(Z nc*D%k%{r_&?O6TQeZ#$9^jgBirXkAHe_Fm zn-eIlh;G=lsc&0zXg5#9{riWWm4QqTXVgA>B`>AeT1iPMNrriv?3%Ds4W`r1g39KO zcT8c&e&x)+b4O2W`~M2{*|$Mf#j>txShz=I^__X{k3kW%i!0){`S$(l%-8sD+yNCN zFZ2>vOG 2(vS?uB6G&md||6o5A51mr_0+62~t)iuU)ch_GR3?vu|-%8>q%D z5#I1;*Cf^O^?GX;6oK5d=yyZviv80;^@l+(sQ!3imXO-!JnjA!h-DJ%8%$ST+|V{v zXVbauOC3SM{a9ebk^h3);m+P-5&gOPO9R1zf*V?rUxh_KHWRy`0SfAmToH>`O^==| zwekVT(Gt@eOxLcwA{8_xd+(mz)7-$0dHJ8+V{u0Gzo$Pk85kHCJYD@<);T3K0RRFa B)AaxV literal 0 HcmV?d00001 diff --git a/graphs/google/response-time-day.png b/graphs/google/response-time-day.png new file mode 100644 index 0000000000000000000000000000000000000000..d7e379da1cbaa2b629108e259c338080282ae1a6 GIT binary patch literal 12229 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1V4T3g#=yW(WGXj i( z1A_vCr;B4q#hkZy{c~cz-h2M@{QL0buddkdjtR93U1#-FYqp|>!sKr%4WEy9-s)ra z;E__C=&GN1Q=*GJG_t!razt^nWc=~xwP2cO^lNr##3*lwgxfvK3 zB*dn!eYSIl;eT0HZU%+~d7BUK|GoYH#Pav0#XA*z4>B<@?C^isoBerZ%m2IGUw5v_ zUz@XDoP~kG;Kdx%^nbIzxE$JEzcx%nhk>EtcfkL5UiUP<{fWO*rgTapf`NgdI^=HD zfAib>)&B7>Kezv%{r~^-zsT4B?LM-cgOP#ZUF_rY*;8-N+p9D4`Jyuti+60~njCqw zYPSsoLj&WZIV &rPnzI?!U zNc#G-xm$fb)fb(STKrfzb*@f`i1Ggam5y9u3=9YIuk8D;boJ-c=jAGU75|>TzlOao zN_%OWS6$Wh$C@B-#cD;LEk2eRd&xQQndIVDr_kf-%TnGivJKq8z`&q#c8i%>-gaww ztDVz#TL;ZJleP5D1s9v0zqv~mCNMHIObox9WvBgootIjV(fwm3%OtYP1X*E&|Jm zZZTW7r|h|~^7oo@yV)}@6a|D|>wf>TRMLctfx)f6SS@DF{*2h?-paOOM`zAh&iyoU zu3p&G4b|&C?||Y;dFh^?H<=B$URT*Hl M zd%o;j;sXkobL_mn%m3FUyodw2{lJCQx$ESMH~Ff6ub2{ 6E=GrM~A%5@d3`*96Vmv`3G(RqW%GF(Stff*7lfOjN zdHFxl-t_E2mH;T^d8QsRpWm-8y#3zfJF6#^&HEb~9J!W-_o;BXJ {x((uAnwxJT#M 9<6f z-xDHZw@y9!K~?$l#w9tRu$ksnY8v#|Hg+CZ^Mon;bI%=3ike l54+;k}|xkCpo z?0t22{&i*shC7a_n}2Ru;;(AD=*;FY?w?(K{yrza{nTA#7ca-aAffv8{kkW&xBuav zb7$$h8a3N>PlFy`U~hXT3JUozt^4_SOzS7bXr8Kh{nBUSD)(Z?eDU&ru-lhQ)yJ*A z^X*OQNt^3)zaIwK*q x68B3&yzd%D%NI@Os!HO^HO+J?@%>a=jtj;(uRAIlZ8 zb2Bi=?8252n``+yKpBzGKl|$HvaI!|Gea+(o6{O|=Xz_9b7Iz-?XPdEgW|J51CbSV zq$H{~1q7bqdG`3geP>W|WncB}ulUMy`u6)j-)>ykIRBd0%7v5WzkAEX&j9k1%#2fE zpXU@tP5%-wrSe$D!T{Nh#)Z|UOaALHFkJ99UfbJw`|Y`QzjsgH?Gsen9HnV)BKZD( zZr(R$kmfh5Uxj^+v@8!bN}Tf3Y?<-Vfa0AADyNQX{E=p4IH1T8B^?~M`*Y{S>V4Mp z&-!FouF!scw0ipvXR{m5Y77hx?=9009sSjPt#qHsrR2alot3)+=3RZ66v}BGHMQ9~ zf`K97{HfXVZ3Tj>eT}pO(^O<-wO`zMvSkwUj z#y@XvTXy-dAv7aAn0LkOdcWn(Ws|FIPOUMtn#NtSOMvgqzsBF4pn!dM$|qa-=j(6Z zW*a@z_3YG`@3Uk}(5yg9%Nl0q@8B}0g|{WmS;DT0{N9=go?sqQqf)!RpG3ma!8} zBvW5T#B?8>B`2r |~@tG8xsy#3Zx()Q+D`IFDKid>m0b+K__wd+A9hJ-0= z*WEgm^kdS*pAkW3pn&mSx=U*1$9a1B0U(nl0-xs3F5Wofn(EvhqvW1v$J9%=Nod(6 z{bqls4k`kapB>@P{wQDHwO4I z$`_9*k&?3Kr E(XdZokYe3b4JZ7VxN)zfdM)gGTN!qA`?`v0BRzS`6O51fpBbuRtV z<0w5-35lu(kgYrmK_TKf{i%q{%zWFqnqglv^lto3xML1-wDXdW&$ph+Js&siOz~Yy zW@mnJW<3T53AS@HPu;w=v~O#?XPRA?aa@f5)by U+Q^RHVt?Pz9YIMA?q>n#4V zTf5XUHBa>{*%`Co=*a-i!+)n7b_0cFz}B$6S m*&$LWy-nA)iPkHxY`6L5228O>!EQR&1#cx^ndFe#C?ngdnF1LPK<0rn_ zD?;!7-#$>b`_lR8SvvobD{+(0cukS?bU)5zWp24v<@OyO9#A;%y@oB*@$kr+fJ&pP z729^!ojGYX_s-+MwBCywV-{R)o$!~LU4)gJp+Rm&X0A&8-FtPx$M&dd3O=3OIVH@? zSW8_}!s-Mleq}bjI{UhNQ`Gcg_r*GCJ#wf0Uv}2GUMr}SE2&{;WUx?a&9{^HSIgV0 zzB61El(Lp>isF ##p=X~nNxqBX72P+Rfk9@$ zr|se1^Lqa;Hm+I-E|D~6T$?d{$LE6*5g@1YdF;5l=f#|L9 ^ANCTDw9shnEV)A#(eRp<&MgOZkybJ-al z$c65Y^VSxvj=m%fZVya~oU3mdl9KS^#N%Wh28KJ$r_w%Wdd~OCa+#UFR_v3g?ED#% zo?c@GC;huC>&sQ|?|WMR;E7)8bK{qVy3?h2c#hr&6|W!I53POXsvbKnSRi%Z*OFxs zR~PS0_}*+d3FM+Xj);cmu41;fNBss C-G7o7_^cTKN!&0jC0&w+D3KB`(}v%1yE zwJ^JSx7!y}P`mTO(ra0EH!@$(TC!Bbc+#_?Mlp3~Ri5u^AC7~}^$5aM+Z}cQwf)@U zDjwh3vw555OP49G%+CH|T3wQI?2qmRY+zteUX7!!Gu)sN!O$=< MfW-Z+TNU#n^*83tT7O?xmgf+WZ%QREDRD=j@iklvdirZ zi_Vun-#n93m%TJ~Z^e7D_Jv0b_!$m-C_2~D{Z)MJ>zd3Z#}`=$e=b>Qv- UWu*2dD6_>!a+ob;Xpy=+N!B#Z$*{&>T3!g-MM4^XGiDDnQU#39)L<1 z=fzmFTVV#s-Hqnho0>)jBJJHxtPBzvS7%=rPu;5byw5H2jD+p9`Im%$cCC3B)PDH* zZaxNs30(JU?B@C0sq!yc?{%y4TexrPRw0uq{ssmjdqK&XXAbu4w(xibI}-z&TW0ZI zneu1K=#^Wev&%sy2A&pBS&mt|9moeoWo<6D+!pXfkxPtWfjxTd2Fq>iZ$QQ43u|n( z+qr*@FN#HU7#!|fd^{ZW=lJ}j^(SA(de%+x|D`!s-_+!3dRaZ=0)MdOig)(ZojPf% zYAci)=63vZ>Rhc5Nr|q;L%T&8E(Bj)fBllz(R lv6FM~aMH9oJo>a=gsW8vUUci0XzJX*`mU{QkEzHDw>C{Y25=!IO{XNk`( ziS%=v^7Go|nMtAj&zkP?v$3(Tax)ZYAU7|K4MYxiI4UtTG(Sb};e}L&akq9oy7sNC z_ki7FJ~4&|2d+e&Ww*|aoxDXP)$LM@-i1dgD_S0Yui*jJ^a=lQRc>|<8bImmx7MD* z+ @MW?Q=JZG`iyGrAfP4bq26-EXk%AMP77!uB>MM(>9zde_K?w!+juTL?UdDUy@ z!cL3ZcM?oMc2);r$!?7YJs$t%XV{^RBfGJG;bfb@!0@gQSN|?1i~-cxE-=U1rpzg3 z{=>^9#_-@=)atmUvDHUC-g}>NDb#!Sy5_=#l39%l54;DJK6T-_#eZi^&b8WkeDN8n z#mPGzmUAoqW@p+BDlh*X!`_}ec_83HKPX*UuQFe+e<~~XoNVu=8HQCl_Dj`2iAEky zW!@qEX9)vC$d6~AKc+moRz0aY^wPP_`?IuGPhGIErm1n^fxQb77!P!C=bOzhbPHGY zb&ouBtYlNb)f&AC57&tnod2 N zM3|i$YaI_VH3V+hm8ISN(A(` 2!C>&@)P1w(Nrr2^ ztt3;ANu2HVf0bhxGUqRIW3Br^rUu2*N9|jG^xGeen|yiqq(2(-zXV&wXJwo^|K=YP z!?&I$Rt9GcY`Kj~#-Q#HLqbOg_PR}@K;y>_4hEi1Y;{|B)`JTl9 ?b zBNz-cverIpp1W UNWNNSzySKya{hC}aE5X!@2QEx*?MiAp-soVzD1p&IepT&%*HxcSpMU?S zEFt5;@~uHxE1oQ`-t7R6UWfTBF`AN0%uVva3@?O{>$cCux?iv7=BYi(DQ4#3;u2%{ z(umoGYnW_mknm$BYl9pY_8y!CL-nx>A`CBBpZn~HsK2=D+;q1poi1ZTfALeBtzy?` zC0e>NH+NY_Fch4?mDzY~xWpJ_rd?YVo_Rga@Y3%|MuBs>e_P3$n9NN}&@ceC<_b8n zX1_i@C+G4>Te;M060)aRtztQD+6zb+iRds`I2f<(eX{=c?fg?SwyUTvsxg{)$t% PolEdetl?O^|wta^Io5ml;BEOFL8q@p~MpRu!(X*;}KaM2IZC5 z8j}0#nQmBfi8Wlj6!mr0+*_}UqNZ*!PFEEFUb^r~zznI^Z+|iHuyTntOccbH*%-dD zvvMD}uo_op14VDbiqLJdp7&hdwWNK~8Dlr@RxM^{Mi~h|U52(xKH15S%65NVIJtV~ z@0f7!zooNhgDN%#3kwk)2Iu9wuGWN|i=FBtk-D$ pvGPd}+e$%=m?mmHWVfmAM$B zmMQ-o7;N1SG8q`8MM N(}f*2eULUqpw2d12M(UyIgU zdwS=h#^;`koqwjxI}x73yWE)JZ?myb!#>=3jo}wRE4Raa9C@w5?&wWUhx?kj>!v?G zSM#JN?gcntxR#kdQ+-!s!0?5UORQm^P@bv2)pG4gYKwJbyR$b&Tt57`^`0Id!#g2X zZio08S-EF!y!|$-XWpB0{VAWL_@um!%{aoBP!O (BnbQo-d|827r@6L?9bW+3kSVmq=P mM{ndg5*z|IFv#pe&25zz z{WF(B2T2$foCm2`g>8^TqhaBJnLGy;;us_eU~oS2`YRIy&wi{`n=ONL+hwT+=3s22 zBwPs@AZt6YS8WmnB03DeS0PnxKPTqIc{|3gl&GJ{knqDWh3&w<0zCaU1`Cxt2bl`) zW3A+N%QRecI>@x4d~N9ZTPyeKEf4jyE*2{)j2HLfZC$zX-a3AUs+K0!1b@uY$`2L- z2VN{nVBDdOYq*4=wxNmj!8$DYZUOglXNLNWWm^pkci;Va;pE;swf9ym{kQAvS(iDv zc?=7rS-B6aTNQma{pp?1lP!VIZqGO;;(Ycglb;g92Wty+rXR7m8k7vReGg3-{!N25 zD77zt 4x7X4s)EqQd~{ z&u+ uGH#9I}nI+)iVQr9m_=cNj0j^4}Vcw(s4GoOg`fq=3u`t*kUnwCWfW4Bt;I0vI zfPn*R|BXS$ic9Rm@n!ij>$l}T_n%a`4mNru`dHJR;fpfcV}`#cEQ2khcR%UbH|0!? zNcx@~^R&)qEer^}bL-wZL52eNI|rG5`K-NKv*GeJQ%~=}G?lYYnRNZyyd>)MnHuWc z4>J97#WiZe%y7q)OY8zW)?CNH#>vY4V&Sdt@k^}s|M_z+pS_K(4l+--Ydbd!!yAzF zM6?-#)C3I%9t*#R2NY*#=K9>pE4M2t(l7tdb1f)xE`OTI#1G~5j0_I<7bh^bufS5@ zu?sP@u{ k6;rUo|ED=_qMaEWc;$6eta z&{&wj_ tDrF1@?k`GU zEZ>ByGsm!?eq%WM2Wwn;Zv*$c1jbmuKO4mUe_VbeyQnIBlKfLw`=wK14NQiHCe}aQ zm^I$i)Gtg75A+I;9yqZY`@BE^!vWhz`5O!_Y0W;nT(wqfrC{p3tx+e!OKOt5ro}rl zFjOCSI(w$yGzJF#JkVMIX62PwJ9Z2O@fr~lmZ0g&$$F U+eeSLM?+drO0=SyMpmq|8;> X8)re@$11)BXvcz zx}tC2Hf3UH<0{`^a0P4SXU)ct@IP>a!5o}DJcfi7fg21;uxG=94H^*=QaCF=2}uzh zo>nZ`@WF+`n+F|`v*G^v*(=waV>h1V@niRX1_lQ9hNjlW(7PD3 g`(3Elh LhR+n0qo1C&qE>W^ys?H@Ed2bU#1LJ|KT(t{7oPGZI {wPZ4+LsR% z3%7SOGd!>h+)%J$S(LPK+3vk+i`933R=&AsT65bZL$!^}3~chO-0jJwSHr{(PwzQ% zeA1@CIo-db_+G7Ae!O~@4FkhB;osd44ouyjd+z9(S(C&-OFEGHcnK#8*tyx!Cg
yqS%q-MRD} zGlLt;belWdf0c)SdK>+Z-S1scx!q*B>qRRM9tdDKaAIM?!+oG2@!O@dTme2me()VT zGlRhrjffkQUrJwJoqPM|WKb^;)DY)-<#n{;7Y~C(ERVvWy@lXrr{!XORb%<1lKShG zpV}Oy5hAjE+xBc0h6TrWG`H>!%QlsNv!&GcQqUAh&*Gg9-IEszwe90$XwZn*p^dxI z* GIxK1qO!No~G9Q!5Fg!tPBtI z3RWKJL!P9oUOes8s~UsFoh|!+gBAsKHnn<`uKu}Z&Tg%l2B&JIFV9R`u`}j?G%G_x z^?}mjBdoY;KL+NmgRYBD!6xaZzWmjaaI5>ZQ)bxm?od^oe0~OoZ%x(_$}4d7_89Jn zb6wNGF>AoYut8oULU|F^Sp!Cf8}1@&6micQFf{yiJ1CWem^GN0-sAUV`4^XkN~gEW zGc+(C6fNVhEhyIgF8=s$^OLx#TRy*8KkHPMYKF#qk9Yr=7#JSx3)s-+gJn{@=V3G- z!vV*~S=K6EvtK{mVJvUCSbW!K(EMdnW^ZMuwLA|4!#7dZYz|N=! aFe|t`Mq^YW|%S=PJ z;>VM%qIpEq|2r@+RP|X$Fh4?_r9;hk1sNI<%nCU2okRS?Q+JNz%y$j@j@(c9x)NKy zlVWDLuziQm_nFx99RnK!>*{_`h+xTg4f`AqzGA*?zApUsw$JJ(ZLY)C33Po_5oc&{ zJal169Avr ^8(AvALGqJ9n(-UfOo(N<{v3b_Rxb z(yXrquuYCDFfbf$Xe#B%x?ex>)t^tFt@q1HNd3rMJ4H(C=gWI~0t^gqw7IS^uEreF zWH4B=V~_j< o$>1i+n$3@WP?MoS(EZ>pcASHnj0_B{ zuh$_h44Y?YHF5qW;npslcrONq59c#j>mM}E&fd9S;=Me!8V~HWZfqUC!_)a082;Ew z9eS^UYoLWeqEckdeQ^HBCOBnEDHled*X`Ku77uH|NN%= zpIN ok9|x_ P)0A-+I)X#~`z4pMC^p&U5_#pP7N- zz=@Z)>x6J-J%-&c_A>^;Tbn&4N?k}@zTf#b85kHQ?%UNIifgQe!GPh{;sjh{oD2sZ zyr?|53i}u*gF!)6*aqBPK8A*aS0*=wV$3IqXl>fNe Rh=Bs5i{ez*vyMs=eoC%`wT?sV1_ioYI$1I)#4T>2R#zIu`>2PdjtI>C&@bi|)+q zpL3D>?$3DkHb3px;6YA?0}NIdnnbY-ayI|*XJ%mda;8ya&B|*i(|1o7EKKR~e8a$y zQ1LeZU=;eI%;sIMUVg0od!CVj;mhLM+tthd Nncj`swzAJ5F+ zS`iPQeGT?or}=WC#%3d{dHSzI7HXY-!OFm3(Ddy}1I}uXp=U$&Kj}5FYVXaS4sfS0 zY0;Sj0SpWVpWf}_y}Ez*r2PAz> nQ_94^z|*sTcXKGb;`{y|HkW4rvOK~3f6xXTJ-sMp28II;hQ`s-|F U-tj|^8dy1xACF=z2B>B zL1v$i`_2D<_P_P}|D^x@K9&8cp^XTraaQ^N@SFXU4F9-VGcX*e`?+4s;rn@!Wf#tY PmcDzs`njxgN@xNA(~6!2 literal 0 HcmV?d00001 diff --git a/graphs/google/response-time-month.png b/graphs/google/response-time-month.png new file mode 100644 index 0000000000000000000000000000000000000000..035e7f71783322691afc64f6e20600f76c688656 GIT binary patch literal 19755 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1V4T3g#=yW(WGXj i( z1A_vCr;B4q#hf>HD--5CtF<}cUp_l6g;{lr=-EpXEF?~vc`|!)v^el2e$_fTEhqA~ z+3DYN>`hKvCwtC&I(K6Fj=G=9Ql7?DsVZkpzZctoS5{C`IyJHFuJvBM>3c#RmxP*I zoW7&}Of9YLd7A(EbE{7K-}!Xl 6{ks-vi%vAd(= zlQ-jq1fB1x0#AjQ#RLVP_N;s2zF$Vxr{ezVWakSD_HN1%cb&ri=Ae?&qB%3U+x|b@ zdU4_HzOz0Dp6eX^xKne^yxEQy0;;F|zSU9G2{NzfxZZQtsf`D3YVw@-RbCSEgn3ih z%=JAQ%XheVxVY?0Ug5ncf1T#)-u>~9-m7c5@kF?|OtEh2UYx&9cePo4is_U|sXNsc z*(4kQSs1bRcc6Mh8p8#ajDqP0Rvxtq_S$paK5YLQagQm^V6DQJ*G<~?; 6~sw=l)idydJ;#8NN#~WN-Tr3xQ+Bk%| zFoku>-QTlLGjzL6xZ9L!h&C_H_%CmRZvV-&%!~eWMMgD&Urbb&O-D)T6ldzHfJ&vQ z+WmP}(*iiPBSN-FZ0P9FP&d()TX1J$!qbaiZyXmDL5NQ|G?Vf478ebsunj9R3=;$e z1J}*j=<>o$U$DtGB4iI(bGQ%V>3JXiZ|pCgWi6@+vS!nrUGMVP8@SH&XEy}TuHUt> z^MK+;JDumJ?#VtqT`|+e@-WB;)1<%lU1bztD0pqwafCZGFS Y$BbVa84d_E*G7a)0oiz>s7;Oc;&yML-|HTjuFEJjHrhX3Z1NcbwZLq4ovp%_tL8GvBGM zE2yPfxkqo&9#E1~^1k}MauG`dFGG&f1r JFbpbHM)f-g%{G zWmRhQhvGLv?+;H}5H@MPw(==?kUg71E+j^mR2rNLIoNcX!yqB>Vj?Jnyfq~@s_uUx z+Y Z)$+nvy$_Yuec_Ult1_v37UyfwEzwm!jN;Gke3*I1io{ zInmL@3K8TvGVRZs?r#Z4o2PFwObGl4F+8(jWz*IV9ooBp{*ZCr$PP2&Ob4q@?L^f> zM^1@pM}*XX<2I`3o2pavA;t@A%wnRl5Ena5uI4J<07|hfU^Q9G
LS>ugaQ*t{ST9?diiL2N- zc|sQ#IFj5J%-#B5>r~9cO^1&)xVpB20!ByKF?vnY()p?hH;-(YY><#HFD5Dq4*fo{ zE`32gqeY6}3WHg_zX&kHB|J`fw{Xf|FJaTs(gHhmW j z%V?40GF7MAljpDcdUqW9%(3zWID%5oIA*T2jPRKCOzx6N*oGA=z@nutOKsRs?{U#! zo6fOv2SkX+kaf+K=^Tn{5&{ds3F>u6W@mtPH0x=TWd}okDrvESt(R=9>@?_gT)ga* zc%UITRlJ^|6_L&x(J89;PHD-aL*N3*FhR~_)-f3!J;9)fV8c##Oq$Yv%CNssKqEbG zeUHX|u%o>sLpSgw@{5UzgF|70Aa}&A$f^xOS`l1p5&{FkI<=R^9K0m_JZ0m_xv-#h z><(S@#Y8LO+1+-RqYaRd%?#a8al=?tA8b%SjroGIX|XNO4$tFlX6)|b21kkJQ^&=e zqB_04??Ph0)*EqsTu|~&)#>u_$b*ZNAQ5W#J!tOQleUQhnzQdf!*Ht4ZjR~e5;7k| zwm=H%6JDC(8{TyKet?I**UYmAo01MJf_Oj7=&e%BFJWQk83u4)%$&yYRn^`wbGjlt zZYL@KatjjvEjekLfFvwtRIinmTQ54VEyZ#xavF!JV8%zSX?=g+Zo3n&8dwL8DAm5{ zY(euL$)&DKs(hF#+TFzl_S~UHhZ^>WH&2CMJa1e(OV*4{M@tGEVVu7HwQONic3x7w zAhBUZ2E+`L_KBZFzW;bWlUdB&G~gpR9=%zZJ$AF7{!{tvx3H)cI2>Ej!X-mCJet28 zRKeMR!%RqM(wnLcEuuPFauDM$hMsyZaLn%fmfHa#fBw0&_JQLgah=25w=#!Tv?v_o z5)%~!o91FMr*87@yH}c13&a(nVl5dRx*sz&&30z5NeG+>E>~Blm@adycwh`u;b0uP zA;`A-Ld;7e3AhJ%f>}?^`xMy%O08gB-W-?YFDK*`rSpr4LaLXJ$_p94eBXIxf(oW) zh^yp8W@YhD>$QytSpxA5+oNQuH=6TZPZ;us%z+3!Q~T<}S1qO|7$gWzfZa1@-}yS_ zU7~UAyo0JvT1sGViw3i5Z?%5$Ow 2{f>7eoJU ME$q4i0XwTe~@gpQmc-2?kvR zNAT(yY`x3M+Ltsg0TrcCp)$c`Wnv4}m@Y42v);8kc(?LJOK=QsT0X@^J3@%lZ>5pG z`nB*gMKdRKF@ao?y7r~I|8Aw5T(dZW`olY|`AU!TOy^vw0rFztwJjesFMmp?^4ER# z)TI#=^{gPboSNnHGSk1X-za>8N=7nkH`Juuut!tXXHScpzw2yG-a;`@{y6|DJ|cx< z`&k! K4|3Mtge*;ip43WheHl}-4LD8)Z(DlC90#v1s2`g zqV`?qS%M@eZGl2*(HhS~j^{J=1ZO=@1J$c6;9xkvWy|!u$-D20oZ$JE5I7N}P)R$b zFr+V29F)a5A^zT3u65UOG3WgCH=g(%Z3IQ`rnHo+&8hcXHFzRIL_jG{BU@=^f2PNp z3dtCyC5ymL4Lecc<9sRcJg5)^8_X@SO!bgS|Ea{u)}o4Fljp7cG$oJqbl$szK?(2x z^_}oj?g52yhFaphTq-pmclZP~RGJtx9Fxb;YE%S*GJ>NR%SP&b@ldbYUeQmm5C zkD9OzE5LC%QPgPulX({A-7sw_tlqQkFrI@2XV{5H8`6s>?*`cgP8gAjVU?SfM;`RL zReAyz6PuiBIt|Xow#?%2Dc_h}zx(VhZ{<_=AP;P6TFI`xcX82#E8Cy8PCwle@&Ozc z)?S 0i=*ebo9`A#0t(69E<1&OLAcY>vHd`aU7mOtYQJKO0^&%&mpXw&kjcbzHjZ zD3Q7@A#>Tv4=%0XCc!49;HqQFQc2&9`K7Nqtw{(xm<;MrtU1#)?c;=tD_R~GMI2nD z1P=1Zizc5t+IX179!*^z5RuH<%_RqpW>=HDSDL5RLX(#b$myqoG+xW;6hHL_m4Y?k zBqQ1wal1KHD#|Nl1=t(fN;BoZ?0N9lWn+^oE4YKTNyyA}>Fq5(&vvNm3QDa>2z&^3 z%A1a#GKYM$Bc2)ZzB#z)5V%7UDL7*~hjDe(Ms*!QDR>BYyIm92DK6f_$S1WFqVA^P z$tu2SmI
Zh@;*yYJC%GgR8UtLtZvf8QvPYS59?MP=~}H6 4+&65$a+~r>h?wK+zAI3HGzF~Q!tqI^dwcMZ!oXx z9G(8<&8&T2mg^~PJQ*8t5Ux)5HCI@WK{8xppw?@(@>rH-my71yxSzNA*`tnW>|pnv zzVc+=&&yqTR(i{;(o9!Jgj@hy9UZAJsH8dP
?4POXr!h?rgr}Iz!?DDD)v-5&j%#dGno;&x?nkbRh+Hh~ws* zP6N#aQ`5dCxSZ~RxHxh0?%4kO@d`Y!P%mC~x9( b*ZdlXw)FUQI z=k%+C9n&PihAD?-7NyjRB_0YEntf;G0 )o2 zSdjoW+bl^`r=3+)r&!d7^$<@)$Odp4G5&o!mthXW0?q~Lm12sMRwbDAZr-q>0Ib99 z)&;5ijv6<^*E1YQob_y-OZtIDO-DfyEy<}Q@_zrRPcnyYJf5+9XZNEOY+4cEuoPUn z zzP~9KP^w%R7;$jXA&6apiDx$zb1XjN-FwR9$dnZqz!j|9l(Zw$Ido?{>RVzNG3%v5 z<{~F>yLG1Fn)L}Yt9Ob_=UCYQ_C=eIsLtv#!CB3-K&=*t<$_B)Gx?^O`m6Juy`rNJ zN sGvOJgq3hR3UKDt05PEouP}qhQ3gCdd^@gun=SPI;QQL17 zhq%Nb1*X?*!7lkDIh6-437=C=Ik2b+?8;2zDPrprA}yG?J-z$99t$aos)2mvHG7%# z$A+cR+nWVEZ6g+mFpG(*K*V?cyt68~NUX|+wb#2PWCA!T=FT!I+UAn+?x4`Oguq6y zC%4S3Uc4qw$w%V%f&;2fS{~q(W0pFjOfV|;ppooUW?xW-g*ZW2_g+oj_6i^8B-U=< zcOf&tX4WoKD_=fuw_16@1r1RRklm*mRyL_#`<8IiL^kSA&S9Z9`P;v73p@qa8%zCt zM0L84n{Y7fUdg{Yb6w}@mXHFlIk`#mnwLi3Zf;$2L9FN%PXtWZ>&$MBwfqs!KJ%8Q zZs70c0*_WKJ-=o5`B#VMF&@aAwKi3PO&g|Mc$uox>-k=9mZ>`RUcR%E0UXR#yLOi{ zs4^%haq_+lGdzFDXn}D;;6YG}d(oCHmCH{l&HkGp&Rg_t_mZ N`hHTR0b4MUfpT)9?e_KHSKoDL7~J0iw=P^ zSf=NUNAucMoj@a1AHZ2LN+q$YI&T`s+!&=LOyDXm({M}0gTkjd;tMTzc>4P7;|Syf zdo{|%Gbg7h_`L6dP1#akeryN~zubNI-JBZ5MKWOje(|W$3tjgtLD6#0*)s(*Cvbs> z5SF@1cKC*sKV8Aj&2VSgalW=D88a_d@Ib;PrKUOhf=mskw@eP$yz$~(E^r5Tsk@JD zgyot9OJ8M$mc>#l4uG9mHDx8c_xacZUJ-RE2Np3M2Ia1oMqd-2ZaR5aWP=Htj+PEM zc^UmTzHJLC61yG5Pu{$4)NXDVdbWcLl0bYu@A$OIreld(d9!y*NCG%*q$ N_8vlcx ^*vI+ z?O?B&Pcpl#89Y={T=UJ&Y$*^E6Xk(uVw}2NPDe#{`r@4;(>YfrfWzXH%gpH GxuRQ(3Effjvh6Sl5S-prXia+>ihSMBSg~kf* zMFuSsnsujGe#4z*4NEgY4LNYKG VPyW_(no}6VR}sS}$^s7a&ZekoT+?oEanX i zL&59Q0SAqIi_H%N@|L_i{c8J?%;M9`p=H; 23I%`u|#WyY8+sC8blsOL^9NY-yVMzaca!uO$4`^zYmYiq9?8&)?49 zld(OsNwn>dV*S*QXSAo++U>Y=U3BWz{7&a5eZEugMeJZ|Nb{GB*~Kd-*u(mK(fcx{ zSKeF){eM?m{jW%P-Mm|2(WX6MD}0Yg|6RQI4x_iopUV9VR?AJ^+ e3!R+B;V6-IHxJM{LPLP zi`IQSB~@=yc{^U>oqm08$&0xU<}^Mo=J-) hP_0gkQsUf>WcK?U(Wp%bP zWq(rl?ax$F^6C%zXvlkdWA_FZbA7?6;Devuzux6==vXhqf|A_(2YUJU *4QL%u8w?l-x|7 zzE0-ixu;)4los)8)#qPVSn!JB!9r2-#VY4R*Brc=`N#YI`o-q;mK(k<^u1{l_xj%4 zc(Dii=d{<0F;tZQ*%EXhyf3HnL3UV-{?ilx%4XZ&`4KvM+5d~RYo&$i_?A06+LV1^ zFv;LpVK61i#Cb2bs%)b2haV4o|7UVANL9 gnTX`G5U6`lhQJu5QVH zF4~s(M`U8^!PnWdH|*LXr579j#qMxpq)q)Nj$dhNlkLB3bH2PfTP82OdG(c2aJtC* z_T|l*U4M?~^3OT*%&N0PgZu5 m?c;$NTpgigK{&N$+_1IX|-WZi?*tfBUt!w#(jU zOIaOj5)%{IzB>ES>ZA6ywhbE-7|gG3SIlTB)H3K!zWlf%KTAaYx!4>DQI-^bk+^NI zKeexYSERYsTIRif9~;xDihmdQ`RirgzI9u6efCvv0cS~mxBGFyVXa?9?=5}Lu;AFk zLvwq@AFTa&`NzkXc0TRTxI@Y=>g`x@DEr^>P5)CW4*cCEb&K&qU(UM89bD4Wi>8G? zHq~Aw(qzS8Q5t>ku&C1J?Iw&otPH1iuiJh5H=dmLvqZthn<|e=TZWFkuo$0(&fhhya)JF4T{tu7b5qTveH;2b3*-GS) zy3~1gh8w1`cHx{g>x5$B-X31LQ*w`Cq0oLg`(8_Bnc4{J1$JrIxAfn=wn6IbJR^n! z&t|C|zg+wNj=-HepB&^b%zSB@F0 w9x!PMuU1o%dB~lhH<*zu^oEPS%{5 zHLE^QZ+Z5yT86$QpC$I~oqN5@XcyxZ{VffP7vwBja(93EaeuaLHlG%?PLKaE?W=2F zP}1$|Ut5AcKlEa#*>S7id$n{yMv=(lg$y-%`eD<;oT5__*Ij#gtn{2%Ozh>Ja&`a5 z2X1J}%%9uRwI`#aP5aFI8Aq3`+BK=xd0nl43T!Qa`~G*Y-`>!fFkjO-?o)VsocHov z&BxOf|IO>`cYb2c5Rh5^=-#!jGwnpu4ky}_ePOV>z3E-g*DJB^{0b>L5etnOzBqo+ zYbamvM3nc~`QLSS>KWd?b{Rtm*H=oD)7Z%u21f@xa8Fg`y@`beV6<{rOlFf3GO= z=H|UgelMp>TK!oRGF9W^)W*kt?f+ccUx d@Y z0lxVA`` t5ae^}s)9 z@A~@u=eYr|;u#B>8-g!?+&Qh( )fL~tj|B(dLeLcuGG=yTxlV@Z{MC|zLB=-a@cc=m0>eOoah5p z)mQ0OJ=6PgfByM>vR|5a@l5tLd*|M7IJBJcfpe%`Oz7mh%ld4a+XEBJ9~{2=@pxt8 z4*B)He6H=&mU*;^eCTqX{5tyX(?sp-!J787zP+niaqi{MUrfw7$NPAuUwiOw_u=%~ z2}%!dUoTv#@pf{+t1^b{$?+nc9Is^M?p!Tl6#BQ;Z%_HB6a9T=BEQa8AKtglJ}Nxu z@74Y*+f}Fde&dll7A?HIiQ%8y=a8DE?^o?kpY~p>d;a?6kNpIHsxhq5T6yGn&FX1S zt>#(&v*YvYW%}&e>o0fz+XM69o$ T)osHiVu zVQaWqpi#9wu;p-g-G$#9#cC%OKj}TNMsUyHAKTo&J^A$7{99Q~kmIh!^}qF2t~vhf zmfC5#c+J-1eKH5G?b;S0dOCp1|NGwFg9p9@^?nLmKIM@2qLbcUE9YC9{B>S*W&WJ- zI9 s8ts$jke? zY>hF`&oYyk&|7nNEdE$C<+jX?h{*PRFF6?wELvV$s8w`?ece+6S!&dim?|i+B58 zHGf&8H*-_={MgW-mtOC}qXVN}R%9prh^)_d*LV5 ;+ z7|V8tmC-B>Y!8apzJ9pzrt#~8T>ibaAugvF7TkL1)O&gE+wUCP^A0bMzV;}g>-9=D zkz>q^J#EhnY|MLwi!WQ)88@yh$awhm%BfwK{x% JOu-oK|y&mQ%e@@eIX^N}x&WWLCRrty_8I`_-x_Me#P_BkuwGp}H2 z2%0TBKf}h}Y|EBY@0>zgwIAAT{~h)){`Wnn2u+TH%H*#{-hX5MfBDz@XENLO-+g90 zYoAivFJaU9(qf9y3w!4OtlssnB;hr4{N|i}A?4foYX5jLgfavqmOom|tG(c9LVfG~ z*sk;2)*N2=GVn~B^Nx$Ro7~DHpCqR`xXLmlsL339@J7V%jPJuEZ%q8o_$8j}2(?+r zutsBL&)>DDG!i;b+`YK{{N@E!qDvh&SRFlnSz$$qMc~VVMQ4NgT=wm34qp7@;z{H4 zQ^Nu{x(l1@^N%k+Hs@cs%-@1{AHSBY5p|x&>viMns}l-g(?isBs%Kt1 @sPXfuRTtjq zHS2ZOKhHYW{&Drj;O;-sEAP)Ls|YiFbFZ>m@$Vk csuF=E=%C7Tw~HWjR0JN^I`x?bi&N&j0?NzrW}~+xhuX&+-?(&{+CYpz@xMp?}Ev z%|UlF_ubrd<+<738*lmi`)!#$v>7Z+dF8*)pKc*o#~8PqJv`+1$44J(!omaUBk%A2 zY~36!Z;^5IdjN;h>>K|i59Bj6vBp2~>38Zjac17&c;)|x?`5%%U)}t-v-!52{j|5H zCSkq*#aUyzPuy>q{VM#xLR~v1t!Ta2 0v`FjKH>HGHF&GYy% zpJ9sPr&V7spUwVwavAr7(j5;=cYN$z#=T+VCO&DcJv){rrvAC_x ^GuzzWyXqN2CwcBE%BKg-}7Tz1V= SY1!M|-eec{l97QUZ@%c? zpS$k$^`uW>Z1}(P-0G %q3k0#LHKqHMRs=i#H7l3U+kfod zy0=`f1YP1X@7=6mY;u!uF1}pw(rnF#kV8vfOK_iCxchysPy1r))T`@dcD?;{*!+(D z?mhPpUYZ4}QG$i}9k0A+irBhr4V(GZ?W#3?=N|}WDD60Rn e;EKe)`bW0G{>xrT z-T3vvxpK!HexCaL=h+N;Ob!0#>rLDH_egP{d$>_~qjF9^Z%%E-!3kGyT>fgQ`s(A0 zx6-epHZI&_wsyU#iFt4R%WCagPu7_D?%pJz{p_XJy^ZCOq0H-6Wgf{WFuS(?+7nIZ zskQ&UUkc#TpC@-f-_7sHZ7Gp^+|sX Zc z>A{#EPhSYc$yxSIT^jl_d;^c{cDMU+f|`@(W-ofZa;@r9jm V+0~G9Y-n{%#b^Bke_kYplb3T4A$qNeDsD4Cx&)OBmRTp099bR^-YK`vd&bfS` za mSB8*{xb?C#xN_4&vD9{cj+w!l}7hERqi)$c1_1_-#PA1m-o zjlK1d>wx6{Flp`A1;u|)Mer|f`ZdAO_?yHOtMvaqKdY>+X&s#Jnjatf);@a&Q^Qo% zlfCOdE!e;PG55}0=lEAdu%6!B K#;)@3_rv4=z8Rm&1l6{|i~iYFRr^Nz-g?Nz z@M@0S9QpW#f` AH$dl5UFQhvUh zHOnn$b-dvH9Oa0$uRlHhWji-BG$HJL-IbMZUPWIlczUVy&YZ>jR>$0oh-~+F(R!E3 zt`qpNLG*2{mALEmVDr#x$Gv7~due@q`HZ_TH`jR1M)iyip`UvlEdCT7-Y5Hd+UHsJ z2mV>@irKqsiIDh|Q2n1LzpfLC$*yt=Jutn-);jOh-_&Kt_iz7fR{!-!cEBcKhvF}P z^ fQfd2Yrw9WBNHe xF4w_x0c5rMg7D`ovb|tUB>^ zv6nwyYzy6xoq1g_N$ZW@8twl7k%3-+ukMUtJr_~Eds*w@er64K6@@!@E=((Xn&IlH zTDSOPO|fy6=#*{euiySz`T6 fJAUl(SmGyY{c zJ6me<{KedUQTCN>VqK=&&3B&`&)KCbvee8v@B7+AV)@!{KFYTRE&Z_m-@U&78v|bM zj4=IX7kBx_?aKUQ|L5<2S6Q1qf6J|{+8`KxFFHJ|*{k}M=$y5sYoE=uv1@%`|Kx#I z@U! &0|wj#*ntB}&}c!8IiyEonHuZ}i#RLfV#24C(`E6@D0%(v4f z^7rF)#m}!!3|chh*ZYgJU!Tejob0ITFMe<>ulB=>zV^b2Z{lul{(I+5s)hj5*((qB z{rTNw!?}4wO7@rB`uykhZ7Zr5ZO{L*E#*t`ls8>j^=q`04?O*M@7(Rpbr*_z>WeSS zD RJ;J$F|;{OaGYt0tY= ze^s@n hCudaEP+M8-9 z$n`+ly -O}_E^8&}8T+dL*qZD*74T}q;|otB6c+S6XIl8+ z|6-SU{d$J^8taetmad&vdslw$tHY}oH(#8+p8wB|{NRQ2Ckb5Lkbm6j?1ebC2TTpx zt7 ShU|&=S#}Sv-)NyICFLRlo#cubMw8emMU-iT 5cksmNUuR0nK&z3I2v{a2f! zYgc=%U!7Za=lZUFTTVUOvoN#R``r8**N5L1=daiQo@S!B>uhl2*JW|CjlXuE2-^1a zk8SMr8!9y!p`K6g$Hjzxzb;yKd~@#aGPzBR?F>Jai+4oDMzw;P(4||?o|aoDkjZy1 z>7A=!X}!t~o%P?!e3f>yF@lomnrgjScb47=yPs9}wc@bH)gPBvm)pOJc~$pv*O#Yn z%i{fy&+XkSTmRzq%N?5|j_>OT+V|qN>S>FV5Y1NG=JtZ@!&-Nq#kWdlMHj@su5#ac zw{)>kuD?mlRZH6)dfoe0x7Ms!b#Tw6!in!^J*%F!&pmMm$kekF)E7Nmb?@oHr=j~c z-#26xEmMD&7uC$WZ2$SPi*shL+Ov(-Z(f71@SO*_2Yc^LTf`CWvApT&` nMzsq+vJ-i?;@`RfqY|1T} zbeW=`=bmtU sQ^2Y&yHOw{vsiImOTEKX}jI7nsANxivB4 z_2K69-SO*wRPC qY_9fSJRq~}%Jy01=}Zh|a{olP%{<4XBc}OZRd}LwNQ&aJo1roPIRcp; ze9DsF<7ZxHP$A){%;US{lG=@(yVjU#C@m~M?!WrlUhB_gT|1`!v7I}gujTOnyEY5* z7dGo${qz4COYevCufLbvGp@Mo%zp025* WY!5}rtRIDsJiR-Jtq%M zjn=Q z1qs%e}Am_)&1ga@6@l;!hY+m&2l)v@p$P(;R7`n zzgaC8c8@ii9u*q2(4URDQTg)Y|F`d7E ??O1)rvitOuLsd&xS}i}3 zuD|YsS$ybaiCESR`zu!6|7_(~HiO+nj9KuA(A0Fv)f<~w&-Hix+1qqx{^`oy^`(A? zL>XejV*BI$=Nx+Sr$Tgpt>0hP2Kx=aUdR0URQCHoN7-z(h(ryUPvMg1_Y~cH-mH1Y zRQF$P>~?MEzn)*dT{Z2s >X${Fv~A_FlfpqMtCIpX|8LV+@p^H- z_@j3ROV((tJQCac{INCjd&M<8HS1DkZOnGdHvC j3 5IZ`-1o7hivQ;Fd2vPrB>u*56b1Z-0G*;e-24o4m{a&Ru Y zxOm?Q-FbNa STZaGHS9klZ)MeLo zm#9wH%#d$daoTY8wN*d2S#>b+1n#hS`MfMSbne^f$<6ZLznAUPI>6YmC&A(GgCEn{ z`y&4JKAp(0FJql%>@l_PT(gTW?hjX7S};3bRBF!7+27s@$j;85{h?X-bA7VQ!}3{G zWp7{IF8jZJ%`Yj?2zvYRr>gsphe*oKx4pZedim0+7nl8=ySjHnl}%kok)>H!#Qtu} zo1&q-5}aoqNgu!GvU)kw<%J4;XMG-AYn$r2Stny!)PW$c4clMOdT}<1Kcd4XF@M#X z!yXA@C*5bQ(OP-s-W-ck-G*Yjgsbmg#;kw6`F^L}M8!|GH9Ky#m!@vDFtjc`rum5P zEZgi1j&t+7!`GR7?Wup?x0X3tuJU46_9n@P`bVD2PK_vIIdtn&7SB1~hg&x;{8`Si z@6G$SMHVG*`=2{4jJ{OqdIL1OlIUD}lVi0t>jehK103@|9{+pbhQYNtsd?9TE;||9 z#~=Rl!{p1%pWg?(>i=799VdU|(+B(Kuccmn|KlvHu<_n%{?MOiHow#<^-Q&0C7Wks zUcoVY)vFB-|J{54&pLK}>Gtd>$Dhj@*?2dsJnE&^9oQhmIOW!ghTecz#zyy#{Lg0n z;~@O?@4x>q>i1okwOI7b@h3X>eUv)qxPJ$Yti8}`y`6V>;mM!DR(bgmo!4y6q}uG? zBE@dAe3ARcn>?KMH@_r(Z(nPrc<}ADc{^6zxm^<4Yyay`PW{J_`jgofKj$t>x6XgP z`{%;TH|u(zJ>T``;e=m|DgPMWaP1a0zq htJ7M;V zuQdBxFGjVqi;G1Za9Wc2{m2~?KHuJ?y8H&4i#KiyzPbPF!~Um_U%%e<_djbu>xsy? zmpr0pU1l$r@m;s6^|qg=iNm#(s)weiHA%Hg^R5$`@}f*;?z{u97d!9Rq_*$&tLe$k z5h;#UYZ W$w@lP8)w|~6f}L}G-+BD1HkIUgP?c|d%Vuij+%L7w z+gbf(YlRp7{MOZd=yLLZj-~HTZ;?HC|ME`GS$BAs=J9JkKGZ$=*~8p5t1j1Dnw3mV zJgixt|2%rpm3bRhEceT)eeyiL`puKr^HNt5B(loCux{5ix^-mg^QHIQ%5PfUUY@md zN}Z1M_p-aor`&2iu~B6E>oz4xM9FZj7wSejt12@)om)A|KWJ_BBQ-|7m`_{B(YF z-@U0JKfagM33AmlJGd`ttnj|eH79)5uLs*UK9HIBu9`deVZfKzcBg>ww96uQcWi&X zeQMDEh7;P$&u?9`{ZIemg(CB0ty;>}-4euk#lx>Xd^PI_!{zxr{4DYEvcLWv)ct<{ z;qBWuwYX+8+~iu}&)^ZUT!>-qJg%59(|V-?ITkY9i!VN|;kr6U@X+PI?-MHYzCE(m zm{oI(LwaG%w|dCriM;Foe}CK_S7wwx-}mdou^$HaW?A%F|5?59hFGDC-l{|Ioc5k> zu3FCi^_ Z(KXOI`icje61f0?`NH9VV0OR``E*mg )G!oUm_W1sT~jxi;D_4KJCe=#*e`_ ztVPZr_xe!EaQ`At%&be#I^X5p4LAK(DEQNsVdKqaGvC9tYo!B{xNI&jR49|R-EiUj z#oYm~GzGtg{J-XY&-32{N#%-VZoM}PBKV~et(Ekp?5=It^q{?R-szxUp&!4N{aeg1 zpS@vqmej|ETCb~B&xJl~mgd#iV_hhvxHLh7Rih?1;kI++*B=q $4pbbm8(v_xW6{Qr@i?{*#F%Ud}rEq zc4w?8t9tflU68K0_2XOL-ml_mIlP}?1JlGpvF&DSwme#R-b=GJot^)2NP^YE|BrXw zN(-@^V=$%ZcAERjJpTx{m>$N~=E;jC_*nz;iW5>Zm%facTA8@?g1L3$;o#(o^rRyt z9+gdYyO&+vwoBV-X<2n#`o+1u_2NUU5qr3I>O|_=}YwHtsoZ2|$RTI;ZzH1v+#V-rUS+mAD z+tc#bGW7)vD}q|hk0;;0v;WSG%U@Uj%jLJ*c;|Yjhh@adkINUi_bGh3|2lbJ=(Cl( zGFKK?6?h-!s`>uo_h;XWT+ubAkKZ0|{BM2t_^0sR`_jDOe!j H7Y; zR-c=>0yY&?`*xnSt8Ytnjdd&D$<^z={qebDpFiaPeV?(Gm80kuAfw`8@nP;=`S- z8SYH{Dt`NZ9(T)Of4BJ&b7t{gzxwRGiuCH=_9h%*>bd6r%ev3JUr;nXx!70u-h8RU zvmY-nC`sdSd-D9eUex7W-qp!_YiDQAlJWn(zqq!b_%w5^L%N%Iy5QNgAB(O>?mBb2 z`S~pAJ-RbYohs_HL`=)X-(~Gmu)2RT@1D)ZU!Ssm_bh&*#rkz-C$j8T%;>H=_j76J z50AfGFCw>fZ>`iSaGlC;-)rL9eQ3Vfo3~XTk4$5)pYSR9&HblbEr;K3e7%0v`5zi> zC0nXaeO$e9Vav%Q>t|J^+U%0u>L `m?TFr<=-etUuFf0zujKTth}0|3KdFVdMcbrie4O&o?P^mq zC?|aa)o)63B5oFSXt0Y(9=!ZQFLlSM$(z}9sxMR;Zux09FKhR0o3r1TJ(ZrDlz!ja z8~pjSmfvB6e> !MfdV&dLz&QZJk zG?drE&bU+A_%XwROs~I_^YfoCU1|1;?eIc a@9V- yteyW(b^84;++o?fG+pYQidQa*c+Vo zbNi~=h_8%s^E9?v7L@ubpVMD^=zG8Xod~{S1_quJpmPCi9zW*dN)+99@cQM#=O1(V z>$4;Egc^i)n*B0w*{`2|iDgCU4)NF9E>1o4>q&p*T)CK#hevO1n#CIbXIYeFZ`;=f zuE!UiNc8#iKRj~B#I3nFz)SS(y5~-1-|kEJ=Jxz+xU#EjySS=sneXx3e^-AzPu_p* zO%3x8uITpx# zkE?}%k@VSlMSrs1T#-C%eAc_dluvw?ZE8etSaVf(da0$$an{tUI~0WGIJGqz@W{-c zduVfWyO7%lkyq=UJC$Bbm#oiEXK!d{co3CuZ1yx!B649xei6%k`^2iRD?dat- wYl2%iL$MJlUl0yx+t7zwVovN88zLczW=+_}xWoru?Yd zy-&R nt}pPBwypKoMfoH@%i{qVw-hG!%b&$I~tyL DGF7XU^6A zNw>bnbOilezt8Yj+xCv~;MAnjOwnsouRrSj=%Kvz!F%a%@2fr@;r%Xu?&|fNTlaTL zv7M{oT*f|lC_f0x~B z_t+sMn6oxJafg+=YWQz6w^g;rmmUB3=>+GOvnn!gBX}PKdp!vbXy9VD;!)W2Ja?n= zj8!sz|E~K_vgyvtj@91d$6r_RN#fp|j<;XpQ$2nhJ$A3}_h-Y^XB3N$FZ0UJEQ+6~ zCw0uJc*U0I&pf6&mFV%GFL`NoZQ9d3V?o{AmknF@-xbR(5NC)}XAax+I&1a?b7Mi< zj2%wg?f*IN-o5@j$!^;E?Vr<>dzP0p{yTl~V9QOv_5Jf*isjNc84n!u(r;_NY$0%S z;qr$2U*Enpd9!Hl1(AJ4aZAG)9_;NDj239K-F3bu*j0Acr;^?&Gh2VzN7;&Id<{uZ zG3aJ~y!^wtCmtm;D+1sA_c-t5-*WpEXy&u?-oe8hXXdX8Sfy}x-@J3{0u{KVNKp z$nlC3w+vTD&cUTA@>3qpoU%)`K3MA8+lb|ow-{a0H1FQurkF1t=E3%S*@fCSxe_01 z|Hn(-_;n#Z>Zj?Sy>tJIH>`JKZ?|%BUwgWjE!}fX;cwyI=g-%QtetXb-oe8a)kbwi z&CZv5s-v%EpLC9V-eV9pHRRE>wosX%2o=AxXCK@+W8ru9Y?6sd_sW2peZfo5a+WW7 zzWC@|i?9El{W8 j>k8J*$XSI5*L3G418t&d%NwQ;MM!%g1`SSdA&9Cub%Jv zsKBVkmk9#Qn}c_3O;nwIr!#0v$$?kUImB~4x91#R*wA_`;J|kFdye ;3Cb^p5KCu0A(Y_cGUk)r*^doGh>pn;te_a6?sl z--3IQO}wI8PnY$&9Cgraoj*tJz-eXmGsZ=Snf|=>Iq>!QMMJ}rwG&>>lfQN2cSWz$ z2Tulb APw##15-%9IFv2L|XSMY_mM7a861-!zuTB5#S)_USp~5_?Z`q%V zPG(1On5P9D%fEB~;*vw3Y8f_e*3{EkeQ?^ZYsH&9YYNJQ?%V#et6Tl^P)o7&|DErz z@3>rVw@N0bOLfzsg)0MX%u7_Pl+>KsrmT?d`?;U5z96o0E5m`^kC#tn+E (!uV8~hWh7c+LxEvd`pR$yko+V%!P`YK`SRL(7sX9c!YPuL$)2Aam>~#X0cOT zm#mwx>y@m+#y5+Eg#HG!9$B CFy@cQa{+w =O3>-Ws}-~TV`;jyo4Z{7O&Eagl0$NN!BpH2OH_)kv7m$f-*?EB`j-Hof;RIgkA z=fmBdb|>cZ^?h+X#5PBE!>pp`C-2;g*{YPDdjI9yC)e-)PQ3T)#op!H_FSFx=fNq1 z^?dyyYa6ES*;7Abw)J06`6vDRt6#7&nLW`IU6U4d@YRZhwTqWM$@`!1@YvVDS$oPV zw2xa?%Ly`MOP5qhzTphrkm !*;5{W{2mwmUzFj1kr>;WWtqNA*VeI>Gc+vK;fvTh zGi-yE8yf?IPIBS_E#JKU{og}2FfdFjx)#^s$+~(yJ2yjuW;*MdliLDBbr>3+&f$tU zzxVSo15bO;T}xB_gc%M@@?%{yxyJJ4{#V%r> x_> z4Xg|s)?8*>{jo`aAwhOIQ`k(-i0ZlL{{MAgU=Y9i(vVlRY6AnqH3Rt#arJxEb{hV> znP2V7!LVV?&W6%2uX>+P%27R8wtBLkDKj@iLS!-H>dgMMb?l+*85qJ0#W%dlY2Gc~ z!oZ+CbA5v8X5$SY_k+Z}PNn#sTL+U74R2v!c>Sy2GNM +^ekPX+@+ zgtzacz)autgiKJdo_@@A?Mz2o<3DYNhOIVrt`_Et96@eA{ YJ7dXImECXGZt?p2{y!_jftjx~)a|AITfDH_eDg8` zLk!c_DSJ%*8Qu{BMM3E7DW0s^H?BV5W7x26mdRzVY1&Q<4O_3On16n ^E1f{quD*`)oUIh676j;;r}0ynkoM^!+wJs_lNh>h_(_&hX&SYR^q~-#xkZ zt i( z1A_vCr;B4q#hkZyD=T8sXFmUXzu52Xt@6;!jeBkvifyv2?hsa2 CLaEfXv{AJ<-v3-Szo zKGS~9q^Gglysfs@*k7O8UF?^+Q#It$`SZosYgHJC1pyvC_gNVj3ZhO=x9*gVdT(^? z+~m?YezrOJdv`s#_weI!YwNqqZZ%5w?WvsfOgeMk#I&f@QIb==S4sR{A2msRrT?V~ z6Wi8a(O&6(ZI71wdP)EF6@9g)6AbnD*4=I||NS#{@dm*S3=Ea4>ps8g`Xu;V{p!Jh zZ0{{vRSKpSd-5v`W|r---!8e^!^m4DR!7r>b$;FYCAyP-wyxQJbnChEoUt=>n8X+q z^3UGc^6d2IQ`z_Hi<7HWs^5y+{{AxgaJ9*+)Mfh>lH(@iOy5{GxpeRQ_i>*N9DJ$I z)Y{O%%5cJ4*T42B@4|!+FH?27wX&Qa|Mbet{<=TD&QJ2@$L!R`1zAmkq3p`5cw0kd zd9+`#iI&K;%7iN(4?MwnA}aIBvZ>$JT)Gx~>a@m8&(-#GgYLiR_~q_?WxC(X4<{xB z%`0CfWP37iYT-WB^L5$Z*M7G*FTKwzA_aEunaJM>6$T;S{FHxtdR}jl4S$~%yI@x* z ^9!*`lYsIR-+>1q9U9?4t?##KCxHdH3YH97tCExhfx9U&5vhN||(zUjCcfXx* zb$icM^YX7Db@8XC{oHV*t;X>H6T^>nps;+f;jgmtXZ1 rCmHlT!|Q#<%;jAN zLcVPEzt?d#<9NdSZT#O}Oih{JX8dyUzPS^(RfqLQU$3rte^$P>?iP2eK1T#Y!^`xw zo%vCJ?UKJ*dUkg5hq5^BTCvJeJnWkGE4GxiS682mEA3wv^03Wh^`5A8C)eA@&)a&- z)@H%mX4|U51<}nfF9z>@sh|4x@ioK#_dB2dyS{9@m(TJ)zc^VLME3qzHg&r6`9J?B zt(#e~S4-mBqg!dZD^^SnK2Sf;M*FSYyUW~v+rM6NSRZuHGkn{cHFYT||Bt4e+5fiY z^56F5`-6Oz9{S74#vn4KZ=LBx!SlbPBY#JFHop1#$sr*8y4scvn>I9GJ(;p*`SnS) zzhdjRZ&R f;vYE~L+@gJ=NH72i8zkEvQue*MKt?bEt!KNp^dwshvyL$b*KM&U}-&*riGTl|d z9+Xdlk4H_uvE`S4>R0|rO*c=kz38Qzn-d;t@Fu_3PV&@}ufH1)S1tU%;TsSCyjN%A zrW^i$H1kY&W}m(diw?tqDIO(jS8UJx9++H`{w?anj$Qi}hKh$>`^=u<^FG5%|BL*! z{NMa5%S}pGng3q8vFgySXPtM=>wlDAj#fO!YJZ=hVNUkVEx&|b-^}-Vbt10Y{nVFb z&mvcSsodjaciY-#h4?T2*GC% i?%s{EPke-upyhsrzN0(kY=oW1|jAeKo35y}A58f642s2j^XG zUE4fqUvkerW$8OxvR|_E`{pm5(b2%lU{ODJZr-A8?;SnopNLz<=k{gVkDRMMJNgyQ zonJBi; tgd;NnMdB47;%dI-e(|%uP zah2!!w^6?yuFL$X<#^{*RqavfJ@qR6+QsudTkWSl=3`&tetWTKUaEo2ExQ|&y(;hd$6E?i z3*YY93ChfKHd|)P^Qb$g{@1&?d-L^Y)33kUwv5lRvdnsRQktr)hw9f;3G2&Les3{1 z)p&m;x|7Rl-Mcv(N?%95l-^xG|Bm&Q@8Q ?C@(xN^@f$ zeR zt!TnP5-4Q?X|6byXw}Cb?a1PM7!MMtK;(5 r