From 2c84e3d95583cb369d8b196dfe9e3b9e00e19ac0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:23:28 +0100 Subject: [PATCH 01/63] website: bump react-tooltip from 5.22.0 to 5.23.0 in /website (#7558) Bumps [react-tooltip](https://github.com/ReactTooltip/react-tooltip) from 5.22.0 to 5.23.0. - [Release notes](https://github.com/ReactTooltip/react-tooltip/releases) - [Changelog](https://github.com/ReactTooltip/react-tooltip/blob/master/CHANGELOG.md) - [Commits](https://github.com/ReactTooltip/react-tooltip/compare/v5.22.0...v5.23.0) --- updated-dependencies: - dependency-name: react-tooltip dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index eaa9776d8..a14bd7cb9 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -26,7 +26,7 @@ "react-dom": "^18.2.0", "react-feather": "^2.0.10", "react-toggle": "^4.1.3", - "react-tooltip": "^5.22.0", + "react-tooltip": "^5.23.0", "remark-github": "^12.0.0" }, "devDependencies": { @@ -14235,9 +14235,9 @@ } }, "node_modules/react-tooltip": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.22.0.tgz", - "integrity": "sha512-xbJBRY1LyHYd7j00UeBOqZR9SH/1S47Pe+m8vM1a+ZXglkeSNnBt5YYoPttU/amjC/VZJAPQ8+2B9x8Fl8U1qA==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.23.0.tgz", + "integrity": "sha512-MYqn6n+Af8NHHDL3zrSqzVSoK2LLqTNFp30CuuHCYlBEf+q88FWfg+8pSO+0GnDvOa5ZaryNDq9sAVQeNhnsgw==", "dependencies": { "@floating-ui/dom": "^1.0.0", "classnames": "^2.3.0" diff --git a/website/package.json b/website/package.json index cfc46b44a..f76a48bca 100644 --- a/website/package.json +++ b/website/package.json @@ -32,7 +32,7 @@ "react-dom": "^18.2.0", "react-feather": "^2.0.10", "react-toggle": "^4.1.3", - "react-tooltip": "^5.22.0", + "react-tooltip": "^5.23.0", "react": "^18.2.0", "remark-github": "^12.0.0" }, From 554481f81f2a902f920c1b7221caf2405c4606ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:23:37 +0100 Subject: [PATCH 02/63] core: bump goauthentik.io/api/v3 from 3.2023103.1 to 3.2023103.2 (#7557) Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2023103.1 to 3.2023103.2. - [Release notes](https://github.com/goauthentik/client-go/releases) - [Commits](https://github.com/goauthentik/client-go/compare/v3.2023103.1...v3.2023103.2) --- updated-dependencies: - dependency-name: goauthentik.io/api/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 348fe36d9..c76b04eb8 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.8.4 - goauthentik.io/api/v3 v3.2023103.1 + goauthentik.io/api/v3 v3.2023103.2 golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab golang.org/x/oauth2 v0.14.0 golang.org/x/sync v0.5.0 diff --git a/go.sum b/go.sum index c2ad62fd3..8d3c12a14 100644 --- a/go.sum +++ b/go.sum @@ -358,8 +358,8 @@ go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyK go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -goauthentik.io/api/v3 v3.2023103.1 h1:KqZny4BPDEQ6cIDuZ9pn6/kpvyu+o6o/EekAfujffow= -goauthentik.io/api/v3 v3.2023103.1/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= +goauthentik.io/api/v3 v3.2023103.2 h1:k3GOGc5vVfxkS8+a8KjQaqAOPfpCqDYLEIjKEewrxwo= +goauthentik.io/api/v3 v3.2023103.2/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= From 0430c16f8a70957fb1349fbda88a05d47b0e1a80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:23:46 +0100 Subject: [PATCH 03/63] web: bump the eslint group in /tests/wdio with 2 updates (#7556) Bumps the eslint group in /tests/wdio with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 6.10.0 to 6.11.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.11.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.10.0 to 6.11.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.11.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 100 +++++++++++++++++------------------ tests/wdio/package.json | 4 +- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index 081e13d33..a43e914d4 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -7,8 +7,8 @@ "name": "@goauthentik/web-tests", "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@typescript-eslint/eslint-plugin": "^6.10.0", - "@typescript-eslint/parser": "^6.10.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", "@wdio/cli": "^8.22.1", "@wdio/local-runner": "^8.22.1", "@wdio/mocha-framework": "^8.22.0", @@ -864,9 +864,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/mocha": { @@ -888,9 +888,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", + "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", "dev": true }, "node_modules/@types/stack-utils": { @@ -940,16 +940,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", - "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/type-utils": "6.10.0", - "@typescript-eslint/utils": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -975,15 +975,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", - "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4" }, "engines": { @@ -1003,13 +1003,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0" + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1020,13 +1020,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", - "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1047,9 +1047,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1060,13 +1060,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1087,17 +1087,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", - "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", "semver": "^7.5.4" }, "engines": { @@ -1112,12 +1112,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.11.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { diff --git a/tests/wdio/package.json b/tests/wdio/package.json index a5e1078fc..1d1667b73 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -4,8 +4,8 @@ "type": "module", "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@typescript-eslint/eslint-plugin": "^6.10.0", - "@typescript-eslint/parser": "^6.10.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", "@wdio/cli": "^8.22.1", "@wdio/local-runner": "^8.22.1", "@wdio/mocha-framework": "^8.22.0", From 5b3a15173a654e889918c85b1e41d0de000dee1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:23:54 +0100 Subject: [PATCH 04/63] core: bump urllib3 from 2.0.7 to 2.1.0 (#7555) Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.7 to 2.1.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.7...2.1.0) --- updated-dependencies: - dependency-name: urllib3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/poetry.lock b/poetry.lock index 197b912fe..dc8e103fd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3819,40 +3819,23 @@ files = [ [[package]] name = "urllib3" -version = "2.0.7" +version = "2.1.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, - {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, + {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, + {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, ] [package.dependencies] -certifi = {version = "*", optional = true, markers = "extra == \"secure\""} -cryptography = {version = ">=1.9", optional = true, markers = "extra == \"secure\""} -idna = {version = ">=2.0.0", optional = true, markers = "extra == \"secure\""} -pyopenssl = {version = ">=17.1.0", optional = true, markers = "extra == \"secure\""} pysocks = {version = ">=1.5.6,<1.5.7 || >1.5.7,<2.0", optional = true, markers = "extra == \"socks\""} -urllib3-secure-extra = {version = "*", optional = true, markers = "extra == \"secure\""} [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] -[[package]] -name = "urllib3-secure-extra" -version = "0.1.0" -description = "Marker library to detect whether urllib3 was installed with the deprecated [secure] extra" -optional = false -python-versions = "*" -files = [ - {file = "urllib3-secure-extra-0.1.0.tar.gz", hash = "sha256:ee9409cbfeb4b8609047be4c32fb4317870c602767e53fd8a41005ebe6a41dff"}, - {file = "urllib3_secure_extra-0.1.0-py2.py3-none-any.whl", hash = "sha256:f7adcb108b4d12a4b26b99eb60e265d087f435052a76aefa396b6ee85e9a6ef9"}, -] - [[package]] name = "uvicorn" version = "0.24.0.post1" From c86d3470349efc714b1e9c7a48ce6eab2ab84ff5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:24:01 +0100 Subject: [PATCH 05/63] core: bump pydantic from 2.4.2 to 2.5.0 (#7554) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.4.2 to 2.5.0. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.4.2...v2.5.0) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 217 +++++++++++++++++++++++++--------------------------- 1 file changed, 106 insertions(+), 111 deletions(-) diff --git a/poetry.lock b/poetry.lock index dc8e103fd..e65880094 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2642,19 +2642,19 @@ files = [ [[package]] name = "pydantic" -version = "2.4.2" +version = "2.5.0" description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-2.4.2-py3-none-any.whl", hash = "sha256:bc3ddf669d234f4220e6e1c4d96b061abe0998185a8d7855c0126782b7abc8c1"}, - {file = "pydantic-2.4.2.tar.gz", hash = "sha256:94f336138093a5d7f426aac732dcfe7ab4eb4da243c88f891d65deb4a2556ee7"}, + {file = "pydantic-2.5.0-py3-none-any.whl", hash = "sha256:7ce6e766c456ad026fe5712f7bcf036efc34bd5d107b3e669ef7ea01b3a9050c"}, + {file = "pydantic-2.5.0.tar.gz", hash = "sha256:69bd6fb62d2d04b7055f59a396993486a2ee586c43a0b89231ce0000de07627c"}, ] [package.dependencies] annotated-types = ">=0.4.0" email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""} -pydantic-core = "2.10.1" +pydantic-core = "2.14.1" typing-extensions = ">=4.6.1" [package.extras] @@ -2662,117 +2662,112 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.10.1" +version = "2.14.1" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"}, - {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"}, - {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"}, - {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"}, - {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"}, - {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"}, - {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"}, - {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"}, - {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"}, - {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"}, - {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"}, - {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"}, - {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"}, - {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"}, - {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"}, - {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"}, - {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"}, - {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"}, - {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"}, - {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"}, - {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"}, - {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"}, - {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"}, - {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"}, - {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"}, - {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"}, - {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"}, - {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"}, - {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"}, - {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"}, - {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"}, - {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"}, - {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"}, - {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"}, - {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"}, - {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"}, - {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"}, - {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"}, - {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"}, - {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"}, - {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"}, - {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"}, - {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"}, - {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"}, - {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"}, + {file = "pydantic_core-2.14.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:812beca1dcb2b722cccc7e9c620bd972cbc323321194ec2725eab3222e6ac573"}, + {file = "pydantic_core-2.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2ccdc53cb88e51c7d47d74c59630d7be844428f6b8d463055ffad6f0392d8da"}, + {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd937733bf2fe7d6a8bf208c12741f1f730b7bf5636033877767a75093c29b8a"}, + {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:581bb606a31749a00796f5257947a0968182d7fe91e1dada41f06aeb6bfbc91a"}, + {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aadf74a40a7ae49c3c1aa7d32334fe94f4f968e21dd948e301bb4ed431fb2412"}, + {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b89821a2c77cc1b8f2c1fc3aacd6a3ecc5df8f7e518dc3f18aef8c4dcf66003d"}, + {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49ee28d65f506b2858a60745cc974ed005298ebab12693646b97641dd7c99c35"}, + {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:97246f896b4df7fd84caa8a75a67abb95f94bc0b547665bf0889e3262b060399"}, + {file = "pydantic_core-2.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1185548665bc61bbab0dc78f10c8eafa0db0aa1e920fe9a451b77782b10a65cc"}, + {file = "pydantic_core-2.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2a7d08b39fac97540fba785fce3b21ee01a81f081a07a4d031efd791da6666f9"}, + {file = "pydantic_core-2.14.1-cp310-none-win32.whl", hash = "sha256:0a8c8daf4e3aa3aeb98e3638fc3d58a359738f3d12590b2474c6bb64031a0764"}, + {file = "pydantic_core-2.14.1-cp310-none-win_amd64.whl", hash = "sha256:4f0788699a92d604f348e9c1ac5e97e304e97127ba8325c7d0af88dcc7d35bd3"}, + {file = "pydantic_core-2.14.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:2be018a84995b6be1bbd40d6064395dbf71592a981169cf154c0885637f5f54a"}, + {file = "pydantic_core-2.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc3227408808ba7df8e95eb1d8389f4ba2203bed8240b308de1d7ae66d828f24"}, + {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42d5d0e9bbb50481a049bd0203224b339d4db04006b78564df2b782e2fd16ebc"}, + {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc6a4ea9f88a810cb65ccae14404da846e2a02dd5c0ad21dee712ff69d142638"}, + {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d312ad20e3c6d179cb97c42232b53111bcd8dcdd5c1136083db9d6bdd489bc73"}, + {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:679cc4e184f213c8227862e57340d12fd4d4d19dc0e3ddb0f653f86f01e90f94"}, + {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101df420e954966868b8bc992aefed5fa71dd1f2755104da62ee247abab28e2f"}, + {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c964c0cc443d6c08a2347c0e5c1fc2d85a272dc66c1a6f3cde4fc4843882ada4"}, + {file = "pydantic_core-2.14.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8276bbab68a9dbe721da92d19cbc061f76655248fe24fb63969d0c3e0e5755e7"}, + {file = "pydantic_core-2.14.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:12163197fec7c95751a3c71b36dcc1909eed9959f011ffc79cc8170a6a74c826"}, + {file = "pydantic_core-2.14.1-cp311-none-win32.whl", hash = "sha256:b8ff0302518dcd001bd722bbe342919c29e5066c7eda86828fe08cdc112668b8"}, + {file = "pydantic_core-2.14.1-cp311-none-win_amd64.whl", hash = "sha256:59fa83873223f856d898452c6162a390af4297756f6ba38493a67533387d85d9"}, + {file = "pydantic_core-2.14.1-cp311-none-win_arm64.whl", hash = "sha256:798590d38c9381f07c48d13af1f1ef337cebf76ee452fcec5deb04aceced51c7"}, + {file = "pydantic_core-2.14.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:587d75aec9ae50d0d63788cec38bf13c5128b3fc1411aa4b9398ebac884ab179"}, + {file = "pydantic_core-2.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26242e3593d4929123615bd9365dd86ef79b7b0592d64a96cd11fd83c69c9f34"}, + {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5879ac4791508d8f0eb7dec71ff8521855180688dac0c55f8c99fc4d1a939845"}, + {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad9ea86f5fc50f1b62c31184767fe0cacaa13b54fe57d38898c3776d30602411"}, + {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:102ac85a775e77821943ae38da9634ddd774b37a8d407181b4f7b05cdfb36b55"}, + {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2459cc06572730e079ec1e694e8f68c99d977b40d98748ae72ff11ef21a56b0b"}, + {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:217dcbfaf429a9b8f1d54eb380908b9c778e78f31378283b30ba463c21e89d5d"}, + {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9d59e0d7cdfe8ed1d4fcd28aad09625c715dc18976c7067e37d8a11b06f4be3e"}, + {file = "pydantic_core-2.14.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e2be646a5155d408e68b560c0553e8a83dc7b9f90ec6e5a2fc3ff216719385db"}, + {file = "pydantic_core-2.14.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ffba979801e3931a19cd30ed2049450820effe8f152aaa317e2fd93795d318d7"}, + {file = "pydantic_core-2.14.1-cp312-none-win32.whl", hash = "sha256:132b40e479cb5cebbbb681f77aaceabbc8355df16c9124cff1d4060ada83cde2"}, + {file = "pydantic_core-2.14.1-cp312-none-win_amd64.whl", hash = "sha256:744b807fe2733b6da3b53e8ad93e8b3ea3ee3dfc3abece4dd2824cc1f39aa343"}, + {file = "pydantic_core-2.14.1-cp312-none-win_arm64.whl", hash = "sha256:24ba48f9d0b8d64fc5e42e1600366c3d7db701201294989aebdaca23110c02ab"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:ba55d73a2df4771b211d0bcdea8b79454980a81ed34a1d77a19ddcc81f98c895"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:e905014815687d88cbb14bbc0496420526cf20d49f20606537d87646b70f1046"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:443dc5eede7fa76b2370213e0abe881eb17c96f7d694501853c11d5d56916602"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abae6fd5504e5e438e4f6f739f8364fd9ff5a5cdca897e68363e2318af90bc28"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9486e27bb3f137f33e2315be2baa0b0b983dae9e2f5f5395240178ad8e644728"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69df82892ff00491d673b1929538efb8c8d68f534fdc6cb7fd3ac8a5852b9034"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:184ff7b30c3f60e1b775378c060099285fd4b5249271046c9005f8b247b39377"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d5b2a4b3c10cad0615670cab99059441ff42e92cf793a0336f4bc611e895204"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:871c641a83719caaa856a11dcc61c5e5b35b0db888e1a0d338fe67ce744575e2"}, + {file = "pydantic_core-2.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1e7208946ea9b27a8cef13822c339d4ae96e45952cc01fc4a91c7f1cb0ae2861"}, + {file = "pydantic_core-2.14.1-cp37-none-win32.whl", hash = "sha256:b4ff385a525017f5adf6066d7f9fb309f99ade725dcf17ed623dc7dce1f85d9f"}, + {file = "pydantic_core-2.14.1-cp37-none-win_amd64.whl", hash = "sha256:c7411cd06afeb263182e38c6ca5b4f5fe4f20d91466ad7db0cd6af453a02edec"}, + {file = "pydantic_core-2.14.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:2871daf5b2823bf77bf7d3d43825e5d904030c155affdf84b21a00a2e00821d2"}, + {file = "pydantic_core-2.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7977e261cac5f99873dc2c6f044315d09b19a71c4246560e1e67593889a90978"}, + {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5a111f9158555582deadd202a60bd7803b6c68f406391b7cf6905adf0af6811"}, + {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac417312bf6b7a0223ba73fb12e26b2854c93bf5b1911f7afef6d24c379b22aa"}, + {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c36987f5eb2a7856b5f5feacc3be206b4d1852a6ce799f6799dd9ffb0cba56ae"}, + {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6e98227eb02623d57e1fd061788837834b68bb995a869565211b9abf3de4bf4"}, + {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023b6d7ec4e97890b28eb2ee24413e69a6d48de4e8b75123957edd5432f4eeb3"}, + {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6015beb28deb5306049ecf2519a59627e9e050892927850a884df6d5672f8c7d"}, + {file = "pydantic_core-2.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3f48d4afd973abbd65266ac24b24de1591116880efc7729caf6b6b94a9654c9e"}, + {file = "pydantic_core-2.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:28734bcfb8fc5b03293dec5eb5ea73b32ff767f6ef79a31f6e41dad2f5470270"}, + {file = "pydantic_core-2.14.1-cp38-none-win32.whl", hash = "sha256:3303113fdfaca927ef11e0c5f109e2ec196c404f9d7ba5f8ddb63cdf287ea159"}, + {file = "pydantic_core-2.14.1-cp38-none-win_amd64.whl", hash = "sha256:144f2c1d5579108b6ed1193fcc9926124bd4142b0f7020a7744980d1235c8a40"}, + {file = "pydantic_core-2.14.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:893bf4fb9bfb9c4639bc12f3de323325ada4c6d60e478d5cded65453e9364890"}, + {file = "pydantic_core-2.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:052d8731aaf844f91fe4cd3faf28983b109a5865b3a256ec550b80a5689ead87"}, + {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb1c6ecb53e4b907ee8486f453dd940b8cbb509946e2b671e3bf807d310a96fc"}, + {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:94cf6d0274eb899d39189144dcf52814c67f9b0fd196f211420d9aac793df2da"}, + {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36c3bf96f803e207a80dbcb633d82b98ff02a9faa76dd446e969424dec8e2b9f"}, + {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb290491f1f0786a7da4585250f1feee200fc17ff64855bdd7c42fb54526fa29"}, + {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6590ed9d13eb51b28ea17ddcc6c8dbd6050b4eb589d497105f0e13339f223b72"}, + {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:69cd74e55a5326d920e7b46daa2d81c2bdb8bcf588eafb2330d981297b742ddc"}, + {file = "pydantic_core-2.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d965bdb50725a805b083f5f58d05669a85705f50a6a864e31b545c589290ee31"}, + {file = "pydantic_core-2.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ca942a2dc066ca5e04c27feaa8dfb9d353ddad14c6641660c565149186095343"}, + {file = "pydantic_core-2.14.1-cp39-none-win32.whl", hash = "sha256:72c2ef3787c3b577e5d6225d73a77167b942d12cef3c1fbd5e74e55b7f881c36"}, + {file = "pydantic_core-2.14.1-cp39-none-win_amd64.whl", hash = "sha256:55713d155da1e508083c4b08d0b1ad2c3054f68b8ef7eb3d3864822e456f0bb5"}, + {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:53efe03cc383a83660cfdda6a3cb40ee31372cedea0fde0b2a2e55e838873ab6"}, + {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f523e116879bc6714e61d447ce934676473b068069dce6563ea040381dc7a257"}, + {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85bb66d661be51b2cba9ca06759264b3469d2dbb53c3e6effb3f05fec6322be6"}, + {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f53a3ccdc30234cb4342cec541e3e6ed87799c7ca552f0b5f44e3967a5fed526"}, + {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:1bfb63821ada76719ffcd703fc40dd57962e0d8c253e3c565252e6de6d3e0bc6"}, + {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e2c689439f262c29cf3fcd5364da1e64d8600facecf9eabea8643b8755d2f0de"}, + {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a15f6e5588f7afb7f6fc4b0f4ff064749e515d34f34c666ed6e37933873d8ad8"}, + {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:f1a30eef060e21af22c7d23349f1028de0611f522941c80efa51c05a63142c62"}, + {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16f4a7e1ec6b3ea98a1e108a2739710cd659d68b33fbbeaba066202cab69c7b6"}, + {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd80a2d383940eec3db6a5b59d1820f947317acc5c75482ff8d79bf700f8ad6a"}, + {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:a68a36d71c7f638dda6c9e6b67f6aabf3fa1471b198d246457bfdc7c777cdeb7"}, + {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ebc79120e105e4bcd7865f369e3b9dbabb0d492d221e1a7f62a3e8e292550278"}, + {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c8c466facec2ccdf025b0b1455b18f2c3d574d5f64d24df905d3d7b8f05d5f4e"}, + {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b91b5ec423e88caa16777094c4b2b97f11453283e7a837e5e5e1b886abba1251"}, + {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130e49aa0cb316f743bc7792c36aefa39fc2221312f1d4b333b19edbdd71f2b1"}, + {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f483467c046f549572f8aca3b7128829e09ae3a9fe933ea421f7cb7c58120edb"}, + {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:dee4682bd7947afc682d342a8d65ad1834583132383f8e801601a8698cb8d17a"}, + {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:8d927d042c0ef04607ee7822828b208ab045867d20477ec6593d612156798547"}, + {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5a1570875eb0d1479fb2270ed80c88c231aaaf68b0c3f114f35e7fb610435e4f"}, + {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:cb2fd3ab67558eb16aecfb4f2db4febb4d37dc74e6b8613dc2e7160fb58158a9"}, + {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a7991f25b98038252363a03e6a9fe92e60fe390fda2631d238dc3b0e396632f8"}, + {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b45b7be9f99991405ecd6f6172fb6798908a8097106ae78d5cc5cc15121bad9"}, + {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:51506e7652a2ef1d1cf763c4b51b972ff4568d1dddc96ca83931a6941f5e6389"}, + {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:66dc0e63349ec39c1ea66622aa5c2c1f84382112afd3ab2fa0cca4fb01f7db39"}, + {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:8e17f0c3ba4cb07faa0038a59ce162de584ed48ba645c8d05a5de1e40d4c21e7"}, + {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d983222223f63e323a5f497f5b85e211557a5d8fb670dc88f343784502b466ba"}, + {file = "pydantic_core-2.14.1.tar.gz", hash = "sha256:0d82a6ee815388a362885186e431fac84c7a06623bc136f508e9f88261d8cadb"}, ] [package.dependencies] From 9b89ba065980a102975f6be7ec3163cec45dff6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:24:10 +0100 Subject: [PATCH 06/63] core: bump sentry-sdk from 1.34.0 to 1.35.0 (#7553) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.34.0 to 1.35.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.34.0...1.35.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index e65880094..b85332fba 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3412,13 +3412,13 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} [[package]] name = "sentry-sdk" -version = "1.34.0" +version = "1.35.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = "*" files = [ - {file = "sentry-sdk-1.34.0.tar.gz", hash = "sha256:e5d0d2b25931d88fa10986da59d941ac6037f742ab6ff2fce4143a27981d60c3"}, - {file = "sentry_sdk-1.34.0-py2.py3-none-any.whl", hash = "sha256:76dd087f38062ac6c1e30ed6feb533ee0037ff9e709974802db7b5dbf2e5db21"}, + {file = "sentry-sdk-1.35.0.tar.gz", hash = "sha256:04e392db9a0d59bd49a51b9e3a92410ac5867556820465057c2ef89a38e953e9"}, + {file = "sentry_sdk-1.35.0-py2.py3-none-any.whl", hash = "sha256:a7865952701e46d38b41315c16c075367675c48d049b90a4cc2e41991ebc7efa"}, ] [package.dependencies] From ce667c64570b5840582e618b2411d6fbc7f5a449 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:24:18 +0100 Subject: [PATCH 07/63] web: bump the eslint group in /web with 2 updates (#7552) Bumps the eslint group in /web with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 6.10.0 to 6.11.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.11.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.10.0 to 6.11.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.11.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 88 +++++++++++++++++++++---------------------- web/package.json | 4 +- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 9f17f964e..367974e97 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -70,8 +70,8 @@ "@types/chart.js": "^2.9.40", "@types/codemirror": "5.60.13", "@types/grecaptcha": "^3.0.7", - "@typescript-eslint/eslint-plugin": "^6.10.0", - "@typescript-eslint/parser": "^6.10.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", @@ -10489,16 +10489,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", - "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/type-utils": "6.10.0", - "@typescript-eslint/utils": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -10557,15 +10557,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", - "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4" }, "engines": { @@ -10585,13 +10585,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0" + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -10602,13 +10602,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", - "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -10629,9 +10629,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -10642,13 +10642,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -10702,17 +10702,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", - "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", "semver": "^7.5.4" }, "engines": { @@ -10760,12 +10760,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.11.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { diff --git a/web/package.json b/web/package.json index 0d056b9bd..e28814afc 100644 --- a/web/package.json +++ b/web/package.json @@ -91,8 +91,8 @@ "@types/chart.js": "^2.9.40", "@types/codemirror": "5.60.13", "@types/grecaptcha": "^3.0.7", - "@typescript-eslint/eslint-plugin": "^6.10.0", - "@typescript-eslint/parser": "^6.10.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", From 627b3bc0956f338d231bd73ad02c054383d7b187 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:24:29 +0100 Subject: [PATCH 08/63] ci: bump actions/github-script from 6 to 7 (#7551) Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release-tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml index 2365145b4..a0b896a92 100644 --- a/.github/workflows/release-tag.yml +++ b/.github/workflows/release-tag.yml @@ -30,7 +30,7 @@ jobs: private_key: ${{ secrets.GH_APP_PRIVATE_KEY }} - name: Extract version number id: get_version - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: github-token: ${{ steps.generate_token.outputs.token }} script: | From 31592712a44707c1bd0b3eab6fd43e1abaacdbce Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 14 Nov 2023 11:49:11 +0100 Subject: [PATCH 09/63] web/elements: keep selected elements in table when fetching (#7519) Signed-off-by: Jens Langhammer --- web/src/elements/table/Table.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/web/src/elements/table/Table.ts b/web/src/elements/table/Table.ts index 642af4801..6175b5296 100644 --- a/web/src/elements/table/Table.ts +++ b/web/src/elements/table/Table.ts @@ -194,7 +194,6 @@ export abstract class Table extends AKElement { this.data = await this.apiEndpoint(this.page); this.error = undefined; this.page = this.data.pagination.current; - const newSelected: T[] = []; const newExpanded: T[] = []; this.data.results.forEach((res) => { const jsonRes = JSON.stringify(res); @@ -214,18 +213,12 @@ export abstract class Table extends AKElement { ); }; } - - const selectedIndex = this.selectedElements.findIndex(comp); - if (selectedIndex > -1) { - newSelected.push(res); - } const expandedIndex = this.expandedElements.findIndex(comp); if (expandedIndex > -1) { newExpanded.push(res); } }); this.isLoading = false; - this.selectedElements = newSelected; this.expandedElements = newExpanded; } catch (ex) { this.isLoading = false; From deb0cb236ea36a70272d22ae4ee91ca6950bba7f Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 14 Nov 2023 13:05:18 +0100 Subject: [PATCH 10/63] web/admin: always show oidc well-known URL fields when they're set (#7560) Signed-off-by: Jens Langhammer --- .../admin/sources/oauth/OAuthSourceForm.ts | 51 +++++------ web/xliff/de.xlf | 21 +++++ web/xliff/en.xlf | 21 +++++ web/xliff/es.xlf | 21 +++++ web/xliff/fr.xlf | 85 ++++++++++++------- web/xliff/pl.xlf | 21 +++++ web/xliff/pseudo-LOCALE.xlf | 21 +++++ web/xliff/tr.xlf | 21 +++++ web/xliff/zh-Hans.xlf | 67 ++++++++++----- web/xliff/zh-Hant.xlf | 21 +++++ web/xliff/zh_TW.xlf | 21 +++++ 11 files changed, 291 insertions(+), 80 deletions(-) diff --git a/web/src/admin/sources/oauth/OAuthSourceForm.ts b/web/src/admin/sources/oauth/OAuthSourceForm.ts index 86db82585..51b1c6e42 100644 --- a/web/src/admin/sources/oauth/OAuthSourceForm.ts +++ b/web/src/admin/sources/oauth/OAuthSourceForm.ts @@ -184,28 +184,31 @@ export class OAuthSourceForm extends ModelForm {

` : html``} - ${this.providerType.slug === ProviderTypeEnum.Openidconnect - ? html` - - -

- ${msg( - "OIDC well-known configuration URL. Can be used to automatically configure the URLs above.", - )} -

-
- + +

+ ${msg( + "OIDC well-known configuration URL. Can be used to automatically configure the URLs above.", + )} +

+
` + : html``} + ${this.providerType.slug === ProviderTypeEnum.Openidconnect || + this.providerType.oidcJwksUrl !== "" + ? html` @@ -224,7 +227,6 @@ export class OAuthSourceForm extends ModelForm { )}

- { >

${msg("Raw JWKS data.")}

-
- ` + ` : html``} `; diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index a1737f42f..fb09939a9 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -6043,6 +6043,27 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index d4849da70..539d24090 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -6324,6 +6324,27 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index 71af7be01..f5d8f4218 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -5958,6 +5958,27 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index b14628a21..9178e527a 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ Il y a jour(s) - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1057,8 +1057,8 @@ Il y a jour(s) - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1630,7 +1630,7 @@ Il y a jour(s) Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1798,8 +1798,8 @@ Il y a jour(s) - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2922,7 +2922,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -3011,8 +3011,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3307,7 +3307,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3475,7 +3475,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3804,8 +3804,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3814,8 +3814,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - Format : "weeks=3;days=2;hours=3,seconds=2". + Format: "weeks=3;days=2;hours=3,seconds=2". + Format : "weeks=3;days=2;hours=3,seconds=2". @@ -4011,10 +4011,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - " ? + " + " ? @@ -5100,8 +5100,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5426,7 +5426,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5435,10 +5435,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5487,8 +5487,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6272,7 +6272,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7579,7 +7579,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7947,7 +7947,28 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Failed logins Connexions échouées + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity - \ No newline at end of file + diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 3914d725a..208f215bd 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -6166,6 +6166,27 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index f354a57aa..7fd1524da 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -7854,4 +7854,25 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity + diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index ee64b82dd..25a00f3dc 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -5951,6 +5951,27 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 154e9a11b..2f9f04a89 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1057,8 +1057,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1799,8 +1799,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -3013,8 +3013,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3806,8 +3806,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3816,8 +3816,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - 格式:"weeks=3;days=2;hours=3,seconds=2"。 + Format: "weeks=3;days=2;hours=3,seconds=2". + 格式:"weeks=3;days=2;hours=3,seconds=2"。 @@ -4013,10 +4013,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5102,7 +5102,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5437,10 +5437,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5489,7 +5489,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7949,7 +7949,28 @@ Bindings to groups/users are checked against the user of the event. Failed logins 失败登录 + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity - \ No newline at end of file + diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 08b410b7b..2da60b080 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -5999,6 +5999,27 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index 6a0e1905f..df86bec66 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -5998,6 +5998,27 @@ Bindings to groups/users are checked against the user of the event. Failed logins + + + Also known as Client ID. + + + Also known as Client Secret. + + + Global status + + + Vendor + + + No sync status. + + + Sync currently running. + + + Connectivity From af1fed33084b7fad5a3b0e78f9330839fea26843 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 17:59:01 +0000 Subject: [PATCH 11/63] translate: Updates for file web/xliff/en.xlf in fr (#7565) Translate web/xliff/en.xlf in fr 100% translated source file: 'web/xliff/en.xlf' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/fr.xlf | 71 ++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 9178e527a..2e71fd7ed 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ Il y a jour(s) - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1057,8 +1057,8 @@ Il y a jour(s) - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1630,7 +1630,7 @@ Il y a jour(s) Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1798,8 +1798,8 @@ Il y a jour(s) - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2922,7 +2922,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -3011,8 +3011,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3307,7 +3307,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3475,7 +3475,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3804,8 +3804,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3814,8 +3814,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - Format : "weeks=3;days=2;hours=3,seconds=2". + Format: "weeks=3;days=2;hours=3,seconds=2". + Format : "weeks=3;days=2;hours=3,seconds=2". @@ -4011,10 +4011,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - " ? + " + " ? @@ -5100,8 +5100,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5426,7 +5426,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5435,10 +5435,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5487,8 +5487,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6272,7 +6272,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7579,7 +7579,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7950,25 +7950,32 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Also known as Client ID. + Également appelé Client ID. Also known as Client Secret. + Également appelé Client Secret. Global status + État global Vendor + Fournisseur No sync status. + Pas d'état de synchronisation. Sync currently running. + Synchronisation en cours. Connectivity + Connectivité - + \ No newline at end of file From d0c392f31134cacc02169fdcbf6283aea1ee2dd5 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:43:06 +0100 Subject: [PATCH 12/63] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_TW (#7549) * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. --------- Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh_TW/LC_MESSAGES/django.po | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/locale/zh_TW/LC_MESSAGES/django.po b/locale/zh_TW/LC_MESSAGES/django.po index 3f66e1e82..c6f9ed069 100644 --- a/locale/zh_TW/LC_MESSAGES/django.po +++ b/locale/zh_TW/LC_MESSAGES/django.po @@ -692,14 +692,14 @@ msgstr "假政策" msgid "" "Match events created by selected application. When left empty, all " "applications are matched." -msgstr "匹配由所選應用程式產生的事件。如果未設定則所有應用程式都將符合。" +msgstr "將選擇的應用程式與建立的事件配對。如果為空則將符合所有應用程式。" #: authentik/policies/event_matcher/api.py:29 #: authentik/policies/event_matcher/models.py:64 msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." -msgstr "當未選擇任何模型時,會匹配所有模型產生的事件。如果選擇了某一個應用程式,則會匹配該應用程式下所有模型產生的事件。" +msgstr "將選擇的模型與建立的事件配對。如果為空則將符合所有模型。如果選擇了某一個應用程式,則會配對該應用程式下所有模型的事件。" #: authentik/policies/event_matcher/api.py:42 msgid "At least one criteria must be set." @@ -709,7 +709,7 @@ msgstr "必須設定至少一個條件。" msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." -msgstr "匹配由此動作類型產生的事件。如果未設定則所有動作類型都將符合。" +msgstr "將此動作類型與建立的事件配對。如果為空則將符合所有動作類型。" #: authentik/policies/event_matcher/models.py:73 msgid "" @@ -965,7 +965,7 @@ msgstr "基於使用者的電子郵件。比起使用 UPN 更推薦此方法。" msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." -msgstr "基於使用者的 UPN,只有當使用者設定了 「upn」 屬性時才有效。只有在您的 UPN 和 Mail 有不同網域時才使用這個方法。" +msgstr "基於使用者的 UPN,只有當使用者設定了「upn」特徵項時才有效。只有在您的 UPN 和 Mail 有不同網域時才使用這個方法。" #: authentik/providers/oauth2/models.py:43 msgid "Confidential" @@ -981,7 +981,7 @@ msgstr "所有供應商都使用相同的識別碼" #: authentik/providers/oauth2/models.py:68 msgid "Each provider has a different issuer, based on the application slug." -msgstr "每個供應商都有一個不同的發行者,基於應用程式的縮寫(Slug)。" +msgstr "基於應用程式的縮寫,每個供應商都有一個不同的發行者。" #: authentik/providers/oauth2/models.py:75 msgid "code (Authorization Code Flow)" @@ -1065,13 +1065,13 @@ msgstr "每行輸入一個網址。" #: authentik/providers/oauth2/models.py:155 msgid "Include claims in id_token" -msgstr "在 id_token 中包含聲明" +msgstr "在 id_token 中包含身分聲明" #: authentik/providers/oauth2/models.py:157 msgid "" "Include User claims from scopes in the id_token, for applications that don't" " access the userinfo endpoint." -msgstr "在 id_token 中包含來自範疇的使用者聲明,適用於那些不存取 userinfo 端點的應用程式。" +msgstr "對於那些不存取 userinfo 端點的應用程式,在 id_token 中將包含來自範疇的使用者身分聲明。" #: authentik/providers/oauth2/models.py:166 msgid "" @@ -1206,7 +1206,7 @@ msgstr "代表您的使用者存取 authentik API" #: authentik/providers/proxy/api.py:52 msgid "User and password attributes must be set when basic auth is enabled." -msgstr "啟用基本認證時必須設定使用者和密碼屬性。" +msgstr "啟用基本認證時必須設定使用者和密碼特徵項。" #: authentik/providers/proxy/api.py:63 msgid "Internal host cannot be empty when forward auth is disabled." @@ -1257,7 +1257,7 @@ msgstr "HTTP 基本身份驗證的使用者名鍵值" msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not" " set, the user's Email address is used." -msgstr "用於 HTTP 基本身份驗證標頭中,使用者區塊中的使用者/群組屬性。如果未設定則套用使用者的電子郵件地址。" +msgstr "用於 HTTP 基本認證標頭中,使用者區塊中的使用者/群組特徵項。如果未設定則套用使用者的電子郵件地址。" #: authentik/providers/proxy/models.py:99 msgid "HTTP-Basic Password Key" @@ -1266,7 +1266,7 @@ msgstr "HTTP 基本身份驗證的密碼鍵值" #: authentik/providers/proxy/models.py:100 msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." -msgstr "用於 HTTP 基本身份驗證標頭中,密碼區塊中的用戶/群組屬性。" +msgstr "用於 HTTP 基本認證標頭中,密碼區塊中的使用者/群組特徵項。" #: authentik/providers/proxy/models.py:154 msgid "Proxy Provider" @@ -1285,7 +1285,9 @@ msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" "specified CIDR will be dropped." -msgstr "用戶端可以從中連線的CIDR列表(以逗號分隔)。較窄的CIDR會在較寬的CIDR之前優先套用。來自未指定CIDR的用戶端連線將被拒絕。" +msgstr "" +"在其之中的用戶端可以連線的 CIDR 列表(以逗號分隔)。更具體的 CIDR 會在較寬鬆的 CIDR 之前優先套用。來自未指定 CIDR " +"的用戶端連線將被拒絕。" #: authentik/providers/radius/models.py:49 msgid "Radius Provider" From f4c6a0af1f5f698ef5ad716871a377e108c949cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:43:22 +0100 Subject: [PATCH 13/63] web: bump pyright from 1.1.335 to 1.1.336 in /web (#7575) Bumps [pyright](https://github.com/Microsoft/pyright/tree/HEAD/packages/pyright) from 1.1.335 to 1.1.336. - [Release notes](https://github.com/Microsoft/pyright/releases) - [Commits](https://github.com/Microsoft/pyright/commits/1.1.336/packages/pyright) --- updated-dependencies: - dependency-name: pyright dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 367974e97..9b6e576f3 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -85,7 +85,7 @@ "npm-run-all": "^4.1.5", "prettier": "^3.1.0", "pseudolocale": "^2.0.0", - "pyright": "^1.1.335", + "pyright": "^1.1.336", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^4.4.0", @@ -18452,9 +18452,9 @@ } }, "node_modules/pyright": { - "version": "1.1.335", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.335.tgz", - "integrity": "sha512-4iI9JPJP1YRAv4q99l0arfv3uAqQBkuqUOrmQLq7Iv6rt9HmU00R1908DqwaiePRT6HgyXCMbMmVTcs2UyKnAA==", + "version": "1.1.336", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.336.tgz", + "integrity": "sha512-PE/ArjnfS5dKon05zAX2eMzSQmu4ftCITzLqKgFKuwLIRnKJ+l4QGwkCKtYvWoXKm1fWr+TjqYpdRejrYkolyg==", "dev": true, "bin": { "pyright": "index.js", diff --git a/web/package.json b/web/package.json index e28814afc..4bc03e6df 100644 --- a/web/package.json +++ b/web/package.json @@ -106,7 +106,7 @@ "npm-run-all": "^4.1.5", "prettier": "^3.1.0", "pseudolocale": "^2.0.0", - "pyright": "^1.1.335", + "pyright": "^1.1.336", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^4.4.0", From 1ac3d6ddcb7bbf9e521f7b8a3a47405166ebe063 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:43:32 +0100 Subject: [PATCH 14/63] web: bump rollup from 4.4.0 to 4.4.1 in /web (#7574) Bumps [rollup](https://github.com/rollup/rollup) from 4.4.0 to 4.4.1. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.4.0...v4.4.1) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 104 +++++++++++++++++++++--------------------- web/package.json | 2 +- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 9b6e576f3..d949a2777 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -88,7 +88,7 @@ "pyright": "^1.1.336", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.4.0", + "rollup": "^4.4.1", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", @@ -4576,9 +4576,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.0.tgz", - "integrity": "sha512-AD30wtT58hZZsXIeiksytR6Gm2gofUxn5KqrDBdyzekgxXB9bXN9dqWIEcPfYo9lA9MVRm0lC42LuYGsscRxiA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.1.tgz", + "integrity": "sha512-Ss4suS/sd+6xLRu+MLCkED2mUrAyqHmmvZB+zpzZ9Znn9S8wCkTQCJaQ8P8aHofnvG5L16u9MVnJjCqioPErwQ==", "cpu": [ "arm" ], @@ -4589,9 +4589,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.0.tgz", - "integrity": "sha512-PlqvhzFxy5FRTB3wLSsGgPhiakv9jrgfu8tjSojLJFP0CdhfZSRDOFvQ2emWLUEBOSCnjpL63XSuFVMwg59ZtA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.1.tgz", + "integrity": "sha512-sRSkGTvGsARwWd7TzC8LKRf8FiPn7257vd/edzmvG4RIr9x68KBN0/Ek48CkuUJ5Pj/Dp9vKWv6PEupjKWjTYA==", "cpu": [ "arm64" ], @@ -4602,9 +4602,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.0.tgz", - "integrity": "sha512-BYmhn1Hebmkmdyn5mBFy7HptowyjtMALyTpywNSNZYigWwyv4L8WQVr0XvOQE7eE6WoKrupSVxtIcGZW8MgZUA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.1.tgz", + "integrity": "sha512-nz0AiGrrXyaWpsmBXUGOBiRDU0wyfSXbFuF98pPvIO8O6auQsPG6riWsfQqmCCC5FNd8zKQ4JhgugRNAkBJ8mQ==", "cpu": [ "arm64" ], @@ -4615,9 +4615,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.0.tgz", - "integrity": "sha512-7GXsMiX/giTDBMs/gL3rePLBRC6gV7DT7JQ0lNqoNDe5hm+Gm4NEWky9fwEmer64fIUbOsTiLUsyQ5fDXUbXPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.1.tgz", + "integrity": "sha512-Ogqvf4/Ve/faMaiPRvzsJEqajbqs00LO+8vtrPBVvLgdw4wBg6ZDXdkDAZO+4MLnrc8mhGV6VJAzYScZdPLtJg==", "cpu": [ "x64" ], @@ -4628,9 +4628,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.0.tgz", - "integrity": "sha512-kavnkaV50Gu6vESlOAwUad92wYY9mUrcaPmhzOQZKlNFnzWAUYyD/uhHmWvY7Z2chtwhWlng0LvCRBF5QiPO7w==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.1.tgz", + "integrity": "sha512-9zc2tqlr6HfO+hx9+wktUlWTRdje7Ub15iJqKcqg5uJZ+iKqmd2CMxlgPpXi7+bU7bjfDIuvCvnGk7wewFEhCg==", "cpu": [ "arm" ], @@ -4641,9 +4641,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.0.tgz", - "integrity": "sha512-2hBHEtCjnBTeuLvDAlHRCqsuFQSyAhTQs9vbZEVBTV8ap35pDI1ukPbIVFFCWNvL/KE7xRor5YZFvfyGCfvLnA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.1.tgz", + "integrity": "sha512-phLb1fN3rq2o1j1v+nKxXUTSJnAhzhU0hLrl7Qzb0fLpwkGMHDem+o6d+ZI8+/BlTXfMU4kVWGvy6g9k/B8L6Q==", "cpu": [ "arm64" ], @@ -4654,9 +4654,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.0.tgz", - "integrity": "sha512-u7zy0Ygzl7O5Gvr9TSNSQj+DBzvMJC7rXfyQNgZ13KwkhgJ8z0z+gt2AO4RPd01rZioMQ2/TA24XGGg4xqhd0Q==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.1.tgz", + "integrity": "sha512-M2sDtw4tf57VPSjbTAN/lz1doWUqO2CbQuX3L9K6GWIR5uw9j+ROKCvvUNBY8WUbMxwaoc8mH9HmmBKsLht7+w==", "cpu": [ "arm64" ], @@ -4667,9 +4667,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.0.tgz", - "integrity": "sha512-VvpAdh5SgewmWo8sa5QPYG8aSKH9hU2Kr5+3of0GzBI/8n8PBqhLyvF0DbO+zDW8j5IM8NDebv82MpHrZaD0Cw==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.1.tgz", + "integrity": "sha512-mHIlRLX+hx+30cD6c4BaBOsSqdnCE4ok7/KDvjHYAHoSuveoMMxIisZFvcLhUnyZcPBXDGZTuBoalcuh43UfQQ==", "cpu": [ "x64" ], @@ -4680,9 +4680,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.0.tgz", - "integrity": "sha512-3g6jaXxXVFaDnFoMn2+E3ludGcXFfEr6lDn+S1lh9Qe0JcL9sPt1wGh0g2cKIlb6OakNOFopZqJ5Yub9F7gQlA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.1.tgz", + "integrity": "sha512-tB+RZuDi3zxFx7vDrjTNGVLu2KNyzYv+UY8jz7e4TMEoAj7iEt8Qk6xVu6mo3pgjnsHj6jnq3uuRsHp97DLwOA==", "cpu": [ "x64" ], @@ -4693,9 +4693,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.0.tgz", - "integrity": "sha512-jnoDRkg5Ve6Y1qx2m1+ehouOLQ4ddc15/iQSfFjcDUL6bqLdJJ5c4CKfUy/C6W1oCU4la+hMkveE9GG7ECN7dg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.1.tgz", + "integrity": "sha512-Hdn39PzOQowK/HZzYpCuZdJC91PE6EaGbTe2VCA9oq2u18evkisQfws0Smh9QQGNNRa/T7MOuGNQoLeXhhE3PQ==", "cpu": [ "arm64" ], @@ -4706,9 +4706,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.0.tgz", - "integrity": "sha512-SoLQmJanozFow8o50ul2a3R+J7nk4pEhrp83PzTSXs5OzOmIZbPSp5kihtQ3f6ypo4MCbmh0V8Ev0bJIEp4Azw==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.1.tgz", + "integrity": "sha512-tLpKb1Elm9fM8c5w3nl4N1eLTP4bCqTYw9tqUBxX8/hsxqHO3dxc2qPbZ9PNkdK4tg4iLEYn0pOUnVByRd2CbA==", "cpu": [ "ia32" ], @@ -4719,9 +4719,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.0.tgz", - "integrity": "sha512-Zaz6itfQ5sQF5Cia49YDW1ZTr+YfIKzTSb9npLyvQn346n7ulRDOv2J7GnL0zcOJ3cqW7HzG/ZisyO6fH43J9g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.1.tgz", + "integrity": "sha512-eAhItDX9yQtZVM3yvXS/VR3qPqcnXvnLyx1pLXl4JzyNMBNO3KC986t/iAg2zcMzpAp9JSvxB5VZGnBiNoA98w==", "cpu": [ "x64" ], @@ -19154,9 +19154,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.0.tgz", - "integrity": "sha512-3L67ubCc1Qm49wUodsQ72FM6JmJ9M37d63rGPjxbcKrzNJrwFipl+lDNHeWd6BId09S6Tb9KiBgYKbWhIuqVyg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.1.tgz", + "integrity": "sha512-idZzrUpWSblPJX66i+GzrpjKE3vbYrlWirUHteoAbjKReZwa0cohAErOYA5efoMmNCdvG9yrJS+w9Kl6csaH4w==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -19166,18 +19166,18 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.4.0", - "@rollup/rollup-android-arm64": "4.4.0", - "@rollup/rollup-darwin-arm64": "4.4.0", - "@rollup/rollup-darwin-x64": "4.4.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.4.0", - "@rollup/rollup-linux-arm64-gnu": "4.4.0", - "@rollup/rollup-linux-arm64-musl": "4.4.0", - "@rollup/rollup-linux-x64-gnu": "4.4.0", - "@rollup/rollup-linux-x64-musl": "4.4.0", - "@rollup/rollup-win32-arm64-msvc": "4.4.0", - "@rollup/rollup-win32-ia32-msvc": "4.4.0", - "@rollup/rollup-win32-x64-msvc": "4.4.0", + "@rollup/rollup-android-arm-eabi": "4.4.1", + "@rollup/rollup-android-arm64": "4.4.1", + "@rollup/rollup-darwin-arm64": "4.4.1", + "@rollup/rollup-darwin-x64": "4.4.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.4.1", + "@rollup/rollup-linux-arm64-gnu": "4.4.1", + "@rollup/rollup-linux-arm64-musl": "4.4.1", + "@rollup/rollup-linux-x64-gnu": "4.4.1", + "@rollup/rollup-linux-x64-musl": "4.4.1", + "@rollup/rollup-win32-arm64-msvc": "4.4.1", + "@rollup/rollup-win32-ia32-msvc": "4.4.1", + "@rollup/rollup-win32-x64-msvc": "4.4.1", "fsevents": "~2.3.2" } }, diff --git a/web/package.json b/web/package.json index 4bc03e6df..d2e42a8bc 100644 --- a/web/package.json +++ b/web/package.json @@ -109,7 +109,7 @@ "pyright": "^1.1.336", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.4.0", + "rollup": "^4.4.1", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", From 76db5b69dedb6b70bae312659cbf5dbe4b0a6bd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:43:42 +0100 Subject: [PATCH 15/63] web: bump the sentry group in /web with 2 updates (#7572) Bumps the sentry group in /web with 2 updates: [@sentry/browser](https://github.com/getsentry/sentry-javascript) and [@sentry/tracing](https://github.com/getsentry/sentry-javascript). Updates `@sentry/browser` from 7.80.0 to 7.80.1 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.80.0...7.80.1) Updates `@sentry/tracing` from 7.80.0 to 7.80.1 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.80.0...7.80.1) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: sentry - dependency-name: "@sentry/tracing" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: sentry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 78 +++++++++++++++++++++---------------------- web/package.json | 4 +-- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index d949a2777..00f066ebb 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -24,8 +24,8 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.80.0", - "@sentry/tracing": "^7.80.0", + "@sentry/browser": "^7.80.1", + "@sentry/tracing": "^7.80.1", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.0", @@ -4732,84 +4732,84 @@ ] }, "node_modules/@sentry-internal/tracing": { - "version": "7.80.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.80.0.tgz", - "integrity": "sha512-P1Ab9gamHLsbH9D82i1HY8xfq9dP8runvc4g50AAd6OXRKaJ45f2KGRZUmnMEVqBQ7YoPYp2LFMkrhNYbcZEoQ==", + "version": "7.80.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.80.1.tgz", + "integrity": "sha512-5gZ4LPIj2vpQl2/dHBM4uXMi9OI5E0VlOhJQt0foiuN6JJeiOjdpJFcfVqJk69wrc0deVENTtgKKktxqMwVeWQ==", "dependencies": { - "@sentry/core": "7.80.0", - "@sentry/types": "7.80.0", - "@sentry/utils": "7.80.0" + "@sentry/core": "7.80.1", + "@sentry/types": "7.80.1", + "@sentry/utils": "7.80.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/browser": { - "version": "7.80.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.80.0.tgz", - "integrity": "sha512-Ngwjc+yyf/aH5q7iQM1LeDNlhM1Ilt4ZLUogTghZR/guwNWmCtk3OHcjOLz7fxBBj9wGFUc2pHPyeYM6bQhrEw==", + "version": "7.80.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.80.1.tgz", + "integrity": "sha512-1dPR6vPJ9vOTzgXff9HGheb178XeEv5hyjBNhCO1f6rjCgnVj99XGNZIgO1Ee1ALJbqlfPWaeV+uSWbbcmgJMA==", "dependencies": { - "@sentry-internal/tracing": "7.80.0", - "@sentry/core": "7.80.0", - "@sentry/replay": "7.80.0", - "@sentry/types": "7.80.0", - "@sentry/utils": "7.80.0" + "@sentry-internal/tracing": "7.80.1", + "@sentry/core": "7.80.1", + "@sentry/replay": "7.80.1", + "@sentry/types": "7.80.1", + "@sentry/utils": "7.80.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/core": { - "version": "7.80.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.80.0.tgz", - "integrity": "sha512-nJiiymdTSEyI035/rdD3VOq6FlOZ2wWLR5bit9LK8a3rzHU3UXkwScvEo6zYgs0Xp1sC0yu1S9+0BEiYkmi29A==", + "version": "7.80.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.80.1.tgz", + "integrity": "sha512-3Yh+O9Q86MxwIuJFYtuSSoUCpdx99P1xDAqL0FIPTJ+ekaVMiUJq9NmyaNh9uN2myPSmxvEXW6q3z37zta9ZHg==", "dependencies": { - "@sentry/types": "7.80.0", - "@sentry/utils": "7.80.0" + "@sentry/types": "7.80.1", + "@sentry/utils": "7.80.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/replay": { - "version": "7.80.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.80.0.tgz", - "integrity": "sha512-wWnpuJq3OaDLp1LutE4oxWXnau04fvwuzBjuaFvOXOV+pB/kn+pDPuVOC5+FH/RMRZ5ftwX5+dF6fojfcLVGCg==", + "version": "7.80.1", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.80.1.tgz", + "integrity": "sha512-yjpftIyybQeWD2i0Nd7C96tZwjNbSMRW515EL9jwlNxYbQtGtMs0HavP9Y7uQvQrzwSHY0Wp+ooe9PMuvzqbHw==", "dependencies": { - "@sentry-internal/tracing": "7.80.0", - "@sentry/core": "7.80.0", - "@sentry/types": "7.80.0", - "@sentry/utils": "7.80.0" + "@sentry-internal/tracing": "7.80.1", + "@sentry/core": "7.80.1", + "@sentry/types": "7.80.1", + "@sentry/utils": "7.80.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/tracing": { - "version": "7.80.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.80.0.tgz", - "integrity": "sha512-y9zBVMpCgY5Y6dBZrnKKHf6K9YWjGo3S35tPwDV1mQLml64bi6bNr6Fc6OBzXyrl9OTJAO71A1Z7DlAu6BQY9w==", + "version": "7.80.1", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.80.1.tgz", + "integrity": "sha512-sFkcxCBtLNVa3EyeCafZqhJHZ714f2+ryPWTBckAmxAsON4yjh/YLs2X1FJ2n6Rnv16TP6gWGt4SnhFT03WStA==", "dependencies": { - "@sentry-internal/tracing": "7.80.0" + "@sentry-internal/tracing": "7.80.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.80.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.80.0.tgz", - "integrity": "sha512-4bpMO+2jWiWLDa8zbTASWWNLWe6yhjfPsa7/6VH5y9x1NGtL8oRbqUsTgsvjF3nmeHEMkHQsC8NHPaQ/ibFmZQ==", + "version": "7.80.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.80.1.tgz", + "integrity": "sha512-CVu4uPVTOI3U9kYiOdA085R7jX5H1oVODbs9y+A8opJ0dtJTMueCXgZyE8oXQ0NjGVs6HEeaLkOuiV0mj8X3yw==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.80.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.80.0.tgz", - "integrity": "sha512-XbBCEl6uLvE50ftKwrEo6XWdDaZXHXu+kkHXTPWQEcnbvfZKLuG9V0Hxtxxq3xQgyWmuF05OH1GcqYqiO+v5Yg==", + "version": "7.80.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.80.1.tgz", + "integrity": "sha512-bfFm2e/nEn+b9++QwjNEYCbS7EqmteT8uf0XUs7PljusSimIqqxDtK1pfD9zjynPgC8kW/fVBKv0pe2LufomeA==", "dependencies": { - "@sentry/types": "7.80.0" + "@sentry/types": "7.80.1" }, "engines": { "node": ">=8" diff --git a/web/package.json b/web/package.json index d2e42a8bc..15369f747 100644 --- a/web/package.json +++ b/web/package.json @@ -45,8 +45,8 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.80.0", - "@sentry/tracing": "^7.80.0", + "@sentry/browser": "^7.80.1", + "@sentry/tracing": "^7.80.1", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.0", From b3d86374aa08062cd3a80c9f76b80e07da7edf66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:43:51 +0100 Subject: [PATCH 16/63] web: bump the wdio group in /tests/wdio with 4 updates (#7571) Bumps the wdio group in /tests/wdio with 4 updates: [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli), [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner), [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework) and [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-spec-reporter). Updates `@wdio/cli` from 8.22.1 to 8.23.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.23.0/packages/wdio-cli) Updates `@wdio/local-runner` from 8.22.1 to 8.23.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.23.0/packages/wdio-local-runner) Updates `@wdio/mocha-framework` from 8.22.0 to 8.23.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.23.0/packages/wdio-mocha-framework) Updates `@wdio/spec-reporter` from 8.21.0 to 8.23.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.23.0/packages/wdio-spec-reporter) --- updated-dependencies: - dependency-name: "@wdio/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/local-runner" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/mocha-framework" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/spec-reporter" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 173 ++++++++++++++++++----------------- tests/wdio/package.json | 8 +- 2 files changed, 94 insertions(+), 87 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index a43e914d4..5806539b4 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -9,10 +9,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.11.0", "@typescript-eslint/parser": "^6.11.0", - "@wdio/cli": "^8.22.1", - "@wdio/local-runner": "^8.22.1", - "@wdio/mocha-framework": "^8.22.0", - "@wdio/spec-reporter": "^8.21.0", + "@wdio/cli": "^8.23.0", + "@wdio/local-runner": "^8.23.0", + "@wdio/mocha-framework": "^8.23.0", + "@wdio/spec-reporter": "^8.23.0", "eslint": "^8.53.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", @@ -1135,18 +1135,18 @@ "dev": true }, "node_modules/@wdio/cli": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.22.1.tgz", - "integrity": "sha512-OgqsSFtMyfyOC9qMwS9YKjlLN/TwybQHnMIm9G3EZIGYKnAffzC6xXhgjyTqeHIyGieotH52mR0kHE0XIubw+A==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.23.0.tgz", + "integrity": "sha512-4UpXgU4XpTlJFgCLH92T5NR4kAKlEXdOqsS86MXPQiyMnPD1+zcqEa/FTk0rA4HMq/FGV4nZlxr/hThhjgmu+Q==", "dev": true, "dependencies": { "@types/node": "^20.1.1", - "@wdio/config": "8.22.1", - "@wdio/globals": "8.22.1", + "@wdio/config": "8.23.0", + "@wdio/globals": "8.23.0", "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.22.0", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/protocols": "8.23.0", + "@wdio/types": "8.23.0", + "@wdio/utils": "8.23.0", "async-exit-hook": "^2.0.1", "chalk": "^5.2.0", "chokidar": "^3.5.3", @@ -1162,7 +1162,7 @@ "lodash.union": "^4.6.0", "read-pkg-up": "^10.0.0", "recursive-readdir": "^2.2.3", - "webdriverio": "8.22.1", + "webdriverio": "8.23.0", "yargs": "^17.7.2" }, "bin": { @@ -1185,14 +1185,14 @@ } }, "node_modules/@wdio/config": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.22.1.tgz", - "integrity": "sha512-ttxvtKFaOB5BJ6eDl1Lcq8STLN3V+yOEEkVXIrNqOdFOrAaljqzX20vaEmNtj9pQIoTZs2WoX8K2cmXdyxw+DA==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.23.0.tgz", + "integrity": "sha512-7Tlmw1x4jMN5cVtx3OGX+KAJBXNRBLVJY2L5ihh/9SlWZ5wtlw29EhlIoxkLy/K1VAKHQZpI5JSfsb0bhoDebA==", "dev": true, "dependencies": { "@wdio/logger": "8.16.17", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/types": "8.23.0", + "@wdio/utils": "8.23.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.0.0", "glob": "^10.2.2", @@ -1203,29 +1203,29 @@ } }, "node_modules/@wdio/globals": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.22.1.tgz", - "integrity": "sha512-Wf9D9ejiwArsAr80y7UZB0AsGLNgCWUoIbulK4vbzUU50RAymxbXeJEQgfwQ231+eHv8wIViQ45N0FoRJsHVcA==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.23.0.tgz", + "integrity": "sha512-9NIXgxP7t/G1wYqqURdWWvKVSQPi6fkYGTeP1fIIbTj2pEKY8Oana28nJgbKV0JukKWYqZo/i2Qj8tzOi1rHFw==", "dev": true, "engines": { "node": "^16.13 || >=18" }, "optionalDependencies": { - "expect-webdriverio": "^4.2.5", - "webdriverio": "8.22.1" + "expect-webdriverio": "^4.5.1", + "webdriverio": "8.23.0" } }, "node_modules/@wdio/local-runner": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.22.1.tgz", - "integrity": "sha512-bEWkU/6GKS9NIgTO4OyxOlWjr4lL22P0wg8ShmDX4qY2nStu5B/2tpl3sqLcmtFiCpsjdINIYRla4lz9xOUy1Q==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.23.0.tgz", + "integrity": "sha512-i6PluAeWkigHNX2bN57pIRyVQYAr9iFeshS2NefAbdetohaZSm1X9gSNkEw9BW1uUAkd42W8S4xXaZo9dwlbhw==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.16.17", "@wdio/repl": "8.10.1", - "@wdio/runner": "8.22.1", - "@wdio/types": "8.21.0", + "@wdio/runner": "8.23.0", + "@wdio/types": "8.23.0", "async-exit-hook": "^2.0.1", "split2": "^4.1.0", "stream-buffers": "^3.0.2" @@ -1262,16 +1262,16 @@ } }, "node_modules/@wdio/mocha-framework": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.22.0.tgz", - "integrity": "sha512-kkgoNNXHiR/D48dB+dEQ0nmP5u1NFiUllOLK91z5x5+mwzCh17GpyakhUXLIyVdciiU7T1grJQC5pxqdvPLBkQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.23.0.tgz", + "integrity": "sha512-1Bu88IQHAKhEk41BiJRC+tP83oL0Rz4+5mB939JKSQlA4UB71B2QT2dKn1jo3FvHJUBfVUyQJhzMA9nOk2gd4A==", "dev": true, "dependencies": { "@types/mocha": "^10.0.0", "@types/node": "^20.1.0", "@wdio/logger": "8.16.17", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/types": "8.23.0", + "@wdio/utils": "8.23.0", "mocha": "^10.0.0" }, "engines": { @@ -1279,9 +1279,9 @@ } }, "node_modules/@wdio/protocols": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.22.0.tgz", - "integrity": "sha512-2y5lTYAAzQWvExL1FGCe6gujVpOpTxk+czT0Qx0j0iUlfdOwp9gWVLYl8ochTJHzfeM45GHvuZ/ndT52grsTtg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.23.0.tgz", + "integrity": "sha512-2XTzD+lqQP3g8BWn+Bn5BTFzjHqzZNwq7DjlYrb27Bq8nOA+1DEcj3WzQ6V6CktTnKI/LAYKA1IFAF//Azrp/Q==", "dev": true }, "node_modules/@wdio/repl": { @@ -1297,14 +1297,14 @@ } }, "node_modules/@wdio/reporter": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.21.0.tgz", - "integrity": "sha512-noZX04lP7WvoaEAwhOTy0C/ddyVTEHQe/AGMTzgKgoQclEM3I2nZ1PjEwe/ACfIm0880EGIDW7ssN2pf/4ZNDQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.23.0.tgz", + "integrity": "sha512-0gmL+CibSr1aUa+zMmDmOxgWohs9i7A4yNzznTnwFsU6BZxiyUSM7SLy4mmbts/Kn1vAt3GY0wCIevXFExm94w==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.16.17", - "@wdio/types": "8.21.0", + "@wdio/types": "8.23.0", "diff": "^5.0.0", "object-inspect": "^1.12.0" }, @@ -1313,35 +1313,35 @@ } }, "node_modules/@wdio/runner": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.22.1.tgz", - "integrity": "sha512-VHX0l9q6WvDnvf89Q29xAgYBkBUo9ggzrpUA9VGntj+q7ey7Kv7CPBTzv4HVBX9Hp45xwSEl03lqFVcwn5NvTg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.23.0.tgz", + "integrity": "sha512-MmBngg2KGMUHHCwk7LcBnWXRFxy7H25B2hM2+TlJmex/ObyKJIIlPWHJd9mJWCQLJMhXKjzg/mM0Oa7IYJw3jA==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.22.1", - "@wdio/globals": "8.22.1", + "@wdio/config": "8.23.0", + "@wdio/globals": "8.23.0", "@wdio/logger": "8.16.17", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/types": "8.23.0", + "@wdio/utils": "8.23.0", "deepmerge-ts": "^5.0.0", - "expect-webdriverio": "^4.2.5", + "expect-webdriverio": "^4.5.1", "gaze": "^1.1.2", - "webdriver": "8.22.1", - "webdriverio": "8.22.1" + "webdriver": "8.23.0", + "webdriverio": "8.23.0" }, "engines": { "node": "^16.13 || >=18" } }, "node_modules/@wdio/spec-reporter": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.21.0.tgz", - "integrity": "sha512-Lb6MTjISlaZJx5/2kjJC/E9FM55BZUy3HPbhYbbWUSWqi9Yk8I7n6e90c8uHwDOK5zMyRof9501lUtLyIHY9Og==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.23.0.tgz", + "integrity": "sha512-eLQ3susBc0souOJr2X+0V2eeffRAI/ZV0NsrQWAfhiRpdAtdAQ006yA9mgbr9DAJ5MTidOivmYqG54Vxtbfh4A==", "dev": true, "dependencies": { - "@wdio/reporter": "8.21.0", - "@wdio/types": "8.21.0", + "@wdio/reporter": "8.23.0", + "@wdio/types": "8.23.0", "chalk": "^5.1.2", "easy-table": "^1.2.0", "pretty-ms": "^7.0.0" @@ -1363,9 +1363,9 @@ } }, "node_modules/@wdio/types": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.21.0.tgz", - "integrity": "sha512-mZFOipmu541z0BXBW7mBAUjM4zZWhNnP/w321OSYx082Jy4d0UHMFXYWaOC98DIMBPahJu/yLX2WH5iCrazKSA==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.23.0.tgz", + "integrity": "sha512-CswQkVOVM+32Lvvh/dH0KTMQUr+h3ibJKbiWKmdpLY3Ym/JXbnhrAfWz4hZvR53XK1B5q3jq4JGRDHkiuEC5EA==", "dev": true, "dependencies": { "@types/node": "^20.1.0" @@ -1375,14 +1375,14 @@ } }, "node_modules/@wdio/utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.22.0.tgz", - "integrity": "sha512-n09ZLfe6NADQ7XyeO45nPBtNHi8nwu1RpOI18c94SrRS7gmO0CQWpjSilJCoHvu10ekUPJE7Oh/1Nw28w7ceVg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.23.0.tgz", + "integrity": "sha512-oOKqW/m3jR3I1dwjywC/f7f1WQ9lWYBbZYp7JAJy2YpqI4g5sJ9EZom40E9c9Eay/sT3Ppc0+IE/ogEzn2WNPg==", "dev": true, "dependencies": { "@puppeteer/browsers": "^1.6.0", "@wdio/logger": "8.16.17", - "@wdio/types": "8.21.0", + "@wdio/types": "8.23.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.1.0", "edgedriver": "^5.3.5", @@ -3272,20 +3272,21 @@ } }, "node_modules/expect-webdriverio": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.2.8.tgz", - "integrity": "sha512-UdhcjLPo02gt+apUJghNMMlJ19F41ITgBEfoVvV3SbTz9CRS43pctXSk04h51LuH4ZWbEgz7Va3gjX0N1JUlyg==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.5.1.tgz", + "integrity": "sha512-fwcMpPV/+e0bS+F7+bC1UoQsZYjJTcbA1XhU4VVB2pEZDhNmeuaPrCanA0tLVP8nDya75oegXK7LgPzP3zZR9w==", "dev": true, "dependencies": { "expect": "^29.7.0", - "jest-matcher-utils": "^29.7.0" + "jest-matcher-utils": "^29.7.0", + "lodash.isequal": "^4.5.0" }, "engines": { "node": ">=16 || >=18 || >=20" }, "optionalDependencies": { - "@wdio/globals": "^8.16.7", - "webdriverio": "^8.16.7" + "@wdio/globals": "^8.22.1", + "webdriverio": "^8.22.1" } }, "node_modules/external-editor": { @@ -5395,6 +5396,12 @@ "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -8589,18 +8596,18 @@ } }, "node_modules/webdriver": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.22.1.tgz", - "integrity": "sha512-EQY2YjbOZInuvYAqEEP7w7voWSy9cPMt3UB1o1+obKhrD8dkIDZNkPocpZUI59PokqHTXk4zIclV50k1KpyyiA==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.23.0.tgz", + "integrity": "sha512-M+KvR+6/GCX180n70f0aDLiForT43pmjL6EAmcyyBlJTvrlwlBMOJEljfH9U3BEUoT8v/ihi2Enzxzep+qpHlw==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.22.1", + "@wdio/config": "8.23.0", "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.22.0", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/protocols": "8.23.0", + "@wdio/types": "8.23.0", + "@wdio/utils": "8.23.0", "deepmerge-ts": "^5.1.0", "got": "^ 12.6.1", "ky": "^0.33.0", @@ -8648,18 +8655,18 @@ } }, "node_modules/webdriverio": { - "version": "8.22.1", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.22.1.tgz", - "integrity": "sha512-SFqCKM93DPZU5Vn2r9OMi5EFbJHmWnIf8KXZvdzVOkGzQxFDtJ8LDgzwH1/LZxjG9nO+D7y+4wyQl7V24b8L+Q==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.23.0.tgz", + "integrity": "sha512-79ZuoEPc8frKXsOtSKXrNgBNA97rlkd7XwYKxrvyoTVNxZe5RDh9I9AcoiDC0AJ96oxbCt+ANOVV4tg9ZGBQcA==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.22.1", + "@wdio/config": "8.23.0", "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.22.0", + "@wdio/protocols": "8.23.0", "@wdio/repl": "8.10.1", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/types": "8.23.0", + "@wdio/utils": "8.23.0", "archiver": "^6.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", @@ -8676,7 +8683,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.22.1" + "webdriver": "8.23.0" }, "engines": { "node": "^16.13 || >=18" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index 1d1667b73..cd5745130 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -6,10 +6,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.11.0", "@typescript-eslint/parser": "^6.11.0", - "@wdio/cli": "^8.22.1", - "@wdio/local-runner": "^8.22.1", - "@wdio/mocha-framework": "^8.22.0", - "@wdio/spec-reporter": "^8.21.0", + "@wdio/cli": "^8.23.0", + "@wdio/local-runner": "^8.23.0", + "@wdio/mocha-framework": "^8.23.0", + "@wdio/spec-reporter": "^8.23.0", "eslint": "^8.53.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", From d39d8e6195fc31410c4b44f63ac88e18db3c4d6b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:44:02 +0100 Subject: [PATCH 17/63] web: bump @formatjs/intl-listformat from 7.5.2 to 7.5.3 in /web (#7573) Bumps [@formatjs/intl-listformat](https://github.com/formatjs/formatjs) from 7.5.2 to 7.5.3. - [Release notes](https://github.com/formatjs/formatjs/releases) - [Commits](https://github.com/formatjs/formatjs/compare/@formatjs/intl-listformat@7.5.2...@formatjs/intl-listformat@7.5.3) --- updated-dependencies: - dependency-name: "@formatjs/intl-listformat" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 26 +++++++++++++------------- web/package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 00f066ebb..e1542ca16 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -15,7 +15,7 @@ "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.3", "@codemirror/theme-one-dark": "^6.1.2", - "@formatjs/intl-listformat": "^7.5.2", + "@formatjs/intl-listformat": "^7.5.3", "@fortawesome/fontawesome-free": "^6.4.2", "@goauthentik/api": "^2023.10.3-1699884123", "@lit-labs/context": "^0.4.0", @@ -2884,28 +2884,28 @@ "integrity": "sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ==" }, "node_modules/@formatjs/ecma402-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.4.tgz", - "integrity": "sha512-mLxTq+UrMoOoafVxG5HdmrfPpjv0uINQw1d0ADKfQMqhDaR4SDXdw3olXkOP05DGSAsVvSxzfKEuVKcLB15b9A==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz", + "integrity": "sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==", "dependencies": { - "@formatjs/intl-localematcher": "0.5.1", + "@formatjs/intl-localematcher": "0.5.2", "tslib": "^2.4.0" } }, "node_modules/@formatjs/intl-listformat": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.2.tgz", - "integrity": "sha512-1jIZ+tnJ2nLNBZkDl9jUnB2sf87faU082ICc+MHfNXzalEacYEeOKzfFoJhfGCG2nzc+MhaSL1AMalDlc8MSvQ==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.3.tgz", + "integrity": "sha512-l7EOr0Yh1m8KagytukB90yw81uyzrM7amKFrgxXqphz4KeSIL0KPa68lPsdtZ+JmQB73GaDQRwLOwUKFZ1VZPQ==", "dependencies": { - "@formatjs/ecma402-abstract": "1.17.4", - "@formatjs/intl-localematcher": "0.5.1", + "@formatjs/ecma402-abstract": "1.18.0", + "@formatjs/intl-localematcher": "0.5.2", "tslib": "^2.4.0" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.1.tgz", - "integrity": "sha512-An6EtxT0txJI8dQwOmLqs4lC3/+Dl9YuTGDWdxxtAT/9sx0r9DupnC3/k6F87Tb5gqXdR/ACdB7bmR+Zo2eu+g==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz", + "integrity": "sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==", "dependencies": { "tslib": "^2.4.0" } diff --git a/web/package.json b/web/package.json index 15369f747..2ca6277f3 100644 --- a/web/package.json +++ b/web/package.json @@ -36,7 +36,7 @@ "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.3", "@codemirror/theme-one-dark": "^6.1.2", - "@formatjs/intl-listformat": "^7.5.2", + "@formatjs/intl-listformat": "^7.5.3", "@fortawesome/fontawesome-free": "^6.4.2", "@goauthentik/api": "^2023.10.3-1699884123", "@lit-labs/context": "^0.4.0", From 2a3fd8808181df8a1568939f053dfa1dee8fc73a Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:51:48 +0100 Subject: [PATCH 18/63] translate: Updates for file web/xliff/en.xlf in zh_CN (#7577) Translate web/xliff/en.xlf in zh_CN 100% translated source file: 'web/xliff/en.xlf' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh_CN.xlf | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/web/xliff/zh_CN.xlf b/web/xliff/zh_CN.xlf index 7fc656ced..239280634 100644 --- a/web/xliff/zh_CN.xlf +++ b/web/xliff/zh_CN.xlf @@ -7949,6 +7949,34 @@ Bindings to groups/users are checked against the user of the event. Failed logins 失败登录 + + + Also known as Client ID. + 也称为客户端 ID。 + + + Also known as Client Secret. + 也称为客户端密钥。 + + + Global status + 全局状态 + + + Vendor + 供应商 + + + No sync status. + 无同步状态。 + + + Sync currently running. + 当前正在同步。 + + + Connectivity + 连接性 From 8cd352a600329598cc45be14fa53f1e23410b447 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:52:05 +0100 Subject: [PATCH 19/63] translate: Updates for file web/xliff/en.xlf in zh-Hans (#7578) Translate web/xliff/en.xlf in zh-Hans 100% translated source file: 'web/xliff/en.xlf' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh-Hans.xlf | 53 ++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 2f9f04a89..55c8f325c 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1057,8 +1057,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1799,8 +1799,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -3013,8 +3013,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3806,8 +3806,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3816,8 +3816,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - 格式:"weeks=3;days=2;hours=3,seconds=2"。 + Format: "weeks=3;days=2;hours=3,seconds=2". + 格式:"weeks=3;days=2;hours=3,seconds=2"。 @@ -4013,10 +4013,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5102,7 +5102,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5437,10 +5437,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5489,7 +5489,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7952,25 +7952,32 @@ Bindings to groups/users are checked against the user of the event. Also known as Client ID. + 也称为客户端 ID。 Also known as Client Secret. + 也称为客户端密钥。 Global status + 全局状态 Vendor + 供应商 No sync status. + 无同步状态。 Sync currently running. + 当前正在同步。 Connectivity + 连接性 - + \ No newline at end of file From 5b5fc42a0c48004443b32b321f7c79d018e6bcdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 14:52:15 +0100 Subject: [PATCH 20/63] core: bump aiohttp from 3.8.5 to 3.8.6 (#7568) Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.5 to 3.8.6. - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6) --- updated-dependencies: - dependency-name: aiohttp dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 176 ++++++++++++++++++++++++++-------------------------- 1 file changed, 88 insertions(+), 88 deletions(-) diff --git a/poetry.lock b/poetry.lock index b85332fba..c7139d1a3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,98 +2,98 @@ [[package]] name = "aiohttp" -version = "3.8.5" +version = "3.8.6" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.6" files = [ - {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a94159871304770da4dd371f4291b20cac04e8c94f11bdea1c3478e557fbe0d8"}, - {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:13bf85afc99ce6f9ee3567b04501f18f9f8dbbb2ea11ed1a2e079670403a7c84"}, - {file = "aiohttp-3.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ce2ac5708501afc4847221a521f7e4b245abf5178cf5ddae9d5b3856ddb2f3a"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96943e5dcc37a6529d18766597c491798b7eb7a61d48878611298afc1fca946c"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ad5c3c4590bb3cc28b4382f031f3783f25ec223557124c68754a2231d989e2b"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c413c633d0512df4dc7fd2373ec06cc6a815b7b6d6c2f208ada7e9e93a5061d"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df72ac063b97837a80d80dec8d54c241af059cc9bb42c4de68bd5b61ceb37caa"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c48c5c0271149cfe467c0ff8eb941279fd6e3f65c9a388c984e0e6cf57538e14"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:368a42363c4d70ab52c2c6420a57f190ed3dfaca6a1b19afda8165ee16416a82"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7607ec3ce4993464368505888af5beb446845a014bc676d349efec0e05085905"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0d21c684808288a98914e5aaf2a7c6a3179d4df11d249799c32d1808e79503b5"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:312fcfbacc7880a8da0ae8b6abc6cc7d752e9caa0051a53d217a650b25e9a691"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad093e823df03bb3fd37e7dec9d4670c34f9e24aeace76808fc20a507cace825"}, - {file = "aiohttp-3.8.5-cp310-cp310-win32.whl", hash = "sha256:33279701c04351a2914e1100b62b2a7fdb9a25995c4a104259f9a5ead7ed4802"}, - {file = "aiohttp-3.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:6e4a280e4b975a2e7745573e3fc9c9ba0d1194a3738ce1cbaa80626cc9b4f4df"}, - {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae871a964e1987a943d83d6709d20ec6103ca1eaf52f7e0d36ee1b5bebb8b9b9"}, - {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:461908b2578955045efde733719d62f2b649c404189a09a632d245b445c9c975"}, - {file = "aiohttp-3.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72a860c215e26192379f57cae5ab12b168b75db8271f111019509a1196dfc780"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc14be025665dba6202b6a71cfcdb53210cc498e50068bc088076624471f8bb9"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af740fc2711ad85f1a5c034a435782fbd5b5f8314c9a3ef071424a8158d7f6b"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:841cd8233cbd2111a0ef0a522ce016357c5e3aff8a8ce92bcfa14cef890d698f"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed1c46fb119f1b59304b5ec89f834f07124cd23ae5b74288e364477641060ff"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84f8ae3e09a34f35c18fa57f015cc394bd1389bce02503fb30c394d04ee6b938"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62360cb771707cb70a6fd114b9871d20d7dd2163a0feafe43fd115cfe4fe845e"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23fb25a9f0a1ca1f24c0a371523546366bb642397c94ab45ad3aedf2941cec6a"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0ba0d15164eae3d878260d4c4df859bbdc6466e9e6689c344a13334f988bb53"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5d20003b635fc6ae3f96d7260281dfaf1894fc3aa24d1888a9b2628e97c241e5"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0175d745d9e85c40dcc51c8f88c74bfbaef9e7afeeeb9d03c37977270303064c"}, - {file = "aiohttp-3.8.5-cp311-cp311-win32.whl", hash = "sha256:2e1b1e51b0774408f091d268648e3d57f7260c1682e7d3a63cb00d22d71bb945"}, - {file = "aiohttp-3.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:043d2299f6dfdc92f0ac5e995dfc56668e1587cea7f9aa9d8a78a1b6554e5755"}, - {file = "aiohttp-3.8.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cae533195e8122584ec87531d6df000ad07737eaa3c81209e85c928854d2195c"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f21e83f355643c345177a5d1d8079f9f28b5133bcd154193b799d380331d5d3"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a75ef35f2df54ad55dbf4b73fe1da96f370e51b10c91f08b19603c64004acc"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e2e9839e14dd5308ee773c97115f1e0a1cb1d75cbeeee9f33824fa5144c7634"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44e65da1de4403d0576473e2344828ef9c4c6244d65cf4b75549bb46d40b8dd"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d847e4cde6ecc19125ccbc9bfac4a7ab37c234dd88fbb3c5c524e8e14da543"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:c7a815258e5895d8900aec4454f38dca9aed71085f227537208057853f9d13f2"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:8b929b9bd7cd7c3939f8bcfffa92fae7480bd1aa425279d51a89327d600c704d"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:5db3a5b833764280ed7618393832e0853e40f3d3e9aa128ac0ba0f8278d08649"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:a0215ce6041d501f3155dc219712bc41252d0ab76474615b9700d63d4d9292af"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fd1ed388ea7fbed22c4968dd64bab0198de60750a25fe8c0c9d4bef5abe13824"}, - {file = "aiohttp-3.8.5-cp36-cp36m-win32.whl", hash = "sha256:6e6783bcc45f397fdebc118d772103d751b54cddf5b60fbcc958382d7dd64f3e"}, - {file = "aiohttp-3.8.5-cp36-cp36m-win_amd64.whl", hash = "sha256:b5411d82cddd212644cf9360879eb5080f0d5f7d809d03262c50dad02f01421a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:01d4c0c874aa4ddfb8098e85d10b5e875a70adc63db91f1ae65a4b04d3344cda"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5980a746d547a6ba173fd5ee85ce9077e72d118758db05d229044b469d9029a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a482e6da906d5e6e653be079b29bc173a48e381600161c9932d89dfae5942ef"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80bd372b8d0715c66c974cf57fe363621a02f359f1ec81cba97366948c7fc873"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1161b345c0a444ebcf46bf0a740ba5dcf50612fd3d0528883fdc0eff578006a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd56db019015b6acfaaf92e1ac40eb8434847d9bf88b4be4efe5bfd260aee692"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:153c2549f6c004d2754cc60603d4668899c9895b8a89397444a9c4efa282aaf4"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4a01951fabc4ce26ab791da5f3f24dca6d9a6f24121746eb19756416ff2d881b"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bfb9162dcf01f615462b995a516ba03e769de0789de1cadc0f916265c257e5d8"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7dde0009408969a43b04c16cbbe252c4f5ef4574ac226bc8815cd7342d2028b6"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4149d34c32f9638f38f544b3977a4c24052042affa895352d3636fa8bffd030a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-win32.whl", hash = "sha256:68c5a82c8779bdfc6367c967a4a1b2aa52cd3595388bf5961a62158ee8a59e22"}, - {file = "aiohttp-3.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2cf57fb50be5f52bda004b8893e63b48530ed9f0d6c96c84620dc92fe3cd9b9d"}, - {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:eca4bf3734c541dc4f374ad6010a68ff6c6748f00451707f39857f429ca36ced"}, - {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1274477e4c71ce8cfe6c1ec2f806d57c015ebf84d83373676036e256bc55d690"}, - {file = "aiohttp-3.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28c543e54710d6158fc6f439296c7865b29e0b616629767e685a7185fab4a6b9"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:910bec0c49637d213f5d9877105d26e0c4a4de2f8b1b29405ff37e9fc0ad52b8"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5443910d662db951b2e58eb70b0fbe6b6e2ae613477129a5805d0b66c54b6cb7"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e460be6978fc24e3df83193dc0cc4de46c9909ed92dd47d349a452ef49325b7"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1558def481d84f03b45888473fc5a1f35747b5f334ef4e7a571bc0dfcb11f8"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34dd0c107799dcbbf7d48b53be761a013c0adf5571bf50c4ecad5643fe9cfcd0"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aa1990247f02a54185dc0dff92a6904521172a22664c863a03ff64c42f9b5410"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0e584a10f204a617d71d359fe383406305a4b595b333721fa50b867b4a0a1548"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a3cf433f127efa43fee6b90ea4c6edf6c4a17109d1d037d1a52abec84d8f2e42"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c11f5b099adafb18e65c2c997d57108b5bbeaa9eeee64a84302c0978b1ec948b"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:84de26ddf621d7ac4c975dbea4c945860e08cccde492269db4e1538a6a6f3c35"}, - {file = "aiohttp-3.8.5-cp38-cp38-win32.whl", hash = "sha256:ab88bafedc57dd0aab55fa728ea10c1911f7e4d8b43e1d838a1739f33712921c"}, - {file = "aiohttp-3.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:5798a9aad1879f626589f3df0f8b79b3608a92e9beab10e5fda02c8a2c60db2e"}, - {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a6ce61195c6a19c785df04e71a4537e29eaa2c50fe745b732aa937c0c77169f3"}, - {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:773dd01706d4db536335fcfae6ea2440a70ceb03dd3e7378f3e815b03c97ab51"}, - {file = "aiohttp-3.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f83a552443a526ea38d064588613aca983d0ee0038801bc93c0c916428310c28"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f7372f7341fcc16f57b2caded43e81ddd18df53320b6f9f042acad41f8e049a"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea353162f249c8097ea63c2169dd1aa55de1e8fecbe63412a9bc50816e87b761"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d47ae48db0b2dcf70bc8a3bc72b3de86e2a590fc299fdbbb15af320d2659de"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d827176898a2b0b09694fbd1088c7a31836d1a505c243811c87ae53a3f6273c1"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3562b06567c06439d8b447037bb655ef69786c590b1de86c7ab81efe1c9c15d8"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4e874cbf8caf8959d2adf572a78bba17cb0e9d7e51bb83d86a3697b686a0ab4d"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6809a00deaf3810e38c628e9a33271892f815b853605a936e2e9e5129762356c"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:33776e945d89b29251b33a7e7d006ce86447b2cfd66db5e5ded4e5cd0340585c"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eaeed7abfb5d64c539e2db173f63631455f1196c37d9d8d873fc316470dfbacd"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e91d635961bec2d8f19dfeb41a539eb94bd073f075ca6dae6c8dc0ee89ad6f91"}, - {file = "aiohttp-3.8.5-cp39-cp39-win32.whl", hash = "sha256:00ad4b6f185ec67f3e6562e8a1d2b69660be43070bd0ef6fcec5211154c7df67"}, - {file = "aiohttp-3.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:c0a9034379a37ae42dea7ac1e048352d96286626251862e448933c0f59cbd79c"}, - {file = "aiohttp-3.8.5.tar.gz", hash = "sha256:b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"}, + {file = "aiohttp-3.8.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:41d55fc043954cddbbd82503d9cc3f4814a40bcef30b3569bc7b5e34130718c1"}, + {file = "aiohttp-3.8.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1d84166673694841d8953f0a8d0c90e1087739d24632fe86b1a08819168b4566"}, + {file = "aiohttp-3.8.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:253bf92b744b3170eb4c4ca2fa58f9c4b87aeb1df42f71d4e78815e6e8b73c9e"}, + {file = "aiohttp-3.8.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fd194939b1f764d6bb05490987bfe104287bbf51b8d862261ccf66f48fb4096"}, + {file = "aiohttp-3.8.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c5f938d199a6fdbdc10bbb9447496561c3a9a565b43be564648d81e1102ac22"}, + {file = "aiohttp-3.8.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2817b2f66ca82ee699acd90e05c95e79bbf1dc986abb62b61ec8aaf851e81c93"}, + {file = "aiohttp-3.8.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fa375b3d34e71ccccf172cab401cd94a72de7a8cc01847a7b3386204093bb47"}, + {file = "aiohttp-3.8.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9de50a199b7710fa2904be5a4a9b51af587ab24c8e540a7243ab737b45844543"}, + {file = "aiohttp-3.8.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e1d8cb0b56b3587c5c01de3bf2f600f186da7e7b5f7353d1bf26a8ddca57f965"}, + {file = "aiohttp-3.8.6-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8e31e9db1bee8b4f407b77fd2507337a0a80665ad7b6c749d08df595d88f1cf5"}, + {file = "aiohttp-3.8.6-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7bc88fc494b1f0311d67f29fee6fd636606f4697e8cc793a2d912ac5b19aa38d"}, + {file = "aiohttp-3.8.6-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ec00c3305788e04bf6d29d42e504560e159ccaf0be30c09203b468a6c1ccd3b2"}, + {file = "aiohttp-3.8.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad1407db8f2f49329729564f71685557157bfa42b48f4b93e53721a16eb813ed"}, + {file = "aiohttp-3.8.6-cp310-cp310-win32.whl", hash = "sha256:ccc360e87341ad47c777f5723f68adbb52b37ab450c8bc3ca9ca1f3e849e5fe2"}, + {file = "aiohttp-3.8.6-cp310-cp310-win_amd64.whl", hash = "sha256:93c15c8e48e5e7b89d5cb4613479d144fda8344e2d886cf694fd36db4cc86865"}, + {file = "aiohttp-3.8.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e2f9cc8e5328f829f6e1fb74a0a3a939b14e67e80832975e01929e320386b34"}, + {file = "aiohttp-3.8.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e6a00ffcc173e765e200ceefb06399ba09c06db97f401f920513a10c803604ca"}, + {file = "aiohttp-3.8.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:41bdc2ba359032e36c0e9de5a3bd00d6fb7ea558a6ce6b70acedf0da86458321"}, + {file = "aiohttp-3.8.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14cd52ccf40006c7a6cd34a0f8663734e5363fd981807173faf3a017e202fec9"}, + {file = "aiohttp-3.8.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d5b785c792802e7b275c420d84f3397668e9d49ab1cb52bd916b3b3ffcf09ad"}, + {file = "aiohttp-3.8.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1bed815f3dc3d915c5c1e556c397c8667826fbc1b935d95b0ad680787896a358"}, + {file = "aiohttp-3.8.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96603a562b546632441926cd1293cfcb5b69f0b4159e6077f7c7dbdfb686af4d"}, + {file = "aiohttp-3.8.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d76e8b13161a202d14c9584590c4df4d068c9567c99506497bdd67eaedf36403"}, + {file = "aiohttp-3.8.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e3f1e3f1a1751bb62b4a1b7f4e435afcdade6c17a4fd9b9d43607cebd242924a"}, + {file = "aiohttp-3.8.6-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:76b36b3124f0223903609944a3c8bf28a599b2cc0ce0be60b45211c8e9be97f8"}, + {file = "aiohttp-3.8.6-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:a2ece4af1f3c967a4390c284797ab595a9f1bc1130ef8b01828915a05a6ae684"}, + {file = "aiohttp-3.8.6-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:16d330b3b9db87c3883e565340d292638a878236418b23cc8b9b11a054aaa887"}, + {file = "aiohttp-3.8.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:42c89579f82e49db436b69c938ab3e1559e5a4409eb8639eb4143989bc390f2f"}, + {file = "aiohttp-3.8.6-cp311-cp311-win32.whl", hash = "sha256:efd2fcf7e7b9d7ab16e6b7d54205beded0a9c8566cb30f09c1abe42b4e22bdcb"}, + {file = "aiohttp-3.8.6-cp311-cp311-win_amd64.whl", hash = "sha256:3b2ab182fc28e7a81f6c70bfbd829045d9480063f5ab06f6e601a3eddbbd49a0"}, + {file = "aiohttp-3.8.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:fdee8405931b0615220e5ddf8cd7edd8592c606a8e4ca2a00704883c396e4479"}, + {file = "aiohttp-3.8.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d25036d161c4fe2225d1abff2bd52c34ed0b1099f02c208cd34d8c05729882f0"}, + {file = "aiohttp-3.8.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d791245a894be071d5ab04bbb4850534261a7d4fd363b094a7b9963e8cdbd31"}, + {file = "aiohttp-3.8.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0cccd1de239afa866e4ce5c789b3032442f19c261c7d8a01183fd956b1935349"}, + {file = "aiohttp-3.8.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f13f60d78224f0dace220d8ab4ef1dbc37115eeeab8c06804fec11bec2bbd07"}, + {file = "aiohttp-3.8.6-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a9b5a0606faca4f6cc0d338359d6fa137104c337f489cd135bb7fbdbccb1e39"}, + {file = "aiohttp-3.8.6-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:13da35c9ceb847732bf5c6c5781dcf4780e14392e5d3b3c689f6d22f8e15ae31"}, + {file = "aiohttp-3.8.6-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:4d4cbe4ffa9d05f46a28252efc5941e0462792930caa370a6efaf491f412bc66"}, + {file = "aiohttp-3.8.6-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:229852e147f44da0241954fc6cb910ba074e597f06789c867cb7fb0621e0ba7a"}, + {file = "aiohttp-3.8.6-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:713103a8bdde61d13490adf47171a1039fd880113981e55401a0f7b42c37d071"}, + {file = "aiohttp-3.8.6-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:45ad816b2c8e3b60b510f30dbd37fe74fd4a772248a52bb021f6fd65dff809b6"}, + {file = "aiohttp-3.8.6-cp36-cp36m-win32.whl", hash = "sha256:2b8d4e166e600dcfbff51919c7a3789ff6ca8b3ecce16e1d9c96d95dd569eb4c"}, + {file = "aiohttp-3.8.6-cp36-cp36m-win_amd64.whl", hash = "sha256:0912ed87fee967940aacc5306d3aa8ba3a459fcd12add0b407081fbefc931e53"}, + {file = "aiohttp-3.8.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e2a988a0c673c2e12084f5e6ba3392d76c75ddb8ebc6c7e9ead68248101cd446"}, + {file = "aiohttp-3.8.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebf3fd9f141700b510d4b190094db0ce37ac6361a6806c153c161dc6c041ccda"}, + {file = "aiohttp-3.8.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3161ce82ab85acd267c8f4b14aa226047a6bee1e4e6adb74b798bd42c6ae1f80"}, + {file = "aiohttp-3.8.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95fc1bf33a9a81469aa760617b5971331cdd74370d1214f0b3109272c0e1e3c"}, + {file = "aiohttp-3.8.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c43ecfef7deaf0617cee936836518e7424ee12cb709883f2c9a1adda63cc460"}, + {file = "aiohttp-3.8.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca80e1b90a05a4f476547f904992ae81eda5c2c85c66ee4195bb8f9c5fb47f28"}, + {file = "aiohttp-3.8.6-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:90c72ebb7cb3a08a7f40061079817133f502a160561d0675b0a6adf231382c92"}, + {file = "aiohttp-3.8.6-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bb54c54510e47a8c7c8e63454a6acc817519337b2b78606c4e840871a3e15349"}, + {file = "aiohttp-3.8.6-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:de6a1c9f6803b90e20869e6b99c2c18cef5cc691363954c93cb9adeb26d9f3ae"}, + {file = "aiohttp-3.8.6-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:a3628b6c7b880b181a3ae0a0683698513874df63783fd89de99b7b7539e3e8a8"}, + {file = "aiohttp-3.8.6-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:fc37e9aef10a696a5a4474802930079ccfc14d9f9c10b4662169671ff034b7df"}, + {file = "aiohttp-3.8.6-cp37-cp37m-win32.whl", hash = "sha256:f8ef51e459eb2ad8e7a66c1d6440c808485840ad55ecc3cafefadea47d1b1ba2"}, + {file = "aiohttp-3.8.6-cp37-cp37m-win_amd64.whl", hash = "sha256:b2fe42e523be344124c6c8ef32a011444e869dc5f883c591ed87f84339de5976"}, + {file = "aiohttp-3.8.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9e2ee0ac5a1f5c7dd3197de309adfb99ac4617ff02b0603fd1e65b07dc772e4b"}, + {file = "aiohttp-3.8.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01770d8c04bd8db568abb636c1fdd4f7140b284b8b3e0b4584f070180c1e5c62"}, + {file = "aiohttp-3.8.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3c68330a59506254b556b99a91857428cab98b2f84061260a67865f7f52899f5"}, + {file = "aiohttp-3.8.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89341b2c19fb5eac30c341133ae2cc3544d40d9b1892749cdd25892bbc6ac951"}, + {file = "aiohttp-3.8.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71783b0b6455ac8f34b5ec99d83e686892c50498d5d00b8e56d47f41b38fbe04"}, + {file = "aiohttp-3.8.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f628dbf3c91e12f4d6c8b3f092069567d8eb17814aebba3d7d60c149391aee3a"}, + {file = "aiohttp-3.8.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b04691bc6601ef47c88f0255043df6f570ada1a9ebef99c34bd0b72866c217ae"}, + {file = "aiohttp-3.8.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ee912f7e78287516df155f69da575a0ba33b02dd7c1d6614dbc9463f43066e3"}, + {file = "aiohttp-3.8.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9c19b26acdd08dd239e0d3669a3dddafd600902e37881f13fbd8a53943079dbc"}, + {file = "aiohttp-3.8.6-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:99c5ac4ad492b4a19fc132306cd57075c28446ec2ed970973bbf036bcda1bcc6"}, + {file = "aiohttp-3.8.6-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:f0f03211fd14a6a0aed2997d4b1c013d49fb7b50eeb9ffdf5e51f23cfe2c77fa"}, + {file = "aiohttp-3.8.6-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:8d399dade330c53b4106160f75f55407e9ae7505263ea86f2ccca6bfcbdb4921"}, + {file = "aiohttp-3.8.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ec4fd86658c6a8964d75426517dc01cbf840bbf32d055ce64a9e63a40fd7b771"}, + {file = "aiohttp-3.8.6-cp38-cp38-win32.whl", hash = "sha256:33164093be11fcef3ce2571a0dccd9041c9a93fa3bde86569d7b03120d276c6f"}, + {file = "aiohttp-3.8.6-cp38-cp38-win_amd64.whl", hash = "sha256:bdf70bfe5a1414ba9afb9d49f0c912dc524cf60141102f3a11143ba3d291870f"}, + {file = "aiohttp-3.8.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d52d5dc7c6682b720280f9d9db41d36ebe4791622c842e258c9206232251ab2b"}, + {file = "aiohttp-3.8.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4ac39027011414dbd3d87f7edb31680e1f430834c8cef029f11c66dad0670aa5"}, + {file = "aiohttp-3.8.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3f5c7ce535a1d2429a634310e308fb7d718905487257060e5d4598e29dc17f0b"}, + {file = "aiohttp-3.8.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b30e963f9e0d52c28f284d554a9469af073030030cef8693106d918b2ca92f54"}, + {file = "aiohttp-3.8.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:918810ef188f84152af6b938254911055a72e0f935b5fbc4c1a4ed0b0584aed1"}, + {file = "aiohttp-3.8.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:002f23e6ea8d3dd8d149e569fd580c999232b5fbc601c48d55398fbc2e582e8c"}, + {file = "aiohttp-3.8.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fcf3eabd3fd1a5e6092d1242295fa37d0354b2eb2077e6eb670accad78e40e1"}, + {file = "aiohttp-3.8.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:255ba9d6d5ff1a382bb9a578cd563605aa69bec845680e21c44afc2670607a95"}, + {file = "aiohttp-3.8.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d67f8baed00870aa390ea2590798766256f31dc5ed3ecc737debb6e97e2ede78"}, + {file = "aiohttp-3.8.6-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:86f20cee0f0a317c76573b627b954c412ea766d6ada1a9fcf1b805763ae7feeb"}, + {file = "aiohttp-3.8.6-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:39a312d0e991690ccc1a61f1e9e42daa519dcc34ad03eb6f826d94c1190190dd"}, + {file = "aiohttp-3.8.6-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e827d48cf802de06d9c935088c2924e3c7e7533377d66b6f31ed175c1620e05e"}, + {file = "aiohttp-3.8.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bd111d7fc5591ddf377a408ed9067045259ff2770f37e2d94e6478d0f3fc0c17"}, + {file = "aiohttp-3.8.6-cp39-cp39-win32.whl", hash = "sha256:caf486ac1e689dda3502567eb89ffe02876546599bbf915ec94b1fa424eeffd4"}, + {file = "aiohttp-3.8.6-cp39-cp39-win_amd64.whl", hash = "sha256:3f0e27e5b733803333bb2371249f41cf42bae8884863e8e8965ec69bebe53132"}, + {file = "aiohttp-3.8.6.tar.gz", hash = "sha256:b0cf2a4501bff9330a8a5248b4ce951851e415bdcce9dc158e76cfd55e15085c"}, ] [package.dependencies] From 01ffece9ffbde79245009feb785c8a80dfed8bcc Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 15 Nov 2023 14:52:48 +0100 Subject: [PATCH 21/63] web/flows: don't auto-redirect to first source when passwordless is configured (#7579) Signed-off-by: Jens Langhammer --- web/src/flow/stages/identification/IdentificationStage.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/src/flow/stages/identification/IdentificationStage.ts b/web/src/flow/stages/identification/IdentificationStage.ts index e0399d10d..65b30a73c 100644 --- a/web/src/flow/stages/identification/IdentificationStage.ts +++ b/web/src/flow/stages/identification/IdentificationStage.ts @@ -75,6 +75,8 @@ export class IdentificationStage extends BaseStage< // meaning that without the auto-redirect the user would only have the option // to manually click on the source button if ((this.challenge.userFields || []).length !== 0) return; + // we also don't want to auto-redirect if there's a passwordless URL configured + if (this.challenge.passwordlessUrl) return; const source = this.challenge.sources[0]; this.host.challenge = source.challenge; } From 0d59d2498961c6b1db59f81657f89e21a08c1450 Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 15 Nov 2023 16:28:56 +0100 Subject: [PATCH 22/63] web/admin: fix incorrectly encoded chars in translation (#7580) Signed-off-by: Jens Langhammer --- .../policies/password/PasswordPolicyForm.ts | 29 +++-- web/xliff/de.xlf | 31 +++--- web/xliff/en.xlf | 35 +++--- web/xliff/es.xlf | 30 ++--- web/xliff/fr.xlf | 104 ++++++++---------- web/xliff/pl.xlf | 30 ++--- web/xliff/pseudo-LOCALE.xlf | 40 +++---- web/xliff/tr.xlf | 30 ++--- web/xliff/zh-Hans.xlf | 86 +++++++-------- web/xliff/zh-Hant.xlf | 30 ++--- web/xliff/zh_TW.xlf | 30 ++--- 11 files changed, 218 insertions(+), 257 deletions(-) diff --git a/web/src/admin/policies/password/PasswordPolicyForm.ts b/web/src/admin/policies/password/PasswordPolicyForm.ts index 126d7386b..96183b077 100644 --- a/web/src/admin/policies/password/PasswordPolicyForm.ts +++ b/web/src/admin/policies/password/PasswordPolicyForm.ts @@ -22,17 +22,14 @@ export class PasswordPolicyForm extends ModelForm { @state() showZxcvbn = false; - loadInstance(pk: string): Promise { - return new PoliciesApi(DEFAULT_CONFIG) - .policiesPasswordRetrieve({ - policyUuid: pk, - }) - .then((policy) => { - this.showStatic = policy.checkStaticRules || false; - this.showHIBP = policy.checkHaveIBeenPwned || false; - this.showZxcvbn = policy.checkZxcvbn || false; - return policy; - }); + async loadInstance(pk: string): Promise { + const policy = await new PoliciesApi(DEFAULT_CONFIG).policiesPasswordRetrieve({ + policyUuid: pk, + }); + this.showStatic = policy.checkStaticRules || false; + this.showHIBP = policy.checkHaveIBeenPwned || false; + this.showZxcvbn = policy.checkZxcvbn || false; + return policy; } getSuccessMessage(): string { @@ -200,26 +197,26 @@ export class PasswordPolicyForm extends ModelForm { )}

- ${msg("0: Too guessable: risky password. (guesses < 10^3)")} + ${msg("0: Too guessable: risky password. (guesses < 10^3)")}

${msg( - "1: Very guessable: protection from throttled online attacks. (guesses < 10^6)", + "1: Very guessable: protection from throttled online attacks. (guesses < 10^6)", )}

${msg( - "2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8)", + "2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8)", )}

${msg( - "3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10)", + "3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10)", )}

${msg( - "4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10)", + "4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10)", )}

diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index fb09939a9..aa0b11fcd 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -1954,22 +1954,6 @@ If the password's score is less than or equal this value, the policy will fail. - - 0: Too guessable: risky password. (guesses < 10^3) - Riskantes Passwort, einfach zu erraten. (Anzahl Versuche < 10^3) - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. Überprüft den Wert aus der Richtlinienanforderung anhand mehrerer Regeln, die hauptsächlich zur Gewährleistung der Kennwortstärke verwendet werden. @@ -6064,6 +6048,21 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index 539d24090..5dc9ddbc7 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -2055,26 +2055,6 @@ If the password's score is less than or equal this value, the policy will fail. If the password's score is less than or equal this value, the policy will fail. - - 0: Too guessable: risky password. (guesses < 10^3) - 0: Too guessable: risky password. (guesses < 10^3) - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. Checks the value from the policy request against several rules, mostly used to ensure password strength. @@ -6345,6 +6325,21 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index f5d8f4218..69575c1bb 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -1922,21 +1922,6 @@ If the password's score is less than or equal this value, the policy will fail. - - 0: Too guessable: risky password. (guesses < 10^3) - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. Comprueba el valor de la solicitud de política en relación con varias reglas, que se utilizan principalmente para garantizar la seguridad de la contraseña. @@ -5979,6 +5964,21 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 2e71fd7ed..fe09b02df 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ Il y a jour(s) - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1057,8 +1057,8 @@ Il y a jour(s) - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1630,7 +1630,7 @@ Il y a jour(s) Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1798,8 +1798,8 @@ Il y a jour(s) - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2561,31 +2561,6 @@ Il y a jour(s) If the password's score is less than or equal this value, the policy will fail. Si le score du mot de passe est inférieur ou égal à cette valeur, la politique échoue. - - - 0: Too guessable: risky password. (guesses < 10^3) - 0: Trop prévisible: mot de passe risqué. (essais < 10^3) - - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - 1: Très prévisible: protection contre les attaques en ligne limitées. (essais < 10^6) - - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - 2: Quelque peu prévisible: protection contre les attaques en ligne non limitées. (essais < 10^8) - - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - 3: Sûrement imprévisible: protection modérée contre les attaques de hash-lent hors ligne. (essais < 10^10) - - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - 4: Très imprévisible: forte protection control les attaques de hash-lent hors ligne. (essais >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. @@ -2922,7 +2897,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -3011,8 +2986,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3307,7 +3282,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3475,7 +3450,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3804,8 +3779,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3814,8 +3789,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - Format : "weeks=3;days=2;hours=3,seconds=2". + Format: "weeks=3;days=2;hours=3,seconds=2". + Format : "weeks=3;days=2;hours=3,seconds=2". @@ -4011,10 +3986,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - " ? + " + " ? @@ -5100,8 +5075,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5426,7 +5401,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5435,10 +5410,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5487,8 +5462,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6272,7 +6247,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7579,7 +7554,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7975,7 +7950,22 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Connectivity Connectivité + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) - \ No newline at end of file + diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 208f215bd..f83eefb02 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -1985,21 +1985,6 @@ If the password's score is less than or equal this value, the policy will fail. - - 0: Too guessable: risky password. (guesses < 10^3) - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. Sprawdza wartość z żądania zasad pod kątem kilku reguł, używanych głównie w celu zapewnienia siły hasła. @@ -6187,6 +6172,21 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index 7fd1524da..9824b2123 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -2541,31 +2541,6 @@ If the password's score is less than or equal this value, the policy will fail. Ĩƒ ţĥē ƥàśśŵōŕď'ś śćōŕē ĩś ĺēśś ţĥàń ōŕ ēǫũàĺ ţĥĩś vàĺũē, ţĥē ƥōĺĩćŷ ŵĩĺĺ ƒàĩĺ. - - - 0: Too guessable: risky password. (guesses < 10^3) - 0: Ţōō ĝũēśśàƀĺē: ŕĩśķŷ ƥàśśŵōŕď. (ĝũēśśēś < 10^3) - - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - 1: Vēŕŷ ĝũēśśàƀĺē: ƥŕōţēćţĩōń ƒŕōm ţĥŕōţţĺēď ōńĺĩńē àţţàćķś. (ĝũēśśēś < 10^6) - - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - 2: Śōmēŵĥàţ ĝũēśśàƀĺē: ƥŕōţēćţĩōń ƒŕōm ũńţĥŕōţţĺēď ōńĺĩńē àţţàćķś. (ĝũēśśēś < 10^8) - - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - 3: Śàƒēĺŷ ũńĝũēśśàƀĺē: mōďēŕàţē ƥŕōţēćţĩōń ƒŕōm ōƒƒĺĩńē śĺōŵ-ĥàśĥ śćēńàŕĩō. (ĝũēśśēś < 10^10) - - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - 4: Vēŕŷ ũńĝũēśśàƀĺē: śţŕōńĝ ƥŕōţēćţĩōń ƒŕōm ōƒƒĺĩńē śĺōŵ-ĥàśĥ śćēńàŕĩō. (ĝũēśśēś >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. @@ -7875,4 +7850,19 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index 25a00f3dc..f53087166 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -1921,21 +1921,6 @@ If the password's score is less than or equal this value, the policy will fail. - - 0: Too guessable: risky password. (guesses < 10^3) - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. İlke isteğindeki değeri, çoğunlukla parola gücünü sağlamak için kullanılan çeşitli kurallara göre denetler. @@ -5972,6 +5957,21 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 55c8f325c..f729ad3ce 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1057,8 +1057,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1799,8 +1799,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -2562,31 +2562,6 @@ If the password's score is less than or equal this value, the policy will fail. 如果密码分数小于等于此值,则策略失败。 - - - 0: Too guessable: risky password. (guesses < 10^3) - 0:过于易猜测:密码有风险。(猜测次数 < 10^3) - - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - 1:非常易猜测:可以防范受限的在线攻击。(猜测次数 < 10^6) - - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - 2:有些易猜测:可以防范不受限的在线攻击。(猜测次数 < 10^8) - - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - 3:难以猜测:适度防范离线慢速哈希场景。(猜测次数 < 10^10) - - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - 4:非常难以猜测:高度防范离线慢速哈希场景。(猜测次数 >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. @@ -3013,8 +2988,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3806,8 +3781,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3816,8 +3791,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - 格式:"weeks=3;days=2;hours=3,seconds=2"。 + Format: "weeks=3;days=2;hours=3,seconds=2". + 格式:"weeks=3;days=2;hours=3,seconds=2"。 @@ -4013,10 +3988,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5102,7 +5077,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5437,10 +5412,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5489,7 +5464,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7977,7 +7952,22 @@ Bindings to groups/users are checked against the user of the event. Connectivity 连接性 + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) - \ No newline at end of file + diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 2da60b080..6ae3a27a2 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -1939,21 +1939,6 @@ If the password's score is less than or equal this value, the policy will fail. - - 0: Too guessable: risky password. (guesses < 10^3) - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. 根据多条规则检查策略请求中的值,这些规则主要用于确保密码强度。 @@ -6020,6 +6005,21 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index df86bec66..4f86131ad 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -1939,21 +1939,6 @@ If the password's score is less than or equal this value, the policy will fail. - - 0: Too guessable: risky password. (guesses < 10^3) - - - 1: Very guessable: protection from throttled online attacks. (guesses < 10^6) - - - 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8) - - - 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10) - - - 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10) - Checks the value from the policy request against several rules, mostly used to ensure password strength. 根据多条规则检查策略请求中的值,这些规则主要用于确保密码强度。 @@ -6019,6 +6004,21 @@ Bindings to groups/users are checked against the user of the event. Connectivity + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) From a2e5de1656cb1ac7916f89a028aedd3efbb15701 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Tue, 14 Nov 2023 16:52:24 +0100 Subject: [PATCH 23/63] ci: translation-advice: avoid commenting after make i18n-extract Signed-off-by: Marc 'risson' Schmitt --- .github/workflows/translation-advice.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/translation-advice.yml b/.github/workflows/translation-advice.yml index f7a788fb6..4de916bf0 100644 --- a/.github/workflows/translation-advice.yml +++ b/.github/workflows/translation-advice.yml @@ -7,7 +7,8 @@ on: paths: - "!**" - "locale/**" - - "web/src/locales/**" + - "!locale/en/**" + - "web/xliff/**" jobs: post-comment: From 5cfae6e11733d599cb4cf82193f85b84af3ad9aa Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Wed, 15 Nov 2023 14:04:30 -0600 Subject: [PATCH 24/63] website/blog: Blog about zero trust and wireguard (#7567) * draft for review * added images * Optimised images with calibre/image-actions * typo * ken edits --------- Co-authored-by: Tana Berry Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- .../item.md | 158 ++++++++++++++++++ .../zero-trust-1.png | Bin 0 -> 186958 bytes .../zero-trust-2.png | Bin 0 -> 236697 bytes 3 files changed, 158 insertions(+) create mode 100644 website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/item.md create mode 100644 website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-1.png create mode 100644 website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-2.png diff --git a/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/item.md b/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/item.md new file mode 100644 index 000000000..3838ad9a6 --- /dev/null +++ b/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/item.md @@ -0,0 +1,158 @@ +--- +title: How Wireguard finally makes a zero trust future achievable +description: “Thanks to a few advancements (mainly Wireguard), zero trust will soon go from buzzword to reality.” +slug: 2023-11-15-how-wireguard-makes-zero-trust-acheivable +authors: + - name: Jens Langhammer + title: CTO at Authentik Security Inc + url: https://github.com/BeryJu + image_url: https://github.com/BeryJu.png +tags: + - authentik + - zero trust + - Wireguard + - NIST + - Okta + - breaches + - SSO + - security + - identity provider + - authentication +hide_table_of_contents: false +--- + +> **_authentik is an open source Identity Provider that unifies your identity needs into a single platform, replacing Okta, Active Directory, and auth0. Authentik Security is a [public benefit company](https://github.com/OpenCoreVentures/ocv-public-benefit-company/blob/main/ocv-public-benefit-company-charter.md) building on top of the open source project._** + +--- + +Buzzwords are the scourge of the tech industry – reviled by developers, pushed by vendors, and commanded by executives. + +All too often, a buzzword is the first signal of rain ([or worse](https://media.licdn.com/dms/image/C4E12AQGspNcRlqpg0A/article-inline_image-shrink_1000_1488/0/1593238107360?e=1700092800&v=beta&t=SCKZ-7W_R9swJPwEpBB35OsVc0jE093ylcjxFPm6FZc)): Marketers have created a trend; vendors are using the trend to explain why you need to buy their software right now; executives are worried about a problem they didn’t know existed before they read that Gartner report; and the downpour rains on developers. + +“_Implement zero trust!_” + +“_Why aren’t we shifting left?_” + +“_Are we resilient? Well, can we get more resilient?_” + +After a while, buzzwords start to look like trojan horses, and the invading army feels like a swarm of tasks that will result in little reward or recognition. It’s tempting to retreat to cynicism and to ignore every Term™ that comes your way. + +But this can be risky. For better or worse, good ideas inevitably get branded, and if you want to keep up, you need to see past the branding – even if it involves stripping away the marketing fluff to see the nugget of an idea within. + +There’s no better example of this than zero trust. In this post, we’ll briefly explore the term's history, explain how it became such an untrustworthy buzzword, and argue that thanks to a few advancements (mainly Wireguard), zero trust will soon go from buzzword to reality. + + + +## Zero trust: An idea ahead of its time + +Ideas tend to emerge at inconvenient moments. + +Sometimes, there are innovators who think so far ahead that people can’t keep up (think Van Gogh), and sometimes, everyone understands the idea, but few can implement it – sometimes for quite a while. + +Zero trust falls into the latter category, and in the past decade, the term’s popularity has outpaced its real-world implications. + +### A brief history of zero trust + +The term “zero trust” originated in Stephen Marsh’s [1994 doctoral thesis](https://www.cs.stir.ac.uk/~kjt/techreps/pdf/TR133.pdf) “Formalising Trust as a Computational Concept.” The thesis is complex and stretches far beyond sheer computing concerns (Marsh wrote it for his doctoral program in philosophy). + +A decade and a half later, John Kindervag revived the term in 2010 while writing articles for Forrester Research. Around the same time, in 2009, Google debuted [BeyondCorp](https://cloud.google.com/beyondcorp), an implementation of numerous zero-trust concepts. This is when we see the emergence of what we know as zero trust today. + +Zero trust is simultaneously a critique of the traditional security mindset and a gesture at a new framework. + +The argument is that the previous mindset is, essentially, a veneer of strength over a fundamentally brittle defense. Traditional security systems follow a perimeter-based structure and a “trust but verify” philosophy. Users and endpoints within an organization’s perimeter are granted implicit trust, meaning that malicious internal actors and stolen credentials can cause significant damage. + +If your company has an office, that means a breach can start when people access the network, and if your company is virtual, that means a breach can open as soon as people start logging into things they shouldn’t. + +The zero trust model instead eliminates implicit trust and, as the name implies, trust altogether. The framework is “zero trust” because it considers trust a vulnerability. In zero trust, all users are authenticated, authorized, and continuously validated before gaining or maintaining access to systems, applications, and data. + +In the traditional model, there’s one seemingly strong but ultimately brittle barrier; in the zero trust model, trust is never given, and validation is continuous. + +### So, why didn’t zero trust take off? + +Zero trust, when you think about it, is fairly intuitive, and its advantages are clear. Despite that, zero trust didn’t take off in 2010. + +When the zero trust model emerged, it had clear advantages, and many security experts agreed on its value. But practical realities meant that many organizations couldn’t adopt it. + +At the time, when many enterprises were still shifting software to the cloud and before remote work became truly normal, many organizations thought perimeter-based security worked well enough. Leaders could read a Forrester paper on zero trust, find it interesting, and agree in theory but not feel compelled to rebuild their entire security system. + +Security concerns already suffer from a “But it won’t happen to me” effect, and the prospect of making a huge investment for the sake of an abstract benefit (the ROI of _not_ getting a breach, maybe) was hard to calculate. + +Vendors didn’t make these calculations easier. When it debuted, zero trust was more an abstract idea than a practical methodology, and security vendors did little to clarify things. Most vendors were not ready for zero trust at all, and even those that claimed to be couldn’t integrate and interoperate well because the ecosystem wasn’t mature yet. + +[NIST](https://www.nist.gov/) (National Institute of Standards and Technologies), which published [Zero Trust Architecture in 2020](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf), agreed, writing, “During the technology survey, it became apparent that no one vendor offers a single solution that will provide zero trust.” They argued, too, that because there’s “no single solution” for zero trust, “It is impossible to have a single protocol or framework that enables an enterprise to move to a ZTA.” + +We’re in an awkward spot. Everyone agrees zero trust is good but few know how to implement it. Vendors have coalesced around zero trust messaging, but few can actually meet the promises on their landing pages. Many companies that claim to be zero trust aren’t, and many companies that haven’t thought much about zero trust have almost stumbled into it. + +## Zero trust for the “zero trust” buzzword + +In the decade after the “zero trust” concept was popularized, adoption proved so difficult that the term began to resemble a nearly meaningless buzzword. + +Until NIST defined the term better in their above-mentioned Zero Trust Architecture article in 2020, there was no clear definition. Without clarity, it was hard for any developer, security engineer, or business leader to verify a vendor's claim that their solution was truly zero-trust. (And that’s not even considering whether one solution could claim to offer zero trust at all). + +Given the hype and the lack of clarity, many vendors, marketers, and “thought leaders” pushed zero-trust products that were, at best, partial solutions. This push created a lot of cynicism amongst developers and security engineers. + +As Den Jones, CSO at Banyan Security, [writes](https://www.linkedin.com/pulse/little-reflection-zero-trust-hype-den-jones/?trk=pulse-article_more-articles_related-content-card), “the level of marketing BS,” including frameworks, papers, and more, became overwhelming: “My concern now is that there’s an overwhelming amount of information related to zero trust, so much so that people struggle to decipher it into something meaningful, something that actually solves their problems.” + +This isn’t the first time hype and vendor pitches outpaced reality, but it was particularly troublesome because zero trust, the concept, was too good to dismiss, and zero trust, the products, were too lacking to evaluate and adopt. + +The source of the problem is a terminology problem: Zero trust is more like a framework or methodology than a single solution, meaning almost every zero trust vendor is and was exaggerating. + +And because zero trust depended on the rise of cloud and SaaS products, it also resembled a parallel paradigm shift that depended on those other shifts and, at the same time, superseded any given product. + +The move to SaaS, for example, created a lot of incidental zero trust security just because so many resources and tools moved to the browser and behind login pages. People who’d never thought about zero trust effectively implemented zero trust (at least partially) by having employees log in to Jira, Slack, Gmail, AWS, etc., every day. + +Zero trust stumbled forward while the term lagged behind. A glance at Google Trends illustrates the narrative. + +![graph of Google Trends](./zero-trust-1.png) + +Google Trends shows that the search volume for zero trust increased way after the term originated but before the methodology really became practical. And now, search volume is flagging just as the full zero trust model becomes realistic. + +## How Wireguard makes zero trust achievable + +Wireguard, [started by Jason Donenfield in 2015](https://en.wikipedia.org/wiki/WireGuard), points to a future where zero trust is finally achievable and when the term can exceed its current buzzword nature. + +Wireguard, at its most basic, is a simple, fast, modern VPN that uses cutting-edge cryptography to make it more secure than IPsec (the current standard network protocol suite). As the [Wireguard site](https://www.wireguard.com/) says, “It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.” + +According to [research](https://cybernews.com/what-is-vpn/wireguard-protocol/), WireGuard is about 15% faster than OpenVPN in normal conditions and 56% faster when OpenVPN is using its TCP mode. Numerous VPN providers have adopted the Wireguard protocol, including NordVPN, Surfshark, and IPVanish. + +The company that best illustrates Wireguard’s potential, however, is Tailscale. Tailscale is a VPN service that provides mesh VPNs with remote access and a site-to-site network. If you’re frequently on Hacker News, you’ve probably seen their fantastic technical articles. + +![screenshot of search results for Tailscale on Hackernews](./zero-trust-2.png) + +In [one of those articles](https://tailscale.com/blog/why-not-why-not-wireguard/), Avery Pennarun, founder of Tailscale, writes, “[Wireguard] is increasingly widely accepted as the future of secure VPN connectivity.” He has three main reasons: + +- Wireguard is open source. +- Wireguard can run in a pure software VM and avoid hardware lock-in and bottlenecks. +- Wireguard supports a single cipher suite that is fast and secure but can work with the key exchange mechanisms you want to layer on top. + +Unlike the previous era of zero trust-adjacent vendors, the focus is shifting from an all-in-one zero trust solution to protocol-level technologies that enable a range of products that can, together, help companies pursue zero trust. + +With Wireguard, for example, vendors can build stateless VPNs that don’t require an open, less secure connection. The customers of those vendors can then build multi-hub networks that are much more secure. + +## Why it’s finally time for zero trust + +Wireguard is the leading edge cutting the way to zero trust, but a few other shifts are making the movement more necessary and practical. + +NIST, mentioned above, is removing ambiguity around zero trust and providing [clear guidance](https://www.nccoe.nist.gov/projects/implementing-zero-trust-architecture). As companies shop for vendors purporting to offer or support zero trust solutions, they can rely on this guidance to question vendors, and vendors can use the guidance to clarify their positions. + +Big institutions, such as the United States Federal government, are [pushing zero trust](https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/). In an executive order, for example, the White House wrote that the Federal government needed to “advance toward Zero Trust Architecture” and that it would “develop security principles governing Cloud Service Providers (CSPs) for incorporation into agency modernization efforts.” + +Vendors are also catching up. With Tailscale, for example, companies can [build a zero trust architecture over time](https://tailscale.com/blog/how-tailscale-works/) instead of lifting and shifting their entire security infrastructure. Curious companies can now pursue that curiosity bit by bit. + +Zero trust arose because of a few macro trends, as we covered above, but the key ones–cloud and SaaS–have only become more dominant and more undeniable. Security isn’t always the fastest-moving field, especially among enterprises, but as more companies see success, even more companies will follow. + +Finally, different organizations are starting to reclaim zero trust, translating it from a buzzword to an organizing principle. Zero trust is returning to its roots, again becoming an architecture that organizations build and assemble, not a single purchase. + +For example, in a post about [building software for a zero trust world](https://blog.palantir.com/building-software-for-a-zero-trust-world-61d440e5976e), Palantir writes that “Palantir is continuously looking for innovative ways to extend the Zero Trust paradigm, even if that requires radically re-thinking our infrastructure.” Zero trust isn’t a solution to be adopted but a paradigm to be pursued. + +## Incident by incident, zero trust will become inevitable + +Even still, the achievement of zero trust is likely to lag as organizations continue to rely on “good enough” security practices. Now that many of the zero trust pieces are in place, however, adoption will rise more and more steeply as more and more incidents demonstrate what zero trust could have prevented. + +For example, code search provider Sourcegraph recently [leaked tokens with long-lasting high-permission access](https://goauthentik.io/blog/2023-08-11-sourcegraph-security-incident). Attackers relied on the implicit trust these tokens granted, but a zero trust model wouldn’t have allowed for implicit trust at all. + +In another example, a breach at Okta (not [that one](https://goauthentik.io/blog/2023-01-24-saas-should-not-be-the-default); [this one](https://goauthentik.io/blog/2023-10-23-another-okta-breach)) proved the limits of a more ramshackle zero trust approach. The breach was embarrassing for Okta (primarily because several clients, including BeyondTrust and Cloudflare, noticed it first and alerted Okta), but Okta did manage to prevent a worse breach. As we wrote, “one layer of prevention succeeded when the hacker attempted to access the main internal Okta dashboard, but because Okta still views dashboard access as a new sign-in, it prompted for MFA, thus thwarting the log-in attempt.” + +The two types of breaches above will drive further interest in zero trust. On the one hand, we see companies fail because they are too trusting; on the other hand, we see other companies fail in some ways but prevent further damage thanks to a few solid elements in their security postures. The potential becomes clear – if companies embrace zero trust, they can do even better. + +As always, we look forward to hearing your thoughts! Send us an email at hello@goauthentik, or join us on on [Github](https://github.com/goauthentik/authentik) or [Discord](https://discord.com/invite/jg33eMhnj6). diff --git a/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-1.png b/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-1.png new file mode 100644 index 0000000000000000000000000000000000000000..54f38f2d52b9063a54aa7758fd11e39bad5f967b GIT binary patch literal 186958 zcma%j3p~^9|96BAl5`*@DwRa3u;r|~kZRlxC4?k2%$yHn=vGuhQBHFzOmaTWc~i)Nt~uY0=y@W`EKLKlH=JKV2Wcx~AtxbOQX&z9trgIl&7-ePe1qM1K= zHg#L#F>{{<5@A#%B@HflF1Rx|`k-qp{Q64~-hF&mcqb)a=%~uPG~c`PFyHn+OH23c z%n0@TLv_Aaz(55gd$YqeIW2AY%S@e?AI2%LMt<;W>J)1ew+SH*9hlejaZ9aX*|G-t zH`ZRBtgld#OdloRTW-$Orpz)Rvm`TYqJ6s?$T+^qUI3NmHM{uCAs5woCqWr3RGU_^ z67@C$;^t&ZLEgi{ECchQ<}tuW zgckw35|tH4~Xn*bbWBZYZ|M4X-3d&m}-Jo*-HxHqXu?i?= z$ynymPI2$FDflU+XIh50G{dkv)C_A%b<>GW0z`1$w$>d_NxJ1Dp950$NjlaAo*_Tgi(Vie!`CpT)LM4bId^O&E$RA63A07i!%ysSS)@`RYk0W-mr5fGYy9IU$CdDI2O>FE(wN zFr7}+{;vlrb3$+#T8AE_kLWoO{p&9ul2g}bDX1UrBeK2THK%Z!XqekA9hmV}*O}wR zuv?mc1vMJEqe^efT2a56u7%@$-PE2PBdJec3X!0m{A}cv7cqH`*sttf>ruP=Vmz{+ zt(OOPR&R;x#lXIu#+r5~Vp@72-z0+?F{bDy3>Nny0$N}~DE|O?S`51~BSZ1(_qI`c z52@o5PBJL6GSgVxyK757+qIId7wnimM zS=6=A)CSza8Nl7Zz4(H$BMjJxqNANyQ5xj4|JUpPXF=+GxJ(@$%^Qc?bHnB*`!6Db z5=%X5jv>BQepW5@{ZJjUAxu|ov0V^Hh8$ygVSHTdLZ#tGdz z{)z09R=vRneQqTM`u7JMXC^D(W3b>=uhQHv*zsvn?@pwBJHd0PX^wmJ2^4NRbi4we zz9e~*RNIX?N0RHr7?_MJzbYu~@E5(PaLxHd-pbrw>}VG|MwV%cAGMt54u|&{UaRrF z_Rc#x9)4jpWqf*JAb?!HsOAtb@^#-Zq_qF#{}&GZ4J_+}T+w@|K)(MCPmav;AI-S* z-zanBp$o&LsyUmlIH_m8`K*Cu#9Mf>sg~KU@n}RyU2f9&jk`os<+Aga+Fok$tb8Sr zbIcwW>62ZmD->*=y6g`cqLF)tA+vLP9m4W)B`aP`6>P0uHyCOnTr`@P=75&RrphvH z6+d8BNx1`<0aW8W8?#bzjMeH&I-i8-uVh}e!;Kz4nLzq8zV7Z*#5BmD&@@QB=wmrE z2qm*&IY3dKMfPih_$a+)Z*489Urn?TW+oWWyLxT1e&btINbt45x~pSOf!a-&=^_UaoX9uH`&Mf`vdAVh)|Dz>fVtg3Pa=WcDo+M7pLkh!=Ch47a83RyzbhzW0AVz~}vc z!Kxp_RPUr46N%i%3*5)l`h!~sQe<|FciLIu-wJ}TMd_aSEQf2g1?fFaup%J%z)`Z$ zL#~Vk+PzH$T)Mth3lS3xqFC*B|Ua@o~Y7mmJ^#O8> z7gLhDud)w-S3IjC4!}&cby3_z4qOU+`qb)v7*T<6EI6FTThsxDj)Q^?39kdnN3-BV z2oH_Q6(Q{$8ce&Hb64KpC=GR1o5p5~b5J(#39oHHoLGx*FaHNT{(g;Vwji75A482V zcC5bEZUx)Xt~0lcJMDU7(+;w?;C-DwYNrazY3~!jWos_&erV7MatP6WjreHYR`+?% zso0jh4NifRyF2S83mq)e+j|xb*n5oBjW%@R^fi0Rz0!S$RTedj(0hU0T>d>(*9DFR z^t~4+14)7mByL|rjhs}XwrmzoXf02DqLX;#H1gklk3hope358!e^~;FnDcL zN5>~{YD|<+Pk%4L{}7iq8iwB6RVis^fJDV*{o#_0=qG=;=26exPif-c69Qj_EXR^H z^AP@W@K+OR0~l}#O1=kNaIY36)8X^E4UF|Q>N!)-S0c;c=7San{=Wf;Q0b35{3I6P zlA?f6K4#!>$BTK56MwZw*#IoZTZ&5>r4_^D(Z0jDQLzb-2L!JWY{vk>hMz8beT_Qi zz}y$#(WaW=WMG{zHQE`uT_Av?mz?qH(?-FvkhU!KO5D}sxd{Iq^ZP932R1aSo&4@< zumaDf1^za@zr*u4((^s%{CpbWqG9_SjMw~6rt+P*^k2KZhb5pFTfu|D7nyAqU6w4` z%Za}+2_GEpIw5paZg7BUhuY9t}K>kGEs(uk8(Z&sv*+_m{a+V6GC&&tiKaLGsiq z8?KJD%2zG4*&yO!0c{F|9iH$R(o-?&O>hJ zeY#3Yc|8*I3aXPm1`LTqco(kn94SkcwHMyu{ zZ_T}EWPhEzT97zzNRa&4LjrN=+VjpP$zkv#tO|^5t6WJOObDF1% z81d#-R~VJJY@>D6p~l$4sJN+`VE{%L+F;zyoWfu zuQt+HsM%QOrM&N;3)<{Ry_$Y3`+9Exx)WchRbb)(R!Nm^7+GKt2ly9g&EG_Q+b1|T zczYroPDdW9zloJC z74M8laO$kR$4kV-ILD?_YdkwBxNQm)FrXZ$@Y%68S8~C0AWfyNfdgN4VjT_2Tp_HQ z=B6P&xH?nA)f*vCXTo%w&(4Jitm_4RCLNP=04>NB(9;7&xXcnCtI9)V7ltJZ(RTd^ z7poQ@{?xL#nUca#WIjU#?Q5cGIj1x<0b(dbQ{J&F#*z6hjrB!nvU|>2Qw?~CQ+xaj zmW;8OhYXE?=A0Ynsvy|U5acHeLyfNLZ5^XQDPjNw)OS#f;-A_y!%1e0aZ*RQgLm1q z>g{x}3##9{E3D5uv24NLLa+Ji`Sai-G8=m0i!VX<{KI9GBnvrKo7~%l2zJ5Z!BI{) zyjH7R0ZdEWsKZTPXq0OM4;I4*wLBa^Npem-fC4k^`ler0o(m>N(fm#=`0`E2&ZAA)3BH7To-1&?XI ztl7Kc>t_MknZ_)W0=^B)Eou}X%9YXxLvESVVa~R_pmb$!Pt)$21iSi?I{sy4E)(-0 zVo^@Kz_Y)oN51XPS7DhB;-No;WSJ)>U3CJ6FS|YGWyHEv&lgwT$hTa_ruDgG$ad1w z9XlQ`R&$`{NK0ku8}Ea>Q+LHYYaJ<;-5S<-{_NRfd8A#RlU26<7|pIzGJjP)!ol7B zPp`oyJr6K zUhC2h3(1xqWe!7&MbaXCyNO4I^m<5Wu^=g#8wa@;n-x@Ct!(3K>{qv?mhE3u%}{v4 zFy5)<81fLBVDykA(~fz)5}BtT8nu=2DiaFYT!lPzT}@fAlJ44K|K5W+gm%2o^dO8AZjEzyzq30{A6G`u9e<( zH@PWnbd!@AcmDiMu%dU2IYqKe?_MD;&N6m>gz{1+`oTCU|S9c6Lu-{yt0Oy zt*x=wq0m+g6g^QvvI+YU2!ffbn)0u%R!CdMo8%q?f%746*z~uumoCW=6@!EWzTjpB z;)aJJubie?WE(4DLu|&s-m{4bFZJ(;1HJRR1D z^Kx{|Q?$0&>vsp~$bPPUI*YRUN;9%|!Gp`>2QxAP;!_u^7T%nCqtqFpM`~-hj`U51 zX@S8fKoD2utq0WZmpHVE25?tMdHVr3>+gRV*v=#7qQgTWq zjQkk?KFhbrHsW+^Bu$q^@aeipN?}N+yi71R%pv4SSGA~Z8EZcqGd^K0nj^I0rPhm? zt1`5s&GMnutY^ulIF_Z&t^odDw7n7Zl@-1@xQRLmRug zil0SAwSD}kH&C8?_cGwj{d-OOJ}rAzyPDJs3&)so$}gR$;1pN7IYupyRE`r@Qi&`= zlzU-WCs&TSx*?x;Z7l!fvZ~K17h_3-9P4m{^)J(eBHE`p*HOzAmDJ{ z|9ah`NprqmAtMD}<7grpcj8CL*om1u@vA_q{8xViI&lYc)Wrwe=tp89TdWzefjZ zQiDVLG9G3A%pd1^qYJc|-9TXbF*duE_+~1F*eSlge+$=*Bh={Bf0y;ixg z82R!jJjK!X&s&;r978X_%VFt{ppDTmrMT=CCR(nwC(*Ztg`Gb;(fU~X9QTia$d6v!TE{E} z#iFznYevcg(H}lR{fBIM?-T4nmF`+o9cjh3;>zK64Qa3vfrNg*|6|0A%FEv8l)9rH zYn?s0H7xB}G!*OG!TfSO&->BO{fBsT@A5fOgVQKHiaY`soA2M&eYGL_y$TItes&(^ z3Y9u`Wb6_WLMPE4(|(ML6i0(^Tvua#$=mi0WoHY-)|HUjy)`$jdN$TGAaaUDr53cJ z{k4uxeJh%9lGybcXibIQc#Iex+OwiL-X{XZ_uUsoV=Nj=-XbR)h;M=#hh-@=P{5k6 zG44eIv@BnR>>6n@s|qiS<5pY;UX1lkGY@PH?C8}X2jFmawR&zgD_87^LF9nkJ=B&q zz{Kdm2~qmxr;$Sjlw#8iXsYD+-M)Xumg!J(%tOhvdfm@MWvofK~$$SqAV4Y2RbPE z;{E%J163YdVU!;+(Jp9q>eQQ<))^I-_E^Wv@i^%8Ak@~9GbPTUW!jrAeNIk-ELl4q zU#?bC7^`Y$H(*k2Vr&*s35*Sgh2C40PY+n2^kF$ugH_o&Hc`RRCGTshx zNyiq+*tKlNW%`(&a2T2yEmg3wgS2!NF3%f^C3HCY>h~}!oNtC0JG6}>E0JLP+8~*Q z(uy|7QVrhQd4TMbngSjaW45^)JLe)MP>P*?Snt3wzTe=9shOtUCYuGM4+YtIE8KIb z;pRSZx(IQA>k-IPkA-*PE)A=RAC!#m?lvAMhwYP*{SiV_2e7UKcjM24Bqd|t+u7FG=MSeD_}KoM|V8`!LhRKZ?Hc5b`4kYx8Hv}KzfqIpXmHt z_Ooc=WJ9b~X&Ed9KFH@FSQep9lFEf!er&MGgbqEK)tYZwD=0uz?GW%hjne481MBe} zcXY9Rfg3%sOwstDz!Z!7A39}U7a9Y4W6T~;Clr}M?9EmV)>>7Qs!&;TLktpXn?7D2My5i<|1 zcG7Jghq{?m#z0#dy6CetKhIl3&_hRiCW`u)eks!htv)NxrpefwmfpSJQ|FWJo$>k$ zFY?URU^l^;7j|DUUy%Lhribrn#OSVB z*?@gaQh(gkr?D{kg#q0rso!cVGz$&LwZt2oM#Z92NgEz}d4>e{^osfK@O&@p zWD%~{+%fBAy#S?FZTq>UGBzPxpQOaZ=cBLf#3fhXrLs+kmULLPV>y6dZbr#wKftSa zUzPv*!+eP}$CpJ6K7M1XR%2{Txr4`2#b zxxT%bCw-qTi1{3ftTA-kR#AB~`^%ge+Se4&b{sdcbv^m?Ksa1EN-?SnWOeFkd`rKSJYbo117Stz8Fk+y3-PQs5vDnw4iJcq9J( z=sBg68DU$q5I=Tg%g4Gqg=Jma1i~FYQV*WY&|e{dLabCT$X&a6y=Z-kuYPiY-0|4m zWEWDo^Vr#RuY=3(o(Jn-3X%If>Kc%jzd$mfalMLh&`Y29n#bT2R$A_xHjh>HQELZK zGK={VZH#*^#0w#96pR7Gc%r?kADN|aZ7(`}J$&CP8r=>_`D@0`D*jj*F{NrXp&Mc{ zP>%P(b>E7=jgo1?7%W641<6D~hZ3t2jc0{i6T}%WK4XkmyvizGmxF!wYT>hU^)1m& zn)v;8rn1{gAk+EQ6yycDAel&L99u6RKY5?n??mBsomtKa>NNBu7{ZA0%kLFXG9H?q zSQt6j=s7fXa$jjs@v+7lQMQ^oPrdOK+dDFefg(gonA#F?nj(A8{Z9X`oiE!Q^sf9k z9igX|`I+Ald!+06uBc~d<@w-eSETy1rNtE^Ymp}Gc%zo1*WRC>9&xwbeH5l{a)z=y zC3|lm^PoH7+>o6!k7msK(G+-cUT9hvVn2Y)l4J)F@Z2&uML&6dP+*X`H%;)Zz6kjA zJE?$|*#~glPmx*hgr5fC_hKnp8(&&;Y^#l`iB3%N1zdw8HX!Kp>J(g$8wH5U!!D#k z6_>gnsbtF?iGBO_o!2;j6d-l}<8cpMG6K()b-k)7q_idD>Kpqk!hcW*%BO7kYo*Rr zgD;zgZZ6pD$*IX114O?bskLF`@bu3l87g3Q%Je)K0~?IEE>Ky{UHAeh(b6~fdMcH! z@cyW=8n%o%YX_{4WIcQK%ATKjSoCN{Of>X!S4-lvXS>=a?iqZC7(M-;iz@CqT-SQf z704pVHrr5jDRm2)TF2$XPjs-|w$p!1aP;~qmb3Q2p_57ZaGRSvL&B|0x7xQg>mfrg zpFIPx_Ul_f_nDfSK700K+$}!-a}}g}jp0IiI?__sPJGLjJ6Tm50dwl8xM6G4WYI2A zUm)5>yU>h_-(Pa`wj9d`yprhATwy`#ELqcpS(K)cU>7hQH6gmaGQw!G6tP4D(_#7a zZG8dpS>a7q< zm?;`O=;UF0eLgPxF|&ezF^u-;)>@tT(%HS<_uxk_fYlr*Kuf-ZZd+Ts zz)1heN`<X%k-|dM5=X`K8 zlulHMDx5n9|16p|TyzfZRX=yNPi_znPgW>!ibY<(9Dlk1%7BZQ#g8D{p_!nUZW{fV zj%kC&9^G);91WCAHBhf4HAySgxEh911zu$bt8UAQnmY|c_Drx6?tz7_LL?oDBVboQ z#Vc_b^+G9dFuE6G*se*zNxi3CK`*Jys5t=UsjIV9%(0S)UwYSTEFgICHve+=myM-& zuMNaq{Ewhq4XJAP*UO(Od~MF#eC8z9<%I-F9!i>-HCqA0&cD$8X-ldF86ch?E_%ck6r zbH}I7j%YPgKeUOej!4}xWxTh8WJ5V#x4Z}KxVP&!cStrZCz=*H=nfqJeO=94`Ig&rDU9fIe}(=Ov$q84$sg)ZWKdQc zBY63iGagVHc#1B7cfYKbiy@}JRtQK{j6qhNK4p~$C+Ffur*2`(X^2NLl|2x$gDK=a zE7dZlt}Ql)Ffq9>R}RY=DpMbTJpNUqkxjE&$m6Y9O)%em{K}}7)bkIT3o2bAT|WLHv5P%F$U`Qmf{G^3Hg5Z8M7P(t?5zbQKvE#pFl^Y zHhS29H7UN)3KW&SBk(igpI_HOq&$%NqWzt_?mXD*?x|Kt9D9F|;wf8@9(ReG0`AXz z%$RssxHTyTs{URybp~XJCY$998j-EBhB!rRrt6vj?&7}{tHH7-w1Tfu$)Rp>A2jd( z5s(o&Z{^#^ZKxdiwE&?Se9LbK=-cW4S|R^5R7|_B}>D3&WrEYMb?K7Cw|Z@42cd+JBqrK);yP`c9*ywsA*{} znt&YPoW>cRfmbo$pZ}Ji{Q~HoaCI{sR$Tsr=wC-nKLe;|Pic45QH=UevA+f5H}tHh^$ntzM) zJBk_GvfX1C>B5h8(6fT(qP@r6qMKnkQ1x7?)R7z@tcPY0x&z)?m7|7*`o=7=`GwzD z6`|H2*8(>jo!7s23-L`-J|iMK#)W<8S4z5a8sJU5NSRBf|M+`9jlQk(gVZOq+lYS^ zm%a{!7n#y@=p(<))6}Dnynn6Z;a8z)S(_aaKk3YCt^^(TDa%9gKCpJvj9@;Ctv@s1 z71@kH`#7jeM#KuiiKHXErz=&Ju>iL=>fUiH0l{WvpwKKqDiqhQ#A#6$rQ64!_Mht%A* zYMx1Kb(NUH8`3r3tgSjyJLjUssWz_j_Sv_n?h2G*YxS5?m|XX{@jhY0agO0bM7yS= z7s&0q3=qENLY!E+9|fJG1oWPZqx6hZ5kx+XG@!T#aURzgW{cMvUM^>z4JpgR!$HwSE;w+-lSmJE|A{GeQE>kZqMNX) zTT$t{s4-opCuhtBOr{d&Mqk2fplnP7q5246i}3!bqzg$#0@TJHaxYd$Hdj9ddPB#y z=FPFZ@Xse61r|taf-fQTh`Z+l&67>5WDO{tzlCOPs8qQC^44aMuaGxIoDS=mbTB9r z18TXwsDeWMytc8s#6gyi`dbCvb-l{|a(v@wlZViuT_n8e%qTWj$S({USrcJToX^#l zPfzM$TjdP=E!5uJh3BOw4emznhX039%T*LFw(Z~LZFMN<;$FMKN^;>*nf70hkk9Xp z(9<#M(f$n>?x%kk!V>Bm%C2 zK61A3gD+#xoq6S$T&f!1TtXXM&az<8KK9C-nshM+LqFFAwLHnyzrB;S$_Y=6Ql~(! zJ|TMm2HQ1m&tTrt*CQajj|p3EHE{JZWqu&q;VP$()5P~P5dddrT_cjF!h`zKHR1Z% zSJ54|^nCw3mbb=9ZRr=|*uty!+ez6~^&ND6bc=kizX6G~un3$MRKPqD9rxi^_{(H4 zBW#-UD%;=8^7ez3i3v3d8f|{niqwBDb=?#I4D!T&@_hw&tdBo zQGxvQ+p(r(yBlRZQEX92Df=xW#)NkMI)!#qDqUiP?R0y&<$3-M|B7)NOd}T<(6Ru{{h>3-qf4gyT;}JS=EAZLnx18_K~^DZ0Qmj^#Vm!{Ubc{o z9B;DDaVyPzC44+z-v&I_M#Nb3Ir@}Q1xv~0B^y8`I+AcfP9V0dzZWaz0jC;xetUjv ze_#mg0ThmElxx7i?2S&K9W4-Q5#U+ALqw<8TuiS{L3$o>g9(H+lGb?KjmR<@P3!XT^zu4 zt8KtokR9Ieuy#8m3UK%dJL0hqPF4bgR(F8DNedZpFzwkR zzewFhUUtuc;}$ArY0y!(yeCS(@SDD!XDC>JJu3mwpdSLru4UIUegFImrLM+4bEd-5 zdzoKT8sPUXGSsP@O9u|YkBPa4g-T&VkzL>{_n(ZRX9qp_S?D|v%|BQ}qNNVv`WLA_ zmdzfOT8)#!LA^Wn{34XDyx(cjL7tz3?mEzAE(Gl?d@%nh|G|8=#nz$9>oPf%Xa0=e z2;9r>3NA(b*UWKpgWRV5^A`aS2)lXRN$b{=qO-p)7RZf8;N^lw4sGN5rpA4N8lr9T zx;i&xj@d`e8GvvCnYbtlt3%b1xjw@ZRCD@zPWCSLiFWwDMb&)QQ3tt>68);Vt6r{y zV*Z_L$O|H1xPp}gTJ0P-iWzm-*1#sF=b3dTquZ6(lTVm5j-SQZ(JDP~FUqA>w8Us2 z!|N6)YUrss5RBq(f+oKzxMz&NkN4r7=YLN+N5)`*>|nFUk$3?QMH0@GN?~#7SOsh_ z&{nM5m#LT~^cxx(Y7nFdK;qDl$%r866g^z7moIIQF4|DCVc8FD4*QpfYSH-0C`W&7 z8;s8zy#dgZ`A6FUNi|Z8zSB_eMj?B!otwQ+Z$k{$j8_S5m0W3dmrd?8=M0*~v+em` z9{0YJTc|L)QubX=!Nz!4p={Nt)$O2Lo?B-{?1)_tj#s`8jt4`{gekytrLHTL_wjR) zZ*4Q7N*uk1&`gF%P^v53a>45bPDJHjrB#l|Kq!-YQyL2pK#T-A;CXp>@-KxdNJI1oQR+8v!|Lzz(Pw=Su2kZ z{2vsTBTv1}KH>e}HJ5i$FfIAMmRovH{l>xHqH~sixjSk9JebQI*gtOr@L|Z5*Z!f$ zn?rof?x#PGSqAMEcQ?8bzmYgjAs?T{!59<-Z1Wf?_aquqp&zn)qc1%UI+Ow@r#Cp2 zuIa_DrZmyu6osV#SjN9W^yL;ZaO z8A2{E(tamP4_aryDdfN(B%ECc46<2!`t0|xJ(dv|?~*}k`7IgXTr#%pq>s8}=(lU7 zGd1M~f2g|9V}LZ1paXSsvfq2)MMcw2alV8n7R0U{7WzF;uJE9PJ9^isaYaJ+@qKT( z>@*L?!tuO_j+z(Kr0c0I#g5LmPqi#FPM@%KQMRyHT8+vlwHnYlU>D4Z64)@#*i~JT zKi^LxM6tL6)^CaTGR67kAdW4fIM`RD1Gw$jm8=1(;+ltfU})840(!=UnLAoe=oHe14uNTrs4`u_N{lznb#W3 z#l64?#}m8)^ZIlY`yggIww7~>MNe;UMV$&3TCU2Sx%j4<@Ec1i3zd5LU46J|0=*aI zfdO+2tpC<1eZ5Uc2$ExCeg3q?!p=3MnCKK0%hQz9P56tG;~Su+;u=^-qw&pPfhn z*`Nh8>V0#NTXTKM4P3W8*hihN+B^5cDX=mO@U}c`XJ2XEYEXqcX6U2vhn=yizkvA9 zy3qMAe9HhS$mgvgz6U<3N5Zt_9AEAC?A(2zD-~=VX1KrW5E}dix{+wS-B0b-b}zCI z)!k~ABl?H2jn+hYl~f71V+9E)1L&4OG`ktNc^Pk1Q^$ zRxMPUD%F0 z{7zBybc&2d=dD(oBkK0>)RTzF)vG&MZWS=&75V{m%^_!^VU1zx9n;F@pmcCM>V2C-(swMv|<1Jic1FP2#Rs|BI<$I;>|#b^S^=hnT$Xmr7k$2Hh(s&GZVo;#Ebk= zJM^PGnnnBPe`cxe(rH+Yp)tAIh8_7BLHRit^OcX+XAJpw{eF5+A>1NmCIYXW|cVI({`A(adm#FX*_EV19p zd{1btaOW}sUu5^Rw}D3%(9<*SIkucsMhU<_Kii9lQ9DeirGm_J%r16x*Six_Ed{39SyHi6dkDtKc_a6Y6 z&XfAfFksFf=wcd-{$_g|6X`O|c4u7~{b?&%^cR zNcBofM*~e}MFYYHNz`4*Yt&R;0SikNX4WC4zMlRMt@n$v92y~CfmC@dF#U68uwf@l zSGF13%XYDF_D}~}M%VRn$Ae@x1ASqRQ`46tizY9-(Oiwx6)TRUC8#N<`IRDG?yVR% zT#T9^mG*vcfk_*sND>ALP{pepy;9#oUiKK^QY+{Pvi@+)CUokszB{@R?I)y#Mcc!) ze&dbPeBP-K+)T=3>FL7j@k(7o`?m_aeddm>`dDc&8&1>gl8W*-BArTaJ9UrSxPBaW?C~$vIQzevsiz7I zGCQ-hv3DpuZb-1lI>w}s)rw2x+>>`rHh2Dtdk8*VDpgPdlOwJD@Ld09HiMlQz~;3! zj=gcoL22udaOy!^MT|9-h86ANhHf_Ud7D)EZR;zvme*!?$4q3!8OG)n)?5`3z!VKc zL5A<+YG+H^?tOZC;NZ^vPZt+Gs^@DM6N&cGFWMCGw>1b#VUJ0+A@!1egC0wBh!9HM z2w=hfy*PV-W&W?j_S;bd$`F=3nzt5q@99GK=}4#7Hd*#2)1nw90ZOSsjv0PhX3u&p zrXmjcCVm@J+;|f-wlDp;Zlq}I%$GceO)e|JcI}bvb9m*@&9sn>fM>753MvlKpM`MM zZ6A)Dw!*geS#1i3b)Ki%MI5^K{xAL}noYpu0gKXmPlD#X(v_(7+&M&oLtFglKgHP$ z;MTPUl`eZWt0_kUK8)KR=&6$3aGU0K zlNb$nvO|X+B&=u(CsfR}zb*(IMd@o|PFwwZs_udZ0v=1_q3)mQWTx`egAxvx_Le+I zOPc(+&uBlDb%}pD)tB7*c#;B~o&3;^M~Xr3gIJw@IAYzy(0>mu(n?3MV<#O8*!Dkn zzRO0Zvf~4;AsEhFQ}!G>li{Mb>T~=Bhhr0G8glyu0ad0Tt>I##6||Zabl$q@VA_TwQaUyk@L{2XcJpGq}#pMAQeq zdL{6n+b-*bd?szrb{lkv23(*5M{JlVOlJT8+ zHhN*kSN>-HTlV|pKc&0uoyC>2*H2dt9!)JnJbRGGl z7ohmPWXSr`q@&dVpBu$}30tHBXU|oCTWXsmyA-_w-u7x!b2EC?y!&?BJIb*Cc+}F+ zLa;e*le^Gn?Kk8wGZ&DiY9m1}@!8zi2o9jXj%c?WQOnzGl-?)?+Mb4*I#tx8qM|y| z^x@e)-CO|yfp)0zZZjyCa(ZZ^+S^9 zZ~_O~R;t*0KN*FvO}*gDgRCLH^u+^kY81(|Etf-AG3IQx;lD)&T)dRP-!hHlHq}cg33uB@ZoTZ7I%v=q+Ya9M#Fh9NIbkeHu~!pknA>8Dz4}6^ zt+*E?pU*_h`nqSX4C4hx!O)O}v-uk3J81i%b6R;&Q0)suZ6yu*AKWuQ^DoB?&N;b3 z24}EOscX*ZonKC1o=Y*KR}AVvgt!yC7`!TCG2;yJZ=rRMcaZMKY3Ca$Om(YbL-DzAZ4 zO+aF_7180Rf5_)$$)(IcUAG>1;L}$j#rXb?lcx~@k>5Tje*5d& z6k-GOjZ59Euj33YfPH&a@I^H}dH!^}*qPh+`;17Q z8=q{yJxUrtF$yY^QQmri9aGJcUhT8HSjA$pdiweu*Y+-iY;q>c(z*E>OD!^GcYTGB z^+mPwYD)Gtj6Z9&kipzddudK$ibs>U*ZKW)l^f^{ruJr8F2$Dn#kRF*W2Ok`@8A3? zyxA30G}-G?#+k20d-l%clk{zOc8yO9ZUJtwP*yzmmYa@R9q3Q^w_A_y%Y*XHSEfyR zgLVhB>qPuWLPVfmdz80E@JZX1>9I<7igUl7{+XU7DIbm+NHs*#H7< z?fGI=bGJdyNhZ(VGJUFUHFcvPo82e=>HB2vm^jP6eo8sj)OYC-QSeNa4tB`bDxeWG ze73fr@YBXM{PMN3^c$`l4coNtIBGGjPb2Rq1p_GnbkVl*#*1$s1QlN%@*C`y%)#wK zK9f!Jzw1kFmJS)*-f=3Hgvj}$=;>eu;S|shd|$KhX`?~LSW)L&Y{?58-=F*9eEKSP zcChPrc4@D-8r`F%`o(Ln$7#dJ3uBRrU=CeyPsKtnhON5G8Isyjz>9U;CQYoQS6p{Sq>kFw7CM`w)fj@jGo}?u3o{`rTIT6$xYd7a zHQVVzylQfTKg#ug@GT!bJAyw$twqEI(Oo$fG&?gMR0JY^a%mgbARz9FVoUHT&zX$q zr-i59FlMLq-u+n^a$^}a4x-+_Y+|jC`py-tIhN-xT)5xU#88+@zEb#CNoQf-z|5(K zjQrV3Ja=x10-ORzQ0jZsfJ1_~M>Xzx@~ZVGk0CuLQ-+or(ZVSTX)5mBAGZnzF)cyq5^2ZmNY@l}-d-C*ReQ0-$hpDFTXNB>&@0EF&OCw~?wF$lMA z&RftPrYBoO6a?}uldz99ChAT^Sf4vCtr5sjqrs|&s^gYkmz|glZIfSmQ~OC0FP1?v z*0r&&wc6(IY$jsnl*nKy;=h%q_>y6I3ODR-n1(PUCe%)vHO2%lXAW3QsfAe(vq*gw zMG=K1sO4^b!p@=O^WVDlrBhR%+}_va16^b%bx5(5^$o`)fqEbC|Zm)QekTMn6Y-5HgdTR?HKWRcs0pV5Y?vGd&A-_7zJQ`jenMU`*#zVvP_8JW~g*ANKajCOgmwgjpvb?)m1C3 zWKve7Rt~qur!{8!V_~E?{!IG5z)t##CbJlJ+ak7CMiJfg>bQYs3UD8s{Iz~$o-QXm z3JRaGTaeDa433hIBsQ(af7|E@x-P4a)=MQmQBCVm9q$v2wsh(3l)Y9>?tPML8;iWK z11>StIXACsfs)CE!Wkl{_7Sk86LEyu-K5v-~y4w zDA=oV_C`o_IMwUTjEJi#&`FhzQF+(cXM~lvze&B~W?JiSbJZsm_-|UC)GNkMt=+CA zTP<=QnT#>^Q#-F6A)Nzm4^Q)h-!+mOEwea}Zff?TAo-dfRjG6}rd^s#Q|(zf-st)c zsD6d3bk&Debea}Cm~Z|z#cJ5KT(R${xps|(FZ<>|e&EKFXS{4#C&$+dYjdT8-1ZX# z<<))ye$KfSAPdl1w@SWCSA~t$Ur<)6X0+w};rl1j{lF8IFSSn_ zPaOkdNU2z*KA=ZT*jqYvVB@>a(ib67$YV@g4ZEg0u~oeC0UgS%0Qtskdi?!CtWxL+$v36jnsItaH`( zAL}UDDTAc;{WdzwkU^wC4SFmJ1(^&^ZF(~^y4updE1}d|S937HjkqCIDTj-JTFoJt zsyKUMUti;->VCBEMa?S3)qE&mdUFgMGa}|@^(Eh;oic=D>d%M`)f-?n6$9C;$^VO~ z?*L1B|G&RBu9dfJskbb>S>`oUOH*@V!h@I3j5^~n449>_ZksN|AYnZ)w!!rCJ2q*!+qF1RSs>IXU3YrTh#uK9>-JL^{#O}cB&*-h zWFwL!<_GTXe$f4A9`>&?X!2R~hWhlfbVIQIraLBrynRC0_NvljIc)Ndr28@N<8cyu z-T(Sz`~C7VvV8Med4Q7se|7k;a?^=`9(Q5i^k}_c1FAttiCN}yi>l`Ck&=LtYXnqf z)m2-jrV2iti!_&)5x=K;A%yoUauC*3#Xx9!Sg5?PVd1k}_&TIkUHhc^jUyi6WJc2M z%z3>zf%xLq^-7}h*BabrNwFQ`icTZ*krLM2P5GYM)>9h2K=iXv#eV0Bd7rF?4{XbguGxlBK;C}j#Kl=$b>4H zD}rbY^{z_+IpK_HUX<&Ed0FcGK%<`N$lOnUUzs2}1I}-#)7?#BMuYM^Dfwsl^kGNtRh z%e6+ZB`p{jM|Y3SBYzax<0|Qdp%Bx`vaZ)C03emIivmk%n^@y1Ah2`kjqkf<#KEEP z?92M98eHa~JX&8AEnEb;|96b*w|of~)n&hCT=+uG?S?idg+vap>Q<1*jWU ztt>I9jq~er!*z9u{?Fw2k+PYu|3?SHS%?8!kD}cyQ`|P1Zzl!={eCPs6)%k``9%hC z-L~o06=y+FJg&0dKwaSKm+SK|Siz04lur2lq|qhEgZuWq?6EZscD_S%WF7mn^_l~L zwu!q=CQPmHHV9=c7G(4t+*;@#U(cHS2?Zb!<=Naiv~S@4ukd z>rGse5KGe2oPe718#YJU^Z<`U>*&#=6HJh_ZWmcPOObSR4AR(6rU^?N$vo%zpSZL2 zAu0a?dP_hViM1XLId{GGe~p`&K1)FmAP>7jRmte0bCwLcGvphO`VE_?tG1tfB)Zsz zwjD+Gl_~7=&@$J|V_Q;yC$@2wO_Hz&coq0Y{@{S)Pe84(+~MX=o`Gf=A;NqKQ? z>KWgFGxM;EC)DW(zG3M~9l#!5eHN9wh#PCH09!Kr3vZkFVgmNMgM`Gn&X$*!%q#N$GgTS zZaNfh=4-Z3h4JpB+4OjFqD0>Hu>Ss2gUH3!96Q76<+kg-*-@dUDfo-nAh#U5biDzM z*nQR!U739a*L=#2eVH}Oar0KT8&GnBA)s5N+0FP-`TCq$Xp&8j1qmwA_ch5rnqr>B zNXx>Z77ewlTMCk`%ySL|1uU0-KS-II5x%-*2&hR~ceCkfWtzhq{Zdl|lHa&*%eBKl zp}59BTG_#UEN$Fkif0i*g`QIW0(zNSL+&T?Jy2$PF^72}z z#bcM+G?KKtEJQ)8t*Euufe7RbusK~+MMT<8$^6&dd5lg$e8K|!xW+N}V&c{ZjUJYiI z$*3qqK)+VvjKS{YHQ=;A`M~0u{Ym~;<mB5F?RhQKA*mX`-&bvfP zs6{24W6`+-2MIN`XCIBfPc{i~J}&7aG%38PFav7M*E7fR*uO0naTonJaa&d3SCMQ2 zl03V-4$s4Bp3#p&u%BxR{7@A5h(0{|f{bS{mib#CQTXnQf{Vwku6){3G?E$JA>{Km z)S)l>0XZB3(xNiy(E7<8gKpiT`ABdvDpt;wK4zZvCZ z8}r?O3R9&xXb>}O^e$)*J5&>6@MGOR^SDo!3ES)A&{}c)=~(PD(QQm8l(jdzAg4N~ zrJypn--e%aaOiPFQ-Y7NZ&uTV4>t4_KX^7Xqtx|M5GFH-{qn>1!a0(w;8S=-aWLdZ z+ou9xS5bWzn&9IB`T1zeDB5Zppn~d#45=-xRL~~g1Qt%5^RsJ@+P9gTg3;GhEmL7) zUF-mBH{n~l$`uCgGt0rwTpd_S*}EW4Rn)3ktP8$o5aM@&^Ran{FGS%-Xzl2)`ed^! zv(!^#$D-K#rvm#*GkJwaHq_saiMgTEuyFS9ie#M|IRKk}d*K_>T#eL(mM)QXF}cBF zA^;@A0Stb086ObKv$`i1Fc_swNqGvQqyL1Rj3>>T0n`*%ukb+P9#ER9WFg`05UZZY z5YI<Zz_Be>-`P?vD0mJNye- zOk^hmLpt$?o%a5h%#396yOQl(pZhIj>pJ;gOwtWIkK_sbc6K}TYWVLTdl!_|mr%Ni zEBS2$Y)A33`^#idbv(LUrR<}>BIDAjpXeo6f1iD zn0}cI5IaMebBwhqBl1ikMhD<`FL~>mqnmEt1==*(u(fsavp8YfB+n2_HBE{Kn>Kab zrHQ$d@mV)KLmg}~@a*?&>)(XC&ost^t&{Ko6yoCYeerfs2!A=Hn*)@vW8 z0lkHdAfsFl!PaRL>$QPN_ldvA$Cd!ZlJr8-ws)-V8HZ!+bv?Q9ty-c>@J!~Jg9;|l zgR^+VT%hmv2!*SRm9Iuwy>lkkvEScWEzMR^3>SgADg~!Uc2LunIIle%ST7$LUT7GXYw=l?>Y@s;N2z%Vkcf!Ru({O_%xCPy50op=m<0? zbanSt4?z1wg&?v2VHmpeEc6{zqE)gI(f{x={I|R$Y7qQTisHAM_|4iVv zjdyB8y^55D#iJFvoj%YUm&xhc`uJKJTpCW-ykT^E=$mR3fOw#5pOusW;q}%ldkAS7T3~;P_wxU`1!vd^OS=syay1#PiIF zRHGk#lw8@S@0Z!#{OHTd^W`zS1<;p%6BG(GpM3KuPhR-E z6y<6!wOF_RO-3Eg>Jksf9P&g-W1z$oot#r+qI*Ca%^YEZt&RQ_8u|6(HuQSS(C?Ac zr0K}wj#$wUBjo)2I{BS@PQe%2w~}l+e`nKe^T%hc`n2#3;a%mC?h0w7r8NAvHVw@2 zgahGE;#Qhf(+Lfe+LasTo@$`)Tz^YTevfkU=rgE+X3r5ABONbN?hD`H9^v$>po$1> zZDQA}btb*DF2!{Iw7x#r&zTLIsZZ(~&kDqy+z`IM=og&kv~Cv9aZ3h@2Wcjv?Tp_D+l{%-f#yK_T&Jw!0Se1uWVI_gOGz#g z&^EAClO}sJ7hy=xjg3(Uc`$J^Xzf8A*d&`2W&Y1bU}Vei;2&e7*f&ki(r?RL~xwVS0jF3saxY?lb$tTFC<+Sm$CiWv%w0P>m5|a z2P>B|^=K(mx~6(Ko^6pe)i@#_>0E^?FRT0t^{wby>f;fe?obijn0l!@L+G4p>tW@d z+ct8e03c#L*NKsDs*+LF_I1Ygq40E3e`#eC)KCmC;w19l4VUZ@?$K2qL<)@v(Iz7M zDvCZz2PnwC4uFhi`(Mlcg!k`~0&i1$t^F3TFK|-qU*>vxdRlpG@}^@UZ0lc5Oo4jQ zWjZJ%R{=LhdNx))Fl{mfW`Cev4i*Fb{vRK}F5lfZLlvq*8+m=MGM;Y(JK4PNTwZ`X zKmlg~)2(v4xGh+kdT z_WiB+KCSi$4i4lhsO|OZFEHFFZjjSWKexmDQu1lxrMl5R(PW)Z*{<$f$*WsUpJRik zRv)?!t(j(sZ#2O=iYr7-32n*5SuG-m=VQF0rSYv?1EW=_vzDBL_#{6$916ZALBsfj z$v1nH+AU;N4ng$Z2_+Q*Ndoz4A^3>Eto}S025sCmITWi6AI+ItO0qTc(;AG`cumig zWq!yVS1$8ss^ffIJjg#9PHQw>>wt~{T{u7$YA=Hbi;tggy+a3_PeYO2Vil!s1-7-C zyh-+C&X86GQ&2e3qx3rIrUasYdo{uLJTF+$mSQIDc;qv{l=U$dXeh)64JaP|EZFZj z;TQ%R{rt!`y>{EDcCTdP3(4mE8~TC7m%^cI7Z3XMnL(-poKo#gPM$nuXSVq8vO&{& z`)FUMNuXOxY%Ue2|JtBY2(;IIuM=g{ECgvF&=-e|9lI+a#*@Xk$Q~qYY1(vAW2vqKx|DG7ozoUH=-Tv!wN5)$S(kl%S9Rbj$AKmOFeh%% zYKcxp9ybzCFqbMXrhjX;)6KYuaaWfIRW}64UBrpREk z0~D)&hQd6DN43M55!sUsL&w6q6&#l8LenM>1C4j7S@iXqVu^UT1(=WRnsw930Zj3u z&L5x(tM+Vo^v#Q#oozT}pDVSYo?!}?p?%RidyP)z6LFhyf$y<-WtBx7k`$S`+au-s zpR-+cwv!c^ojCmhsCen)@|W$-#qp)=2kcd#_hnnTqjp=fNuXJ%)ai^X+1*|0K?|lW z_kvG!FVFau5eIGAZ_axIy{Ld_Pd|^jB7OrKN4&}s3Waw}V8GjUc2+RD`4XPPV62zC#`0=CDkKyC17qS8kmSgRt|V|LQ`&{h3F>-9zW0EGC%QpXoFA z&%C#nG5_NcTtoh5@FaKZMfH9EX#ujB6kX-i>=4w|WD`kgra_ndOYshiD_s`Sgry!4 z_=R82wb&WzcHe^fZDWtMj{1c0mJ@aHsTa}ULm8fk!UJI)Grl!Kd7SX+t_kQI$!%M7 zAv>t2{!`~_P@=8M3N*Yymv`GdM@6|mG$AQh=lKI5s&jED4yXHXQqVYI)Ua&5-uol( zV&eyu(;Ll62Hl0;U)&i~pl>P$D`gfv`K=V;nO-`eMyYq7SoFcSd09hJHPW3xqjz_ zk9@`>aPD3M0r#uBZlb~l++t_zsNu8+i4%N`d7wnHwrWr@P328B^xR+c&I{!hTjHT_ zE}sEufnAD=#|>K6?B)?*$zg$6jUyU->Nc=VQdxVZmGzmY)M9zd zsk+67 z5`D0lZEG&LMl06kqdjwM0ws!*KuRv)s;zPvi&YV1bUkIx0It_iLuBC4`hPJ>E8iP~ zf^G=w;td9WjV;uNd__V>{aRhV>DiVp@`}Q zb)`PYIFA4JPvgZ?qhWq|*q{A zFlvd1KeQ>69i~5hJbpEU{Ye925cr0(jz@ZQMC~UvbY8PV5$6>f>u)&+?Wq46k?g() z?B@&71%tO8AKI;78TWn-m8`vrF4#7j2&UHpbp!8unB*CIz633Tt$w0Lf1}Hr0$a@Csm<{mkHvA;s!qC> zorO!X#b}W6B3tR3u@YD(1LC4R{@!|W)hCd-a!#DMMJUK@K@am@c=f#pEh}fVZ-sy$ z$t5Zm$^7a7^DYx$zi-qEO&j7Mx<2$pm+)t>*)n+k52X#<{YY#;0tbvt9OhU0O%Aj) znJs+5h7TA-f1^>F&fA`zTq_CgN(+@P6qIN~(78^yceR7l^9jO^8oylWM&p@Yxe^*P z$arcZqJ+O%kmJtF2nw-SAk%Wn>~5(sM&b9T+n{a zJYxP)R3O(~Yu9`0@z^&u%80`+^O)&b;<9sqv>2cx-POuzHizAD@wL^geuGi{j9nNFiwFbIH#qnOJ z4irxEwh-QKtIhKDY@s$Mo3)g}n*bE8TrPO4A?p0i54&_D-OBGN`}kdjm%5FtC}ZKn zM-|N({Fip95TyZRg89U<>71*WNQ|3WCVsOe&TAy7!s~aTIPf5UC<$8GdhMQz)wFU5 z+>t*h)$+yYs)ki~z$Syk$#gq%CKCyX8W{hJ6&9UNnX65R3n?_8sD$*}L@}85#=)b} zorV`aAU{&Jd=eeF8^aTLVu$8K+7~ie(snT^u2hrxo>F>Btvq)0W=mCPNSVs`$HSzf zLoO*K#-Y}4Eg2(6To~N=UD9Z}Xy@vLUz8rxuoc_KT!sug@bMvph5O`*)@Tc#E{HVz z{*H>7An8SnrzVXq{FsC65_Gt6-F9eat6WTZ+bZnkn`Q?>f6OSg85l8i?HW$}kyz3+ zS^5UK^*ki5miaP&N^mf0z$I!(L=F$(WsSr!Q^QB2acPZM9(}&Y)Dhrfg9OC~C%WG^ z9R<~oZyg^p`D5kzcpHzZms7K_dqDKp;fWqC$ck zioMijB8XdEx|Q(lZ6;Zc`)3xQ>x`?WG zzASHaJk_*hnA(T9{5l>TSq4>zqHhluG$(dGpF-?7{rSnnvH6lMO^h=a+hh_B1onX$ zUZm#dmJPssN=L|>{pd(0iAI}dPK}H6U1h`tn6(DC5w8hrY6UhPIXJ*b$76WG0}&+r zRn_I6?>iUyCCCvk#yKp{)Siz+3wnXFh#eaHeGf3UA2&F3Wr78kQC zrWd1d=!+?_y-($AN@6N&)}Bw7>gt=hnzyDI4IjREAi5wfjIgnT*B>awx634`1hS(0 zuN8hflW@>)(_O%{0mJr-BN@}Bf8e9~4CboQZYpIxZH1nHLO{#62MPlKGz0wZMMx48 zncz&RBxT0pXGWo0@B3kC;=ydyQ@XOVRb=GU0k>bxIfo$T#X`Z#Okfq~7L~E1NJUEa zH53I?#Z;YA=+?iLYPSvn7S5i)E6kBK6dw1lRvsv)_5#@}K$mG`-ROPbP@d_bnYsJd zPkar{uq@hsDfsug0!GLF@4#7~LB=(?+JXY#=7h8M0WZHtci-l4c@C3r#*CNPq5MecO7L*8;OFw!%q4o6?N0cb%I-Vp*6QZOI7ZNK7$6fPBgbVO$(ZY=8z;{E7 zTs~pzEdg_`mD-5Kpm)ZHcE4LnGGe?X7g`t8y}pW)P?G|v=O_V-s~}oe_TD0^^HK?+ z+3kQu%u<6+rmp%3Q>Q2>nr^0@1uWc=m|x zCdjI^!JXqw>!^24{6yv;9L*b%4`5~CaheBpeLAh~G_kVk-2QBmzGQOUMz6Pfeh~pa ziJ^no>TlXZmoO5~0g13K5xRAS36@;qaPo~nE?8Pa(G;Wp_Vw3F--Qwb3cG?sY4j@>hAAQ)+AHgvTk4}>0=5KmxGnp8W*>J{!h7B~=_yHauDC+4|W3x4^#s zOA$FoyqY6=LAnL1VO}HzZuwO?hwjM?X?@JT@%@?C;koF~rLB*N?1qVHw4ah)!$U8S z9Omd#h|br?bm+)R`7L;^%VzGl_Ddb!&|6em1u8e%6g~D&YiewsqvpP6bMnW z0Dq?YB1h8qP1nt2e!qSFzPQ*Aa$PR8&XsE(8ZRN(*URZ0cZpTR8 zNp*aL?9Gw>@87&Wg__Ej?{xvGcC(Yn{3VXvP;#-6Vch%q2Ej?~+tv*Aa|pV%Dof(1 zFOELA-j0jd;yK!oT=oM9G-x$83vG_-V zjOXJB@S6O}1(%4@)*&#G_w$&DCupLGi9F5_NQ-+cq*FbrdeO5O}Fn)}3C~^E= zJJN_WtK;XV-6IY@&>iAcDd{E&v&OgDl={50dYulr%!jmDeqssEYV z9vfhXiF(EPU3n$40Ikub;Ps&VdlejW`Bzvkhj`zRd+sRvKgYx`u3M%v^t)}C%v}4= zjfNW$VzzQ`yORJ*bS|}zW<-SMmDNV4xgiDgfVLm`0pEiYtKyr2R>Pr!_C?Yo#5^ud z;K)Z{g!448RiSxi9N<}nOb$kq{tU`AlxPn4;xZtRMh686yQBetKv#btcD113<$@D=<4SOpLz;Obd6PV4*H*uu%WI z)wH7Y($t!+sqM7IrF3LjyoFAMuA>07bbpXbpKq6Rl{AY{Y{O@mFAOz4Y5BV#U_?6_ zi^VlvCO!YiUlmk+lhB^Z!Auv4Ygkd#Y))66(o4@Pi{#ZhugU$5;;IbY6JLJ$t@*@n z%^&xOiS`sWo?Cy4lG})J39WPlKWKy#^h-<4uw0oEyjQD0Ej8GBk>gTzs&v}~o zB=6NB@t88kX4^DD8)e@po$0&G_+b9{Nwb=yNjjq&Fn=Ey)w{bQRpZvwbNzMhS6SF5 z^%qzP#+ki%BAj~8uAy}E?Y0GQ%upjsOd$lwxVNXdY>wO&mw!O?OoZvp@0*-_*tWEs zhO&B-Za5rE@nStgQNHI>)QM|p1j2N6bN+Go9KS*etk%-a;hKTE>^FGSas(X>lkwCW zRNv@v`CKt`&XhA>~62n2pQTsZmM zO~&)eAlcA}9_}}J15|WSgwTFyhj{s}6ggsu&ev6Ew1AAXZ{WZ&ygj*ZC3E-$Es@CD zua!(%(!2kE!q3U#)vBQoLn6 z9kB#oEe+C8Z?XEIa7aXrt^tN4p=#Pgp&P%(@emU(qG3*cw`g+Hw~5EZ4V;(EuQVs6 zYjN|z0pkTAE#?Gw^3`}9pm0dYM$+~z1G_QN>gq`S@Oo zB0r5O)K4_N?$6L;R~%hiN=soW?LLw%Zc0E?_l?RPz0#2)H%(zFZT|2@{DY|aJ+O#l z5$T&%tBrW2B=2m!%6FBEd@Px*vpyz9IpR}w0(5c^bCC)atI zfIItyh3@_KA6@fNsawuq-}KSGt^1}Og3bmd>1p251{Ox_n7={jr=)=IudD)^TN%Z< zvWfL^QN4ad_tMg8@6XmXA4@ri&e^b0?%;qNbx>)Pmk7OB!V3M1SsF}fRs+gSzf>DWTZa9)dW zaCVif@T)Bw+LAw9@9j--kIWcc6RYHwc@9w)DY;I{gtfQn4AGnVF_6)8_!NaCEEoDP zpIXWwM#`d#d7*JQ@^?ElJN{~1?3wZ9(C8Vx`9WGlh*Mx+QvsQnSfsu0*eh4b!X91h zz;XySNS`!@SB74w^^QqN9Ezyc{Yo={#TB)V+pjSINa|DS*Mbpz~{+Q#*wDr^HR>1V*< zJd$9M;IN51Z@8@W02Ke?+%E}=!UVHH&@M5 z0&XEEHwIFl$)dAvFPWCZo$=V9O4~AzMrXeQRE1CWAatR(N^kL>z3_L#J)5~3FIux= zr2VgV&lkW1-dm$VjyqEz8v#em-%R)~e>4JjBY}(*yFFhoMfhk6V(l}CxINuQNNkkK z@7ucSgTEs^bjB@8Hizsgz-Lz5Czi`8mUXL>rTwY2voWPl&{*H9lu!+JDjV83`RG9^ zlZq#bs(wMxXCJXju%V92p>@`cyibIeB0lT_^=+yWH_E7k1peP;#%JGe4nL@z+c%^&3XMV}#@ z>pPbbJ}0dmGtu_O$J{J~`HiQrM8I*xh!T{5j)|l`tznHv>t54Ifz&-Fd+3kibuu}E zQY1`od96!?wpX@Ty)5Q3cky@>SuTuO&9AQ62=nBI@&>16dueH2lBPmCfzQ(K+GhN0 zWQT`rReq{))I@P|Fz7kqf!#jkvdJE_;mk$cR>nE^nYhSjc5t`Z{aw%ngW>1pj87H@ zySl|&8kPSW=)ATK!ap_$JN9<_1kXRP;(ae*Q17>BRsW%tIabkBQ%Y;}BH?LQl!(W7 zKn%sic9Pnc#CQpr@5QPNjhf-rs*k(r@d+;c#jhd=`?-Hxc*gbF>mi8Nru#a^VBL3Q zO8wr|xB3Bep#aLSi?e+gpt(!uEEfnYakC_STA%Dq^Y8U##H5Jc(z-+{tF;fSilo>y zTsmPgX*Sm*-sgatKWL9{6glOqMo<5kURI*#gOTvmL8rx@5d)6VxY~h^fRSuj=y{5FiSA<{aUp~v@<%v1gumf z2-4n3^rd;gJOx^qPBdwD+r-^$pgwH1iT@kTGGmzm$k6dBy4s+?d-aoi zIF+c3x{ivHXYrE+w;J|}Epib^Hvw}U)c*k1!|impC_yu8TziPi@DXzpRNV2>qq>_e z^@#x>o?W#2ZrzuLmFwU?Ru&Q&U-i4STJcJNSIZK!x0|ik-Po4#XV=Uz8C|C?dQNuw zbdYo)BBMwNBE5?DvjDSDu>4)x){hB%%?EY7ySStzpFTpeMJ*t3yGjjgdmnCcT{&SS3l9c%|}1G{FI-R zEp;S2o9VqgY2ngYKV!)25Xx6QK@Rg?^a8psr+-i2F?npjmBKhZW_X>z}9?n zS9My`m3Ge~ruS9Ph~^hN5a$4+#%r4Hk(_IgIHENkuA{I4SGvOO%g6STLlJM0L!QQ* zgs$m~BWAgtNatV%=!0P#KQRl%ro)DY(#!e=xK5vP4RlZb4V6yxS;{MRH}C$!W)6D- zGEP}>@S4>7Key5mh3@gGpHwN+55TpyoupWtTbyXD22lB1QLj}8s#UI{Wzl`E)a&i; zo5tz@MuNzJU&qtL?L*mAQ&n-EVcb$BxYE5MT@^00sh;Sfx~-)>pGA2ZxO+ORt_>=Is?o7%M+}PSkZ~#lN{u$&*-iMebz1Nx?JmSz^RZMQ%&vZe7+RwK zjb}N?wf90U_8==&d#D%73Hr`Xw2mTq1Ju+rHWes$omCy<8U+jcv~O}OPL(2vHy5|@ zQnc_rY5)mghPPN-Gvbl?<8EIheA+oyV-jeF*TK}eQ6OI=H}|2O}&( zi&h-_?qndf!BH3s4hL1^6ukP@U33-vYs^d;MT@!i>5B3cRw|}dvmVD1u)umekIB$f zpDpKWbtVE8)h>+_U3;b+EkPq7ll+J9?i|yi*YMJK@RI?5`vRfm=&21b(Qki??dow@a14Zk@0f+ol%b~Wsp^da&LqCyraCiGdQ={L*Wj= zC63D?y7!Lx$WNDs??PJrna(3~Zj@h0vR?tb5QhI8zE+@DWZw@e3X=8(^2A2f|B!jmL!>t5u5o&uWyc3&B5VYE5G+xx>f z;-{!-kQj}x(f8{*@#o*OAa4f9;jd;YquD7#Fyw_XYCL{8Ur&~l-_w-{VY9E|-~ z)IzSA$0*jf_9g?Y;n)zJ_0*5yOc-gp;t7f_@5)iUCXgOG`nh<^)DnKn=j-#H=LcPl zwEHrtl%}ZN4y)G~58B$dA|WD_1e>GlQUP=s@RDDGWjb4c{NhkFM+u6zVlf%> zN=Dmf7=q$ppH@s~&}P%Gas?oI32j#K5cs^0=Aw#r9tgjgqjlaA5=j6i(j=g-**5J5 z6!r!zh)d^nS{L|twLDNB;_i4SxfdA7?!Y%>@-IIM7cDxdM zYucw=T6~Rh4M7V)i3Y7%DOFYqggEMdvihP_?hyp=rBp9UgZbjwzsz#KH;vsZ4BW)6 zbhA{tCT7q&dUOvD3%Vm-Zh-ODE^S3uDfvM|#ZT@^I`k<;>merx&0)Q+iuEg3!S*}Z z-qOFNu9kqY@x&<;A0Rw^HP&%!G=2(#FZ@s@;bagrZ6qXqCH)X-c|*-&L9o8~%{5UK z{lb?suFO>$U8C1-2-Zs(N+}8+`B{6z1G1lp(>4^#3FwmyS&r^VVGpH;8$PmxnxRdp zn(=ya!@UxAGy4Th;8Eh2P&fUNuYZ(+dWal=NhpcaBYQz}#eRM7e!-Z8n;Dd6H&dFhAzgR2-#$nbev`L!O zWr%?+-t(qen|=T-ooyM;&X}p-a)Q>bg%Ua69B(xta|S(`-vvn@;rGaFGuHlOl5D02 zGyjP=t-z!8mZ*~0)yzq}7W{PCrQ2ehGcan=S)p3cdU;S$$?I@Op)3DAF{Ht2wKvf? z+3%F$m8V}X)U$_&3k?|tR}uTGK}5FMs=;jjLb1}gLr*y;pLNmyGyZToE!IE0qwbEi zu>973co2U1`fR`8_WYSC;QQ^++3=tvjgNy70esK*-c(Q}yJ7DS+#O67xEZ_+Q;&Y& zGa%nnj;YcvV4Sl-xM}6dKXQg?C3G~BOUSy;5{KU?M~yT`=Tq;Eq<^b3j#)POk8wlY{VSOpQup)wKTkYGqe_cFSjVN zxGwg_+(@IlSjfhkkpDpme_XOu&AG7=KndX76lK3W4b97M3SQsp_3L?kv4iTZY4=9) zPK3>$ZEqggMeuI3o+x@nA3R=CW@=XiOjEpJh{OSpkO1JzMIyHK3qXmNkvu;^ydug+ zRQuaRK)Rr7<2hCW2;SQY3C7Q|WqDs8W|(Lr1_SEQ4uS`BhF@<M^Kse~o{|J-?GGzGND8wF*+PMBoUt#O8sg3>%(CeY5apK%BaWugMt^k||k6kpRSS z^LLMKVQx$f-ioNDAM+w9q-2tRM%3*UJa%SX#O4;-F8J#UzwfZsc ze2AC`+>jWoVFwgu2!3Y$T+L8#vplF&0zAEBUJK5X*n2p|?A>NA8m*$Sp?-G!+snf& zAT7fQ*z`z)BoyeuKdR6To4KDKuG1Nqr|QFjm09@{)e=Hs?|1R*=b_pMR4uSp;k#0; ze$r#_UXl*eBb?{5`@a@F1o|RmBs5kKRt|(iOJ7K$?IxK4N2{W}PgNj()Re?te4j$( z^iTKB9UgQwm%I+vKoST#8^vFNVh1Qodjhkp4T(YTMUIOvUpM0w7!UN83(Kq^5eM3; zG7wKlEwqt`b`4Jr*x0%38ps@@yck9Jy^v}+9k6Ms;z89pp~J~t^Z8?+oASnQ|I6B> z*FPkxx_m~!_QQ=oJcMWNo)3PUlQA*^1~OnxwC9mP@(gQjb-AZz4{*^r1?1vh6LbxT zzB}mt*aPTQSVDl9eSps40el&dRN&^f2uHX6^>>PU{7xD3dZ0L5Gpl_F*RZ3zk+dUvJCR@;tM@{su875?H^auO$dr+5DISn3DwTAh2yFCX?!aF>tVURbf9 z6hF{tXWg7+l-vw6Ll^Z0sP8*MQ7aC;IhJ+6#SsM#qa_6M@{c($*LRU2mu_xR8W zuumi2L5^a*rj%!!pGc|^na+mhe;L)NLj*S47MVJjWliRvwQCU{?6$XF2z(uRuuh!&ZATsEz zT~KGNfPrCI*B-==pn zsT3-~3aNOH#w0m2CbWIXu> zhK2>tTHZ-YtF9#no1pVUE5uC*5qFRkJrY}}vj@^SpJCXmCVq*uMoq+wU0f_&F_?Z+ z(O6~2S8siVnT+}2a&k3i4aWjxaeGoR`H%|KqFotif-xBNgi{W#q;tFG39%ZpM@Fy$Ncxx5& z-mN4cua5;}i}s0&gEL-V&FFv);H%j5XrQBr6qT9W{TZ+LBv7Q;8V8iG)N}IYA83z2 zVPg*mn-D}HkgFIuWFcAc62H3VJu2(Nq8%O*uQD+#v4BB)xAr678fxkt96M9l&|p7@ z@i_bgvY5fW*oV&Gw;R8l%im^M7Oy?0c+X?7!K-zLINCUxw6>IJ@i<4;pSWdKEuOsS z%~(S1n#%Y5p*uiYvC$i!Y}s(8D`U;WTw|;fNRhlEx|+Q8??E5fG93oQ26s_3tZS9d zUa4j3-5_-N9yE1f_to8C=-YriR)L-J;T$7sd-D-yTbkXT=Se_LPUxFIM>4`v(f?!YE#R7NyZ>=9 zKtx1DK|-c*1EP`wN^Ka32#AWJv~+ERbZnrYsFdXBfyAV{OImVthk$g)7%&FE3q|ky z{yxwDdHrAL6!-;6Oj>s0XA>DXkFH12b|2l3wf6tW8%6^w+3Im-dMJQ#8rVpQ0$%4w z55zeJ2R_V-O+%3De)Q$igXdzNWrgf*j??hGl%uyg%?6iK&VFCOR{inYRmRpQ3F_6B z;KVLw>oyz6Lp-^Q)@?vZzo&n_F@e_V*2$WetG2KINP~Tr9v1CD|@G{F_Ws(>iTWL>K@KChn@3=>3oJOf+!Jsos4`o4}!~c2tE{O}hG=K*5HD@-cPre+jhz!V_f; z*4=Nm{_)p1Y9_MT+&vFn)o)9l7?nQDkf~9vLhBDaj^x{gId|OWlUlEF^yw4dQZXc{ znH5Sy)Z7uY*7`0_{5A4u+w2zlb5%2fo8ZRix{hnV#m&tG}qf=Rd=X2xK_<`&sGs)`f)RVUd?IsI0Q zY)J8P^gxQ~G$Yi0`5Nn!>NFzS%BAUBUZ+IKN_$Q*syL8jl&2`^0ev_?!;G25pR_XU zqA8#Hi8-=r5#H@*-8yR(T)r$2Pt+bRs#pE^p;pb)hZ@lE8#SsJSvsuvMI;)>9Vq+# z-zp;N?y(a`lXw!BjCtB=_(p}{o#pD|&hw(Doe+zC-76(^6_Ujtpf+W=2siu1G4Z>V zd3u>RWhQ3)2!eS-gD>7Ss;hUI#moC9Ms+Crdcm-NixX3~@5zC&F(;!`P&Rjb`WEGc z2A*y;12dl0#yvVb{Qkw&&lxFpJdEGiygZ|?^mX`4^BlGpR#S6-&i%N|sEv(>Q!dmZ z=E{z8W15^T5tLJ7-#+IK)zmO7-j2TS!_8UF@c6mA{#MERT7Lze&uJ_&dFN==1;0rj zr}tA6Y?$-Id4}+@<-hON?rWEnlvGWjw=BLw?g`RUgYDfJC#_aqAMeYG)Uyb`_&IM= zNw6RpmBd!}sl1+w%0H8@GJi8|R_4}S_)KyH4RWlJA%))dP7b{Ju5yH^#q{eb6E@JOEb?0HqLcMH7sSHXI6>C-t(cx9(JTl*9MP@ zRFu<_3ZT1p284$_nvnD9C#l@dNW#4K!121y7X`?4x;BR$TP4Jmr3|U9Pm?{*`YJsi zgwNujQ_qT!{uDgFko1VBuhpND_i&+}uxG(F9Yog;L)uU+#~BV`rww>1r`@w3LD#Hl zt2x#*9@NMg5Q>+|k_p@s-5lBKdFZTh{~F%U=@Kvev&Pt>JU?CgY$geY9xx?Sf}703 zGr1~r^h_EJIXp|Z&q$?e#jTg2Q(r!z*O(&D}I3KKT>aqUA>7gtoqQl-VmCPEs@ESO`)-Ag_BG+ zph@q;OyD(X0?}HVS(n`@mz+<$hjT8f;QSRdn>Xn#RUU+R@}mF?c=qHgf%>Mj6M3sI zWwUyv`GakmPmnz;}4)${D*=Sh^!HF(do(Mm#SY8_8EyXj|j|D%P86T&g^3EozYamy57dX|Rbf zS^Yfv!I9M`cO=J5>l@Hk9Oq8_*!gKiTtOk@D{5=EEeHJG*6sJMQC1lb6Oyyu@b;8h zbwx$E=@u^=UrkZ!U4$Ygav>TU>{H)&Cc~Whj5fl;Qh#(j)F>}h(p6NXTO$0cdyNw1 zG=)!a=L!>uB%t>p0>6VxjNnVbx@m~4wzxm7Z9xi%6`vjoXfS{qC6`RZ%I=(8( zP08yb4*bg&+hBY($90XY&(Bj{#1Ob)o*~y5f3U5hcDJUAt`!23R_}v*&Z(}veKSuM zOIW#W0D*2^ts9zuu2uRgLyXFUk{h?B7%=Z?ewaUT)O1#!t4jK?SABOncy;5=@o9eq zA0G>7)-0+l#o*!?#c(D1xt9F#hWUf;3`SnAn*2>t>8dWTPg?(SE%qO&&a{p{D3CD# zM-)z84}qW!m3BVYCMJJ2XpO5fImNdWMRMffeJ)oZ*PRu}3M5ZD2O1p5o(15#cFV<1 z#jzB;uVMS<`4S|U@hl+jM{}SNKxNI?P}ozWdYzw4quRpQcW2-@nMT8)=bp(icpqln z3e;VSQE4=MX>2@}3r!)!zR1-$pg10%4*Ur+AFSY`))wx1ZjIaHS-TtAIB0Tqc~u^r zfFl4VRXge1G`jirR_Y+R(O1SY0wri}=LKXfur)O79os5*zUQv1BCf%DzKcDy55UkJ z`h$q0>(0=0AjC{Pq|7bDd)wucJ@1=xy%ISQI~(VZuDon(K>9xN#B`QfiC#27Zt;Me zLZb-XileW90iBQ5+!_xLk6g&agj>=wA2RjC^b=LsLn*XKkHJ?8%IPQ6hYphPWEXzA zZ9hjCAg$dueN|~n`4-kMh z!%4l`u)aI^%#T$khiP_V3TYlhZ8@KK-q;CusNa1_Ya-nl)MU&}p>-}?Kjqs9N3lk= z6*q$S4FYsP(mq_oqIK7Swt{1vm_LH*(9I}HD4y4XauI1???&1Uhn`K99&7ij@;)g%z3t*qu)qhYF5mmrup>K##7|wg&_2yxYE_tH#=&0*snG}QikAQ zj(IGJ$qU6yflgDn*_hkhw#?~^dz$kb9Eb#>e362Gp1lv`n@}=@w_m475tm5w;F9j* z>XMoRyg*D*^GNNpu*|^+r2FmkxVF-Cy4rVB^Ns?dW^=?&X_#skb_gLM;-AAIHN8Xa=2bsr0TQEakK| zj7a7}Ghh~N!9-R{eOlnTVEt0@5|k(F!A725yxhG)J)`}2U^eKvX4~xzIz@??jm4ql zw_3N{ZMnsHF{Pkr*m`RTBr=R1?}AiD`{8UoO+M9}`)GLjiERHi-nu}1v$POBt%eWB zL=$1YFIE~s>m+?XnACrK`pxlGwg+-9aR|VQeoMb9eHMLYavy5iEj>Qpo@PQ`B1>Mh zt_>Ws*-;OO$eGsU+xaCC7Z-x%T~wx=fz91M{|fO9IzACqB@uvgTs!-VXmwj`E$CuU?9skbO+b|`4xePS3$Z1t;u0AyzkV3NyqK(-m$C&^YnSKtW|LWpuddd** zLQ)oDAg>-x_T$(aKoUg-3(m4-dG_+$&ZlI1)aXg}3?hq(1FTHf60eI3=Q7o|uPvM_ z9|D~XRF~7XW!!CMd?j8a8+0`8>BIcb@s8Ps03Qdxdd4kBrJuGF>hO3BAbdSj54J&7 zt!KFbE-Dqew_}CW_=Q%Pl968R#{z?x5X=<&QR_ANV>eXJEM`O64LLaK4Xh*a)11W( z-iiTwKMI?oDd%Jsmcj)@)O{~KhvFkxI~LBHsMo62Z|~~1oAvbQ#{%xZmjs$HpMmNf zWB`6lTHU9sm?D;6#Dj=~MmX3!g`?|8y2Fm2Pg*s=JMDcnF+XONK2BwoQ6QBEby}BzF!Ak4x3FWKOf2;`9QfquP?kT?jrQeo*95w3}fVA(!FV{ zS`UhzlPM zr@xAbwi%Cq@>*|NuC^?~ZPsz)rvvjHG(G_KgzC~^$F#*58QzK`guw~i48`ffWs>}W zVcOX;L|U3gVTkU#1$M(tSAGU7`3{Q3!Xgg|Q3{$tYNB5Q_7Z8@hmqNj<`7TayOkq^ z2sesFJhZvS*L(5iNSAL+oG!cJ%A+m=c=cA5-pOORjgMhxwsPtQv9h)AnuX!7G>WD@ zW+cU1utULwH+OZ}O$HN?-_0CwwwCEu7o6bECa8aRBFy)ma z9WOoA2ZXm$3zMYd7%6Az(BE7Dth1oxnI+8gC#!vgbxNAgP7VlN8 z_qvWUHOsu-ELc~TKF(dCV{S*6sgD)qe#V5$3T`q^=a`wWm#zs}H zB6#S;rizHbod?IiAbeO0up7p_v6fD@C*4?Dh)C8XWHk0iu#((RH7{_cedbjWUl&RCqaOw$MGG~jOr z!>QLV&z*1z81nrl<$Hxo<~L#fkT_W>irPA0%b^uC${G^;Fl1x8Egdwprqg}+tRH=HoF3mx+X9Yop*C0sO*w&~*p zjqAB(XU)4w7NbgQR;I7ituT({Q19YX>RRU7Q<>tUPz5B@g4+{!nuK7N79DuVrqDuf z1|w0ky7&F6_f}Y<0Wb#m*v`|K{=up$f=bx3Z=qtdjtcjrn4ME;%|eeYCIL!a3~GUD z!x=h)t#xAqd$E?|%|D9Y%?Pu&AOm$8HJ!*^@{3y*(nmMTitvejk|lxL;xSw2Z|s>Z zZ994r<(1ctWf#irl=5yf@p3RR*N;1_Zr$z_hOb8UE{c`UGc#ixFF}PtW^9{wN{P0W zhJ`0_oTMvuL{hy+Q+FOLyV$*8hc~ZpV5i4)f5|8R~cG;VLb~Wqrje{y!mN(BcnFVFG zy^Q$=s7+#&T>yuDB1L8y}Do%mh*7YV@kqiZgVsJvp=oS zGU!^V=nfY(?+m_>T9UmO&E=di_0-GqQZ#m1A$g-pS}m*%7T}-0z%L?Z*_6{EJTGeG z*+bT2AwH5Vt`E;?FLnL9Z5rt1WI<`yAq@IS-Cb=3O5f1$GJzH#?)$lq5A8R=+yw65 z9xgoC!dzg@D~~%@qdd#;G((=Pz3GcYN}90;JdV8MxPWAj@CAW9IckUHe%>;psm#&c zBKSyV+b#hvDCDKn!*AZp#Ow*55?Y=WjzdZ^B2(CyTGypktNaS!)patJ~ zgJ`w%*FL}4*87jwzrh7tm4ZNz#RE-zDXHHeCMbgO0lcn;9O5PYekuW%KbK^jYpnyB zk|tdEv&x~AzqGmYA}~F-5yl?=>3y3ycw_)FvELtG_{uV>O03EUxICxo z<$x0LFIeKxMG*4*uP>P(3&Iii)h`#w%{>l;ehxBMay#>97VIDl1kudpzG2!pGB6^Nu9N!^U&PY6xAMeOm>pTUu5qMX*JsMxYAT;jS zIJSF6SfqqpLf(9%_gg=9h;cKAF%zq?*!Qn+a{;LeD5t(%`PkX-DZfdIt$JjDvvI(e z17Svrbhi{{+w;{v@4B-=X&3WnaQW%M8sr#Mn4B87vIupe(2qv5$!#e#k6o5_?!Gp6 z8>&Ps+{OeLWc}5Ll^tlx-gxkOpl7@DI>=8~V~0)=M_aJ*-||BAvfQ_FHVB-d*G5T~ zh4tXQn?kb6J?qH3xv6JY2^JVfg_7Yg8yCvro@2fPiBRe#nf20WTHV+-!u%Ih^$^u( z9mT-{L~XCpprm-o58eaGnxEZ$*Q}xE$VjgGl!Sg!JI=#mf0o!j+vsN!$>Dp;5j)oZ z=uSR)Sd8O$2UsSaXs#=xn$hm!KdWa?fnzhDLJh#(HG7(UU?br?`76%I4O01w{IHoot1VNT#_veQ{;Q zW+?sc=XlYHOfm_iN*fnaFGq)`keL)=9@^UjW2Y!k3)RK!zut!6I>mUf6BF2+Exm^G zbU1PLsDVHWnuZ7IbghkKRPi2)-K4OTwf>XVza@bWS?!Z=RJnjGC$4e4YveEx7RTzX zeENKrsKPf%=HZ;MVTFfLAX~0GPHUGd2ISR9eqCkrap*IQe~*eI80S}^gc`7qNy~?w z4MCepB3PgqE5?I&DhrV0-rRJU?!5Ru-Kur6SHT1{Kj2-s$g;ZM(18nWM_uUhEpWQk zD-0JjV-^(&v%x(S+<5=bp6@cmr$^V1kTFhMhS}M)AUL9l@BT53^GB^AWRZWehd(F& zAbI#pLgK?zDCKmUqaD!eEG947)z36=`@Hpe7M;)Wo1^^|G-uV?XJ16|xd&R{;$K|l zWmwsZsDZvBN7OU!u&npRA!a`Gl{Y&&scZ^OMMFg0NFke@c|5Y+H**-76Nn}pnEsT$ z5IF&ntb%t4=P)^b5r0jhB>{bJgz6P{-2;E39R0Wm6=ox@fKRW@*I+xROPA&!3;F^R zCim+F?g7$V$C_4nQd*>Mx<^^2x8|JuQQ2B1CYC!4oCfr~PFkurPK zzX|=|hA^6yl1UMRcgY>yK*!JtS;O0ES@{`H5;ve$rMQPHi9NTc68nPVBxdA|t^j)kvSZ-g8+qWlc%>kaCX7CD41&KSKEQ@wW2xhL_&^ew=HPIZBD zM^nTn%P6!`U2^%|aqZB3u6@*2O<4*TQ(3`-ZgS(sCmmmm#F?{ZE&9wN%Dr0>Pnbw#oaXiV z)8bi;tn_K95}JBy2vqGJ6a0tiZ@Md$FYxC>?_&!0DDD37d6g^wm@fcN{kado031JR zJ@OK<_Qq1dzWeua4XV_zKz>CKhNCz>JsgN9=xG!^`MTuRle%`en*jXl^|b_q(uu)z zhD`dX1Lu0~EIILIbuWdcyLkfZb;qId9H{pIw$HL^n_=)2@UAt#slL~2D)KXS4wHtd zZ+7kshI#qggQKx0qu%EGwj-6e?+_)yc(%g`63FI!dR_^wTUCuUsN-QA(ULfVam++; zAB(Ev$JnZEcUpD(KDpy;VnstUVrX0mn}iB`>c@x74KCp6^R)($VcSCUOp9sE=GwYd zX7cYM0nq|e>z)6lz{rWZP74y>D;y!|R?dY_1U~o3^L(gqu?ISZz&NSIXX_R2l5dAB ztwC}oZ@uXo4YgYf9vui3pE4v4S%`x^=WdNr-s4w~I=c@TH zhY1u08&}#tzr?11oPF33F!AGrpZ<@_e~vP)Xy1n?rY+a3Ty#)TzNdk6wR$Y*sYqYT z`X%WXp^F8AZ}aNbPZD$;<@r7fS^Doffb+Zon>T3!kK-AQ!uMK8zEj`ov~rZs*Zqd? zz28v|)C}-8ebbqvw(7;DhT%cBW;+KLO&lay4tx`6F5(#($$sw(@2F;mYF3HYZ|}&} z_2*f=_VsTo{)+>05DCgiK^R&+gCHNx8VhJ1{XPc2zL0{jT$y3$K}=2|R4OIWZFvhu zg^aCrtSxqR-rg*_Zl)ooA(^)%rZm6)^opmL7QKX9y&n`%=zp%`iDu35{<3=HPm#cR zAhQNen6qHXN9Y8qT_4_gpC z+d?NRDE@Th%>e1`BN}Lf{16PF3r;abe4xemsk>#v{PW@&Lm3O{XJuk>9r6TY4+{jny6N=>AsOoZCuhHPEQK-iJ-?_Ep|C^HgLO zM4!Ams+n%%VG!MO0`LcpN`B#V4!QCt_WGnQMW8z|{krdjXtvj(^bM6lr;m~og}R(8Ea3L1((<1|6)s21Y{XVTb3@$ed>iIF<;J&?FSp$WJ z^^8e4sYb>CEwI%46rAPcTGMPE$&Iy&x;)Izl$2-FLeOif75GnSEV+ z6=2HFVb&*AU>4>vbE(B-1oR8Cp_(HEFK|n6y#=N4-6HUonRRa!HELP^z#sdb?xOR4 z2k_QaV-3qI#pciGQ0h{+Kat2^XZAH6YB>h~cIx5ep@2xXpK998>=kZxJBptM{d145 ze}DDr&r0t-KAj1~a++{!Z-HBZu3(xLnd>c7RqL&9WI zf@R~um5%M4$GYrSF_SD?o!~NU(zo1DMGdbQ^`;jH^c>Gz?|1`Nwnx$IcV6}PmYN^AQtmll7{YK#R%L*j@2gaiIm(+O*959wPaSvTcZj_rPzu%x~&!ryX(aJZJd)?tjv z0RD33*!mZACur7M(7sSMYJ22u$DcJpc?@7nqKyB5q9$#rt;@^Yok|subEPR4<T|O zjRM>M4ff-YA_Qj&T9cevyrVSPeamVo>sJ(H zy8B`++uIejb^Xr>$sPqGv~`w@^x|ukoBB}IsQMd#$okcjte+D?<(9unPA$K7`UT|f zDsHo(fm`URmQ8^~~oSOqMFoLqsFuXdd8oVNVj6jnOOy}4yI^yq$;=}mXuzG>(;=u9g z07we4?`CA_(V=fdn5YcPANJEm@g-g($gP;5!zaBbR3|d;blda4#X~rcJhi$gKvk2!Jql2=h(GZZKV2))^q95hmP48SL;U&&S4|Th zvJ0jVUHHp|i~RXk%$XZ>tpdP6^?v0qGqiKB_na&Y;ONr2$#6BA!uY!e=L4q**G0fW z1C@8>OsuT;e&6fymvFc|9*snRtN{=7!#aU{$o3d?q2sD*a`!8PgW6>q9( zH|b}WeI5o|fNYJNXc4InWM2)?(bmt*B+!;>VUb&5Zxsg$C5-8z&7wwjEu#g9g#7|s z^&l?9dhfSc3E@}p-a#tWEhe*jVAwxO{tM@#t6L)hNBYHH2-CH0qXCdsY4w~#y&x}Q zzB<=#h1|OJ?DEN3{{y)5kOgC6x9wyTW7j}W`l?%1kSyuNXVC&p3esKK^rd^jWPhVT z-e1Ze-c5I5HPqmwikC@u(A*<;Rw)-9f!&N--6~!Ej3DPzYffkE;uWv6SjL^bQs$Lp4fID`gGc zmx2i=ke{eZN>5jelyp+oD6;;5Wj`2By1>Sut!!8v8ph1R#K01)ZocxBdGO{NMVt-W|)V2gl=SS42S!eYm@ z?Y0L9*@UIUki4_!MKB8@aJ6!Ag6dNTLwPwu0k+2q#cq=XY&P{|)A6-oc7M!tuY3+kMy9q0nxB%TX|92KU%6Np z_})`IV+Zl_(eM{svQFj~$mxR>(WJM#OEf3>Z+-n5Jv#?^`ZlJm)giBW$2sG&X^d~u z5gV0h@BDW6!d@C0m#j5o<9Eb@v)_G{MHM4|=sGtb{VW>`^auBEXON+g@0AwZYoW^& zgMO-Lo+yYr6(vKYQtFtb^Sh8<0--Oi_huG_(2bYe!x-M8LEe&ISDwD9t3KiL{gpoWw$@cgJu>W z*OU*LgII~=FMf2&mNX&5ZzJA7#cv9Ib|jKNb8*o$jA=Y_uvuM0@7XL^In+zQ_|*x@ z&MInQTZOO{He%cE{sNLMe+|KZs+i+`2EVJeZaYcCTT4)RPznnW>C0_|yF|tAItbL^ zukA0F{czY`fb@lgyk7gRSfH~=w~A!5XbX><(aHkCeQ_?6Q&~UeLsFe0(QE|6vGi+o z?-Wj&_GD^1;*7d`jnpOh6j0@sPP}p-YEeY>DGpEj#aS`FTtG}5${Ym=yt&NLMKL?j z&7CunU@(PmNb+Q?wiZviMkz=O`MHE9;D#{_u_g-Q*9A`p``8A zJF`FP17_D}Is#w)G9a#uHHB7FPoX2}j>PR}WfrRC@F?pRMAm{UEMep;T7EtF%*Wr{ z#47$KKm5A4=M*pc-WnEd!RHbD-jkQ>dD?)C1CSB?3QK;tF#)E%T+C_XTKvHte0lE? zs3ZRbi+dPxGjW^ZW6~oQ>JTUNk;(4*si`~L`WpfoEyxkS5Ay4-Sx%ZS6YIC1yc^}X zJlA-PJcuS`FM{ETzhFvE%nVeapI%eP+N8cG5qkMpaLYPd!QsplEl@naPL% zZ>B~o%5gx}W|ts93MPFBC@l(fN_=|z?!mP9+zS>Ex0wx$q9WkWJ=Hc6(ivM+mP-FP zE#p`xZOvNnZ@}hXkc~OPo_EY)vHHvG1s0{<<<7#jM}S8ddA07u^kdVMb06tv=4+-g z$#XFThKDoxi)&jYntRl=2gY7ZNdlJsvF1|OzyO#{>Myq<9W+lxiW>@mSP421+gPZU zb`>pG;G@x*_n6ou%~D?XSWSMzJZo4p4A;ML!&^~-=$F8g)*WM$ixVPQ%qWH9O#(Ej z@_MZNEtz|Q)!$@l4~%3WtQft$fq}_NwG#0jnkc|DYT0W{=S)oz{-#PXXt}Q*d6C z$MDU4#sF_Nx9!(FMo;(^&c(|y;HgHds;ah+Sw=bxFC|yD-k;VRz7b+&C=7$RWRfD7 zmT`%6Zn}=7f^wfmrkQb_B0Ih9DxcC2k)789tZD<0O|q(jdj&2!UNVc%UO0J^R4ahZ zS#g-D7-x&{O&Z@4=vr#*|DkJQ)Vp)cO08K;87N)MSNoo;0Tk5PuxZ^OS>pTIMmdLK zC{G-Nr?jw`SQ4*#fz-XwVvEXRZDS#&r~U+> zBS|o=*7(J3BGKkvQHn1w&0nY6561M|Cv<82Q{r->lF1{%7AL1?S}vLs6rM@nG2T() zGC?0q+jmN~vyadC2SxFDC6-kP*Z^r_F(AoVS}b`5KhE(ymuk2_BO##OhmrUYo<3tbR=PSR={L@ zV$HhRVld1nxnRYrItB*E$%L)_K*0;vYW$8)vDXVn{1~2@70WN}DP(5$E;KZ>iVRn; zG9VnL!{GJKR{bMOX>K6VGqC=_J5e`iD?u-`v47Iv7|Q=N6iwfpoFyIf(l<;7zyaRZ zTbXrg1cYxsO_J|cOx{Il;qgGEyG&D<|5K0Yw@9dD3UH;1s>RqOt&JssPmuB zjo&_3QPBw(C0HI2Vs(mM&HUkDmm?iM3-z6U8g1QIjMC@_PKn*p+|u(SN8FMgEqArH zei8#`49foXAE!=RiNmKILNX|1e*h2RhZc21fn=*GfoRy4MR%q>c;Irn2)M}SyldAy>6kDr~8 z2-89b2+E)_iU?xcNz8`$d8#yInB6q^p+(spV_QUFN zU5+TaEXKF0yI)RFWaoWeXhdD23uZRF){FW&q|ck0xOVo365YsFW?ckyV|+)IpXEA` z$i7tZ;^fBMdM0gGcl2EIP;W-@JB9SM9B3{KJ=zm)F1m{)N(^IHnQ@1{tzLc=Lbu(f#+7f_`Z0$L^LZrL zI8EtmS$MnfHx)}r&rI40wY8oR>S@Csaf79Nj zN0_4blHSXSOUtYVj>B-)cL|JKZ@reZWs#~DXBpbJg*=_|z_f?5*4Ei+m_L=di94E;t+O)8L^=qSd8QWF~TQ%65biQ0NoQvzCp6NfrwrpUMtY z$1gCyJqi_G$uz};u~tnIJsVL%{aDlyr0Tb?fIElkce>SY3bFzTj7q3CyIdf{Omqa5j7}#ysMu$V`hxQwM2~lxyDDZ!$dMy@^j8z2X9f(kwYCwEYc;U%Ng&_6%d##G z(;3)C$ZyPGZ>B-Aakr~2cRtw?FOlAhKMbLP6aC`SEf-elBIHKCOKefL#4EtydG(c8 z*%str?+wNP)SEI+QFNZ}NKQKERMyKjnzXeaJu>a6f`S&(snQk_eK}~&^E1|$FqR-( z7}5f^e$5`!UmEyw?MZaACu^!G>;~?3j)SXywj!*?QbDU%kXB3q615HN>VizWK z#SXZ7fR{l>6SM=>3-375;}BDmZUw8biTXj7gjwDlvx*cihx%_+)z~cBP22p&mLr*P zNEreHh?`5ErLFP)q+p}65PteIWqe@30TvyiAZnK&QE@kfxqtXnh zSEq?OmkdrRXFwGvET>I$;i_H`-CjO(4m2`G&31DMNXRAk1YIg;|p2z?Q69$rAnAdI=YNI}*GA z@7R1!*+{{Lac5~#Tc*fWj2MJjfUt4<-gq+}c|BXSH<3QfP1v3{v_>-Q zzumw;?r6ARt1#2mjHu6*szeIGZHe574dGMpyODX4YdW(6yG#B4GpX?Xs`1nBHx^`C z2bfh9Tan>bw5xV71Niw1>=pKM^Ga27&Aux$Il0%)czJ)xy>mjg&iEeGW+lF&6U*6S z)lcd8U4TX1ylmk}l1>&;VVX%%nnX6tU}rQvQ1|GpN80q-MGQEZ z>L}~pVJu2&hO{cn80wlUawD6SEq(>I~!#Xz=(0Dog_F} zv*2Lm;F4L2JqHFZj+85EZtU~;X3*HJ+YP3@&*o+6C<3Bx?3>w+afcZ1F^AXoP~CCx z_}dUS0SmYP_ZQ^5Khb0Re;w3n*V4W)=WO{jG&sZblgC4?c}*6QE_=k!$-I!d+OvR# z|4?Ecsnd#{xC_ly(QU3~z(a*470V{he=Mtimx|NNJ9Vd3pd%IW*hfN}da$-BaZPi-?9?#!1_`VKgU^}_1M3wPm5ef6~n(TzseKASTx zT0%22gIf=ac{%^VCj0|Y|I4oZzN_jry&eld`VIG|5aBo_KQfzfCGwFMuUcRcgr4If zyuqm8a`DtF1^RK2^ObuVFR94eVAAWO7MnR59TAGy+tHcZ>@OehVkawX`p zgHpS1ncB}@-39lJ}d zO1@q}nLHx1fO?ZBVB&defLxb1Vq3Q-pC?hVinr;O8y|xkw%z4*&aB7i)UMAZq21%EA#{fH_kSvk5+spofj5WtQ`;jvl#yOpk8N>%Ku^$8tk(|{bU>= z$J-m2em+IxCTcT+sa?5SS>giX4t6|WHVa`xj0qW`=IAvS&@0bdu<4=?ClzmGCXRS= zBj@{X)SN{zn)q3U*A%imxM}7|ofi{`F#FMa{=rRhRg#!_XYaQ$RJ)f`%cDxm@V_<+ zjO5sBdH#P+yxP^M=lQg$&xJ;2V{rYTL zgqx7DN_DzZzSL!00wStYL^Z5eok0ZFlX`tlTIYNZ|NgFb&OfmEBiSFsfz7880EfWv zimq;)N$gZtsNb3@QBwF)((_~Z?Q6E>ZHFD7UT_|{Ee`}g7i4`d?VXB*Vk4h3l}5J& z@g=P>@Fseqc@yQ%5s6FXR}%s&{~&1p{EupXEqQKiM_08`BaNmCm;QL&TA^O zmLK}^imV0==Y(g2HI9%vL)W&c->os!Uik9%)j^i!;GgNscd5#(WfMIa_PS-euq}aI z-!0@)UTa1r{HO~ug5kYVA~!?1sjj!4=(Fvj|NfvyEmy`ko-s+Lf5g&p+A_}$X&iGqvv5nC`pOzB z`mmN-W$8_Iu;%O>gPuwZ8hq6( ze>K~7m1D#-l;bn0X3v=ZpC`Ls`Yh16`W=if{?+KMuv}S@qQ~Tp6&H&o?1`^ZUTKk> zR@Ut&Md$wS(|FiE`$iQ8095Hby@UgoEEmN+7LSHgF1xif2?GjS$kE|SO?nfKRNb`3|IHKcU?9Xk2Lusc;+^zg`?lN(pI~lFSznX}Y7TMUl@F;o^!c;;5%ROg#)aM3$d}nZpXYbN6;8Fxhea)hieArly4_bU zmfe!tr}V5i$#!9JNOEbmi!4%hDSvsq-J&c#ECtD;yB$@`O{&nqs!}pBKSgh}y8dpc2 z#Zq_ijXVpN#VQ%`kDM(%bm7Y#%*&37r{)NG$d zzkL@+G+!iq6h-Kg5hY6e$K{p74m&?&kyFD}MUF)$kW)N^X!#qsb~pUEL83Dlo&R(9 z8Rm=Wkgj|)3~Q7tYHp(l71H%zrl9462Mwere~I^UwE4hZ=@LJ_*+p?N!T|5^pRZ^& zzB0~*AM!yA-Vk0+QexJkNta3|zq?k3la(=~u_APN(6-+BkEca23(Y#wuy)DR4cIKF zy&ZSzt0Z;T7nQl}X%9dAkE`9Ss+g8~T5f4A<-K(h{-j9+t=zISZLX}$8Kzk}Z}4NW z|Mfliur!b^E;~ghJN1#yQt^BXt*27u*=Z0c%31%!W_F5|1 z7#JvYHS^N{BkH^3lK#H`ldv3Rj!es~xiWXTXKH26tkmAl+ym0IT(~nwuF9P|SLMWk zCW@oP#1ySmMv7(T0&$}t@}u|X`}zF*<30rC#U1C|bMCp%^E@E-;;r9C;~)I+T|HIR z)zu~zDIj%qCCgj4y1#mU!gMp=s@q%P2H*WpNAVFm%a39pP4TWGrS#x-8jM5=6eegl zis>UR91j>Di0W-3&%zxDOoBDUlQsL8$B*w4dLq^3<>mcDJPfU^tydk~Vme|s=8gH1 zy51fG(qzO35wjmc>kJGGvSKW5-O|x29?^i_rjQA7F1CGg#qtqEZ4dRFSFiG|4=p`E zG5M%8JWcohyg{aV+j-+pj_cmK6$Ksk9J)TM-FDl*ppw&+~%(Z@BC$5(Vg4OqEdI)#?a=>pHMq|^8S6^7u<6CLB=;H zsxX}nu94Dvit_R+^CVfPj(-|o&npUrm3dyfcFt+cr*DCHU+wQi;R+fR_7)|Psl-zA zYsAYC+O5&)p+C~ny_hsBIjCwHvog%#8ySuN>(?!#xWj5hDEX&-4DFzFMyw~4HEOEu zeNWtdTAN`fqn8NKIoXer93Q|Fj`q5F8}tpD$Yu2L%h7|~{a`ygyRY9r#pd!8e6|E` z-#m7$e@l;8><(g|;7D?`3YPu1v+-aV_>evH{!rM#?1H}7`MaMkGV}e-JI6uc(4wP! z3UlS#O+9SZd#M3!zwm;a$xs|ta1ssr8F|o;&fr-%E-NjqFOm(t4cz`Ud`^Pi1Ny(k z4`tnPILRd1a_2cv2Si=9GirvhEz1@-8Z8O4P2}H)+53f@6)h{9&Tcci$M!(N`1*@i zy*#-M?^m6Hm3!|)2PQoTsQk~+Ac-WCjv|tjET*ZI_vm3( zDaC&`8ev}G4xA!tZ2&tw&(gc<=#9X&dP4}X^@7_*0udc9a~8_I-+|n%toPV{>dAXp zu^U|ePzn#^i$kr(Z|mu5G5f`;i!GU?p%lghAHIXutqGp&R)UXc$O;Ny>-wxJDdb?f zBR%{mDFm;qIhsb?m=+&?anf93LMnJyR|JKlA@n z{BWgCVIrtKTgmVO_e6FSEZ9vlGIha1rh@YvcfM=v!J-Uz@xAL3N$IByxF533C33^r zG(ko4thBwXx_UViwx5@7hmqv~6HWLAz8cJ2XD5$(FvnZdASio@)IA#o?ejK+ut^B>QqZ7Wa{_$*u2;s*`4C0K2Co9n zgl#~pVIR7w|L z6N67Mnk+Lq@W3SQCUIm*7m2>NDz@5GG%lB+nb#M0Kw3vLT9Lx5; zb6v5$Jdd3Qkz=Y^O*nCi4_=o1BjY} zcSpzUZBsw+uS`k1Cd`2n!nb|YTRL$}$BXM(icM!>0zI1*pW)4JoCNtzrsUJ(HSC|mhYqKspY~Cm_sZKF$Ef4(RKchuaM4+ zYntdbga`z&`$G-<((H#jeI#(usQo92 zB!R@%HRKO)W}~w*;S6&clH=FA*mI=oJYLB>O79)zF_cKEk>?vYsKm1VXR~m=lFq&y z<69b}dpu@}cS8Bwxpgp$ejC|@EybrijAtUIT<~J>PugG0?jQnNXHwY|DOTW7UD1Yr z$FcCy1^8GO+;u&xo=xJi70(2Nz@WwbpBpgvO#KNbWslLk8{_}*c|22dM=^D5%MwW{ zWzxW%2BR|)&L{G@C$OV`f4$6PDf!RNaTCNhk@B@;YTA31?py7k&#W~fS-}+R@jZD! z6q`hbEVKP-#>}x}`)Ql@_o>Y7mWv%gEv20)pKJ*-up;XrqJN)TH?f#;IPTQ-x5^gx zHO#Dm8S`6`HcgprkKEr@_|kv-DKXgr=ndjI2vwM1B2A`}yh(rm@*tdcmW8R;NIqt} z@rIf7kQDs(?+5>`P>LzDC^+E}Ck5>9Hx$YL_y5jy+Wh-5y}zw8$KN*P*8c|8-Wgo} z>ODezf@Zqiv_0;ieVqA`J&*E#hZga-bv-LtLHT$jbaJ#VE`@qLPHH0${Se-SzJ)h{ zgEQ7+X}sq~cYE$WehX+#n$5X&`0;_hDXDU)XFaLzcciAsZHKk7`a7r zQtpi#^|cT1b9Gl7yHT#L{(G4lAH6qJ(Rh zzL}0@92i1Kbs<+HHv;?i0@vd9&oCaS$6hM$WqP06af4$FsvASWc>B1}o#@$_7#BK) zaYSfl%=Xd3+e~MIBMe-DI}bAk3@D+7okuK&^C!RmeZo&F z684dr({aDE4_~@63fOF3Fc1U^ZMtt$^9cC|5~_lT-YzCM#|_FxU!%(&eJb~x`)Jp- zN7xsNt2&xAq~4ez9O2_=R62n{Un5iK2sip1nLf9h5`#&(8moYhxhFgMxjVbE=v<-p$Gr%rQ!GTJ^ylh#$h>Qdo6A| z=xEH{fYp>S)kk&M&89svY&x>)ThYAQ_AC6E5&c^%&ZfSP!5sgtZ#2^P%0OA7jvcH( zh-6g}h+JtW6dLb|90J>9q1d6-WXI2v?wWV~|Q zvRGx#9>Y&cW{iKK2i`}a9J$gX%PEmoM}yKL)umW(nBiU|!_=t!+|551j9G5X}L z+dgMp<#{1WrgrW(H|Do=#C|KDyUTzP_VBI(8>x4bq!$p%2d|X1Z$4=1?bu9j=Pll+ z$d_-)k9F;89wrlP8GlvFQ$IU$Wmd zyTGUSN28aNb~xjxHjI@&q2>E&DRj-Z8DX7>|Edy$@vknpNA*1Z=nZhMwKf4ZKIhOXJ}BFJV&hQf%$(Y~JhieR|5f?!G_ z-*!rXH#$Q!h1&HSNI~>CX2ltWjeUu_F*+?K4VL%^Dy$+iNgfLjg!-a4WZbN)D(J) zn0?%UK(uk2h@SxHGx|W=u+E=C_^BJ6LM=G@>h=!<%3RggE{d_gY!1_Qh2}Preex#D z57gsou`fMO5s%X>O14flfkTYCq6Ix2S$(GpM0j!VmZU|d$qBmb73~-8F(nD{^eyc> z&}8^5aSTaTw1pC1sron>$&UZCd+>J|4Q?hNAL$a?%^hT(yPEO5BkLD)*Y>HcGz6t2 zj3#w=eG=SkUFTxv5DUJ6@?$`+UD7ZVE6cNLd$fGQmXk)BvY9R6N6cHc@Ag4L#YKYt z8M6+`DXTe0LxL~q7e57MasK&kh7K$_aAEE&;4r&Y+`TdQk$&G2<+~vh!I6YK0jk%; zZ$U|Lc>CH1G?Uhda9A7{O3&=u)Qq(@B1qeqZ1OEYhVzN9+8683X8-Fe{`Kn8d^jmg zLf#HD!rb?P&=XWn@e01?(&HM}jl#sn&#dJU^u>+^j8o z#IM9Y4ca*Un%@^GY_U^Mt+ty9H+KLJF`e5;PqsH4knOAs=Kp@=zA94V z>2Uhmdy#&P2X*^z!d%;;@P*kiDkE?!?6WT%Pjp{CA$|2BE{7r$Kpy38aQTW(S%=k+ zJ0^20xr)=Ib}zs?RmIJ&z$ZORq2N8p=M($AeSv&U^`)6H=O`P*^)?cu*aL=!_2H)| zxmzo=FSYRxLq7eXZ9dFz*lzOm$OkW2VOqe4e=Tvy-L3n>)(1_czo}tgx-z z6EKR}4uAM_uBwG1zuCL8TxxiOxsT*CPe|vRit(=$bXkP6hrH%sn3nkL{t@;4h4@K%(xou(+7?T^V>FZ1F1s5-)XL732jAYh?1FZ- zKackxnY%*J%$b28MMq~S(1cf%_znC~@YM5f5N@jE$f z*&=%pyw=y>B6 z$Ffc)AB__ZbjM7=y4D-4xQL~>J`qi}CgdX-MV&J-+o{K&;JYSo8)mHsG;d6=?_Yvt zbYAT)&B$2T&s<&dagt+JC;#gpGcGvsQVy!a()JtB)CM144TBzvI&#Ll?q9b(mOzOi zAUl0#mMW~H|N61&SbV5ppCh)6;J;-X-nB3Xui|9qItg!PPtdIEwMmZjP2B~t9hcL7716(s5 zcOP6g>e`mKnoYCfnIt8@F_2f^bsu5h6ZrpUYi1tx^^|e_>NE!$_e2|j-r~q)=yiN# z(ACG&kSj1;B7QH?Hql{Rjc`hb))dd0a7#S@xb(c|;@f*HQ1Q*LIRe+AHt!@8@M=;7lL=dNz z|8anm!P*hi2Ff=(QSXCFu`s&KDf?#@m&@1 z+0@cH(?exC{qAFXJFo;p@>WMpb?np6)k^Z3##S0Pg1=7kB=#o0C?;9Vc3gTvy5u1! zgbHgJq9(OIYk@>MG?B=-ZtyPifQ{%bFw{ek_%~=FKJP;XK z{Anx;p_5bYoZU*N(E8rA?^#9n}iM_4w~JkE7yvTOe4d0bwRSa zJ~JG2PPh;8`eob?@0)Sgy1tfWE@ogeCNo*{D%WzMuL%&Y8F?}&^h-d`VkFkg+uNgd z>p>Nqsze^}y6S089;f8itHQ%|X2vtkAl}7!IjV$0)i+*081=DJ%>k>0>=8@7oYQuZ z+3^M-hkbq6Wli~)K~qSKX`kg4isoSbqYHg^X<)qaQIShpiSoEi?!5)vX~r~cCCo$( zJGq~!weF}Kn+}^p5 z;fGmcm}GIX_AtV2Hz6*dHNl)UY-Qszvb^k>KCb;fC~@f<(<`bnYWP}kNYsfA(r9$C znR1D2gX9P%hAm@DCzZ%^7ElqOBe_m5J$86C#t@#enGtS_e7JaO=dYOgg| zl#Z8;Qg*_r+6!N$O?T9?7DKx`XPq(Cm0q0!3{-IlGoL^7f3c^>?925$ulHS<5mN49 zCR=B+H1P3&4wuBzop?K2OWW}$?DO`U!L6mzmsMuwo{xvK3Tt&I9Ung{TM#-jd2T}7 z`T)*vJbp@MJU5VyjV*~+{`rD})>{w+qw4dj$&^^~OtgconQI<2MA5f~vx}ph3QmZ(X1l}}%659Z+UHIxYs_N(9Jd)(XQ`MEkKc=T;TM-K<6@mpmBH;m zdS@WJWx6Z${StN!&?Vi^_Pmmy#^^bKj;_@5+g^UijZ?g*d^|B{!pcRa|Kxh&xp*%E zZ(unzUW-UPWQ*qb6i^RT{4ASrQ+#U4rMUFLacp41eU`~E5&LA&>m|?h=;?619G7dD z+d2HWn5PtZX66kaaZj5d4||dMtuwL=rg+gH(g0n{$l1{^8>93nQ+&hO?yR0v&7$A7 zPh4Hi4qp}}_Vuqgzk~^AN{TmTSe0z)dD`ppWbMR_M@$*IbU7_;od(UPb~su0t_wW^qrEQMBMor+H0kDIPs2suAK(U%-l*t->v`Xz z{z0Yl=?8`nx?P%9OOKLDcViAVMNx$_j#C7@uS^@O%wmK+J>^mJW;R*39_yvLpo^}x z%wVwnL!zwCAt6b^VO^LzWaBb+tE9*D2fFAv5q$HR;69H#vmdXfVn2~$n%4J-sHgKI z)(TH6Rp0!MQIN_}{7q}k%9gAM5<9v54UkO4-(9Db|tvh)Mn^{XUNX*3?KFgabP$cGk`&9(H(7qCRODVJ0c0DPy+`EdN8FPCW>k&3_ zez(jb@&FzYkN5+LBa>%)oEAd3TMy=%hLu)iqq9Zw#lldZ?&=_^u zSKPQbE_XY=(4$u8!KWqdffBo{$LxO`^}lF$JX7<%0JKVQ$kN_44>sP&Q6GUW_7^B# zwdfz*hSz~NQw4zB2`+e9zCqv_{8Dmcd7{5?I9KO<`LQJTqGK|*Uq4;HP&U?fihX%i z{f4WNqxeAnIMZcIGl9VsoHFyf-NtYK5e|K2A^t4>7v$9%yQzindPrHD`N^h0h>qlk z_-g(P)H{%noC=6H-sm#R4cA4B{#O|5U?qh-HmfpxSQtQP-7J?k*WQpVBT+1jQ?6bZ zi0GB|R-U*lI3HtSs_)S|a&pxe61W!g!0wqI`}5pm{tmoyeB$>U8j#%$c)lA(gwufZ zsSF$!3oh%FS;SpN2V@Yy18vUA<(I})!OVL$biu_N51yn~$Ug9S8{K;x{HpP*tER&p zYEx`#-v@0d zC!{xSL&&wgmwv=xQIt3aB?!MwNo|I{F8wnT(`IuSoq!Z=5P;n~Rb`uZk3% z+OtB8X!^$nIZL=NNACEeGUM0X7{2A0F=`In6u zQyFbwG?84+I4CEimJitr;d#4qB~(#eWAt{&f;YORceD@jMK>`0DKU@T5cvdQanVyK zuP#KBCw}b8o`S+|-aBZso_yfU?=uk^VUDvAABE;7F#3Cs32^=*;TkTvZHb@HPhSjP z<;3BG-L5k?j}*n36HKx7^VdW^TCLxEGnU_7ak>>^y4%|JqE+&B{ivzKuIOq>8k)#5 zP^zy;9_%ylEirAFx}G788vh3gS+8moB5W>Y&`^Tk&}GGJL>kh05u2j&@Jg*})|Ier z5U6xh5aQ{v@@JiI-Ba7RKlX8SKTs3oxq&aqtLnN<=0wn9v{L<+^S*q=XT0a0CTQp7Gk^^?LV91~By z4GU0+RP?>a+pPU9@e1G{X=N0u8i=Q|_vdc^a=}yB&ae(+9Cw5cQvq_4+ zhz~FtM58_oXa;;^!9B9g^ES6{zSZa%BqUW|jODib=lr*%DO;MUQJUO8rjHNiPGxZ1 z;!Xv9>-z+Y7Vu|Y*P)4L#qC0j^jW6fBN45e5K@8djwpFk zG_!Zh+L=%-vS*FQ!J?jx@dRJI8!5vwxToJCe?ybI2+N;&eiq-FAw*v;zQ&yU6OaF@nARqKbkCx|QlO*XJ zaMy7@rKMsN=OcXEXIc0k#9V@rf<#ZRS-sA$gEV8R-8DWQbM1WtmZzW1qFZ|v@OMzf zG2R7Ow_RJq+8@=@K=qzB!x9Fz4xN^DnqFaEG!A2UeSFw&i%Gg=ZdJ3_jSG7 zzTYE%fgp*$>;O7Kre7w@;b&Ne9;ud@z_*kRUE&`8dJbjdafVO+Y4=^w@)V{h^Hpc? zv0Wv$k6ZhQ#m8wqnN5;ya zp2#ww_MWNBjy}w&sFiPhw6;}x>)4F%@ZlI48}rLaTX)tmljQ!5EdbTk;I|u|SVZ|e zjVfM?5?I_n6&ZSlM0jtHcF4N&2)uA>@Vsu|sY^DfYj)GI!x~ih$XoBhw^KVw3OUsn zeYD*n;NU?)hA!H~=(ci3W1gy0r?$amPg6u{8heeBiw|@2s3X>T+MR~DTTndKIvl`R z*>`ZNZo^67qb6!&$@lOh8E9$m9iOJr*o`rwiq98pM|bgQDWA3*$b`ix;%nF!O)pQ) z?Dz6FSp7{5mgbP^c>79PSr0TF7#iDtxZz+WHs z^Pb^4*okfT4?}MAO=J#RqJDMKTp^b8`sogWRhJej7v^gRr!S;jvWPLmpBrh5El`}+ zB!z}&rOW*H^7*Zx<1ok0B!K$Wsf!tnyUeV)rv0HwsseK^ZPb^I7x3KYX954El6@1txj~`UCA4HQmFfUUhQfl0X74##>9&lxze{Sfz2vUl%ISFknzYSj|9RqgD)@MSNYPH$g?HU zwb+JGo|lckR(%Pen|d3-iHcWo1k4_-mvV>@nIGgzD1Ew8#g*Y}Ri*VsA?CZ41*S zGx&R)22P`+T?aZt{`hMPMTO?Q)RC!B4DR((`Td6YH`?kqYOnN<{@by3@G*RiqCX`u zs(3ewkCfJBbj&-w9Zbp_^H5-A##lZ+i+^)3QijIu-Cn#$YeAJN@-BaK9Yu+HWSU=M zKIm&RbTOGadNw>B6ep+$J z4NSfY&q)S0V{PKd94(R8_lm%+Od9x|7!QL=RCotvjNIZj2X?}I)BKQi&#oA6S3s6m z=WE`vN`y|7^GxJDWga~gl2e1X*3_8_@OVq9=MM7`mvS=mLD`^E13Nd2^c#W6n=uZ` zIFIFfQUL1yk+Cga$sjCJhG5Y;=Uz`2`*uAkfQ zRkM#v{UGzAx{J@t?(}no~^#4KIkjj%VH&z(#*Z)DP#O|CoaIEXwVhK)Ve0~IaKoOmB`WGEU-9pjHSlQ7eR;jWOm=)kco9+HGGnh`9F-zGgc<{mhx~E z5pV=s*R!1^scRp6KEtkwf0Xn{6cZ`;}7E%%*vylfjx=iLTE&u&<(=<2pR3* zL;d1o=Cl&p_VxbjB4?NRe_wJE5cqjBR>L90dAh<4xU=GC0$ZOxH(E4BVpqVWjA(#P zNO%_SEB4pubJn(|&!re~KfpbgWEp{VeHXaN_qMIO#Qlds=oF#dLP2zN`X^XOdP2jS zGaQZNYGt=)XBUJZUt#1mzHyj=-!;3kAzD9xvS^$-6xN4WXFwajH4&x(?B?TYXNC5)PwX!ZU01?fU5&_rSJK6}#J|wkq)LA3Eb4iyR$*Wi`OZ3f!c# z4-#KcQ9h3!fZoPL%95aWcq}rrGZry6VcEStPMFh)ncW1WV+Y$Z^0PN_B?_nvPvQo( zOM$P?X_A1&NTpVJP_B-r9_o4ve+>Qkmb(R3eeoaQlaWL1DvQJytslLax|wGdp}(wROkr>g8vL*rUg zl9j01?E%&ETLB&LkTw%m_{TF!o?2wn1E@FBt9U_!vGfgR_8g35QhIBRdElLZjUaSaBX4eLU zC-RfR`=J_~WuAd%r#EM&gM^P>{Z6+<-WOv>O0RY7@*2RY$)jagHuS|<% z1(azN7q{o5gLy9BbV?Lhb>x}Q{#HD2DKb2c1tA&5zJ3dEa_drgQn2^+i zNU`xO@5Dwp{-o2a`_@yV){(PKQ%X0?BY84%J3=nE?e^Zt;RHGXt@Min*;@bM3A=4< z$8u3Y6-Z$HkhTn{24E7m91_@;zfCH!$rE4jYmkn)C1`m)$+#!GdYZ+@k29P!dX<%d z5l;xvc(!4DMcmPkX2RC5Q{^Cj4|18sl+BqJ1Qf<*gh4zs*_MkHCQ{~VC{3riUt*;8 z2Jd&_pm%Z2NA7Q3Be(|aVHue|XwoI`i}Q__7t!kiE-}v`BiYB=5%rd8mlP&gL$LKRRtA^qoAk;<&2~FKZL1A@ zHht9uzTbR-X@V;0?-;}ijkga2G?7uS8k4c23kJIgmvE+$9o5)mBJA(jFYp*z?q6Zg zIaX^Wq|8KvOqJ>D-gcx1ecT&?+)r?&Ixt#?k=MeM9|UFiY7UnoMyFex*6WmC1d+;H zet%A`^aQ6ql99Pkb>T)H^c>C9R%&9`_=PxC$bz@#_fW*E;IZqxZ1|;PIXH76 z3goB&=6(5{n9rJJm#1MTmJ`vc^F<7{J^qI)m=qm=-oiQbVYOlnXx@ka*gx5>(-V7H zPFFzp76}~e&!0J(M}}>cW6v5S_q23?-l$E7x2#0pF=!x1#TtN|j5KAgCVXAepbJ02 zal~olSzXXwsZp%hPVXfn5Ob!e7>?zkl#Myd++eZ2uf0mNO&(9M<$q)5a?F_dV`4Fr z1DgqM9#hslGStW;|Io7d8$Lggg@_lc%P-VB`}tP`uO*vkqPI7{_R{d>;9uGO(K8yp zW=2a5N)i?Dl=wzp31O$J9&p`(l(1jze6^{XiCN>X`Ig1IidD%)$#Z>Mn_qk=XV{me zRc?=mu06eT$X>p|ZuMfIEzc+=YMKc$=Cc0)TT-gO%Ie?Xel}VOuQFO+QFCnQMf^Hs zv8=4Kp;qz)`z5Cis~_0QH~O|U)BL_0a8Bvo%`%YU_Q=bj$iMxGLy;s+ACm{Yl3IV+ z(dFt5ngPs6PbKMH6{r+8D4IJfi1ULaE(1j+6V0#3>~@yC3t&y(y9X+SNoxgpJa>P? z|ICDCIplPLxrg=r0n3~63WXT0y_@(wNPSkj?tlxR`&cbZiTjCYVv^c}r|psW5-wJO z#aV3OmPGKXc8n|B>ti0eHomEmH`LkbJV)3$r*{8xjPzhnf0a=_5L{O`55fiu&Fp@OX){(=3Gw!;uHNa@JY>*%uRllQvLO7F5CKm?zOVccvstS zBA|lE8n`%R`f9H_v!1zpB)>CAKO`%Tlf@XKdgLeD_bqk`vT#x%-2(1(%}7)Anbngx zK0|6!&}%p^Q@R%1hmx^|j^d6B1rfa(mULyt+m?`@?o2f8Ka0NR zxu#Sc6q0Z7Ae2=H@?a}#R+6bJGphOWd=Ozb)!$VGTlljRR+i+owe)y{_TwntE|_X- zcWraT?bQFmuG3nd(K26Nh@b_fmnSg6pDpvjyeX{a>{Tv_cDnBF3YO#56}ppkT2wP5 zf#7An3GI0c_GQ2|vyA!W0>$i@+EOjdy5ghpLyIKd?=8+2S& zXXnrMa91pwxSLEoyZOy^WcJ(yI0efLIB?;Oi%B*OlCR5?qsT&nj`Y=8MLt?Uv;$8W`p_!&?IVXXf@X`-hI1O2?#vFIGT!+E%8_Sp1C7 zp~LcocbJpT^Flo#(OvR|?>)jq!1ZAz?nodf>jX7Ph%~^VQ@`qrpDrJg;eOb0Lt(Zf zMPgw5YQtR$C^56CzKQo-gQS-jD?5QSJJ;wxJPyvq+^J7$Ahx-*Oc^IR!vYB891-#H z!i!QH+E*syPfOah%*;J)Rd(v4urCwSV$D9Z_){;Hue90>AuU|Ou17|RmA&*+5(i7N z7NdON1$p)|5*S48>2I0`bANgdvu1aLJ_zXk^|o#aq)1jk!eT0XCzp78VIp^e^O%=g zBA!6lm#!BTUZ6@>K07AGlA4m#bKH1AjM}&y_;1udQ$@b5H*`p_N6hoa-Xw?ZLZ#Y? zyNoFoz89!*oni&<^!V|;c2;KDT?R6MDEbl+^y5DA){xAWRBqMg?}^CnGMl&xs20E05t*wBz?@Em-&$gy@6E(eJfaSDqJ4C z&WmGT2D!?wNw(rYjB2&8t+{x<+bX+NUL7~7DU^f3Cd{t1<;f&))2;l}(%uCLBgxZ$ zEW2{+5aB3;jm?9g#r-R9l#2aIt^vvE{4Lw77BsSq)ulV0^@y}6;1(q!o8lKe4+V6? zP!9`%-fIyHiw3!kN7Y1~$9{nBaD`fr5}kIwdFHYBzi@jhEV%sf3F`aMz`eb5>*%2Fj~B?zJA*deXc^j^;CP&c$Qw_DCbGsPu(R+>risfLzXNGI zFuks01E?@px)t~JeryLEHS+{$z`iZ*{)5S?XA^8@RNL#_F<;mpzr>?*9w+nS^BW?n zZA2=CK(=V92Az?Muzq{V_mCar{7Iv9wRCH%#6eMxhb5+miMI3;O3bkD204w$6-sqo zubyUJA}qhLbe7O!(Lpr7O1aK!V2 z|Ls-nA^V;r2#d2v%T$7aXP(r{RXyP2!A=p?+#DlMw-;qGK6UINL>N`Z_VXX6on>VS zkPOG3>o`MB00;CrkZ0cy?>!%sT<5L=e%`%dR=Ayka%d?o{8}J@Ucq9!?2ybY7SwW- z69aoi(i@-i)&$}jBf8%z<|;pDTgE>yOzj~)XIIAM>v#}tU%_e_DhT(`R5jvV9^V4) zi4Gp{$M@ic*9iXPCU7*$x=(y0pxz~3w&q8Fv+N_AKJQJf?A~Lsl@~ATLk(x4~BFiC- zwgjZNjE@!n#MGlmjj+yu61JOqYbK>~c$)(LavX=yw>bcujg<8GO_iFeMsI59a9$== z(dE;n{cS-eWLzvo?*jQ zRQjH51;zdNglMJ1VV}@{7+ay4r%~0rW6<}$6LXmiOo@TStJ6QjQ3WpAdJG>izi3ap zN?(n%6vfB-=!NsSnQCeykMF#7h&?pODZ{j=AtzG`<2`@;lZEkT>K%bPJtO=40vg8p znBq|d2kxldzK5_l2q%eG97D>w@*~erUZX`#j#d zHe6X_!z%G3B~K*b=KV|GtX^7c-#>rR$bG1DtzaHn@eabC z73G@n^pyaM0L$&g@kzodNw`v_dCT20;2j*Go2n2mA!Z-VapIsDLM!MZ&GO8b@F-zm z=S^EgI_8s@hAf`VIl^$=ck0k5Hm_5>-Kb4`!;DpSar07{v;a#CJ^;)8T6`(_?-GFT>3Ju5J$b5<^<#1N_LKjQL8K$#4G|GjJ`2 z;IRaxJ>T!=YROB?d*z~Z5j@%#6gld2K?1{Ja7|sv?28D_+-n3;1&Tz$3fXGh{L-Ny zK{zPn9Bt@2zwVbTW*SwR^I|HGQx(cd*Kdt#mgaEM_2s;uRSHibza z5ufZGc4R1WXzMMaHHSF}xlnJfke5-F%D5k@rf#EI(5EuyADRyx{nyKYEmj00hJBcz zyO8oVqo9)CZQ+o6XrZilgVVbcNk*h*%X8#ym)!a)&gd-i4dN6M54JNz%UqCs9sh>R z*ivR}`B)CxpZE0(JTx@OSIs83sh2&Ae;8di>u(Zf+R(UIejYrp~<*yy+bOj4PIRbR8f z+~NDYNZ3b*r|oXd$1XPPhuAFElUt%@1$#!(FJ+Hv?oknIY!@}|#_o4h&v@$VhR8`F z`l7~Mq5AgNAfzZRCZ=eoIu1L0epy-Pf656hWO{WokeT<}N-X+LU1Fk%Qi(u78Z3RG zI#fq{Dv`xhd|V+RS*q_tp3Kq>_d6}wQaITPK8J=@ses(6B;mUZ=nm%iux9_=FAI44j!OIy(ZizDm#9EO1OvGB6L>4k<{*FTAW=T^jW zlboHn_xS`BoI3weG&w7m@U^w0{#dP%6m3w6Hz)NwQGjRYY9m+cS7!+J)F5XfZ*Zz2 zFuJ_$&9HCZF9pP#51n}iz%UXl&}@Pm7y-lHvUr1v9IWL$;!R^yLS1`tyQtM7v5I&K zZn?w5=97~yClwC@WQ8y2xBzsFhjq^iONa3kradIK|E2zC4r< z*GSFW)31MyS(e=Ai9+3y)3A2CZnPbXxf15c5Z`Ys!G1*_l%V~o)=V%UTMR1%`^+HS zh^%h<{%gwn&@H($O^t{a`s#@Aq|_-sCgwi@&WVW{?SF!u$IyaSAX+gNMt~=4|l($(8w9KHo z{Rzz6m2DFAX6x$xfwm&Vn8iryamWO04AWlQ}LhX^ErjwF7`I~fkypzuTOjG?%RSg_ui6tJFEnKbuprR<%Ykc4BkMEy{{3t zn*zVez(1dWN+It>8!f0BRIr!gbeyI|zeQ<)XCuA{j$r;Dd*2<_)Ux%hC^n8LHWUO@ z6a)lBdPk+`p@}GnGzIBN0BJ%KM&;Dd-lv)Yi8D3Q`T>y1xUXBL#4|`Ys>3nm#{{0OHO$7SNAn} z$cpM(r23?_cW==AnG|L+T2z3RfksPp+fS|${QYRx;U~LNL#dZRp>1!PXV#Af zerwzzg1l7K$xp}9{v@AC;ShS*1WW@paCd(MPwzPb4BQ?}e!2VXV`W(8vhba~C*Pej z==45t`QxF1qwkJ*%9J8jFB}(MY7^o9JSpRm!>%=wyJtZCvI<(a=FpuZU(26pxS1Z* z7~AX8Br@^h-hBbP+bUe$EOw|OYZ3fRu2?&;S$d!U=S};hL)VUaMh^iSrs*(P$c-tp z?z6Yy$Wjl>QW|?W`)(B%#ZqHmVB7QMKek)r!sFWvZ@keV=j9zdc>L7do-5VzMtaHl zFWfk@9B!Jlr@$=FMDVfiyq5o@NVLIYZze~~YSOkPt^5mB?OR5xa*w04bP%7{Epx6_ zTb;8Fa;PB_7!nq=z53e8Q*6bm3xV5&n0B9DcwhVKc2d(6DzRsnOX&s2!bxaO(w-a6 z=1u$3_CEIc^L6!$^~FN{Qa<8!Y^|o6-c6fW_J=Q(K?j-Rn{2&82lt$+@X0>4Yj2sT zDVv}5ScfR=(`)+qp1k#)Cid9rt|TU;fKvyL_7iV4iUk=E3g5cTSk-Qx=SST)Bl zBzS%Zh6vs`18nXc&OB&?(TcKZSv;Ap2OE4BVkv7-)VQ5%#A#vS$6f$)b7}tbxn&)i zSHT@Yv0zv%yq$UJSiex1VVI#_xQv>Vlum+Y*O|{9ySE2xG}{-gEq_&B(BSeN_J9RS zne%!#X`W&|BOlK8CpgcsDK~T%*DicSmHKL)n>6t53d*MqPTAFf-t0deMw0KAe%_Z= zl-@EHBponhT2`TFdJLqmDDhb#D(ST(!8Jmv_9@L>xg`P=f(9>s?uADLiL%uc+d)UQ zN9Fh()PZG{M08PD3%=H0Bt)?0VDCbn^rMw<-MxHuJ;Q zwD2%Hb6Biv?Ouc>JTz*UleH7qdhERXhU95;Q9B7kA%zlGA?`mgmsw#igVkIvi1kZFpkx#n^{ z?qfv(*LK#$q~lMX1`3@H8g{l4F(oO8DFFv1yvW3(qouD*@bOHH2 z31x#P`Ze5Y&|)jnU^faiCRVW>$01!kU@J}SJPlTtx$K08JGPq^EQ2>qU0ptf7VO?TpYN1-TfM%o#Lt1Pd#>>|o}ZFN0+uD<1K=mG zyoEJ3XAv8-`aNhAsR>!EYZ4EFG+1@(*jZaVz0)A%%sq0@T(jr+T}7R@b~?lIbX#-F zt4s`Xm`BdmIj|Z;$qw_CV{7w0V{P)3qkdn|zR&IH@IVqK;Jl>wYd)Mx!W-36-av=@QL+;MemkaADSZA-sUSMITfuqVAoNuz&co&p~ z*ggy6&JT-z9vl19iq|GVHKg7nw$@fmU*XU}Qv*`l&V`(1!H?O8+YQx=d@pEkg?lzm zYE1I8RIA%)Vf&pA>%S0Yz|6PLn}<38yW>*(>N=$McwZ{vXq{H9g2AHQ`FSl{fMZIE zpBE>*6w&0P71bD%M&31_ zPEB6Sy@d4=`?K7gc8_u=mCf8P*Ne5C*F@6}{V67H$uaG9bPG zD4D7L<2M5O7Nh)ItCt`uLzy248z&Pa(Cv<;>QsX%GuElH;)b!O5AB%Lik%diviO-Q zABQVX(TrrD8Oulfwi8k-r}Th{9GT($Q_abnTI=cv90hn=1vKrZSES300HxA@*;eFEb+VDq3SRAc|^LXJ>r0N0YG-DA*ufqp} zdo$PI%lH0hhg6y+0ZuSZyrvC`b6Is5u7SKsk(zJ_^EXw?I9%JKW4r?efh}A!^8AM5~W{$ zhbr5Z0&x@^f)cZvXTe4 zD$HcbP5|6Pb+~)D>dXT@F4+!+dY|Yp+JZIM#5bB|J@SfRctYUqyc73UZ;*QJ{zgrY ziLE)tJ81gO1hF;oA;(R~ z!r2AywQI|R^5HxlB$~rS$6~8t$dCE2Qr%3sfmx_zKJ~D?p%=v9#7~+xF@U9 zk2rJ!A*(T*Un|E397KHioCT*?oo3kD{FAyjnpdLRhLLj~z`3E7pF9Cv6PC@wgv8|z zZ(LO;>HVG=lSy1vC9D9lw_x$=@%y?&s(!|3mVegQt4syMNMV{sfTjkD$NOU_r3DEr zEJJw5UCHTM0WUyFBE3zGP=!;_&!I z#8wx(y4WH31IFV%?${y`IMe+P0G#Dc%N95bcXMXom`?!&z*gBwbu;?lgM1WFNcStW z@9-9@?U-vRd4+*!h11=TRklJ8L$3}$`zy=P`0tQPLg?nk&kn;T9r-GTV4nyPVtqdlHh#KsCi zt%l5R1?K1c1<_$m_p*+?vUfKSh5>Nr+SCa|45FQd_^_EQRRTqIK4SfIM4tNBt7`Af zyfzBRjDoKBXNhUb)(SzETk9m4$FoBDzejIdXjT`6_fM|@0|Lxq0o;4T z^(I4*Nrtk3>V)r|CqQ)2(7T7-0Nhw;xzvy8g4CY!XUyZZ)y5hGq$-qfh`t5d10dz} zO8}cXFI+R!K>3gX#FC4Z8}9-yht|MZeuwvPjQ0SWk2o_nO%4DPi4}v^j123$0oYiW zne^$GXs%B;zsnR@E)CZH7p@L>m)v$36#(xMu(CAT&a%G^1d=9x0pLa!x{B2Is~nUR zP9M72+$d+930H>CgN zF)ZFg&5o-l-=GR=PtZFKAWP-$OE5Kg&GhM3c)JZfeK+nz!U>>mhJ}&cL5RxM_0cM? z+&Z}Te%mI!l0QygXk#=ywZC9@)3(Lbzz+GQSn_G5dU9mnEdxK+8{qqjdl$SBGGmiSWlGyvGzQUG6~ zetb1I-G#N)jB3T|UhxA~uRp!1@uNd*tyfEmC4ZC%-^HkM(4l$3@|BdB;~$8xsp;c8 z2AG^?C_P}G)%+ieFZHliqCswZRD9PzVxPRTtSWE(%8w&*J)JJN0kGV`#?@w$>b*Fu zwQlcW?KhjjppkGQ0|!5ihjF3(LEi10SG{rXLflWgcLb%b)&mez=antqef1Fjfo8QM zFmPk89thlaWM=>;UGw-hbO@!yN`KjT`p|{_r%$pWU9IsSi~Ij!4&4OdC?(vcOl`Nh7~Anv&tj?30Gc{%AIw`)s<`r#MkoMYP}7ZTdyh4@dnXn);z z`oi|=TgN^;kVpIl738)Dg!@#>Q~HdFlqs`g+8ygT?RbyIQU;(C8~P4@diKftP~h-; za~&OJ*IG#I{_Ua8%FN4NkyDWij(?0g04maw{9adENGKTiqL#Dm;0py@ZZ3UaX@9uPUj zK9u-vRZWq;5J%kk2YMAjU{STAy;p^?+2@0b1nnkhqK7NK!|`nIJ(qG|9xn|H9guk{ zl89ROm~hFsK+e*|{Zw|nB+OfE$>|`<^Mha4$83UQ_C2VAC=zc5%50T*Zdbjb@Sfs0 z(CAHMmsh@;kENWVnDo^>-1>^8qcoB(q|!CuWIM1uY47ux`k7ufVzLim@%rJ>^R%#2w-(GbQxAT!3(WU>*kOPvtH;x^KQ=5Al|5Q z@U3D#v!Fv;5LE{`!z8xXx^mFF(0}Zku?)_%_S#;XC^^LWZlB4) z^E~aZ8Vt=dHfo_=awN@DpL~@sR-rX?id`4Y77|ispOz9@>&~4!$7f^1&F+NF0rUh9 z)QqhhjzUXiK@+~-@;+}(!;p@g2Gi#XE5xOfFtL8I|f zHb7~`Mj)+kwjp6Qr6o|UEiwVMwVkzC8^^|Yhnco*qSELF62*a5nx5g?g#)iHE#nAQ zs57tKrjL&*DLJ!cZ^Uc?v&!z(=Ev8V6?TI{NF(eb9nMRXJDAUPdm)dGHE^QuRoAxE z;j4}^fwZ1CUh1Ejd7FPZtZi8049yqJHK(Te{$b~H;&~gTgyg@#K7;aY4Tqy?s|zZv zFD`0RFHD_impXAmPzZo1g`{`4Xly}<%~xj?8)5UmgAQ5F*>|PJZ#b^5L9-$fliVKj)^{A+OGhtaeng;{hz3Yj5p69P9F-?$T zP@M&HK>m+2kb#XR_<$<&7Oi2uD@qA?s}mzH7`}$UmmKd)1dUDz#`nOCY@13BCEqha zI&>eG5}9r0kBHtI1bTaPhI{Gao;p&}q>}Vkxixl4G&J!e=dZtzga6;fgJETVxyvlRB)2ZiKYh1N@6Sk=wmz zgD;*?wQT}kcL9MyZs*~kzv^v|?W1cNC}xo{k-x8Lb_~kZH>2*B(TyZ)L!_{Sdw zQ+_pn3ql>VDm1Xp!+9sw3l_jS?<(|~m z=vLpW|0XFrPdUD?V)o1Jh+S}SLZ4OG!JcY(0A=;E2Pb24Ve≷NQdp`QJys&U6~k zX`OFipM1*Z=jBOjG(rc5Bdw_`2xS1yn0_C|IG+o65&yHWg;<>k{viO*7-7C=Y_O^N zSd6J{g&RTkw(x;Ds7b1NH()}3E$FZBnUf7qbyj)-XyxLkEwFsoT$=Me4tkD*8FUEk zlXoTH_`lqdUj%&c6a3Ng#{$E}0v!RPv3#FG1pX7N@_+#8REj!F;@Rfd)5K^0hArP~ zy;<|EfRuLwpxgTS(3rrnN_J*1g^7w7tE;u3ESxr6%$r}CO|Pl^oy?HsrQRq84d3tQ zMa>Hw%e9NZeuCk4Gfm*CQPVETIIcV3|U_;^l zy;Hg76w{Q7!_k}50PiUH9i1!R@e_ZQYLT?z9HW6@1e$y_EeumU55u?%`C-0cZ=-#x z)ohi0n7!Wt34bMOkGb!%=hPZLc*R+V4}dqF9|xcqB^0y+3;hbNYg!}J{K4@WzqP2K zo`$GauUeq<5$dWTNU%UI_`vKJ%eypo(D=qe+)M?eaDEG=JAz+F^LJvGE<_+yvaM@3 zi+W?KnyPO&TK>IxM zm~y@=-fT!dB6cV*Hxf}PM}5{s@Ir)btdn!Z5&24&`c`VSuc^aHp;Yq#RHlKH+az#{{n=RcEbyOY%zJE5Owq zQQ^{lwThCX<5QsR*dGNP-uVRBd`esFB7_eavae*#hO;Hb8YE|C2LRaM$-35)Ur#3I zlaqy2?Yv5YOBAuTz6-f}M3u(27gd#H|AmK1Q63VdmhE$2H2^?ZXm}Ude$0^O7Lfs( zdrS8$si((0G88_Hn|;fGl@PrjJ=_k4W|!Qpf+XtjA4pYKw@Oi052_;`WE4i7fDN=I z<8WFLt_H_SR)jgQObS1W+;I%?$J>rJHZNNNFUqAAqVe2Rn@HPGZj(YH%)N$T+b)-$cG~dn|`h23K*@Wp3GG9Nhe~f7KcoCd5{&SH?K~~ zQ2ph-*GJ!0Ng?$L(dU^WUXzR%|3p(@ba4-VyuJUeoJ<8I)M+y|AEF0tv<0IRtK3-{ zb1h+9E8ej#-Ccyys^WamG);I2-D_`6C?>~^AgobAUXuqIlzHwRgtdCl#(E1omFO|D zdp${tv2ii!&9obE=N#qjkAm1VaQZmvOIU)I;|2s(>`FjpNNL zvJ>p4g30+jQX;85m9R}Dv_Pnndc1tHo_!$9d4gH6i)R{{bll|d{OnD#lYm!xyh4Zr zgg1UfB8zAEY7Vchkc56d)40RN0DmV(J==abwo(qdz#MIs=my6c6O7A=8~$F~S!;9K zm=w%4=Ej*7VlI^!CG@858f#6IwKgHA%<^UYvyOj%u(rXZxJ2joMr8Vgqgk7dllD53 zF|F!!Y`Q}LY7JD&9zb32GEqg-MrD;Z2xdLfh^duLAJq7kW8)X{LlZKHu^k<>=gZ&LvQp+qz zId&G^kH}It3`pKk*zLHa;f<9FVCL~U5rfV7G3RD{`nmy9lKw$V@xSPc=rZ_D;m8jf zyCts%z{R5{o25s5W3zd)d3|G@h?2B=RZhPV-x1$A?GfKGyWjt>Q_B9j2f}JPYC6g& z{J=RJD0*E8NO{M5R&^JQ!BnG+5_ZvM1Vk6WyBjLdwZ}!@J73w(xdDC<7tX>VFY!_E zsdS|ZJz*4KnfYwKr6+DL_f7fmY1z)X!F76dKXb;Vk=sb#yT)ENO)vM^vQ#;w6K0re zK8ZdVZ_Aw3_XYF6(b)3 zxxr*TwFoD3UbT^p{fJ;YKRa+Kzq?q^l>0^|0FmeWc2;8TPS^SVO1tt~af_FfU9;(BTP#w{Hg@;>*T?awRdu+`j29DzuNu@ zy<3%3cnl=qLBb#(&%C{4*_Edr+|%t-?Bp@h`nG}omgr~1pxpl1v8>C~5hKt0fIb)T zv(J6|s}ug?fuu_SJb!NHY^Fjf8k8+Pp@h3sLh_yVoWZaw%v66(rz`1j)MlmQm8s4_ zQg^Gak~?%{8!j4%_d8EOdCa{%{+JwK8Wxb1-_E|RQZKK)eYnFjo3oZYmK#U5kM#$+ zG;?G2+eR9VI5eHOHxd}6{^!dR(^sAh`k2?$BB*0yO@nVb)u0S3bHN zGKN{I9!+i~&ae92QZq3hBM(=hc+BK*b1hWwF)x-cx^D%K@j$ve$AxE4vW6B4dFQWt zrFV?!VXu5BEa;{? zSf7UTBU&mbD`p5>Rsmf%3O;&0#%Xxkn?#DD&mFC3ftCM*R zO`|Bq$u+7YJyIVyaA$2 z1TOq^rG9ZDemYxlsf|j4HO}Hs6i;yzOfTM}E7ifNuUEqm3BZJakMqGu(%Y-i)tYzxiwS34!_ zsv_i6D)fR!Rukn^=KhG`qkJ1BhSRJwF-~7`2HmZ_r7ZzB;}+ZYCQPj+mOibk+O``e zJ9M#ozsy1<)GR!%3Wp3khAkkN0Mj4g0<6%$hK-e4`pqzJn zY;Z`Jr-I#kOk+nc7q)zz99;HFr^9t9xNjD_Vdc%2t@++Pt-D))*_t$yg3#f$%7I)M z*E8_`#QFI$AsBV>R%U639ryi*yHT!^c2#APl~?iq!*~9{%irF$bxi;qETZG^5_`A$ zk1{j`drbBb^s}{>hFw+RL!7LDZuIQwx6P@8VRKJL22$V7YN_M2aLse|$)q!LEuvn6 zKRg^s{Q&+gjrQ}&I3#NlXkK!7W`T zUjMdKttELsb=~*ge8VNnFeTI3HA;O;vWIlJ9+M(vaV*!!PH9m!%okaJ_I5=T4V-Y9 zM9-ULLOfkPE={TC`;E-q0D3SJ*S*6W??+2a2>HPK)Lc;f79CL@c0jx4sfa^fmui$9 z2!Drck?AqkpOeKR5kt$1*Y0HMWdZvljpU$rdHDmL+x_1u!5@k*dBcD3#0+yd(?P&o z_(FMJz*6bqm^HF3@5_w#NA0Ei;WS5ote#(RMR!Fgx38fN-&FDZ;8A0WkEep2QU+vU zO0{cvma(yZ#lf)a4yKlx_+g(o17BpMm#x(Qv=;wOFMlUVzzgM~>!W1q&JlHP zxr%yB$h5Ymps&<&+Q%%+e`6qQ>+S$Yv{x;t(98LBNXPd4~hiG0jis9qCD7dIp6Y*F4b%w zAu^Or_KB?OmF57u#PM}0?{;2<-VO6N#LeL($hIK$3UXDkZk&nWE{EH#3U(0uyAd6P z1OB-5;Bgn})=*i-+_VL+Nm!Xtb&M0SwEF`uDXtXrWU``|kfeen6hm%FQ;K!*g+jo% zDA;{H5m3b1YT9^;FGiOCF1Q?W^T<7!5{<7QS(mXvSRwf|Mi)~O4C+&Ji# zd{hjl!5!KDi!_NgLg`brp}0J4Pi@Ok$~c$fI(@rEePaKy|y2Cq3DFc|K=uP~DfWS)*sDw-RFG`v^z zvb_m7y^ASHI{4v*bfUtHF19)8BsFr!Tt>U+Tzvrbjx8k4z%9+hcy6P&vjJwUhP3n$ z;ADLAvi*~nf3k^WA#eZHHMYL1N1<%Q4ulG(mz5_i-pR~;>6Kn3tNu<#>`|#MFF)5c zW%>V=dH6V>N{gl4E4FGL4;J8du)h+bqbD<+h_(vsNN1KT==1dp`dM56O{sTqecIw|N9aKhs*vI(Ev zNZmBW_pT2Fd@)O}dRgigzwMlMIbcbrp*h-hS*e#uP{Ul0JYGy*l~nDbsWjjp8RTnY z!WIDq`)DZFBZpUafF)%f>$wT}tX(U;naek?Et><$6CS{IF$*f-g*+d4`$^w!RGX38 zAPXk)naRARx|_GVoCVPI{;PIMV~hDZ7}mMDmgBgO)m@8oAxzwobNYTmMRVujmI#+d zOt>!|QaWTlvepB=i+*H?2kQ22CVsMqL{GG$=Nft0wiTNN06nzb^SnT#mn}&g>Wr!^4W4?+bvOH>*c((t%?9ra#uAAb-$_^Dif9?%+p` zAc0>ei+-!AR&{lO&Gl!%nn%m!h^PF!RXG{?KFNiLch@rg(-mgidk)|)qfP*i{Z3L9 zW-6-C9Z(}aYJz)@WY|+Ua5&t5oR-=u2`;iual!Or59r`K`f(_N+e>u!EOIR&J|dN@FW#T(AKFHkV{7-kiC2g>mCxZ@R!0JZ+yX@;L{Gf` z9HIXvU>+9tW5V*iHfNFuxyPKda`yrg7U%mF!H>%AQdG0_OgU6KB=t~P zF)Fg|lN_6f?XZKOeC+SR33y_<`{F3H8#?CEoyb%tLnrP=?8M28)I}Z}$a>@bM~H{& z8RTr_SESQ$oxr$s--HUH2}ej%4A$z;yiVeEr?OrIxHMtq{l8Je9z}$R%G7kvXzI=SQfV!H#_C)b0(`_X3>jqeWQYlnW!eGH_z--&i!{7{$&Ar8RvTBZLphZ zBy<}i{o)Dh#G_4qXI;z=u>{*eio>pj1(wwK#+G7WWH+4`_-=YEB5j?|HX*fgNZTcwo6wOSXh5tGZ# zM`RaU)HjzL_!rR>MWV+RJ6kOO#l?Soa8;mG@)et3lQMgsEpA(455-#2U`C4)v^W_A z-%v~ZvKQ|Ynb-qsb2c`Z5m8NLzHz&9U~%&QCg)$vrYLaCd{Y6iW`0|ss2qN1bfm}D zS5D(h;megu7j8f3xpe*O6S$mH$a74^pZ9%r2jCW7Aa313ti*rb@D6x4+-j8WVX6_K zFr_VXl@ZaTz^-$ok&@2ByLBAK91-KfwCwzp z%Zp-7K)=-Te9!UPar2a+?iIo{-TQ=VQ{K8$b+3=Ls-1KpES>XJeN!&kgmdjbq;l;2 z(FxxM?pB8;sDDI-{^7MyO@?-!_4BiRnQbce+?s^*?X5)kx zF!dP8BT==I@6WkgUz=W2!Q%2yp@~lHZfcVIhJ0TpqG9fJ4o1od=9>XIpp*X2+OL}E zFTL~a+_>h9ZeMeW;(URgQk7O3x?ka_ODS>MevR5SESM7g0bW4F2Jh>RI`M0R|O z@KJ7L-A+Kuh$tXhnRfbRL=WpX;rH7V5Zp~iw4JWc0gCp*Ao|+iw~SK~Jus1V<&2bY z;bLmo16K~~LlIha3bffr0h00XgqSbz_`EGK)1Lv7c@OTp>ECIf+wffv{Z}n(m{(|Z z1g#g8GG1%7-8Ytj`_C*4FGcQfN!9 ztk81DkU6p*xu-lS4K}Frej{eHBylrt%=;UAt>N8$K#zG> z7a0>&=ME1D*@UGLf+qu}ue&7(xd?EU^Y>Ew*BRO>IOS!$!^ZKE0Rc+!sfPi&U+)~; zbe9rmZ(Z=9PtKrKBNrhd<*rQ>|AzGl(~Tf{g~3;S80TR1L2?A0rm8 z9DfF%|CWH4DONK+n@oG<1?-J#*~8Gn9Ucshx%s5zl6>t@*Gwj|dy%5`gBRZ1 zM6Ge$SEq9?N#PJaLoN?-1Bf7suhAHq<-QqqWRqaJamG*0a1g#|xJ)38K^Ytwu16LK zq>Xn&l1IVuRjg6O6P60nrD#|iqd68lsgB^DVvP!5iV^?WBLB-+8DC&qy?p)D*pn65$W2vxP0HU1HTA6gS zCo?kh=*xN49V0U0BCy8IO_-Ekg0|AVbJeav1R-}?*fpHs;M6tADwyC1oC}V6ndaK$ zWf7W&%4i*uoFMTQ^QTX^_Aen$xbG`{jZ&9{G>IYLtKHl@<=>XM^m zZ9jCQ$erYCTMkZZHUG;pr<{uZ@w1SSMt3Ux)=JouF#~|DU=BC4o4uLE{LD94`F$n& z{Wk|PztOUR_hnZWc(XTZKaCK8_rV-X7Up+|MK{Qib8@PQX!o2CiQJr7jwq1@%9TqD zZBaDYN$Z2_`!s#Q{Kj#%4P0GH0r$R1*XK`Wvb1XTjoroD{uhH_f#BW%8pN!QbZ19o zV8DUy$Uua^UO!Ug!NL&g2=zQcdbC9IE|R*39K}E7_g-gh#BoSIe&w1;0{`_Q{eI(t z%wDAX1uzd76=uiG)TvB51nz${qR=a+`X-3veRl6W^lWEIM(c3PH>8v3prGpB*0x7X z@clBU5{7mTTD1-6SA+6##AND4<`P#o@w!t#^++OA0q|lBX=^IA+t5Tng7*{Ahe=t@ z-~9Q(=0}^>RAN@HHLt0RsWomX$-kYrt)>s?2H3w`xGmMWK2fEH`a1mb55eD+#4G6e zl<#N!{=-E%()0T^se}9ejgr~J?)i@ozn8$K^xLL~gIBgE{q6>(0*4m-mh{HIQ|AAl z%zw)1|4Z{9^7wzTZE~o!Vpo6ba)(UwS8VbttjgG_lfp*>tPB#Dac%u^zKTbe$iF4N zlGc&^#cw{lbY-}-+-%>BmW1#_`B1rGr+^r{2ljF5VjY*HOU0FyiJMVTwu--hZu2LS z8)I4e@Pe2$4r9xTGxJuO1YKsWitL+t_9ng6!((E>kz$-xdZ7_f?OsyW&^;U{ZC|;0 zVB6oi#5Y_l9+B$E z`S+LGo_!X}%zd64Ik%AqGR0wTk#$5;gr$U~AM(mlK;tUXI9Y|CiBo27-Zp)jCY!K2 z8w#Q?P;G^Q#2X+=s2;_^2?A3(@iVD~WB1p02@{s()?vUlrZ;SUor=CAu4ZPT3cLSK z6c}$yCBEVuDE(i+d-pKNle8cY9<$;KdvoquIG9aD&ner98YM*i= z0!G8mG}i_e>{5us9o*==pq;ei?=%_!c988fx)W)fCC%Y4;}^<4EsgTsObj>$ z(LXcUM*Q5}<}TP9fmpI$XQvuxv0{>vY=13g+gdMZn*Ey|^@?~3LLqu~I{&8#x1CDt z%sZ*H^^tWy#RwsA?0?ou3?PER>XZ+`JUc zJO`Y=t&I7l<~00oxpyx)oP!2W1uACI<)H(V~6TWs#KQK8m&g=fs9$AKpv{=Hg z^0_7&c11n%y+dkNO(1;z!Sf`VgBfSzukyd{J-yYuKG$8`HzT~2LBcHVm+BFTOoFxS zUzF$rR6(U;QluSL@z$@OXQ#fR&W3gdh0KVEr?@2hqIh8j+xdPH|5_;yXdx4CQ8UMS z43oP(4}g9V{;B8^kB1gvRiBUb$ikoooa~-IKh$uZ`kGkWztNQGZs@dKwGmAv{d^fX zVC^B$>=%ihKOW!0x}_b% zr#vpH1oRS-fJ=h??`nUc`o@h>nZ=ETG*gYCMr=0Xmj<=(mGi(xCrBACntuLh5374nFmsKui6u)q3+)98i&P#e$fgVkK5bZi-A5BLSXIe|FIXqU_0xp6Uxqk zSY-E;gKg}hVnEYq|1A0^J5{fvZG7*{&zFHuw0@OwpaoXZVZqY~Xy9sV(norJp@&`X zX|43SR(>G-Ih)eY3{vhHY5YyoltLi&MDvwW3H5Mf4XaUDY6kf z@&2V;K!d+IeL)F2872?f++cYxf4$Db^+UEtc=pX~3k;h5m^7_hTH#X%b{Q-vR`eha zf9@5`->lyltTpwSAIOjLni*&qLAtmE%rD8$_f$UhnjLKRqm#f_pC2gR8znUSltZ8_ zEJ1E$V+Yd%&7S3W>qi0m>a&fr77|?Rie1C`%Z;-PxtVvxx8!g|<~B3A7CL%u8B4LR z?wwNgqZP@KMn0Zdt8dr=?))ePX<8d_G6pXXw8@Qc?3J_my2n(*6_=VXRzRQY?`Q#V zRm4mS%S^4In7+O~1%V$0zCI&tkXS_bCLBRRH; zA2mo;a@t&-5kUGkKQvV!kCj$?&G&XOR>%(Nt)W0S@6)0OjQKk1eC+{2(#Z&E54&TARmYwJyb)=%zHxoVBe$aD0GjiJ8 z3Xatd=b5sP$TvqNV_bUbM|>6>`?Cyv2(wJqh7DHkNDoKcAckWbt(0T#tKZz)+R}MG zdCO|;H!cH}8;Ujqd(3Md6vLJpc285*M)^Q-adDNxiHU(xhT+QJoc}zok1b$h<^j=I zlwK%parV-qnS0QMZ>=bS$QVvmC<8%p>1ucYz4GpD%I2Uv(_a8 zennafuj}x8k*LuZ9(GHw8<3#2OHfxjba6OyNK+|!p6F-k?Tt(*VNC&{ZIi;GKI~M8 zYPA_*I}F@Ap|uF?9{tyKN{V5y@r8(}jwDtL=GYw-Gc8e~4-~7xn0HzY`0@?#&^*1h zl7iO-ku%n?mD^GvLBQM6Zcc0EhjzxxyFyrul~Pk{Sos}w!)@2t!ya1I`jvZ;Mlib$ z@Pi6b8%kQ#v%|H}3SQr_3@Ep$ih#_6*Q%_}eq_Mr24zH^s22|Npz_M|G3#oX3#Di^ z4`B=aO@6&X4ISsW~m5g)&JM;8q$*4%Fn9dt+_k1r<6sfWyljnj zS_H3pw|8x|7(J+2U;AH@f5pB3&yhMlgB4{{1{M&W=O)M^9y| z$yV|j1_X?QgB|wCvjcZAJea(P7*TK1{-MgtuFd<|saM{!FWzZ_YhySpW+88|Y#!h!ZU~@GX8l-iK zkD~&DbMDVH^e80t<_3$6P*i>x^5(F8#2vdhJq4f5%jc2nBE%uoI}f_xJoD+VZwtR5 z(k1NucFr?a=7APjie3Aat_o;751c3i7R7lP=YbQv=?{?y#?)BTZ`kynq%IS8epH znliDuLrb_PuGIc68D5)jO0bgi*|1=)PDY@WA@f4P(YYpf3)N~ZdMyOoc60JOHfsM- zdb;uX$60JOeF0)w<>f9si6@iQT<3hiS^5d`*cV2E7TYbKQS~K36D>b9Y;!vh$Di-s zpGhmVwy=-g_(}ky$5fl0Su1#I76LxE%eHx01#%R9;H1JA{_BjXSnFd<_3Fl!A7_!xLm{3*+yB10yp>TBc3igP4ksu*(CWp$ z^uU5@&5<%ETNDFRxUg7F_THWFWi~1@0OtfP2Vwi_SR_}R*N`P~*zm?m zVSpFYAdE+L0Vto7sSKqrdI@4=yIy3v5?g{-9S5I@OS-yixrGT0mCXTdE6wgfqH=zf zb~b8lFhTCY>OpyyA8I=b1Xv&1K))dtX^O;#m|J-YqIJSf*r`J4p3UEG=bB;xdxvIr zqGTyj8VUZj5*HZPO7%VP*T#s1Oc}gUkm=`#`pw zTaSjk+x%C+jj;hT3G2 z?+57Mu4`Ey^$Y3vcJ5qjUI2V?L&4~>1v^PAgnNn^JTeqqhipxL)ERcev=`cvccQ>; zV`a!1_cBU&bk9Tm9qCUP^{02>KQBv7whV`x`Xth=vZM{FqpGy?a(l)~4Gp2=&D_Js ze<-5;M|;eX5GPYhSh=Mas~o_4NcNZxg)y)WaxQ}xatTF`#g>ueo(5zM^=4CA!M+y2 zRdGkJ6})9a^GC{xqs2_C$b}(?VFD-$DGB+Y?dE)MZWgA7WWwy|lE+$>yWnPe)4_oE zGnnlmY^s7{RJoAic?-&OWOK|b7V!(cIs)a?#@XhFh^3t**UOffyX9#`Q? z-ZwL39Z>7iajSO#Q+&ZZ$En&8>JoSBg~2YcdcMO_8NRp26Hq5ZK1_rByX6aA@&r9> zRj##jZF(HdvKh8wSF08|`3`OhQ;8!boyX_XH+GY81GC2XvIRg*xuNlU#|~h23BcAP zyAoCVRp)CAQEEt9cDc6#X~~zIJ)|Ee*IbL(w~Wq%wyehy$wO7THxRjWXF_&uKHRgM zPZ{3%FY%`+EbW^ywSq-k`r>5)*%vf;0?u0L^Dv&f*_Sf#WfOpZRyJf6z^aKedOFKo zAtD0C7Qt{tbSDeHd{petyc~F8y!ilkNaPH5)9>Ws93~gM^!l_(;pH7-xlY(z6J&Uj z(#V?(UA!$qw#S69Vwfa{*|q<~!X*#d1^L(d{ZrgSmtO+b(da!})jp%$2l&e@tGz2Z z^Pa@h^@u|r2ROw{@`~c59jcUFVXpbl5e; zJOvR$yH!h5?QTm;iD4TfQbU47&;eB?2tr6=C_+SvL`a19@4oiF?&rCV=l$|N$NTN} zg~LB&Wew*#&)=|?UYAnz*ml^yfusxdSIPwgdOcymqxHS=dI7#>>*I2qIW#tko4;9E zHX8Zd)>hw><}IHiqCv3@fjaP&`NsQ{%|Q{AD4iZnHJmlaqM$DQ-MypEz;(IcUbcXz zBn(cfHNoBR*9uh8c!?)w%ntjYA}O0tg-2PZEdxtl*3+!)gVpOQn=R7Y|#%IXEiqwUejcR-~n$jX(rF`T5km zO@iyBbZ~bVcO_?SYzUeY7&HDlE3eMkyPwx<-cNBoqxjt+qG`4` zI{-*Mg6RBQA(J6mrzVIqt#geHuy4xa$5Nw4@Gi_I1pT)i2`dR3GYN!qvydK0ug*bS zN@{c=7+HAXf{}d<rX}_5kMuTcMsS)sd-Iwhb3<{5B$@C%J4c_v}sBEY1KrQ|(PGmU3{~wHUaLb+bbhEEITmWesO&xOKZo2VMt# zcF-AsI(&8rwP$1Q@6`OcyoE#O7e1&2FP8s$Y*il9EHjkp8SCe1v<}>6Tc@^CZvC*# zoKrkoFYt5<5in+mOmQXg?eQNZT%5lT_Ck5Kgiav*cD{$y$QWM45H!sM**$)pVO@yi z9}Cv78SDB3L01v#BAjUR_W~JNXip1ff+C2 z%!qS^g#rd+3CgrR-;kI7l3+X5p=(1p8AW`?8LheZkzV`r6MQ-?o;TDRB#Z*}>RR83 zZ;cYykwh!BvHXYhoxIQkZNr0sZUztkJC53KM{t`EdV#_S!MEk#roOs1EcuiKQlDbi zWLr`nHFY{F7FePWMNu^L-CDoC4%;NX#<=6=9-J#cpU$JTNG>bC$8%^j4vg++ou!A{ zb>IwbceehB5ix4`Km&WI-tPd~wJ^(#{2S=2t0328zJbr?v}}kir(aYZmH^86vsn@Z zuqWEL?Bm)Fcv%fbK>3<#I* zRcj41xd0HLS8vfMlcO3EE9D6qdx+YFeOPX4#VMfbcA4b)@`yAWcK!-`sOla=c6;+$ zSFroIr)2~#C&Ld&>x0&G`rJAB)KXTt9z^8#iono1L~C+QY57=|O3RXPFZ>G^AZ*yE z3)ccsFl4u7(M*&F$b(AGN8BtfH`_yz}UIt}6u zc=ao(mZO`?OmysA3#p`&!oRM*bWhTK9@OMJTwOHMegEsL(83;)!ghySgL>33sLXy) zp$fo-=)W%Zr!M&)tfyV%gwZ3Z4cUilWovW#(<3jL-#+0u;*P?&{8USNxSPeO;pi47 zrixwlk-vL2MpwaaBnlgg?>iBrTj9t@)D^1r5&!Fa%dW9JJv$~u!SDC=x+cCx-BbTh zE$3`6vnvqY#PjBzdG`k*7KJzH)+I-G)ZR1%vu0F#*x`{WE*F*5bV=gW*J|$h#6S@q zA4+Mf-*oQy;qyKB8?#Dk_u={(6!fy_qvh_cqVvQ}2Lt?OOT2S{44fUh4l!2VSlsydgjh9(~6`!*4er^w`;F!ftc!= z-HZdSo#eBq1wmU#84j+Gwq-lQB+Y?f+M_)lOcX~!83heu48jO)FUTF;j86j`&}y7Y zS_00c#;3t0dLXKm?=rnu02B}f=knx^{MrIyH9n}3nN>YG7c-Qk!)XA2EKkI|_$Di_ z6JmK8SCkr|TFhQ{cuqO%h8%Mocav5G-R6grQk=%@FGB27p|9#w@j#@{RFjESxk(EA z>j7HksXSf0jM^N0}aDP^doGv|wI zr4hH0LSh2&hm{i$cOQx#6)*Pi78wpdToXWvk|p_07&r)=KjW8^ARsaudV5vp{Tr45Y!vX+CkK)oM=U6V@Kz|M zkl}_Z%>JqNMl5$MiW+5S=HOOV>Q?S>4p^qc2FY+zW>7|t>|TE@x^ez~7U7PC${05#^pi_zJ`t<);})-aO`1)^Ra&f(i)#= z|IOVdrae>A7Ix&C#MHE1tCt`&l?)`J$#U`WA5809nJLhH^x9cUMUXhQ@>h2N#f38S z9|C`F;KxixKg+YF0U!!44Akk?sw)44(RWBQ_RHS2I7@sWPaNI6T{0}QuKM*^k3Rp= zSo8qKiM&wHzUg#>x;ze|hxEJ;RZ+MQ{T$;`qsMf~-mkb7m4VAHWI|N4%2*W^{-u5| zBNO{~27o4X{v1@3knYPlt=d=iYvukAYt|%;1PUAoFTBgQK}PSzc{q&P_1aikk($D$ zzE-m47G+rS$>;)%XW@%>#?H0ds)_!8kia?UAD9F=zAINepea9InY~BHpP@E}&O__* zz*W$LA-5Hz`wouCU##e5()2#46hz*JTy&O-K&k`Q9Qb?t?XIm5WZobia?wp{rpL(t zCZl%FRSr2ZcqKfzmbCD-PrDkIoAt!JFk`t;VYg@8Vr!!xaOV07?HZ@_1zA;wt?lrb zDtc7VRMa~vGzOL6#F2Lez6b!{nhDzIImq(Y=6AHbjBl)UXFOhU#ra#l!+T0afJSuv zO#oc1*IG77tRKy+=QfE(yQCO3V*||=bWVw2@JbZYf-3SiAn~2x>}e@_bb%j>|86A& zaSesZ{+)M45?2>={OlLv9$ksJsq)t`Dn0tf%_pY!vs_^ya>Oy~ zTmW4an^+n9ymZGB0MplhtnuF=e70esR=_6Sk$wM8KcQ)$9#^a;;e>YiM2O&I5gF`1 zH)7hKDc4P@IXN$9Xt*!BP(E+sy6G#QvvgOcoV-8{@^LUf{{>cy?HUI!SqM#qcpD$crL?o#+$ z_8!omYQfu~hJMHbNL5#MmYYNg+R=6+7rqcGO=W!O`Gt7M`CT)&#+QX#fxdr^Pc3&LEn3dKOmQPZ^V&O zGOm+(jwc{eFwmcn9syVfx(35W!Ap4!=R(FL(8# zT08RlV1&Tc$%JOEedvz^KrTMJiqnX=m*lOpb2RutU5@wNA3^3lPxtwk+!C9!(b+1E z3bwU5ByyBWd3!ocWfkX6gGCB-6ZjrjlCJh2gGM3vWC!6AT8qxp6HBkutpKIS zq>XVo4qHqLt^OJNuyD%66_?>BUPs8hrAgzXgN0$*dU_@UxKQ z0UC^oZ@qpfq2Q=r-G|i6piYSx(?`-AKiP@@H0I+Pl8Y!Ef@bv zeS!`sTMlRW?q;b*c}5N259-J7{UzVGWDxF~6#%m12lxd?R9&_=rzSaDYJwWIn%Beh z%iYLsgUj`hFWp*L(n^-vySZhZYo3LE{HIWBtR_HB|K7;Bt}nqdm~Yx=f2TCDG_usT z@R8cH^3~FrMD+1orVo76L#16ekd)f&-`V0f3jD+%!=rFAWYq$Ho%gA2su|$9aK^!- z9cS~PMt-k|#o5%~aDJ52-zy|O)HcfB!M<4ELjDRna9s!K(PJjsp4$6<(n4)`NK=5C zlt^U_vuRO`D5|<-)`Vwk5D317>5Nq0zupvxot@#^fYJw0wH~@3<9Z7$V+#KyNf6?T z6^`gUFzsh;I&VI|W%Sdb9{wJF2#|=Nts}J`3hhc~Z}X&|&^|+b=sJ03w=DRQ^u#>G zMHGgEIX6aniKTgRI3}^?`Z>M|k7(rnY1-l1imbg}`e?V2JKl>Om~>@1}L=}vDoV&TW2Wb z`xo0vIfqKuRzf7#^Lxgog(X1YSOPZ_Uv#wxLmi^)jl3ML*uSuovJ`jMhfdzr%wse8 zOr4xs@UTBmv<3R)DqL7dd#nDfk*`+)g)M6%aia~D9hsJCSf*hPV#+54gKIHRB#B zIIIqrpxPjUtEUEz>iE|BBmINisKG-mbl?2#@L2U=AQX8VLIKIEuY3lKM$Fnii*b%kNn zOm^bQi`_Y;e7hI@#7;09Q)c53F!(r10}b8>6$XO(1`Y|0P0+5Cr|h80G1E8SfDp7&h2<{xXljwtIdW={bFpt-HIiPL3zB-k&;vLJb-G@@}Nb3#{ z)M3xK-o43h2jpMS0Ig*Hlj20v+b!Fiq8&dtkv&(6+q-RklVJ&AByjRYWa_||AZtae z1;#XCpd3>9Tv;_1nHrnb=V1xm1rW-|u~gPx)cP^gxS{E9ZzpADbCn8;z7K5<8h(je8TP>gXK)LS${(#bSpjxKx0C_p9vU2q9y)eG#$Z?~0?~v| z0?$K@EU&BZbmxGS8&r>LN|K5Q4AyAY_aGHB1jQG6uU@ot27SR(TWa98adS4(`C^9OevgGll^6;^4m&dUpKAdtKAcWkJ429n_sJ^ybZasb#n zOr=NnD})^9c;3~_e*X=ad2%Y_I=0u0#5v+_?zE@{+?<-MYu#K~_5t$aoqlkxTKV;Q zvg~@mss4kb3`767yb2iTxPCArU<>yq{}{yIy5pcyCRtK{#e2I4yAY_d=A2PfAbON0 zI8l0S-u~8#Ll(Ow%$1dN&uY&}#s=e18TMGn2fJQFKZj=U9NJmQIeK8_R+WcJ9%LQ@ zXRQq~@K5n{$&pD5^*pF(ZaOXG%#X4CK*(p&QkDT$nduQZ0I8H?A#|26>WGa)vj1Su zl;xQg&Qzrz(ftVOv3jQD2PiDaCP7wBXxqU2_Fo!>bLh%o--OiZHC=$BPgeC(%3vRf>$noDtQwrUfg4hwqzCUwS=B(9As zrvx&a=%*QGyu@87}j_U{^Fx#Y-b%MyLG#c#!ow}a+m7{_S7of& zZF!MB%N>xs{wuRUR{Gm10LfG)OXBQ9l3}mS0 z`WprzGQe>38)aFL3uJzPs~bq`S5$u}IINKgwqxtYwh>cbs|x*pC!~IkZ9@Fe;R|6o zaSQd6d#MW=uC?#Cc-51EjWX4VO_A)u_s#aNWLS)++x=0et+VPmf6a1rW1Cs1U&BVf zNfA`A!JADBE-Z@AO&ClHY#5{r=o3v=dmavM38@mP>Y(vwJ_UGJKwzj~9PnNNQF&4b zz{)T6JpK_#9fZgy{$(|__sE47q`A|17nL3~AYstYY-}~rcGt~K!xR^D$C+f0U{Jhn zpJ(gBR|wh})r1HHq-UX|lDXill_o&?wIF^aeaLuUWMJ_Z-jf^62m}l2q|z%`lK%z% zW0}lZeR803u*h~r9%E))$LaT}B&^6&qX;gyKZ*}<08K)=|7`_eA1?n02*aIAKdySf z=u&iHHk&c%_fBtinGTn9@K*~%EvJK*-4btc02RK9G>S3XUld#6LDGn zP1%=9zg}HBQ3l8G&{6%uPBaXkzLBlt_b1Wd_^WhN;TL2hb!P797(t-}s(>NV`qc8g z!n<^XehD&0Kst+8`fqIW_X17gMqi{p5v~Krsg3}IpS{y7;0)&ICQ7RB_w@>wntA=^ zHRKlhjZ4eTjt5vdVtm!@4-)!+n!Eup;fP5y(J* zmI^9yINZY?#ITE7u&%grcKGE>dQNekZHLGa(P9+Mg;yi#jtx_2nEY>^g)zHq@qTaaEg|z)bcei5Tc}^pElx3-p_XC%D8)$t;<#v6$2Wc~DdI;$3}y zObD~*swJoNE;cv2a<;>VoEr!*Jz-{4GeE~MU#!`@^i|EHO27YcRL&m&(exc})$!*k zvf9`3TL9GLWJ}89Vccc_eNxpRx?Ir%|Pp#y5EA+_jhm<>nwvyN5Z91{%#`*GyN4Y7Lwri>t zGq8}s>N)-v_%FW7ITl^#ST4izmjgi|yp3_W1Qso1xcYvjO_>=h4;#5_Ud^&BQK`P! z&&<{cYQn4ki9VXAw`bwHe=tA6gkf$k05Vcedotw4pkak`!$+a){7f-~tDlDg*r2|Z zg%S3~zRvWO))G_<&AU6xFHOnwySH(VtY$tVVPqvRD1w-aVAQ~DoUSBnJ`^+<{VjBF zk+NngKph8^Ok$m9Dm~_V+m*wa+9?Ix6kU@#Fo-#_ZmM7$@mS&aL(iJh2Lz&Wzgpkn zk4gy>p`8XV!!P1qiZ}&qKBdb66rpgBt{Y6M z8KA#KW?x{m*}S{m>8M^;$A}$yrfA|AAh6#;N#7?{p3DQgN+0ggJ$YdefJ_7Ai{5!{ z_b~bh2u|pwKA>U9A0xGXFV*DB$I6H|8-31|_LT1b=4y&`rdBtuPNd=WVJUVOojRL+ z$V!0X!~;NOEWdz}@;S>l{56&V~-i}MH_py1Hha_+bcchMtz{?Z zE*#qYkz!VVw*qVqmG`Gh75QoL;%0ogV|{EL84pgv@cqmNa({K%z6t?F=-1HS?dqeE zJ!p*;O=%^}Zq#`mNFBURK2ME>5=%L{fz31v#L0fs;*Y#H=kJXo4|o!xI>eyT9{iw> zsw)^24tYamAIy0yY4sU8;`@q}`l&-bFAdy=Rz`CU^3C|xfmWa*{`yLb(F&mPGyN|f zckqmhR0IwabO^|dE8{E3d)4#Uuv)Y3H|IYg&8bUek1G|-YxmN~wU`LWhr)~%12aUo@tyJk)#7icGv`CrTHltOSZH!DG_Q z*5XYJLI7w5@nw_}f?$xfyhV`icJmBr|Hn~P|GZ)Ns&aHo(=we)JH;e?Ch%C(;5{jY zTqm!D$w+uu*UOdeN{{_!mzW<0(OzUkI)=+7!npAlk>UkFY1O1j>)@Y94`4!rdEakAK0 z93aOUe)?9Mz70ZuWy=|qUnx<;zBlti6wzbh8i26!O(3nl);z$hLuqIiOwxwejVxnU&-Lhwrf&_}sS` zpL^&lTx2{X^k%CGXtyo|pUULV4TLAVfd1qI4G01Bg#^E5h(jeH3NhJSUygxoM3c>x z4Z{8s0|M4M=Eh205P=J5V}RPKh#$ZL=%@A|mrY)YSwjIKbx}Ak;x;o)Cf)RvOIOPZ zCh{&m?9Lu^PxjX+k@*sABP&$CnxeCHDo%hmBq8PkB)tz(Rk|t-| zv6Lvkq4)V}P31of0WtBLVqA~NPmy%8mgZc@(Y@bPybR#J$zhn9jH}q*$6<)voAKj7 zf!I{Y0r&)evz%WbtJD=)00CY?Csw>H!)Kb>BWzTbb$5T*(lu54z15LnxCL1wuqT6$ z18yY?H%dSHaV}6Z3sZ!{vihTArd}%5Y$}#Z16#s5*OOqVvUGN&d@}ZccgS{+=E6un zpit`v@M%7f7!&+1j$9Nwh`*}kp-i@+OxDnd$d?aOS+O3S85;Bo*|}_jt+^N?%Anbe z*lxOY+P+En!Kz^*xE|Sp7GpL=5U?N7^Zeq1!OV!~u(!0S*%+WSI6Zovp6v}5WeXqY z#+b&=`|8iRlbw}K!|F$JXRZ3yI_3XW47EtvNPY%%;j_gDwHC2HZ&MV0o#_=!luIU~ zWutY>uNRJ>2TFsS+!00AS;n&uaxz5ouwHJ1PXUZI^kLfUSLR-&3rDIHBPdC8hYo~~ z)J10N>A|~?jU*(QEE~JoJ7ggc#bR55v7hqQ(_dpd|G=Q_%HGG@kVO?2#DpLNG z;*B#>$O}%rUY23pXKG@50OUvLR69{}(O+gwN(|pD?4g_u4bBSJa;@AUEB|>^x;6li zc)~b^wi^sl3~} z__S@3hZ&$Jtje}Neh`-vzrZn)hbWaLE`VkRsJ!71_KUu5{zTSkIb2DdQWA&5PXbha z4cV#=y!4f$T4jHUS4nj4@W_-l3+T1z;t-|Np`$xv(+({Ao3-- z+rx_fP6U0H~A)9KJDp`X*uXL3||+erTOY3=loz;DfnMrR>K-PuGV-8%>eWpzL`y zJ%0PTFWn~h!Z_{T_$4`)&Or=jIU zqhQhw!sze`;7}+4$hQo>;>znDbG|(Qjr`T=gj;JQs3uz%It><;->#5omf>f0yLFTc<&(m0ynSYOkj~#u^@}Xf}wv zhP_o*071LZWeMs*K#>@BX5c3JV}VRIBceS?$Ij7=`q&r5_=rQs7fU|&L^FHgDMrWV zZs*%J#unGhaODFlnY;K$0R?2km{HVx2>GmIk|*T~TksLI-%?r^*$ClrtAg%`r35;0iq z2LNfaxTl0r3zg`}VJ%*+=jIci&()^((sp!S-u>R+X1!(T>iIs96r*w9>=?1r)q#jf zPqP(#vheDUJ<>G%+?lyg9}tjc?24@d8}%ZU;%|l3vZ9?KHDUPzQ=?J#fVaOBh(R+0Fu;ZG(ih_SIGy@;V(Ksx?j_LxqO zwYc&@Om=w0xQDm!1w(v&#_iz7H9#w%EW>(y{jVAM5%?R6(!>JR$ zd3+NMB@Z$PcP3tvP(#y)^+yU?(*j06hgLc>O1zZW3^Y+K12#X}3n(tXgUg^a0Z_IM zmG%|}2%pa4g)auS)S51|@!H)RLI0qOU($CtRC+Ztf&dyy%`HEU5nci$D^i`8CrPLc zmjZ{Y=t#JR8z~kfn{F)JK+JUK3^v~1O>Fr6DtaWZsVmE*({yzV0r#OA>3Po|K?9Z- zg{1g)57;oA2s=#FD@feC?TWl&GXRND*a_<$?SO@Ghg-dGzICo4U?o(VEsj#Y@OvIo z$qXp6a{bU@n;~#Er*2ezU)J{HqxV$*j?iNkGbWit8)j3`tKi|KsS3M+ufTp>^p_>K zM1nO1MCeE9$L=V{^G*P*ly4NwHrWKWgie>N~6HaC!5` zCpjQV^9wo{l0y(UlZ5;*d$aL=K!Re)CEgyF5Ukoa!7bzU0N7H)6;}(bZ0=Tdto&|Q zcI}j!Q&l6es_@RswuKi>t&3{_4)$-)aH7Ot1>XVd-+kqT^(xZl2k9V(*x#0I7esS0 zY-7y>`MzT#1c0Rmyl54k4~32x??{01d!!rC_vKOgkvj_dfng8FQUN#N-yH^gyY=mu zLD*+cz-H*ybhn`^SG#@cg_Uw7`HETOoI_RM;s5QmdvZF&%__`eRoJEtT2nVtso8ZD ziu+&Mw{06>RR8aPzU{*QJo~#h{-|IDOy#b`t>A4>iVw#{nlRRNeXX zXs8JRkBErS@j&qqL@ksi5wLX)0k*;OT7T17=D`v?%JImDCCA~^N{^U&Qp9ZE8~tF< z06GCTJ7pi8E3smkcBu7%)b6|EACngWW7`Z4u)drC5R8um@~pE3Esho62v$Ak{B5VywVa@xAyd?_FYP`_1cWxaWf#Z zjAJe@RPusmp`DppEjb`0c?&;GI7kM9u9IaF zi7u(+Ka`eR5qkQ?#mz<8WZF#9Dg3`vOy8S{@mWQrZ*Eeo5qw~$Kph1Px9J0tAP15L zu!7$ervLaL}_8(!T^aMv1m z(YeUeYNRL|?6|%6tJ4SEUfO#p$m2pMrK@fa7av*wxNspj+G<@H_WNRj+}Y0wv*nxY zZi{v5#pKngPttdn)-hFOp=;I(rbgrxO1n;yTcW19+5PQXSA5@FnIGPor^PCxl&jxz zRYvW<774Y-VN*HtnvttRrHicMO#cgz3#Eo}9TfOTfh8FfQMRH~b<*aE6Y(37COVTUT zRB?sziYavD%I=;Kb#oi7Mms^woQ2t-5=-0r+hgFQifPpKBmuzL+yhjV){;D)M5R%P z8DswfIB=_t*UEU^&>hfBuPjIZ5{wPC35zk0kFmHij>$1L)P z-^6=egX9@&c?cS^^gMFqtKB-kOuh1`?c?hy2PewMN$js+zOv)vGkEeoVn(d`;$#Zf)F42jwgjEX-&i(U%&~aVLjr`m= zd2x2>oH$d{)m5$|(CZW;b$9ZEnU~votPF!Gig_i=zi!*+W9Lt}ft|GP{vNqr zR>w9sIeioJ`E}v$(8VzeoTxtz<1@xoVM`O)|9oa$C!7~sXJrsFZ2m2(OOC3)gU=Utvg7ah!w zqJH$~&;5zzGnNdI!2>R8jB|~*HKp?}P2RyjOGurR=#|UAF*sI2I_!3#C)f``tNZ_;s*GaaWIx=mB-<*&;6;*pZ0O7So)_ zn|H2nekpoyg7ozQtZqtwmh4?#0C3cz{hZmQ*)U){B4sqU80OwKLi*cG4pGb^lyx7OVB84n1)Hm^HiGjP87*JgR@)9#4}Cz7KP@fv%5N)|?2$M1fYeA&5( zB-YeNU*Rq+Uss6iTrP6vUDOb2ifDnjBR|sZ+>L9)(|Ngtqs_*7` z$>p0f1bI!tCd{TTkU?-=U#PM(H5FHX$jKRK2Pbo;+C6K-?&VOT*S$<>!z4z{Zjk;6i58Qmbl~*s$+k+;7yHMEn8I#l zhsXI^nRhuWHl|5I#+~+2p2%P&ug9=V$Ye;B_*tm9+x2NQ?wAvD z{urDQ?93&7X^w;)B6pWxZa)(@B6skl=NmU9n>*)@&Yh%UkGyF0*sRbA8nHs@&z>Ea z?0EaSandX@N6;wttA#g@Cm&h4W}r9!|I!lfm$}91kJsFPRZrW!<8VO&Z3KSh1Q)EV zUv|uG1y7Ahe3%^D*qHaT7gwIn2!9$|-bpasn}9p0Jiq>Xdp*~1$ROTCZUG)aDj5mk zm#Qn}I0Eq@J(%Peh-rVG*||2f)|sM6IxM6ve4RkH4%n<)Z#$z#dU4X^kRG>eMrD({ z<3A_wlO3#c2Nl=D3^WxOM@OTiS?7*#(C-yRZ$5No6frb20xDWDxx~yS?9@SY6YOnj<4XTFO$($%hGC`E1&5v9QXe@d7q%6rKq?$UYzAryC!aP^EpD zJKW3AO^yH2S>)W*U~(vdL314yd7o;tF8^H6hIo(N7s#)_0Q%2`eL%M7a8O07K38LU zdk`5&Upz;>NNQ;b-!Pw>K5;@dk4IiKGsXO@|8!yAv>C`s2qCvl0PnXI@;>KRY&=P3 zWv}#4ViUAlPhCpi+Y{Vqlm^Ry6gV4fpfU&z?Kb6~A%z5RuN=oDbz>S{6YUK?wQ|f5 z(DuiNmHLnPb6{7G{bAnq-Q}SjKjuqq zS!KJ0qZff`;A$`!WVVcHn>{;?MYp0*nyoRCaIONQuCHlA|LM8UrEP&sLfy&}DV7?( zf3hw;bLqXPx^kOI!sNxtNgL&}t@FCL(swO(pw9iv^6k83>6&#okM3kLz})amZGb{; zO)iz(>l?q};rfL8OsmZRa4hu3PyMhMjkY;dXX2Hrf2g>MkLq%a*aFFVUj6shdRcI=Y%I5f! zyWia0kYCS)ETfU!^FDzl@k_VQZElvP;%*-XVRRL;i^nr3(WOP#Lt=%(r zTT~@%^A3sFL-FLobf3XR82>CRDGy9%lX@<9&bgu-&43uT06<3ThM4~e{BF*$c__MK-?_2h#``f z(E6`XltAY!Dxko5~ZL0{QU6ss@RbZsSbsx!HLXt z&~mr1QxuV363WwOqFUY3`l44U#0Ambfl1{W)lmKybOLcEG+TUd&PlH#_>fZ%#6wNhUu&JOh~|v<22zw8t-&DTuzlNIqg#_Ky1^ zzFH{(`!lm%Ee*TpLhLc|YZaMAYDrpEl$H1o@aKeMxHhs&WB#Fp_<|#uQHnlfU7NaP ztWDF=?&#k27lOugb$_x^Xn1Kc zw+@p)<%m8iCO5)~KJRlSm^xAGOl7sU2_*k)!nXwuU7Eef;)S{YRx5}tGWmd&_jp`V z0=X+ldg+By6wQTp0vj~9E-I==VBF2q)(k$@Id=G3)o;k_X0otP_%=?A?=>JPGG6jd zTKHj1N*en!-^JLZ=4ZHELKGQTWB+@0(|#bYSe8<5Fn9ZxZpV3oo?RT3p;mt~3&1WN1(z_@4$+!#e z5RGn4k--`Z2x7m1H>tgJRfo1d*P9%D@8YSwAX5hU4Zb=ny??VWhjfYEx!htHS>Ur+ z(iYl8tffWojrFIBamfR#H}BE4j)q0NK`o>;8zYuf*k&648Pfm&K<++2ItqL${zCqd z!+QcqsA!pBEqV9HUdHZE*P!ThBOCrci5qvWFmYDv`t6_zpkz3E(2TKI zY|@Sb&KGthDBkNLOP39OiPu{o5ykj%2siP_CUh zmgUIK5v2q(Jkl?n~?m+89eX617eWY}h}B#`s0eJA_;bt(?nl15kJ&UJHprx=QwoAdeV(-^d6)%xNB zF@mWcINI%o(ujO^Rk@FNfF!csUPjrN-sRG$gZ&u}EaaEQ5c`VD#`@@=na~Q6ldu9# zFrlWO`}{of8jz8m5rvPu03zfz-)sLad6sOq$2J_Qx{c7?SpEGxb924VRE1!Fdqlt1 z`UIS2v#w=x_#T^az)0(T^S<+emKqCU9|MM~J91!z9r}K;!Cxb5$NSl31=zqu)&IlR zm&ZfBfB%nEDwVnl5!!{2gu)nCi=q%hwkeA2SqEc`Zi`B2A!V5%`=0E}%(O9O8@nts zBRhj>3^UA_ncqwI^ZEYn_xAns_P7u8dcT%)p67X<=N!d^>QF;K=xJML9` zPX+<2JU%+2wkJH0y`px+mC@E|Y?Y7Y{pUe z+y=p+ZGLhEl!2XWZG0tn_*-h%(fETD2dfx3)S(3(L6Gx3RvmV8zYnTXN(Rx#+`eG; zDc$+Y*sY%B=`YUsd3SkE#F;p`BJ4~yvh4M#ioG;Mk3NgPINiF*?6TS<5{r;`W0UIM z`N{ayD@TJ^vUK!=8-c60a}6-I!pqknj*>UO8Khgoi&>NN@|iuV@m6j z5Vvxg9VtO|UFzY}fOeaF3F1rsnAROwd{C^WfM0#^Af1bN(A4*|$vMyk%0`60XS<|Z z#km)FsOOeav?=60x8drGQ|?03mp8(3byA4SO2h$K1;U>w>tbR`Ma6P!Mnio8-fa@e z|9*RQl>oJGp&DG#H8I`x%hpb){Q-bZ`-@+(BzV~thn;_jR4i9LPW`c*1wEgd1EU^4 z5^Y2+7$f(>Wd~0i>OCkYrw%Ee#rX$HF!fL2(^&Upm!vqxieha{bL4He9q6{m*yV-P z2lZV%1u+R`^AJ1uG@s=#`u_9#`g^PI_v46Pa|k(p^HiK#^kYkGUl7&Ty=1{Rrg`K?Ucz_ysT!tMo~|HoPeOHA;H1+eE?ewm z#QfzLx?pJ5c$cvoiN5yr|1=4mN(N?JPeN_lizvKe$ef%g2H_5|-Iw5q&W*?gWp^<8|Yh<8f z+T~SL6%Xl9tUG14GzaeP@fvV?gz9elCho0pSs=b1CBdVDa zHl&faw=Z@UCpW3-!(9XXZ$OrzQXxdzlMswlkxRAv#zv8hYQ^-!Qjjwb1wb7hg1DxM z&iL}!Zm^mZg|m8M@=zj-EaJ{1+%ek!u->6fUeZncUv@t8Y9yX#0Bz)#rO=Hc{IIA` zf+pRxKv|E_O| z`q*ckx_snD4wUx3*g!i71A}J#G02kT)}O7BW^n#8mMhP>j-SkBc4wuYe^xRSIC7Ca zQ?wKwh?0g;aSBMgxPUqx0@cCx^ev&VV!y9-(rmIN;2P!}ukl@@B2biP&!T2Ncja=N z3&~eVx(jh!^{(nU5EPE|iAS&4!FvxHm=Tc?qewF+r66zVku4G)A-06TgoiD9BuNsKNdS zmVtz?YVO(b^`_pL^fxRXe!Rwla+j(xW|q1{#Sx^Ky*;K!-|6p}_PK;?B9vuH6WsU0 z!_F8`p(9=2In56xM~eH5OK*`F@;8$%{T!(`UX*!0PA!Am9K}+)pW!D#fUq%oA z`*ZmR*1Vevc;Au1{)G^nT>()UP%UbRo4DFsOM|c*85{L%n%FzcEN-uUEDjr530E%$ zSC2dc)&119WTC+A#kG=lf+2@!WPW^9tK_yB4WIA}ZfsyA!fdr*TV-EJXS%F zK^Z5PF}WrPiIFI=-7cStM+Fh`Ho&fFOInX6ib*neF7P;o_A~nk;b$e{O!K}J^N5Iy z%Gsg@G9U+6bYtsF-y-AKYMQYtF&lcOj&1>25m=%&F4xm;rPxAA4P z&$R4|Z1d$8jYLT|YiB|F!IBlRlf|6wMdNU!L$C6Bv%B7)_n(=WgbQmXW3bqAxIWMl zN{w25@h48V(sDV1{Ph=6=Tlt}fL&N*G8uDF!{Nmm8JWaAJUhi#KBr21=L6RZUR%b{ z$%zf8QMFXdK31H(YU506#pw2WFvYREf*&3AUhm!fo<#v|PL@$-6y0$}2gml4E)~o^ zH3os$EBZAG3LQ*^<5d07l0XBVat@Ia?2v(0@SJX-ql3q7tp=uk{ zZm;s{*skh+#)pIDXHb}Zb3IT-sX3Of6?*Ln8ppfvE=51vh2Y~Qq1L9)hc=h_e}TDL z10Z-!?gM+sh9`;${8EBFhI!5n<+TCss3L{1^5gACBf2uyho&a4(pcB5A4Xr0oU|FO zExssB_Psepsp7NaB;!uI510MYll+6@J*{LA*H%2+Cjp?Q-!+F*Q(xu!+=tj}(Gu2d z7t^59EzwVU6z^`PvXNl>gmzvI+6dk7RiITW^-{tHHv7S}@8X|4dHJ~^H|PT<54pZg z@hAadq1Zc@d#-eEsjI!pk$TIvdz1p=u93Hm<39BY(F!2eq2XWphEnhZxzA2&#L#Lm*^;9vLO9`p=Gw+$!Scsr zu7$-DKe&{8OCfN@c@UU`#_y_4H#aoAAyGFutg&^C0u^YnyWi(NwFm&66XS?Il?Zd}BT(ExV+ zwYGahuJ0|r@MAfCbNwhi3x(ApQV``8rb>6i%5*@Lwh!|mxu|Xk*o9yt6~J`wvWfk= zKns?)9DwsCHaCRaidcF|p>ntPjrPAuSf0L@Cl00ICRd-eai_A8qAPPl$f>D{)c2Xv zF!Vbqcx@R1fy#&JU3oe#<9YcWyX@}2-ITV0*-nPNs4}BVM`QaL=(R*=rw&j&dnUVZt>(>)Iz7-Uj57V z4}GaNam1VirYfU5hzf)a^x9UcTw+7~?w+F+UkP1F#|EvUsrpx*m_z|5!L}r_z*B6P z?dj2oz@p!k$%#``iQ06f2}fX-FKxNt>o2t&XK{==#Ek&KFgD5Jak6xu3EP_;)XA=n zu-bnfZxIU;8h(|S&Hv_UIUA>y%R@$eU9otM(A$<^5vHepDmlOoNjF$uxIs-{y;SOk*5shjQIT1$daUw+82_7gv(6Rs7Zz8>v~svD1YIsI{m1bOFvgkw|2DN7bMaj znsQ4@2EsV(PSsZjCyI*z`L8sQzLEv~ORy^!4$I!b#ydVKLMGE6V6Gm(BwvfA5nV%b zht@s@T~o2cg_>X9gF?SEkL#n9G@d)S#qYNZqx_u;&U1} zV|KD|=Pg2@k)z^og)3QyuCQ+`8?~BHRWI-N{A0>8kC3%CY zOed1W4Ui$irV{-1UkD70zK~0Df)u~3Kzk26s$N#AM))7ze#?#hTQ~v~GM62NI6q~ZDLx&f`)QR7pb*5QY9_E z1PD}?{sm#|*N|%%UgKA9!#YJ#J2_v1g*iO^W|Cie!v-3`yTJO989DD_;(Ou(ku|b9 z3W#)!Qp1LOx^cKk?|SDDK&1q#OGMlWyq;3qhgL6r zjVM4wwM@qdO>RH-r9=jc_B~fIH!ld>TA*z+st~tpR9P5lw)p~kWt+=;sRau~immNq z8ZlVThJA|@G>7KrG}^T~+UU}Lzdd>e)N=LS;%mF>Sdz{yw1jHcz|y`=3n$-l3tT#H zFB$7Mac>q5*+uUxd9}c6=f?V*{W-hg-WEn;PBh@oH3xoNGL)|3w<2|j)$IBr_wW@P zqAR1lZv1F`7~GAC4+D{&-4;rh`h-x}=%^(9*cWdSxRs48(KlUoi1-=C_jv!I?o$+| z2n!GIq|mib#!e&Rc4tr@0d2r2-o$s;1s4iEsXJurTrl70Uw9Ds$-W}T-Gd0k7kP}* zxMOeP;#8XH{slJCjWM!nd~^II_w;mFfOX#pS`#lA|EznjfBu=)gZJ)gb4EE<&XauB zsknDONT?4oJ>1GBc;wQb87;<`r>}2M86}xugL!^{5-T_Dp@-Rf(r5)=-5f! z3x66NwRifYsSskum_L3H1hk==`fbgtsHlVdl?cs<5Hz46$u|O}X?(ID0L>KDPRcNe zwB}OU7Uq{Dpln0446>2LNNYpSDTi5yXa1wvB<~?UY1_=#GwgZZXcq%@!(cz%76e}? z((_rELtGR^kr;Ha?tBmWY$WFVU`{h{Hr=_!*0MQH;HB^{;FSqMHBVeF4O^PAtxP{y zyf=9q31{yeO|5+)Sh%D(Q6dPD?VjHHk;PjI`APP7fK>)KEN{4{Ga@RiJ5sC-_$UKp z>KR*no&-W49;+rcwe?e1*dkrp9otwghRoX~Q+pny)ebr#3DR(ny=Kx(iiQCpbOFDG?DwLenwFC{7lwzU;e=x8&d0#V}>Cgxlt${-5KX=9nQL z5l#@KMMURNv4?PXZ>;K$FR#j`R@L2#q%3oST(+pI$B<#eLuLnl?JS{s7m!hy06&zL z3ig&*d6~g~ah0(gf6uSs>oNHslmPTXfebeJXE1Q>{INggPlJ5Gpu&@th^Z==jovh_ z$E+e~&{I9vkE=SjrIpK;^2D$n%P$%#T6+}}U*VRdSRn5SGDhhX+439?T;T!p8s^)}V4_#idu|B9Gw|hXqc;^j=p2ypL%h}rnp&hi21rbO=ABj2Hf2F-(IVlXT{0b@9I zp3J|*5SKxt^JP`f*H=_a0IU);AE3WD1%cw8?~BQjUolp!oG&tJ&BOi@_5Xua2it|J z(`wKyvuPyFQxl^m6A>Gx5`#8O5kihf?T;beF(;O{pue=6d?Cg*z zH0TyvW*{8>($unF0c&`oh zG&26E+a89(X7bt-y^9-`5lVh5KMg@rDZmOT&==y2JJQ&5$oH=+-@by=yIlFT9;@ST zoE=V82gIXwiUaFmQt+pV6V`fCoL{vf|Il&7?oMOVwnX~Y=j`xR&2RkJVuxA|FP30@ zoDX}7tlJBF-F~`__x2+W2s3M%WoYcrjBCgGt>XNbx)3Sc?M48x0i{6e$Vl-hw^J76 z^er1~t0@zcsDEb`F7AOt7H!bAv6RfS*TJ4sT2HSYGy zLnv&3P$&3lxXLeeUSq3YJSJZby1A3Cn%9WM9&OxkPjm%8wI;|L1X1P4D>sm-@`dUb z0kI4HR(Kch}prsS-=4SKuU_f!so_|4zo79gMUgUap z3Z~{nMCU;R7{Xw`&jq2MDgIU`_hO%^AZd&by5rU3^sKcUFCqs$FsCo2zEI(RY&A_z zGcIaPQuj~2S@f>^KHslA>G9NV%-o|qnuA)m=o?2GNzFi%#Bum^gHiT?%f=_ zro{Yb=Hr=D5godh@g4afB*K^uZ0~+Rs%7q|s<(P?ekW!9ls6)(dqEN|e|6d)Rbo?Q zo$REA!qdlvAj28|qvY7`5tB$u4n8-eowvixjK7Z(LI=Xo4si2ym7?p8B&h7#OQ**} zaJbBuFG1gIpG(PFbFVdB8lT#NsfW9w8;W&HC6cv$W5EoD1|Y*mItDkzE2@L3GOGSWk1wA3isr}%! z{VmUJ2zcS~r97dcda3`jIwNLD-JSCs!dqjofu_fK!sGI*JN00LvaOWH6_mu}^@j>N zCxOuSrN~I0#XbsCN6`VRi|~;v%#rj0brr43jtV?z^NF}%pgex`UoOF$k&-FRnEA_Y zb-MHnqurC{()skD5N8sE-hv4HE?O1xvKY}MlCSt4^sWxyi`??9YjcZ_dp!5;x#+cO zlhCzE;n?-yY5c8O{4-CQv0U!4%1J-NxQ>PJ&_mXb(n}IXhHsQi{|MRK4m)fi5<0+M z1?_feJtzvVVoggf)?rBuwIiJDh0cZgsDM4VMivTF5|4ol-v+L&dl>?`a|B$fp(WSD z5y66wAyXAWz?dd(|2ASG{9a06dV1za^=CivH1w9tr3=W6oQ^qn^kQsmtP|V>jn!~7 zrKDn5hGu^vrKd6a*|CfBxXw7X+plT{#RTB26?a`Aovx#%<*jM$+mwLXO`r_sq+k(g z_Ts-v9w>eDsTDi}6+VaUzdA)Z!}v-w(rH%%96?E}Vk5ImIdtD^RZntvo=)5$1E8R{ z&Kp#~?MMcNEMEQZ52FzQqz}4t&oOwd(1o#Z`Ni%S%qJFTKRG7fC0Y~so|z%PwPMu` zD8qTm~tJ2zpEv6cL_y57Ed z-L8Navg+ub`Q;Ab2h}T>dyMZgsX`pmk=f_~5m&}N?sj6d25T&lT+y5aW|7q|hxlI* zs)g{xE5OCD1!XxcSQrdU1isVF$!tf01~R2!5T-5Y2o>QU07`TKCX`;m)OOWTH}HUV zVPNnCZrP;IOn$AVB&)mM-u;kw80L-AgX!M0;0tCPr&lj>1Y=KjD=$1&`Snj0Ic33f z-{l6S<#W{fciY6yKk|)(N}1J%9x@P&L>}WWfB*6N{k{!Ty(Xzilb@$EAdZm{c3BKs z9#`+dFnEWLE%LfgE}J?|xqorxgt0lYdLhRpR2`%&voC$4ZsT1MqXgo*$(Y7~Ykxj z-T{{nIF6a!-cF=PqidkiH`H89!(8?oH~gh(i46&we2lH|vWcWjbc&XCqx8YFi`DfL zkMZ{o25rl_GVfl_eLVXByazHeEyvh04iZVRIA{odvzElBQ+@x0M0ORMKY3kVE+IIv zFIwij{L`ExMR8TGg^#eYR2jh%D>mc~fY!3P*N&bNTDPdxM@HepR~E9#lNW0o+6t~2 zU>c9KBxx#(bs*f7OgVNx7g*$-s^h^5olF1)uH?WlIOU4zIoF83SsWo0)zsFNCFPmX6fP zd-K;~IXo#z?J; zTR#QEzEeA5s-zw9uy5hcTd-S7MSpH-GrOr$Tk_JWK1-*ACJZq!`=39Ui;FrafijPF z%dr{xp*a4!Z#iJ;5Zp(;WroqjO;{e7YJ>3V6b;Y;sCqu-$#Rtlt3iXF;6nPdWc

~@XO==-T@M$_zG-*>U=AEs z4s*iTKjuXhK~s+YZ>8EPspR=^l%c=g0GS;V*3%Zl*=_>&KH{GE(9|t2H{rcq{~#T5=Xou`IOhl zq_T8FT5$X{LW4dvymBGpFSKM@-ddmp%IMDluxD^%?Ys85ehlrwmFvT>ovW#vdCt~p z#b*l3YjZI7%F=6!cF`^SX1S)qP}F<9?i$*aGAHJ0&xOy{55xSP6?w3i?v=7nB2f=| z=Z^zC3Gsn$i_FP!AkD7 z&RR?XfrPI8hPl+*kspsZssc;tj6R2{b+w!P6H_ZWDb^N{4C42cJs!=B_)j;x;Owt8 z@%$6o?ab3coWiBu1MdnP8lve_!79vw~0{pf^9~_#u3ZM7BG$r7_>n%Fv zE0qLOJzJH=Gs?OvLBE)PG%PvCH;lby@iKdEV0Psc@E+{H>vz|`b<)J(h1u3 z7o9U_F7iU&(lH9#+uaI_+F88uq&gnP!*GIO5b$^Ff`9CCI+mFj z4dpc}V3f-!86RgBeco{K>YuvaC8QTyzMJKfDfGvTD|OAZ3g)hX)%oXtc5Ibzr= z^K3q&By=*uE<@{3cg-oTo?73Ash2iar-nPabo|oK=RFG5Yu~$e+aZvJH5xDN_}Xuo z%NUmhA6km3O&Iozq*Q$Essejos+oTLFu5p!U#r)R<{r&?ioB>5DEN_SkQ|#mrXVAz zt(wo&ymQMC&N);^58IoTSX|gXNi?H*TwS|KZ+^Qy!yHHVmWP?54aoTJM7JskkL-tk zHEWu$^;J&yx?`?@NvaTA7swrOf0pAL$Efh~wa~mV3TNA0%@mV-z`@G9VU@SHD-@q9 z8C5WIn^;`COuvZ8e_p1@C!WurSl=(ciKN#;$gDp}#mCqcKWUG|Wajg3ho&|6xN8OvEaL>LN-gvj3Z{_T8qv_K+l`hqbm)j|Fy zJ8w{w+*E@uKi)k)*m3Xb_$`|QOZI=vDD%n+dbqt0fK(jGVV!~-Db3gvNIG{h_YA%a zLp~MkdkPqJJBGmfZ>zJi_U8V!IyX^e;r3-pUmZTS) z6Z4MIdO=Nk5i57&=R?gf$Q%oIRQ0LAlKuivEBb%z&cGcQ=0*Pe%t!v%K+IrAx0MH?jc=G=L_| zbYn!@sn|VJSZ-+8E#QFL2Y!13<&Kg*nVOzRi^<}g-PuX}kmLjK+UK3V6YIr_)>j#< z7GOg-Rql5yF&Cf_>lUk@)}eg4*@Cd(+$Z@8BpkgLjDFY!7chM*!V8b8;8hzR<+Ay_6{2{!h zzIUo(bC67m3Yk(h?+4X@3D^;sV4Gdr+l$6l(*qQ7niRyJyfZ?aYGhLNLcQrL@M2Vc zvyo|Y{h>-(@Yb!1Bm2zACVDvCw!X^uQEVmOt!n#KsEOTdV5sd*LMxvl=2&-IQIfrVjK`d=kZ_sTwo){Aihc+lM? zTZ8xmqs`SK7u~-k-A9s(&#j;O&}Hy%-<0NE9b{&QI-12+;Hc)#U$X$ua)u$Fz_F`U z%R@SiV#}16DTJimxg>Kl=*B+a4PTL)YD;udT4cW3=Pi@e&T@JJsW=g&*WNVycY>(? zbbYmVVzt<3`gT$?3F&xI+UEAVy}#0<|8$AN{Wjtk>Y5Jn{CsjLXUcwr?hUr5U2#6# z2aU0nnfVlxdxhlQH7a`59S7^TA?;rxx!a8ogdVT{ZW2%(C85p56yr?rjWwN|P8p{&)lRHQ9u zvG2iM(I%wkCK7k7&`_|{VvrnnIN>QqkG)O2^CR;)UYCNN3Z1L*f-_;QVnNj(lon(V zUD6dw-7<0UH`t49N6nPQ4#{)B>tYs1FWwcM3sBoQrT@K;aJjxD&r>Ndf3`e)U0_=O zZze=#v)$)FE=?s<8iaD%ENN@rhJPaJNo4oypPWv zYT1{*k{oK^(6-%5%4>H2uQkdMV!#()_iHcKvXvh+^m4X!CgGv!Rm5cL34k0$8vA{{%3X zZ&+|psCo>=~OTGw{}XFVqqx{duNfs;WYdn=Ma&3`bk{Q~Uf1 zu#0)gY&lre_CGpVmKS+9pU|xd?6%Fry0<8F>Z|)YsMAf{YMfhFm}g6d5J&lQ_%>UI z3{73NskL<+_|H22KZe45&W!DM{rYzz4lf(xz zb|cf{AGdvCzNkGhU1=9S^?83SneG2P2mGa=Mdz`k)}EEN6I?fNRtIFkM@sL%-;Ub00>GYM(?jl8; z#*sUJMyxuiTta)6mz2`PRgaTUN%?i|m%l$VkK4a(-C|20qH&{Lb#q_o`{-I=c+3B8 zrS?xy=~#Uc*q`zCRc zp!KQCNK`lho(EWy4mXb$|lop8tYJ5XjEP(($xMrKl<8TrQ&m9bN3=9JnZhhIy59V4;)NM zconO8I$cYi8N?YnXIw3;@=H?jzkSD*Ahn{q1!tgOc6WDWiFG!QD;^GjQsAvF7tIJe zT3n_>wa<9_XggVs3DAT*No;9l#Yp=E!9v!3Xu>>oV^1QwipaWicm!Ico6?OU_%SCl zBrQ4QRRj1Qa{;C(NNHg)LlMuynkrpmOL#SKo~s=IxN6v`%586&8{RIBKiR@1J5JDs zR-$##um1068(Y?Q09Ab`u%HGxSvXPIIRi_TzTMT4xtj7~w(>o9b*Vf;uY>fk{qR!3 zhdK#l7~*M37T02nxEP^ry6M6hn<&+>h#lR1MeERRDJ8NBmJ6R6agzak2e;Yo%n$Hm z;Tna)B$2$$cx%}UO1Vf9D~R;w0s-@!jD)J{QZwdpYWlV-YxGp64vS}&vtB1em3Lu^f2!}q=O{DnBfv-p9}Zo`!&O;}bL#jb zz87<|Ri9RwN6@~->%We7yvsL_#H{Fe1z9MlZRCuAn%Q=X-;J@XeO%6Bm-}5ODRcR= zMDBh2P^Ng|fhw~wRUlyRh{tPcwKIihgaf&paWg%h{ltpbxzLuT+(G;}Ayquzv*R-t zOE}TeB|q_9pEfPREreZ+QEMGY=+=fUmE9T}Wv2p5w-e7%*%p{n=@UDjRl&MoL4Ud= zzomVy0(lc}`aRz2+^saw&}wGu|LrYgo7oCWl=X16?S*1*RpKL1uXFA;8#?Acap-3` zXtm-Z6go+655nB92akthQ_Sm)9+yNk|FLDpI(|^;XHS#`XL`(l{G?1Mj9R;Uv@$WQ zqtgJeLh_-hhP@G(PNcX7DY5P?uJ{<&EPJKax@sNY$J@??b$F5U$SVZH9UyDKNJDQr zD`w0SY*eQg-N7**{{5I`ylySe%3eev3QJ7y$*Dfz7hS>YJ0`cs=(>+5_lEsx_p<89 zBI`EX(O-_+WNt=6jZCLryxZm&46UeWhOSkPmO;Oaj6D-+OYm&_7%&ohWima{sk zour&Tk%by$6~TU{VAemlf3>L2y|rmI7WI$=NC4elxjqf1Q{t>i9w#D~mhgXCnq^{H z-i)kT(c|PlIIJAJXc>3xelt~O(sQ6P)2DAtti9DO=LM&y&>(fTG^n5*{_UiF0-tjf zu2HEF|1@*3!u>Kisa@O1Re1iC0bTEFm-dMgs73(%wbuX_#yOWsP~AdiF17XFBU`7V zb(s`IigAqvvoF6(iJWqWsAsDPe}TI&+_MwYEBiRGN-NzHEHe5xbNFkKJu`stGoEVQ ziFaz-++Mc}$@!LP5Y5isQoNOL=U~wdPs1hIS7dD{LM%wM5UthI_gwUOo7H*gy8Y?e z54mC+rqs4AEcV*MmA4;~#tA}ahn6lJ>^nTvv~UV|LhjOYyesNeH?9RquubUw+JY?S zk>vN@%R=umtOv#P*7Uf9zpFmQdKPbE>wR{`!Ebz!s@fL?GpoD%;wN%*rP> zeQwv}zTy7?y495O8cEjKON_Voon&WVn?4}>608Lciv}`r*}Hbx?(zA-SrAs_RiCss z#+lvQH;8{#cOnx63ao>H&SMt~xrZP}zIf!jOUbiH%deB6id; z=EUVb(!j-e&}FKQ-@$>?l;@ODhanI%*Skv{qKZ7%;55u(%DwA@h7)b)FcI3??Gz2g z-80s6#UN0Tu0CnSPT8RwA*cMtM~KbMx=WFrr1hkW$un00J&+=uTYtj;ZiHp`Mt5($ zSAitjy2TfqJ3|pzfU@nv_l>Kro2oh$lG|NJ_Pxsy%ek*qcVxq#hBj(&FY8F38!Mo# zTHtuo?o=q!8uZ@s3kX5V$xPaoxkSbSI%f@aJGE|ZpOX^(19U)4e;_L90j7o~!O-|v zIcR=$C7lPbwP7+TWeC$ROXU`4hWSJz^;{8EBd!RnF%!gb%ZW`j- z|Gr@E7CM#^q9xUOL2hfP!4)Jx{ZQkeBV@T({|STujBO$}sX-t= zL#&ffpPy$&n9me=GCq&D)&YK?{6Ke&r`h&)?xS~3G*NOdatH7#>~sfx3%$9LP7#(wv2SrZ{)1DYiYpxv5?#Je|)tm$9JIoA{dz6 z2^#m26Q&hRQ`$j~%D~|dLgbnN;sa5M?7=TX>sY|kFrzj?%CB7p&-hsW)f=VwPQyUa z<~VuSymeraT}2Z#O4g;Se@}a&7Y4jCH+qrApgO;b%n|GM3P4(yEx-p1s|IhhWbzq zc9b8CIw-53eABZWsQ1xOC^t%j{Om5)iJKlF4C$ne!M-79(K_5-d zvL>4p1X>ybcG+p!~~5rogN<_UnNEb$NYNEA6yhVW45(>dU`s3s{%K&_RfcO8(h-= zDmqEp)}C?HUzt?2nmm^w5j6*alxqT!-KhDHamCXd!hYp5xYJFDyZ(Ds?O%f$5J0b+HTiz3Bx^C3#NAt|3GG~Q8tbas zjx@sY_AaEjFaZ1>47z{yflju<2EcUvXxC>WR(o^sjXoESUUD_5);?@dl`y8IRf;2x zUL9whs{2l^yjcc;%9VY$Z8Wa2kMtQV6Pn|cJ^0&B>4U}2*@_AuGpO44!O;JunnBfM zjo;|Q!NHz&fvn&Skn*c*|HoKa>eEV#x!}$fKcTQ8>Oj+CPl1i)k=>BUbrx5GsS9F~ z>wOLf$9-JlCLk0S06&7)lJj(W=NPJ6)Y*Cw6_8ot)39B&J zFR!}UQIVri6kf%4A))~Et*LuqoS7sC4rfU9JLmzLoL^8t_71+gItpa2Tvm-zKrpNw z^BsC*!t3ZodR7yTMWg zGfZH5b%JqB)$zQ-!tfnwlTKC=@cWeklWkGf*}{;>6u#z*rsA{xxX)3&bXlJt{y7KC zVA!3v+0zpxTdOAJ-YW$bv^%CbF5HgfQw4SfFxBlrS@}Wli&}}6VQBv}^h)MWJ`H$L zr@WGiD9d@@=f+wp231PhmAIz~o`eWqZC&fcl*BWTW*glSAdzW*D`kVIM78?1|Mg7| zMkM6ECrnv$T1`2FhX&UL)~Rf7SFx=coRu2vTWWcuA!c153~BE@86>s{o=&wmsaG2V zLsOs>pJ?GgN!3sJKQC+aY`_kVYkgrTxpa2B%(F|&IvrT@VKCzti)|mhhd~| z)2A=w1$GGs+I#y*R+5r5O@JQ6&*gbiQc@IH>J$mnjOkKMs)`o!UR_u2_8*|{VI1k> z)iVT|!kz?k9Kqn2D>{V_+yKHJugOwe=qgu8t!S0h2C z?zZmp_~2JYVG2xXHLVx^PomexQh0H8{Xu_ZE*SV@ z1$0mW;&d?1&g0Yl&8l19ZC=5nxN8v3x=UyctgWBwwHc^968v_+xN6X&1T;|goc&%} zTvGnB+q$CxqrGVz|0`f(?*Kl}vhv8{()0d=AAaw={|u|Tlw78pH^WsSrFaFg8|>X< z9Fp4s%Lg*FDA_?7o`|?`5p1BAIk<2C+^OBuIazmWwQZLu3X_OghuLX_=$Rf)Kegl2 z&$az*Dj(dy0Gh5Kmz{M#QLD=gB^8w*X4v4vRu;6XDZuOV!++v3mrA=f>+e^st!p74 zFht{ayKlkDa8ZZ>vONU?bydipQxASW!1-ETQXbt>C^liJ0fAsS7qnL95NX=k~O2qzp$^_ftdsOV-z4;BCfa&#q z>uvLPkP*`_+KL%uU3NLF14&cy^oaD~VdpeF6w*x&CThAE#8*Z4}T53XS*v@(IBq5+`de|i-QCH&=WW;pRB|U zqrq?=xO)}AGjlKxg|$97kPxe9@xk#%oa@HV9Q~YLY-{(?Kyk%yo;rS~&9}uvCs- z#l9}F)lY^%Bvs+uumzEh#Ft*wi_Oc;UBjFwfpw|cBKto`?dnm3DudzG73O>s6SOz4 zyIB5U@}+`VFnn}yK{MG4Os75v@SXq5F#B5~5Ci+gOpuTlbFA=4pa}|n%k}-iNSP#c zmqr)vw;_BdrzgWGPRj$i3j)y@O6f82oSOtkLqVj6t|jt8Ix>=ib_eE4Kehf_@Bv)} zw1}X3@pkKv_-j1gQEfF|}rOhe)Kf1mWYF&@4eVSilCtMBGROV-U6YBfXD*UdljUH4xxh}AT{(BLX{Ru=mA3cCa$~h z`~6<``OnLXC(q2BIdjf^?)!}DhpZJpz$%!0;E?BU^b%ra#Rt5p%a>#je;;jD76&ql zTMlysU*~W2TN64V9_K%^W46V7TlMMFV4XN4YMz>0HpCdY5_?`)r}C@GTDJkTStkFQ z@n^mEuCo+isk^1FKffV^;LXzu1fI+p5#GbvE0k98%mdJRwX5tihx4`O)`Jqx{kAs* znJO~$)$ucna3Lfqz`~tRSoNJCu*}^snq-}i5SR%>Iu4~Vu7RR4!A{n#d#K!tng!v8 z3<+XAOVCS2wJ;=`qBj7T@Vc+$E(6BAgHT6whq|fVyqi>ed3mNjMy{gm1Hq+$JQMVxwlfMb>5Mif#MzG!&+2AIZy{P7 z+&WY9Z!!`B2}$x6Gqu=e<&g&h7YaKGyZO(>1<6AfBo+QCzBzFt8V4x<@r(o zb1+vq-wRJE4Qk0hEiK7*E@)GhL7k)xy9ntDgrRK4o6fU;Qg8+IEKhY=SbxR4>MMAz z7a=4&1-_C_fIhJMB~mBzMBs5;7UH<=Qx=0IqX_LXlH!4jolGI1k}cnNe727K&M9$+Ps?=4QMfWBp3}7ofXy9 z96XPTd#Bp@roFy~$w~q}NWM-`Y`bO%UV*r}M56Jo+B5H@X{Yt%#j<=S&`oh~C z|EsffQqjfd#V!MTeO8;25!L%%BOZ0Nvx@VCehgPp-S*a=0_l6hb>qHi9@L7Pf?{|M z1yX76RtqKXWbv?ySBDx-W#4Da-4a?mP9A+LrXSTmH^YDPON{RJt%CvvmBk%B>e?o7No)bXe^=m#ftV zj)){<^uD=Z2Ja%!UHzGg=+UnWTZBw6NDv-QDM~GN9xTU4@WuA}74}Eqw%+wzW1V6n z4I)7fKXcqzpgctfz4G9y6uzkR#w4pl{tj3Y8MU@dkhHJeRHpapNtV=6%TgW!mx&7i zHw6fXAfQ_x6$aH7fqjU4s@@hn2iqzMpq z?b7Lpye0BoCR`;lsaVM{e1I`TIDP>|?L>mRH#5P!JPRVAq=4@M75JS-xRjS=WZ^+g zcr|u}d0>JF&9$o2;92)sC1rhKOUMRM92orEv@3R|m5nA_XV;kilxU5SuwLp(%u*hs z=jMdc#N4(rD85-!okt-jloeW6No>KD7weV&c(qZoOxTlgawU}94`C+JQ$t!i?K`g` zY{bV-Z#kD&2Wwf|TN5|>U!5Ky@EwP}K|dEI~UX)g&@^s7+$w5SiL}`>j<#TH^Gg=MP2j`UeYw ztISrpR!culv@%D_YYCYcU8y0Oy!U-{v_<_h>hWIAo+>@F>jlD6!!*af@MGTyV+(Ch z)%bdr91Z_N3~wbc2!U?{ARg-;y^INokyKw>!cjJrIY(y>T2^LxrF^$U6-TN zE@Cm_Lp392%bmmah$Rnyf+jQ=v8r^Q!bRr>8jppt#WM( zvzNn<#W?Dk=pX5>sh2I-9?JQqRv3OrbnFKh#+x}=CgKukcsm2V>EVnszX~p@>u6oW z<^bAIChHZuZob&JI@P>hTKq2fsTGq=+(*4e2tup#)I}*fH@D;5Y(@11motLmz>13* zIX4Gz>~dWTaAEuUYge5lNF4R4WdE$Jx3c$%%V9vEZs)PiXh3vQZQ0AEy%{s=+y~&C zBIyn(4OBN$s6-v_%~;F}TWy&c{4-;vW9O2D{L9$;;A0{JlT>wvH68~g^e)=%!U>K# z=Wf%hjDM*0Z)-(piHfjOnPpn89juA&*9^Q7po7DAqlTxnq)q2Xtp9kFX0&Epk^0$2^HCovtiI87wshb{^X5m+R9l)qqk% zz6|%)?%om|CrUd?RB9kg-@>4w0T1Jw^I4|Pdr>kSGQ3v**;0e6vO!TosMs#hZ$@a( zbz<}j1o1dQsI^FDf@{6B?K^$K*KN-lWQ9d3=a>}-wKUbKp7ScrV&ED)UmAFu1^Ic( zRg5vn;eERb=t|hVto%atq9$w$IRO@Y*$jvBss+Ksn&29*x_wu25MhTAtimoqFVWmc zg#vI1oI=HixthxCAwuhASC@pe5WJb_$qmiCcw>V#(JZC7*|+cVGzu3aqX~aoW>%-w za+RWqQvz|4-&~P#!NW*1&7bOPEk!8n0#q1aA-^Qb; zf`w;;W+=Mn9NOp=qdEF8LwRV|IXef38gwhCPyo2NCYgRf0>bcc#kISKSkRds)a%ad zm=;PPsBR`W0!<4ZQG{K)wXlw^(E|kqgkGN^UiquL(n3i%x%xO-Js&kkx6NEwCtHh+ zhGqVk8re@yU8ZyQ6E3uAM4-MN+O@T!ejj_B1hDk;j_mko8|gCFM2j}%Se`GzMsvqQ z2R{u*P~3&OkP87)M@ zM$eG3yIFjxvxPRN4!_dJsAwt-ciP>Np=wTcYoC(2}RvfR9)S)U?46lu7 zI@1YY^EGZ%NN-3v0>B0hR5>AJBHql`{YTPB2KPxi;UD&=GeEdu&c2($`1CX1G{M3VZq_1`CbthlOE;gVer(!gi z32msGU9DYnYo6@8^&r^<(M-3spb>yvM$vmu5WF9PUvlUoDDbRL_w=npqw|2x;i}k=*?hQW*I7SHw$_NV$7x^Vc zOOIVMo~X2gD7~Je##?l^atJvWQxMaamN33q0qZwJdE)~5Ry*qpnzuUU7x1r2*gaP* z=KWW{e||c;dX1gfw7WoiA>$SyoyyB0hIWON7ia68wP0Vd3Kg&fhnq(cV_1}nS>k!3 zH!GmjM=!n!`d6ks4A7OwIjsy6F0Kb~*?BJY3dsV6--w7XV`V!9F~je6$?F6=G-77K z(bjT5*^{SdWJ|K05|1-i22g63p~*O>QAzRpwV-{~~%!o#3U*0t&z1Szv#RQ>UDa(JyVy#$94}*5J`&ny`QjfOz=iUtqybi zR)wcH1ZArE)?bNyE05Q6fFoJR*1_{G|;VgdNLoNMUcQ%dI z-accXKj5==Ij*spF1;epTPoLe?&p27$OxQ zjd_DLKeN+zZi(}Hiol*os^s6;Wf~DWmvJm=X%n;6Dj+U}7>j<~U3HU*$lL5O_%HP^ z)CX`=@X)AdiJ_Odw2oI-1sllyzBX++0n*rTtPHafxuEkyRg}u(YDaeXco&Qe`S`G< ztJiO_PN8I`%5Ry#z?SB^@Y1tZLq_xl0?r=cHdd-HU$%U3EOY;fdEdK| ziZVv+2^y3b2U;q|aKT=K96k=Hqc>AIwadPpqg=%TlgIWBs=7Sn$pYuc|dWh{Ha(B}^D<^?EMM)#LT{A-Hy{dXws(a>I%|@gcyD z(BDO+z8GW^ijFX#yDj*v6qinbe0P@m?y<8Qy<{Xx?S`s)*BiA_y1cFCg=Hp1>I0}` z0hv+=E)O#Y$Z!ED>^=i1!BH_W5o42{igqn`CbRN|L6eVJ$uz07W{TwvQcVtD4gh(p zPHIA}FmYpITpFgEm$pKEUVKAvJQyIIOw43+Ds&0?`gP;y*1;WNz2Dm-1WmiH39E~` ztTUVzr|bO?*bsfx0880XKlW~nbskjT-KPYLclE+Iaz+@l%*+1tCHQf)cH#i>~|ecu(rmcJ&&PDVu}BWJt%Aj30= zno9(+wF+D5C`I9DGF;d_1w;_0?0qRK8hPZX%Z!Iu4e&a<&h7+ZG%Pfs6ScNE`gMFU z#cTb+PJh2DP+zJKWT}jprN9i^y0P4CYBuHH69Emw55O0Gno|}p^#JtOJE88P zr8NlR_hk^U9QlAXmc18FnXI^sRy8o7pU!cSKOs7{OM@bAvSXPnnm0r09%~w%*64W-`NfzWv@ns=j(#%k%#--Y9FA~fqng+4?BguH>;E=(zh1nd9-im;_1Cg`Hv5Zr%yF#@IVUtwP&9@N>Oc`GcA3xgge)jsl`1lhkrNn2jeT6%qsT2?jOWL3zWDfQEj z&L6;#3AOP0+FD%#*Wtc*IbnCc@(Euf^4`k^m8jjU;lgnRhrFKGx1YnO$|$-;M1eoZ z?qFv*cGFL#{UA{%F{(C|=0pq)%!0HepBTxeroT*+(x<@?wi$1e8t%*34fGl;+1voL zX#TbOSq#K^)gy;c<1!%t+kP(AtC5HLiejCvAV{OvUIM0oc${@!C;V)#wax3i>U?C`+S7chb4011s$tUb1NR8b z^CR0pXPuXjysie`j*)Pf{L4w@m7v@*8nY0_TE0P~**?@gzi`Cg9m5N*FT-sMn7BVc ztW&27v&tY)fG70g`STgB)dVS6H45uN;L89fK>OuW^G_!*5&>X>Hc#xNWRj?ZEVvlb zg}ukDJ3bR=pO=99j7$Z!Yj*-%i7lh<9gcyZD!Sof2rPcq6ZS105Q+I_HC^NQ-NhzC53?szr*GU89+Z6vVLFa=N?h5qv)*x}u zZ3T#9MZq&~2yOhB{$g7Q;{bv3;%B-yq>!$iGuW#8Mi!igZ;)J59|Ryq*}`&A%=2*S zWE5r_@Qm9Iv|%DZAawEJwAH@89t&eb?C=MYyTO_fgOmJW7GnG5=0EUr2%#*5n(|nm zsEP-*j0y-E)5=G1(Q@Px*E)e#0>l8{K7o(W$OKj9CU4;IrAC`~H)fh4%p)Zwd;rU8 z6J$5CG$bLoP#waEHYR@XHrQ+OIdb)^DuCNal5i_|4$CYD^RG5^j;MD%gT)*j7U?M^ zX^T(B-Z2rf|F4#Dc@1#GT)?q>Mm=O06kt!f zS?APG;LmgbzF58$#2V`A7J#TkCk#mhM6yTaAfHwd`V8VO?qP%R z^Uf;)AgC1PQ|lbixOr?XzqH4Ll@c+-ZY!+-o*|BnbljEWF86oj&=tbej&VT|(;lGA zxSnU-Y&sXx+B0wM@tPKiayyeM`Cn(0dNU|=_dQMIWGE^Gh5A8Ymh?l>oH`3<_CI_$ z52)*Z9ZY;{72^|!ZIy+(pwyz{HyK;sul!oa%N+HIK%N_q7=IRD0TdgpKoj*n$3^+T znPPw-O6u)+muva$LwxQtZ>F<8I);$BOO~7a8O25st{x?Z&7{IViX#AC1A1d{u)uc` zqU;d1(*Waq3fU8(n1M~19Z?azDFw&Hu!gqVK=e-3Uis(G{z2VfgUd$7oxFUJxm$YO zN5`5V!QCdL#mQAR+vJD!3wN%h%02(SCyL;eRcvJ&8XAIdQI)MALCaRcuN_=D-y3{9 z(N7AjM*WVA4ZJ=auoHWe_XEqEla+H8d600a(B^F^C&Rnz=(~iA%LtLl8JJUa)ml%WC8I*H7updj3DQP`~KwX5n{FAP!pf_7{o-jb!c zO;y(+Ys~6TQAaXag|bI!+TMUR&iFGd{Eq;I4y$af-ATo|yZ2@)$_lGTo9coflH7Lc z!aN(X;m2A5eaNqVs#Z~$B?=pUV1XIrh;j?zxqF+B z^N{T6ip4|op)VOycXo#|xnvN>NcRgp9x3Jxu{7UQHn3iND6U`>H=4K#6g`6Mensb0uj@Ls_5>4VaW+fI8H880x{Q}+o_oyp*o zhr!+zGC2Y9j`!s4ZTGt9s+W)8%C9FHCKJTFId`@;Ftd@=rv+7S^ z&e`oKYBANY{_dJ(IrS*_G{+feMtOiL1|c!%!b%Etsw^ClJ3Mq=z&CKJylL)>EI=!F z;>F>I^|5Z!B+-Bso|>iaG>rZ4}|*eA0B2t1}G zt(wLJM^2E0jF7rQ4O6phJTNP`?K5Ec0S_mVOFh#mQw$EcoN%ece((7-&lhx+Lz4!} z*qnjHGs|*+a{+FsaGNsWxQ`{A=vP;!K9kZFbETEbsfvZUDS`e8msNNhrL@EPy}HSF zbkTl9fWLIQn>U2Ytam@Xq}KCeeOI<){@N%^|7;XjZL344w0r&TYG-J@ad3(xJmv0S z%`N)(Iv-CCe^c>_r_FVAPz5?QL1U8#%u446bMCl%;bvEj=1kLeJ6pzh&}R-(Op?7e zK0FKByX};H6Hf2auOJJ@*J$$8uLJ3GJi`*Gxp~D%InC6=vvJL3v33;?HS zox(0&y$_OgiEbe_UYHfC(udvXxWOo$Wpy+gTA?%)9XkkC6Qlm(^pNH|3eQw6wn;S> zQ>S<00g9G zW_I&9TY%mc$I;I0kF);$9j=Eu9uR|Y5cd?X18S8dG83Cp)eWk1%W(rn)Xn z=wsktK8MBR-h|Z%*y58K!ndoDyU5z%M41$gqNCdKUwR8yI>@A=<(Gnt$!p6wa=usR zxqj!~+Bs^pT6U(W$1ji%S!1^gFMji%onl<6Nj=mkJp*%hthjZgfj3LGv^^Mv`hi{t@i0_i!wVLVQsXK!xK08!Ng8{zBut&5}cnrP3g=GA3GkRT~ooJyBy}(FWImU7;tO}z+6gN z8dR)r97APO^&gfHdrehS5LW|%kXJ1b2!&TKZeu64e`ye96(8usq|hIqVGZkbE;1Ef zaAEHPa%^k6>>%M%htkHT4e|cBXnB}`a4**EEM2KknxxrHG>(&~WBq=zN^D21`b!|h z@`GBx!z$D*`Y#z2zg(hdrosAo&MRwAG0xS5Z*5|!V{A^3S7mBC)f9M#tOS8i{$Ed} zjp_k(A`8=Oh-l^zKGK-Pk$tS*Rz=l?e)Xv*f)zfX!4jnx@&YhHZ}e4;ln{Bg_+(6S zU!1_~PSgz>&@C<3k^9h?=yQjK$Me&d;firq8HJ%;1tCbz$5Vpa4t*uh*y>-MZVv-# zSQ+L2-Fm5lT2*VW04F1$jMboK%^zb4xCknI`UP5N=!y*$CEa{q12I&_OCK1<`l$>ws%}eq{uX1$_P9 zSJP0;wHiJ3-??>SCHvJ*=hGk~73;ODAu+>1c~d9+MFWu@pb?15#eq`pxTC<>(o1la z(v-aAZ1p>KNt=d;wWn3bkST_F%f87B2-+xlEdJLkOp^eymWT)Pf6ygjdgewA=&-`9 zv{SzPq-01vWl_xjkIYb-bC4)kEa{hHP#CZb=fOp4yhT z>?QDJq$1+(0r|<=zm4pb8eB)v99Av$gEW0RD-w#Vu4_Ln;TfbIVR@`#sO>DiJ6nGu|^fY4%^^gI${eY6VU;+E2#k_tF)xhLm&*VQTeiO?uR&8cPqZeY+AYNkKMd${zp&y=t7xaS5CYyVOgMLTY{_>)b0q&l`AV5X zbCe5Le}Ykodvu$78fruzR3(HaMk>3>t?w$DkEQ((?~qY@>~=A11KFNl(AqT>aMiTNJ0NwgO}wm1GZk(`wzrirTUSd_qpCwgfDYdGKF8v zY!Gf87-wm3=yb1g z5pJ`9>KEM&#{&n#;2sxklK&gi_Np!xX1%NxNLzo1(SU)lCG9jNRH7S|5YBvbJc;bC z>EDP-)4#r+=g`-j*Xw|qgM?yN5*CHnRcw&>_L66U#HV{I;H|%K57AE^_lImfnaV}E zOgz|j-L1mARTlcvp44v_@!YkRPVNUPB=)w+ESYDMr3JU#C-RRx3d7r&r{JSMy7$xy zrak)Lb(#h4DEY-kQJkoZ0I@8&q;R9x?-HQ3P~eIE!eV$7xn9jSE-7FvZ_JX0TV-k2 zaMxtsL9q;%PqB~2Gh&vby6g%szzsyF_*FhaLQ6|Fq?2bYj~C@{llP{8Nah#$1?Q%g zRz`{v_>~Z&9@abmtC(in*)G?}%T}f@wlKxk7cMTz#=5?4c zd~U$*3A#=Mzl$h6lLS{fZGO7|iVersTG?L9F>caMnd1#YjRScs9>);p?7KRb$6qq# z99d{D+GIE_Kr@VD`U&93>{W7@O)XZT(S`1X#=0bk`Nbv%8n32-<~A)mTg$&pc6xPV zY(DQU-cCCiX&dWb1boY!Zv!K82k|9$2jTHvtL}*i;hY|TvQ35ZVeMiIrMZ72Q2YYe z`>R!xqG>y#UL!tAAAkmH%#+WJm!p?XV-bK#xYDh+ZMratl0+jqpI!6${qfZ+^L5K5 zdXp|r*Ux`^Ogi%pSF!OMwhqzc&Ju9zmdp&xp7>OtQe?R5UGmEx#~R#Kg2MUK;?ll- z6DdX>gfJJR=<6^~JH~}Nwdww;XEx`1m*!-#aCaY(VlrGENKVfHlZNtKOQpU|M&fvr z@O%g&7Q1xm`Rfb4f$x{};ZjSpNr5ycV)=i_U}@u)kNX5DP%5rsA3YXM4_qUsU;SU2%yK3C3QLHEp2hfd=V zJr4Ki7SEJdPjmETDznbPm07NhMjjb91xoN*!gGa|@UHZ)U_h6iyUSN?H`BsAqy}Ua z)J0Y#=u$i5XKZNWG>Zm?_$$XqKJ9_uk7OVW6g+phe!L@)SBC9o`d+mWi6TzK)u}dz zWc!V4^1YRmP@WC6E(N~FePi@E-Mx`0>5eGjSHSaJ_s1(P8xcmc_J>~X%1~obi%@dA zFkO_5O1sd^V&upfetR9-*ey=HuKDDU?)z0I;?GvjJU5WND=Ar~ z!jU%EFv#@CW6BT%!-k-BMiR<d;+{zuEP_znRzS)!HT66l58%Yh>W!`KK4;dy{*F zHy2!~BZNhu!%!V4fB$@yI`u2`bE*LDgCcZ=w6vSY6czKQ+qXwNJVZMmoQ7R2Mc$T( z@yc3=k1a+Il`aOZUj@JT{S{#{!DB~QkDCgA0;B9}p2;crmPt?Ssbg&Ts@_LGj`UD= z_<~K&Za3e?3x6M6R{W?#$I$$gj!{)(?V6BO{Oi}Nq+}+7)+;3Ka7cno`&AXBekiJe zkK_uo9j|ej8?Fi$`fhP+s*px&)NOd=4~f3Ie=`ZF2nOSGP@^lM@g`M8-MH16Uc2xD ziFp<2NqOS~^QW`nt9&RA6ggGl)wrd!b=;;Sg(aoC?Zhzt{^gKDiSIMarAkK*X_<=O zQtBr~$Qzzrx{)<{KU8V=$boKHN~N7L#c23EnMUsDVmkg`m(`Y`eswNlnFea+$KQ!x z1eweGN%4V3{&S?!YumP{_ow^yS)Of=nWvEDeQM~Fz)KjZ15$s^a=U^qIZM4XYB1%( z$X2zunbrN6w)lOwuwdyu|NGFjHKLVJ=>D5{Kehp*WCLXp{E;6o=`h3Q4u^9(9&A>E zrMo;UxyaGk1d4snG&BML1@Vi(Q`h8?+568u^$iTB^4ssLdj43kL8kxghMnn`!{=g) zo9`EL@Lxcd(v$Vx#kgP2SA3QnK2%guSyq*ede>ZGw&^FU4BWy%eACK2;W_sk9`UAzKy;O-{d<$Qv)_|$3uPz=f~X`Qi?@B|N=)05*$ zpdq7N_~GHkKm5nDGv(*KlsZ2$dM%c=;40I_WRvKsvM-;E*KBF|E8JrdoeyWUX|YdB z)=wmax}u%BPkGTz(GkIUwLKFHv-7+Q=nVtlCTc!Uw=(jX zo@r!fOV=pLEGR5EKI1AK&iw9P);`w`vqmjU{;;jJCc?>ahnKJHCt3k_y8LF(ALPu&}7q zARH6VRe!k9zdV`mA9|tuBd{ZZsebBr$;U% zh{<55jQ6VZtqTA)QJo)gg1JUriV)SsCx-t#ez31@5lMsUn1Z6>jGKNJ`NLH1R|-X* zOTB5b#MNETVzBa6IKV?$>PhGli6Oa76+-aDj)ni_`oDY}n;8%izoz>pT@L#2H@I1f z8QrxTrAQ6YL+9@G6(ahOs(st|OtX)|Nq#4_&@OH>?frQwdhS1ku%z>x-B(nCkCfy5 z>X$3CnqhYl^+(=82-aA!2^*-_-9;{>jQ?XM4S+1q8U`V{ij=Wsg!+?c)F2vmU;*W3VPA9Gw zxLzg?{t?_lx>WKf)1^yj>8eCn1xKUeT$63JK}31WDc?k6i~|Ql_3vJNwt=+9)?061 z>mVOsdwMfLVJ{ejDl^rKrfGE zPp`(=5Y+caOH6_&hca14)VEx%{&^ns@SE&ay*pFPXaivuB0QeTLb@3tNj^Q+&8@Ai z!_h`>QWaCDjPng}ubLNsarF1mXrtRV3Z-cNAfZ0c7Anzm;=oiN zYrWhkS?(7%zgZs>&M2)J!-uuG8h5R3ycPH{Rr{u~dGn{kg3PftH?u~+?5S}L$5h_Y zwwasDp-E;k$M6`KX5rLBhoncohLbSiHLc_&rNb~^`$I!Xm%2Phnf4BNNkCg|s^EM( zF0xv{B$@*RjqJk0Q2K(H$jBv>{B>MMhXU}u3S`Sb6Iz7|RIKISKP=Ahs1+c`jE(+$ zs%?Utt25xP45AzTpjsPsN&oJ`)}BxE*>|`fx=}RbsU8=wk0|g~ zS1O>f%B5Pfo2D6^9Gl5;E*tZa39hg%&fPlbjx`^Jo+-TH*_+uRJJZrsNx_nW0|YMxZ@pZdpg}am~)gePQg+>z}&U^5elOpHQtqsT8p@oBM&dhKbJwa*l(eROs2gQjo zPi`9>2qVZ*zL37{sRH$j3B=HVQ<8&2Uv-5tX26Syv9qbB?$BQ56Mqu_C)bDYtu?~o z#NT)Om5ucx(3P8*0bYuk(a&e)^V1%(PbO38#Lyl5gwzjvIZCvue066;H=S5anvF1% zvt=dr6WJVcCMMUFli43X-@I6>_9DP+Ykg_Y%Br)$mzZT`w`*JW_8<%K9$CbN{81Qn zOriR;tRF+r9K$CT1IxV5qAYMrW_Mwm*F_t*BnNV&iL;x{?!G}6Pti%^(?9i`C<;UK z+SINGk8s8`>L%-8S&=IB+&+iwpDuEYss|}z4u;gD(hg-sbMMWUrd=@OQh$vKqw5;A zr?sJiNRHY_ss2L`D$wfSb{L^Gp>n9=7tMS#hJZk$_FLy~NL#B7hX@nT;UtMDj z(JSF`v=iwB2DdUlW#V7+?x?DhBe80D|DfH>7mn~vOHo5J(ra`|4i4r_-IiYTY>NKM zO3j(c%n0FRNqG`_&MqN`A(Xx8O~u0%xj>c~2OMM3y557)U@(h-hc zKhg=;TUS03$MI3?i9G~vZZKBYGO)mhi#8|leYR+o1?+&7$0#q9R!&FkRw%78Vo>#_ z&mozb(rUwWv-3C(pNBc4gkDO`I!vmI&)1riR&_p(DrPmcva>~8&KS~&2 z@kBm8<9K(j=jZ2t`DPhY-f03mPhQWhTbW8_|KQBVn;_D8dw23)7wlxPQCrAzUr*oI z(&Z*V>9~SI*o>G6*Nh*M5YC#NSN};_o_AWTfJu_@5FL3i6-Ej*6-aTLR{?A$9FzmlnOcA@8+szT4?^+#1bo0)4nSCQ;9 z$%2-#*{zX|wJ;jdGC-<^W~B=?uC8$%F8bg18cHGsGrd5$PF^wKTH7NpkY4xFzUNJIyo~^#O z2pM?!f2I9`AMMwKv1dh~Ep4leT=j|O%hwlRC3IxSE$kJoAc>Ji_lT#)@G@S=r=U%G z#y?TLmBCurSM8n}NT~*_Q3a-lV|-<%e3RxxsHrjUF)K~pX@Q`2eQ1{FTDv9jiB!vj zsl?XXOD5{owe<$HK%N$+hRpG;rMeCvlyf9Il&vKkFElhh)z%(C*xA`FhcjN(F#JY; z@=*%20vxR4a;1EPSLdJ3Og9K2`I7#BCfvzIRaMW_e`J_U#J;_4kdv!E*?P{e?=xjW z=2y1?EfiF8lY!a*SzNT08nl%_4ACK8&t@&HOc1)8xz3iuZl8It@qLs~GPC8YSyK9W zCt_{)H`lN6!18=!TH}}E#x}&Dc_X+JV`_HF%EKyZr?Z4meCME*sBSK7WGZ^N|M-?t zXn}8!FAHHp(d_?ZJ?ZORB_z7}8&2Lwoj2(Vm3jKOg*iHzxJ6XDDa~wg?E+x{r1?T2 zg)xchmpSzc;*7K6ZY17yk73@iE$ABI@6usG-?%F;?HK4wT=f}xGP6P-Yxa7Ulq`l_ z6rU(YKyH2o2w_5uTMyz^q!!j}H=EDU7yc>C%QH2|-*U zT{3=wFgQ6!N6Oi>owZPLBJYVI`=(`&FG$VLR51l`Q~&@(-lX-z3ez(g{{`M&tIad@K^9i=>DQE z1$XXJz;O~k*?(2jrK@?0O~=*#(X~k7 zi#_gU*TgivJ~uYXsc~MpBCZMRZJVe6!lHwf7&8`+rL-;8KTfE*>?HG7)(B8Z@U*o2 zlL8K2*ULF`ex&kA_r=b9IaH9*(<}M*w)^Q+0}ziCY7N*?$v4^1KQ}6hXR5eH3dU2P zv)0EM8DeP2#FY;!H7`v^6Gw}(LErz|5|!rUU+gSukZ7&d@t5Sh{1*3ot)-9EpS!&H zxGc*|JE$K+8pbVtHomwn$829e;CS3bKgDDIo}LCJA%zT&Q4$Uir88^H-Ui z)pQtbHsiOFh%&q(SmSnmPd^T`@`Oa1v#faeU1*T-nXd8m+4*8t=x5>jI^glfmQ;sf z^Tf1*E|tN7OoIQmbvUf3M%~7nskW^%i~}rFaLB-^TaRMGSFuWEJXXcNw6XyREGom% zJ=BrJ=1+cJhdkeS=-$=$VrTyCg%^x3Zt-WlWRl=hW2UtcD%AM$D= zN8x2V8bUdoZ4XHCKLgHV z5|&I9-h?eVj%&t^d1x}(*l_JRm5b8erT1c&|7CE{$P9rRL$YjPmTrqTpASzsSsIf| zrRw8N<~A=GY9`arCxgs3(q=lKN=TNYVzd968psG^&>lk7Wu9RrYuusy#jj!l;!#KR zzdH&1aH`ik|Hiis|G~GRFC?5S^quHOJv*BHKQRgARxE2iL}||&9!OEKM2onLu!ml3 z!RHL~4>T51a4^(-{{&9V$Y4r+ZoWP*U>ESLZSb;N_(<+ zB-wf6hFh}QC9Y!ijJKIvy3NcLBgKaK_%BPa^!($%mf8r(1s!9S+b9|2pFGp+5ktMI zB~9fWY9$GUhLbwzld3Z$omBhTRRbH9s+Uh>^}L7VBs>J$`uTfOI({SBKV`6(#tv{; z-P@e5BuwCof7$9gcbxnO+<68YpzoN?qvM0FSin3o?#x~JhFZ?2T-5P@?OX5 zd-+8fcw~@OBKtP=31u6}p25Z@{xtwF_<0Q@eEaG4$li;I{o4wR-m@SvzAEl2!NRv) z+kU~}K);rC1|&MATTPeWq)^1UWy5XS?0QHroV!soqR+GbtwupL zaKOjR++DWusM@EVw-kw&9hUHNPY--sE@ZlH&ubYP6j!5njD3T$Yn3x$L@ozb^ZnaE zH6hm<%epC(@A7QyzxM}ox7)?D(V!%a*EF8^$8d45W=lqc@X_Gx+FyA|6LyH^EK5Z7K(D+#~V`|-{kKxGE0$; zGrR$-3J%XpgegBFEQTKeFa7_|oX9H}0r3rb;YZ4Kp}KpU_{;P;EEgG5+x!<*JC1`l zS%soqd8{C^Hwk3~4)BiuQ(3}ze2*M%Xd4*6VSj48=`pSF(tEc}mqU8A5-xJ3A`#eE zC~qHI=^qj?pGWQ^1$m&szAJ(fDs1V$|1*BL%hI6X*yehjF95TWK$oVU^)4r_650K+ z5~3leHR(b)!rO9)xM1S9X|^0~=vX&VX+@2z*M~rj);QOf!3(4Ig9%F`@d^c>FPst#09y^ub;x~<+MRXt&LEs`U`(e>O8zm71zmV zC5CCTL)pnW(Rs|~hH9a7l_qD?D^5;Qf+SjVo24f2l=QL>G^#C=Ld^usG5EVrn;gvT z@qZX8U4grVZ|T0zUIB5~UsjR*(yRkiW_F6OiCJdp;OB6_g8%-xwmwCv`b5jQLY502 zJY$1Cm8jOZ@0mlytPtA`rFx%wH`3vl{p^NN!M4o)sf7q8sRZ+xoGx1-Hw)#tkF}Ys zpvv^(RJJa9U<9T|n*9C_z{3A3#HFjRiOsP%#QDbQFbvX7Fg<#N1_#*RlS-)p+5e_( zX!NQ+uubmT6GroCl$(%pOu470lHb^Cs(^yj@tXp9>u?L4}7FX4* z;gTwSUFl8BxW%%%_H8eh^uT$%p0fRobko26Y5EfJb4KXk<};T+jjt3N3Ll~Dt8o=t zPG6hxY8;@((3IKn9lrbc(IZCs|9p@~$@;+rV~D;AA;t9^BR$L>X7BtO$yuNuP}_p5 zBm?EbnPULYMTTRvW{xv!p_2;qW(5fBnZTpZmM^7R;ia2RZ>Uv13sZfY-&8A^6~2p} zlq;`&4d6^yi1MTEf40jd1jgr63`xG^f}v4hz|*jbh4%q^X0YssFA%qU$rjd}d9!=J zHlCptSHWX^eeo2Rp1b^KxfqW;hR;?+y6zjt=O|{#nYnj1xM$G2+JyVflhszvkKU$> zkw4qOUGXv8XqMawPt4Mc-vgdQH7#&Cf$_y)#W90c?jh&++${X28rjU#&I(-cJ3QY* z{f_Fkiuzp1G*4_m1gDi$PtM|_E6jgyjVpG0)uH(&LZpicu9mu^lj_#bk^_-u<05w5 zBc+2i2_S1~&3EWkbmC)HV=ND(*L#7UwTpkBE&d}DAe5ogLpryO)8B;}(1E6X4J;W-HJBr^{W zo|eJ;ZUg;mcelg`vC#5wU(Fmij*Qgj_S%&wY?O<6Y+`~s5+u0U()WK_Li%rGE5;+1 z!j>)s7EAme1JSjYWC31GKWs&ObC^12g+XQU`o4LZ-$PnSy%N2NYziKith^B=Y#t}{TjTnPqESUsJyIHMHMu}vm9*Izx5^U{mbK@dErNVfVHBF3!CaNyIGVkaaf6Nanc{?;^zhp z>Wp#gG^yg4U9K_g3_OsAiJ1u!aC%KUbjO5}D{}kk{YQgC|3E@c8f=9Jl`l4J3uCT3 zd+TLMDvd6^-Vvi;33V6I!OSfrrH-wApz?c3YNGncB5}H=uX;{v=EBBETbyPsvZaHB z%TxQ+^2+_Eo%wB+_VikxJi6#;Y46cV$LPqWrp&#&$feIAuv@+IbVMSC=mafK^MR^5 zJ8$to=n@)S1^Xk@{%xjfZlqNU`oetYyQVhqTv#Q(VvOyINo=-5DdY5Zm0{f0XGZoo zC(g7(ojJ~le5@4eQOMWw+&LkAr!D zYfnZ9iN#iRw?yRzIC$PEZ4!>I+&A$FUX+cy7Hcy-aGhrBgEhw(c6RhCvmk30cns}v;9X8Q}ZQ_8rwmgdU5=b1Tca zkN;h6cqHDh^L?Jj@jTAgu^m9b2yJC$!NWD|;Y43d_elJyR~_a2dL!mH@frEr14cg6 z6J!@zF{uqyE!O^#V>l?$)$eU)?$!2X>FB9%O@*BQSmx>YBet((Tok)HAhf6S@})WR zf6tvR0Cn1ZFr>JY?Y3pVzp?Y)uX)kHTh`d|TC3VrTjQ`5xZo~=lW+h`E~(ObU7bsx z*&<|_CnA2(Pec7`o4s5SgCZ!o$!9aBdw5EknpGaW{J0;mzTlSxxf?oi)H!?md5}vE zQJv}HK#v+ViOZ;&>Y?)yY?q#+!KThOy9L#sw|&Wgn_HuP$A6d-iFx?wzaM zS4qTwGNy92Trf2!Nh#NLm0&OFVZ2~r-hyi)|?43~09X zOSJu>XD;nO1$7h?Qc#y|#61+lcR}1&$oIS}^FP4+CjSYt^fvBE?sXQ2g(x!`W(Vr7 z^IeclG_u52uCUYVJ?DSP>ZcfD?tz-fl-zIwc(p7bcoC*LCcCzu&p;&aK36f)>hQ%L zV+Eg#4oOZ#u!uwCN@(z>uqOTtrkd_v$5cU50I1GXWQ^lB)RNVGd47wpGs9sEE0G<; zF>&^)_atQY0AUH<7Nq}vSvxw-yJUQt68)!d`}1xu^0>G`zC@mIu;r$ac;*K57UGAN zVAhD#c$}-mf=JtrS_IWFa@S_`p>7o}_nxD>AoI$C_Aa$gQ_INoG^TWNg^4vW2*@1n zbb7ognJn>hiOJIjg4tntbA_WZCc2fp;E>!?l7XS3y_c2wxdPPtD|#AHPz6yMnqLz8 zBr|HLFxAyec@5vjj`ur5IL`Hf`XAcskM7ti zF?8L4&G+fc+_+02GLF1;^Vh?PdU*yp*onKa>Z{yX*`wvUl19va2H7@Y{puJ&aaJ86 z2?GO2wqM$NKg(JjJ!TE3&Z62JKS-rrYfIJIk>B#q_FEx8ALPxr|9w8zG>t!aZp;7> z9NMv&UZhnfY9Bz*!$h&IXAXs6GhA|A@7U1BD@XUDSCt~0Pe9FKj)ycI>4C?8u_}!; zJ$}sb=R`{hsOZ$A-atPUqy8C~xKSt40tHI~mmfW#T$4#1= zfkEFRR{JdKT=^IUu98QBr(Ezj(`k8=NOL}6`2vp1n4@a>VD%iUc1xbWLmRuheIl%H zojMgSiNG4zPEU&_w00DCdwjFFa*J*%vG<-TNb7J z$);}H?shoQ{W0c4plSS<<%K_@qj^dQ@s>8#KA9%D`k#(wG5y*n!_upEf^|>d=5`Z) zM{|B18a&j+tc9%dF(N#?kvrb}cOV!+^P{JBdQ3Nq_>8nQWXXFQC2EeNV}W(9SnBlK zI||zS-qsag`7~yI&nydn3XdtmtVeLHPZvt6_n3q zeDiTDcj|A8p_efLzAU3w_$zl1HA0Eas_!XXo^}(fIb#aqR5L85cS_P@;d3ahAW{K1 z2CeRIq`k-|q@icU!~|I{4U!|QUD`(G*H@ETcSp{yB+N<5SMYtO`fn}WBR*fHD5@l$ zIHVV-em)*_Y4L5!2`&=xd*3=qCDvQH-pFi)x8|fgT!q(quzV-LCHA2nRDR~cKdRlp zeo+cE!ZfNMn)E(vsu6$pY?XEi2m}0(Y(HIJFzH(rglipb)3qxXs-o*$vFLXRMo>;>x#L;nB1Q_8mtf z{K1+_JIiF51u{Yhc0QjNt#(T1ICAP7$hoPawx(H{HDJI8u4-GDFR_3o#q``_y6&u`Hx8BXX;`& zQP7Oc{TotFaJSywcG@CGn2e;~_e2d{>(FQkl+OwDH4NdjtI=)l}eviQ=40SFXZRDE4@_#jBc|86~U|FxuI;f6bTYl6v zGEwTOdtH1yFGom*<943J?WJ|EwIFSkX(enjN90<`>}>?s_yYtxFz#m6qJ3q34Z#e> zdvE8BRC%o0;JKapus} ze(Wc17V47|a~rBKIltgbTl8C`ItD{*s_V7d4Z=36 zSE4HqCXuawo;oj|>bSh9M(z!4Q6n*Y5LWw0*BHkL%F}hAnfhAR&%g0?-!$BE9%%$G zJ`dqxxJqkzSZ$RUtAK8ogrE7hUx8MgoOo15XiwrSTHzCQL-We8BmqwfYC;sB24%v+{?NPwuH(q2Wlh;uCdhY-4)3gpw(=+C2)*UUMsZ6of^-&N&wXBu7 z{cRS1W6yfBQCfmC>zHx0a%I&*%~i8IxLa7qWkIB~|r&}P~r>-c7;-q~_;u&aew#CUge2`F;Zx^4N%1i-PL&xtL|H7UlDN)y)%ZlyXHT3V6^>~H=Yo&9 zX1am$i$9t08DN2IOUu-4KfJ+*+N>+4+Cb^xK~)KX=k)(H{5eECxkY~}->>R#+CP=D z+%Q)$?oxPvW z^@3;9kEx2Ph<~iBYz9pbh?lo*{c{LOh2_Kr65j_V88`+6aRiX!qc=Iof8~#}KPjXZ zQ`}E9YiG&~%*k2=eh}W4>`)qfdGOqjYJc)H&EWJ8RCW-zL2)+0UGRgv(M&Zn{;KV) zC9v!blHAwiG|wF*=#P6<7T@;eKeup~TSs*aNDid#K)>#`5NQxQ)8n7QQHO}9y}RQ7JFRNL#pr>IDDICbx+ zxa4bWs`F-w{zPMIF?kl>`76Ql_-U}3kwdxV8XdzVU~Wl&QFL9$HyK8o^PF}urcE3|V% zC>H;|K(HtI{>aU6H5Wg8UF2D5P)T+&MbxSA`@*{%2;SBWpW^%}9)t z_T2LKCXDtUtGLKV>%8!6p-6*d@WMB9rUsppNXKWonQ6bOHKoc~H{G9=&jI^#quH4A z#t~tnMFuF*O{MF01fy|GEb2FtA_Gj9jFmNBc$Jfv_J5OFyg8YN+(B9ufYe!xPAjQn zkndtEr0Zkd+(&v4a_7C~qFb9rA!A7r+&)Z)C z{@xk0{^L-v*p3Q!Nr5gn-F2DtD4q6uSDvG-l|{4X0=sjC>_?p}w;qnB7ae@JLRHFW zcjOqf;!Lrd5`BBG5-{DDN|&XcdaWe2DH#s=-#?Gy6F7`7$W(*E1Zx$mNVw(=My3-l zNJO9<`<=>Kyc^z;y4P>i?q`eJHiZjuqoUEP<|CHd1vU72E=}74_cXXB9>8yE6g2D# zaPE7VV0N@WMMeU&tE)+$iX7W?2|gCNtTeiLm!7}5@?MlnGW^dn_pS1W;PpahX{uh8 zboz-*6@_@k#l(~PwvROM-WIm$oI#UJd-vufLY>IrmN zWBKih($t(;#)Op$4!!v|BlYjnz%Gql$-`ARkQ;;~_9RampO{!MU&hG<79al`aA}_r zmUmI@bu2rP1`~c8+PhAr&@Q<&&OS2p{0{wohyt|tn?|Rwj4%Z-FJo+CyoBA%$>w|` zLDxr9wp6w1T7ZS0I`7U!aACzU>KI!j%0NKd(_RE=eyDT=m%*?CrQDs$eqRgf+TJHd zks}cSZUMs&k9OWKp4`u;X*agBiJntAM2@$-iFvfbmxxc?x+lqj4`?rvEYT;fuXYIE zC`I{bH;Am?k&`wIxg@^%J8dKq~-*euy)sCWHZ zO_m&dR=a3CLl$=)P5q^xw*%D2;gp#_wJMW3oA`}^@xCn~4+zXPlVch!Ue%)ijD?ex zygxXJE@6A2^o`zuwIMi*9014{bMxy4+hVM$>Ia}yrTGVFm;(+wdBsMDQ+Z5@x68<8S)??7$t>$L@`pssba>>^ct`F-qan3+`) zv@r)(C(}eG=mu#tL>RazpIETC+Vog3Zh&Bar@OaZG#4dor*mxH*Hf`fp0Mw*4Od?k zT-e35PyMxM~CLQSZl;k)v2uu$tdMEE{=g7v`CKm8Y?ey!fC3kf59V*FGl22 z1v@|vJ73&ax9o2xTlo|9@whD))2>p8C489dc1_`eUXk{4i_Y&6ZPyzpHg>)7Ux`X| zV*9)DfaA>8H!~wiHdlRby@`yIeCk|R@q&d}hP1>}_wIu*@zW=F zq)@fj)nK ztt-+(2woksEpi#x(2S3-?#QC@8#&lRa?z%E3U7q;$@c#H>ewCA%Yx%PETfUM|LFzo z&$Olwp~AJJN>XO|+BZJ`a{G*RFn!p90bnGm*Gq=_8#-J#W%G{<<6}<|DO7jh8y0h^gLc)?+CMlt*{%77=#=48%yF?j^H+^(8m~%mRiHc68=#w$ ze0|z2Lk3=N5f=~6hP@Tf_@~gPI*SfugK@0U$Zw{fEHo+fjn7bP(7qKZJs{{0O`FfYz?(moTH*3Z59C|klV zF2*m44HOnK;Lj)$?~zeZITWPvR(ky9* zUmKOPO$`UDWCGJY-S|&W-`!BD(8*nEjijcH5)L>)%WD7z7_M&|T=iwHejr9tt@5|3 zr{C9DKEhpP?JDs<_x?JB1^7(?J}CR;oOxBouTz;RL~|LF**>PGrKu^&HDw)DOLXAS zQ##H!HAi1#Hx+q^@G@I1&H2^um5R+pnMd?l9x^MaS!L9o7ng*04aT^^6E?rKs$z~- z;7lf@38wDPYO<1@B49;NnV(le$1{hOx~bKRvVH{ zi)r$!q=X?%Ae}CB%Npb3*mh>Nr5W|FNYl$0h2ksbhAZCl(`$|92Mi`R!iTId?KX@Z z+;>qrb*!*OQx|%{p>Dv|(6P>CNdB*JQdtF50i@_0=spA4o%!nB$xn(MlDevZ>L|DX zG=I|jaBF+&)Xf?d0;ns55H49LV;e(4pmX5`l!d2aY@Nju_^l>CmN-w=Jij+ z*M#eRG*3LE!qK?fi-YmIY#LE#Ey^#dat#pbQTnuPX-!w-^m2VN2RY=*%w+MNr3hKa z>@vB|G1by`W-E*XmA2ha&Ql1>BW$67jGYwcJCR%hU@}N}%)|}hd5x*ffJBQA<}mEy zw=IeHDKM9N4({5Td%*z_x_McsBvf5}Y3A);YeM!q`uctHdo!n%;7vz!{_M#+sp}Fe z%SlDt;ifhO&OmHPVM0GI*tE*#Z+IZyIH^uvaJB+$A6)|BN+eAUNAgn3vSu#cudDCM zab8u!n^THC*?^wqq{DG|N+a zcAC0LW+rfaN~5(Q;@Tj8 zSCwu_M6eOxitbqbgx28|nQKy$7E@?7UsLo}5Jdj`aFwAX(0VJN#j{JAkcuVfz|q?> zlIos~?tES4t&{pxfWQCo+l0R*KT>LcH2U0sx#Cm3mLZ;ONBFn7ad3S{G$y_}pSy>A zqrCgMvs2%7JVoimacD>x6vv?1aYGz11#>+XW~@pO!{0of8Q&RCKKBZXr%ryKUv8q_ zF+ZZ-p`_T`?US!1xP)#jdkL)FRa{4H&o)|EeBIjI|MF|jnXJ5f9jSkKsc~Z{`jpIS zvA=$$x~(dQ5dCfDAfS;MAW-Zl2j%7cQ4X@acRYA>U?qQuY zCwU!nYKZhe+9LIc)3qeXT$5l&mt;pb4^l&y=+I*_wNi`;rUGW}o~Ozt47w)m@?a&5 zUxb(r<||k%8lts#zYoy{2E1VRT*JRC`xs|dl7LtzG+wIPQ#}fkY37oT#K-E&>I$1U zlp^05_>h;n7sBhe#meTmk@9b#y&z!UPUQuavaCrhY|?7Vc_tvvRoZWkGVhEb z(FBX3zTIJa)pzR)onG$Za9V;ewUEcs4RQeA?=6D7$rKDLUI^{Ip$eW4xpOo;c(-xy zE5Xg0-8&FQZk`?70q>0G4{P*QBCv|&0c6nHD3=Atq@codf>vf#6_&7MF!>!ebmn-- zk>dVlPO&w*u)imBY=D&RSP}JKQHP#O&%z1S0Dtn9_S5 zP{D{N`nwY~cOPbT0@gtLWK@;>wEq`gF|To?pPW%|-6L_&SA|vrImspV@a~|| z1o4~y`B6|G6oKn4c>Eo@%8|@0LnaMchk-#zc2(gsrq+kST?LKR3!n791$vdo1h(b) zD|MPVrQtcca@@CUZI8ZJ(gXnCbQJM>HsYUsYuu@06aaNZp7noz1|M*tD`9(3x4hmA z6d~77Ke|I>ezZYtaE!B05YKwB3MfP^Px%ZCd$A++`<;oRz}muQm;@``T5zvNA1)nd z(iEPXO%9eeG)QIVLVr2deAzuFO<(#WT&^yLrYsw&I}Pdhhz7{LOXY3&p>zUFjycFS z>qx+pLd-PsW?SK;mlu%TiaWebU|j1~>E+q{vO2=F7qUe6?&g_8b+}8>->DnF^8~ zxr);WA%lw1q-MD=mh;2N1_PcXG`8wZmS{S{wv}4g2*xs&+=KPMo;nX5#e;i zYt+&f-r>rF73k;;vI%Aq1vgS!Jcn8Nat&=c?Ya9C-&|u2ckp&FcbMiyMPbJ zr97jw-zXO?CRaa;IX;=l_RAvk)*g-yNP{PNQPk~ux5l6CqqVvG| zum)8Hh5QBuo(v^j3^yod*!QN$-cMo61Er7>sKzTYYjrevvGi0ily@h)b@o-&PPM$X z3H3^$S;m=Z>$Sc{;lZVQ^iQ4ILuHps4Md{1_IQAMM#-oHV{{Tip(612j4C%J_mKYyZg{2fdK#xrqme?clJzOq2bG4#1`NzETD zCBaXaP1!;3Y6`;cjG?};*(w=8bB3hO{UbL2m>^mmSfIUxU~KX|<{6$U+xOqX@X%lq zz_n(g%%aQe8fVi|Poj%bUiDyqjH^4f4G&Ffn68e(%Ny@1d(pjC*2wCP~lMbk;uA*`fhbxHk)7UuSs4^3}34_?Dla^@mCV zrC+C)(Job4VzZHdcmE?ivoNKN{T1bjMBObh^S9`niKbGYmYNlrL`6CdW{47x8+YFa zoF^uyAP=Jyk6d0o!XMLRO@3=>)lS2J2SrVTU`x=DAA3!N_C(!+71wmoglEBnESh7v zd=DkpwkV3g6`71rO_ZyG49A+C--r-SZMu2YoB6Kpz|lh&ZyyO_YPARo!<$_s4(!_E~H4be%iv~6b{4|r#~ zvTe6RRFHfto#(faZ{fuF2f8BbQ%w=P<5|b}0?!39?K$ID$zjFGdzZm}Jn9n$32Qh) z(f+#4Da9*rfg;Ch@C_-+kr2EvrL5iCb~D{4?htDFfBuJ;`w29%F1t!_hC@1^{Ii+j0guj z$?*(^A2-&IWakx2vaW^ZPq#9OmwG*$QE~`Pl^E*EbGOCHSXw5z3fvmy^YniDM2YRm z_))KhZ*Cjh(PYMFI%thD{HXPVBZ#d3EeiE#I9;a4DuwD3n}+XnEk>4JI}Ewd>o92H z0?+-n9a=7BB&$HpLt0GU{?`r_lbD6`;I;c}(HnKI&t3_C8te{}ku%d<*f~L)&~JWO zx>o4nzmGA}?IP%+(&i1JJ)y<6^=5iio_$|gTAsDxzC>Xs(E-@upTy@Tc1lT){}z2x ztd&?L>E2&)#da-2_IF&{wdd+~9|jET+}Q8^%+?pqd*S#S6laOWs6Pm0=YW~Pb)n;_ z2-2tf&B6YIb6?1zfRljF<*Y8NySMJC+?6x(`}Jb5;Tb%{bI6gLnfzX!)p9`2 zW-8{meXEkS2$me_osmeOo#cI)+7l#o@jXBRh6X4_o*s=YM$e!rKba z7bSC2O1gQcT_v4;dtxDNROyPrL#rvvl(6+iW=4q{gwDgYqfPR7cg&DOIUjsX-xy)ltO`yJr0oemKnWYn}hoaQU4Vp5PsjTd$|zB;cX}z(An)W zY3O-}N%b)VB!$$0J~Yg|Y?&#TgXv<*Tuil_Guryb!dvZCI@>SLUZ!K5OWK26h2}Ve zG;?D~&PGPx9{P9td=F_}&~D79S!S<;_4r)hSS)>6<61u?vvh)QRK${$bKwM-3n>sE zU#@@AAe$%er4St?EELX2YkuVW=!|nxGRWSnIc{!|cczxrFi#_15PgsR2iM(|wZK80 zXt2jM;71BFG7&c0vEK1A!PO^YfEIB<# zwzmR2^oCp;UdiFlpOx?&AK536XX{4~vfBb@YW`J=A8U^YKvz5&~z zZ|3Ef^7L@!mTGQF-pC8N*a2d%?wXyrP8B|+bB zn4@)aI&nT-f+}eHuUj`d^IX5JWnI1HYJ?rY+g;!DI;R(`TO1;4)b-T&e-6`V24eU47&0VAVQj?L;O zZ`Tw(=CISW9opmiDyEEW(>C)g%hGL|U@mxzVeLC0a*n)(C<@vhl5DJ}!|ZrMPYtbX zJh$jDyK6OPz*rS8g|%?oW0-wY6(@mL6nY*J9MT}^lSf7w5qx*e)_e>5z zzM6QghQBfpn3R@-BMiG`JU`EX7Yx0Ka#i^ey$opYRIT?B6r5+oi zRZR6c1CFwuh=+P<_MsNwWJ3asxcmrgubM<9SdjN1p;k=%qyxHr?PvKohb9BJMqf!T z>7n1$N(Qw1bcQ7Btm`B{^l1t2!{li0iJ;LnBZs{gTkGmpwlRqdQ{*4w9XWN;cA`uN zgGU?lHRMeGX^t4nlP3OX@ci%77Mjv86q(Lm%I{}YM8(VTnXnIg3 z_DyXyN^gjgcdcFv#%RBvK$C9bGx?%YmM%nlu}ZbDgo^Ul6^~i$TI)>SR4APuait08 zHaxSjvfTeHPhif1ICQ}9&shF{w%6!3-S63&rq{L{O;0d1N%brIQBTa=ju){Sia12- ztG;mvS=!A|5w=pYbXuNiP-PV#>)55*PHYSC$|+Gz8tO0K4B=vjBEd6fSKpRvcw2j= zRUig;8QYL{5sdLa%8&a@66d`r*#pjtW$Qt8+2D}a8-k$h;f3`1-ytHDuisd>n*BEK z{c7uC8S0u+VrjWk9-LV~Tz4Y}92(fvuO~B8$IvbU6}qy!rEo$=oXjvDEmzUhXAZDJ z5rA*=#N04yvlS3dt);n$*`&UmJ0?UqQ=XuaSKOu1W$+R1G`gq+f4S#kN;MMm>q8Vd z>t}ABuc|WNSai+DSb#mJEI@o7_vXj7mf`WOOyFMi!5O<}u1-;gT&bC0Vn+{KI=`<$SH!kGttYbiyE+d45XAK&zi zrWSL_Hq(Q01zN~Wx~5V*rgK$Fg1>!)YB%bzOt3hf(~ICyzj2-`aJyPX0lVl3BDK%s zvZ~79SrsmvsXpB=wT}C|@v~$9yr9Yy5~{NbwQ$?Ul_-wQM$6o;qsxa<-vTLSIdhYv z4{1^Ipd9@9T8E>(alE;s0%@j5BUS2&zGRzxqu_0x(8N0X-LlmQOpr+j9i7?!6R*0m zGSd#po=FWBwL#QoAn=H(oT|9g{ggcQqa>S8E@#`Ygog>i*2K$k;)G9!Qac<{w|z4M zzkx5TJ1v)rs&fpN;%8;hlpNq;4X1>K3C1kv)FC9fx+%~%Uo-GbnF2=ci05;t-Bi2T ztc1`9Kg-(M+S{r;^9PlcS#tJeeEi9DYX-Tfr{+gY{<$s<4vq_c+GraZgBT`s&H&7i z?C2+TZ09!a5(a~tOy+~r1q8?b3!6)*PKe*=3o$S&D+%w<(1})>pXd8=bAgqfu4oOG8qUP|ySY=gvP)aODCQQ+ z_QRPqo+0AeddEtwoa;&fC4VPK^C<}T0>2+$5bu1;RE{F!bK=&Gp+Y^#65l_+TF!Ir zJGN*~b$0_deN~F_B<2CSXqx%f9e@s=e>C^FwTCjfg^>x9B&@9gI8P z*CS8P$8G{N&iuMJ6NSnIff&wieohAZYKNXIYQ-D2b)|9Mb1bfj(Su>w`!c9jJECMPFG z4G$y#qE9Gsvd^BNH-TFT4YHNs{nQHCrVFy&@ofg!Y}2KraW+=B!8p8^s#k=Wu$R$KXAz_G;*1-P2{yGaaYLeE-4&V>~vH}Y`jBt zA6J}>o@uHkWVCUAe)##J)|3aXw}zy3cu)12~=ya*c^VN!lH7)Ys4WCxA0C-Mdhu z%1{xDsqBS#{ ziOCJF54I4WkU-l-W2|RCQ}XOq=N)7!6;M;8#iyg$-AxRza7k)Z4_IH!cjv=jMIbL* zJF*JjdBz*V6Y>UqmJD}`3uY-*w)>cn@^xKG3cY)U&AY?2&sgVO$IVjS1oDj*JjHm5 zhE<9cu0%5q7`hin!bi5^o3j(c{SXa0bx9%$CfC^jDv_Eg`T+ zMUmsko0m}%iFZ#%@M+Hhzc-T4G_Bi#L8#1Fp6f+0SxL1KIA;~+b|Q95DMj2i$Pj9K zT1TC*yQu~MS&Xr!1EzGTNVlYdnvu7(v;LU0NZGo4++#D?uRlKqry@{SOfbNrUK+83)$Rq3qByKJH+-% zBle^c749iY-|5w&J1PLSHBf%O40Uwog+LqL?gLwrt0;r?*;CRJI)7Mq8E_2t%vI`E!oqL|FS#Z7EGvYC=}3MNEFS;&8p zO}`A*KzY>oWaX~3=e6mD`f5oC@)(m#s6vz!Z#mQ}os!;_h9kf~G_+Z6I?C`TD${uz zo;^`KuG6on<&@gJ=9p?J5lH$!{sWw86mK|l*T%^XSZ#gz3(3~u6`#k{M@m773CkFw@*1?&~dKB$)FUNvA1&Nw^e;-3Z-dJjUb$MO-jnd$d5TCpsYaX5~ z(uYc}&ith-Vc;`e`VV1ucNnLME9UV(Zo&HtmgHkmO)c7)*CQL(f1j9poqIEi1C|af zQucV5_5!~{9LjCDZetbN0{3W)vvdW;KDb)QcOjtm@{HSwbhNZ_v%@!`v7qsPwtpcP zjodYFDGZ}N6f#oLkH}|P5l!5{BC*8qp5(+GjCQzu6zlLW$<+7ADS4@k-ZQB4Jr0h* zvFy%RpRAz^jW}n-K=TJ|N@iqateUjqY?TNnlM@fDNw2S8064L8KhI@J?RU*@0s&zZ z^^cEydz%tFYv0I?o`Y=I7L#R?l}$%zOJNE}O%FgbH@na|PrM<8~u^ zQuS2tZoJX^!w8$> z1X28mhv@$uXbOkAyj>-DV?}a8#sA5|AepeFl|uFQ<1%)c zkSJCrZTj?pG)F(cfF!te6Hx>EcKdSmJlwi}fV47QxwqfMy7Wd3>)a>*piuheH@EIr zEHm_%$GB!~gpviFXUI&(VNOZC%+je8qETMzoNk+?&Nx@BE|@b{&Sz6rfKzT_US8I< zJRxnBeZJhalOxmOa8@@95m?_qQ{PNlIm;OC?3H*ztkf|$V*ym)*u}boR|*H73E2G9 zmc)L9i^)G>iUg7HOn~$I(}q%epVN$v;-q zO1&2<9L>135Z2v)RMMUZ`_%jN8QO>-ci#*s2mi9Gb?eLOv(K?$!(N3%LP0Fl78Y*Q z-1fnFV6Y$eN9|1~*x63)n)E4c>(8YHegNgEs`}Gd1(Q4-9UybT7F=poB|bNl&?3B7Q3M$@WFS{Q7#@sFJv9o(THQn-E$J*xC*>Y~GYys$ zr4-ND^Klt8AG?zh3~!&?+($9pUwHu?KZKd659cg;OI_CY)=kdl+2;o8W~&*}+tH{q zVI@D{9Y~zpdvsl0HCcN*(p~n;R1tDz&AO?N@*R;AOl+gTVBDoA6m`)Ug?U8rDoPwJ z1`xZX%hetU6Pcg}uuZ(XteP(+m)Wzv&VV=j*t+Z(*s3{q{aqy^1GQV*5ViNgHME*? z=SA6Ns)b-S-#r>Hnsq4nJ%SCe@C0?meR*)HGI6!$y{)`dbE>>wG}up3*KlN4X!kXI zqAHc?fm(lV3!AMkjUr+0*$Gjo;b;+pI3#&jp2O$Vvy?NSSKcDh6%4{!(NVzdv3j&#~zRhTt+Pw)hK9W9S8(YqwJFEtL;2$c0qdb~VlQ$UbO)CCB4vA1yl&#J#IV;fKTcB7 zSc`k`g89`Nyz&B;({P}ZWBs&HlbpP7G&wOp-+K)SadCh@op`G)FzM_lK^1?_H+>!9 zH*i)F#5D!3@MD7x1x2w8S=`+oM?&p=qRc88KhK*jIR3l~UU+-k)t0qseX#TWHYNTE z?pVDv7XDaXB*4Ua5$4HfJ&RQ8Dx^>MD2dd1N;`WL5SkGRkN{D!Vf*Eni|#@qvK=O) zm6&~>at}P%=G>-UM2*sV=lH}awU*Urhtw6OOrP%b*4e}oc{r&wiKHgKDe>i_Oj11B zkrV4!^k@|&=^kD4YoS@Yb3RyJd5K@wk&_jbGqHg9>5D@c_L-9hjExge`HYD+oEsL- z^m{s+aHt@bgu#+KTrGk`r$*<5h7Ida+cz*_nrGRPj&{7r{t>{d@jbYd!T7=R)$m8< z{GtxucAIhEI`@%Ym*?oX<3wo2G~Wt>MK|SbD;Ec~lCl0R4auoq(B&STCulOd#njd& z<@v(9K%a$U4NrHPm(pD=$fA3&c=@lQymqz<=cu%__xk0j*u){l{hnn~|0NyNHWqy! z$<|dDy0Bn$%rBxO>r`@LUhUSHI~y9p0&lx}(B4LfxY*x=#!Hv_&B_DA!nh_K!BC&9 z+4rzqKi~H++j`VrOtl0mMB8ul1Jfy3IvSGm5^3}TP<>%XPFbFU6+ayBfh$xi1qSMe zU1&ygr#IfcaGR$~Cq%{{WPPG|)eri8!4nAUrkIQIaY(NM0R4j@7wzk~dET*!x>jaQ zHh7hNc4^H;JidQ?;Oj6q-gD*6GA>$ zCoqLVIkcrA1+(XL+BrgXKJLsYQ{mjPAqXa&M+`-ElKSyeqj*iwOEK0s z=hbg{jhvcX;#5|n_s)^V@jp)s`M0-N#BbZ!ayiA77(X{qL3f{Xbmsn8NAkNch#K#AAl8k z!8a$upx4vTuoqh;hyTrc9>>U}l*l+>nGw2keW8A%ewv5tb#*;QAP+;c*b4gpwf7xf zO>N!2DmFksL8OC7Q>qBkNx(vprlQh8KtQC1-V#KlHvwq^2`Iur>AePpKtxIcC^Zm6 z3m8HOp(X@g&b#0DopZ*$?;m*MW@L=)mDTo|bFaDPocp)doOqO${9fMv2RKyMZ13ky za<{t|#a}jaSIu&4uOGD0dn!7ON&ZfxfWojyM0wZNt+%GbBo$3+V#3u_CTQ`_7gAtxdxBM$jcccAsfmkyo#ekJWR41+`tJY5zh=`LEa zK;Y42YD$4Et=c7P!yq`4_w#4}Pr(^=k!_9E)B@c2Ej)gr`nO48B|&7B6`M-v*~+a9 z4yvmcrz>AD~@BFAd#2X~2jmknxl z@Agx>qw_g5WD6G3RHrzEFVbAjXVNtA#a<%RvN#7esp9#YVc|a%z!H(A1!L~mnox`9PGv{pMYl7?DxF+5FmSsdJS=%U3Q!! zwCn!F{hW`-x%^|za*buq**~=b@XX*9WS_5fb(r*cO}urjdxh#$6UP4t&q*flA0&mq z!G-RSYBiNS;G=m7AStJ0yIBt;xH#drp3wp5Qg87Tr}^KbG-8$p0NRnm8(0_e-Vk9Z zd|%yVcmw&>Ami44?d1Z2hVZV|rVBjAmNOU9Qc!Z9KbTzNX;yYnjbL_A8kZBDxB0bVs{NO??_mQkm6WgY2b_j9ru z&kZNA##)hVMQkrl)2cJJefs86{g4ah*uHVNmHO$X8*7MVrJ5-q6vU|6Nu$^Ix zwRgQ0BHK1sLKQ1Lo3fYjkv>*84}3cM9N*0Q_^6RL2{(Uk{FIS#r=jv^;ilB@S9aV< zinO=%Q1T`;VD`Z!Cj4ul;VQ{iXqP_yfk1D!%q@=zSzc2~tLXQlw#Gc8)gZqXeAqrk zMw?kYIc+yqJ6G@-k@@3V@50l26gB$q_v0ru6m^|99`iTw938F7grzm~5Z8?XH*{W@ z`s@u<8Y=|c8h3Q$FEk!w2$S|P}-AtU1L{Om3{E$JqR^M+2 z>&f_(VQ-27v`)8!v0STz@t{;(e&Vmf(jw>r&XVE5Dr^7J&#vd`4o4A7fAtA zmO>7_Af=JrBG@a28aKIC+JlHJot=QlCk)>Mh)ku4+SbCM@@r*-{9$2Th7K%+z}{=! zxh$b`%hoH9&k-UWyb5;|IzNo_hH86kJo?sS^3yFZ0{Qin1oAlZcfRI{?t$tYkuyFK zyxk5yRYH7GK=3dELV|g>+7#`r-7HO`EpNV<+@Bw5)ybRo!5h(W;WD2bf3NjXAZelO zc9aOyu6*zsWq-2)j!7ra2zWT6Y@BVXeUaE{8nq`cc_Le6`@-bHn+3;ShErki;CnhgqG>%x40(&P=MBzwc9u+^`!Uk8TlisM+55-m zdBxqByIEpmSdpo?7#Fid6|bGzF?&;3CMs%(QE&$de$CvPS-rZ zH1B4@aN(_29$`53Ok@1v(q7@<%p;C!gn#t3caJ$8H}BEH)YaSo$bEuQtxpRYzO-xc z`()R9)dND4_2hQn$imC^fxNzhd<%=w{gJkV@wO0a+yyOFPZB5M?7lJ>2oK%5fpNX+iU^)W0w(_=a z;eo!10^c`9Oqhwn4~2a-UXwws&JFEmfLX{N;0)4+cI5I1SZO;1KG5w3RYicVdzt!Z z#CGm9f@(5FpR6HED1^2`{jNEh*}UH~i3XL8(|H>*(k=m)rnJ3?cgdMu6*qyUm0uU zT@ib8cf2RM{Y-byEEB`!*VPKY1i#SiuR-*sOuCD2g^z{yeR*(t6mVp%w)w5{f<*Xj zXJBP#wL*kUpMv;C*>Kgl2l_%bduymcf=Qb8K1HsvMnfK-u%}(J;C2zoOrBl{Khyn= zMku%6U(UG4Z*cwNeSH-`vuc3|YqS`op^noPW5v-7c*4<+eKGh>F;DQ5@=mXfNSxyt zmFpY3xLHx5YFHsQzBQ4lw5z5l@S`H84$}-8~hPPJ<1lDRe z^%HXdLu2b>q0!OBw~O1`HP=#>8tJpRuVoHwk(Lz5-jAiYo}*y*g?*>87oz%sbjXlm^(9&Yq`=%+EU97R&G;XN+I)aU_$0c}3QVLx9dZp{dI zwySlyapNFq*74}D(=k#j$RYfrrq{|OmfoJD6QpnXj}Vr|Tr_)V2^XJ#~KCyJftl#M4%ce?>m>Cqu zr%L27ck9TUXGjTr?n2Qb#vr%`MZI3pR;Ky0xEdsg2z%kPJ6A)7cjBZ5=2-B3;PJL< z;NwX*7y~^}f)BDkblmG7Wx}O;%{uNvJ8_jvwC?D%;5eg+bq+i#BoZC0*dmyS$A{yB z2XA|Ex?MY1}Ux0N6GHc752}nh_Ha(0i2Eh zZVam%Txd9d9~1%J-+WGjz~^UuXG_;>f{cRqa6d%^Lu1!QCbGIz8#Bp)Fn+xMuYv=s zj|ATkG<9hLPx3|k&-#1aMPKkRG&^eE!Bah zdQXRD;WHmnvPN4qomWWv1)_lPKX#$oKf*XDb}I0++qJ1`yv~)*tX&H}UZ@miZ|5Ye z^ZpK^&2_mQ=Vn3VnDCkAUWo22Cg8Lk_wCxdeR7B_*xY&rQBM z!xkLT46Kf|+j)auLnBubTS22>?f`u2b7bfkBNcf;u^O?aZ}&PSM(^;~HE1%=s8XNHBa6yEce zkCZJ;Ansg4f~Ue@nhQ_&B0RB>_Bu^Zc$X%)uiZzOj%m&Z!s5M-eg>~IW1+kEUcgY& zm1(h>>|uI=f)RBk0G#$)6pE%+F_O!WS_Id_rP($PK(at}l``{-82uVb`dhk4?sZ&QSTTl0v>Qv`z;R^EpD+EtKnWntk7+ui3y?aN$ZQ-bWjB)JC zZc?vPt)--oXcwiMRpB)r8ZN&!*Es`r;@horLqWGPzY0jAO^RUIzqi8}kv?=L8{Exh z1#aWVO>m{{B(^Rq^1Z!-SGRFvl(4b*Me|nM$%m7rtW|1)@?D3kzPo*u#bVwRMhp@2 zsX7;b>X8?rz5C;YHjn(T(69cVk+OKD?6G;Z=Wn4KyB-ebnrAz;JqeQ`i)uvyUbDRG zQCd?oaZ%omeyhcq-h{TY+(~#FVDB}>Th-;P-}0>2$h~tKEOONNYx_E( z4cVnNy1Zx6PMU zZDdNcj}_jK3Xf#hfIIK^XSMe4vfJCb9i9NV0KlUU7lc@m z>s+O+M`{PY{c|<)>l`~w$cgM_#V|8Zj>C@4eczFe-O=3}d1cL^Pa4sqd9+b5xNt9vf(Pv#W1IM$ z*FFkiVzzx@*v`fWN4+FxR{U0*5H2pMEkDrzV}tNPz^6E1{LHRX3zeGcODN3mt`lgE zJL+UK)4MN%K&`o(N2<)xVnV!aBV2-W{fEG~bvBzGux8Wi@Ma%20aYL7&)$=Q@(#61 z2Vwp7IL#ynHiuMLPeViHKwj8gpS{^YQcS+aPE4R3t-HEvzoykI6u7aMe7n|L0}})` z)yp3y0acHDD@53{yeDF$8rE>lp?`GK06Y_fdJ2cgQF#8$*3`a~n?qzNQDs|s+(R%e znl&yS3qMbwpoTRM>3OBWcwWBVa0O%JWbs93aQKJ^u06?~4eNgCkWRc?9ak+MAte;Y z!wxDi%_bD<*-;+mM$R&%UF=Y8)nvx+Sbc*)D&hm0c*}Po{-qOHM&3EK!x!|DJ0~T{4@Yao#h9d>fu~c?|n>sr?6s>L* zba)@$y0}oI(v+1?0t0OQX$y`!iHy_L4Z%H7UIL=J@`dRPH%5aQ9|aSD=4x`zNIX(CPy2Oww*_wL*vt zI1ZQq!Z_prc(ZLME_kPb=9)qxh?7k&#%VK|4<1(Vr%i;<2hL)C?#78Yw953lBESv> zyO7+*<^GEv%ai_p(7)BSNWu@Zha7t(=YQ$RMo5!H{*;EvKC5eM=h6Vw=OMq#%etGq zW-wCOAO!&xPXnM#Rw8o%*Gies33`g^Ts+SUq19JjHWTAD@P()vzp*Ia-q?G&o$yOW z+YQq7PI>LcQkc5!DfGw`cT=FZ37fI}T6CqI<~$abR9*c#k3cA!1=J{iFJSxWJC>c( zot;`({CP?3`9Y*ji$7tEoSUbGJdPw4v;aJsI{2Fcv@f=`HC-BS6%+0%bR;yL>E0aj z`RE@q4ubYjR0I=|3~GBIQ$xH11nbRAOMLAE5tQG{l?t(;0^y@U4UioSTPLX9o;hDb zB%vBeotjaXYM$j84_r&FE`JN(eI!5OseWE1Q2SDI{fC;a`L1T-+2%kkk!2q>t+oa6 z_0NxO=FSN$)HMeN_AYz~EkHOg!i8*lhJ+MU($f2b?4NX37AlkyNo$y}LG`JhjdGZu z`vEO4#^P4B)ZpNUtgNcSEUG~PaaCTR$N-`6hHltwTcm|Q)YxY22?v|wSr%iJ+kS1L5ZpU^LoWMdKdT2m9oJfPC$kD(=P|0-w;8X(jPhc_%0q{8aG!nMkd z3V*lNxu6&)Adq=6liMMawVg6+nDGli>x@nL^Sdpc3!1AfKF#(Ahu=*^Vl>>GiI? zRu#;V=@MCQ!m6sW+kaB{Ov*wHC+a9opBukHA2LIJTN%$IISq|ljHw4$;3>865K-ZLl-(y6c7oMxIV9S~Fyewe6u7nK8%x9wMdw7S!S| zQ*r(^2`6IaZZ3v#F|EZTmzs#0-E20yADvyr=@%;mXwW^MHA3-=7C$31PZ{hv1^Av{ z$N>W#N=sjOidHFczLFhM5wIR|85)j4QhpcKg!w1)HECa3pPd8U!rD#iM;wuJZLr$` zwufD5Kg?W~)Be@ycTB%6B@dQIIgR1=B0qIo7g2!y^Cq(d}+~dOm1J zsD8FGrVBPl`*N$i*O~rEi~W;(=Zr|tPwJPJLIJ6Vlh~{#g39&9pr58=VeTtl>qaz} ztpQ;*iCz4Cyaesp4`eX-=|ML5#=x7Iz(j9z3g!>CK<|S4+Nu!b*97R;5}x>NyxdyE zN(g{aDGgi^I12_ddD*M_-U=KGfwE?SH0R6$^7UzlQJ}dhE(}(Rpr)2i2fZQ<1&;k1 z#dgHAh}6`8qk`h8h3*7REC0r~ghEW?cM7>TT|yMMrbRpaXaRRmPNC5-l~Ehfc7q zo-kh}kwkF1lQ8>8tpO5&;D2P4p{!Tif8QnGxNGFf>MFBH#D=a~zzVvhq070^INM*V z_Ea^#@k7ep*vuU5QMG#+B}$4x>SIfgw+pMmitsn$?wg1kZuhiqAAqzJjUaS`CEFhc zJ5q%EpMUBxw2_n4laDz`9Td}*^>ub1`2KRq6#U*t&N=Yz?8fiU)urs~T)H1AbK#^I z?eLw~WzaBbEi!@&hdnwB4xw*PjN#wzuY5@BX2dA&sYd|>pb?w>8=C_PW%NfoVbZGO zOPM~1J0*|tQSIToS5$85ewYgz%>v(#RvwT zx)tN{l1>8g3x2Yj7=Kg@owi#R_@db-{()adqYoCYoLe+Y*re9jI+ZgV0)XDS+ ze=vw8>?JpGw8eBjKjMIlyuEYkyy^x&RWO7;9gU4ma(KRwAj&SN_J%5HT4EO8 z5}o@hBnonoYQ94Fwd*1@h7d)VAT$vQ2%e6}7PZ8^Xt18_jf}5vI-ntOfuex0Bl<2e zH(R`%jcU1~B+BD=V?Oi7)&d$brf_R8@I9HMRb*aeJ`ID^Ex3Ov`n(dFr^k(JW`oKI z+xv0*X{Yt$&p$7gp@BUf*VLOIH36;k=I{u!4(RSCwRWX?bamiQ1_Ep`o|qQJ$GlSY z4@++CZS-)Ao#M*6YhhvW8&m4XFDI=n|7pFQ1g~)!$ZjxZIhtz=^!SwAVj%n8FKnea zuDjGE|CYYK{$!Jv&16TY|75Gbn{|%U-FqC4u5j~0G zt`1~P4dOl{DEZ9Tp~SvJtQXEHW2qJ+$U}~l7d8v1c`0sKrZMfLq33Sq)4G)XL!RR& zV7Z9~4PQ4TpCzt7Uq~Oh4CxnY+ybBXIq#pcCHeA3fGqHEZ{eD~V<>{B6&r(X?i1VU zsX^^&#_YwwwmzN@K7XcZT`A+&S~F5OT((y{qVGOfe&6+s#`^?5D*%XJh~Y01y=*x8 z>{halvF}2PYOKBpIN*M`R{BbN5%ASlpT)$Lu2%ZajQN4zm4U%lK_~Vs1+tlH@vx4#z4*w?UFp6E#BGF%dKtoFPqkWV z*m0kWPwe*(rxV~;@>?xWt?OM)+TN&HeXyRaP979ZF#G5?VHX_p^Rq>qfOm_iomR>v z?kha^Y~OBXrVl-;dz5jI%KAi43qOK>WU!W&&zS1picVapaQHmtTw(tnYMk4{o^1evOp~h z`BW_%nI(aI5H_EI0rnCM!zdaWIiaY=3H$u{H{+=UClM~@;PIr8ILp{WK__u1sj{RT zarf)fHq-v|d{z6aKs7!uNm&07)1uY4*7G87q^ujBKlshcFXwd3yW!c(W1!=$f>bqw zH+b6%hUwv<<%AbWQWZj0hUkkoy4kFV=?0M@1vvp%0uX(x#n8Cj+y_Y{qVM$JXCS5;2`>O-` zJtH>SW!cN=^?7c=EDz9Y^(;khp@fiZ^YPk2x6P@wa6o2k0*iHqI0HRzYkCYB>Pct}gvI-U~}>{bd~tQu$)l;^_0%rjh^=I5Cjy_JLz zwlyHpzGEF7g|=T5&!@GN=3bRLynNc}r2qPPx0y{HpvLZM{4y4C+qR|g{X*Wv$b+F6 zTgEX!u;Jj-PwQp@ukqBJ(<{WUrap+{=e@O^ClT6y%C~+pBZ{ zmxW&2`M8LW!-u&3;TGy=@fbdqe?0J_#><2=dSki+8j888ruI&`<1TM_rJ{y5{UZ<> zXr5cZvymuTLZGB@>v|jEVH{}vsq4|GPp<}7@P_@42wjQjN_I|+*da_edYI!?YTqy& ziW~B`nV=G$Iq_4E8(h!PZc9sXv#_@`xBn#YDoi~6) z+Vc%7**Gs}t6p37BUhUQT}#ON!c!e_GJkbhm!$J`@h-7T{i>05=jM5K1O~3o{c$g& z5YBzt%#XB3>PYEg!;TL@KHPrCzC2FE*H2by z4M`Keo&B_6c-|l*Kx2S8AfsQbusEhEZ}A41rQhpx7lX@5(0NZK+m~;2q{g4V_JvMo z?!|<-ilfG!sUx&)&o1frp>+o}(w5l+#?#nW1brG!nas+R2>SZI>$1bl-WruQXVykQ zgV>fL23^SK1{@>LOVzF;v=9K7=)L%?mggTDObOrJ>N%$7M&@cI4M$fmOQBc0o)!rN z^QJG#&85E`nfU6lTC}v?fU9KQ5=5b4y0W*!P2cBZxoJ)z9JNeBgAG&XfM7)Teln8HJ&+SprsDQn!dwy zJ$q@Bt`I+@7Oa1B;JVR$=;78gQ=p9DX!%PI@cN!4>g!DieBhlp$h*siCbi;rdASJq zaxyko0+l$S!No!6I)ENtnm;|y?{}l4xq>7imAmgrb&GdcX?85SLJ~;nI5(d$Zu4z4<98yO>l znyNTLZ#pSE-4iJ++f>7xq_%kEFg7}6ESs8}KI81%S1;+s-@GsSP<_$O4g|`9DfIS= zkruXlQg%LOTn+NZU(o!}$yAsa|Gj{>c*(|M zw_?79Pnv2BlwY?I5ZVzjZ_T)>@WiiG*XgLnfuhvGfPLSA?#eUR^ZKL)Q9gP?@5XIb zB7kXR$+##;2b8sOKE^V&c@l|;3YgC!Iy=2RsHhqrcH1$7 z-b-OMDZ7;=URb_)ENuD?^^U=%v7qds^;-g_;ZPAJq}lX*feu~@%-m3m&_P^1$Zv^p z8FPCx6HXOhIlJr=AsG{t4@n8C?^)cFP>5!q;W8}3@5Q9f*Bxg<@KkUOpdzIp{b?EQ z#LuFKxZR8MZ|V-OP($OlrzOz-=MdP{NjHInv3QHUT?6lpH;i@cmgg58E$Zn_S%2~1 zRgcR%&xZ);Y%Z9uYA{^=O$O~zd~_mMdeLn~M)b-2&4Wd{Y?&Rra&m`~nd{b@$X%Wy z!j`RjPFMEHrO5O3Z+Nbl^D|hym%+2 zY)cehzI`h&M3 zbTq9a8jNcTC7FkNSqmq{2UoAUTvR5XR5XT;zun1U6_S6=+i9F{QgQoS4<7VYAHQv& zX-NsFh!{=~N6+-i9l$1EPe$=3tDQu+9;7CH8aMUW;ou2JIJyMCj#~01PsvA_mMINL zNqPv82g50F2?+U>X+}Wl`;^5t81Ji)XgK$@8TDae?a9Jo1pk2?_AwN8+!T3@s9o5G z03xnnKySIaI-t5B#PL?27|3ZrQXXluUd6rL@O7GUY=3Zmp}~nx-kysiWw*|CZ>|P^ zFYHGsc!~+FR0<6u81s9#M$QH7i?F&q8)b@Dqb2die`P_qc0fsS0Ks`3(!Ct<)vHb{ z)5fk*{h{ntl>Wl=X^VjPWDE!KdMn4YE!FIKrn_^(wQnNndqYGmx>5si5P~#0htOF} zwa%GgCm&brWe_6nx4&qUQ>&)}SOMX=pX#^6JTozk*A=-3DH*&^J|B;dziSDowSbtk zPh=`MMb=hNPCVq}THz|PJ5k80tns$>myEsT{izW}lZ?E`=nEaTh;$u1ds#$rAAG($ z-o;$^B8*EhgB4wCP}FRrB1D$WM|~3-_LQQ%@^U`;fKd3z(?@v8cnPYxvk%OAF4I(~ z_xf4rT->7uWy$^ScdVK_JZ$OA0frf=oiB0SNvz2SgEI18_6#F3%2)=1v$&ekQ-h~W zLBIGF*@VghWXEv#+KoKF_MY_$QJgYK{(_CSvm7?y!Z~N@_{6bRXbFWw?4Q7kmVy!7 zl|0Z^C7A9B1fNUGRfc?X%b&!`=HCe=#6Jfp07X(-`rZ5tGln0v4!P(E(4`y78(zm(>=8FL(XO%mCLQ+L&|jE)tO zQdTxTF610%s)$@S6U)X0BaB^`x3t>XX=R?V`8dv%Ep2k^;Ms3YOYOU>15QV^N2`Lt z8jl!?G}A%+afU@0B&u>u@f`6cU9plV=cPrwrg&EUjbJ1?6|Y&JV6(YJLZ~(%_g!N! zhiS?aDo>cVZiMcLjHd|5Q#8gLZbjT(`=Zh)iJtOq%G_nUDJDWbO%|mai{+&j!mrQk z?8pIyw#s(!Rm@u;)gMY|C23_-TNa_8wj1fZ!yg>}c+|3x^!j1KG^%qm;QO*27Z66gYc#26Ld(=YI@<#!$r*B-6?;ffu(U|NwQ zk|1U{nkT!Pj`sH34fPIp2U5fytO#6f>R*g`?y+hi`sCX3V7yIyT&}3pZu#O#4KOQ0 z2kFtlx#G!1mqwhzxDQ|M5Hw3sjv5YXO!{gGpexEo17xVdvELPzNv|LU^J~!$LkGQ1 zfH93mMR>PczTG!A!&$b}&trc!ao@X3iaGkH_@0KbQYFw95z z^N}lmN?30BwiTVBF$kwK`jUCP?#kBUO@u(ep&zdAvYHe3vI6S-obNHo_pNx zvRghE7Jb3wjI39X$BDv8S7k4(&`)6d_AQY zO*-Hp#bsl9{zg1_(rt@b2(=I!?fOfPQ=3HE~z-(HQjc5jjzfA1-iZ1-|ef`5v~M zH2z+zhmEH_0G-1p9mRfH5dC%No7;TJIQ#SQB>K1TwBYZSh8d~XhVwaz?j*s zqvN&5LC1-biYL0nT#HOT9*Ih!DN5*2xx&T<(z!<;fUiw$s7}vG39OR-Ckg?Vo#dO6 zct6NWI??vEoZ{!5gTJV3gzwmp*Xi#W;!qa0m)_OPeyl_!t|ealIIZGllmcU}z0Qrf zbDe$~^C-9a=-Q$-?|l^E@tdp1j`8jp-qC%O{PI9{PB4!#_{MVuGCSOh$VJnglNzNeF}ytG zE~s};9q#juCK!LTQn~kz_!M!TTe{j!{9lHy(bjJ2^*kbuYs2tCWfI+3Yq`>(r z@AO_U@B;eK+3y~mnMMpdm0=CZ|A@W!Y^;wn3Eju#k6s_GwU)I-U&urUnHw16Plgd* z-sBvyt??Dj60uM!s5LF(imnktoI_9j5&wlC;v_hgn zK3>JD>0-~3(^0xP;)SbpdBk;NK2zXXbz!GGCsETP6PG7>5x1Q{EW6`V8UW`Ugue&t<3yzAl! z<6*Cddh%2Y{5JJsSiVw1i?**v9PI^79vuKe<%GT{^Lm?3f4(nM%Bq z`92T%NGU`u&S$eI1+Uiw`3k;-`Hu9NxgINunr9D?ztZ}2`4uYhAww~A__oB*iUo=2 zz8g2x(o(&_!>*|^oBpkv4VD2a{<=NkNkp*lhMwRJ%tf2tKwkN%VSJr%<%jG6r^`+^ zoTTKJThN1K7NCDWEq-`k>!||Ap))OEDpug^b=wn#s9{=`%SC7TrkqrtoiR%Q0})qZ zZen#pXzLW39bc~LK0~qlxz)~4&26lWi^fPgusfhP03twKOg(F8t3NSAZnOE0nP9h9%?x%)S z2M04$p#Wn?(|jXYo#b2IaXUHiV=PCKFkRR&VmN%K4EXYp#rxu7U@zYZinFhKoImUy zaJxbw(dGTEGR#t9QNyP$z)&w=7MEh)JBg(a#qjmJkEeOLgNJ?ruNUm~{0&QR1-#>Tmow^G>)PE~<-7_W&>6uN*W z1PMKb&t!90?>0px-JL@oQr6}E)HNK&@W(^cMU4eaH3vNX1K=6T!)dmn!q<$7#&(p> z!%SaLy`S%{CKa2-A#Q*LFnN!Ri|~+4hK!)_HSEi3?jAKHImDk?vAF^%uFoYtqa`s^ zer{PM)FG0v`m_`l%bOA?YVWMMTH#Z8uW=Hk^yq{T!W{8tYhmLZ=8RrM4(u`T9ec!| zvVZYqBGIW`kd-J!7e}Z!R2O-D6k1;Q^t;+n-g*=>`PwpeQUY6}W2|(Ed24APCx@Xa zSH}~c$ zI4{*WzH&1>alj4BwM(|QH-o3Zc{V-OgCDOQ@p)hVFl;P|Mj8lL8sB9cek-jheO6ww zrNvR%*dyazX3nB|7Bi1|M=UD`3(2AGnc*j8wNUlia#_nD^1OuE{xD%RWXL=y`6Rar z40U4wI@3>mfZJ@1(3{%5b@xu3I*&tz0*{+IGqgD-HAuQ#%SB_LxNgbE_S-TZQp2_% z%G>+EaKAeZoTs1VkLxGw3-L7d*dhEb7)IalUmg@oc_VJ?O*Tf1{Qa{M(5Xkc+^xi}HQiBZq@pOcqY&7`I8Plfr_C%NK=r<2AF3}hL zkm|JPmUxtFUW6%}))DyoG2;PN-eN^x!snk)1RvW{c%xMo-5R2*40K1WRu>fx)ni72 zGs|8`RTUAXnu@?~zxcgWK<5~SZ5!r7FTw9jX*K5d2LJuqq8 z4OVBm^>cA5G&Y~xAfsfAkA55>hY%cmJ|Q3Xm1LN~<%2$>a@| z-(BPK(@Yj{}VH-F;u_7(PI_V-Su53hym-L1N4 zr7!<%>ItMy`{H3CE5QWs>n+~0vgnkU8Z?)K9iXCX8iK;=>1($&`au&Vy$1^gG&n~pA=V?X_tCQjyt}zhF*xxjW4+|AOR@` zm(32>UJyb@%#r7M@9HanSPK_if{j7Nd1vIZdox3qg%5|rYSw#OB#s7WGWGo^fTk4I zuY!~f`+0#T|3BJ$63pWrTh4n;JTR$19$tnnI9*3-?1%HMUS?uQ0Sm;r08h>{XorWM z0`4=bHbv<1W!{$|uMb%uW;O*2sajc5U1e!6;k?rj>N!6f<46N|X8!Kz@|e$!cdOqL zr2Gy>r<=PsY4Hx0W^frdR60Y?crLZ7Uqlr0K0T|IrK!p}s>hY|1|z|2f;|@b zK}hOSQDjUP&&*~-4-;LX7rByhv6g$Ef0|O4uk1e4&z&CNt;*y8wTI@u-X0|1v#N@p zSlUL>CD){!m{~}o%QAEKbuf1#FM`YRa#u&;DAdPnTo-VO`o}wtT+7aWZP*N z4?`A(#Hr|A^#}D_bvD&9-3;Q9EZDNuA-8Es$0n(>kOok1zYToc^yqxL;3J-U4LNq9 zuuN=0$wvP{y|J{b-pL1F8;l;-Gh7^FTEtU4&wC#hWPjM3z0_QI`qf0OFcBWP!(8nM zT%v1?jtqKo%zOz`J7Jws@_{H;d&;GR=)7)RDm3in2clLwMd)~To7tNQK%K?r(?-N& z68z(ZEWHV|eK35WkhQ-!`$5DHV=GKX*@krZaCqw7%`Nwyz!E&~vp+&=cyHI)?wCWr z&$6m9+%A2W8g?t`T)iQslk)i77%T-kes~rFqdCPhKQHs|(mhPZq~go9^~dD#aE|$$ z@fJ~_X&jtKqhm(YbfJ+rpJV&osRX0{IN2d~CKZE1c*GIhUZha;I7JK@3U3j8Sn<0r z_;PFY6{#*m*GwI}{F>lr^zg%YX6u=0K_B#bT9c6E_zNPopZ5*YQ%(GR9KX25Aa^6d zzrXegq5gYPXk8t~Y}k!0E9pDz>)|ut26cYH`@6kO#6eAfr?KY=JBdw-8sFnPQVqcX z!;F&t#L0Bc!Q6Lm)4vg2httIk-x-rxRk?hnc!I+l!-ZQJ$}#1Qj$5p@aOUWGDkAM<2c{&zg$y}8TP;=zRc`SM|Z#q;Qd`U{y%NGr=I{5K^GAO7zn`X5^Se>ex9`AMQ_CVz**uSMDC-C^Fk-TAZS;XlL&my85DT*~}JXBq!*@IP~s zY`1Z9)8hAvM5e_!y*waTehqhv;WL|c%swop#)l{xcMO~ z6GZi|dL_&^u3ta@qA{#(HJni(JnVBZ_T1m(rTeQbj&mhbqdyX9_^p^NlMXw z6U6U$w+|1|=H)3GC~a@%fc0C|KWT-1f0M?_q9KR-xCelv2*!J`xA#6O3@I|!oPW#Q z(GdRUrdY_zhPX-5?$-Ei2ZzY(aer%`-;8N!b%q0~lN!#b9vAj0#U1kxGWR{`tOg4H zE-$?Qe@mRFw^(`v<{`#zxAQ##Rw)z>&8KU=Pox$DMy*E zmjAfj_0J;ZU6GfUpd6_nKzKLT%BuX9wF58j2HNfdZeJ|3<9x4U_$$wb%M?NDH_H^qaU zRw9WOFx+}EjfT|!o&1-Wn3#qZLjy6C2`TL;XvT`R_y|FAV}(kIp>Oc0;Hw+(u==$wwi3t*c_{!HT~Lz5m13^rL{y{!@P}V`?q0f5Xmj1 z7o7@%>y@Pf)npBc^uSwWmO`5 zjwg6Shf)>5_4_aCC|kYhCYl*i4)1@yxvmD(V&=k^1)b>JNDk1GV2m{GUZa8uX>MYo zMX3<~G2iTOx1Vr3G27NFGBWb}?2UT0R$C|tvf_I)BA_PY`?Dck*eLVX`06Z2*|RXY zttW)yhXmHfy_g^SPSi7_g4E@)zxeF#shqKtg3sF}8&eLW^twA3lYZu{vRQDxg;`z) z#XVC;0c;;;CRRQ-W^QDD{Lw?F&Ig}rf5`p`d1m0n|J#or=Hv8Wdq(t9=(4u^iyiCl zW2WP)Q>c}bRK@-+*IR|@Y`uQp{>Pes{)x0p9qNQm8&Z_yqrCs8=KrfEbHM+jcSg2x zko_VNF^ cE^0rcH(Ay7qxIX#KmRbiYkH^Z*3(!22N`A#sQ>@~ literal 0 HcmV?d00001 diff --git a/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-2.png b/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-2.png new file mode 100644 index 0000000000000000000000000000000000000000..05178a89388bc57c32a8afe9cc196af0c7ef141c GIT binary patch literal 236697 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
*bATQy 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≤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 B+wlMZ literal 0 HcmV?d00001 From 95c71016ae32ba24d2675cdaa428630d9e9c55eb Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 15 Nov 2023 21:13:53 +0100 Subject: [PATCH 25/63] stages/email: use uuid for email confirmation token instead of username (#7581) Signed-off-by: Jens Langhammer --- authentik/stages/email/stage.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/authentik/stages/email/stage.py b/authentik/stages/email/stage.py index 1d8250274..0b92173d5 100644 --- a/authentik/stages/email/stage.py +++ b/authentik/stages/email/stage.py @@ -1,5 +1,6 @@ """authentik multi-stage authentication engine""" from datetime import timedelta +from uuid import uuid4 from django.contrib import messages from django.http import HttpRequest, HttpResponse @@ -71,7 +72,7 @@ class EmailStageView(ChallengeStageView): valid_delta = timedelta( minutes=current_stage.token_expiry + 1 ) # + 1 because django timesince always rounds down - identifier = slugify(f"ak-email-stage-{current_stage.name}-{pending_user}") + identifier = slugify(f"ak-email-stage-{current_stage.name}-{str(uuid4())}") # Don't check for validity here, we only care if the token exists tokens = FlowToken.objects.filter(identifier=identifier) if not tokens.exists(): From 3d6692331079ed57400e819ec304718ea68f3296 Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 15 Nov 2023 21:56:16 +0100 Subject: [PATCH 26/63] events: sanitize functions (#7587) Signed-off-by: Jens Langhammer --- authentik/events/utils.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/authentik/events/utils.py b/authentik/events/utils.py index 59919e54d..d910e4a2d 100644 --- a/authentik/events/utils.py +++ b/authentik/events/utils.py @@ -153,6 +153,12 @@ def sanitize_item(value: Any) -> Any: return value.isoformat() if isinstance(value, timedelta): return str(value.total_seconds()) + if callable(value): + return { + "type": "callable", + "name": value.__name__, + "module": value.__module__, + } return value From bac7e034f89ad9a68da75b64b4a42578457dd873 Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Wed, 15 Nov 2023 15:02:06 -0600 Subject: [PATCH 27/63] website/blog: title and slug change (#7585) * title and slug change * also rename folder Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Co-authored-by: Tana Berry Co-authored-by: Jens Langhammer --- .../item.md | 4 ++-- .../zero-trust-1.png | Bin .../zero-trust-2.png | Bin 3 files changed, 2 insertions(+), 2 deletions(-) rename website/blog/{2023-11-15-how-wireguard-makes-zero-trust-acheivable => 2023-11-15-everyone-agrees-zero-trust-is-good-but}/item.md (99%) rename website/blog/{2023-11-15-how-wireguard-makes-zero-trust-acheivable => 2023-11-15-everyone-agrees-zero-trust-is-good-but}/zero-trust-1.png (100%) rename website/blog/{2023-11-15-how-wireguard-makes-zero-trust-acheivable => 2023-11-15-everyone-agrees-zero-trust-is-good-but}/zero-trust-2.png (100%) diff --git a/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/item.md b/website/blog/2023-11-15-everyone-agrees-zero-trust-is-good-but/item.md similarity index 99% rename from website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/item.md rename to website/blog/2023-11-15-everyone-agrees-zero-trust-is-good-but/item.md index 3838ad9a6..95d3229bb 100644 --- a/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/item.md +++ b/website/blog/2023-11-15-everyone-agrees-zero-trust-is-good-but/item.md @@ -1,7 +1,7 @@ --- -title: How Wireguard finally makes a zero trust future achievable +title: Everyone agrees zero trust is good but no one correctly implements it description: “Thanks to a few advancements (mainly Wireguard), zero trust will soon go from buzzword to reality.” -slug: 2023-11-15-how-wireguard-makes-zero-trust-acheivable +slug: 2023-11-15-everyone-agrees-zero-trust-is-good-but authors: - name: Jens Langhammer title: CTO at Authentik Security Inc diff --git a/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-1.png b/website/blog/2023-11-15-everyone-agrees-zero-trust-is-good-but/zero-trust-1.png similarity index 100% rename from website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-1.png rename to website/blog/2023-11-15-everyone-agrees-zero-trust-is-good-but/zero-trust-1.png diff --git a/website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-2.png b/website/blog/2023-11-15-everyone-agrees-zero-trust-is-good-but/zero-trust-2.png similarity index 100% rename from website/blog/2023-11-15-how-wireguard-makes-zero-trust-acheivable/zero-trust-2.png rename to website/blog/2023-11-15-everyone-agrees-zero-trust-is-good-but/zero-trust-2.png From 99cecdb3cac6ca9ef7a9bc79bf9c34d2fa336ab6 Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 15 Nov 2023 23:14:30 +0100 Subject: [PATCH 28/63] web/admin: contextually add user to group when creating user from group page (#7586) * move related user list to group folder Signed-off-by: Jens Langhammer * contextually add user to group when created from group view page Signed-off-by: Jens Langhammer * add banner Signed-off-by: Jens Langhammer * format Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- web/src/admin/groups/GroupViewPage.ts | 2 +- .../{users => groups}/RelatedUserList.ts | 25 +++++++++++++++-- web/src/admin/users/ServiceAccountForm.ts | 25 +++++++++++++++-- web/src/admin/users/UserForm.ts | 28 +++++++++++++++---- web/src/admin/users/UserListPage.ts | 2 +- web/xliff/de.xlf | 3 ++ web/xliff/en.xlf | 3 ++ web/xliff/es.xlf | 3 ++ web/xliff/fr.xlf | 3 ++ web/xliff/pl.xlf | 3 ++ web/xliff/pseudo-LOCALE.xlf | 3 ++ web/xliff/tr.xlf | 3 ++ web/xliff/zh-Hans.xlf | 3 ++ web/xliff/zh-Hant.xlf | 3 ++ web/xliff/zh_TW.xlf | 3 ++ 15 files changed, 98 insertions(+), 14 deletions(-) rename web/src/admin/{users => groups}/RelatedUserList.ts (94%) diff --git a/web/src/admin/groups/GroupViewPage.ts b/web/src/admin/groups/GroupViewPage.ts index e3a35663c..3e6cbddcb 100644 --- a/web/src/admin/groups/GroupViewPage.ts +++ b/web/src/admin/groups/GroupViewPage.ts @@ -1,5 +1,5 @@ import "@goauthentik/admin/groups/GroupForm"; -import "@goauthentik/admin/users/RelatedUserList"; +import "@goauthentik/app/admin/groups/RelatedUserList"; import "@goauthentik/app/elements/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; diff --git a/web/src/admin/users/RelatedUserList.ts b/web/src/admin/groups/RelatedUserList.ts similarity index 94% rename from web/src/admin/users/RelatedUserList.ts rename to web/src/admin/groups/RelatedUserList.ts index 276b172f8..0023c5515 100644 --- a/web/src/admin/users/RelatedUserList.ts +++ b/web/src/admin/groups/RelatedUserList.ts @@ -24,7 +24,7 @@ import { UserOption } from "@goauthentik/elements/user/utils"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; import { msg, str } from "@lit/localize"; -import { CSSResult, TemplateResult, html } from "lit"; +import { CSSResult, TemplateResult, html, nothing } from "lit"; import { customElement, property, state } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; @@ -402,7 +402,16 @@ export class RelatedUserList extends Table { ${msg("Create")} ${msg("Create User")} - + ${this.targetGroup + ? html` +
+ ${msg( + str`This user will be added to the group "${this.targetGroup.name}".`, + )} +
+ ` + : nothing} +
${msg("Create user")} @@ -415,7 +424,17 @@ export class RelatedUserList extends Table { > ${msg("Create")} ${msg("Create Service account")} - + ${this.targetGroup + ? html` +
+ ${msg( + str`This user will be added to the group "${this.targetGroup.name}".`, + )} +
+ ` + : nothing} + + ${msg("Create Service account")} diff --git a/web/src/admin/users/ServiceAccountForm.ts b/web/src/admin/users/ServiceAccountForm.ts index 96dbb89be..914e5fd51 100644 --- a/web/src/admin/users/ServiceAccountForm.ts +++ b/web/src/admin/users/ServiceAccountForm.ts @@ -4,19 +4,30 @@ import { Form } from "@goauthentik/elements/forms/Form"; import "@goauthentik/elements/forms/HorizontalFormElement"; import { ModalForm } from "@goauthentik/elements/forms/ModalForm"; -import { msg } from "@lit/localize"; +import { msg, str } from "@lit/localize"; import { TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; -import { CoreApi, UserServiceAccountRequest, UserServiceAccountResponse } from "@goauthentik/api"; +import { + CoreApi, + Group, + UserServiceAccountRequest, + UserServiceAccountResponse, +} from "@goauthentik/api"; -@customElement("ak-user-service-account") +@customElement("ak-user-service-account-form") export class ServiceAccountForm extends Form { @property({ attribute: false }) result?: UserServiceAccountResponse; + @property({ attribute: false }) + group?: Group; + getSuccessMessage(): string { + if (this.group) { + return msg(str`Successfully created user and added to group ${this.group.name}`); + } return msg("Successfully created user."); } @@ -26,6 +37,14 @@ export class ServiceAccountForm extends Form { }); this.result = result; (this.parentElement as ModalForm).showSubmitButton = false; + if (this.group) { + await new CoreApi(DEFAULT_CONFIG).coreGroupsAddUserCreate({ + groupUuid: this.group.pk, + userAccountRequest: { + pk: this.result.userPk, + }, + }); + } return result; } diff --git a/web/src/admin/users/UserForm.ts b/web/src/admin/users/UserForm.ts index 13d2ac141..061fd6f56 100644 --- a/web/src/admin/users/UserForm.ts +++ b/web/src/admin/users/UserForm.ts @@ -8,15 +8,18 @@ import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; import "@goauthentik/elements/forms/Radio"; import YAML from "yaml"; -import { msg } from "@lit/localize"; +import { msg, str } from "@lit/localize"; import { CSSResult, TemplateResult, css, html } from "lit"; -import { customElement } from "lit/decorators.js"; +import { customElement, property } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; -import { CoreApi, User, UserTypeEnum } from "@goauthentik/api"; +import { CoreApi, Group, User, UserTypeEnum } from "@goauthentik/api"; @customElement("ak-user-form") export class UserForm extends ModelForm { + @property({ attribute: false }) + group?: Group; + static get defaultUserAttributes(): { [key: string]: unknown } { return {}; } @@ -42,6 +45,9 @@ export class UserForm extends ModelForm { if (this.instance) { return msg("Successfully updated user."); } else { + if (this.group) { + return msg(str`Successfully created user and added to group ${this.group.name}`); + } return msg("Successfully created user."); } } @@ -50,21 +56,31 @@ export class UserForm extends ModelForm { if (data.attributes === null) { data.attributes = UserForm.defaultUserAttributes; } + let user; if (this.instance?.pk) { - return new CoreApi(DEFAULT_CONFIG).coreUsersPartialUpdate({ + user = await new CoreApi(DEFAULT_CONFIG).coreUsersPartialUpdate({ id: this.instance.pk, patchedUserRequest: data, }); } else { data.groups = []; - return new CoreApi(DEFAULT_CONFIG).coreUsersCreate({ + user = await new CoreApi(DEFAULT_CONFIG).coreUsersCreate({ userRequest: data, }); } + if (this.group) { + await new CoreApi(DEFAULT_CONFIG).coreGroupsAddUserCreate({ + groupUuid: this.group.pk, + userAccountRequest: { + pk: user.pk, + }, + }); + } + return user; } renderForm(): TemplateResult { - return html` { ${msg("Create")} ${msg("Create Service account")} - + diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index aa0b11fcd..81b1fa4de 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -6063,6 +6063,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index 5dc9ddbc7..25b7648bc 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -6340,6 +6340,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index 69575c1bb..2b1b72ed4 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -5979,6 +5979,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index fe09b02df..5e6ab9a15 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -7965,6 +7965,9 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index f83eefb02..aa0459d08 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -6187,6 +6187,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index 9824b2123..b7f8bfef4 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -7865,4 +7865,7 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + Successfully created user and added to group + diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index f53087166..1398f0387 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -5972,6 +5972,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index f729ad3ce..c90510329 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -7967,6 +7967,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 6ae3a27a2..21433dc1b 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -6020,6 +6020,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index 4f86131ad..3b96980ee 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -6019,6 +6019,9 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + + + Successfully created user and added to group From 6a8eae6780c70acf4812cefac3bd7dd2cb653066 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 11:35:49 +0100 Subject: [PATCH 29/63] core: bump pydantic from 2.5.0 to 2.5.1 (#7592) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.5.0...v2.5.1) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 216 ++++++++++++++++++++++++++-------------------------- 1 file changed, 110 insertions(+), 106 deletions(-) diff --git a/poetry.lock b/poetry.lock index c7139d1a3..034ec6daa 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2642,19 +2642,19 @@ files = [ [[package]] name = "pydantic" -version = "2.5.0" +version = "2.5.1" description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-2.5.0-py3-none-any.whl", hash = "sha256:7ce6e766c456ad026fe5712f7bcf036efc34bd5d107b3e669ef7ea01b3a9050c"}, - {file = "pydantic-2.5.0.tar.gz", hash = "sha256:69bd6fb62d2d04b7055f59a396993486a2ee586c43a0b89231ce0000de07627c"}, + {file = "pydantic-2.5.1-py3-none-any.whl", hash = "sha256:dc5244a8939e0d9a68f1f1b5f550b2e1c879912033b1becbedb315accc75441b"}, + {file = "pydantic-2.5.1.tar.gz", hash = "sha256:0b8be5413c06aadfbe56f6dc1d45c9ed25fd43264414c571135c97dd77c2bedb"}, ] [package.dependencies] annotated-types = ">=0.4.0" email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""} -pydantic-core = "2.14.1" +pydantic-core = "2.14.3" typing-extensions = ">=4.6.1" [package.extras] @@ -2662,112 +2662,116 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.14.1" +version = "2.14.3" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic_core-2.14.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:812beca1dcb2b722cccc7e9c620bd972cbc323321194ec2725eab3222e6ac573"}, - {file = "pydantic_core-2.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2ccdc53cb88e51c7d47d74c59630d7be844428f6b8d463055ffad6f0392d8da"}, - {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd937733bf2fe7d6a8bf208c12741f1f730b7bf5636033877767a75093c29b8a"}, - {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:581bb606a31749a00796f5257947a0968182d7fe91e1dada41f06aeb6bfbc91a"}, - {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aadf74a40a7ae49c3c1aa7d32334fe94f4f968e21dd948e301bb4ed431fb2412"}, - {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b89821a2c77cc1b8f2c1fc3aacd6a3ecc5df8f7e518dc3f18aef8c4dcf66003d"}, - {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49ee28d65f506b2858a60745cc974ed005298ebab12693646b97641dd7c99c35"}, - {file = "pydantic_core-2.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:97246f896b4df7fd84caa8a75a67abb95f94bc0b547665bf0889e3262b060399"}, - {file = "pydantic_core-2.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1185548665bc61bbab0dc78f10c8eafa0db0aa1e920fe9a451b77782b10a65cc"}, - {file = "pydantic_core-2.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2a7d08b39fac97540fba785fce3b21ee01a81f081a07a4d031efd791da6666f9"}, - {file = "pydantic_core-2.14.1-cp310-none-win32.whl", hash = "sha256:0a8c8daf4e3aa3aeb98e3638fc3d58a359738f3d12590b2474c6bb64031a0764"}, - {file = "pydantic_core-2.14.1-cp310-none-win_amd64.whl", hash = "sha256:4f0788699a92d604f348e9c1ac5e97e304e97127ba8325c7d0af88dcc7d35bd3"}, - {file = "pydantic_core-2.14.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:2be018a84995b6be1bbd40d6064395dbf71592a981169cf154c0885637f5f54a"}, - {file = "pydantic_core-2.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc3227408808ba7df8e95eb1d8389f4ba2203bed8240b308de1d7ae66d828f24"}, - {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42d5d0e9bbb50481a049bd0203224b339d4db04006b78564df2b782e2fd16ebc"}, - {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc6a4ea9f88a810cb65ccae14404da846e2a02dd5c0ad21dee712ff69d142638"}, - {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d312ad20e3c6d179cb97c42232b53111bcd8dcdd5c1136083db9d6bdd489bc73"}, - {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:679cc4e184f213c8227862e57340d12fd4d4d19dc0e3ddb0f653f86f01e90f94"}, - {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101df420e954966868b8bc992aefed5fa71dd1f2755104da62ee247abab28e2f"}, - {file = "pydantic_core-2.14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c964c0cc443d6c08a2347c0e5c1fc2d85a272dc66c1a6f3cde4fc4843882ada4"}, - {file = "pydantic_core-2.14.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8276bbab68a9dbe721da92d19cbc061f76655248fe24fb63969d0c3e0e5755e7"}, - {file = "pydantic_core-2.14.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:12163197fec7c95751a3c71b36dcc1909eed9959f011ffc79cc8170a6a74c826"}, - {file = "pydantic_core-2.14.1-cp311-none-win32.whl", hash = "sha256:b8ff0302518dcd001bd722bbe342919c29e5066c7eda86828fe08cdc112668b8"}, - {file = "pydantic_core-2.14.1-cp311-none-win_amd64.whl", hash = "sha256:59fa83873223f856d898452c6162a390af4297756f6ba38493a67533387d85d9"}, - {file = "pydantic_core-2.14.1-cp311-none-win_arm64.whl", hash = "sha256:798590d38c9381f07c48d13af1f1ef337cebf76ee452fcec5deb04aceced51c7"}, - {file = "pydantic_core-2.14.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:587d75aec9ae50d0d63788cec38bf13c5128b3fc1411aa4b9398ebac884ab179"}, - {file = "pydantic_core-2.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26242e3593d4929123615bd9365dd86ef79b7b0592d64a96cd11fd83c69c9f34"}, - {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5879ac4791508d8f0eb7dec71ff8521855180688dac0c55f8c99fc4d1a939845"}, - {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad9ea86f5fc50f1b62c31184767fe0cacaa13b54fe57d38898c3776d30602411"}, - {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:102ac85a775e77821943ae38da9634ddd774b37a8d407181b4f7b05cdfb36b55"}, - {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2459cc06572730e079ec1e694e8f68c99d977b40d98748ae72ff11ef21a56b0b"}, - {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:217dcbfaf429a9b8f1d54eb380908b9c778e78f31378283b30ba463c21e89d5d"}, - {file = "pydantic_core-2.14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9d59e0d7cdfe8ed1d4fcd28aad09625c715dc18976c7067e37d8a11b06f4be3e"}, - {file = "pydantic_core-2.14.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e2be646a5155d408e68b560c0553e8a83dc7b9f90ec6e5a2fc3ff216719385db"}, - {file = "pydantic_core-2.14.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ffba979801e3931a19cd30ed2049450820effe8f152aaa317e2fd93795d318d7"}, - {file = "pydantic_core-2.14.1-cp312-none-win32.whl", hash = "sha256:132b40e479cb5cebbbb681f77aaceabbc8355df16c9124cff1d4060ada83cde2"}, - {file = "pydantic_core-2.14.1-cp312-none-win_amd64.whl", hash = "sha256:744b807fe2733b6da3b53e8ad93e8b3ea3ee3dfc3abece4dd2824cc1f39aa343"}, - {file = "pydantic_core-2.14.1-cp312-none-win_arm64.whl", hash = "sha256:24ba48f9d0b8d64fc5e42e1600366c3d7db701201294989aebdaca23110c02ab"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:ba55d73a2df4771b211d0bcdea8b79454980a81ed34a1d77a19ddcc81f98c895"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:e905014815687d88cbb14bbc0496420526cf20d49f20606537d87646b70f1046"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:443dc5eede7fa76b2370213e0abe881eb17c96f7d694501853c11d5d56916602"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abae6fd5504e5e438e4f6f739f8364fd9ff5a5cdca897e68363e2318af90bc28"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9486e27bb3f137f33e2315be2baa0b0b983dae9e2f5f5395240178ad8e644728"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69df82892ff00491d673b1929538efb8c8d68f534fdc6cb7fd3ac8a5852b9034"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:184ff7b30c3f60e1b775378c060099285fd4b5249271046c9005f8b247b39377"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d5b2a4b3c10cad0615670cab99059441ff42e92cf793a0336f4bc611e895204"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:871c641a83719caaa856a11dcc61c5e5b35b0db888e1a0d338fe67ce744575e2"}, - {file = "pydantic_core-2.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1e7208946ea9b27a8cef13822c339d4ae96e45952cc01fc4a91c7f1cb0ae2861"}, - {file = "pydantic_core-2.14.1-cp37-none-win32.whl", hash = "sha256:b4ff385a525017f5adf6066d7f9fb309f99ade725dcf17ed623dc7dce1f85d9f"}, - {file = "pydantic_core-2.14.1-cp37-none-win_amd64.whl", hash = "sha256:c7411cd06afeb263182e38c6ca5b4f5fe4f20d91466ad7db0cd6af453a02edec"}, - {file = "pydantic_core-2.14.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:2871daf5b2823bf77bf7d3d43825e5d904030c155affdf84b21a00a2e00821d2"}, - {file = "pydantic_core-2.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7977e261cac5f99873dc2c6f044315d09b19a71c4246560e1e67593889a90978"}, - {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5a111f9158555582deadd202a60bd7803b6c68f406391b7cf6905adf0af6811"}, - {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac417312bf6b7a0223ba73fb12e26b2854c93bf5b1911f7afef6d24c379b22aa"}, - {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c36987f5eb2a7856b5f5feacc3be206b4d1852a6ce799f6799dd9ffb0cba56ae"}, - {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6e98227eb02623d57e1fd061788837834b68bb995a869565211b9abf3de4bf4"}, - {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023b6d7ec4e97890b28eb2ee24413e69a6d48de4e8b75123957edd5432f4eeb3"}, - {file = "pydantic_core-2.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6015beb28deb5306049ecf2519a59627e9e050892927850a884df6d5672f8c7d"}, - {file = "pydantic_core-2.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3f48d4afd973abbd65266ac24b24de1591116880efc7729caf6b6b94a9654c9e"}, - {file = "pydantic_core-2.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:28734bcfb8fc5b03293dec5eb5ea73b32ff767f6ef79a31f6e41dad2f5470270"}, - {file = "pydantic_core-2.14.1-cp38-none-win32.whl", hash = "sha256:3303113fdfaca927ef11e0c5f109e2ec196c404f9d7ba5f8ddb63cdf287ea159"}, - {file = "pydantic_core-2.14.1-cp38-none-win_amd64.whl", hash = "sha256:144f2c1d5579108b6ed1193fcc9926124bd4142b0f7020a7744980d1235c8a40"}, - {file = "pydantic_core-2.14.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:893bf4fb9bfb9c4639bc12f3de323325ada4c6d60e478d5cded65453e9364890"}, - {file = "pydantic_core-2.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:052d8731aaf844f91fe4cd3faf28983b109a5865b3a256ec550b80a5689ead87"}, - {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb1c6ecb53e4b907ee8486f453dd940b8cbb509946e2b671e3bf807d310a96fc"}, - {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:94cf6d0274eb899d39189144dcf52814c67f9b0fd196f211420d9aac793df2da"}, - {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36c3bf96f803e207a80dbcb633d82b98ff02a9faa76dd446e969424dec8e2b9f"}, - {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb290491f1f0786a7da4585250f1feee200fc17ff64855bdd7c42fb54526fa29"}, - {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6590ed9d13eb51b28ea17ddcc6c8dbd6050b4eb589d497105f0e13339f223b72"}, - {file = "pydantic_core-2.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:69cd74e55a5326d920e7b46daa2d81c2bdb8bcf588eafb2330d981297b742ddc"}, - {file = "pydantic_core-2.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d965bdb50725a805b083f5f58d05669a85705f50a6a864e31b545c589290ee31"}, - {file = "pydantic_core-2.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ca942a2dc066ca5e04c27feaa8dfb9d353ddad14c6641660c565149186095343"}, - {file = "pydantic_core-2.14.1-cp39-none-win32.whl", hash = "sha256:72c2ef3787c3b577e5d6225d73a77167b942d12cef3c1fbd5e74e55b7f881c36"}, - {file = "pydantic_core-2.14.1-cp39-none-win_amd64.whl", hash = "sha256:55713d155da1e508083c4b08d0b1ad2c3054f68b8ef7eb3d3864822e456f0bb5"}, - {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:53efe03cc383a83660cfdda6a3cb40ee31372cedea0fde0b2a2e55e838873ab6"}, - {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f523e116879bc6714e61d447ce934676473b068069dce6563ea040381dc7a257"}, - {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85bb66d661be51b2cba9ca06759264b3469d2dbb53c3e6effb3f05fec6322be6"}, - {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f53a3ccdc30234cb4342cec541e3e6ed87799c7ca552f0b5f44e3967a5fed526"}, - {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:1bfb63821ada76719ffcd703fc40dd57962e0d8c253e3c565252e6de6d3e0bc6"}, - {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e2c689439f262c29cf3fcd5364da1e64d8600facecf9eabea8643b8755d2f0de"}, - {file = "pydantic_core-2.14.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a15f6e5588f7afb7f6fc4b0f4ff064749e515d34f34c666ed6e37933873d8ad8"}, - {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:f1a30eef060e21af22c7d23349f1028de0611f522941c80efa51c05a63142c62"}, - {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16f4a7e1ec6b3ea98a1e108a2739710cd659d68b33fbbeaba066202cab69c7b6"}, - {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd80a2d383940eec3db6a5b59d1820f947317acc5c75482ff8d79bf700f8ad6a"}, - {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:a68a36d71c7f638dda6c9e6b67f6aabf3fa1471b198d246457bfdc7c777cdeb7"}, - {file = "pydantic_core-2.14.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ebc79120e105e4bcd7865f369e3b9dbabb0d492d221e1a7f62a3e8e292550278"}, - {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c8c466facec2ccdf025b0b1455b18f2c3d574d5f64d24df905d3d7b8f05d5f4e"}, - {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b91b5ec423e88caa16777094c4b2b97f11453283e7a837e5e5e1b886abba1251"}, - {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130e49aa0cb316f743bc7792c36aefa39fc2221312f1d4b333b19edbdd71f2b1"}, - {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f483467c046f549572f8aca3b7128829e09ae3a9fe933ea421f7cb7c58120edb"}, - {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:dee4682bd7947afc682d342a8d65ad1834583132383f8e801601a8698cb8d17a"}, - {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:8d927d042c0ef04607ee7822828b208ab045867d20477ec6593d612156798547"}, - {file = "pydantic_core-2.14.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5a1570875eb0d1479fb2270ed80c88c231aaaf68b0c3f114f35e7fb610435e4f"}, - {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:cb2fd3ab67558eb16aecfb4f2db4febb4d37dc74e6b8613dc2e7160fb58158a9"}, - {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a7991f25b98038252363a03e6a9fe92e60fe390fda2631d238dc3b0e396632f8"}, - {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b45b7be9f99991405ecd6f6172fb6798908a8097106ae78d5cc5cc15121bad9"}, - {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:51506e7652a2ef1d1cf763c4b51b972ff4568d1dddc96ca83931a6941f5e6389"}, - {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:66dc0e63349ec39c1ea66622aa5c2c1f84382112afd3ab2fa0cca4fb01f7db39"}, - {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:8e17f0c3ba4cb07faa0038a59ce162de584ed48ba645c8d05a5de1e40d4c21e7"}, - {file = "pydantic_core-2.14.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d983222223f63e323a5f497f5b85e211557a5d8fb670dc88f343784502b466ba"}, - {file = "pydantic_core-2.14.1.tar.gz", hash = "sha256:0d82a6ee815388a362885186e431fac84c7a06623bc136f508e9f88261d8cadb"}, + {file = "pydantic_core-2.14.3-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:ba44fad1d114539d6a1509966b20b74d2dec9a5b0ee12dd7fd0a1bb7b8785e5f"}, + {file = "pydantic_core-2.14.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4a70d23eedd88a6484aa79a732a90e36701048a1509078d1b59578ef0ea2cdf5"}, + {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cc24728a1a9cef497697e53b3d085fb4d3bc0ef1ef4d9b424d9cf808f52c146"}, + {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab4a2381005769a4af2ffddae74d769e8a4aae42e970596208ec6d615c6fb080"}, + {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a12bf088d6fa20e094f9a477bf84bd823651d8b8384f59bcd50eaa92e6a52"}, + {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:38aed5a1bbc3025859f56d6a32f6e53ca173283cb95348e03480f333b1091e7d"}, + {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1767bd3f6370458e60c1d3d7b1d9c2751cc1ad743434e8ec84625a610c8b9195"}, + {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7cb0c397f29688a5bd2c0dbd44451bc44ebb9b22babc90f97db5ec3e5bb69977"}, + {file = "pydantic_core-2.14.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ff737f24b34ed26de62d481ef522f233d3c5927279f6b7229de9b0deb3f76b5"}, + {file = "pydantic_core-2.14.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a1a39fecb5f0b19faee9a8a8176c805ed78ce45d760259a4ff3d21a7daa4dfc1"}, + {file = "pydantic_core-2.14.3-cp310-none-win32.whl", hash = "sha256:ccbf355b7276593c68fa824030e68cb29f630c50e20cb11ebb0ee450ae6b3d08"}, + {file = "pydantic_core-2.14.3-cp310-none-win_amd64.whl", hash = "sha256:536e1f58419e1ec35f6d1310c88496f0d60e4f182cacb773d38076f66a60b149"}, + {file = "pydantic_core-2.14.3-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:f1f46700402312bdc31912f6fc17f5ecaaaa3bafe5487c48f07c800052736289"}, + {file = "pydantic_core-2.14.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:88ec906eb2d92420f5b074f59cf9e50b3bb44f3cb70e6512099fdd4d88c2f87c"}, + {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:056ea7cc3c92a7d2a14b5bc9c9fa14efa794d9f05b9794206d089d06d3433dc7"}, + {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076edc972b68a66870cec41a4efdd72a6b655c4098a232314b02d2bfa3bfa157"}, + {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e71f666c3bf019f2490a47dddb44c3ccea2e69ac882f7495c68dc14d4065eac2"}, + {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f518eac285c9632be337323eef9824a856f2680f943a9b68ac41d5f5bad7df7c"}, + {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dbab442a8d9ca918b4ed99db8d89d11b1f067a7dadb642476ad0889560dac79"}, + {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0653fb9fc2fa6787f2fa08631314ab7fc8070307bd344bf9471d1b7207c24623"}, + {file = "pydantic_core-2.14.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c54af5069da58ea643ad34ff32fd6bc4eebb8ae0fef9821cd8919063e0aeeaab"}, + {file = "pydantic_core-2.14.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc956f78651778ec1ab105196e90e0e5f5275884793ab67c60938c75bcca3989"}, + {file = "pydantic_core-2.14.3-cp311-none-win32.whl", hash = "sha256:5b73441a1159f1fb37353aaefb9e801ab35a07dd93cb8177504b25a317f4215a"}, + {file = "pydantic_core-2.14.3-cp311-none-win_amd64.whl", hash = "sha256:7349f99f1ef8b940b309179733f2cad2e6037a29560f1b03fdc6aa6be0a8d03c"}, + {file = "pydantic_core-2.14.3-cp311-none-win_arm64.whl", hash = "sha256:ec79dbe23702795944d2ae4c6925e35a075b88acd0d20acde7c77a817ebbce94"}, + {file = "pydantic_core-2.14.3-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:8f5624f0f67f2b9ecaa812e1dfd2e35b256487566585160c6c19268bf2ffeccc"}, + {file = "pydantic_core-2.14.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6c2d118d1b6c9e2d577e215567eedbe11804c3aafa76d39ec1f8bc74e918fd07"}, + {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe863491664c6720d65ae438d4efaa5eca766565a53adb53bf14bc3246c72fe0"}, + {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:136bc7247e97a921a020abbd6ef3169af97569869cd6eff41b6a15a73c44ea9b"}, + {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aeafc7f5bbddc46213707266cadc94439bfa87ecf699444de8be044d6d6eb26f"}, + {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e16aaf788f1de5a85c8f8fcc9c1ca1dd7dd52b8ad30a7889ca31c7c7606615b8"}, + {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fc652c354d3362e2932a79d5ac4bbd7170757a41a62c4fe0f057d29f10bebb"}, + {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f1b92e72babfd56585c75caf44f0b15258c58e6be23bc33f90885cebffde3400"}, + {file = "pydantic_core-2.14.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:75f3f534f33651b73f4d3a16d0254de096f43737d51e981478d580f4b006b427"}, + {file = "pydantic_core-2.14.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c9ffd823c46e05ef3eb28b821aa7bc501efa95ba8880b4a1380068e32c5bed47"}, + {file = "pydantic_core-2.14.3-cp312-none-win32.whl", hash = "sha256:12e05a76b223577a4696c76d7a6b36a0ccc491ffb3c6a8cf92d8001d93ddfd63"}, + {file = "pydantic_core-2.14.3-cp312-none-win_amd64.whl", hash = "sha256:1582f01eaf0537a696c846bea92082082b6bfc1103a88e777e983ea9fbdc2a0f"}, + {file = "pydantic_core-2.14.3-cp312-none-win_arm64.whl", hash = "sha256:96fb679c7ca12a512d36d01c174a4fbfd912b5535cc722eb2c010c7b44eceb8e"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:71ed769b58d44e0bc2701aa59eb199b6665c16e8a5b8b4a84db01f71580ec448"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:5402ee0f61e7798ea93a01b0489520f2abfd9b57b76b82c93714c4318c66ca06"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaab9dc009e22726c62fe3b850b797e7f0e7ba76d245284d1064081f512c7226"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92486a04d54987054f8b4405a9af9d482e5100d6fe6374fc3303015983fc8bda"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf08b43d1d5d1678f295f0431a4a7e1707d4652576e1d0f8914b5e0213bfeee5"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8ca13480ce16daad0504be6ce893b0ee8ec34cd43b993b754198a89e2787f7e"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44afa3c18d45053fe8d8228950ee4c8eaf3b5a7f3b64963fdeac19b8342c987f"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56814b41486e2d712a8bc02a7b1f17b87fa30999d2323bbd13cf0e52296813a1"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c3dc2920cc96f9aa40c6dc54256e436cc95c0a15562eb7bd579e1811593c377e"}, + {file = "pydantic_core-2.14.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e483b8b913fcd3b48badec54185c150cb7ab0e6487914b84dc7cde2365e0c892"}, + {file = "pydantic_core-2.14.3-cp37-none-win32.whl", hash = "sha256:364dba61494e48f01ef50ae430e392f67ee1ee27e048daeda0e9d21c3ab2d609"}, + {file = "pydantic_core-2.14.3-cp37-none-win_amd64.whl", hash = "sha256:a402ae1066be594701ac45661278dc4a466fb684258d1a2c434de54971b006ca"}, + {file = "pydantic_core-2.14.3-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:10904368261e4509c091cbcc067e5a88b070ed9a10f7ad78f3029c175487490f"}, + {file = "pydantic_core-2.14.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:260692420028319e201b8649b13ac0988974eeafaaef95d0dfbf7120c38dc000"}, + {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c1bf1a7b05a65d3b37a9adea98e195e0081be6b17ca03a86f92aeb8b110f468"}, + {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d7abd17a838a52140e3aeca271054e321226f52df7e0a9f0da8f91ea123afe98"}, + {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5c51460ede609fbb4fa883a8fe16e749964ddb459966d0518991ec02eb8dfb9"}, + {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d06c78074646111fb01836585f1198367b17d57c9f427e07aaa9ff499003e58d"}, + {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af452e69446fadf247f18ac5d153b1f7e61ef708f23ce85d8c52833748c58075"}, + {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3ad4968711fb379a67c8c755beb4dae8b721a83737737b7bcee27c05400b047"}, + {file = "pydantic_core-2.14.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c5ea0153482e5b4d601c25465771c7267c99fddf5d3f3bdc238ef930e6d051cf"}, + {file = "pydantic_core-2.14.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:96eb10ef8920990e703da348bb25fedb8b8653b5966e4e078e5be382b430f9e0"}, + {file = "pydantic_core-2.14.3-cp38-none-win32.whl", hash = "sha256:ea1498ce4491236d1cffa0eee9ad0968b6ecb0c1cd711699c5677fc689905f00"}, + {file = "pydantic_core-2.14.3-cp38-none-win_amd64.whl", hash = "sha256:2bc736725f9bd18a60eec0ed6ef9b06b9785454c8d0105f2be16e4d6274e63d0"}, + {file = "pydantic_core-2.14.3-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:1ea992659c03c3ea811d55fc0a997bec9dde863a617cc7b25cfde69ef32e55af"}, + {file = "pydantic_core-2.14.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d2b53e1f851a2b406bbb5ac58e16c4a5496038eddd856cc900278fa0da97f3fc"}, + {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c7f8e8a7cf8e81ca7d44bea4f181783630959d41b4b51d2f74bc50f348a090f"}, + {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8d3b9c91eeb372a64ec6686c1402afd40cc20f61a0866850f7d989b6bf39a41a"}, + {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ef3e2e407e4cad2df3c89488a761ed1f1c33f3b826a2ea9a411b0a7d1cccf1b"}, + {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f86f20a9d5bee1a6ede0f2757b917bac6908cde0f5ad9fcb3606db1e2968bcf5"}, + {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61beaa79d392d44dc19d6f11ccd824d3cccb865c4372157c40b92533f8d76dd0"}, + {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d41df8e10b094640a6b234851b624b76a41552f637b9fb34dc720b9fe4ef3be4"}, + {file = "pydantic_core-2.14.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c08ac60c3caa31f825b5dbac47e4875bd4954d8f559650ad9e0b225eaf8ed0c"}, + {file = "pydantic_core-2.14.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d8b3932f1a369364606417ded5412c4ffb15bedbcf797c31317e55bd5d920e"}, + {file = "pydantic_core-2.14.3-cp39-none-win32.whl", hash = "sha256:caa94726791e316f0f63049ee00dff3b34a629b0d099f3b594770f7d0d8f1f56"}, + {file = "pydantic_core-2.14.3-cp39-none-win_amd64.whl", hash = "sha256:2494d20e4c22beac30150b4be3b8339bf2a02ab5580fa6553ca274bc08681a65"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:fe272a72c7ed29f84c42fedd2d06c2f9858dc0c00dae3b34ba15d6d8ae0fbaaf"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7e63a56eb7fdee1587d62f753ccd6d5fa24fbeea57a40d9d8beaef679a24bdd6"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7692f539a26265cece1e27e366df5b976a6db6b1f825a9e0466395b314ee48b"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af46f0b7a1342b49f208fed31f5a83b8495bb14b652f621e0a6787d2f10f24ee"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6e2f9d76c00e805d47f19c7a96a14e4135238a7551a18bfd89bb757993fd0933"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:de52ddfa6e10e892d00f747bf7135d7007302ad82e243cf16d89dd77b03b649d"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:38113856c7fad8c19be7ddd57df0c3e77b1b2336459cb03ee3903ce9d5e236ce"}, + {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:354db020b1f8f11207b35360b92d95725621eb92656725c849a61e4b550f4acc"}, + {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:76fc18653a5c95e5301a52d1b5afb27c9adc77175bf00f73e94f501caf0e05ad"}, + {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2646f8270f932d79ba61102a15ea19a50ae0d43b314e22b3f8f4b5fabbfa6e38"}, + {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37dad73a2f82975ed563d6a277fd9b50e5d9c79910c4aec787e2d63547202315"}, + {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:113752a55a8eaece2e4ac96bc8817f134c2c23477e477d085ba89e3aa0f4dc44"}, + {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:8488e973547e8fb1b4193fd9faf5236cf1b7cd5e9e6dc7ff6b4d9afdc4c720cb"}, + {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3d1dde10bd9962b1434053239b1d5490fc31a2b02d8950a5f731bc584c7a5a0f"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:2c83892c7bf92b91d30faca53bb8ea21f9d7e39f0ae4008ef2c2f91116d0464a"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:849cff945284c577c5f621d2df76ca7b60f803cc8663ff01b778ad0af0e39bb9"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa89919fbd8a553cd7d03bf23d5bc5deee622e1b5db572121287f0e64979476"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf15145b1f8056d12c67255cd3ce5d317cd4450d5ee747760d8d088d85d12a2d"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4cc6bb11f4e8e5ed91d78b9880774fbc0856cb226151b0a93b549c2b26a00c19"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:832d16f248ca0cc96929139734ec32d21c67669dcf8a9f3f733c85054429c012"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b02b5e1f54c3396c48b665050464803c23c685716eb5d82a1d81bf81b5230da4"}, + {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:1f2d4516c32255782153e858f9a900ca6deadfb217fd3fb21bb2b60b4e04d04d"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0a3e51c2be472b7867eb0c5d025b91400c2b73a0823b89d4303a9097e2ec6655"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:df33902464410a1f1a0411a235f0a34e7e129f12cb6340daca0f9d1390f5fe10"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27828f0227b54804aac6fb077b6bb48e640b5435fdd7fbf0c274093a7b78b69c"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e2979dc80246e18e348de51246d4c9b410186ffa3c50e77924bec436b1e36cb"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b28996872b48baf829ee75fa06998b607c66a4847ac838e6fd7473a6b2ab68e7"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:ca55c9671bb637ce13d18ef352fd32ae7aba21b4402f300a63f1fb1fd18e0364"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:aecd5ed096b0e5d93fb0367fd8f417cef38ea30b786f2501f6c34eabd9062c38"}, + {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:44aaf1a07ad0824e407dafc637a852e9a44d94664293bbe7d8ee549c356c8882"}, + {file = "pydantic_core-2.14.3.tar.gz", hash = "sha256:3ad083df8fe342d4d8d00cc1d3c1a23f0dc84fce416eb301e69f1ddbbe124d3f"}, ] [package.dependencies] From 51d3511f8b23b67d13a85fde5639353f4da51b1a Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 16 Nov 2023 11:36:49 +0100 Subject: [PATCH 30/63] providers/scim: fix missing schemas attribute for User and Group (#7477) * providers/scim: fix missing schemas attribute for User and Group Signed-off-by: Jens Langhammer * make things actually work Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/providers/scim/clients/group.py | 4 +++- authentik/providers/scim/clients/schema.py | 2 ++ authentik/providers/scim/clients/user.py | 4 +++- authentik/providers/scim/tests/test_group.py | 18 ++++++++++++++--- .../providers/scim/tests/test_membership.py | 20 ++++++++++++++----- authentik/providers/scim/tests/test_user.py | 4 ++++ 6 files changed, 42 insertions(+), 10 deletions(-) diff --git a/authentik/providers/scim/clients/group.py b/authentik/providers/scim/clients/group.py index 98771315d..306cc21f9 100644 --- a/authentik/providers/scim/clients/group.py +++ b/authentik/providers/scim/clients/group.py @@ -46,7 +46,9 @@ class SCIMGroupClient(SCIMClient[Group, SCIMGroupSchema]): def to_scim(self, obj: Group) -> SCIMGroupSchema: """Convert authentik user into SCIM""" - raw_scim_group = {} + raw_scim_group = { + "schemas": ("urn:ietf:params:scim:schemas:core:2.0:Group",), + } for mapping in ( self.provider.property_mappings_group.all().order_by("name").select_subclasses() ): diff --git a/authentik/providers/scim/clients/schema.py b/authentik/providers/scim/clients/schema.py index b9cbe3d43..b1c268255 100644 --- a/authentik/providers/scim/clients/schema.py +++ b/authentik/providers/scim/clients/schema.py @@ -15,12 +15,14 @@ from pydanticscim.user import User as BaseUser class User(BaseUser): """Modified User schema with added externalId field""" + schemas: tuple[str] = ("urn:ietf:params:scim:schemas:core:2.0:User",) externalId: Optional[str] = None class Group(BaseGroup): """Modified Group schema with added externalId field""" + schemas: tuple[str] = ("urn:ietf:params:scim:schemas:core:2.0:Group",) externalId: Optional[str] = None diff --git a/authentik/providers/scim/clients/user.py b/authentik/providers/scim/clients/user.py index 31d912858..11ef6a159 100644 --- a/authentik/providers/scim/clients/user.py +++ b/authentik/providers/scim/clients/user.py @@ -39,7 +39,9 @@ class SCIMUserClient(SCIMClient[User, SCIMUserSchema]): def to_scim(self, obj: User) -> SCIMUserSchema: """Convert authentik user into SCIM""" - raw_scim_user = {} + raw_scim_user = { + "schemas": ("urn:ietf:params:scim:schemas:core:2.0:User",), + } for mapping in self.provider.property_mappings.all().order_by("name").select_subclasses(): if not isinstance(mapping, SCIMMapping): continue diff --git a/authentik/providers/scim/tests/test_group.py b/authentik/providers/scim/tests/test_group.py index 6004a453b..6dd9d70ca 100644 --- a/authentik/providers/scim/tests/test_group.py +++ b/authentik/providers/scim/tests/test_group.py @@ -61,7 +61,11 @@ class SCIMGroupTests(TestCase): self.assertEqual(mock.request_history[1].method, "POST") self.assertJSONEqual( mock.request_history[1].body, - {"externalId": str(group.pk), "displayName": group.name}, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "externalId": str(group.pk), + "displayName": group.name, + }, ) @Mocker() @@ -96,7 +100,11 @@ class SCIMGroupTests(TestCase): validate(body, loads(schema.read())) self.assertEqual( body, - {"externalId": str(group.pk), "displayName": group.name}, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "externalId": str(group.pk), + "displayName": group.name, + }, ) group.save() self.assertEqual(mock.call_count, 4) @@ -129,7 +137,11 @@ class SCIMGroupTests(TestCase): self.assertEqual(mock.request_history[1].method, "POST") self.assertJSONEqual( mock.request_history[1].body, - {"externalId": str(group.pk), "displayName": group.name}, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "externalId": str(group.pk), + "displayName": group.name, + }, ) group.delete() self.assertEqual(mock.call_count, 4) diff --git a/authentik/providers/scim/tests/test_membership.py b/authentik/providers/scim/tests/test_membership.py index a0506a7cd..f2bbc74c5 100644 --- a/authentik/providers/scim/tests/test_membership.py +++ b/authentik/providers/scim/tests/test_membership.py @@ -89,6 +89,7 @@ class SCIMMembershipTests(TestCase): self.assertJSONEqual( mocker.request_history[3].body, { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "emails": [], "active": True, "externalId": user.uid, @@ -99,7 +100,11 @@ class SCIMMembershipTests(TestCase): ) self.assertJSONEqual( mocker.request_history[5].body, - {"externalId": str(group.pk), "displayName": group.name}, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "externalId": str(group.pk), + "displayName": group.name, + }, ) with Mocker() as mocker: @@ -118,6 +123,7 @@ class SCIMMembershipTests(TestCase): self.assertJSONEqual( mocker.request_history[1].body, { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "add", @@ -125,7 +131,6 @@ class SCIMMembershipTests(TestCase): "value": [{"value": user_scim_id}], } ], - "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], }, ) @@ -174,6 +179,7 @@ class SCIMMembershipTests(TestCase): self.assertJSONEqual( mocker.request_history[3].body, { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "active": True, "displayName": "", "emails": [], @@ -184,7 +190,11 @@ class SCIMMembershipTests(TestCase): ) self.assertJSONEqual( mocker.request_history[5].body, - {"externalId": str(group.pk), "displayName": group.name}, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "externalId": str(group.pk), + "displayName": group.name, + }, ) with Mocker() as mocker: @@ -203,6 +213,7 @@ class SCIMMembershipTests(TestCase): self.assertJSONEqual( mocker.request_history[1].body, { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "add", @@ -210,7 +221,6 @@ class SCIMMembershipTests(TestCase): "value": [{"value": user_scim_id}], } ], - "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], }, ) @@ -230,6 +240,7 @@ class SCIMMembershipTests(TestCase): self.assertJSONEqual( mocker.request_history[1].body, { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "remove", @@ -237,6 +248,5 @@ class SCIMMembershipTests(TestCase): "value": [{"value": user_scim_id}], } ], - "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], }, ) diff --git a/authentik/providers/scim/tests/test_user.py b/authentik/providers/scim/tests/test_user.py index 842674b10..36377b925 100644 --- a/authentik/providers/scim/tests/test_user.py +++ b/authentik/providers/scim/tests/test_user.py @@ -66,6 +66,7 @@ class SCIMUserTests(TestCase): self.assertJSONEqual( mock.request_history[1].body, { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "active": True, "emails": [ { @@ -121,6 +122,7 @@ class SCIMUserTests(TestCase): self.assertEqual( body, { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "active": True, "emails": [ { @@ -173,6 +175,7 @@ class SCIMUserTests(TestCase): self.assertJSONEqual( mock.request_history[1].body, { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "active": True, "emails": [ { @@ -240,6 +243,7 @@ class SCIMUserTests(TestCase): self.assertJSONEqual( mock.request_history[1].body, { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "active": True, "emails": [ { From 51908f6060f1caff7fa49a99f7e39413de6d22e3 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 12:06:22 +0100 Subject: [PATCH 31/63] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_TW (#7594) * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. * Translate locale/en/LC_MESSAGES/django.po in zh_TW 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_TW'. --------- Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh_TW/LC_MESSAGES/django.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/zh_TW/LC_MESSAGES/django.po b/locale/zh_TW/LC_MESSAGES/django.po index c6f9ed069..6618400de 100644 --- a/locale/zh_TW/LC_MESSAGES/django.po +++ b/locale/zh_TW/LC_MESSAGES/django.po @@ -2418,14 +2418,14 @@ msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " "return a list to return multiple choices." -msgstr "可選:提供一個簡短提示,描述預期的輸入值。當建立一個固定選擇欄位時,啟用解釋為表達式,並回傳一個列表以提供多個選擇。" +msgstr "可選:提供一個簡短提示,描述預期的輸入值。當建立一個固定選擇欄位時,啟用解釋為表示式,並回傳一個列表以提供多個選擇。" #: authentik/stages/prompt/models.py:132 msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " "multiple default choices." -msgstr "可選:預先填入輸入框以一個初始值。當建立一個固定選擇欄位時,啟用解釋為表達式,並回傳一個列表以提供多個預設選擇。" +msgstr "可選:預先填入輸入框以一個初始值。當建立一個固定選擇欄位時,啟用解釋為表示式,並回傳一個列表以提供多個預設選擇。" #: authentik/stages/prompt/models.py:321 msgid "Prompt" From 31ef91900b64dc6e8fbab58ed699fcfd6854a5ab Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 16 Nov 2023 12:06:39 +0100 Subject: [PATCH 32/63] events: fix missing model_* events when not directly authenticated (#7588) * events: fix missing model_* events when not directly authenticated Signed-off-by: Jens Langhammer * defer accessing database Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/events/middleware.py | 23 ++++++++++++++------- authentik/stages/user_write/tests.py | 31 ++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/authentik/events/middleware.py b/authentik/events/middleware.py index a722d8e4a..d482bb21e 100644 --- a/authentik/events/middleware.py +++ b/authentik/events/middleware.py @@ -93,21 +93,30 @@ class AuditMiddleware: of models""" get_response: Callable[[HttpRequest], HttpResponse] + anonymous_user: User = None def __init__(self, get_response: Callable[[HttpRequest], HttpResponse]): self.get_response = get_response + def _ensure_fallback_user(self): + """Defer fetching anonymous user until we have to""" + if self.anonymous_user: + return + from guardian.shortcuts import get_anonymous_user + + self.anonymous_user = get_anonymous_user() + def connect(self, request: HttpRequest): """Connect signal for automatic logging""" - if not hasattr(request, "user"): - return - if not getattr(request.user, "is_authenticated", False): - return + self._ensure_fallback_user() + user = getattr(request, "user", self.anonymous_user) + if not user.is_authenticated: + user = self.anonymous_user if not hasattr(request, "request_id"): return - post_save_handler = partial(self.post_save_handler, user=request.user, request=request) - pre_delete_handler = partial(self.pre_delete_handler, user=request.user, request=request) - m2m_changed_handler = partial(self.m2m_changed_handler, user=request.user, request=request) + post_save_handler = partial(self.post_save_handler, user=user, request=request) + pre_delete_handler = partial(self.pre_delete_handler, user=user, request=request) + m2m_changed_handler = partial(self.m2m_changed_handler, user=user, request=request) post_save.connect( post_save_handler, dispatch_uid=request.request_id, diff --git a/authentik/stages/user_write/tests.py b/authentik/stages/user_write/tests.py index 66084f67e..0fe661e6b 100644 --- a/authentik/stages/user_write/tests.py +++ b/authentik/stages/user_write/tests.py @@ -6,6 +6,7 @@ from django.urls import reverse from authentik.core.models import USER_ATTRIBUTE_SOURCES, Group, Source, User, UserSourceConnection from authentik.core.sources.stage import PLAN_CONTEXT_SOURCES_CONNECTION from authentik.core.tests.utils import create_test_admin_user, create_test_flow +from authentik.events.models import Event, EventAction from authentik.flows.markers import StageMarker from authentik.flows.models import FlowStageBinding from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan @@ -58,11 +59,33 @@ class TestUserWriteStage(FlowTestCase): self.assertStageRedirects(response, reverse("authentik_core:root-redirect")) user_qs = User.objects.filter(username=plan.context[PLAN_CONTEXT_PROMPT]["username"]) self.assertTrue(user_qs.exists()) - self.assertTrue(user_qs.first().check_password(password)) - self.assertEqual( - list(user_qs.first().ak_groups.order_by("name")), [self.other_group, self.group] + user = user_qs.first() + self.assertTrue(user.check_password(password)) + self.assertEqual(list(user.ak_groups.order_by("name")), [self.other_group, self.group]) + self.assertEqual(user.attributes, {USER_ATTRIBUTE_SOURCES: [self.source.name]}) + + self.assertTrue( + Event.objects.filter( + action=EventAction.MODEL_CREATED, + context__model={ + "app": "authentik_core", + "model_name": "user", + "pk": user.pk, + "name": "name", + }, + ) + ) + self.assertTrue( + Event.objects.filter( + action=EventAction.MODEL_UPDATED, + context__model={ + "app": "authentik_core", + "model_name": "user", + "pk": user.pk, + "name": "name", + }, + ) ) - self.assertEqual(user_qs.first().attributes, {USER_ATTRIBUTE_SOURCES: [self.source.name]}) def test_user_update(self): """Test update of existing user""" From 60af4a2e3799a68f7b2d493eb1a296edaaf44057 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 13:12:56 +0100 Subject: [PATCH 34/63] web: bump @lit-labs/context from 0.4.1 to 0.5.1 in /web (#7486) Bumps [@lit-labs/context](https://github.com/lit/lit/tree/HEAD/packages/labs/context) from 0.4.1 to 0.5.1. - [Release notes](https://github.com/lit/lit/releases) - [Changelog](https://github.com/lit/lit/blob/main/packages/labs/context/CHANGELOG.md) - [Commits](https://github.com/lit/lit/commits/@lit-labs/context@0.5.1/packages/labs/context) --- updated-dependencies: - dependency-name: "@lit-labs/context" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 19 +++++++++++++------ web/package.json | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index e1542ca16..07b1efec6 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -18,7 +18,7 @@ "@formatjs/intl-listformat": "^7.5.3", "@fortawesome/fontawesome-free": "^6.4.2", "@goauthentik/api": "^2023.10.3-1699884123", - "@lit-labs/context": "^0.4.0", + "@lit-labs/context": "^0.5.1", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", "@open-wc/lit-helpers": "^0.6.0", @@ -3473,12 +3473,11 @@ } }, "node_modules/@lit-labs/context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@lit-labs/context/-/context-0.4.1.tgz", - "integrity": "sha512-o+uKepgEPoYAVaPvSASoDiUWKdcf7neyhFcm9dvtiLgptKoINZD1vW7GbbH/2hPtxLxgcmVfZ9NDCXNDQeHTHQ==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@lit-labs/context/-/context-0.5.1.tgz", + "integrity": "sha512-ELR50iyIFb0mOTkzR7bSUamipLY8QzbiXzTElJr+fInBhUpUbe4bx7Z2ekPO+WbunQRB2Bc3z/V7lIPTN+tbVQ==", "dependencies": { - "@lit/reactive-element": "^1.5.0", - "lit": "^2.7.0" + "@lit/context": "^1.0.0" } }, "node_modules/@lit-labs/ssr-dom-shim": { @@ -3494,6 +3493,14 @@ "@lit/task": "^1.0.0" } }, + "node_modules/@lit/context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.0.1.tgz", + "integrity": "sha512-ujQEV42vRjhNzCu/YNc+dy8eq48cEYO2SvEl7iCmMzt8X7ixUYcDt8DPV1UBr58FJ7EUe9vTLPv/0soAi9bfRw==", + "dependencies": { + "@lit/reactive-element": "^1.6.2 || ^2.0.0" + } + }, "node_modules/@lit/localize": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.11.4.tgz", diff --git a/web/package.json b/web/package.json index 2ca6277f3..378dee6be 100644 --- a/web/package.json +++ b/web/package.json @@ -39,7 +39,7 @@ "@formatjs/intl-listformat": "^7.5.3", "@fortawesome/fontawesome-free": "^6.4.2", "@goauthentik/api": "^2023.10.3-1699884123", - "@lit-labs/context": "^0.4.0", + "@lit-labs/context": "^0.5.1", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", "@open-wc/lit-helpers": "^0.6.0", From b5e059dfd9ce928dd4f6a0b8ab18c9bf3a0c0b48 Mon Sep 17 00:00:00 2001 From: Jens L Date: Fri, 17 Nov 2023 00:07:21 +0100 Subject: [PATCH 35/63] root: fix API schema for kotlin (#7601) Signed-off-by: Jens Langhammer --- authentik/admin/api/system.py | 12 +++---- authentik/stages/authenticator_totp/models.py | 2 +- blueprints/schema.json | 6 ++-- schema.yml | 33 +++++++------------ .../admin-overview/cards/SystemStatusCard.ts | 8 ++--- .../AuthenticatorTOTPStageForm.ts | 8 ++--- web/xliff/de.xlf | 3 ++ web/xliff/en.xlf | 3 ++ web/xliff/es.xlf | 3 ++ web/xliff/fr.xlf | 3 ++ web/xliff/pl.xlf | 3 ++ web/xliff/pseudo-LOCALE.xlf | 3 ++ web/xliff/tr.xlf | 3 ++ web/xliff/zh-Hans.xlf | 3 ++ web/xliff/zh-Hant.xlf | 3 ++ web/xliff/zh_TW.xlf | 3 ++ 16 files changed, 60 insertions(+), 39 deletions(-) diff --git a/authentik/admin/api/system.py b/authentik/admin/api/system.py index 7e7d2d920..5a7007153 100644 --- a/authentik/admin/api/system.py +++ b/authentik/admin/api/system.py @@ -30,7 +30,7 @@ class RuntimeDict(TypedDict): uname: str -class SystemSerializer(PassiveSerializer): +class SystemInfoSerializer(PassiveSerializer): """Get system information.""" http_headers = SerializerMethodField() @@ -91,14 +91,14 @@ class SystemView(APIView): permission_classes = [HasPermission("authentik_rbac.view_system_info")] pagination_class = None filter_backends = [] - serializer_class = SystemSerializer + serializer_class = SystemInfoSerializer - @extend_schema(responses={200: SystemSerializer(many=False)}) + @extend_schema(responses={200: SystemInfoSerializer(many=False)}) def get(self, request: Request) -> Response: """Get system information.""" - return Response(SystemSerializer(request).data) + return Response(SystemInfoSerializer(request).data) - @extend_schema(responses={200: SystemSerializer(many=False)}) + @extend_schema(responses={200: SystemInfoSerializer(many=False)}) def post(self, request: Request) -> Response: """Get system information.""" - return Response(SystemSerializer(request).data) + return Response(SystemInfoSerializer(request).data) diff --git a/authentik/stages/authenticator_totp/models.py b/authentik/stages/authenticator_totp/models.py index 41bf2d2c8..e00d39d40 100644 --- a/authentik/stages/authenticator_totp/models.py +++ b/authentik/stages/authenticator_totp/models.py @@ -19,7 +19,7 @@ from authentik.stages.authenticator.oath import TOTP from authentik.stages.authenticator.util import hex_validator, random_hex -class TOTPDigits(models.IntegerChoices): +class TOTPDigits(models.TextChoices): """OTP Time Digits""" SIX = 6, _("6 digits, widely compatible") diff --git a/blueprints/schema.json b/blueprints/schema.json index 6fe11e20a..bab793b70 100644 --- a/blueprints/schema.json +++ b/blueprints/schema.json @@ -6241,10 +6241,10 @@ "title": "Friendly name" }, "digits": { - "type": "integer", + "type": "string", "enum": [ - 6, - 8 + "6", + "8" ], "title": "Digits" } diff --git a/schema.yml b/schema.yml index fd025466a..d7c59dfec 100644 --- a/schema.yml +++ b/schema.yml @@ -107,7 +107,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/System' + $ref: '#/components/schemas/SystemInfo' description: '' '400': content: @@ -133,7 +133,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/System' + $ref: '#/components/schemas/SystemInfo' description: '' '400': content: @@ -22451,10 +22451,10 @@ paths: - in: query name: digits schema: - type: integer + type: string enum: - - 6 - - 8 + - '6' + - '8' description: |- * `6` - 6 digits, widely compatible * `8` - 8 digits, not compatible with apps like Google Authenticator @@ -28794,10 +28794,7 @@ components: type: string nullable: true digits: - allOf: - - $ref: '#/components/schemas/DigitsEnum' - minimum: -2147483648 - maximum: 2147483647 + $ref: '#/components/schemas/DigitsEnum' required: - component - digits @@ -28828,10 +28825,7 @@ components: nullable: true minLength: 1 digits: - allOf: - - $ref: '#/components/schemas/DigitsEnum' - minimum: -2147483648 - maximum: 2147483647 + $ref: '#/components/schemas/DigitsEnum' required: - digits - name @@ -29920,9 +29914,9 @@ components: * `http://www.w3.org/2001/04/xmlenc#sha512` - SHA512 DigitsEnum: enum: - - 6 - - 8 - type: integer + - '6' + - '8' + type: string description: |- * `6` - 6 digits, widely compatible * `8` - 8 digits, not compatible with apps like Google Authenticator @@ -35909,10 +35903,7 @@ components: nullable: true minLength: 1 digits: - allOf: - - $ref: '#/components/schemas/DigitsEnum' - minimum: -2147483648 - maximum: 2147483647 + $ref: '#/components/schemas/DigitsEnum' PatchedAuthenticatorValidateStageRequest: type: object description: AuthenticatorValidateStage Serializer @@ -41152,7 +41143,7 @@ components: * `user_username` - Based on the username * `user_email` - Based on the User's Email. This is recommended over the UPN method. * `user_upn` - Based on the User's UPN, only works if user has a 'upn' attribute set. Use this method only if you have different UPN and Mail domains. - System: + SystemInfo: type: object description: Get system information. properties: diff --git a/web/src/admin/admin-overview/cards/SystemStatusCard.ts b/web/src/admin/admin-overview/cards/SystemStatusCard.ts index eee0bca32..7c6ac276c 100644 --- a/web/src/admin/admin-overview/cards/SystemStatusCard.ts +++ b/web/src/admin/admin-overview/cards/SystemStatusCard.ts @@ -8,10 +8,10 @@ import { msg } from "@lit/localize"; import { TemplateResult, html } from "lit"; import { customElement, state } from "lit/decorators.js"; -import { AdminApi, OutpostsApi, System } from "@goauthentik/api"; +import { AdminApi, OutpostsApi, SystemInfo } from "@goauthentik/api"; @customElement("ak-admin-status-system") -export class SystemStatusCard extends AdminStatusCard { +export class SystemStatusCard extends AdminStatusCard { now?: Date; icon = "pf-icon pf-icon-server"; @@ -19,7 +19,7 @@ export class SystemStatusCard extends AdminStatusCard { @state() statusSummary?: string; - async getPrimaryValue(): Promise { + async getPrimaryValue(): Promise { this.now = new Date(); let status = await new AdminApi(DEFAULT_CONFIG).adminSystemRetrieve(); if (status.embeddedOutpostHost === "" || !status.embeddedOutpostHost.includes("http")) { @@ -50,7 +50,7 @@ export class SystemStatusCard extends AdminStatusCard { }); } - getStatus(value: System): Promise { + getStatus(value: SystemInfo): Promise { if (value.embeddedOutpostHost === "") { this.statusSummary = msg("Warning"); return Promise.resolve({ diff --git a/web/src/admin/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts b/web/src/admin/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts index ff44f9349..aebca9872 100644 --- a/web/src/admin/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts +++ b/web/src/admin/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts @@ -89,14 +89,14 @@ export class AuthenticatorTOTPStageForm extends ModelForm + + + + + + ${msg("Pretend user exists")} + +

+ ${msg( + "When enabled, the stage will always accept the given user identifier and continue.", + )} +

+