From 21ee65420ea461d886ffe538c3f385b7f5af41f0 Mon Sep 17 00:00:00 2001 From: Ly Nguyen Date: Tue, 11 Jul 2023 11:54:11 -0700 Subject: [PATCH 01/31] Info about admin api v2 vs v3 --- website/docs/docs/dbt-cloud-apis/admin-cloud-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md b/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md index 62b13f7aeb5..06d44fcbbc9 100644 --- a/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md +++ b/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md @@ -10,7 +10,7 @@ The dbt Cloud Administrative API is enabled by default for [Team and Enterprise - Manage your dbt Cloud account - and more -Check out our dbt Cloud Admin API docs to help you access the API: +dbt Cloud currently supports two versions of the Administrative API: v2 and v3. In general, v3 is the recommended version to use, but we don't yet have all our v2 routes upgraded to v3. We're currently working on this. If you can't find what you're looking for in our v3 docs, check out the shorter list of v2 endpoints and see if that helps.
From 704403017207a9ae4d5c61b989fde5c6baa712f2 Mon Sep 17 00:00:00 2001 From: Owen <74567580+owenprough-sift@users.noreply.github.com> Date: Wed, 12 Jul 2023 09:43:06 -0400 Subject: [PATCH 02/31] Update incremental-models.md Address 2606 --- website/docs/docs/build/incremental-models.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/docs/docs/build/incremental-models.md b/website/docs/docs/build/incremental-models.md index 15b24520711..7af29e9d903 100644 --- a/website/docs/docs/build/incremental-models.md +++ b/website/docs/docs/build/incremental-models.md @@ -57,6 +57,7 @@ from raw_app_data.events {% if is_incremental() %} -- this filter will only be applied on an incremental run + -- (uses > to include records whose timestamp occurred since the last run of this model) where event_time > (select max(event_time) from {{ this }}) {% endif %} @@ -137,6 +138,7 @@ from raw_app_data.events {% if is_incremental() %} -- this filter will only be applied on an incremental run + -- (uses >= to include records arriving later on the same day as the last run of this model) where date_day >= (select max(date_day) from {{ this }}) {% endif %} From f2c0b626db4e009065620fdb8126676398045bce Mon Sep 17 00:00:00 2001 From: Grace Goheen Date: Thu, 13 Jul 2023 14:52:14 -0700 Subject: [PATCH 03/31] add initial clone updates --- website/dbt-versions.js | 6 +++++- website/docs/reference/commands/clone.md | 7 +++++++ website/docs/reference/dbt-commands.md | 2 ++ website/sidebars.js | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 website/docs/reference/commands/clone.md diff --git a/website/dbt-versions.js b/website/dbt-versions.js index 52b68d6c084..4f12f82f958 100644 --- a/website/dbt-versions.js +++ b/website/dbt-versions.js @@ -31,6 +31,10 @@ exports.versions = [ ] exports.versionedPages = [ + { + "page": "reference/commands/clone", + "firstVersion": "1.6", + }, { "page": "reference/resource-properties/deprecation_date", "firstVersion": "1.6", @@ -47,7 +51,7 @@ exports.versionedPages = [ "page": "docs/collaborate/govern/model-contracts", "firstVersion": "1.5", }, - { + { "page": "reference/commands/show", "firstVersion": "1.5", }, diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md new file mode 100644 index 00000000000..657a74c54f8 --- /dev/null +++ b/website/docs/reference/commands/clone.md @@ -0,0 +1,7 @@ +--- +title: "About dbt clone command" +sidebar_label: "clone" +id: "clone" +--- + +blah blah blah \ No newline at end of file diff --git a/website/docs/reference/dbt-commands.md b/website/docs/reference/dbt-commands.md index 116618e29e5..edeb58711eb 100644 --- a/website/docs/reference/dbt-commands.md +++ b/website/docs/reference/dbt-commands.md @@ -20,6 +20,7 @@ Select the tabs that are relevant to the your development workflow. For example, Use the following dbt commands in the [dbt Cloud IDE](/docs/cloud/dbt-cloud-ide/develop-in-the-cloud) and use the `dbt` prefix. For example, to run the `test` command, type `dbt test`. - [build](/reference/commands/build): build and test all selected resources (models, seeds, snapshots, tests) +- [clone](/reference/commands/clone): clone selected models from specified state (requires dbt 1.6 or higher) - [compile](/reference/commands/compile): compiles (but does not run) the models in a project - [deps](/reference/commands/deps): downloads dependencies for a project - [docs](/reference/commands/cmd-docs) : generates documentation for a project @@ -39,6 +40,7 @@ Use the following dbt commands in the [CLI](/docs/core/about-the-cli) and use th - [build](/reference/commands/build): build and test all selected resources (models, seeds, snapshots, tests) - [clean](/reference/commands/clean): deletes artifacts present in the dbt project +- [clone](/reference/commands/clone): clone selected models from specified state (requires dbt 1.6 or higher) - [compile](/reference/commands/compile): compiles (but does not run) the models in a project - [debug](/reference/commands/debug): debugs dbt connections and projects - [deps](/reference/commands/deps): downloads dependencies for a project diff --git a/website/sidebars.js b/website/sidebars.js index 3198d95e0f3..4aaa45ae335 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -734,6 +734,7 @@ const sidebarSettings = { items: [ "reference/commands/build", "reference/commands/clean", + "reference/commands/clone", "reference/commands/cmd-docs", "reference/commands/compile", "reference/commands/debug", From eb71a3bada7cd824cb4e93d9bbb356a439eab39f Mon Sep 17 00:00:00 2001 From: Grace Goheen Date: Thu, 13 Jul 2023 16:57:57 -0700 Subject: [PATCH 04/31] added initial clone command page --- website/docs/reference/commands/clone.md | 28 +++++++++++++++++++++++- website/docs/reference/dbt-commands.md | 2 +- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 657a74c54f8..e0e92d52bc7 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -4,4 +4,30 @@ sidebar_label: "clone" id: "clone" --- -blah blah blah \ No newline at end of file +The `dbt clone` command clones selected nodes from the specified state to the target schema(s). This command makes use of the `clone` materialization: +- If using a data warehouses that support zero-copy cloning of tables, selected models that are tables will be created as clones +- For views and warehouses that do not support zero-copy cloning, selected models will be created as simple `select * from ...` pointer views + +Note: +- The state to clone from is based on the location of nodes in the manifest provided to `--state`. +- By default, `dbt clone` will not recreate pre-existing relations in the current target. To override this, use the `--full-refresh` flag. +- You may want to specify a higher number of [threads](website/docs/docs/running-a-dbt-project/using-threads.md) to decrease execution time since individual clone statements are independent of one another. + +The `clone` command is useful for: +- blue/green deployment +- cloning current production state into development schema(s) +- handling incremental models in Slim CI dbt Cloud jobs + +```bash +# clone all of my models from specified state to my target schema(s) +dbt clone --state path/to/artifacts + +# clone one_specific_model of my models from specified state to my target schema(s) +dbt clone --select one_specific_model --state path/to/artifacts + +# clone all of my models from specified state to my target schema(s) and recreate all pre-exisiting relations in the current target +dbt clone --state path/to/artifacts --full-refresh + +# clone all of my models from specified state to my target schema(s), running up to 50 clone statements in parallel +dbt clone --state path/to/artifacts --threads 50 +``` \ No newline at end of file diff --git a/website/docs/reference/dbt-commands.md b/website/docs/reference/dbt-commands.md index edeb58711eb..1a45ea47a3d 100644 --- a/website/docs/reference/dbt-commands.md +++ b/website/docs/reference/dbt-commands.md @@ -20,7 +20,7 @@ Select the tabs that are relevant to the your development workflow. For example, Use the following dbt commands in the [dbt Cloud IDE](/docs/cloud/dbt-cloud-ide/develop-in-the-cloud) and use the `dbt` prefix. For example, to run the `test` command, type `dbt test`. - [build](/reference/commands/build): build and test all selected resources (models, seeds, snapshots, tests) -- [clone](/reference/commands/clone): clone selected models from specified state (requires dbt 1.6 or higher) +- [clone](/reference/commands/clone): clone selected nodes from specified state (requires dbt 1.6 or higher) - [compile](/reference/commands/compile): compiles (but does not run) the models in a project - [deps](/reference/commands/deps): downloads dependencies for a project - [docs](/reference/commands/cmd-docs) : generates documentation for a project From db5b2cc92dc104df79ce4bdb8d4079e669ba3ff9 Mon Sep 17 00:00:00 2001 From: Grace Goheen Date: Thu, 13 Jul 2023 17:01:45 -0700 Subject: [PATCH 05/31] update project state page --- website/docs/reference/node-selection/syntax.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/docs/reference/node-selection/syntax.md b/website/docs/reference/node-selection/syntax.md index 2e983f9d08f..7c55ee6e6b6 100644 --- a/website/docs/reference/node-selection/syntax.md +++ b/website/docs/reference/node-selection/syntax.md @@ -91,8 +91,9 @@ dbt can leverage artifacts from a prior invocation as long as their file path is - [The `state:` selector](/reference/node-selection/methods#the-state-method), whereby dbt can identify resources that are new or modified by comparing code in the current project against the state manifest. - [Deferring](/reference/node-selection/defer) to another environment, whereby dbt can identify upstream, unselected resources that don't exist in your current environment and instead "defer" their references to the environment provided by the state manifest. +- The [`dbt clone` command](website/docs/reference/commands/clone.md), whereby dbt can clone nodes based on their location in the manifest provided to the `--state` flag. -Together, these two features enable ["slim CI"](/guides/legacy/best-practices#run-only-modified-models-to-test-changes-slim-ci). We expect to add more features in future releases that can leverage artifacts passed to the `--state` flag. +Together, the `state:` selector and deferral enable ["slim CI"](/guides/legacy/best-practices#run-only-modified-models-to-test-changes-slim-ci). We expect to add more features in future releases that can leverage artifacts passed to the `--state` flag. ### Establishing state From 98ff0b09ea909f5dc80718131ca2aae3e3265953 Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Fri, 14 Jul 2023 08:44:46 -0600 Subject: [PATCH 06/31] Fix link Co-authored-by: Leona B. Campbell <3880403+runleonarun@users.noreply.github.com> --- website/docs/reference/node-selection/syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/node-selection/syntax.md b/website/docs/reference/node-selection/syntax.md index 7c55ee6e6b6..6789067aa02 100644 --- a/website/docs/reference/node-selection/syntax.md +++ b/website/docs/reference/node-selection/syntax.md @@ -91,7 +91,7 @@ dbt can leverage artifacts from a prior invocation as long as their file path is - [The `state:` selector](/reference/node-selection/methods#the-state-method), whereby dbt can identify resources that are new or modified by comparing code in the current project against the state manifest. - [Deferring](/reference/node-selection/defer) to another environment, whereby dbt can identify upstream, unselected resources that don't exist in your current environment and instead "defer" their references to the environment provided by the state manifest. -- The [`dbt clone` command](website/docs/reference/commands/clone.md), whereby dbt can clone nodes based on their location in the manifest provided to the `--state` flag. +- The [`dbt clone` command](/reference/commands/clone), whereby dbt can clone nodes based on their location in the manifest provided to the `--state` flag. Together, the `state:` selector and deferral enable ["slim CI"](/guides/legacy/best-practices#run-only-modified-models-to-test-changes-slim-ci). We expect to add more features in future releases that can leverage artifacts passed to the `--state` flag. From 184a0858316be121166629984ccb9ab06dbe1b7c Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Fri, 14 Jul 2023 08:46:25 -0600 Subject: [PATCH 07/31] Update link Co-authored-by: Leona B. Campbell <3880403+runleonarun@users.noreply.github.com> --- website/docs/reference/commands/clone.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index e0e92d52bc7..942932f63f9 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -11,7 +11,7 @@ The `dbt clone` command clones selected nodes from the specified state to the ta Note: - The state to clone from is based on the location of nodes in the manifest provided to `--state`. - By default, `dbt clone` will not recreate pre-existing relations in the current target. To override this, use the `--full-refresh` flag. -- You may want to specify a higher number of [threads](website/docs/docs/running-a-dbt-project/using-threads.md) to decrease execution time since individual clone statements are independent of one another. +- You may want to specify a higher number of [threads](/docs/running-a-dbt-project/using-threads) to decrease execution time since individual clone statements are independent of one another. The `clone` command is useful for: - blue/green deployment From 14d9c4c1f36d0087bdaa1d543b51b72efb90b628 Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Fri, 14 Jul 2023 08:48:38 -0600 Subject: [PATCH 08/31] Update explanations for zero-copy cloning (or not) Co-authored-by: Jeremy Cohen --- website/docs/reference/commands/clone.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 942932f63f9..196748deef1 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -5,8 +5,8 @@ id: "clone" --- The `dbt clone` command clones selected nodes from the specified state to the target schema(s). This command makes use of the `clone` materialization: -- If using a data warehouses that support zero-copy cloning of tables, selected models that are tables will be created as clones -- For views and warehouses that do not support zero-copy cloning, selected models will be created as simple `select * from ...` pointer views +- If your data platform supports zero-copy cloning of tables, and this model exists as a table in the other environment, dbt will create it in your environment as a clone +- Otherwise, dbt will create a simple pointer view (`select * from` the other object) Note: - The state to clone from is based on the location of nodes in the manifest provided to `--state`. From b1f734f3c57d88726b50ac5dd43adf3b302dbbf1 Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Fri, 14 Jul 2023 10:17:04 -0600 Subject: [PATCH 09/31] Link to docs for specifying / establishing state --- website/docs/reference/commands/clone.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 196748deef1..30a26f8d846 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -4,7 +4,7 @@ sidebar_label: "clone" id: "clone" --- -The `dbt clone` command clones selected nodes from the specified state to the target schema(s). This command makes use of the `clone` materialization: +The `dbt clone` command clones selected nodes from the [specified state](/reference/node-selection/syntax#establishing-state) to the target schema(s). This command makes use of the `clone` materialization: - If your data platform supports zero-copy cloning of tables, and this model exists as a table in the other environment, dbt will create it in your environment as a clone - Otherwise, dbt will create a simple pointer view (`select * from` the other object) From 3f46631d4a2d74b3e35f227b42954065fac1c74c Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Fri, 14 Jul 2023 10:17:24 -0600 Subject: [PATCH 10/31] Remove note in favor of link to docs for "establishing state" --- website/docs/reference/commands/clone.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 30a26f8d846..6a304d9050a 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -7,9 +7,6 @@ id: "clone" The `dbt clone` command clones selected nodes from the [specified state](/reference/node-selection/syntax#establishing-state) to the target schema(s). This command makes use of the `clone` materialization: - If your data platform supports zero-copy cloning of tables, and this model exists as a table in the other environment, dbt will create it in your environment as a clone - Otherwise, dbt will create a simple pointer view (`select * from` the other object) - -Note: -- The state to clone from is based on the location of nodes in the manifest provided to `--state`. - By default, `dbt clone` will not recreate pre-existing relations in the current target. To override this, use the `--full-refresh` flag. - You may want to specify a higher number of [threads](/docs/running-a-dbt-project/using-threads) to decrease execution time since individual clone statements are independent of one another. From d9bcdb7fbf68f89447e7fa05b736aec186639d26 Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Mon, 17 Jul 2023 09:48:29 -0600 Subject: [PATCH 11/31] Incorporate feedback on phrasing for blue/green continuous deployment with `dbt clone` --- website/docs/reference/commands/clone.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 6a304d9050a..6225a087252 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -11,7 +11,7 @@ The `dbt clone` command clones selected nodes from the [specified state](/refere - You may want to specify a higher number of [threads](/docs/running-a-dbt-project/using-threads) to decrease execution time since individual clone statements are independent of one another. The `clone` command is useful for: -- blue/green deployment +- blue/green continuous deployment - cloning current production state into development schema(s) - handling incremental models in Slim CI dbt Cloud jobs From a96502e6fe5a058d99e936cd9413a46ad4353c7d Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Mon, 17 Jul 2023 09:59:15 -0600 Subject: [PATCH 12/31] Incorporate feedback for delineating source and target environments --- website/docs/reference/commands/clone.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 6225a087252..150d3b12e62 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -5,8 +5,8 @@ id: "clone" --- The `dbt clone` command clones selected nodes from the [specified state](/reference/node-selection/syntax#establishing-state) to the target schema(s). This command makes use of the `clone` materialization: -- If your data platform supports zero-copy cloning of tables, and this model exists as a table in the other environment, dbt will create it in your environment as a clone -- Otherwise, dbt will create a simple pointer view (`select * from` the other object) +- If your data platform supports zero-copy cloning of tables, and this model exists as a table in the source environment, dbt will create it in your target environment as a clone +- Otherwise, dbt will create a simple pointer view (`select * from` the source object) - By default, `dbt clone` will not recreate pre-existing relations in the current target. To override this, use the `--full-refresh` flag. - You may want to specify a higher number of [threads](/docs/running-a-dbt-project/using-threads) to decrease execution time since individual clone statements are independent of one another. From 3aebfd3a0f6f17b03d1d912d25a818df8be1f7e1 Mon Sep 17 00:00:00 2001 From: Ly Nguyen <107218380+nghi-ly@users.noreply.github.com> Date: Tue, 18 Jul 2023 09:56:35 -0700 Subject: [PATCH 13/31] Update website/docs/docs/dbt-cloud-apis/admin-cloud-api.md Co-authored-by: Leona B. Campbell <3880403+runleonarun@users.noreply.github.com> --- website/docs/docs/dbt-cloud-apis/admin-cloud-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md b/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md index 06d44fcbbc9..8a5712f40df 100644 --- a/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md +++ b/website/docs/docs/dbt-cloud-apis/admin-cloud-api.md @@ -10,7 +10,7 @@ The dbt Cloud Administrative API is enabled by default for [Team and Enterprise - Manage your dbt Cloud account - and more -dbt Cloud currently supports two versions of the Administrative API: v2 and v3. In general, v3 is the recommended version to use, but we don't yet have all our v2 routes upgraded to v3. We're currently working on this. If you can't find what you're looking for in our v3 docs, check out the shorter list of v2 endpoints and see if that helps. +dbt Cloud currently supports two versions of the Administrative API: v2 and v3. In general, v3 is the recommended version to use, but we don't yet have all our v2 routes upgraded to v3. We're currently working on this. If you can't find something in our v3 docs, check out the shorter list of v2 endpoints because you might find it there.
From 487dd053943e8050720083219df9f166157e51da Mon Sep 17 00:00:00 2001 From: Ajay Thomas Date: Tue, 18 Jul 2023 13:00:29 -0400 Subject: [PATCH 14/31] New screenshot for gsuite migration to Auth0 --- .../set-up-sso-google-workspace.md | 2 +- .../access-control/google-enable.png | Bin 118831 -> 119283 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md b/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md index 1cfa9a49286..8d52096d4bf 100644 --- a/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md +++ b/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md @@ -49,7 +49,7 @@ Client Secret for use in dbt Cloud. | **Application type** | internal | required | | **Application name** | dbt Cloud | required | | **Application logo** | Download the logo here | optional | -| **Authorized domains** | `getdbt.com` | If deploying into a VPC, use the domain for your deployment | +| **Authorized domains** | `getdbt.com` | If you are in EMEA or AU multi-tenant, use `dbt.com`. If deploying into a VPC, use the domain for your deployment | | **Scopes** | `email, profile, openid` | The default scopes are sufficient | diff --git a/website/static/img/docs/dbt-cloud/access-control/google-enable.png b/website/static/img/docs/dbt-cloud/access-control/google-enable.png index 9de449b7944c2e13c804ed96a9612cdce85accde..f87858ff7519173bcf0f15f98433e22e084915c8 100644 GIT binary patch literal 119283 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

$_A`rK#c=A+r5FbLjX1|>x?fFZ+nzg5%zL766 z5@~#(8~ZWADDJLy>$cyV1;aFD~kQ0M?-g?aZX<-ni2=7WXXdy=cFX=}xlOcl4)k3VJ#g zrUmk$40V`9WB?s=zwJnaC@JsuF##j`d^9EsH8r9?p(@c}$uCWagp5PMp)&XpGN%Bk z&`J|(ls!#-qpcT2d`DIGgmLho_sf8M!BF(&mdMK1xG$<%chSeo+sJ2P2$?V&QllH6 zNk}m^$_pEo%7p~;`uD8_w_RHl^+T(q+v7=I>)-%}k&W#% z2V0?8P|Up45=-W0!V+*(g(s*f^OI=1(-IH4ba2^4n&KpnUOgGQ=yqSY=bvQb>Cg_+0)kmbMW z9QV`mH=#FNi}{_5^)F&x+VkL=(N)cmVAs^X&#E6)s~B4kjNJasy2~rRP(?+a9^U(* zL1*2MY?lP)$tuM{?5c`W`__a?2t-RW%?jKZbxPhEl|+_aE1H(0TTw2)h~<*uBI5O< zsCEr5c28rlQ}M-uGp!8tHH{hzIbzWV90kp)utsvl7jC)Vct(OwjgBxQscSy>{V;a1 zzQl~gA`*8cAWtY2Zx2C#YA6eBLgd0rCOJT&WV_&F?;pY*Cu9Y@ruP%9$+4P=5a58T z)w{hL6srNu4-Z3U_xq8lG5C$X%G@LF(?C}jD7}rqUX{iKeHg>M4HEKvu571k(szt9 zVl3~DX00C+(ep-_3B2hqNZkQ#)-F+FUz+>=6d!!M-uG6+dw!ik7hLWx^A*~IXSP3bgmGK; zWL`LQ<-SP$4G)RFpiqVB+L{e8uqXo)tRG}lw$89+4y=*5=l5n*x^B_8j;Jfh-g^K=zg0SsS$(AK`Dub`-sFIqP~_>^um{<|H@w2nTP)WCFwgU4B;?IYz+}$gkjxWfIEkDEPX8`x<`g6 zrH8hoULc@?fL3zbEXFfN(A6-HhN(t5V?T;S!wUJ(h!~lk!21&sB29{CBxChyk`{!Z zsCFLN%808$Y9zN9IpeI7@B~7(xxSaLdixEIZCKSb2o^26;Tkkje;x-`L54Ly;IlKCGa~3^-9m@zY5I(PMSVOXQufPX7$Gond|*2c*ppoihq9BD z@ko;uyMUx-AQgrHSl%i%k;(Q^xB$I{RO2Gb{d6>dXNQW6u#QILs5#&Y4tX2 z6E7Gc7C;d^i?eX52HH+y%q0222J)8neJ7NcxM#aA$2o7y1kDT^+6G(CkIu%uR_nei zt7X1stG7M5>};{3_%}?DN+YZcdU^mLD?v3es+y~-O~Ib1r8n(U`~3u)L4fhTsu}dN zBB&f{fD`QqYE48@manUi-&X1?d(BSEEt*ha5Oi2Pv1{~Cl&-|vK0n3H0dAaeuQf;> zsLhHJmw^uCR^)OQEr5+n%D|sE(oe0l3>cC9BlB|8^KR7l<%R^N9o1d`hY86B*%gN+ zEw0mRfy*{>T-!feCqPqz;yfaPPnmu0XrE}@%9IbSJz~q{rl|_jgtbaaBozNsIIM(> zpw4t5Pe!PGaCT5DQln9**H^O0n^m}_RH9pPm(=MZ;XjOft4xTHxyZeJggmU;(qs-T zWUkTr)1Bb)5av^K28g(4{tSgqpsgeh39to$f&hv|E?I0M?y2}j$<}hjd*GMD*hEen zW6={y%v^|tpo@`-{$L|l*)XH!P%M$hSQzYa5Hmv5D_XQAyB=02X_y#7UMcm|;wo-p zo{Zzte{)9E#N)=L#zxkMBhgK$;buXFDo?sQ8gK%vm)AZf8oZci{@jDcv6;|WcuZo8 zyCe=}{_O|wAKM^xtWkv9pAT=|TLPZmt}CtIf8{Qkj`HSCgPd)L3*+`w11+&BRvmI6 zQl~#iU8sZNoaSijrwed1rU5DPj^P2MJ-t?T5vT-E0RlCen8w~NzjkdcBgx$-8m5`L z0;APKUdq#JjtUEf{y$=EvyW9u;PNQ2uuCe{cu@A`m|`9Y_5-?*^-% zDjPXBh2x9b{^w=zom0XX`I_DJsmmc(dv40n2&G$muhlPjvQ>lyZAV=Wh+dUuZYVYuBi(;*lB*k~|5Wlhm_1+wF#sI|o@>H5av_S)oqr~9L z{P6%mw}V545A5_pS0&SQfrF#IFU)Wn>*3Rlymh>W6rE}g*+Ioy-B+4Y>;I@(hyPwl z8UeJhGmIPz+5g(R?@W(Ar1UXE@8ZJd{r?9d^C|9y4Z4mjF{uCxOX#57$FtyQ6mc!p z|NEH#fp@l;;gx-vFPHvx2>+9h`Y)^r2Q&10^nQ&5`+v&p-vSY}f*xWdB%e~fT2DOu z8U2r96%TJc|F2T{zEFHPa?y9kFZ|E%`tVf?&nD`>kxpckR|aumu(8!ul&FR$Q2sB- z^miwj2+<3ohM`Cz_s_`!neacRr&-GG*Gm&=v%6ilKF6tMUeYFlyVW)sS`G?Aip#{) z&;jL}K4pCL@& z`YD7_J5N!Y;ouBpGu-^KB)!*v6lb{>5^l5)gtR|@h-uv*r(fTGN1E8*-$gQzmkRrP zd+12u@ZYdpjN`v|DUkzlGGU6nXieao+_}hoDDWoF`{Tu7v&O;o zO;mXO>8nr31T5j}1)V-)<(Q;nvk8=Q^IOO87Eef@-49w*J9saT<1C8HkSDjgQPc?q2+BI4xP4lzX@!Eecl1>|b#muUS_y4)#4~P~h3-d}Q!)qJQI>n~A z<`3^JJFeF0iv%vd_H5Z|ed{}XB?n9Cz8njS^ia9?aE!%X$z+j@r+m77fLMBPg{A0g zg5Et)%3DTGP&)P&L`&BeXtsQ?DmE>i(|xkRS@mfe`BCI5BRJW(IJ!x@e7$gMhe?t~ zP`;Pc`YHSi&+Ow{=v1$AU5#<+`_BygOWQyQq`wDu2#X;!V$2FMk+E5#y}4vJE$rA! zOGEYA>@4^^sCppxkM?UOf6mqIH&Mf zpE*G|N4h&i9DeJXOghb~#*e;_meazXJb;tHN9wf21^!w7k{F-0bixUNY`bBdcHjZ# zN(kT2NZZR3)`Ia2YH_>1THy&KQVS~*jijU}HggZdDdnXwwOs+JfG^}?M!3Yx~|d(&WFHd z=F2>eK8rkPq(sp0zD^rJmJ?E45G-&UgHfJG@jlFVlf>Kbga4%-xoAKe*D6SbqaYXz z=jHvOa~1!}xoOUVRotA?lHE|R%3(aE8it*0I#tIGZy~e>-%7Y24yOp4z80VAYCT3a zP#`4b{S4z3vE-{16;(ZI8p8s^)n9dY0t%HX3<3VU-y3 zWXq{wBkBHX0S~KRn(I984>0fQwl**~i9HyG{j(^%W zRmInr_IEFuo~B&jz26fhCNm6wc@t3TyyKwkEkcCUt_e6a)b1|?f6%H&ZQ0J|tWOqqDzJsQOY|mQ&0YTbTvrgx zlSg6Bku+b=+VFlL>t~~VQet%M<&KbsklWGSpb$Y_?>2$=SarS1T$R0Jj&8k+8H}s| z^h77CZeMSaS0|m{ap_UHel;u@M2HDt<>@fWf82ZJIrZMWzRs!!8NH?e$m`c4E7@$( zf9qnulrp(uSR4JUHO=ZfFSS~Czn}AZ!X zjFAGDPj*x}J8`kTg_E{)KPFHE`2)Q6*gBskzZX~*7KVTKJJHr{YM-&Sz25M7pTFj# zB}bXps=>taX+5Ix`ZnI}^yyOo9`cgxn6A#TtN3lu)|cNx)+rCrRkt#)fX6aQ=Rm(X zkazr?)CaBHvNbxZo6FWEWfuK;1zWt+yUdA9CrOrxI~2?luw(t{ut>DuvI2ONfjd#j zCR*_G-VamPrgN-o^fYzG8*$qa-rlIDH(-)KK;&J>EXMxZZ7}vC$)D%}c<1e_z3VQ2 zl+&XkRSvTp5bs9OQfcS;4ijVWgEsK2`g$V)wg#1cp65?y^$M>0r>><2c~)93Mu>Ip zKRs7{@Y0vuFboZa?^T5${cS!v5g11vlkg(#X;z<=Tx9tYfJkNy7n&mGFX6NqfrWwh z@NEiCl95x<4?T?Gw=HeqXrJUYW@x3-{~|*}DWv%FI0A=IRb61o4K`Q9ScpgVG?;X` zT&$3RLz}9nGT$<8?C~JAg!SB0OL2uf&dtnrQ;`CV2=`}{9Akx~ z!d2ee!$161D_%KUg=cOKfmQsTzakU;4Na2B*r}x`oH`55R;v+yT-j;Wf2SzZ`t243 zqsDxJ>x96T!`Cr@jMd~f_)?eaXH;;_(=KlHaW4!pRo*&EVoU$2GQxLuR> z%F>vPTJ!H@pDO(M5fQsi2z$QO?sTzsR{nm_qqHca8(yaR^n{Y++xw_VLn9@3`vgmB z(H@Siu7A!29&}WB*y)P(2s*|F_Bb@oi+ru<6GI4V)Gk%F4tX7?kAwpV+|a3xn&&oO z8NoX;)>`-A6Ah_2i$p{jS$Kr5ipbHEy#fTc`Gr&nvY9T9M|xnywl&8Q|Lrr%Zh9Zd zftc$zs#DS!dhIrqMK9^Swh8D4dvzbF?xu53px0Fhs?B5D`kr+8m#uvq*sJr6{<%ku z?oKss$W~F9+})tZt}laa$UIe!I07IVFu$FZs#oKBOprMs8zp1Z3V`kQTVZs zaC33(M4j4=IyOt|Oh_|$9CP`f20QF!D-$l=LJlO^zq&>OvgC{bRabM1Qvec~Yyk`N z4@L3V;DSPp>fqhXIV`u}_P3Js z%?p?quh_ou23EE&U_!n~7&m9nwuEzN($8dF=km=!+aH;+HL??Ke@$f%j`R|5-S-7; zz3#@%t;3k`!9G6jc5PfIl~9?j88FAbIWAO{0ojESLn(IZLV;Ke)JlIYj#06i_+M2l z*XkU$%&8k6X`b1U9@50o-G2VraS87!;2QG9cw5eq2h!@mxt&(62ma{D9z>-)*wnaQ-sgwvOT*M=}LSR_ys8){fY6OJ= zs_#-|UYWA`G@oMx!#j&noOkQVETQ&Ds=VKpTxdVfU9$%f=S9f&3s|te0hlPHELSi6 zglF@rAm`x0lmQA1)h~3R3#cXf-Es4mm7uP#u`FzSR?G+r=y%fPv7`-AHd_|8qjK1a z)bqV$rpYn5(r*`C>`8gwHJUn?A0REViI8&naY)VS<4wIJVR-Dxf0wE$Y$0LnOl*sI zb6CGf^kb@;P;BkAdHzEpAQEu|sb+ax`Z2fb)vkE+xF`CkB(R=6$O<7^;=EGlY|%uh zwAf^$RZoqFts^!su!$LxNSP_U<^d-Rk9GGBx_MvJh>cmB7XUG8qcYY^8(`hXCce0O zrM2oE=D7*!=gaPTo4p43YV!MzmHRyNN;RXQeXhUwt5-i_(J?WPGr%i!^L9O8=jePI z{kAs3Hg@po3Aj|uX*-`Qx=1?%O6q>L(5=&-y8|?U9~8MQV}DK9kGmKed``XP46<%q zP)SE>XbUGMt1E4H?H(q=XlR1jEDIdBuP*3(3z3%f2R-$zxMlCr`Zh>}36SiZx&b5C zifxgW`n9S=B0NsNRO!D>w6JUli}1FClO?<=1z2=jcHizBzKbMJh-rrUpX@~W)E^7p z+Op?AzwM-1dmPfNqdk-Q7(lTTT6=fu8@GgP_x)V_Syi|Vh;8k>C50TvZDd`nZiFrx zGxWkSEYY&YH5KquHuk-=toD8o-qzo#fqC4ed~$;99w@Vn>{vE#rd$J&8shRYr~veB zTcZ*I8cGHv&(>bWx#SoGZOlpEKP2adSr0`7`Cq0XUQ~Q%+sHbVt zUBUH23_S}oV584&6ussZ-)FEgw^r^Q#M%Qj@&)|wn8;S5A&ow>9>2_ckGJhy<-at& zVL(+(H_^C-71S_vf;Be=^qL%ibPK+YJgXX>J+U>VwbU9i>>-7Dutd2N7N*1Otkgcm zk|mCBMq+LK;@(=n3bFby2g!LgsAld74MRDBOus=6c$Uf29pZ2EOOKP$9zV1vQK8T| z+^mE|&%!;n?MNYR#ntGuOpn=9D)+jQYwL$lk;qS;OGA4^J867R?zX6mfh~Z@Wr&He zk<4~)0=QcCaAoHa_xmHBaW|o@v-|~ms1p}*O}8osTLqo#TA%8aic8)bd6md^COLA1 znATo%a#!-iN^u%Ta!%ia3^Y>3Z?9Wvays877y~;l%iEoH4K%brVhcazwHB=^J}HOs zV`ZB6Mo{`bJw*+Zj9m1&_28SW0*NC%?&DLhB5SS+KSs(J&lNh8>sAdC@KU5gzmQ~v zQ%h6WWALPDmk&Ml47U-kq0#|BA5iLAAjd&is;@s$nif>+vzr}mjbj-ae5;byspWN% zmmc8%$&C}N$?Za%n0%#Id6-@# z_GE32R?0{8BiZOY=u8&%vd;t;5ry;&Y4hPS?gkegGfT0l^70r?&dOw?IF>FJ8|yow z^&5p_GMag@{}Z3!!eOzUqT!Z*vk^){p~@H)<)a}sE=g%D1|r$F9c%riKVmR#I$;I# zF|DiT<^wxus+j5og)au5b6HnS ze}0T0i~n!dPwgQ^4-q-^i0q8{MlHfJ15JoKYu;;jA59Z=_pE2*$czC;X`Fh>iW6qK zzd=9czgcRpCjq7uC>L|~k+?MJ8X}b6JnXWp{QOAp($yNc;3WLMr7yBEAN&P-Cg!28 zSGV@MDKGgw!tZ)qmVsms7|X=dE;FQC1vk}!)wK!NuCUnweQC4qET^qJ(a9*lpP5Rx z1pNrtZ3AiBqE=bkcdH7PVA0MIu|XptJm6?*dVU~nDPz&pUe z!znMBHiGUWi%8*E$h6EhTE?h)M1Dz2+O9>Z^M&OKBLhL6on0UR<*3uh%h`ywzD^qG8PV zYwuPZhU{||d_85LKybqyy-a0?*>Ei?p|;O=e#f=h4T*}q8jbZ3V z|E6V5+X(nM@%3vGZ99TSltsH?bEA+;7GMyc?v zbD^}#b0Yx2*Lz3w_A6#NdUZ5hOh3NBpIZlEyI_obS;tF}RnbO~pZj$4+Q2gg-xDg!x+nePW<{Jl&$Doz zy@Nfljrz%YoBwYQ6*N8SF36P*LAce2D28u9s5>Of++gndI_i*YX5jNZSPltN)5O|k zk7(SDj~=A=40^$s+yQ#QP}jgH=pE*0D{>J|-y`R1^qE%dgYp-8e2R^C4K+f2SXw7d zPq3G1cHSvj*Kb3l8UVr%M`SC8*_9$dvyTR4Is#uZLIrxteL06XTX$)r073`U?n-63=kR7B^Y&%U^}f0~yY;DLRv=A3Jd)b!ug% ztPgO(%p2GT4tSR5$qggJTN5k7bd11RGX#?R4G^Ze@d)YmbQS42w-cz3xABbe^`-fd zx1p{=cGCg@UJrJ8+8tWc8F20wUfEwKzYomw`!eyww)34lJmn@A01pFM0m~o>$&DAm zOtQAjq`lk73i}&f{vAVzPoYSYgid=tEU?JrJ&!&!C~!7DB5txZUlK2ESAxF^Xj9r* zU-t^OV4*YUCk$uOV_q*hsc|%f37tB(I=Howur*!(62+^Z=dc~Z%eLmPFcG!|Ti&-D zN1J>VdEhN8RsEqI&Lq`Ka3k!|ipd5jY0prEvFvFUE&(8xV10S?d-Bfx=0INSd-rna z^#{t#bwR<$(XHMglUht+;%RIcnLNsayYH?hqgE5>uKeR`n0mD#I^zxAo79u@oLr{p z%E+wK%t7^)q#p$63ZV-L#tfq$Mu0er)p?F558F~0a@p1NxsD}8;tjblMO)EBn;3Y1 z#5Wq80J{Bk;#Y^PlAL**P*XiRmu^|sS(UxNX+E|c+PZ{C#dP6obhOs)&>Zs;NNjR! zY-|$Z+KY!m6#l(Lo4P`cMAK{Vu{dRnAF2*7+@vfn_bE-C56E2h*@7+YpwgDk=pP){ zVZPaYb5)EmlRYRlAeQbD2kFIEr-LbHnl2*ceR9n$dPEf0E=ePxk^5E+oeM9HVbW<4gXcj9jhv6mjVD8kJ` zaca5MU1tw671kK@M)_e22Ij+4QNyv}Jj14QrV*v-v66v2G+ELR_R*VLjECb5amDNn_>#Zs(>=n^N9hDxC$ZnW zTDT@OmR+aB4s3FKe-P0*rzGcdlxt!1O)mi$O1*#?%a1!hs*hXK1;4`>W4vLP&$u{( zYPC5Lcy`6?aye=@p1qk~WB9`JCTnLp_x19|mA~iGag)zW*?St5Y zSGzy{1hMU3uXkG0uRNl&>&N{;vqfwmcDTI?qRKA`s`b%fuz6!SnJ_7|u?h3J88u;k zV~sXpJ3!gui^1ER0y}T#d1(0hIrGS z4}uVfu1255P?iXODCX4{$)U}otm7Xc4aY#6&_dcPKLC?IpM!T#5Jwvd7**>$gq2&I81fefMaq@MT#!aWAO5`_MzBcXjv)fWq2pmZ2F(mvr2EG(z zu9ok#;aUeHGeF;CKs9?p%T%&m?s6$#89Xa&-5OTKCMzd$NrTI>Q@!g!2=2=y4cu?g zZP~IZ;yc>!mIy0@M^)<;%PEQIIx{?kmdV=fSqs{+V!RIZnz!kl%0)w(fcSHzmAgdK zN3#_{7wVcY@NY_5PEXf&29)XN1xhN`(}L$65R}Q7JAm0l7)4r`%^8k(#(>@qn9xEs z8Q2Z?wYbDj2YqhPz7T4{G`oPAX^XZlGl@^e0yOteT>dQ|2lXSM;s;=@%dm#Q>Mjaf zOvDZ+)Htqzx7wB!5!{5>*+%vLJAde9NJ9Bp34`*=(La0-=zHIrm*tlO%rmy^ad2Ij zobQlnQiA3*->onIu9Vh?=)EoQ#3|lUnfTW){-ZHKE=c(qqFzPu=c@B}#_C_0M!%>m zI3y^QMZ#(FKhp*O*h!KY>JLTrMg5Xv_}8ubXM;i#8cqh+$xQISZ;lXz{36SEK)<-~Nquj*@^LVY|`@Dm?SQ6W2(up-_O3?eL#r8vnUp1n;jS zgj34=x3ove2xwL#l8+(#f4fTCzrY3{G-c(#bm-dySp8qGQaJPo1BL@p|E-g+ zp{hEceby5~|1~51=YAx>Uq>L8i4*|8-{Z|4iZk>=D99o(b^hAlLCp;>%f;-u7IqrSaD8nsMJ~I|U^r zWf?m$R6{Z9ql7cHt295gXYWs?vWrB!9aDpUjINwBy>1#cH?Dg>I^1 ziDxTxg({gTZ)ns>gik^o%uXKstE?Yi4aBh}Yddx};^iBZApN?naF{ptcXWx(wuRLB z$TKc*h~{hBXwJqOX;w?{p@<4!d`PHc-UvWOoc7HG{@E| z{j^*s_g?l+ctyg#za>%mGGH4ib1T5o_{rx7iv-RmXuwlI46U+sQ2|+L2lcJUjQLbs zaL7A0)u6Z3bW>E}D93xh%MBW_!YC?^XuN>`95l_-9;Z^K$ZdeLN3Z=}xh>5cv)z@1_CGoN7=WUOTD&o^8F_}1|(R3;o>q4j^TuKT! zM={assZnlsSc@XL*4kJ)l^UwGCv_f!8G_58`+mqvSD$wMyYllQE4i z?uXN5KY8%iOtMP0c!r*)p_*Hf9GB0JLgmD#oQrxz{hc&(?&xKIgrh*OI3XdFWaH-4 z-ePb%x*5yeAwQnlq5TYz1)k67`s{SRL50iD@R?CbU98=Ha2Sj06yZlry;_6Ttfl;H zb{KtQhbUAb}n<&Bd4-d38YJw zE%ez;9^S|hglAcl(KH~Nl@y6?sW`bF0B;||OU(~lHddEa}4e?As}mdAuTP+^dRP#!I88+Y96yN|3+-Rh5=w{E+r=ektW| zJb*W9*SzDZ&QG#b_eK# z;~C<21RlxCF98&-?))x_T4$FRHX=LicfxAa8f2Fe*8ULVo#67ePnNmJQEZ3bGg$-N ze#v+Ke4{c`q*6t-$>V$y1Ld&dWe8@YCvztS`~{|+c7Bgog9hwPAg0cz`aSX ztb#*LsDrc*p=f$=`eC80_$wZv4r5TYHp%U5hGRzO=?$&@X~ag}Zx-i@4uu-6K^|ps zgS4t;%=T>$;M^>uB8mJA z_)tAoMKb((rP(FG$~vbl&=D2>F5G6h;m0UKyfBqw7#Dov60X%xMvelajls)3G;TFI zb03Hu;Lo|IV?t>CCOaGNd%Zzt7NxyJa6svchG`JX9c<$5j46x$vh98QX4SXJ%R=;@ z^1lH-$;3YzNz;|w?+Acc&~RTo@GR5-gNN_ztedDdINJ<%XyRq%2fV6|7Gv+SafDnL zn{(1qpnTmvr-53g_CvW)`eybrAw zUC=cY+1k%lHF({VJXjxe5(N%r%x9_^1uNgm3&GEQ2co>iqn&0;`MO-A(e|ugSEX)c z1<4DJ&mU?&FK;h7w*BNsnQ(~RH<#PZLP!<=>Je3KJh9qy`iAw;3T8db4l1c`YlQV1 z4$h_+>8sDIxa}Enq!^G_%TK;h0aqI-oGw{Wd|K>pm|%I$H7 z$t#R#WerlVTASBiyWE906ZvaPadl5S98k3d3|X}}nZr2H8sU-Z6kT_0t@We0C4%+@2?5*NcZ-)w=`ZU- z-8t(JS{}Wvn!{tEq_;&W{%6)WLycO=GULHq7BjI$ z7g_}jKAafZSDMRC!7-{R2eb5GtZkh}i_*sD#`6Yai-h0sCNoZeCXpB4dt)78b_=%D zrrN7@EN4rh@>Q*G=`?9d0fz?n8y4Rki&e{=G~^ciK~J8dK4(Ro-OLwLhD6PSv!zRP zdO6HY7DxHBrjqkz-46D9pzv=H*RfDs1m5e1Vjs^R>cFSmIeOiNvG%eU1|7W`{&Lkl z76O@@QPer~=^t7Q2lHo%x~hBcIacXm*YMunp{IVd$;=gNKCxL5QuM6Hy+dAR`JG_< z-5u#8_BPa&+HuNvzaLSf6Ko`S6x{c_ZXaI@eBP_Y zkW8;uu0dry%02g#iP*fEq?PNI`psg|D_WDoW+?ho-%6KHpc~QRx7h1GQ;Hpn)FdrMVY2FjH2aVc^!ne7v#EeyC)scr>PY}N8#tLx1@^EKcmJb9S`oo zu9jTmK#)3vufaR?m$k~(naRGUy1}|TIE2m7o;lCy1>(v~C7(v(TABT(vhIn$_=YDpT01mRy*e1^6_lk-E9^&?$$*27-tN_ZUEwFC}yxV zZa6HM$*SqcL+0a%)?ZzIMfr9ye2HueUn~?*@lGR*n0etu#3;#eN(l%xBxM zkoRSR_r;vfQ??NzF6Xp6X_=u`Ys!h6b1ja%BDn4tWUC)kNacnZ^XH93(hF0*&9&T&0U^8UI26DubY@#MYGum0;eZs9f5M z7d|TA4aSzKPb)dT^nbwSW|ChsTBLF9<}!1QK*a+}m{l3iw_R8eo$p#FpT{_|Y+{%B z0zH$7va-@)T@hw1=Y=t?5kz1d@ET;xM5;S~tyg3M?8ni^JbeomP;2Jc+tSUCNG33+OudJ^`BV}sFP1j90D)>4ijtxG23)#a);&Fu#X zhFotE-(`W>;9gY#b3wc#(`|YZYe{}S30((wy=5LSHqEOn#0`0a5DqaVU*cLt#V#jX+%D*g%)Px(7U4e6khBX))Vx! zC|qE$U>aP!4;!8u+HMsa@^i}k!|EysL3Yz&Zf)8Wd8fX9g8s=XozJPp?UPW#eTFgB zxv?Bi_2v;Xz0G1l8LKDQ>N3S2Vg7vPpr4mKumk>mU|ZBpAn~{HoBTrSZ$oumiifib89_u~T#}Dug=>rCqz|^J0SS4;n_*7-^ir zqJ;g6m@9S!>7;9pAF{6GC07LH1^EfYoVp~FLi-+t5C;|$Gl2O-j`t{nN@t^gHIIGpzy;YxHmCdsNB(Kp1TxMm|n-j?m*rmUbhL@Q3Che(Gi)Wv#ma*jf z#w7I@t{4b{GpLpHS7f3+6i!@XLa6WEmb?OwW#vy6JKb5R0HM?qPSTbjZ>V< zosBjxb|&v~O;Poil?o(sWL>W8B-cM>-Xk&}&G+Ki2V$FHZ#a6Rg8Ih%CPa*`XVY_? zf-z2-jBMM9s~m>7&8Id+T=05g2MhxSuGTzbI4s+W_9jN_h?+>MGDwc-7B*a84Ok*B8thXRemQ zBQbB+O^pgNvJ&@v_5-wf`+-!OTb>$g2Iao+aR@O8p->&s?qClPXI8KmGGJJPI&eX1 zKq_i`)#C4lu4{<0Cm(%T+!k3${tEeK5(@O42*8}$H(E74_ID3-tpK%y*}E(nTwKwF zN6IbRoS%&@Fc+c{G419J-wW{^8JxDR1jl}4AyYWYxxOV9i2BE0&J?XF4^kLevzY?g4|18_?8tFPXRj$Gyr*LQk( z)sUnxw)NU|+i2B@x%zkuw5)wm_xO=iZfVt6P7g<;ewO8bQe;1m=o+f!7_p~YW~}Pt z=&yc9;9v@S1$J%w!dTy6x3$kl((vSdG1>yW+1Pf&d+O~zTAqRZ_2mEY>cNMp)XZse zJdlD@L#mirMy;R~ z4zqqR69r=c$7igqQk6l!nNki?k5f!qOW|!^G%n0YDx^4Y;WE_MP?H}>_Z7j#QhjB& zof#07)E+*wlgeFgse|}QvJPFV)wy-48-c4@^>H5(QnjNw&{D$TRsLm1j`IuBIS1;7 zXMwN#I#{vG52@ziYsGKdsH74?Ee&P$U)0KV=G-!Yl^Y>4xFe3$eVp?>r%#K4hCQV7 zPS~@1BkNcQ)ek976;%|Xy8jVTRih2>74!c06t3mZ6)@?wdhFKr?l21u z>}&90A9I?|OBq*X*NQ&_&w%N2f-kCeAL_WQmtC)FjBGtnz}jbhI-N(`BhgDB*X8YM z`??*5(<;OE*m|*kUl@lVT~6J4PhZrJ#f(-=N4z6T9EIMlyU4nDSXT5b0|vo-%92+{ zJnQIoonM-b>A1-Fbmc97i=;QG@fdjy1N#V3sgmZ#Z!wddl2&HTa z$RmaW-#n-CnD(5Vi%WV@Xmj+|ZZI$Nw0uiZk*u+z2Ug4*K=oI)lE%5zp%?hG*=ejV zrqp00tHVKNRe|@p?)NmRjFK=H<8D^un52u#oeKZxdNSH z4B4^{;u9Lopa|F@HLXIW-04`zdMR9ZK9#*mw1F7%Kw!qeqIjh#a>G&;j}Uf#F{Wyv zFy7;mF`wU197CDZ#G%)?=DN9G&(9kz1CdAMZ7=EPI#M{BGY;AusAsTiBk?lY-8`E| zg+4ieYGx2HdjQS+{(AJ(oZz6L8cl8yfvm--N>jdbjteTyn&XX@88&b91=4HOO=_pB zsu4KGxi3lZe?YVVA%sTZm$w-0g1w?RKaq`~?UuHkr#xzf&Ae4e<wExVH}C&cWtBYhp>JE6m|iEu|pJ*{_)fOogfe!R?+z>)4TEJ;MvEcb4CjH zRRg8QBw9brRTau$+zA#_uPW0Kve@1@Sx6)(TX zLMIS|x861Q=(rM3T#gjWL=HNKuYc>B3_M)bZ`_pEaeW!eCLHo;hpg&iv9i#;MiIz@ zSnnHv5%rylS+^Av#QXdlU^X=t2tZu3w6Lf6%qmr;pBsV+e+EO_O8Uv;S(iwbA%`W& zgNXK(d^(##3$S%jcmCNj(s1zGDd{%K+XDLJ9zs$x*SIeD^97TUwnG$zYou!BF~9J3 zrQE1*8$!cA9sVBD#{zeXVzH|$i%7hdomMSaJ0xkO&#$}QPmEa;XELWdW{NY?WW8V*ql$?$IIu8|4^0xGS;B!0r% z!u+N3?-h~+svUath~oaD`gmR8Hnkhw=!Fe&PG7wx=8_CdViCJ(OAV7A#?BjN8luOT z(|Uyl*dJvyzOQh&*82sGqaBMBsMW6mEGH%zcM}w0;t^)@=)LxfY(EIP5SU9Vb(2FUep35drC|dS-+A(t7;KPA-*-ZAv6-b; zWfv`D^qYD-Jr+KH#b1aN%}JL_qcUT^lwSeqDe{qA4D-9$*LxqGQzw}T^IqRt=Negh zbWhm2YaUX81Sj&t{yyDXK2AYi=LyGlm_${UChy6SMD(YBLH z@u=!me``N4z!;mX;B9YRZ4B+N8)p!%Qb?$jvTCVJS*^cHQ^z@*9npgHlVdC?lh(O1 z!rG801E@vy-(fH$%sgV=?F~$``{wNJV~CcHZ=aQU78_Z-}{g21~YfN>KpUx zeZ%~eP>sI2w9!(2?VJfjZ$Xew;beX`xq}%y|CbAf35!TFN4Z+R&NtoK)`v2-)#Ii> zAf zYk^wSW6*S4@vXRLEwP9qtzKQs$re1|!3^4=YuuNCqWwcI7d=Sl&28kvseNn>vkyDH z?TT9VTcxjwU~sq*!{2(r;2e zAi?6I2ZJ+sCVSQTG7S7&VjQi|M z8R!od5l0+;Ydn`>u({sl`jbxbo|o&`DZ>uN6SPgRQH}HMhlzJ~mDaGK4mK_x7T8u>M=vWMrah{RG0YEPOyzeF&l^dhZMRL*szsyMm24P;)Kf~%3}tnA%UAH0C0F(- zZ0|CZrDdTGyi9)@c9$W>Gs1CIfYf=jw@!MgtJV57Quf&~?F#Erl)uXH=Va1p2*~Z; zROZe3ecp;10GI|1yL3Ym^!uQ}+D>=>WO{3T=~j&>%rcNR6U)JdfIbDL}vQ`_*=1s5D&XbjoI4qY1cSn+PvJejH z%qA7j-y4s{Un8ow0<38|j;@xo84DSdPXn~*DU|o2bRk7L9Q8RJ8gInQ4AZFTNGm_7HxK`72?yEiU>}2XmB)rUZpR~=_9Vco1JGN&vU8%JL=_E;LAHf zlG(i+2>UBc>UF2+)ymiD^={9^Ttxt-^-vsWDZ^YD`*}Yx;SAro$yR)b3W<=VNi@&k zP9o;h+l>i-Cb{{1<-R1Nih&TSWt{4yaU?tz`;;I>%oOLZx&)i=5f7KzpKZ22MK1f* z=3FgexN4_!9ki}!uU07)4fETD4u607H&4+A9(Ct2F z#ZYVC28||Y%X$HL>7bRc*hoF|ec)--h>OObyx_fymaEH_J(=IW;`w{f3+5q`sEa&J zK(Sm20EOd4etgV*PJF5$SzNpfae}g>t+iTPaA1JXI`*fmu_~P68W~B5Zj*}Lh@20$ zWDbwRl?P5CGEf5tS>LCjH(e+qBs42W;5{9=_kH3E(L6|QFuwlXCup6hwVj)vQ}&J{ z)Q``bbq%vP%uh;p&yvfocFUxm42(q``kwtl{+R9igCb4>;b`}NH&M)cM8%vSkl|B@ zfZc|$!r@0Ux^nC8U8QM?mUg$xq7vo}PsB%GwgN4Q`d`xm$xB3eg`Lq%;YsxBgSEDH zj3MSNW~YrVN^)hP0v}m_w66QFf$1*Z$U6hW2SD@C{aAXLS3$}tx_?1nzZ#gYU{J47 zVChs_1rSNT+8p^6Catel_w_qn+NE1Z38d5R#hP-3L*oMtI9~cacOK17{&oXbt>vDk z_2&@tI~na7fhg+I01zueFlRs05XKaYI`<8Dip}l|J1p{Cs5YLUoEK5qeEBB{^QS}l z%Psxwb%x}R?|(j}|2Vl{=XVU3rIiyza11y92kZSm-@Vlpek1!_k`4p+U;bp`*Y=C> zm+t>%du7@Su_AQ=c*MU2RzYp>uUA$&bo)L4_Udon{k0L=FyMO`q*CdLjQRI&{jDu3 z0Np+z@apJ)?LV|?og2)XLW9RQfo?B2Y*u5u!U>}ZIIKnQM#9rMsiE|3(8axI58CLH zi@ba~7Xg+W->KCy0Q~;^FABQ+A)u3DjJ*zJZqLyS~;j z#sY1&nh``TClCHcm3%ynIXkPKDu(@_83^HoU`{EmhRBWrBOSnq0wnS()FTj zj1Hino!MObQRsFsgzN5LXw`gLTD44bub6Xs?;eeqyt`NSO4Dmj?|ysaZp3)a+gEo8 z_qPePP4Pl0lNkL$kJuRjOE-=hyK=f>>_w*^)Zq$Lv)uyGWmUNih$QA z^aqCzEH>Cbt;(OBsy*h5EOXYVXsjbxrCtMBjgh}&Q`v)Gja6FIuAz`B@C(H{yMe;c{=peQ00jy+kaM!k@3fx0|AjiB@w zztmUY=_rRi#(o>ECq-+-=p=r3Z^xf}>NKCdwD@lds!9BM7lF#S#*DKC#RAz>9$8|h zV`E3fw1PQPl@*@w1@*7u7k->>9B13$#Cfqoq`CHI*meW;?}BDeCSV>u2in;!$< zka*j_cv-LIUY6;$7WE-&^f)C$%XVy?DVs>O*6ZTBf-^9bO+51U&V2Ts*4*h=u60@* zb9J>cEuic<9JdXrkIp@6q=o}-<5EKXsihSz)f2y~db;7PY4Ef!LP$qW81{3 zNDS~>>SL8%u$xRKs=m}3-Lnw*d?yNr#d9#<{@_C6cx`+l`hr*Z z1K4w1d}!UdiM!nhYH~@QuCR@?LQ?$Z% zgufoBxUt^WpcU&C6uxDEhX_#i>#*^fRki3ee+wa;R+dlfS%H?ln>b8iys`B<7{#*EHhGS-I@&hgUPbSX^+w%LVkM{z7@zWu*)^z zB3hfPI!T+C;p`yer{VnxECsYGsHSSAHnmWcvjXjvtPsv^NrTe>lkd8(odiKC_a&BJ zGTOnERF%mjpemdkjRe$3iJs(aW;`R`oiZFwU13z&HF>(it&}r91?f89*}nb)_HDl+R_x5syS`Ft z5ag#1kgRYY^Wt|hK*{ZbE`FX>xICb6{QN4pTq-mFyos+ij_zJ)to^>7gY}`pIu)OEvD7jRg^U=& zmaCAiI>c^$rxT%uvK7Hd-Gbe_-gW8>3oL9Q-prP)V1#7=b~nMspEGth-|0FiPjfX55D|T)*KsCYTcZS zFS;G<&uuz=7vI-!wMo2)fd>QHbxqdHyJ|PmBpdg7VJi)Rr`>w%Y0hreQI2)=-txPOx0lJ&Od&2 zRuhht=Ct5qNil}a_4(cYYNmfPJ)*kgTbmKjh}yo51(TsDskSHQT-_#chk()#SIOHd z0a@1-+iDiPmg+S0D+8YUHLmg*m!rk(+qk0kg>jv*N-ndOKoV3F+2;m9BUB?cy<(bd zD%ogNIUW53oI(C#n4z#0_i00P7%bE*@iyMZA8tzU7Pvc^1F)~gc+{bckkjGqCYTHR zy==kE7Cco~?|Jvf0X*HG3%VJGdb}_?dxWOb@bxO;dE-Ot3p+OG0%~t{f%IXZN5D=A z3i|0Ofms)Z<&0$!j8lLrpeSR%q!09u)%>q#6&=P~U_?TqJZnD&Lg_kW3jpgz^%=eZB{p)L~Q>S5u$Zo`8LHqgfZ(I-JpC(dAnkfXD8N z=TSqy{7^;8$rEY@LyA)8P*01YYJxp!s0I+72f!hlMtyamBIG&ML`q`S>E5$#GGbN> zH0(tUmyzD;WUVkokT`C3!N$|?Nh}`3GjVmXilq1Y`Y}x&uV!EBT(+4PLcd^1Vo<}r z;dDxo^qN)j2i*3w-J+ZXjBOy9R!HCYCQzBxZ%_lnFwleNbP$O`TE(rbCgdHDSexE? zw7E_4H|{L@nsCJ*&_y?X2u1xs-qw}iz^72)V|llmdR{; zYC3AK$NQiY&a%hpJ}U=}v*6pYL^oXRx;Je+BbL2ar@5>XNyyEI$DbP?)gNI*M^20QFipA8O>(G57};+coUHMA5}U=_XbjxyIsUX zpGBjU035{=BWcgMys83W%|Ee|p~YnrFQ<6!jU% zPj4<4d+nlLma-5t;lmhTBxpvv4vhSbxY2*T^&7_ZX%gN?yCyeX(oQ~6%6AY=A=Y=M zQGr`YjBUDkx@vXwdv7;DjA{%v5Dht1g}R4MGRj2>g6v*}Ddt3OhqSs+ZH{)WysU&N z*JrgD7&Ly~q#InjM6Z3H@0P$P2Ty5JIs<*^!g%@#9J5w529rh`@pVE!Pyi3Mya9!mj z*;|PY1H^9Myv>+-Ue{C27PsT1G!&~}!yr3mP`q;f*ghB?&UCo5PbnWc5{3SaT*dD} z#DB4~(1s|!xB9UZe32xf$H@aw?k&I7tjA>ujk!Imll2mvABQ}zL>Lt|+%7Su9|t_z zF*%Vts$;;FkhWX)-4M$x-Ti9jy`YX13NCNl-6u4n>J7y@tU&qG58gND+6%9*YA$}x zikJ5tcrf|BLH{}T`MS~q0MXVrW`9`cB5}K6nXbPsfNZ9YH*3D9nnfbF?<_Xk-~aA* z>+WQk98vp~G|8=S(!r-^U;P+eSGQq}v3*q|5iK@S8BrMj$Un#!-m05K74&#~&0^LA z$0siE1rrIIQktSx&gXjIJrbwqdgv}{E1gA4e}r;@yzg#PDwlbKYlA#B4&{I2-13 zEoaS2!`q%d{@+AWI9F@e8g_xHvqb~$EMMl;fz6q;U>tif4GgA>?m34=lTGduY!1#j z%tZ-dNY&WeXz%XcpJQ|9+FgOE-K&Gq@8t}5?@o3%j>=cA*+$dG0`8u6nFb@9X)-lF zohO|!`ABZDF0K7O4=y>6U$s4Y9rBia-KA=|F7f|m1Ss!sKz(4`sCYyETI;K}CHJz7 zft6PZc{H)K`&@d4*7x5_>(9D@dk);s;r64rfx)MQem7{{V3yW`H}LlgGLXe#_eqc!L;5%az7* z3i%jCHN=Y&U(ugXG$CqxfEYrj6pra?NaA>)i@M<>xt%(={i;gedUX+&yhL}O)i0gR zV&W5jDvMIOfK*hE?maB{{q`rw72#=^a9}F5;s8o9mQVUQ*Tfn$ZQvVcK$F=aWQUeJ zj`Pa+^vYtnDq5C+LsU)dyd>aCIbZtc+pv_KRZh+!k>+sIZ!R+U*e53NG-H+^zI;=@ zF~jYfF6}EeFz*oT8R9Xg`xR{8({4rm-RkJC!E#uCx==SiQLzYX7ys#7RN z-tYAN`So@$A|NHuiWj^?wx~Av3cm3%93omzi@sl~2K?qilUbETXsY4%Mj>B^)b0y# z1AR@k+QLW?Uu~Y01KJjU0KE)1=rHIp_F7?Tk4u6Q$)S5V}ak#QGt0yWAuNUo!=B@`8I8(^?!GS zOym8WzY}pmjL5!eo0p3qY5Ru%9`Q$!8}o*D1e04w1j&F6@sUFOL z+Ls8O`}^A^!UmxF^WAoAjQ=_LLKj5la37R@)LwmZd|1DofnQ&^f4!IgosrJk$n@kbPkXEwIPnL{J}>ORFlj55i@9 zl*eZ^r{b{o(T8=Cm5EqH+$ z2;i#+Re+nG=0;dRS1@=SEjBs4W>f4d+oee}I}5MH$Z|nT`{Wo@@i%9i3*CrI;_T^& zhXvW0T<7gk&~kQzvBhfJ(?6@D$bNJ~6r*yYIPJ)wv7dg~yDQD#UsJ}!P!mVOosp;I zo?EABLrX@{7AoaMP<+ScDPB4EoTQN2{xoHs!kKA#&@(Uv*}KwV`6|dko$yS}bvl;$ zVFRmawes!%JZ)K0=nZ)-zUg;%#0jKf@oivhv_T{qfroi9^q;jC>&z&Su-_w2 z#2sHZKfCMnD%?)H!t3B%P`i{JL2(O;XxKvmP;Zly?%W~fK|HJZYxBj5GGfLXi^AcQ zYQ<4JlT(TyQ(h-1uSw7NnWmfKm;a);P|o_jdc2$DbuIu{Ip?8A}y~E1#4|fFG`9_9uj<`wksiA>BYDz-X6dl(>+xf1!li4tJNmCbkm7V<6nr7(s6E3 zT0Pp#nSXG6j%7M2WT=-uid@UYeC7gljNMRwJgL@;en=Ib>#5?oS|OD;oKQTL#4N&X zZrV%ZwMw;eEjXG7ugCCNH6WaDX78)^GrbFujRU(wFDn1uiaU7P-rfCnGa#9q^>k#e z7>ToEsqh!b(6n$LwHX<(0_sLj05uvlh5#n?#=N+}D7Tx3#wJfGbNtTMQ=&@wZYo1z z#5|;YcW6_OcXEr;rE^6V&GN(vrsl*l^v%~t(P-^fXr0h>xL}r%htU$v`|4jX^dO&> zHvUX`_GRs-e}~=u_4M*G!5KKo7eVV8OLf0ZRgwI;mfd=BJgX|8O^)TT70x{%0Od?h zh%_Z*2XTxb7mX}78*|*JbLDFhTU7Fc6b@xj7)YsD{BvTx*>^&2kDfp!{~Xr|AAEzE zTpfqPTTPtS-TsL!mX1K(a@AtG?mL%g-@Ieh)Vl&jmI4K;fh5Xo#}hWmI`G2~c-vws zD>F_+Qs~}%DklyK)v0Z)gUFMFjG!Er++v)mNZs1UJ-R5UFCz8xwOFV+Br(WtgkUcE zfKg3VA4#f1zb`C(8gK+&ZdLPnKgtBtsl{TojF}Pz4S$NqpV7r!Iyr@M1CJ7+JHD@; zKLP{(jkV1ns)~rqy$R%8y%7w&EikkhNZv!*vYS@0-x;=m*vU=0bLy!+RH*uwOi~6* zgBeOg&FqBm6VI9*e^&9{ilS@W%+#OcEFXp{I&RO~QGe+g`o&=AUOOM-v)C&ta5?Rk z40CM3`*z&?0fWW-g2DKCz<61YgxE){d27BMzr0Ug%tWU!{hZ5Tb-Z-)u7Bthh~>E7r8bHKEhX+Z>Ip@_!zvHYsoZ5g^e zRm#++PGyWkKxP`t8++1T*LUJ*K7>&y8MR6pOdxGFK1^RS9^KPxT-rnbAA@LzuLy~% zyOMq_bD$iy1X@hWLiK*ZTk4A%WS0Kyj}11az`QS>qRZE+4YCB+)HyBoJk1EyYnei4w& zJlX09!2fu4dqLNXMPLo%iLa{Dzo5n**uap`F;GcJ7T1D%-~G_>hEI%03#Ykl7bR-^ zl}m{~Y+7b+2_^|8!0OC1Ce3Cd95&8_oPjnuLCB^Jst{0Dp4VD@Ly-Vmf!}r_wA#Sn z*80ki;h!SdyI(Ny!M&PB6$;TRit|D0+e}iMtW6yq7rtuLiic~i=&i{+8V$$gy}rD# zH|4mV+ThG2X}f+xI`*>Vk9gBOlRQlfnfSC4z1zVtG3tq)eG+YaU$9iTDzJ7fI)F#7qR zMZEMaDz6^y$)HXMR$nNl5x7mDD+&?2A%(mPy%Wxj(B}~|FfQaaUwrY(ew%lby8(;h z2z?mf=Rv#i+(Q9Epj?&;w|c-Z?a9t25o5Z&oiv9USv^)3yy%;2EWR19+#)k!E^S?_ z^!Zvt*0bKd4gecWqb17ocW#BO5^`^(_DgAu=I`4wJAf7PSn%@5OJ!h4K7q3d`>3To zcQ;iUcBWrll_|y1limlty)OkcD9*W3oQpOD=QXR}Xa(?|!ApEUJNliH3h;kEvkt%g0Z2A{)wE41aeIkAxHgmJ!I_eE}6)j$iNMz9}iVj(RarR_p2G&k8@mA0(Z6y%@`z+*|FsZR`mxyovD* zyyyI(Dc1ai&ZN_N)ViT4Xe2Yydk|uA&STWL(;;jWiH=kp%GTDA+LCizEY&aEN*kk@ zbew7is&1)(FVi*Zu>CMQK%C=SCT$mAp ziQOZcTw|@k-IB*Ey<<>3&Pi#2oGsWlN|T#1^fT*fe*_JM|vx)Sj-K{G3`; zmzjYDmd*t4Rh7l6jE#ID`I`}$!d99E_Nz#>>&=#RMoZmF$4-51xP#0nANPFFL*$0H z(`+oD*l}79nRQ*_su@~mS1Dm~`7}|{-vfbiq z?A*6`Pmi5}eV@%&D6Ht}s#XJ<wdSiK#svdv)DF`cO5UVMWEk5S0h>(#jS9K&2e%YXbkIce)PRw|$o@{j5MY94)+eRwe zC6GyChysfWVowGL&2fQKfgh_x4W167KM}5N!OK=mDsA9*dpW=?&WL!-`m7Yt%g{x- zUABNMH_LH-dfbg>izGG_HPmrmq|SIqMYDfCUndJkkOwb|h05%ba0)6mv6ALj>N_>iHWr*Z#X#bVU- zL;|}_>7wK*bWV16TN`~?26*QT)xssiw>!h*%J#HcT#vk}a8s<5|>S}Z2uzcg!MhQcrf2iTh z%W)&a{Z@O~EW;FRt|XUlaHXjYm37ItB|zDT%3I%ES@SF-R^ErziQ--Sl(sgj$;iPJ zY?8SxU6wykzax=}ak`#3(l}>J#EFT@{<2G|!_`0B%1t>R`wLQ?tzAveI21tuRXg)j zTm*DrU-^C}VH*(>6>zzhfXXCj5(Iu5;RoOKp^$LbSdzZTGRTixel49PaEO&Um-b%# zPQW1u1hNSr32kN1@z`H;^Pj1@K7>qL0?ZFToWB4}91 zuWtMcM`#^%J{fhV`5q-<1t2hOlpyf$<>RM{nFp;`*^XUGM@c|I(h)P{q1Z!S|34ha z=%BZ&UuKTyC<$-?LamWCYW`N}e=@0{Y*7G7kdoJ5Fx0(~eMX)U4$yuTUa z-eiKSN(NA4uw!Z@jI!9>w@4H0+jh0bYY4$D?g0o zl}|sfb}r(9P6-%nOTR}(b`>TuHpOt1b&Mg!cJTww3+~3FNs$T4@7j^7DzeWoh%u0mke0RA(1v1ZRGd6% zafe+i+sc{BMz#3{DK~JAIe1GvK1Xs%@X`C=2Dg6ma8q`=F_Jp<=!L_JfQC>Tato+Tn*BrlwbE0qtS9Y^x^}ZR^40hamwn-i}-u>RML{FTbn8D(H zWZ+YPK`YZu*+Jyps}Zw&3XpTRGKp$lXR2trq8Ke^8V{bcR@MFybggM%YA-F>F6tuI zDbPCy);FANc&Y6t?vmiH*H8RH!M2<&uhna} zY-ERGL++aFL8jQLnW!Q*tZ}5pB5X(7An~WwH*?IjQAkxB{2*M9r25U_(7^ICpVj;izPd!pr9Z-2NydR7b_wJtE;zz z+iNdY2UnVZ8~MwQl!dFgi?x%RwW9;&FT1bJ9NpbSsi}V@^xwaK=hMQ=`u|gMaQ#oQ z5Cvra^@N?1jf4Hawh>W9e%%#Pwf3^G)048cN4N)(h8RCTugJf`|Id^EPw}^yy8j=O zlT(oE_o%-;`ZKDQtA&fCqdg)`H?jY(n*T)p{o#Kiim?AG`fslIx1axY7vX3z3=#JK zR+<<_?%G-%64FZ~c_|4^uLnQpQ4QyM3DFP3bqX7Q{q0UP>$Kj@+WNX9YQytf{nxi= z&ddAbFnZbnQ~ZO46?#U%f*@p+tJ{=p_;|cF=E^L7^yi ztZv2`1b@H%-w^6Z519P0|0yOC3JX&ZQnK`=v&;Wj{a199!b76pllres?8-tUWKDwg zo<6F7$Pp3>cFtGJKeG9sxNUjJk5u(Q6b#}2Z|t`uDjSfJdn!y`Z>QnV5)aYHE4~ zHK1B2R^JQ5z)(T{yT>R~P`+WRiu&Ir*6z*78hHMMhR0>2Y4A6trwRrFv`QA!%IBNN zO83H~%t_;a)NXQQHoDQ!rcKpc!pAIyyw(KD=D)y^y+rc*uIdC$% zZ7a*$Cld`w<8zp&6N?`Hp!GP}J{PWcvAm-Y9+yek z0t{RK5vk#ljRUgzQO%0aYNUte_;gp_=k_uhTvY+CFvfDxDHzHC>Kzk6((4Y;>RC02 z9|5M~ZKgoBugLzWv`K1HM-^ECMqb-?u6Zi_eo#(%rv7d%QMupUQF2=Cp28r>Bvgo( zsc)V^B@;T5WI6VJ`4(U_qv>K0>;-3(`DTU3tAN)*U+N(0oOc0Yup|%)?7NQkSjb3~ z%#Y*m1RrGG$|l0zN-6c@$y}Vpll{6?+wq5j zqIT(&ow4-e)gD+R1YNZ>g_CDiGJumu>`8@jbHU_ZV}G<@fGIj%1OUmV0LrRWF%#w>o}v^erG^c z9d}tA>HFOgOKjFu@er=w<37P0Jg>-XE929lZH7r<>}PPyXINUZ!Ak2)^us zcx9iYnwanN zXIpz@y(7j^fqT}ws2+j{*C{NX{S=lPB%VkrX*?&_&&(7)ZIhEyqbnwCRKzwxCm9R+lUDFIx0NXJmuUL00pzuNF;&6A& zPYw^UR>K(5{Y`q;8QygtrJ_|!%gTp;cUTbq;}p`It3&wbr=ZRllJqEoe%adES|0m3 z)p@94eL(u#L6cW;oo*#>p9j?2FIB?v zXndaPbGWjU>3){qr{Jt4q*KC<)A!twSXUr`T*qa9m*!LlX!XAtuQz(4kj+;kayA#r z%;P>}=5u|P`NADPHG^8PfA7iL53rIc$B|JjlC6bX*-n24!wLc|7K2y&SVQ8kggD?A zK#m-rgA3OB5--fAYi-%#a?s)IR<(i?>mp#B3ZAgGl98zE zRS$ak^D(?B`#F`xz#9-`{b%PUqs7r1o*W%8(m|ceN=T1Nf0s{9i7M0ux^}ch)m#*C z9P7674K+2X*9b)t`Rayo4|U2{E|35e;P9i#=$WehOoPUBX^ZDBZ;-J_pmYg%IB9k$ zt5putt(?m|IkK7RyseQ;YluKk7xUB` zj_uY!VU5f*t)lyQwQBEKw&}OYGclcu4^az;1C2U0$KqBj{iw+V+(3!6@=9d}Jh?Ly z%q6#K1Va%)<8=q(g$CeQ9=A2G8Q-ON;v7V~q}p?tmVIIgOz@wkL3Y%z9E998-$5CG z*<<&SvknrIyn&EE416jseXI=7P86hc1tZ27MsbF zc^0|5WT;ysb?qP86FFvSy?s>UcDF(|9XIo}++^6HI$%sYX=Xj>uFyHjs^UT~mXM!( zqF66fD8hCn=e|A~Z2i5GbG*PpW2V|3olM+0jF`8O=4wG~To$uGx`X0xlPeNRuzcGZ zsiw18Pres?WwgGaHW z#FDJ~^gL}Oj%vGKJ-~WJ3XeO?(}`BG-~_}E7k3 z(l2TAG0^Ej+X3yFNyVmFb5*l;El$%mKFl|JcS_OfAB>y4=yoe97PE^!6R6cHrS>j# z$MV@tmu+AeRNBS#-n%B+M40Lf+TiEwR2L3`=*(qIc!Z5G`_<%0n+lnN4fzk|Aa~R$ zR=VG|7p(AC8}4XF(MK;?-m{RyesCv(C9o_ABH%@k`L;k zNqcvgKmX1F6Rk-w)qT`AjOo%d>MYilp-x|&P1nlYw@e?*%eX>bzTKXZ19ddTA4#VBeF%w(c-$Ctoj zYrevwBfkZ)D$=`mzDZT5W7OzAS!27yv^w)-Aj+_r&nvo^R#6hY#w2J@Wj@l~qwqcR zjXNtg%w@6Y%SiCpUtkUhXvWQG^}d!l8|dh`rh1&+;+L>1-Z|`@*!j4NXHu%F2zlio zj#?VSCLOx{c>~w6&eJIeo@6OUQqJMFCXgl?$eGNpkyxx#B;`uT20@Jm513yz=v2%~ zrAyycxj+^BT~8^v)MMw4cm4FIOja7wqjop=sv@#$WS;FLPC2r>VEa2wd&;rge{2`? zFl;a@`=Y~t+k|P~_;b2YT6l)`N-Nh65JkYsq@2N()D29fy1td11GWT;%yYhOx&ZNe zvgz0RggkxQhjH=8xc%}4{;!E{ivP7#V1KIU=cmDkpkf(Tp|R;F3nuT+$%W`;*Kg)a zskHFCi)?htXs22OuT>_Pz{w)gPd0FAa`e^LkD!b?dWz8;!SZw@1XeZ%O zluMxQ^(qCY*@xQ;pGo@}`9UeR3a#C`3tys#zMi=Y^TJVTeC}_W6~WENZ;Tq3GyPgD zl6=M+to`fbWQ*5(v-)&=4LrZ}+RqEswZ+FM5p-ZtJbT>3*Ac#Ddy zl3cBwv11Oh)o&UW`vU?3S&ulK<&&5~{dDf+(&>{8{Vqp^O?#LNs$rxQ1Pjr4ER@Im zdw4Y1o{gmOGj080GPrPueJkJ>FFUjGY>1Y{vD)WpCZ;t(Jo|4~I3|3S#c^hRF1HcUVmXqS4N_ zsbrtSW1mn9bid0=w&m+Tu5nn1NQ)l!E5-wCwJonUnAh3q(pNO9#4uHf$7PE^f`)pY z89t}s5meP}RzTI~@Z~zaIj0~Vt$^A2_68YOTMgkAGs@5tuxsl&2)q0QS?@)uIh^l{ z=NFh^Y^FR9vAXRKJqoDMtua2Y{>qj)6M6g4`rF}ys@u<-!vmf-5B^wGmty=#AA@_D z70(s6H*a^9=v15S5pde9d?78WwwUm1aNo_cv-vt+-$3u(i52JY*v>hYSc?pb&+wMT z=X4{+j!8KUn*YZezpd}Xa!I1WhRd{&i1}#nH zLa8OWBkzF}2w>sI<*65VU-||S2@8(6_q3)*TKl?pCE=b&ERAdHH@G~6Z{>b*UU^|J z509l_ubsQU?ZLXtV)x`DdXq+f!~?g&ViT~1U_z}4t~h*urP)?1zNID;KbJiAez(o zv)J?a8y2T~YFU>&VzVn!;PLhPvWhbCjr5`v_K%806{Ya?_iMYInu9Mm^TyCP2R|Nn z185RKt4A9{MJ%Ji(#%#PRroG5#6Zr~qpLv!_g0VP$!vzLL8D601r(%H(Hs)dFN7ZB z#WPjb=vgGw{MJl=3BBI-phXhI5B9`XDze@8trib#rH!D_A-~$Y_H1Ad7BTdq)r&mh zUFW)ok12~Ms`ssbTpG4ai{pjPeeqV*W;Wz#t=N%`%g#$M(?9O$iCdTBEI(XXS2Q{O zVE@H?H+C+A#(>~*NTcYIl-xud1m@klAmY(_%JAKo5%!Zwzl3 z%s|~NOjv(J3S?)WX&MV1jbeD9LMZqNwD!|N0T23Y;O#)s8f;o;L;__x44Zr;Kls$M2OHO{X^LC4o@Hi7 z^jIu^bKYrQyH490enbo{7ra$WppJY>-Ex1J3Pm%+Z+PUKdr|IH{UR zNP>;;RG73T*Y|o|LHL3Sv>%0r#^13pf>jNahF6RH5u2OmkllXf^q3Y`CnjKdMkh^* zcKP&6LDx40yaNQiq%Pf<0&GV~G3g>kAF`O_He(MUZ1>d@TB{ka4M9cTMe6k6U3&w5 zNHhahVZ}TDhJn3)ifgGXMmCX{O1az{vo$qoB7s@zBT4Vb>}5HXgtfakiq_t9iooDv z7wMbVwyXZep78S+0G%|~L2DdhwOf1^d0l6jevY>sH1lZ7uixFIenV79&HCVYlYP8k zwbkXc=`dZ?J)=so1$~?i_;}4_v)r>S8(d-7+U^Kqe33N?Ao=>|vZz$GZSA>ccwAQg z2z76VccB8_ATWa`Q&wG?z=S0!N==bYiaaCJS85@zUa?4Go_LLv6=UA_P*-JffDy;e zb(*2z0sZq!*irNdafYwW`GRD%O$UJwgNz2~j$3+IlZHIi-K5&&%S-ZN?V^l~$sWkF zFHWsKSj39%B|12fA&`Lt?bx%0$K%TOiy$8=viPMDv-zv1G_t&1ML4L^M_Xk) zW;brddNs(-O9-%wL68?Hm|1@-?7N(pQLLNniXAy(SG#g^^QMO}p*aLsq47cURH=4? zM-;;}d~u{%jwtI?Bb%~wh_jr0ZU z$t=cF0cU<>rj=AV$LqZxC$1a1cwRBcG9-LvMm55Q)Lfk(VSW>gGBmLqGQzIU_t??L zES%2}{M_duX!0@1OMUYe9m|5U%Asth0g&1t^XX3Nt++Td7_o#@0_iBo8fshyh9*C71^XWX(Wt5=n5Na9%R(_)l z7!shsZ3TT51Pk;eyavRx$N43a0U6c_(Q5@55?wF@sOP=mw1O%!LxQayj(U>J;BQd! zX7s)UojG#H3LRLO-=@0?_RwWP8h`n4i4A}*Sei6P$m!xmjn!z70zSI}dK_sIuyvK; z*4f3$*-Wq1^secMJMU!oBtg_hIP6J3V@2d@n3`k4Qf3n9I9fIds+`%sh?MM-`5-e6 zhR9dQTW+;+)a0_7HqM4USoI@0o49AQ8P16Y- zxRnQaC=>+D?gWv;$#@ES(JO**KfQ?v>o_*Oq;&Y+?eU3*Ux z5Nt9t4(J;01j5}K;VyXNsSvh+2LFo-c_ro;rfdbvpMDuhOfn~1c=BtV>ivZ9&x0C| zLtNMwq8ZeVEDaxTG1@a9WOr)3vhNJc01k|QeLN-}aHRzAS`=15>K`{(7Nm$nS=$KYov5CF372DFtp zQQ0}xPt(tjDh;T?>IjT*D^hOfR>H4-J%Oj6@QtARw{P3#8z*$t!5VW6bntq?+p)>@ zmt)sJiY_+^U!S9&^^aJj5^1KssNBs>TWH-KWih@+-g|xYq&YE8p{~QU3v}0v~bFqMAe&G?HF5v;w8Eoxg#mxjbKF zM~6hxbyXJ<#Oz)Psx#zY<1Nf?CWx5RD?!Uq*+9>ki}R2C z$4j}#lrQnstE>qB(RLf{1C&A~vsZNgSgd#PI4^^k^52ZG{iE$5c|@sFJKrn(<%GYJ zFI03vNLq4zc}D+e`#}<-R9umdlmD#Ef4l6J0@8!x_(bW(f3{7JD3t{cE|bI`)%b6h zy$2y&LPZzt@z4B=5>6$55y3yiEq%Fkez2(hJ^FAFm4qbyFfifEs}h6@`imXVg&zLt z{caQij?=Sw*{h>H^!kQ|M8Xx#?v&uBLG4Z`wRDu!NG3$J>B}cZT4b%oz%Pj<=_KAh zUN|c;5-k>Q`P)9p3i}Ep7Fkk=-otf$5iiu%JuyfoK1l`r-&|AnA|p`OleJ6RD4aeu z6lJp{*YRE|9D&C!vK{ha?}J3-kzHI|o_=ILJ~_z)nzSVLun(JB zW5u8twJo&An#sh;czApqMhZpJ`hLKm{~NdTugiDXIEP0^dDn4S8gl}ijIWynsN4v6 zY?YQKX3tOdZ!Hy)xE@c>pos>-?^Z2QU>_t5yhzZCRyw0zFB@Z{-r~N6E51bkvqC9F zFc`o7HF5*Pr!)4vZ7ft>1L4(TA2Kj*eXaV5E?W+7KeD%RK8Gef{xMJCzzr^5%W=ff`Zqir*voW!jErWtBrX_G z-owM=-JSIHEO*Cb`K9^B^P}}0oBAG}tX8K!@MROK;;Yc3jvip~gE&%*;n4f= zqPYXaO7qIQsL}IaY;X3nWvj!yI&;BX$t`;9RzsbCc(el<^ZyJV?{Y9w$Z}jf@1eq* z?<8fnx}w1i_F>Gn{C0eE`39bDZh47xQQNinEb+2+ax&HLSFJc#MWJyaG;#PI4JvZDyM8mlAx+rdzG2Au}YA1^MUyFA)|c9OPY)L=UFiI4V;g_4chGVCXPW0r1bKT#pq)g%lb$W(Uu z9ddOl7F17dk{RV!I%nozzrE~I%r?yo4-c2V8kBq;g9>3YX;B!?5{Ko>C%)Hhotrb< zzCJ&&xnA~1nMmh%9JgIZ1&Z%`mk`9PgC;&(4r}x!b``3Jx-_h^d@|cy3e=L}Spr57bkf3O}Ad`iL}{V zFrvv!*zyAmv=<|HC(CB75_`@M#J9oWK;z;UBarJ{Vb#_e8W}%6ftVURThQ!Hdj}_C#Qg6{C)KVX4i}#fkJgzR*vi-U z((Cf}et@{NFch-cVqWtmO?ft6tO@sjRNvA(2G+%spLC`9OYk06X>*;njCk^*L$x$L2)7a4j z+}f@7;ohDGTwW!Ul9H`$+u3*CKh2X(8pyER>j7qGyg|%obm-`k|Df*jC&#EcTwofdB6z@<74V~R7<;AZ?FQducBXJ`u2^$p$sXXzO+7KE z53>D_FIv<2EuW?19PS}$2)1{&`bp|%d{v#P3gcG*b$W<#GkW^1o+?Q@^6%^78*G6< zI8$b$ll0B?J=0*in6^%Ih(=S~L(O*paK%Cn!Cr&fIAg;4`6?%_rFtfDa#3K#J!*j< z>1te1;MlnrMO@Cx*9WYw!I~nKruWN9Yk(G8X&jmia&do&DTjF|1~fV`#Q*y%MyxI* zbaGy;7R~3Jg>BKskwkJ5_G1)z9CZWdss!9@62kqKgENCJ`H5$Th;3AHNh+6xD)`~& z!~I)yo9~6meeHnzA?KrUYnzdVBsPIA32aQ2n%zTotwO_DtDu+Gu4fscni@XOsPEJdPd)YP8Hga-^`B;FX2tCQZCP3MtiG$%voTDlI>luGfx%zL1%s?anK$jI}Xow z7P8(mS$x?JMO(e0l+(^zsiUYZ;3c0_qB*>>-0@Bel995LSr&(|3T+A4(p4?9W z;aMTvYJVl(|{*v=i@kH;#gB42{5Io-osd+olc?G+5r!%v&pt$tWg`Slx7{DfGD+7r5D-D+ zOG#fN3NK31#Gc=5QDv=k+k&*~m_`0{%pjRH6I zwLvpl1+7FSmR`W8yQQ<0dUcTx$>x1e=v3~?@mfqKO0*|qxK{j?4XWv~_%?M$V%@m4 z!$UMhs#E|8)aWAX9K|VSHa5$EstV>bHs^n6Cp~^jc-?Bpo z^;7%dXVX&5+TRz*ZR`&^D3kdFECh=CEBKz)Q3&`M-d#8OZr0iqgWkwXGZDcvKMZhl zt~>tN0%(4Ei+ib$Ao1((ujtPAguOss)f0K^w(BiEgF@dCFy*?~T}bOSi*8k#4WE^= z^uT1^on+4l0<~Ue%+NaqtEDnMTZ;xaH{INaR?b+xFj=zp3&6iWyL5l*7|1MRP#>9U zfGXwJ1|L56Qy~EX{E1IFvd-!@+ni^bT*VQh8&Fn@7j$3P`wYjZ#UmXvTR_pkgNza! z(lha9U!*2Z*0S0A{9SD$Y2vxtR14%}E7FsEw-Jkc49-osj`vdR>`XMFMcPi-XGbKn z*-N>$&VQI{#X5M(VF8Mm%|>IJ!`C0N*F1dfM-#8xj?c2`(^XI#@m~&Pl&>2EuD4v za?~0)GcqFCxV5ks&0}*xS>I?LUVEhI9(n||o;o{qyKcBJwbzxm1YW7I4fQS8A9@>$ z)Jr#ddQ}X>ti(;0rSb0vG-#= zuaww-a~J?*U)>HMnPg3pP_ggQfDIRy+@vn;0!(T_4KajX7!a4{8zP>XldWl>PI8F) zwNdS8pSkb4?LfDdS%VE7F<*77ejLqy$kln`uKjFv4mZR3SaNia_3G8S+uaG(3R0E2 zzy(Yfb*fo?CQHcZ-urFOXBg)9+*{$bVJzU@7y-F-mqb}mlwfvf(9G9>-&Z&r%ig5X*`T(4?CS^o06Dd9DI?Z17q5BjmI8S!Hjq$QLk%m^l5&tu4&WCE+VChJ|nSI_Xt18(EGYZ{m)<^j7_P zsW`P=_DIP25^$t?%p*olm&|Xey+S&Kz=)Hs1vc@}n=_c(Xim{Fmgp`pTzoxcGit~yb8z#X z+sYkp+-&7)7h*`zcHwfSzjcLSj^rPEVdg9!73rd|@^6{Cc zinP2tHN_K#Wz#ttokJRS0*t@7&sJm2i6(r@gsB6dZmBr^)Cg8c(`W?EUFhUdf&Mnl47<*Rj=V$ma`Ek||d3bd6zX%^> z(%Nc=RS%nq>IW8tSakiF+$70N#woE`0uWKwkAv73Oft~v+38E~PV>zL= zZ4|HzV?E(rL3p5y1pM76DQqs!vu`eeIB@Taqb^~4tl`6zT1Z5j*(>LY7<^29=h;Zy zZg4w8dB2%=B?TGCz$H&!l+TT(d0A@1`8}Mpb`}i`aT)!iB zv@TWe;q)HMep>Y48z$7_bvSQBG)%_k$)+Dhq{~hIT_7ddY~2wrbiDPLDO=|*`e+2g zP;EWnK`iFNQpV>Myn)#2-`LWtUY9R^56p@tWTwt0xB8)5LZIxH9!n~kYcN%wa;^8B zJlf*-Atr?>Cv(!0g(10UkMVRAsw|B~A*!YA-|VU~-xAWJdfKW#+RfV7JHJQhKQ3}Q z-@YIr8iuaobO{Kcy4g7;fmfeqgH%Lv4Gb;_x0?Ka=BH}b+C03RX+EcH{;niAHitGZc?6Biy zTHr@bl(HKv;>)Qx5Fly5P^TXxq0+km)A2kl_~|iSA>4!zAvU;oBqy#!I`lu|o$J}% z-*>2XpLIy%^~@c~pYG>W2n4xnESNO=KuWrSE!<}(!uHT~vw$Li#n^^@gUu%UQPMVB z$*k9#sKm|4Y*0^qrNE;%gLD$XUS^sh1>;O2N7gIj^)BPMabfBh z=)xDi#}UqBQZ2cbT+R&;2;`|Y!2QNI?tIgF<>viMv2b;e>&ZQs2-q_|Epa`yzxWBFgS1f^Ef3(Xa0S*Exuq$fp%Xl{Ir zT33i_Cz3Dp&CWH;Y14uatYTF=@3IvyHbGvXEVJRhfe}J-1S*}Ek9g-##O{Z>woUt! z*<@@d9U%x-Y`{+nv5Ipg)GAU&D!aU-`PZe4LlUhAsQSaCIt~ z#B*yQgu&(g%qooCYBo#qsgb+P+@d2jhdX>nd4XV3Y_99ndKeX4Yneu%TPz#`O}qOME~R@;wW-3tLRKfEr;^4rXzx z>G57?hIiFiO&EiF02&2P#|zwDnWzfb;7KNC%YJQ9vG|VS^z9FArwS5!gH7MXrXsP;#AU(EObCfX zRn+N^Pp6O{3r+sE>a7APGhe0`8yYgIoAo}+nC;km2ok1-=uqjcbWWn@FWh@`1TPCd zt0NJ^AFC9b{GG_bPDBoC2do>C=C2@Wn__J8ZJ=z?^Z+5P!nX|ROGQ2ir6j($16h$? zhtRm?cdLG#CMJvi_>V48BGL+inC}yI#Pa*6s7XA zd558+$RwD1J4|7v&-1gT(j*-RKTLGkqy_dK&O>JpND-$vJ+KXMGoD3bcbut`tc%=> zNk%A5O2%%^A~LjY-gj<|K>CW$Jg(w8bZ`saqnGVksQ5TVz|+L~&ySFB;W@9xgPN%6&BTsrpK zUcraJnw%B0x5SIQ=GZWP2S!+^zPGq*1OiFE2i#-E(i~AJzu;9BYmRBPg*T`pG$itD z20GuTDi+trZa{lC#w9+|m+H0fljdj!zauo)L)+05iIZbkiC-0o_%l@m6>DtzU~G+^QliImA*m{;cVvKITV2z}#ijx<6#R%z)-cx$Vpc!JXcM2e&@` z3@v5)EkS2{)34$VOdv74V03^$7g@9KK}&gS49Ub4D$MKs#FS&eCOndU17b6PIMGyH z;v#4;snpQ9h}hVIBg_1?c+5MF3E8)f)=PGtBZ#8BX>JB$f1+3}A+L)RAH$}LtEK5? zU#xNeCMQWHDxRnBiRj~^2?m9KKuNvUqkyd-`*!${#;I3zy!yp@Phh$hEZ?NaWhO@41!dy+QADY%Z4Hi@G+|)8?LB%$G8ta>^CBiBte3~3G zu2V5T?jgxGoLQ$^SEkvw(%@eDH%>_8@nN-yy^}&c-yJ#R85>|$**}g2nYugH)5QgZ zkQOL@85CF{yl!F_!MAS#Xp|$6F+U~KD8wI)uDk zGubEYuvW|fU4P34AQ-kKFa(0j>u>@tZ&cQ=hDL)=Xn_0TUUL3d&!_^h3V+Ufs_H=9 ztXo@ez$|J?I-Z*VQIT4Xm2ot8}56qb`1Jc{-0 zl1w(>8_R}C@1Aj`^liG~1If0T7%51*p(HW|dy?4X7 z(?7dt1kF303Ni#;d;Qc#^0sBUQ%4g%5RL5?vzpX@^f;Ji50_u4FQG7kmRwlUsprdq zggsRnD3PBiEWebDTI+ig+(e|&t#)|?E!w>o`d+)&IKI0)BCb_D1v%Ls?PVYr^E%Nb zW9=TR-WbfvRz*~SKD)`{{W-YB0JdzY$`>H8hQD0XJ- zKc$YGmvw(b#PF1z2HDduF8DKEFIaYJZgNjJ(uC9rL73;=n!V2kSd3n%Q6p{PZY{sG zs!4n1MLZ;lX#&-2mO}HT`cZs2oE&!9bGHp-j4Pve*gNbo5{1tXYKA4Lic0F zC|u{*i?(cY=T-POtZU0&316ZR5v4o)ZxzuZLfI+x~?yZA}Wk8 zZ#%gcV1u_^w~8Rf+*-YPuDGRQ%HTIME^C$NTOScexuTZB;d5Gs*|J^F$mVo>3oF)j zInC93&dU7kb)G(xjk+wh>P91P5qdrMh)MlR&ORe%JgI=2)H4;hN=qC%Ci%p~li1`u zX$-a6Qn9{g$$Wxay+Ey-lgrOleT(OQ-mWA0k0Cc@ke_R$T86~Yl$Fa#R~JnRPEiNo z&v0Xtd?P%hFnZ^8wL@+qgT7?xNQ2p?CJb?^1t>7O>BLomrJWvb-y9 zZqEGnFqz(+3Bw8{sjMthWdIPAz#97W=wu6%uZqjBQ&)(UyuB|JMwO~xphONyFD@hn z13!q&e0HTd-5ryhesj`nn3~9AKH~+s-k(2DE$`95J#VywdQcbD@P)^nwebb=!w_(R z`q%f5tJB>F5U08(%1F?%-GuKERQqaDVq*7~|h%@a(p>fyLYf_Y%PwuP}B_&vR zSH+BcCs!5eBb4}4{brbix_XU=R@%aYgEM3k>__kAtkCm7I_qg1Ey zjPy9}v*}IB=_rfiE;nueD&chzED9f!3czuT;G;(09yB8dRw!A(rf-|z6o`TSsHVcG z`G-}|2iPpRcvJe0Rl&T?toldgdYuAYsA77U$DS_mCY4wFVl(_e1Azj>?D1I}yv#;T zB9{0c1yH5J0}>tn^F{4xZe^GkNcEF?^2CiSO*mFgXC&@eI2MIPEIB{FPC|)1ZQnwb z2ASyB@bm5YOd(G@h;`pd7nt2-BqThpcW5CCaqLcMXh=;-Tz7o!M)I6Oq`>!_A|io_ zlhHbn7Q|)Y0xhD z;#yo}vbnK`5T@r|Q$Om{c#=e`B1JR`BW&;Ky(3%M6gvyN*oss_Nadc5MQ&${JR8$p z?%YPeWeHPcqCRd3U{=Vq_jK^F@$JQBl0f^NFP!!ngDkoNeE|)h@!V;}}g;{F$DMV||UqelFmd!+ohZ=P_?p^719)*2;|(O@uQ3{bBK8gi zZjNqZ{>}=Zgi_cIOq0Q77>oz^01MN(Z4*Zn-KTwn^sCQ^a@*ShnCiK|&%D0~`jHB^~FaL?)W_VK+U8gHehYs7TJ{w_qr zor)wp@p-|(g{@2JmePK=?|VWCPi z8K99^6~)l)?c+0o*k^3@Cg8eckD>>-AYlLaDzbzB>8Ktk0)*R$gL{CqRBN5DL-_ih z!0DDOf8D>{1z?*7bevT4LGC&M za5bIF8Km@sT-E63|LBEwahDQ=Gc3;r8?n~t(CG73Qpc}^h#vTyERAqi)qI9tIGYcM z^t~IDIK2&L_P;)(L5>I=R9tJCMNrpOR+}A&)DUM+1{e}~ZB(aBN)cj)@4e3-S`UQb zKT^454$b_dT%`s<52B3H zH6bBSQsvMpc)Gho2oc92$K_P;fFIVJ34jBbKjp}Gzi{pDp{5^Kx73-f&3Gl^A5 zVBs*iAc{|ZWy>~#R6?5>QM5;mdL6xhE|dpM(#ZeQFiew?ZQ>PBN&@aT2=j=kydh1n zExEgbRc}neE&X{e4^UYfeRx4thvS%Cqc=sY3MN8?;_dB--d#}!b%|_be7a@%H4E-C~E$# zz_TSl^xw1t%&R|iZ2wl@PzNCj@_dPY73cSD@L#W%2;zN$5Tp%yqWg#Zy-)u;!1I>~ zA>|{dBAvaeP5)0#|Hm0U^@8gZ57A! z5{rK>Z~iqXp_5K@lL@cZB8rzPg$O-*w_JG)CA zV`DWbMp3WT`QOU$TOGgaJCLDXU+?xgJNvn#gA*bZ8GsWlM7mZ1sgaC^MahVXr>Cdy z1fM%wSy+_lG+CPcv9+FDF!#3?LG$j80o;OBw350zIMKqwqtVMz*#RZYEG#%oNZkox zZGX~v4|=HMX1vf7ivq#GJH;{$Q1KHPmfX<9GWcTzQFZvi7k|=6900NP4mi0-rrU6H zbm)zcbqUB6kd9~b`oy}kz1?k2{HKnBfUR(G1zsG35QrkXKa-suk-4;cl&@T;U;d+9 zK)^iTEXTnQCCaRFd72Ok`9q-Et`0gnI`(E?KaW(IP@9*#H?sr9|=YYXU zmZI4YFD?%5f{ft)S#YV)7X4k3EhLAo9-ySmUcF^w2;N!2>3_0XAmH~%$B3oaqL8`3 zoh^^tt*NB`BvBCX)=ZB~ZB9anoYqV>N|-;llN4MGM)KkDKo=>ApXkrG@zQ7>Eyex} zCfnjZWAI0#0_f2qF!xtJ|F*3Ep8uLsfWac~4g37x(t)3+;c)p5{riI7xAEZrZexi# z#b5q$^gTe3IG+7^h>?+iW#Q{R6Z4-8l?Pw~ui^fw{D03(MOnba1)Z*~|M|W^C+U8- z?%!?xKdY0?i(mEOyNIri&ogB72W9pZX-KR)&(oYT0hW*n6P4_p}u}xrWVMC?&DUvzP&)Vy{%@%WV4!Ap!2@H zOpW<~9+`xxXL{S(0{O4o{T%ZGWgJzAoC4umrF5q#e9L#t9bwrs5Q00yl_;1TPCN`7 z81#7<(YBYZ1T`Ew>kg!<)EYSwL~x;dJm}vw#EbWP-NX4~o8V0!G(hY#v%dRcZhNh3 zXnf^}u*DLl0`y;+>l4o9125U&a`6R#@`gl;05+Xn^ zOY4rnyQyWjyR?%nbI__uYI=VXOMoS}vAaoF%^!%N)Oc2t!saTTE0Y=CLay=RVdi*c zjfkE}u3VYm3#}Q`%F#|I9 zac9wA^%67EHea4pP@!ny4PJ6`&&4;(k20;`Clhx4N;$ISX~ny)kfEtSFzj`;u_A4T zM7kLovl)yfN8aX#T^X+r4S!<+nk4Rgt`1g5m`pYUAD|dHR}af z9?hcWGnC?WTp+CdRk{PFCzb&|brehDN~OV#%v6;|@bO{dtE+wQXEJnKvnihYvQ_98 zSoHD9ff|s<+mg?pJLk!yBhs5nsxV{x+o|A!g5moXJd5@5_IViUYOBO#oy#rGLcK$< zAN(#w^$AouJvu|5?n`BomRz8Qe5`;(+wdv$!V3FoBws~enaR1V)@%^$d73;$Ja08s zN@}R7N}j)Zy^EaMBqb9I3u0J_bZ^BBEV22>DXrn{0qa%NK+9#LX&2Uve9b7qx+DcM{Vn1*12amHwd>;l;g|6F#^nPmxlnH_ z$ZtBI8v5lb*Ybg7_i{|XK@jF7iY-%TFiM@$3drl)xhY5CxQlkmYP4?7H%Pm0ugNiz zEzH5{WX`=OWqUARDd>q}Q=l@V~e63*x2B( zMrpG6Qc0YY>VYaX%JZEwedb=xu0z){U$2|9FC&O~-(4{%M^GY~-U`QbmI~bqm)-<2 z)+EH9k((97&fa1TtVV_@q_G>b#YVvmV}?v;cr2;>tP7Wk|JY!hb?|qpFG<~Ylcl2! zv3hG)pzvQRpH#36zNiGanQo+aPl-tf2Xq2IQhBLhh^~zPyr@fm*-;(@a zQ8^q0C$LwPT+u4`dTJzW(P2Qi!&gwylFLst7m>favy(OaV&@E{Cge=6rlv-wOh>rg ze9Kz0ZgOCpZ?}wx_`c;~&DuC6Q30^l^jsIqD|qhCE8ELBSH^pm;fF!peIFGYUGFFv zPsW~We)8ZDR`6S~x1*U= z)3z(^|5U92A+Qw&F59C=UMHgD?raLn_Rm|ipSV7sjyHC!3fm&}MI-jut_5O<_f6#a zK8k6r`Rvl^QAN#V2V>)Y&dZPHany?Kb2GY=fWPr+YJ9Ryb8)nKb!GmLRcIs;g}*5- z9=gjQeqI#S9*Ef80hGlcRL2T}*XaSqQCvxO_vEfMGk@JE+m0gFaqV_i?FZhbDF+6< z+LcM74cS97s=;r;F5i!8^h6p<#oqz5Mda+vdSlb5dq&v9w=+Ty?|6KCoRLKNJaq}~s%%}Jn{U~@x9B6BTc8)KbBqcB-46pKJa=Y+p2d9@>im!L!DfK-8) zEIa&~MTy${+tYEWNrbm(ZxqJ?2{26Da%3@|6A(X1fwGpWobGaN2Pr556&VWo9u0lD-0=gvC>%ay2(+_w0fg}n)-e7 zT7nGvSf_-ZD1DoG@0wL$3}nn740$Nc+HZeLytRKAYJ1=NNfYTmn#%(Aid48ZDd}nh znM~C~o;)#^BP1-BS!k?cMB}~jDJnAs--`K@y|u1X=zA8&TMU3@QbY`8hWlx6BpXV(RI)S&??7{qzQFPx}jIAiK zI$Mf|)YeP)KI7F|Ml&bQni3#TaISE$JKL5kn$7UuhD&0BLEUh2nuwcvD{Xa;!)+Jt zVA0tF@+CSi{cbfBby{7qKq)9-|2>dkj+eSb^&~Q^GC%cd2)!W*_m3Hj7h*2gFKu1? zD*8_)hDrfrC^9>2dZ>LrD6vkG6#>+le(EysI?Y#(TO5?gaei9C%M^)F1@}Kcsa3H* zl&;BJ^hA4Uz|6`j8Z`9|^yr$Td>g1FqlL0LTP>BOU&h~(NMT2LsEoKtjdD@)OS&dO ze8%Z?8Wl+(Tp)VgH+AP(%q$19D)rHC<1P$aw$Mx_9>>+9=_w#ZetUD1Fss2O4PaOr zZNcl>z`e6C$OeLWs92%@D!=*Vk+jBvbin|1u=vl%uaWejdPHHWW$wlJgWlr#34tAc zF6MKd2MCSUjcO}$b8}E_Gr>!)4c+_Xi#~(q0pU_Zc<5+dtiWhm{xXoEj=%xtnmVl& z&2)FrE})34cliyrLb?dVf@~weZ zU;r%b%PbShkAC>5fW8!Ka5_uoaJ%KN-p*-`JCHc{{l$u9DN!L?h`ckmYF@N~s86eLyu-M#yM67snVV)D8iSBDbLXICU z#rG~=lQlQZ-(EftHMl-Sn9Vy1<;vhkJjEPe;p_w08jlzNOd_Q7xBYl70vg!8j@(P} zjzCOr#Ll4CXxZ(|zr_Ug9E|NF=@;uaH%=Fq4fj`kSvDjS+138uqU{7+IAYM#ez}WZ z%YV(A5D(hIF#jz)rcBS4zko+Q=;J25>!sI;lpr_c17CS{p}-RW_qjzN(C^1Xa4I0K zvBR-B-7_65Kl)zgT5|jrWNSRgle5>8nkR@HQ(ft|L~1+$5sj;n+a~@YOatJ$uzM?{ zn`|Jf`EMfy_37tTY4_-O#HK5Xz+TA(Ko9yE+g|->rX~T{J-m>cGInyUHUT5}!Y@D3 zM+@}v3jC?g>&ev~b#4Nsw15lpFCkFj24GF=g3G-=8Mq)Kv| z!M^wh?4c+CU>$wm)(U<$))V0sDzyW?T=7Bxpx_x*?x*8Qx7C6gwhNK4L9s<&&*RUe zuhgFzBtS_==gTJ4+U&i~pyUrh^F?eA%dQ&9;AdrVS^riW3h@t_?4guYKT>}6|1FL< zyknp;@(Z;gUr*y%DT$%QlJJLK3JyB>M2B! zOJ@v-`vxhb@{7vn5dpzU=;%Vlpeoa)4>v(k(Ond(^w9a~m4-{ci;b>CgO+M$*4EaaF962s^;@7Ue&ZHk zMb6Rs+_Yh}v3s%I(Wh{(0c@fNf!v?&v9ZqrVF~0%C`)+in+*T7uLXjDcI?%lY(xJv zevu&0$&IFr37=v2ArE8`!0Ji6(C`OaqfR{Lzg=i>PC*_@;SNE6efXlObPXWtxpq&I1+6y`MM^mdfMN zCW}85&e{-S*>?Ee&6_V<0QrirrmA&O02U(%5E>H@5fLfZm;iN^S6l~MWBNn6%7u_o zMD{OP>h>k<9f))3NdgZHi%t)w`|5 zQ0BDn0SUh0A6#zF;}7Q>h+_R;TqgHU*Xq9h^4<-cKrGI~FAPHhsEp6PX|>!OKcU_3 zzIp}mH(cB71Ww&C0El2X|!8|a$(3@LV_rK(KT&0K3BPd@7r;HA4zrq3H4TyWkf>udCW1FZhL zvo#GEuO@PN(H+HK67vTl`ZA?H)%@QL6L|PKp;< zdweIg8!vS=wr$FVb+p=wlB3fTA_CKA&OB-*ATu}*;ErMpyJ{qj?tOKomTPP@mviNQ zIS9t~DId1&xz~3#eP}axZ8=6_*4z#j^fPWH;({XL{Qg{9fp2qPY)qHw{`?Mwz+!dXki9I5B=Qao*M|(1 z%^r>{oT~ceiu2QBL#Z%8)X>Yu$BO$sPZ<(u7vA0nWrMvn#(|n zGBoILkl&x?Se)Y(lSN>VTSk>MuN$42 z)9BuW+!VwH9_aeXuY7?fl<$z5$jFwW$qIeTokEm_zsQmh#Dq;Dv6bV10hu@4HvBjj*GVX~n+N-J~d0wnU2jqJ!hk zF+bi@RA%^R*p4QWudgHFvFYUx$>0mR!cw{q8}1G!4@Ywg9h{s*5-u0kmtawBzuNl{ zq50{YL1mvyGq+l8^cOXhCbPR!#?xkv@#A#kX1sFD!%zaK63&^_8{7&Zn0)v{(b&1| z4ra31%MiQ*b*|t4Jwb3lr*OGEdu>A@1bM*lxxnxdguq*UVTqo|6S6x(z4-ft{0eS# z!@^3+Ty|8s6%~u_J2KtYo4j7iEW{o2AQ4xn+2;2$oSHNkVHL>-KNwbGj(4%} zC@LG(hrx&J5}le4JAb-V8-@q<1zl)R>0+&%OnfflAdyg{`o`95I^xJv!RKy;996+p zd@;P^eirw~uTqJ{-v#yiL&=5Xvz0$(_plye{!D_U6}~f$=4)NE1vB_BDIXJRx(H%& zSgKp;i$3)z9=EeY3B1A+IG%uH^9q-Mx#O5nuH4Ds&q?!km%hn7+#%{!s zm%gfrt-Ntl_VS6>F~Dx{+>_{@-T6{%n`(g#M)Os$oO#Bhp5`@a zl>Y}y7))OBlVV&x)6N3N*}WX;%+trhqCQr<)9Y+4AJW^d;id+fX>ItHVI}Wn0}7Va z=O~W`e+dsbC=zV0hHu&n3B&vO1RPHsQIM|#*-(<9gm6RYgadOurW>Ud4lVsdr^i;~ z@K+Ik*(%_GOA|5mxt!*xp2p96n(=E6OEf%lX*_0OadXi3sP2Ol{xP?I&Tye+W8nOW zsf?kaAHYUx%>UZ z@5V-G*&5mh4)^r&;cm#(@8Yi;&L@JnNi5q#gaBvkA*6C$*nTTl_|XPWkaq}_s)~-6 z_qrgJoqE4|wLo#HHfnI>%T;QCL?D0L8UR|?$E+KWA!`ZJlGkxxx;kX3Ct>3I}ZcQCeT4g?V1ye@6^V?b&8UpRB{ne6XNbqoL z7%kW1M5na&+>G5Ta5shJtMA>%Ifj-@g>l*3kN6=k91kc|FuCjF6@1%MKC7)o-Wr#K zta`u~Sfnv`0+G_A`*lMEHfS7Nr|A+c8%1n4K?es1;3mobU&>+L0pf>j=T*b(G{^lX-x{aUuA;1@I!ywd51%{B*@9q}8<%WpkNhJuVO00HY%+HYpi|{yEi(Hk(;n7$4 z-B38FWk&EH-*vV!wJn|9$?Y&kgtCK0+GihIQa6{3Cn%2 z9ZuJC*<5e$`|QsH*}*5T4;S2t0S=bib}6@bBTxD(D!N+_!->AV!uc9!jl~9M6zUg{ z>GG;4i4Sk;9hS5x2d5vNhphu_R)cRUl{Pc8vr}LE+>me$6LNWy8ensVCVy}3{1*^P zEBiy{94eauoWaC8oNH@+fCe|Y|K7T^?;TXZ$;CFStlbgozBC4y@gXSl4x@Q}hQgCp znd{Ueh~Z`Dz?_#huhfcmVv)n38=FW|_5O@IU+u$n&=Q1PV57G{cP9mF5~*?i@TRG= z4SLn3CHl{?9tIXj(rpZ~(5N3WYyQNQBZ*b!w4fJHqaUFQe>nSed8Y&H(!S`bNGd8; z*kqC`o`#9Om_X`UhZ-JP%hp{U9tr)#)BwMTVajq5tv{qX1v{|QGflFc!t4k4mIoj( zBG+p3D;=ASoilM&eV{v}VkE5+`@O;-41ZVK_fl1YKiB6Ra3fg~s_Y^45(g=u6jy(`%@eC(;7$AJ1Ff1m~%_xo39$X@YRX zaf~<55rMn`r5e4@?~63l(bk$T<8(s=y=o~e|csGYO*@pyLv>2@gT-MLojMlnnF zHNd&=x$Y_7nBry!9Ij!&=sEAqpXnRURD@>je(gV0sJywAZ^iO%smC;`$aL@#=E zGc_MoV`x%`X3ic*@2JB_kwisLzCu(uoNjqF$xTmis8v~bvPn1D=|aC+T@!6{pKt+q zj`Qw9Fv*&*>nG zQQVLv5E`GicZvC4I`*MPL!rU!-rB~@bD(=fX55mT2=+-icg|Z=Ie*q(!1m!&>E-PX zqoHKoC!L`$Qs#A57kxf-A`d#j31fiT2`^$Rx zJb7}w8f(3gG&dsg^uDaZx``TWc_UK0o3qVf-6y36smgNErsrc>;*=C$#v`^z zzAA5OH+ZPZRt;_p%-P+s6p?%;8abjFXT(N#zBo~D{zeu+g_E#=+bw8o3B zD~j~_MS{JX4c3kAqj*B44v)YufV4q@(=lR)I4CZUzLCG=tF389WVcBu_!a zI_`THbKraqLF_}U8h(G?cXSJu^C9R~Izv)jsotcrK&eR%9$t$FNamMn9rwo{Q1qV) zuEdR}qs+31P{|hH=k9(*sb~p=uq`QO(yf3i%iIxDrpNLk?}8LmYNVut3o>F>3M$P&X0)7)=7JQRw~8EeJZ39h;M-X~~m#l-eb z`OJ$1#TG_(iolV{l*Mrz;Y`NA&j!vNt`QA2vvR*dvnTCp4XYc9rs;qk`sah=5@TuW3*t5w=gkEc}g#>fOqn0IB8m zvm|%eRtJBE59inN`PTC$2yVF7+|=&(*SY;F6{<&e=jxp_GYv=K$Ypi+!>U$#edL4n zPyG)pP8zH%DZ`!PZ(+~xfFyv~QMm?*rCDK*u&b71&a51CSQ>~F<{K;hv6QJ!CX5hJ zFx+;M`sYq|hIp21?b09Pt~TH}>P(Zu45k)uPDr-$Xv7U)X|Ir5ukxUPcKt1zbC=n{Ro(tdz%i|~QCx|^g z_Y@qU+@O~!b%EYEiIxshj;G6#@rtg#{)pA5UiqTNd%5K`r@BdQo}y}_lUg!aF>aKg zkj~xYhYCR?zH*b^zV2cgU8#=^|>Q^_g~}d8m~FGfQk? z7+Jk(L0CxoEo7JZr}e2L#(?ri%#;zohO_SJqirM}6{HQVfFaVvHYU!M8}GAcTbV0? z1{I)|Fh|xdjUE(iXfzUnN4n!3^Ej(|l3VZV!5{7(tv6jw_gqe~=3X6W`QK!S#ET`x zLIm$zJ1w|x$36CYDxeN-NG~CeeElZXJ%SnzdjJF#tYlpM2o-E!lp@+5B!z_zhDora z1ecyh|JXF)XhKuBQ)xPu(f`~=6mx-~Om0L|)9XLdlBksBV6`9-G&hgN)tk^}Nu*Pr zKaQX{Ic0M`a<|iv!%*J49L{R1oEu2BkNIsyOD#HdFs-zJN<8y zU|?!9#F$JX27*?z8~e5u8H-1&&1XdY`5DR+-ZdS05@LSA3o!V4*jc+n{TbhrwRcAv zl~l>6tK6-QPpIHXY$1nUFe)PP?*i+k7KNak%NbO({e_mXy#?QfQm{=?!$XBlYQ=@l z(qXgu#5c(Dz`!L-9tXF{JObgDbp9k1Dvrz4aZ#v^yYbW`Yk8*x=~Cae44{lk~@1qF%fr4ID1F$TK_NmO9r9 z?wMqUDQzw>kZS02BCSH8NMI<)ZE! z8NJbW5ny-TiYQ$gF(yv22GzBA`6Wd?z*c3;Zv?9|$Qo(UEp)Mu7#??+30d*#=x!+f zstWtK8Od=*HSn|tWDd=D8=s>!(HZe58&-0Fh6+Oq$9R13D+ZGR4< z$M>zVCQ}*GuTd2P!NR3pLsI`xBC1fdGt5BFE5=QU3dNrm?GFX#7=VMdOzF%Or*Y7V zuHWr(Xha^naaB5|bJ)7U68zkC4*glZBujocCKR1E(U9~_NLFtEuIsslvBHx$uzu`Y zYzIbZS_nAq1Y^@5<3-@4ouaW6oi5T3Of*HBqS4N_~9ag`tvj*MB=bjV_Mg%r&{@T(Kwb=H2ytX$i8aMk z(4HS0XS}6Vf1u+?4+Y*FJE-A&k+@*yu&9*`4AR!)!%;e6lH*f68S@>G&ecLYD7DUh zcXTRu(4gC}RR8jb)Ms|J9Ac}fk{Rt;JB+}r^IpEL!@G~hTKzI;*vTIItx))okfzR`JwMu|Vcmd@6_9j*mpq4#~=g zBisSi3(|)U?`=&3O&V4t8j+;7pFP4Xi~Gu2khZh7pzGN+1`Y2FX5Cdj-^fXZ#FZTj zBjRb`3~hjE+!H_)adB-DO=I4MVG+tz!8g5enY7rmDFvApPVFNf|C&h~*g7EhGSQyR zOTAptKZa2%MpQv5r(uNh7m^Kap8|ZO*x2M`mYys0Vn!BK6Yt&+zLxJCFHhyrZKO?o z>~C}@tz8OR3AK(bc(1p5D--UGS~uN-br(7hNZ;%gBEwsRI^@wL3>*tMopl~r&)j}f z4x1~!@~Y7wpF_tU1jWzszlwM7FFu>%G<~c43ex|IbaC$3sLdG@1G6DEq_#6Z{R$hg z6K|)nlKHH$s>s_G>Vpzp=9KVyMBj^5dc?yyS|1W^ljFFyJKMFGq(-YJV8pRxK?${@ zo|CYB)C#R1Dp?x2(K=FXz7_~e(V{bXYdZSVUvGr-3^R{*i+7tQ{e|#@lY-6<98H}) z_tYN>d*-*-c(&P_l`OgSfKQMARUq^YTMM*%cZ1LR@+Dl2YQJ9N8TPw&|2y{3*^aTP zWe9JbDQX|PN@?M6tz$)QsJSc5+ijwATpI|;QkZ0!P7I5P*)n0%hT;a1Z)_q2?VbGe zaMp*@S-FjI{2ZkC@&XA^1SSjhjc%>T$pw(S9F#t>E5fD&vP{T83JG{0^?JSM4EpO! zIq8~ELa`(~irI^Cu&}}sc0uiGtdw-^2xea8B%OM-*vD;UbhZ#Dd(*YPJy={Thp*aG zi%r{88qY6=bqBfzUETzt3>5R{GGN{r*(uTKOTJrpt@d2F7Z*}2iALioJl7fJXcB0a}-PkhAke-G1XCDUHe|S}>q#SdVr$aP&MtoGeOG5C5{Wlr)YiR!X+%-SgM&-2Gdz zDYb#=)-#iql^hJAyXm}V4hJFdi!lhC;a4yc8x;)J=$mKVBhHHkcs@=`Uk3U`b6Gdl zoZhagcO5>vuv+DV&M0(30E1&r*l&m(SmRX^JZb`1{q~L*MK(ltb?%7atwn}OE95tPuw)Jv0i#`*6Y6*lHa#~59xFLNaI$E{7n*h zm68puaO*Irm{kAhzQmrAt6h+TWu4)Da!KHCoK_=-3u;KA_yznbUO*vg>s5Mar zBF=#$J~K;oFoQ{h@{sFvPT(wAhW1=m)hCszm3n~S%6M}+G&_s`9NM;0*5YG}Q|Pf# zU~0Rv3T}${dwmiwy9j4!iDwnMP-L$6>+x=0nWamMHNg)6OyV?8yq3dpnJ_SUeGJYA zg@~a4V0<~K@l>T9GYj#13q!(qGiiIz6?hm;m?>>Arn(54k()~}lVL9VCkKcHwOhkb1WiKR_Cpq&TrT6d z`&)c<-&|yHO*^KjvO>S^q^mu?Fbexz%#($*XBlUA!_29_X>K;8$Z*^K`S3EIh@`c= z$i4Vwr&(R`@nlO%<;<*}TIXWz1qR&UWiM;pLao}K69V-zv>t==7HzL0wt~t5Yo7Vx z^S;T8SCp_}DKQ_)6j5xA78Y;zWOdPfaY|Sal>p;7Frd`*ghR@EURapCYuK0Qsxg-r zWIEY3uFfoYX8j)0g>dG!plmA4v995)?N*fwQw1K9y1L_MxYyHzhzmZ?L%$dKFE|q{ z93+wtZ+sA{$=hCn!q!r)TL4NK#15VK12?e;h(hMaw{^np&vbG2`OJui>X}ME-k##X z6)EBbuNnsZ)_CgI*Rxo%Z*uwtz59Maxm;kBq9ADz)GCYml&l6XgMSSOV1vD&Jc}tL zY1*j*5{WSgf7#$~te`M5hi;G-kAGd?67O*YSJ2{^mG~2O{AZBk=dp(d1;2S>R8B#hbG7HaZ7X5IIyGNaQoPQbW!GVk)cq zbwl64z^uA}FaW)C|5;rbfo>~y8(5j6zp3j$Bj(FsR^jFWC?A7`!NXu&u9kuh z5^LY9*PUM!Tq&Ad&IDjJq}u#HgONxpUa~vgNZV=LOGI`C;KIUVjUF5w&8S%seE3N6 zdKlJx{OY8IOkuryVlR?K+@vR#t%eT{y>oQH^@91^Su20d&2_2HhbYNYLQz6o9-or^ z>gtlib3+n#r^MhwHJMptijT!{GIQ`64TROnY!T$puZ3C-M#ya`7wd@hCkA}hX|zRZ z9V{ulR$}$^;F=MLpVc;z?cP1D4v826>Rv4eftAgZ?K ze@H!IG>G$giK(0wjDFH{FrD|!=|I2}C=WP!P{E(oe{?WgNUN)N*&*S4nEn7n;!NH@ zOlZ(#QEBZlnnrVOQAO-4(TVz3QJC1BWZqWIyk!Ko3E*g+)VqB(C;c;EX}c`}T8O<{ zon2*kf|)%9%(S`cn8FzBwK@UV67T$B?>agwZ`Vn3>21HT$uS1QiN0a~VsbdnE!`1H zf#CNk^nPLLF>+_DN25^r7O^zAc5@2#)w|u3t`H0*bGPeN-;6uM@O$apukXp?mQ=@w zHl)xQd-fadGSo`H(q_rO5WP|Fi!sJ6);=-Ukqt4@h>9;fanIGRSm}Rj$Z#jo$5txI zW{T#jzWitc2<_F!ZYa23eo@dU$?qRc-bpAX3<`Ci<`1bWgfvjiIkCtXyElCIB#wgx=)5Qi#eU}H#$S73C@ow@C`K$} ze;7&NA10Iu{dwIWWf7TsjCgB%!U;=2$r-Q!|5UkUo@RSERg3s&&P~sIDJt0s0bG|xEQf)fKY}5*VcCg~mY;s{*WS%H7l+4a(UPZ2w;_gP%=GzOr7X_hQu+(Sv`#F_}FCoVs zW{Tt-*Z7>eM(|jb*uw`Rbh5S|O<(NQimlz>;Mc*F`-NA2)3t7Rfos1#g|T@(ki(gA zyPoUB*$P&Qy*6#XQzk3B3bVg8VSH}a-?x}(!;Sv5yi@tuZ`hze5%?K9xBrzq)-6Q@+*N0&(+hfgV+T)%c&$W6NuM6+$uJ+^KC(?+1 zwL2s~ zkY^1JY4;#sFs|KoGwd>$a;oSWhU$mV()*fduT+!cb@jn;UAV$Qo#kuWCuaY9(x8`^ z40*>t0}?-SXS@hNt5I^CF44&i%aIZ4?e-T1X*WsV$r&-msQQWsFAx@PMD%WGF+f2r zxMAQJmTgu??G0ZDTEFT$J#2VxgPvQy{#hEyNTdVp1%b@rS6ZunzCQSs^BGv-SanXN zT}|@q1P0^eMM%((?c30i!Xf!48!Xbtb1;$FLT{Dow8}F>8+<>gG`O#KetOFbq%sr+ z70#9LCv&*!<$7JxaGW!{ox=Igy_!`hut5@yN4rSab1HP(Hk$E+a6k@8djBC(znfws zfAaI{MxJoT?u+&BsmQ(T3R?K4tQS#l-kupSXsTDp>durnCKOxs$rnsMyf;{shoy_R zMv4}pM;ED9e`Zqy*3q~3!1>~FKze9e@A!Sw_XK>{NYR+W@rRYTRCbK?{hOxB5_a3o zMEno2GRO}bNfO3;muj`x6}IzRV58ez^Nf(7Cj~|agfV9%uAw~Ag=Tc3q3^X*J8u|` z_I2Je8rJgaAsmxV8R7ei$PSxsJY^-W6HD^MJT{CPgnmz@)bQYnkj=Hp_Zzm_zkP8~ zD9h_8-(tq$NRAMY+;EEg&0VoX(yu^?NUlsb+R4$Xuf!Hz=h`oXCHUpWWR5>ea|||X z)*c1B6<@JAldF6&UQ^Ue)sr)Kv3y_hK>bXty?6(?(s?7?Gq=eH?kL*UR}pnE59+Sh z!_rU7(fL-hTYk^l@%NkV_H+3Z;J>KG1JAPD-xWCfxNZXR*w zR1b1mNFtaSFc|AqJ~4ifCvGtl|17}b$lfV~qicl;6Hs;+eWk2Kz=I?f&x5wvmw#%Z zHnu94-|Cy8H;4fy1)t`7*=c?_B(v~_n+d;HL9UB9 y<%)MCh>(?v&hL-e}^LUmp z`4w4`%IeuNysmzkk{Y<9VtHTKUDq!2`Qc(sMuQ0>;jdPX?`WQ$><(jSwL6VRPWKPy zBHgEU<-%||mv>NRqg(CD+p#<~oY+ioM7xxxBwbj!8P@c;7LJvF(S44yWWejO)(0MNnQvnbu*0UL zSRWUjhvjNad>in~-v5xy(NzYGCH_I#HXN{myQa%fbvcKN+I19JT@r~g0u-~x$ixX0 z#)S3PbE~0lF zN3$%~ozkiW@*)IiGI0zl&UZ`MlqU4DPBCHQOyg=ydu@Jz&|W%Qa-W5TTeL)IC(KvX zd%Zh8d1f5W7*-Uf4Lw2^*lX!W^ImGv@;CAY?7pD}0T3rXlrqxo$^O&3+1vX|IZRrgO@mApRk@6iH-sK|`-P77 zO+EoZEyb02Us2oWBFx$D(VH=#kV=mB@ha_fPIKv9o^72f5h&ud3s`iy-b9EAv%UIc zGE1RvM*ps`?WCP@;1V?yWzXIDl>65B*xqB^(E+zIy|X+;C|9Zn$VlaSwQ{P5KLQU_ z#8~gF75*i17GSqC?76SKa3Gwo7FC4&tH&jlqCa<~`}J*qp|4mTwR_|dolc{?4}7}+ z^4Yc=L3Q~BI4=`=0gv8YN<6Bw5)#()qV5ZbBRWO1e4=;ndCyQi==7+Trq^$X1(zvvCt_cR__2I_G(CInk5y&uR z!PyT6a3xuH0k6e?`_2wG}nf>IXyM?i$7xwo5pMt&RWS!A<&n7RmY*<>$YU zQLYj^0Px%jCzN7l{X(BdmNx!6p*5F?My`1OVGX-ZBCiB?y7V>C1=(YzB$%|r#kA$O zvslWL5ZyXQ(0B4c2^>B^|7<0oHlB*<(9jH2Yi4L*KJbQ;wHe9f<5ML!4d)X?3%=Q3 zUeUgtm~5gT#TY2@y0PBtSOs2)s({bzzkHGjXML~R9ESKT8HAKCT@v)D?nI&3(VsPS z3CKpiUEvvpbcW6^qN4bOvoag6{HoakL=U8~rF>&dBz;|E@4LLL-m2 zn#0K&D1FJ0se}J2pRf1Aw$*`(>L^iuNG`=sO%9hWpD)vNk4L$1@|pJn7|| z)*J)7aYf=4!thBW?tQ)ee4}zAlh3jNn+KJxS<^n5W2_kJ###ppx85Di!Kq=S15lsB zDnx-G!ei=Z`7yrZA0kV%Op(e>+Ui$2&YRTgCax@ml;#=>FPX~UlqlyEw;tgjW9=@; z5a1nUvX2D6n_Oe8LNDG~?HCK{LZWNKL1>L^5708X%}`j6K}&08)^hwzAhT$(xb-Z# z%peXoJX2;VddIcX>bMt4yLzM2YLeV)BbJ+G|J6JF{F=qIrx>vRkG-!Bs-xS!3Od@2=0O4?gV!a4#C~sgL?=b+}+(Bg1fuJ#eJHOeDdD!z4>dVYW|q2Tems{y6-)G z`kcMjUTbZ&e?SLc1o7o8en=Xo;H`Wg6B~|WMUQlJ3yW3)gU6XYGBW5rTah>jNm#V+ z81#~&wnd+(@$R9wTYc0849{arKBkA#q3JA4?rGq?fxfjuqr8@We&=!D$X&6N4 zH>lfY%K*8y%=MaV^heVc-_*{#AJYbX8rxp+c1=Qo>BM5RiyXw3*ko6Cv(qO3;xMNr z+v>8Y^{&ed#ull#1q_@Rf}#CR+t2Fwig$?GL95bmPQagdRpi^Ny~zs4*BGX!K-{~0 z3X5O;hWFRzAy+CE-&F#YH@6SbOi%W>eJ58R18F+9i-(f;`bG~A1Yeu+dJb=-wF4pn z_G<;Ab7)DdMxJ|bd`5BDPde2m6B>%gEi9%^HBiXG=!dygb4FpKqh-so`Nh5cE$hrLl7!m|WkFUw;+>bx#Mhi#MfNzmNsUm0bn&9kPl6%@XB7eJfXK)evNe5&5os$(F zyV0!euHH#ju6laeTPitjw0xgAKmU-C*v2WTGI800@8wE2p^|Xi?Q=82oZkOrN1mzGRT5YtyMJ_D!GRIx1fP5$^>;z4c}C zxXCZx6qMr*UgYcf+A?@v_*VpjqW1U;(9g1OdVbzT9rqhntfZYf@jcO70XoLVYXbwB1RN) zPD72B$jJZ78(WM)o;owR|6x*cv7K|hOl6`d1Y=S1C3$olbx@pWv0lF|M}TQhgl_*T zdGSDUrkD|3epmG4juZnhS0_70j2PO8T$;9V@lUlt{(Np2t6;@ z0VZ-$`!dTEzPVWp>B5{2=G=qHsM5Q^#7tkZ0-b`>AB+*d`gE{1(DO(hZ8aMB>uAo0 z%x5w?s#)#jD_~aS8)tIf!@R*(UYKiFGGFHUyDkRf2f>*`+xo={Q2v$v|G}t5b@2`o+jFa$CRS|mH7GYmB=7eJ}ApL~8JR*LzH!(hFx=`A0 zI0@PXWOKCK5b$fK)5nQ@V(=>tC2kz`!T<_OX^TyT5jZ2AC3ZWB%y9#qW_I95#cIh0 z@p_$_mpNT4?lS?DLt8Qx!_uJN_9YqA3hW|(PlT_%5--%i&&9*^D8 zF}6=AR>GBLBh!kqWBP-YFtK8r;!y}Y4K!~Fg+k9Fxb++ySWwX71=abvkG*;-#gkr! z?7G%0&oo&VtfOGpc$=Kh29x&Oxd3=m*hGrwXY6sYG}VR^s5)a zS9;^2C^Is?m@MMwkKEQAKK^b`sft=>{}K@<;I;lrYfjMm!W9DoI1E3uLp!@vO6EyA z|A{SwmgcaTp!EGWcDXBS-5&q5Y~-f!4lK!SzB1eLYQzqPJAyzq_Aq>(_`)Von^&qY z#3oY1fZx2t5lJwk`DpTI*Z!E115A-FoWb6lV4}?{Z!MQz`E4eI&jYUC;}_&4`;+Rd zGg#sl}Y%*{OI598s~CIQpaOe!XQbsEvBvy#q!>r+ zZG))7E#H<#EGC+a7WAYaNj?DqD+uB~8#!Wi$I&nI1h%s;o+GGKTiIE57#=BfmDB`giD zkf}F#|7l2|y~8(NG&FTvVxAP zYo9JKizj)LOYg-RcyqpyHaY&d4b1lWYcjFK%>+KJn9s&w0*f@c zoO!CyT$%b*m>`GiD4zCf$dBlTH?Bgbc^b*|WrR9Q=BW@xqXtbbh8b#%DxKo1rfu`LRKz%IC>U5X!IgwR% zlazBQbWh*|Ld9IN_k>4;LX+}N#I zQz>VTCStEA-7PyR4c|~3n${SpjvJL4Z82Qb+3WHi`J8BKHtRk^D)#t(%>I|RXW@Y2 z*SIuaWkJ77|Nh&WKmXA~WxO@o_S!cc_!DZkyBe#9rJy>@^|~^9iQ8(tSRgUN_iXv_ z!aQrqST1e_i)kB)%fbIC?Z}!eCV`ns|EEy21{!Q`M#%ekzFe=D$Xx=9rq){blo6g? z{FO+Vn2T)3l${PF`hAz|WXUT@c`T-ylwx-AW2bmFou6;1x948wt9CQtoyU<2&||XL zc))Fl=GA*#z4U}%aig`CF=6*DG>E%!VtYv2rz5s#35TfHET)dNTi$_aR~pNZ$c-C( zyue{MQSOw5D5UxcheE1Ss+f2W ztFR1atK^8DhC}#vNT0a!P4Fu|jJ1xDW)W}J30G5pi;wP;M7=4W0HWD|BNw|1FBlcu zgjee*OpHrv+1S8S;WK9n0g+wV_Jp!4wg4?bt zKq1o`S^J1${J^XaZy+h1>}o0XIiY-Dcd~$-dAJ4X9&7b&!vPXV2*@RXs@vyOz7uV$ z^SG3a!I}{(=V>J6#k!cG8Pw>lj?%wp_Y2sous>L1t_D_26GA!Ts;DaKxoSr%EGXj$ zERle?h#VjlRl~fQwB9ZNy(OrCPo`q~R1^-t=KX8glEiu--AMu0LN0|~y*G!x;cR>v z$MP)(kO(IgjWwk@Vj04C5bsp=2-pFK48Ar$Sc*Utk~>n9!$WmOrkHeaEvL8e@K z5mWH#O-RD7L$fvc6snb;y1dT0(^}??ucBnwjhuIlZ%Loh?#ZHblJJ+u-23S~e@C@i zC-vc(5lepcL@fJpyvThLsovluI)@4#IsOM)!s_n~=h!hkWsfA1$zRhbN*r0p1+3DWRBk;;pZvd0`fmrGVo$1K zkiPl9{rsIuK6#FCnBU8-~y1; z<`@6iUH`iH)4>-3fD?s^RP>)2M?ig%8n}RGe?sH`#UYqiNOiisD4efxR0S-93c?+V zZz`A6U`;fuTtF1#0G0bT9v#UV8g&6e3W_Ow=Efd9* z88gS{W(@DS!a4gSvoOfNC~tq~F&+?V{@f*RbC^tK2(pI~?S-#_GKNgEfY9~js$Rmz z-K=?$%}$@~!eo;3YU-c(|!^^=FSx~X5#&p!~NS$hQI+& z^BR&$!rJK_+gguXStHU9HY_uogxDg#E*}Sap(nyVk@s>A|i9rQb4 z1flRyql-Dx@5M+F!(JSiUN-T8?yljL8+HABUSTP8NhD(~yFzSx%wYT{Hd_li3DQ19 zUL{tw$m}@T#{MwLO#?A5xLs}$#_oaBsY(6@=Hwse8 zIb}|&J~o82IxuY4TODxju3+{}0-N$*Te}|NuJL@L))m0)b6D^LjjJg+SSw?XSK5>h zY~5_nZ>X#uTlsP|^S_0mb(RabXs*^kIINdqPfF} zH4pcH3jUfy zGliPdMt@41#*&l!<}$FGtTGmh^4Sd|gT7Gh2Og{OwL$-!D1c6gK)Onur%MvcQD5gWc^A$Gty}`J%&4#=h)0hRLAiL*#}^ z;yX5%)H~LaY_syOon?{ofqZ^?(*2O2&FFwPgobuxkt8P*&|MRyTim@l7@sj1m1MF- zvp`?P>GE!!?rq2U7x36|XuGS;my|Eo-k-XcqZu9*V50cLe;53QF;bQS|8(2JUf^PT z9=!-)x>B?5x;W%|Uw?sXla(W@cU=1lizTC&GLdC5mo-HtN4S-JG*3j`@n%0B0prGh zALxV(X4>TvZ1++}Ls0V{JOeOf3oh_h(NtasyoUIn0wM1^W4O<^M^ISYS0Xv{fVFi} zLpEejJ`QNVDbmg=?}}skbbn;YJfQ&(&DE}0lXwPUK%W+(POoi&*PB3*@G(zT+?>s2 zKN{`FBt=?*=Pr$EEP~3fz9_fzS}e_oj3sEDqBJ7y@i zt3*;bqbZj8`n6J(+dZ|STXy;i^oaiSIA%5QPig+G7@zOiOII&$i zXl5L6SjfSVzv)eW^;ml;WX-Q!@lulHZlmXii2sSBQ7#Cr%)Q4$az}~iavjs|K6PU}Z>ft==#>OJbXVzsfklkpKWuCwUXrHK*K zL>7A<^G87Jr0%}>vpLhGQcwjOk6yds?pI;+;!>R~UL&6CGNMLC2^qttNPOO_OqcTy z^okR{E9I|nGq&r$-YfLI9Df*7J5g6`v|_y6@aqO2ZF)jN!nRva7hBE}HNmQ(f5YpjvgLqMb0>p4W1|Rp$p#9-u6kzT=ZMry#Esc?^i7A9>LuxbAa|kzPxIo@>7RAp5({$p+Yu$#<7p02tY0r^+BOcgW}q_Q)OX@ z|Ga{GZFOA1(F}<6VQwHM&1Z`mrJ5;D3zHE#NH933kkAZV%vMj=R?@p?6M#vOgDeoZ z4O82-<)<~A+!%foBNZyOhDwg`E(NcU?Sb?Xk8@m)L$h%be4OFj(KlSLf=e7$V-RaH zHnI~wf4KSf2JwI~PgQ&hHoFN$in_Xvr&Ra)YkajsZH1wl(5_r@PNU9nax-brqeiAV z?=qBFIaH;qqu)E7a<>pHl328dlLhFpMY&xl2%l>?01^IW9AMtXe3CRRwZQLqzZrs@ z*d-!&juWowy1CX{dWG9@*-63J{NdbKG!9S25RqZcd7Pbwvi%l8qxOc4pX0?^kL6Nw zs}uL#v(v_(5wip`3={aon~g#ryk)NQT~b%M0PKfvXaf{jF1#G01eSHfIOeJ*K=7o# zbnkaL z)R2Q+i`t#=y0+RyYEE)SBsI_3pDl-PLjp;+j=^bYKUA71(|@Id)rvlqOD?A7sug)%fwQ-uAr`x@>S0b$D@{}ETk$^cE^ZK-I z9oP~-tet8lAs1j{HgK$%VgVf|4lIo?{O(It*>V+f3*6pOa@wy@`C`3(WvnP$TPV7d zC|`480rYbaLr1Du9`Q+Z*XKKI{*}gObkZz-3U#vy)*xU>xc05@z+MQJgLeJZd?vec zX`@j0QKrj|x!mK(p!ke>C=x*;S~-3O4!eum60OJaMD;CV-D}?JSH??qfkQ^V!}0;v zz_1d%`s(cb7E43x)dcG-eG^v%`(o_MEev9v2L=?w?i_jlZx!S3=zSUe>FFz!w)cI* zsUStX?l<-3AukUeVZO90Y*X9!v==tU!+Fq;iri#15MR1x2Dm-c36vt*Nds8uly1Hs zec(__iH}u+{&*aw^E5gfAlkswwF{ej`M3J|bUO2K z9E*0ONk6t#S|5njRim?xotvMAv-`fY47o~a4NmT68wWo3?!{`wjhXmxnG*4z^@lad zVYu$zs+MczHyyvrwvrOZVf(D9c3q7VjPE0%M|Ak(gsTQ zu;`9>l~ongHb#YX#0Aq&G%Kd&yUNSatK=jmsTK6PS*?>Rx99FTvVz;V0nN- z#G?Sj`xD@3eaq#rXv9{!Nfad-gMF-Wm~(ADuc-vT(@);hyL7j%FYhk3SaYARSlpnvTSc&C z7#@r8;X*Tw_^i!X8pbh<@j^ipbr8we%FmbDuMujC!->!d?2ZwxN{!i)t{Uy4@N7tX z5ewgm;mSk#%}e%ZdcntIb80zU15P#v%Kn#*SL@aw<4^!H8j)xW4LLlxy|!AHvVK1wfjnC51Z7X>^*`8EYj%BBfV(xr#w}45;GwgApB?jIt=T8 z+k%t~URr1q<3~PU9>RH;*+lg-WicQ;+7;T=`Q>)s)9Qn?4%0FQor0JjHxSJzX3+Z! zjN=U3E~i0`Y@!|Gi&#u5hxH+{rnWfXbOJ%(e%$2~U^={P>N6bY7!+&l>0Bq-L;|xM zim)Vp4;A*yRUubO1%9{3F-Fo?dF}L*XtXdZ`)h)k9XS}*7iMPLKAMpB|FXx;4tF_R#WL{0%A9s28 zc@Hs8Q7|GH;L}*rVx~MRJyi`iTJYQjM*u->dyhbK30? z&d2cdy!yU~%hM9NGTSYUMpO+^+3veMh%71AsfockdmB6lWMh-_aV2(~30jBG1fI28 z-(~wh*j8*&R;@4~-xKDtH6?t_&F*6|m%B~3Ts^%`guCxjJ6WF+BzJV#vKxeCX*hNa zP4xP1P>~~jZa|5FajHVAlUS_hQXP}OsN@gFB#l^{`cHrZLL9t?=i7Yl70xwdQT&2L zD%_9kz`d|{$tuFpi#!{jS_6ZzDPW9SePe82lTD?(5&|$LqkY)wI8RNY3c!=k+Sblb`3ai**j?)K(W4x6WJKND|CLvC++L9UHz=T z*Y-a)-W0%)Zeoi;7oM7XIY1PR-DVv^Ojxu7W(6{Er9YZ<6Fhwl>7U5PU&q)0Cbbdp z`Vx`_To5-7Ml|*3Kfl>u-~+@fa81=zkXwi3uP>d_P+;J1v%Fe(R+0V#Y|_#R)3yOhrf@P%K#jzc0X;U<*(2AF9$6gFtpGy&e#S+k^idA z!~c%#@c7_Lo20z_nF0VNJjdQR10TXd7=W$#*q^NFfYCyVhG}rS7hH5`jHy0a3_R|3 zl47;Nrg&O;Ye>L|gB^Sj$kO;6g}>9L-4DKK8wZT1H!`;<98bG~G+iHvVARQNwxs|O zhZ5k)`BN$fM8b_m;`!pqe9gnNjO7n_(6fc)_;A7be(mmHuG({n#rZdl&{L8)72<=7 z{R-kICH!a~gq_4s!+W31*B`t|RK5h_GM1s$kd|B>adR)X4;E$*YxWhgAp!soDe{Mk zM_=B@^S)8w3tT*Xc@Fyd=S2ib7iM{gt}_?kx`tWm8Jom{IOgy>VldcG0+u9ZR5ERc zKvcp!0Os*q7H~MRhy`?%1|p@{e_RbvE&hTX zQMb~?e*1eXyh`y%KVpO-xjF@bZZa}Q^f89%t7#!zi!Q6JkLK5XrItp zuU3KohWECR0C)U2zFg?P`~nyXfQ5d*Q2U!f`sbOSabw^Eq=7e!{RhB#IS=9jm!0~m zysCkP0sdK6eoPGW%X?Q$N-yDgfX(=pJA=@zZim#X<7r5q0bQg!*lFZ!T4U!n`D2nc z%qP7E)Ds@d6Yu&wG7zfZ{fY&#KPs_U5|@JFXf`@}$3URW>~^c)j|Si`D&g@yCLfO= zGz`M)3C!iWoVHwlzNDrncmE`g?p6_p#ASnPH+AoK;^Oh5DLH!GUc%c8JexXd_}{p& z2L*D;mX@A*!Q~-WIOAS*k7oZ=PbS6GKI)nsFj}8TTCnBJ+`uhvo=^NhXmQs;md%m& z#En^6@v_z2tC>kJk9^77m^3Wz9Vm?x$>tM&Try5 z%yWaW8I+NU187RMJHtKs+~ZPi?c+e1LC}U=CV;#ce;WnxJ^jVymk9Pe%eY_~oG&HN zsFXi2$|-38tpnC?tCH5QPNM1{VMI~Mry|>hLX}na7wl69elTbj14*E2b>@+zcczK& zuGPWKE3w+ZsBDpkHsbS(b1bI41EEmdxZB+#%XTQ+GpBSv+l{^nW2?=57BLQ;6+mu9 zZ`LM9rjh5R+ZU_JYJV#Ykk+&8i?0kqaM7!(O_$`uT5}Z3C3ITd8nih%oF9oknJ*$c zIHldCwzfk!mi=h}`{l#3CJm{zx5R{JR!`2J-~z)Np#Usrvet=)+|tD{BN#>Z|A z^>bryr%K(P;d^4U#Azp-pJTr8kG)rPghV=iHlyY(G)}i6Sk*)t4K>JAU*#G@L4Ymq zTa#)g2SxGkXIwiIjpdZ;%&Ia(lH_mR`=AG?AF$cRMG`kfkfA(=3x(l|6xNAT>ag41 z6rAlcaI1VYCThNC6-J{}At&xvh@j6D?KvX!>#4xB*1b%=pIor~Q>OnB%;9tVBRFzD zfZ}H8p0qUqW`kS3WPvEezZRCWMtpM1Ge2+KfK0Dv>9x;vpEB7+`-2Yko>=- zv9s&;j&98M@0>)DAOi_wixrV$4*!Sp73iCNE_7i$Vh^4GuS}6B(Pki5^?ghJ zUDF>%oA1uyWIZ8riHxRrO$KntSKr(M<5JlT!C+L_oyaAS&zJjkYqix!aEpi?X&!_= zvG-Tj?J4l(v6XPNR2{y4;hxhhuRyI_1aRP@20Suj06WcIAX43kOL6MKB9==6(58-W zwUT}a`(!}vA&L$qOJv9-KJ#<0b|2q$TES9{c%C9z@th{m5drX1oG{az2V5!;r3GJ@nw78RXP6q?! z>Y$QFz{OCxPiMssuGjhDt~NtFVRp){09!%JtJYet+QdHfSE-5JC9u0H-&}sp)vW*KqFCi~QSo&# zBeX!HdPcFR8?U}P4(JsoTKE+;Ln#8h%=m~07L`1DyhuYjmRhrLP7wLxrGMxSlZjnd z2(Xy&cmW$AzU6mj;XhV#PmlK&n*%I6qMrf+k+4ola1o`Wz>Pmis9#X7XMv*p2$28X<2 z6i7Kp$kkTothLUU$&1y-0L#OTGD9p*(0`!O?OtW808}~ll~`;uI1=b28voI;F74SZs$%01KmoCAZ~ot7EAA%D_{OFF9Eb? z-fWDRhdqPY^~E>gcWske5Z@oJTQ$4w7%0)Xgdlu!LKx1o-l9>tNNTnap}}IwqhxbI zdyU6N)}3mk_@@`ZjtlRybhE<<`0U!(vDhS;rh)3o&ZkrZsROV&fYXK!Zhy8MzG4UO z!I7^Uua>EEk?)O6_wYg7Vmp#6|L{t87@$mMb6d`o+1AVDNewCbPjlHnXp1D!#Zmhw zD(J&wg4z`+V!Oj|a#P*~fZU6fh~0zl$cAC#CGiE?5&)nNfsn@zoqv%a-EiZs`x*>gdjkh zXG67y#lf1lAx>29rXrpQgFMX-1Y3{yl0~^#RKh--7ClF-pNma$&2=Au%2WVy@{>m| z!=oCJqm_OXDY<6478aBFRIkxI;$8oRDe%ooy-cHNz1v!oY#5YuY>d8cgs(E`M;Tt;p%^+6Z}UKbi=W-siWBG?GOj+0K- zpRuwhBq&W6xbK)J?@oGqK)8x+J%+cyJ%{ z6xCU)OpE$g@tQRINQ%E~Doe8LgkULCcHIYgsmSwkX{k{bP_&E>-i8JLr!DNKzh+O82 zO(%BtbEMMm`+HhBY-MZ$#Cufr%n6~+fx_YY+@Q^#8?A*fyl9OkmrRg!OqJOtfC{xh zKY6J`vs&&m{f>+O&dp*y-uwht4Kwd%Lrxi>lTLR+to}4NNH39i$?*g6(OC_RQX`8! zjU&TG#P1SQK`pYy|FcIR8RzpJ?nt3N8a?n|6)CS$89VpWngXF7W@p zH*fz>{k`XtQGDv_t=8X{Tb6;iJFfM6Z@$!In``FpJLHjzckJ(*W`#iX+mxlEGL_*=T@}fr!;77wOpCY6f4u|1(L$=W z&!otgFaul>d{_qvkOS_YNK~2x{@3Up(AkW&!m5Y^ z>LM>k zBMbch6;<$n;0^FNIcr5;eG8fA;pxw<=L%7PhARLpzi)w=2ni`L`RxAvJU#z-C-~d~ zL-95n92yt<>F%XH-M#H$Fz0{#%JU}$1AqhKmTd=o*l-W{HxB3x`@BioiqAv#Ki{8C zhvJQYyQ}{ziRo$j0b@=cmxyNfzcnrT|9}7g$oREDgR@;?hd1$c^#Dz~Tu3)=i#GB< z^%QVDoHeG>5NADr>hCxoX*5Nz-7oWO6Lf#|1m3g&a+%%$OW6&8-Ski#AoSNh@N~e9 z^h5#kp;boxW0&CGeq%UQnG#K^sfza4I4YUsA;q9~L#a9gkWP94`*Cop$pV#nkq4Ek zJ_U1bMWBR9J!f}#Zg=JFA9jX8C&At)Z%mp_A`uryb5Bi+!{Q_Zc+ThTaadgCa7#TY zDXQ(jLF*IwQ=^Sb7A&@#ch3HocuW#aIkPQuc4v?7<>=d{NWBB!OH6(>q+@eBwasyw zL!ZL_V+Z5@4ye+|2gJ#s`JWQ|L!sr~sBEjNr8Q&%UI^tzx1f|4`}3~L9AG_?(5z%< zfNe>m!CANl{n1pfgec_TCZH}84U;e>a-IwZU4E-9lL%A>D`lOa=-qABf2z?p;+S=< znx@l89xm3?u-P5O0rlf+nbGS*FplQ94@={twrB5XM;&<%|A|$?SVOS4%?B{!Kks7I zge8u*W*nQv6mA5k4{9F}W3r_OzS99tteN!ot;otBo%4JU@idxDPa4+;lhn2O!>ALg z4kD+DHN`e&#WU@z?U?k}vhFAost;m;esLnj)TYGped|^yAXH3RlZKXla)7@%TBt+O z8%(ObxkVYh8`Iwl5QW$KD);Cub={3-(z4a$_qqVOX+i(pSu;zS zMXwb=Q1JSKfd|Z&+=z;dFhnr3~7iu~x6nHQ51G((7!hT_0qZTJ2pV zU3SUro=Q&Cbob7j#u1tRkfX1WLVq*q+%x1;IK$I{c~}Snz-e`~2e0dBSIMB*EBz@9;|C`BSE` zfSbC=HI3+Q9zJL5A(sOwOb`Pu4?rz@>u~e-fvEVYrGYltn|#wCKk(M>>2x8<41x4I zm1yO>hN#5`M?$K(%W!~dv0Da|#lw$SFC&1K=7wod=a1~hO&^V<#6;sr$v>GdOd^h7 ziYFDH(@Fp2AGz;IA<0I|+9Vw**r~3}w5$9^e?L`gwK}e>d^`n^UUK+L+eT~LsECsr z>C~Of9RZ{Pu-4Fwr#*Lf(hMz#uW*<&-)8PjB22hTg{T1NC|^Ba6WFJJ_#CAxg1mD8 zD8$PqE{{hD7ifatIOY`Sc)pkvg*7R0TVOM6HCYaTO&<0SjRA;6VwIwrJC^GM5uIJQ z)>7Gm#Og!MkD)2-gcR}t>viIDL_pOXS>E#BS=&H^u5Nbg=%=j(NguX_!f>gTFp|W8 z>H28bHt;Rk&jJ}Qd4R~47|Nn^6GkktuOw>Ym<35-+=`ntCk(LjVrt6yLz9@Pki^58 zalB+UKzc+)$W=G5Fe#wrAF?1$)^_*^3|-ZC#Eco88oxZu_hA{wy;e4!$Y{z?SX3hH zmK;k9K&QFS_F)+23(av6n~P3`FwZVJP&G6!UfQH~D&{N)b4)+>&`Rv&q$0IObNC?V zpFQ15Cf(Q>(G4Q|o3Dhg=g}B=dn}Wne&a(9@b9iK(7RzV|2c5`rMkNE-24 zC~AaeH1}DeASAPb*PsoGxjIe7pZuXe zJHA(guRubrz@xE5Wy*}eB0Bg2g*GKzfYPsgvKC!t9-KX8dfNm023f@R*Lux? z;El|w8bT+B?VE3?*ZjLvd3o{pACV7kCS)?Ng#BgP_7ECM;F!P) z*?JT~LCIyRblo61YF}R(VK-pr$w>B{D-6w8yYm}?W-N74V_x_$oQBk~(hm;v($_B= z0Ek3#Vh>v>CC^1XD7N6&Ia*JgSX{IFqi3|tiX+h5J>ss`T6m-l^6bK>`HmWBIT239 z#(rvhtyDW3PprerVYZ&dTa+&;cMtI6Mzxi?&Ws>6RUzb2Krc`vJPdJ)1LjL_J z?#+;U*I3WEPM;$w;`{mdqeXA%QR8LO+Em_Ci)t1hn0Mt|P;+nE{E>JtkPE66d&doi zlrtK_^I#exvOcE}pZ}Ey+)FP&X!MC2v%rBU1>aqoqCid>(e5j_g>+Bmmw%>(4?^94{at&V2b z&D~-nG&0E$n`d|3aPuBauk+n{U`NQBdH^pn&@&4pmXngsMEAi#bH#d&^@GopBWW7+ z&qViE;3@+cBalC1CM>G?!vb&@Bjddpd0(dsxN>D6xdI_dlZ1y^q5r=;7-^C(mIy4Z z@$Q%n?{P6@IMTUMWin=7|G63cwJZH`P($kZ3oQp@b?YYyR6P*#|BnD3_{kwJP+zPc z_}KlYSNOmE7B!H&#{@|r{NMZgmUeZhKFi%lTvsl zharI=fDJjnIkDO8o^>7T&m@)zNeW!_OPc{Y?v*DbugKN0+v%p`2`F>E>69Cu(o&~; z92^}I?NJ;8g7dEC{P;w+)^07dBMe>ay}((s)ONFiGLW^kV1jL?S_%5i{f0p?z^^vG zuZ}}AsPB{haZ5d3f?r{`Z^diwhx}0wC3KP#L87VR55*2#G_?LPp1%%738c+`fypIBN+1(6z#9n-EjRlwgWu<3Iw5$l=x_6>~0Sb{G z5&?&i96H&*pR|@o2$vf*Zws#{S3U4(xrN6@%VNUt99)xE2AA(Rgv9!G1jNjVSX^N^n76-ke(__f7HIg}#M4LWy@p56JT}l<-yBr+%p+&M4#DQoa5~$? z%XzrIT&~<>5>As8n|TdCbTab}_9yCIEsESdF0Ek=0v6q*Cdb`TGlfi*n!G!X4wcEl zZDeMDreLADN&W3P9yy_4NHquIH`H+!r}>Q3oNu<_9&>L}g*WVEhrpt^1Aw|Vs&>u{ z(jWJ!#h-imWUX7KphIzyohj?#Ea>xtrBjJ5p0;u?a;NEeJB9wv62*G?PhZnH@G|82 z``5xLylda}spfhoP1(E(c2bLIXmQH9?7?N@SePUdr;!=-5l+V?`vK9c@U@kuFtF_0 z$tC*&lb6#3e2BduF=RIuRH9buzml@Fr!Ro28a_aticC(Ha1CK_)Gq=$Sxwahcgfym_-o0yq(VDusAN!6;4q=CjM+VhZY{Q zyl>Bavlgf0#kb7tvYr!0khIc%dvwXVw0qjm?EN!1-I|1S_rA#1+Fh~y>p82@|{2LI6#U%s`TAV@`|TEshA4s_zCd#a9IS6NatHtQew$yD>8V1Cri zz+X2U!h_%Fhnvvt%wq&!$>!bo0h-(As;EZY-JWbL7KZ@Z<8c`+l_q3}r0|JG=i&#& zQI6Rj&XjBVy~ZOnUu-~WwmY09yguEy*eoqGyZ>U~vu#)3ZXYu{cbglmZOWP~e>Vu5A7h~T3kCg}I znmnQDXoYOsW!r3*K>VN`55xO-PBJ%)BK^+`wy&b>_+hr4uYb@X$Sx#fpoi^mb zS+27fLB7p`IF+e%;#fc%dWpSNzPy2U6!t z9Jwt^T-V_AleNT@W{c8f#6*(s-R+zMl{?wW8g(u+cFD_(m8Q4Uje8^MLO_-NEf`I3 z`I3j$B1n;CHz;?EGKJlh{8d6lq|w-;0h6T&xEW7NvxXFyXPND-8I=T2xJunJ`t?S) zG`-_Kes2V$EO*`-9kAqU0b6VyEoUn>?(-I;13u=SOvae67;~cIZvSy`HG!BdX(d-vr3<r+57>fC3gdAPh*6uMjMq`E%yVEBqPLJ^n zTM*g-rE~U&J=dq`XRo5lci%1<96g4aBYR-S(g5qO4Es zDP}oW5qG58EmcORxM9;MPGARPaS0q*%cUIPSFQ$Qb*Vfi=!0w7^mRzfG^*%P1@o48 zw^}25k<8v$j$#DjaV5(Y--i@PUzdIe#UkkC68+#ElcUclv=usoNLOm=Pc2h7zV#Jh zZ9N(Jd`(-bt5?W@;{#{eKdZ=Fn-F8~PK>KXum*i)-1MB8<;*%8l}6iXlm*4glf4o za7SVRkZv7j1620sNAac{HA&IfeB$&j$td()S7^KI=6soKEv)$JZS!2I!Za6^yl-b% z^n%BP11s)fVj)me8%@YPAylfh5>1b3&5nJ;Th7*2|tD%KFY zu`xPlg3)$pF@`h!avNL7mLa_2Ri%Snm?3ssdf1%qCMgXL0}4RB%HjTnQ!$Wtq24wcxsz*5T<)>1><8P?qDT^J6>30a37h?q z=%Xjlw=UeR%DQDd8(!&wWetk%m5y%>CIbHs!q0XIPdaR>-|Dxi*eO6bmPBS?Ve%Y zJ7Lh7cx-|tV@|Lat2RrsRu~g=o_Bs^bX%31Db`SYq>QJDAQWOss0D&7pk7r!VPJgA zB%Urg&4Am|9pbXexQh49mO>jZsuvw}gcPtU}-PlLD16oK}S-04R z+OmH1%%J??Z}nwP2On}3G82p30Rd?wm!w3tsUley{ZX?~T!^XOA8hxj5UPI^`&6A7#HQ|0Mt6V%@S57#O5At3DGQ^_X z7IaXp-7p5ze#eYH@Msju68@N+?hk5*H_LjuyC+6FE5y91Tu1`R?5^(nLUM~)1bA3CvU{24kAVFUHTKje1y9UqR zXlIp5g0|$_w%ra+{7eBj@MC=iG-~qqJEhHrC*d9S)7{1?P{6Olw;9KPAaH2G9A+}0 z6nDJMEVqWjRXCm`SE&f+?3lSKMM*1y>D-&nt$!`lS>@liH`ok?NRGj)0))SWHK#fe z+Io7ybregsjLpJb2&cI;(_szDFo+!(_-#*Vj#q38uWEag!?StJ{iH??KD8u84?s zsJ_!*q{FeBuuT?|vvGu6C~crjP=W986u;dpx;xnpHogG==K>tA}4 zDE!It8vT*z4F;s~a7-CCTvf6FGSwDpTW7r_l;zHHn!BwAiLBY9C*S{K@2#Th*tWIp z1PK;k;vvD^NgxDwm*DPBaCZw1A-EIV-Q6v?ySq=^oxfOFYyW$H=bVf0>bp6u(W((L zXU&?U#uzn5@9+EcNKH85vOJm0-3Mtyd^(Yz2ABQ3-XD2d-*GH~AZD}GELpABqmg!e zX2gG>;V{vfq6A309d_W+k&iVXAx6OIGRQcHIzqVEHgTv&|7jFkJo+;1P|>-< zX1kZlTDNC9fb|16M=zV(v(MSC2^}o7`ASW;XX2?Mrs%#7$j>vCU5o5%0-deV(CAuX z43(P!HModA=T(Q1=d*c(TUHZXKp2kc7h53I01|)#io53g&PR|unhyv!gjIGz{uIlo zX4vck6jS5=s4bi*PpJ>sW&9Lql!R7w?C%bo=jsdsUaY<26rWQ5O5g+eqRX{mT-U$V z#BZTwb0kVk1)biVske<6G>HMq&dJu@4xheRZmJ!0x;w1Ldij+gy#>uF0%KN_i`M}DVw-TuCFfYe|*g_%s0jqf?7^#RQgGK*bkbC~)<*x=$6~M*P zlqh_K$Dm0&S4!t@Y~mmo@}L8zOb980FhFmW-Enf#V#d^j^;t?iJo#9_NS6RlBARCN%PppZjY=uEDQIecCLe%01InIe*1u zd=Y}lGj24T2~DvX!VpVsgp>@`s5Nw03P=BDnMlV>tOhgpBFfu6YJ(mc4-U-vY4vb9U z;GE;4naYt@#^ZTj%N9?Uds7O*uCQY!^BKjPiq0((&ys~8o=sUkU2ElZ?_2vv?8@y4 z$C*xzg;Bgn+mYnQO39C*ivrqyWu@#?gUHi$I__J>l{{8BM;~YFbRfM(0~;sOm(cs7 zTH{{frRX`syXBy@5py814*Z;(*}<}C22~~Uu|e1@!?7w z>><2^)UUP!EqWFakncM3e&?_Vy>?XGE2a4}pRhyi5+LH_ zCJoiW>H4&uT-vNLbNU;y^(~j&Ez){VuxV|a)ITeO3pfs^8y01@*T>kK&*fyFfsmp< zfxtmh1A@jLJ=MU~P@%o-48^|ghjcT=&eGo}9DL4E!m!Hk;u3zqAg!{}G#eX8-@}pAHzbgd!JYFBI%&h5w zqR%{J)mI{r;8xomAG?RfGiP4SwHSo(w0&Q*aQet-c^7mCBUL5*!#%?nZio!`3RCJ+ z$hW>n{e^tR7nyie)WVD(!}Q%lCt{Co3+PT43f1g9jFruC@bu~&qDC8a?CIgtJ?`c2 zgN;Zi^$4D#_~R8OjK|M2MoJ}1vC(~KFa_X^+{coz9^41-2_!r&DiM#C<5iR;iRnRX zeV$TDHXP)Xe$M+az`k9x>kf^u8KDE&04Vs9&fb=&<|gPXt*zFX;vf8Kn96bolL2e9 z6YOh+sW*{g&Kr`+A17-#KT>1SYsKk{u7mM|lbUm(ay;0;cf>1I7i5K*BoqmAo}b z^Myh977`Xy7z4NYouZW-3-I_nH~6YcOuv#@mJ& z*AJiaasl5=7)5Zv)QR5jfw)q6u7dIDp}%0qJaE!!cRb{wOJskkPhmMBPM&yy!o0Wb zY2`$sirtD~!C((Hvax%<^4bE1oq7NuF!XK|4(%eJ$f?AK9DHK2)=f}YK-E-0z@(SM zOTd$D*lctQt$|PnR1`O>uphgQeSR@G#Q&8XY7--<<9jGFw_2)(U2JxgdWJX#+z?iS z5GrqA6sAQXyvRYQgdXhIc$ge+44a8(rY)4I`*6K21J4>Uv4;%<&p9C;^hXSAr_&0>|1@xP>HEwm&kD|9ZqC1&GOl4HdcRkh7=e0S85=`r@Sk?Wg}Yg^MHB=~G2l=;Z~H;* zeVB*#c^E}Wh$9IgpTs`G)$`Y)P3Jq0@5uuN0^~$5;h(U*6UxcJPGW#Cl=JC2X#(`8 z*MRU3z%lUbf>vwq{ynw9Bj6G7mMF5w|Ia64z}{TdV@lTFypVSAxIFgZmk{OLU&)n0 z>%F}FKO_8r)F?2kMMNmDO^e+JL|OQ!jbKS3Za6x35*dL6h49Z^nXRpXxU-WnG$XftbPVb%41AwHW%#t zu_Rt;B!IYx!nlI&&!R?}5X9xi5`;(l;|YkpOql{^5yXlfe=)7uKba!Hah>oTH9FiD zUdNrwSyBbe2!YYx6ZSz4kJ5VUY6<2}_`S!4is)?%5+`zp_NEA4BIz{YlT6xKGOlEnPl?Y zj-UUXKmK3OpH$%!XE%LlDlI0(9suK$HoW@w@kBTbe_-GK!`A%e2M_K*Ql{4*A=w9U z|Irov{jC1`iG2a*zjSSJRemFd37 z&uhC$BdM+7BdvK7vI6c2S+UdTO{zwys2Ob*{zW)qe`O;1}cQUTPH*mEp; z=$ZloR*$Y#E(V7io?F*3njlnCoAAlK8LS_lHmL&&*Rs4kCjt0Q|T6)|k|)%Jk1qM%6$`!AGKvxyqe8 zK4|em*7>LXOH)?IwG6tehu;Y9NtwY(R%;xl4c6ze2Xl_nM~n7u5x%m3RVD_FTxuYH z!sxPLC*t^Ng9yP~d4czqUpN$=Bj<&WtQAX3*caJ^KLD)c2}Kv+NU2eac1?%{Y+ z0BLu|2o-}pG6Po?&R`_U3sJ6w>jf#v+L0tqDVK{6 zx(nQH7Xs~&4ttv(3l2rtia9sn7Cwe5#U%est^c-;!+=HKmQ!?(Fkfuut8lSIs!%A&o0GjoY`;aJh=} z3y#~fzxOQu#T;$1QakmFu)%JBSt*z$XAvt~y!R%;2dX~%!Nhu_E4JOe(R74zv-8gN z*2H+}p-z7wvQN>^v!}sq%*=QtJI=hQx17oI%8vG9&EBjApxY<{`@_u8kVYE-;tcM9 zw2PS)YJ-Q()J=dLT61OnFpC12WtKl;z5pLbkvlh2s`2&BH8{Q25zHylR%u?C^I|c_ zW;1Cj=HTcyeEQ6bN)l+f(EYL~ogo@69+3vj22Jw$(u&P62GR8hvAs);*Y@O|Pv$9S z9?dkgzb2ys@ldurD|cGSJr=@pBrnBeD@~k(K!o1Q)w)AMlrlwS(SQivT?Rk(dUsOD zAs?Scv2=mPXjn5mm7E>(%)O`!pS@CFjK1(W(Ewb_jb!l868_J67ghm6XV}MN$Yn&U zj!=8EFGd6Kq-Ve0kaT@rKI4GL!8P^CY!b?H9lif4%@>(iVC^TO2AH`Y9RNl%Y*=&~7b-5f0rJK_TLjE-a0wr5a#IBQ>OPPw?GtHEyr;?+7CF zMSt?ivbkkwsJ%HQkj)A_6YSG0Sl<8f2ovp4Bw||Kio?QX_omIJtdt#Sa$Kjv)E2qkH4FKorW3m0H~qnjKZU!k zjlbY)?(&_J)6d6BlV+}`q%$tTR>ykL_w|KtsOg=;2F z%02f0-f>}Oz*Xg?`SJ8rP1Y7@&txVq1K}E*MLk##lv7ixmBW8&D0zJW%m0l8iso4r zsAXgpK=2tEbF|!htz*S#_k=fU7LRD6Ctt3wAp2Y&D0CIcs^_xQefL$(+%}QuR(QP9 z6b74FH!bPWF;4qI&mVbo>%?-)WF(k*;SIjxs*1hUj*CjGTSUm(n<-4-G2O-lhr_l` z`7uUj`73D7@sKsGqX@ZgEtA|XfI5acQ!u+gtd4g#`F89T;Q}Zn#l_EMMV=c|z13PA z{~T~EG$ZSDpJaI(3?%W+*L=%sHn>N`B?lm16YCRzGu;3%!!-P?^dt?&7;BVF<)k+n z)(H3D@7^Ezxs3?kwc3{Ce6#lmxGiD6xeZV9i^x1B?#Qh46y-%o^YFFZAkFExi zqtw?^8QHyaeph$qsZUXc-%39Q8ofj7XdJq``?`=V>Z5vBht2prD*jTc>EE`VO2nWX zC@PY@<>uq>hU!3u(nY06gs|DSx7?_7r)4$KcbVI*)T5m~jlYX3=DB0~t&MDZcwE2o zgwW-0e!oyBCnpicY74W}2D!B6wGywxh0js5<$9t;%AXD$Td#4jzG=8z%q;WI2I;SU zL#U4q-^KNBL;>nh%Hic{9iDFvme5C+J%Y>U_CheFbtY+FqO`#kkwU^05ji zYXxLGA`Ml>n{uUP(!T01Nn7=(SIa9p<&&-`%g?L!zQU!ii7&6lQ$49R0Eip zn=jNWm3CGZsBV>JRoxLnXG}$rr@$?ukp+@BH`K)3RTu2rm?ydu+ndVA(j+kS!qL-D zT^P%W1Ea|JHTcIFfgj8aK%>T~q8TsJG0>slsfE=U5^n`nT$dfWYrHgpOF6YO_Tq z;@+78IO{oFrb7F)QL9?12 zw!w^~s&0u%dGt@zIFoipzxhp6fbg{t+hH4Gwju0AOJ2fDAgnmjaswf`x&DN;(o0y&VXjsi^^Hx;xN|VNM zw`>1ETne)u&n)2}jh4$&7B7H-w3?AA6fEa>c7M`3a}V>Pnvr*+%!HzQXK}R}<#&Or z<-U*bpA7x)oUf7Z5%JG#7mG(`@ewe8DJ%eV?k%dfMVU{0mS5IGod^x^@KA7=4f^hV zgA3c9imA+0q3|(4jpvAx_9@gYq>3x` zKi(r}N1w&BIjmP%;BbRhOWa@5Q1s$hGtOyckeXuoaxU=ub!sbs?@|BwsZ*CD`M?#A z+VCw#gPX)wePdn|hi%`1bFhLMa@M#~Hk77leT7juw*dD_nR7sqW~)lT;aWiOgR{-< z7sJQXT#2N+!f1JSjcn9Ba)rm>Ll|V0iC(;^nLL>ck>90a17@XV+?8SC|2}1)-hkkI zvAy6~1#6B@B%bcVe>?%i9iQ2Ds>064*Z_}c?+*P|xN9DaTf0Owzu zqMz)3sXD9p*!)1^iRYfn?zBM=J-m2$6s|O`E+2SO^Zk8S4U)$FZYSaRPn<m(n_w~cCd1TrQa3x$YaG^ zctF6thx65d09}!X;ZeB5grPXe6fabLUHOf4n+y`t&;$TIS!XN>qYZBLw!2A^ASW(r zS)MQEOQf#yPE35SB8cHJC7+eV>5r!xn5YYXkq$Xn&g4W`?Fq-&-#T{`}@)Nt6`U;h`+{a-slz673ll)P!@Ek%fttKwe^9rGs-%a8Y} zX&rX}O1_H6kDaBRz-$f4)7f?>T2#){YhhKk3B96~l)r$F>?CbrU;@77pR&(%^hL=d?0JT7w+`Zy_R4=Rrpjnz;BNE{V z<&X!MBZ`hOR2dwIToVgYNgTzTur~Qwtu5G1F(vBtWIa+Tk?q9Ya~+WPcE==es9iGw zFxSe5_unkY!wxCszY*}c0BdGlwBmz-b5n>GdW z- z639!RD(X?5iCD!&2G(!?Nb`YT>WI8P5=%ceFETbEvxZB=C%ncZcQC_Hj1VW67LH#* zPM(MFSOH|sJXprlIZ>1ag1EwX%%nev^*5tSh^5wK8y>uH!Dc7}Rz&pVP=mSlx22DrLOEagQ~=HTfMoU>opluyy`h!?JSMmv&)Ax%ymDt^d4 z6~plTQZPF|KBf617yrkWQzEdcaga!T*`Mm}l~(03q3AxTWFXGQ(GcCRfbzCu(0Ys3 zm%Uw~RCP>k&Y}31*t4calR2Z*{`7-tcrBd&)d`FJc2TXH;xyFCHVaKLT+2d@300k3 zvM5>TqcZ+zV_}ua)lr-|Nek0Gj*79;_!We!x?jle)nYC|B2O zBAwfCwL8xKa6<1oJt*5O2CadAX!;Y|z>q<|Tk+j%4_I?w9rZePU7v;& z-9#pd3H4FIz>|{J96ZzKVsMTo_{+c5LHf5_4u$At1vp!sz(rJx<**&yj4>RTgl~1m zKq=P3oa1>UjV*o$gk}e=)Jicorvl`Q00r71EgT5vd=2m;`MQp6@h-0)!s>*Ysdi_w zct|h5tEtyZ7ts=q$DRuhRaWn}MiHInos?|;W{*(dS-IZ75OIHmp?@FKCX@tZoK@FI z(30-HGfrC2OS3|D9{$Hm{<$?It8`GSZD@%QQ;jSPj)cSi#jfx)c|$|R;A1R%3XMA27P z_%N2Ggo-qY&##W6I+aR#gOySo`5lU7DwuhB2_l7|`ch~TCVPJgv&GSE9ov#p+_ka& znE*N9K8mu9K>hW|@j^~{1(jck^)!K%1-H=?^KLBjjA+9rRRIam?nu6Zm;gNeTib_? zs%1|sQ^I$T?et73E!O-d!#9Fg8cmyV>ojQou$!U@d{5sNrN>Fd(EWver@yqv_Z8q% z8dg-wN&cPi{lKTMSta@m6bC`iUC!)6Bw5vj0+sk(Lo|`EHou1WvP|v9 z7@f|t^&z{g5kG@udxd^SY&N?s;w4=QPy@6hFGlr7V*kW5AVk}IFA1Z`MLTZ1ib7uU zb-scSPL^%1P<-D{Q`QD0l<_%plTd8J4&yz29q;T)>R{mhIBWS*098@A(Jh?jP*!+1z$sARk^ZVZ&le4x0`z;R z`%kNS|9C}*cjAu)_bm9p#FB)OdzF2Cb&TRv+UDxd*vYkAJc5mTJs*1B zmTUXF`I}YMOQ!+Zyf9~QOl$ta6#O^+d-XeDZ-SAo3;HW%`6mMO??-~o7q|%PwAugk zg0|N{uSZI=Li>+-{a>9PNWZ=qcWjF0Q2&P)06sVLJRBbDfUf|5KayIhbO1b4x};N= z&eokflG0ZVX6CO({)XeuqxG#s@Gs25#x^at<9>JXLdA8Pj`Pz4>(1oJq;mLweuK6t zIA1s~c-;X2KvA`-3+=IbBGc}3#pQL5^&I8$bpe6S!KXvB$%zs%(J>mJS3n8c>lB3A z1Epe;yUl$JB*f!NBZP|C2B_`X^;e2KDv>H2Iu%!b+%`OS0LA}*!MJ*A?blPl|h{dkwH-*BO@m?YUlq7$^{#`WBl>bpMMn zHGt1Nsm8tM0^)^Qst&t*VCztLo~}aG()yQu^R3a83+<~byw7*d883i=^vvAe*u&%P zjb=WiFS8@*K17ntv`?RRDRMd2h{Db z^f3c*?n=9m%8d^z3PJB_t+e!U5E<+CnarIj%5?`vm$xb7mSLfiUF@DZ3@mkANQ1FZ zIQYh8b0z5Hy5C+nMxo_A74T1VBOX)FRq9XnST5Iy1LVn^8D_INI$(Jfb<3D5^5A5> z2}H#!HdC2U$sK647AlS>zHVVVfoqkGFwabaX5zkOv>Gjn0TnR- zHzr_?APkLzNSc|>3?&2Vymjxdvaz+vmwEBxby4nRApsVVm! z%}aq4600{syoA)0A%lWX7g@S{TOIR!Ju9lwQ)x8fUW8>n^-xpoCR5$+nxgiO`bx*_ zu;D7IaK>_WUpQ5%bcG0*KB9m)JNR(6#(Ds02){???e^=ZGJuQPTSp0qxkkyR4_gU% z-?q*EB$QHo%)vEF;UB*9`^a47x;ole4-jgiAHFz7l)$eA_y|iz_Dy(B=<#tX@^inK z?E&iN)cx2_fEehNqi>ZL#%$-W?p*7%*3NE;F+G9X>;WaUU#AXS-pTeU?I2C|udU#m z`|mYBVNl++F;9%ygzDq0_uzn+~7awj#v-QwXLBgZGUO7yZvFe|4Ag( z^WCx5K-0DL^dfgQf9=!q-IC`lOG3dmG{?tMAPzQW8(_tGfw*JyOS1X0{@{@363PrE zbT;j3=8HAF!4FJ20#KYbP!>-%!v-n{eN2uyz)`ullzP{_WvIAX>fJyXqoHXz!XwVs zmP*i!uk+Aalb~{1bFpfzilvEsYmT{+ms|bj#w4ZwSR_V`IhffzYIiJ?(lY0VsvTo} zvl}=!ll60qH|;Ri1$HT|D%=sg~gJ=RSBnR65nHW%=hZ^MdzU9lFTl712)GO<(P$|>$&$aeTz-P7&!g*gbu_2m z>W>cJYaNbp4t|})x^FlEXd{puumvQ$AqmD!vCl+a>)+8j;w zly7%9%C~df{v}@Oa-FDVWwbn!(G@e{{2VI(#6UC%gVA5UR9*4~EUdzi9fz0P8U^8O z>jH*|R41-7nOsd7uN-h>;~qY8hq1?Y`uX6v)lkeq7yl`=c7G(-CGMe8m955@im4!W z29F5Dsa?l|$7tN(rb^LzaXco2z%(@fq>Z-P20^GCLmeG4=Ht4jSBAKOl)FCUann+b z$KRZ&V9yO;dol-p%45v{_b`rYX&%e~QbxjK&ACqStVfR%6jz!(qdHvjRDNo7`D&v- zaG=*p@SgXx^8qPpMho>!3AI#WV}prPGePSZSB$pHx7HFdoIcCM$$^NC+&u?1=6fNs z&;$B>Sq~DK7?CpocS3vdGl7G@p~{ku_Wcw_YPT1tnu$uH$TT39!L1E>AIA+Sl;dtT zmL9Obfriao6oxe89dF<(^bv>A*#9LX)8J@QJW`JM%W-!DQ0mFkTeqw}hyWH7RC_$C zFDd6wXItW&%SS&r?>tX>WxS-py#)F%2vx(!&x$S2CHY-J8%yGp!Zi{ungsgotMxt} z+7@k)JJW?TDOzS>DJ-Oj`);%o)#(>IsV1eufnGqF zlIfjD%AJKp)qAM&yQqhHyE;l11tm=>7SDO=c3ObT(tmFno+TBhDkSBGg=#j>>hchs zC6A}^Nl$?J*F}X@yW1VkE4_D3Ib3qU7Ef20V5z zD{KNdJ6bta&4Q8Ua_}@l7geC-N8c$GWmlJUt!2#jDZqL`z|dn@7es+pr$Vb{Fw8yusi z4qGPfduHl(`nD+kEh}iZ_j!UBRaPZql3<@4k!+>4fdG^N({uo zQ&RpRqj<7T5HclwMRP9fP}#8iu7n&lKik>OPTTqKD4Pn0-|m_^z|9MAuL}j|)DkvX zhU~lg;mjH6^<23uL@aaK1rnvCJ$+qq44*MMaMI?4fTkG=`YRi=%1`nVrw^nAs(?*n z-JCS>aAnCE4V#W-*ftu@t7TgIBu3IZA{`oo!r^>A`XTI1)f@o8654b*<6d7 zrN5GRO43}_x79cg6>x=CK)`U>(-Ns=$-y#T&nR=1&pG7zuTPIXs=fld8J}P!Ul>S0 zvfqXcX|mGe+`(ABw82fYDjZY5D)b$@^IZ}q+s80tbgcs)@?kpqbd)WtPUpdGIIv z?6^HSCR?YinegcxIbXH5{wi>i{qYpJ1GkAXQ!qG#mDkFf;ytODzHv#{Z=eF6u@}rS z;z@WVpb)7gk@L5k{_4W1*ARAz+JRH2gLj%3hQnIH#aygub&P8^w`zuTs_9ohkjz*( zSuCUC+ONWiDFdx3Tz0WHzB`lSp?kYCVG7wnFbwAu@>nRq(lqjY>;?M-S+y1A^v&46 z@Xsd9gFu?eQF6}lG*V)2b1&iEJstJS8+fHqsrviXz!k3S?#5?^Tp4~=hr>kq zC+kG@CR?Sgu!78c-N!g?1+n^qJKOV!>k&D*H$+QcriAte6RHBQzVaTgFh>?1L&G(9 zvE%r7@OCj0$)RFwr%JfvFWatVJhUt@?rgMqDvF%X+1jD0vDrsU$>vULsx-$w6hm`9 zyA&m~*!*4C;tr}K08rhOz|<+1XcT9Zl;tRW1JUv6uuehOmb=wgf`h*W!aXq+YI`lR zfH;1V2I5O?4LR$kuxVtZp0G7IY~)Pd2>YP;|nE!#&%F4GZrG-kxW`|6(-c>_P1gqn1i-xt|(~ zwyyFu8r%(<04m!FdAmu~TC4!HH=NY4CAJ#$L1Xc)q08bkh|iA|(+Cl79rJyPl`DDs zqi-a_->xi!WCOC+m+nKt(a1-3m##XH1(@PbZ+xU7+v$a;2W|QWOp))=NF@k>>ZB3e zo~b!dX+-l2D6DA^roC9uUe&V2IfJj21SRcn ze!eRe{NnVAsA$snS~ct(?BYZ}_I_)l5cDQqYexf1@!8GAoaezOty!*ou|(id>TEmm zp`YLOmslOL46dFJh4`ObCoG4T9UPiT`)+Qr+E&Y1Z>!Z#C~8QPt2w*rmZunw_aU1n zZ`o5XShBoy(#Y*@`BA@Ham%lS?*gjTQjMgelPfJ`Km0qJN-mNOWz{Ol>&eqx6N&1Zh zf2+@Wp)B$4)1--92g&W01Qx(87_YPF`DCa=dD(X{GF4s{t5pXsetLP z%Z1=N)U5CoSUjB*H}+!RAw%=VW+kL$HV`k6?8$HL9Oc4Wwc9^%*1%h*(DW&r-4{2D zyP~zr+x#>oq)AHE`M_9PN?U3WXbltXxH|64i1Wj&!R8W~@O$fEVrlatL2UcST+n_v zHNyJYkEsuri_?V)g2%$M_-8R|>a=QSjLk!}9&Eq(-K}0d-(Jk~#P}g>PC*d*R$0o6 zkaZ~C=U<~Y8F|xp3;okkUvDgZ&R6`Jpj_$SHUM{A4*HhTa`G1A+LC%2UqNcADId8f z`TR%r^@9bwXd+7Q){!&|h|rjR#&U_xK_1ZcAB{As#c8GRjG8cRC=YJJ?7j>* z%`&_TC#6bJAm#|@3luUrNup4rvyHy3{NlnFCn#P!ei7L(_U&P(9TNlm?z}$VAjhCI zKY<`4e&UH993nz!j&}v=-^}92u*66Ob5U%_wT^Q8s+7p~ZAApbJO3OmWW5e1RHtjy zz1bO$@n#=bBf{%pKl^cNjB}IWizDJ$fTJ1^ZG<>W`(RpMjIiy7lYXX=%;_n*HRnS5 zA?DkLlFv1kjSZm@hE0MB;v(V6svDmOZe+08-gRbca6g-(I#c1+BKqQQVMSE(w zC%{z=ni?_T>Q;DchFr+vw+|wEC+fTr*Bj3}6Z(_os+xK3)6mHB7XJ4xptwdks!UkYD0UuN?MA3g{6HV~&}2uzUNCb>j&*5rbxTR! z?K)B*`}INXBioN94283UUKygj7G?!a3FDX><7#!*3KOa3`)hoY*T|&-kr?~EsHDRk zko^$~4+YUj3rYsdLtcBR!?=MsAT$&zWzi)>5MlK2!NB>VoXPPTmQloJvb||#62X!nWV%cHqo~UM;I?B~Cvs&%vVkImPXxf`uV>1N6FM5MvDVOW+TB-U%;Bh*Lxk7X_!aE*!swZylZaeuBuS+IL$x{SKJqkFd zZiDVSo!w8n8;C14tKwPxV0RWwA)OZqZg{%{-_Z^WHW~382;i~J0vuH+2rdq>7c4pO z^F$s_DXL3*C9zm0>Y<=x0VLb_ducWcnG8oPq&cSIqp2ct6J5um=ABKOCx77ZV6upiuO{@kc?X*syxLS3%B?87I+}awcK?{B@{b@bH z!Ep~;wH+OelY>HU%2x}Hi$R5Y*{wnEwyA>&B3UXqA#Ba+ifR{2u-Zt{)JQ9>vNYp8 zx2q9EuH0q!X-~`Xy&@%_17C23po}OLZC*5{j6QnvA9;rS;sw{yjb^ zA@ZL%dI>f}-*6J=PIJoO=hv+s+I)}$xL~ZUMB@ZuK^@kJv4&`_P3XRxknaP#19fJ7MLF zBRq%S{XjTNjmZfM7pp(Gf-E>cSxCMMW^Xzjqi(xKKT@JEDckkd_BUOvTIm`xO)7Eu zec8XT!m3Pd&>KE%skXES!oOC_k-%Pxo3uH}Lt$y2$69Lf%f`H6J2q9GF&K>J>aVA! z(vfWQKCQxr89T(^#3)K>zZ)&&dKzZE|6FkpzfxJ2)X^L@m#Os-gFk$J#c0ykk0_h3 z9%QBHX8`07)ghrUX*Gzq#4)Ch6^}+Z?>R&bX#7jaep<{cCt|0Qor4eEpEAQ&dcM9d zbc$@`CpR|5$#MK_dE1F>kjU?A1Lx}K{BwK4z ztl;yUBbdzA@6OK+g5?0^7*?6Ap;fLbH?KFkPrZldN=-73@H$`I$J59bSbmP(UAr?p z@7xPnauK<{2aDCZ*em4Or1Z2fw(U$OeJK?sth8IP(a?EdoyKF34~;*j(Q2Jk-;br) zyO%jEyG4?#Znd`6SyXImfVbQlFiq;pL?-)?eozj-MH;te*H%|DI}SEywb&-iex6Ya zR-bAv{PB&Y_g={8Tu4VRN(0fzqY@^ZsNqvL5t2UA_?G zmkYFqSi{UiO^&)Sb>}I2$`A*y-ouO2<1>pRV*eQ|FGqq;C~aq-bKBM}KF}1NaI?L( zEDH`Uvzdvpti7ay5r=wSt{DPHruh7hZUrSbxc>H2z1O5Ad{QWym z1_6*Pma!xL@L#Gr{FyRmUJB#QSge$9|M~a-c?_ojQoUm6OT9w>&DnvEY^xS00B)cw zAS3}QU#T}X|4t-_hXAlHF~q`QqZhNl*pVJA_4;gm4{>I zfJi(E8HAJ2stO8CmSh5vGPjxNm|?NQr6r-Xe@R&fe$P@O4!V&A5>~=zBY~SPFcpkeRpNuYrs3&QRncZuyDF4 zOm+nUi_RnofCTv_l`;|?h19pw*`-<$PZJ&{#BbNzs%=R)hQDC7aWA!TRHr{qgc4@lS&heW;9Ha8Wt^c~azJ z`;+-3p358zhKouzu3PZqg{}cmQwQfeBjTyAJ4sDrX=LklRf<1^hNZF)u1LPi?)mk_ za*9PO^pS_bKumfnEUN#zXfB@nC0^>qoK;^0r)g4j6sawlXo7cZP7mCoa{p(Q3jIh@ zxi@p30A8{`o-5YI;0w^WK_RbFP@EK36V~Wg=k>M*`XUe69|YHKN%&rE5R58|61|(1 zcrkryfqeM!#e*<+p8J))Ir%{LNBn*$Ph0k6oAZ&KNfzRaB*JIqx+r)>_! z5IZm!(Y<^V|5qu904_Dc`xbtWu~XcsY$VE|+N3{=RGd^E>mrF~$>cqJ<>(FO)+6|1RRp49RKWk{yT_5=^ zZg6nZS8=*R+s#1yi{nwBKVK==-!LTGCzJaZ#k0j69RQAqLMm;h$QH*0NZ@pRqha0s z$lQ+^r~A_-bilq;f_u>{xs20hGycNk8B(RfEhaHh55mo|xY3{xMQC|#JsRwm(rB)!jK>TDy!( zks5}Rb<6!It7d#Bz>m#t5sAZy$vn}5LmS9=;uBVlczd=Pdz7pyUY@~h;_{%PRi6&vd z{Dt&hBMbiqP4)fJ{zodP|PC#1mF~bM7=k8+i zd0(qwZz<;en=(+!1r^sTqT4#Cr?VB^X8-XQw`h=h@wTm6$ti1dIgN4C?R6?M8`l1; zln>~Pf?wBa&ZQwu%uiyepHxG{R;P)&aI!?RMHW0w9gI!NIq5wj$h0br{TQ-Y|F+qk zW>@T;3Qz`ihXu(ug1Yu)vLC47Vt1^*(qf@wJojsagsotcEppBFHy`%C;GWmfVqaB{ zN0!`tJQA24Dzrph)y!_6PcaHhWcgG3o5r(OZP_$0(I@TOH=04*c>B7)4MI^TfMO~V zJF6@myFg<_i45Ouyt;zJGlp37vOn(ZPp8iLBN{9xZN~0SDjs7WWzH z6#=>Qp2on`y;jY#fk*Yxm-E92TbS$p^9wf$FblLD0y1N4*Ip?JOj?pRm+Td>rbX6M z_NP^x(0RZ{5F%Dg3AM1gkp-akQE*O5`<>^KP8H|=P~`g&Tj9rp|A57;0r%Xw2#H)v zx7#!A?5#T93NAI>P(DFcxSf{*ifv8ZSWXVLq~zAH_qm{)6dtCq=?S7cD+}%bb;>*> z8WwF9dqHnf5+bXf27Q<kR;u*3C<%doV3!j@dUM;Y&bU zYzUCHxETFDnW2Y0BG1W_i`Py%Tb};V=BRN79-V&llz$V{jG=Vtxwp=0;_?qXYh$m(;WhhxtP ztI&5-@(vEr^Jp@j54Tsxzes|`KlMW7c$naVspM@V;mg>=*?pZMrEmAjUf zaEFtW<$cz)4dQS2`6>UO^;Kc5pi5<|qTEYX_AI*0^B99HdKl6A%XKW@g=HrVJDe4q zHu>U)Uz7LKW{J640nDAI2uLjphP1YebD`@d2iQ+&Sffygij)?155E)e5V2+>n+rqm zgWg>X<9|d%9{mCVkwd?kwbS8Fd}3N0crMx3QeOmaj*ggfZ^BRwN0Mkm4Y#E0ii$la z=7${Ij6=%$Kd?2eJ(qU`QzrnoV>k;95359by%p4!h4ha2ybv zZgR`iuE>4|y;$B0BJtx@g4NTc$Fs)ZQM(#78fm571;)6#Slq>VUmk688I8IHIvlN3 zC`&WEyL+i?y}o`xIa6mHJ6Q$&NTydXFxvL$;wv}TLVft~X(w-eNdD;;tz)zR4BB__ zTMzZL(MU?aID_UP2XuLNyxpcuZkeyR?3c`Ct15K-_m>Sa6somksE8yLu7Lqm*oT=w z?gq6bek(WpO6<)O?~LGA%tswgG5EXx9KM3X#B=cTm)b!qZ(u4whvJ?@*1}Vdo#};aFe9+?88?j{80v#U-GXM84epg0QWVFF$m#7W6UmYT+>m^SjLURCHYC zNtO!yhbFO~aHTSVflN43i&%i9>-fZFN}xKfw?fm%s$L4$KAnk3oc7{|*_b{?`8O2W zHZ_w^JbQ&BqIhlJT zr!x;L)*pQ<)6QTw*^@WLZfHGh6*hLgmw3!d)qWL81GK$FE@7sG3}rBqb}o_4;|9aM zj>`ZNQ=}pohpSy}b5=&%V{Ryck(>pk2}Kxvy1ubx{$ATCKQu_RG!F|dwJLoXabx~wuoYdpso+^L+XEdL#-%A{M%_24VTJa0; z0_;7kql49;`fY;n?R@;8EQ~q`w}2s5Y!`oPGNlYT!1b=IZpn` zjccHU1GD8RpN<@2HaL9C93hi2dstD|!B|k^F)>Q@pE^!$^3)#gk+F-TM)VHna{{cD z8fV`HM?yaJO;?z^pwEUXrUI3}F+H0sKDO24$}A+mqia1ngMG~0KF%bwuN@5M5{Qc5 ze9io>)fiPNk<%lzl!@OeG~U*{HW#W|HMeD6q;FUpR1SN}1cl-JJW3RRJ~8T9ndbhu z_sj&j&ZKMm*Fi4J+mp$?$e;?SNf3K&>Q8~WHIqT^Hs2W=; z`hapA?LOvETKIBS5>zE>j^z|g%eRoF@fyEhty`RC+%uEYwqdzm)|#OblSoD%L9~ud zzwv9#)&o!9)UYPh*g^{CI{Do-FCqb|1hhETZ}&;imQ#QB`c;KLOtYa&Z@b9%hnM|T zhp=u3d&S}FP_R`4n7Hp&r5j_Nwy(AB6=C0YGK(E~^DMZ?jyJ;#Gk_4$zJejPCkwax z*Cn*^ZJl66H#CIX2^yHrg)?gFKg86iewb=0_C3Tfy1^dT9oHy@u2=kak?1zp1CB0q zeCnn=Qx3bki+$;Nne1UrRWy4@C6A%X4ygz^;GZjPkESQTCTJcraQ(b8)MI5 zV~mP*)av?#yxS2sn?FgnCP69ZfTepC9KMk9^#`P&TELSosO+zTekD*mry>gjxgagY zuzh9gUXbUk*x((9=&$w>QB^cwhlqtYQ0o5HBffhRF5AVoVek2GpTHwf5QtdxW@^TL z_@Vp9lU}1+#m$~rE&NUOZo~BYo^7}AI$X5oFFCR&8Wd;GA+glLQ0tYouB%#XSEk1u z$!|Lv%Z5mohUZW(*S5^kQUSr@sKSEz zmL(KdomVnU$gn`$itgDOr_#)_3A)5A$CBS@vo*VckJW-tSY_>PHC$yo$QyQxr=b8X z4>v^N5UIUo1kCQimxm_47u(M*zH8`#TN@FPyAZlQ3KrFVu8FA3LDIa0zWT(RtG(z= zl9hf~Q#EyoA9Uggq9wr$x^}*ZCgiy5<)04|5A<)OD$u&cyg zB|*L^^{|jWnDMr%S;uHeLT8{j)4F?Q&Qvxc_2|QIEH@!PV6qdF_riGa?uv|{hv=# zC*jS6c$+ky>d$j1ymjE^7{0j-enL_Y#6ObwM(c4G92I5l?4OI&ALBMBG)P7C`PS~z zmwFLcs_=FAbn)N+AAl>IGT^QGV8+Q#K2qOPj;m1hh_i{uO}qH|HqeGviMsUgHbL|i z+?h>hLu{5Wm>bcogYRLs*hL~r>7uqpDYSPJKTm!dqd!i2*FM^lxZG%Wu^de5U18Q^ zql_}&7Ge4Tm)b7vP3J4h{*ZJ=LGYX#A7O7WnX^gT#iKLKbXrQenVOx)x=4e0pZ^)Y zy>pPoI!^W^;I@(W?<~=91wRR#AiHzjy>x(=|4>1^exkvv54gMmGw;iXlO~r1SAu4d zqBAsQ=D|M($*c=JS{}0PEpClZ!Gt$B$-c-!{IWGP&<2}El^T5)OrByPN|LW!@-)SC zJ`GQuZhyh!x**)0WaCRyeWZXl6dvXUx`=GZ{B1fLgZ94ITz+)iq=3v%=*s9Eo-6Q$ z752ni{#QMY-|(>+WHuSp`Nk~E zda$v`<@1Ry>`welS{oFdofv!hYe)Q!;u(9wIzirtML9Y{$)BCp`>LAZ^j=YZPv_Pq zNgI<$h>G-n2noUq?MCDdqR7GnTC4+-X%9}f`hDKsHw3kKjZ&}=JHSM-6L`N(N!A^h zeC8YbtH=EhUKBTG{IG`ny<;J}Y(x~qtoJZw(Ag-_Wm%mR^2R119(v+$h(x7%fJ;W- zbdCGE3`2e(^n9n_zW1?ILm4?oki#5KAv5ZKAnL!#YOOY+oZb7y2}Bdm$Kf~u?J_aj zT&mC(&i~x`-w0J)lD?JR7rn|H%KkVU1#!CE?0txCGRpr!SfAP3J#Sh`IlRcM2>GOEFEqhBbLM@ zl>G0g1?5PR{v_m32LJ{9KD7#kPyC~@P%_+~t1EX{l{V;r2cgN|-(IaRhfyW6>QrA2 zIx(6dZwzI!Kir(GDuQN7rbiPZ$6x{E|p7S(>rx`zNvlj{xO%&wX<6yryx$QO~S>z+hXUl zhgzl6ja2*IKK2&!FUC1z<|FUPzVvoTb003Gal-|Ys zm)5_aA8z*Xy1L#e^K{5W08br9FHa<1y{pu2@_SXuf{@i1f?vUKfaBEfA8;!2WT^rB<$9*Xo8;?@MZfjYTzSqe z1eOeCvAZ|4w6sqF>U_LY+G3@DvM~@ZL+SD2f=2sne_p7|RM#3^?BUkQ;}DL9GTZEP z^D2UXNjUX`ut&ciCPeM4Y+#lCk&O+lz!h*=8EaBKpm@6R-0{2fvIZMS#eBVsb=2(R zMf4*`gk`u=X2@gWKJ3yB0k5j9d2-2u3L)&+-^DS7#Yw}--+`7m`D320- z8!uNPn+yH!uksRDbu?hl`$B>G{c`Q0*k|C)Oy6tEo-~1q1c;WJbQFovm#t&ouT}R& z)aOe-o4#Uiie0VY7id>~#}N48b+ppi?7iQ7W0xZ6@_o+tX3uIO7*jqG@=?%b+rm4o zyPV7|S=ghz@p`+EIhcU?jclK^D6ej#yQ=5uFPhp!MrBIN+3Mmn5ibpmVr_btoyiG{ zXAQtd-uHGv6I0S9D%pWc#P>h~(~*fuAFrjYCIhvW6W9S7<}3(W1Q zLQQs4>>Y@k#Z*bU@crfLHu2VGrr-II1Q|pbQn0w+s z#B^%xC_2NyBqnLp6xTE5&XZ&s=C8jgIA|)y!i|7#o`{8IJ~!ttNzo41$IDD)_Rvnz zfLr3uw`!$QNYDa;LF2fqWDX;^zYLH;aZ90|l9ey?Y!0WCvpGcE_S0g}qx5bM=ISa8 z6=wZS;|N(a#;t)Xm55NlL`kT=NJqypW_qj5A{?TpqF^ zQ7Fh!(OuDG)+r?Muu4pVIiIM;P#lWytB7e-?n?;pW35t{*}#)^)-3q95+ErGBMz`FS z(?cQ`x*h3m3tN%#Os^Rf`GAED;%0i!5x)pZ+nK4d4o+Enkt`=2obu~(Wi}m1AGE4B z&-CFnUTzD)8xlTI2tKlY%PvC#mzg!|_z+&&e9gSlMP?txfv6Uoa`-X}a+u6%BHaPl z6(36&eo-?o*CjP>C8me*BIsp3&)^rjsF$Di>GU}gt68h80r^pUH;5ZOvb8SNzF8}h z8{g8@7#U>%(;XO+p5lq!{Y!{DV9aFoMCJ>S#i|_}jqfBtt{0lpVU;4?IxNcDoJ8C2s1+UA48IGy=~X!Aq3lAs zo-53hG__)=_`CpO!|O|AeSJPyzr64~emNWg3DqJ+8W{shrCYg*bY~R22AX@QZ3#MK zUoqAtwH8-257wv1FX;;K2(dq_ZBs?%eJ_{ML=J9OqYgIgckULv z4z?~|&Sv`Edl)#L(qAv~qfLqWtVZ*BPwnD#RpU9Hf`wJxDk+wM3@p#6n<*{ceRko7 zLtO+UIx7p{D4Nz%7N8JVC5Or7hd5s|xQVeHX3pMKS++F3R?S*7@0uza8;K)=&hQ_0(-T^{_NmH0fu`RX3eC^9EK__uV^8 zPIsM6iKe1v%8{^KLL@mP>nK-GaEDByP}XjMw`<3oaAjtQK$vlto5<4PA&cEcT)U$t z)8|~c<~Ie5eN;(hAwC>;7Fq?-0tcu5ut`T~VZ8raqRIk&pQZaaK6Y>6Bgz zu8tRJy$+#Oz$#7-E-uSaEknd72sVU_5RFekDX+?F5DAZ^Z)nZ}l5O+m_`nl-nbFoVF3vy&`uK_*YV2|*+LI2tjQm6g0fX2Y8 z9xWg=VZMJed7fG3d-^gg>wqYK7YaYYvgJ+GdqTBJ+I{W>FT}OczTkK2I^)x5%BYat zBoC@y(cg2*tJyodNO^lRxN{ZknC4RLa91@niK%mIVe(ShBznWET1#T4ky`4@YB#p< z1z^*%yR$)W28ToyJH&pkqB!wd6lS&~?o17=zrK)Mka&gJfO8#XqPtODP>SsLQsxsB zeS~C#WFKnSQ@8@o_(9ykTaXZxIcS~4Ea!XQ#fJ_k>!sRfgHxXyD3=j~S{%E9s7t6` ziLL-AzNE-zq_ao&*0Wg!tka?t=Pfl>NDDVUjlp9G;S1Q_vEJcNbPa>lj&OoroaS$^ zr+5fD9Bo{kLi@E+L(^PHW&NL6l9pPyTOXqJ>@4pD;C^F8S{2BBMN5!5g*l(Tfi%mq zSb7i82Cf$9e+XsbvF@Jl^ZvS0Pdc?@2fsL+B`f9(HKCEmzD$-|@1Z!N> zO>lNWd`R`{`$2heNlU7IH91q-ja^nMnF8)zCc40+C>2JS`d-XA#oG5&HQeiW z0}H2gNBB?cU_go!vHJJ)M%@E${fcCt**?3mWB`iC4hAUZ&g9kuy1@?`!{tc#&(AGS z>j^*imv(#Z-Up#)Ypr}~{@Bk2^4KY^nN!UnH*pLQgm=ekZ7ko|`v|;zzq|Qp3$LGj zznNsx96ODA*3kD`MMJZ#^ERd!8-`avzo&2J$Mgustq2QamQ~Uvkd>q}*Zr=At=eZOjU9wFEOD(yf znoL4d3jCbI4Yiw(*Mg-GwbfPszlpYYsWxu1_riMpA#x z88pO>Ja<9jGei^2)K32g)GsAMi4^%8W}i=yYn|X1e?e5=p)P^Lkog*WuY&2oz18 z=3T|4cJifUR6xE7;|Dl&rhH!KFpLm87z4&3>Ru@f3-Cu%1;z7%74;5dEjyA zKzv;N)naR?4>U8`lyxSF7n@-d+-?|xxQx<9c|AKx<^rv;OVEatLvy z!Ti>;E(JTSf0fQ;k=Dd9cFY(jn-Tgd;k#I)+t$a!qGXLLbwgUx`X=oZe8Xj0qTeoH zQ$Cn|Ocmp*-K6_0;dJ0%D?*oKg_D6}I|9}_B>6u3r>>3HHwxt*UFSq%T}!!-*_%$| zM4k3{VSMF>r?E$0`Orj`6RD<1!*FQksKDoje9DIWGEKtX{5)^`QF4URQuqzw>=c! z-xTB!X(#6!sf8PSnupg_q8`EC^j;#5(%XX*3_q>nz*Zbl-DW?adPs1zeI+q%&q1S+ zi6IZ<6NWotojI^MpyxJM>ozuF#oH+um-V9|ki%?{5}&&U5=P}Vu>L^Xgs`lk$Rjl} zP^{nu2kuT+?6`z0c8OucS%~Wlqn?s3yg`vbUteW4bw_$~+=fhHW8?n;l^6V(1F!1^ z7?F6?=n6lv39kJ}z8*FQ>bte!z?o71(Egao+@Hk1hm0Z5eTT3EEgXnofK&%8ErXp0 zIsHu-@y!=!P6nL@D+f=&v(!(fYiei=%>57jO+Udrk=R!w<=MaZf={TOsSQc#I~Z)r z($Ma#I_VmD@J!H)qFSEqd3}|bZMtS6_{J+jl4DydHgb`lq5 zj5(T(O9RQlibB`H)s=d;LFU15Onyy)$a|T?+LafdCmU^!d)=E-!>zp8++dSnPAdLF zTx-y)Z4#}|euN#CCh4CQ;(v2dzf&^ilUl<%bcv^SL^|{`@6)Fi&b*Xlv5`GYof1X+ znt*+s4pL!v7zvfOrvbbd=c2i|VPK4MRv5|FR=2b=u}sl^HLzd`dUlakwe>+c>%4AE z3K{1#Wlh~&N3)^I)T`5_X6PH7DANa=ZZu$ll##u$j(zPa8ifl*lS=4Tb4R}Y84nzG zeDncrAzxK}kP~@b>CvB_GmwC{@8axm=X8=&R;H-Emo|Q64EUsU|8+f{z8k=6HGdL} zq(Hg%Sj?Qx&=gSu0bkp#bq(2|yf}HK*)Fzh9Km1`NfFUTx1sZxA)Fb0Tz%A34HJZK z@*X>&Rbsk?fi`eB3rdA>OIO7qO)ED-XfznMLDXhJ>AS${if1Zaw*uQzf1gJGtY}>W zL-w~=J&g^rhW(U0G|nZKybNkAn`03)p$@h|lD1rEti!-OTwlW?!3FD57j3x-(rF7K zB?{$~reSf$K*X#~L!QGB13IIoNKUpHb(A>1T@Io!&6W*)!j=xqirh(uF_n; zt&0BEuu3c~Ww&3qBQxA=xDI52ccO+**1A4SmFdeW@A|^GP}mIkA;2dfnqT_r67`9^fC&avyZk zB(We`r-Ba#R{Osdvo474cqoY%%O0G@9pPVNg7$!p;~;zlZIuvo;mH5Hkx4+Xq(9Lc z^jt1IRx@hXTKcpxgbPHQ;B78C0ZOr^c*V z0@;}?Zivv$VMymN3LO8gF3+Z03qC`P{V&!|{Sl})_34LT!oc5NG$7pHs@{JwQqGcp z@zLf}Qf{+xVIRg?sXvtSU*mkAAYRUGKJ@a^TIa=!;NK8$Fin6?pxpd~IC}G+A^9U4 z2Z(1&hO7nQihj60+v%3H>ks^|$&h4xcQ|YWk1b(R`}*N+Ph3a_N22j)AakNP7ula_ z4LHQ(cmDN3`0jKpPQb~GNvr&86bWaWW=c;yqx@{OZLVgizNZfWg3Ij}MJ<2AvV9LX zdg5hz0r|oME~W4@fXlrO0C^boEPR!V_x1qruN=U@m;r`3)kq0YFs(A<5dFnU%lM5l z^C3z&t}sB^PS+!ERa<^5Rsp_73;2l><*H#o$8~GZwAnI~uu7Y0wK3c2@|P-Z2}VGC zx*5Qkqc!#h0mC6&fOyd=z83)S5R+be%}Bp z)Cc@iANJU<+x!YR`^-P6E84?w`&t8#)ZIS|IDMP*I%pdGuFfLTVmr&bHCdbrF=*BW zN>s4{JXsa~8}XN0jL>>)q?mtI{UYsnd+AU-b-p*dUNxm3Z`>Kt6Gh7X76@N(xgQ!f zx$e&i44|FC*_Eh#FSDb_1=Ivxck?$7>NY7w9)`poWW#VMDx0UvP2+iOXDohGY=fH8 z#^Z=@eVJk{lMVx)c|1iETye;F6;49(HJZIWZ1Wg+{f0&J-kA?M{r5^n4-oGSRzd$a zY&L#nc(y%(IARVs#g5$+ZnEiuE^mQ5ak=h7tDGg9Q@Bjyj#j(nfy$kgBv3h*g9Sa- zXu#{Ig$cikXNdl)kTS}+E&j89Ih5@A{XxqE+iyU82Y_9D6b5o?))zFTD!H!+UF;T0 z^n^UtKFW*-VjLL;gupyb%$T$*^R;=hAssUQD9Q6vfFd_|bTAMF^Lq$UTox;UxC^vR zmv7lyZXE>}?f(6B{r*6`jF*L?-nN7P4-=t&f=oR}{pS0do}}&lh64>ahWs9wT0zSJ zqZ?QBGAn`)TyBVff`HiuZd>$wD7GJL*sGph`;9rBpx5S7fLpU$BFM4W;@5KUvx(cV z_0crUNQ$739%TBg&~ofs`P-hyijJqhRNY2dVx%nd#w5IeC=gHVZ{$d1+u`>wmiaf9 zB^&-bjMkxVl>T?jk_;-f?~I}w9M@kNJOPOjGQSz7cWI7~N#C9*#C*XBK?}xZg1&*% zJWU*#$XAsDVk#x_>o5r0w;Y`9Lx3~pgA=*Ul~^g{(T!YCc37dNO=pujG1@QpwN(dv zXc+dKH{pLGAODV|$>#qaz<7pH(?0{CRRK=y@W<7ZBA!10^gO|N34A{#O2c=ihtuYn zTX792m_+%D%$L@Z{^B7j_0E<8e)o-R_?7p0r;_1*N|~ap%ECv%YN5V&#fmF1l{(FJUp9di8a(<`oK*}R-=8+NhTHFmB)B5 zgYFV_?B1)@to1zH{Bqu~y>Pf|IB1SP+nMT{GVo({m#4mOXU1&KrS!ctB5W-;8(;?1 z&arV9KzOGFXH=E_GOFBzR?T^KtB7$_IhjME`Emtwm+QaGxOgDlhu!{Zr;j*-!rwzp zQHk006S&O>Wn*@yg^dph{;~N_$q~_T$cO1Yz)rU)-rwM2W8*+h01$e!VnU(W2I5p2 zVJj#Y1RsDfWC03(aA7S7c!T4BS3Y9QJb`ty<30ZMWUKep@$_p=8(={R;S~W=#eJgA zxg&Rl|6$NSJV*a6J@;!>1iH8+P`z4>L|t4VHu$QA^Jg65Y51__3`D}WDAXWzkCP2` zPOHtqbY>f^?iB~tmA69~^Y(-^y32l9;8#NPTY&U+Q?&DcEfo&rd!4)whTl6P{+R{w zIXwSbZqHK-%Zcxw*!KE9&;;Gyo(yeQ&RvBz*A^l;{cU;p@5S~Gf9bIpAKvf0C*TTC zNfCjZr^F-GnBAhWMW#h;?4)B*g|Dke*YSEhHN&ji9~MI|b8#0gQz{z*an#~e{Z zkZU{GAwRYL_OcVV!Si=X&`ERL#KvPbzT~(wxZB9t?~{mC27=J$?7E;Q?4op8N@&U% zQEFeO>Ym{lyT4VkBnMi!j3Z*kjB><@ZUPDm&wdVr~zSaU5y0Gz6@<%1|;( znRMrKztUM-;#;)d^3Z`UV3L8B9s2H~<^~V|ETGe5#OnpuwUnNxki1F_6j5F|76s+{ zM*Z;*03j2iy3OcY{l8Akky0z$d<9~{yr-75mVDu_@HdP@8S$s3O>D|B_fHpQiSk=( z@*b#%qV9xW5tKTq(smpgp3hXpWxME*9_`q3_S0}_*{rXYK6X2!%0D}G6Db)S(r%LO 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 Qj}UN}nOGnn8M_kx4Vm-Wd;kCd From 3fb68e638691de6cdef525ad73a8217a06519cdf Mon Sep 17 00:00:00 2001 From: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:10:49 -0400 Subject: [PATCH 15/31] Update set-up-sso-google-workspace.md --- .../docs/cloud/manage-access/set-up-sso-google-workspace.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md b/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md index 8d52096d4bf..a206d359270 100644 --- a/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md +++ b/website/docs/docs/cloud/manage-access/set-up-sso-google-workspace.md @@ -49,7 +49,7 @@ Client Secret for use in dbt Cloud. | **Application type** | internal | required | | **Application name** | dbt Cloud | required | | **Application logo** | Download the logo here | optional | -| **Authorized domains** | `getdbt.com` | If you are in EMEA or AU multi-tenant, use `dbt.com`. If deploying into a VPC, use the domain for your deployment | +| **Authorized domains** | `getdbt.com` (US) `dbt.com` (EMEA or AU) | If deploying into a VPC, use the domain for your deployment | | **Scopes** | `email, profile, openid` | The default scopes are sufficient | From 19db6f3d760bfa58c4551340f7b8b05c60ae9c6f Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Tue, 18 Jul 2023 12:26:12 -0600 Subject: [PATCH 16/31] Expanded docs for `deprecation_date` (#3754) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What are you changing in this pull request and why? Resolves #3745 - Updated docs for [model versions](https://docs.getdbt.com/docs/collaborate/govern/model-versions) including link back to the reference docs on `deprecation_date` - Add examples with different accepted formats, including an aware datetime, a naive datetime, and a plain date - `1999-01-01 00:00:00.00+00:00` - `2023-12-31 23:59:59.99` - `2024-01-01` ## Previews - [deprecation_date](https://deploy-preview-3754--docs-getdbt-com.netlify.app/reference/resource-properties/deprecation_date) - [model-versions](https://deploy-preview-3754--docs-getdbt-com.netlify.app/docs/collaborate/govern/model-versions) ## 🎩 image ## Key questions to answer ### Why would I set a `deprecation_date` for my models? Declaring a deprecation date is a way of signaling the maturity level of a model, and communicating plans for long-term support and maintenance. It provides a mechanism to communicate plans and timelines for sunsetting models so they don't need to be maintained and supported indefinitely and their build and storage costs can be freed up. ### What happens after a model is deprecated? Does it stop building/being selected? What are the warning/error messages I could expect to see, for myself and for downstream queriers? Deprecated models can still continue to be built by producers and be selected by consumers until they are [disabled](https://docs.getdbt.com/reference/resource-configs/enabled) or removed. Models marked for deprecation will raise informative warnings when they are parsed or referenced. (With cross-project references, dbt raises these warnings in downstream projects that are ref'ing a deprecated version of a public model from an upstream project.) When a project references a model that's slated for deprecation, a warning is generated. If it's a versioned model, with a newer version available, then the warning says so. This added bit of communication, from producers to consumers, is an advantage of using dbt's built-in functionality around model versions to facilitate migrations. Additionally, [`WARN_ERROR_OPTIONS`](https://docs.getdbt.com/reference/global-configs/warnings) gives a mechanism whereby users can promote these warnings to actual runtime errors. **Warning messages:** * DeprecatedModel (warning when parsing a project that defines deprecated model(s)): `[WARNING] Model {model_name}[.v{version} if versioned] has passed its deprecation date of {deprecation_date}. This model should be disabled or removed.` * UpcomingDeprecationReference (warning when referencing a model with a future deprecation date): `[WARNING] While compiling '{this_model_name}': Found a reference to {ref_model_name}[.v{version} if versioned], which is slated for deprecation on '{ref_model_deprecation_date}'. [if versioned: A new version of '{ref_model_name}' is available. Try it out: {{ ref('ref_model_package', 'ref_model_name', v='{ref_model_latest_version}') }}.` * DeprecatedReference (warning when referencing a model with a past deprecation date): `[WARNING] While compiling '{this_model_name}': Found a reference to {ref_model_name}[.v{version} if versioned], which was deprecated on '{ref_model_deprecation_date}'. [if versioned: A new version of '{ref_model_name}' is available. Migrate now: {{ ref('ref_model_package', 'ref_model_name', v='{ref_model_latest_version}') }}.` ### How does this relate to model versions? Do I have to be using model contracts/versions/etc to set a `deprecation_date`? (no!) Setting a `deprecation_date` works well in conjunction with other [model governance](https://docs.getdbt.com/docs/collaborate/govern/about-model-governance) features like [model versions](https://docs.getdbt.com/docs/collaborate/govern/model-versions), but can also be used independently from them. ### Is there specific selection syntax I can use, to select only deprecated models? (I don't think we've implemented this) There is not specific [node selection syntax](https://docs.getdbt.com/reference/node-selection/syntax) for `deprecation_date`. [Programmatic invocations](https://docs.getdbt.com/reference/programmatic-invocations) is one way to identify deprecated models (potentially in conjunction with [dbt list](https://docs.getdbt.com/reference/commands/list)). e.g., `dbt -q ls --output json --output-keys database schema alias deprecation_date`. ### How can I clean up / remove tables from the DWH associated with deprecated models? (nothing built-in/automated, but is there a discourse/pattern we could point people toward?) Just like it [does not automatically drop relations when models are deleted](https://docs.getdbt.com/faqs/models/removing-deleted-models), dbt does not removed tables for deprecated models. Strategies similar to [here](https://discourse.getdbt.com/t/faq-cleaning-up-removed-models-from-your-production-schema/113) or [here](https://discourse.getdbt.com/t/clean-your-warehouse-of-old-and-deprecated-models/1547) can be used to drop relations that have been deprecated and are no longer in use. ### How does this relate to [table expiration on BQ](https://docs.getdbt.com/reference/resource-configs/bigquery-configs#controlling-table-expiration)? (they're different things, but maybe you'd want to use them in synchrony) dbt-bigquery can set an [`hours_to_expiration`](https://docs.getdbt.com/reference/resource-configs/bigquery-configs#controlling-table-expiration) that [translates to `expiration_timestamp`](https://github.com/dbt-labs/dbt-bigquery/blob/ea258bb76169375ded8f7ff9e596a436a5ed165a/dbt/adapters/bigquery/impl.py#L844-L846) (expired tables in BigQuery will be deleted and their storage reclaimed). dbt does not automatically synchronize `deprecation_date` and `hours_to_expiration`, but users may want to coordinate them in some fashion (such as setting a model to expire 48 hours after its `deprecation_date`). ## Checklist - [x] Review the [Content style guide](https://github.com/dbt-labs/docs.getdbt.com/blob/current/contributing/content-style-guide.md) and [About versioning](https://github.com/dbt-labs/docs.getdbt.com/blob/current/contributing/single-sourcing-content.md#adding-a-new-version) so my content adheres to these guidelines. --- .../docs/collaborate/govern/model-versions.md | 6 +- .../resource-properties/deprecation_date.md | 56 ++++++++++++++++++- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/website/docs/docs/collaborate/govern/model-versions.md b/website/docs/docs/collaborate/govern/model-versions.md index b38ed13289d..12599d0b65f 100644 --- a/website/docs/docs/collaborate/govern/model-versions.md +++ b/website/docs/docs/collaborate/govern/model-versions.md @@ -37,7 +37,7 @@ Instead, for mature models at larger organizations, powering queries inside & ou During that migration window, anywhere that model is being used downstream, it can continue to be referenced at a specific version. -In the future, dbt will also offer first-class support for **deprecating models** ([dbt-core#7433](https://github.com/dbt-labs/dbt-core/issues/7433)). Taken together, model versions and deprecation offer a pathway for model producers to _sunset_ old models, and consumers the time to _migrate_ across breaking changes. It's a way of managing change across an organization: develop a new version, bump the latest, slate the old version for deprecation, update downstream references, and then remove the old version. +dbt Core 1.6 introduced first-class support for **deprecating models** by specifying a [`deprecation_date`](/reference/resource-properties/deprecation_date). Taken together, model versions and deprecation offer a pathway for model producers to _sunset_ old models, and consumers the time to _migrate_ across breaking changes. It's a way of managing change across an organization: develop a new version, bump the latest, slate the old version for deprecation, update downstream references, and then remove the old version. There is a real trade-off that exists here—the cost to frequently migrate downstream code, and the cost (and clutter) of materializing multiple versions of a model in the data warehouse. Model versions do not make that problem go away, but by setting a deprecation date, and communicating a clear window for consumers to gracefully migrate off old versions, they put a known boundary on the cost of that migration. @@ -73,7 +73,7 @@ As the **producer** of a versioned model: - You keep track of all live versions in one place, rather than scattering them throughout the codebase - You can reuse the model's configuration, and highlight just the diffs between versions - You can select models to build (or not) based on whether they're a `latest`, `prerelease`, or `old` version -- dbt will notify consumers of your versioned model when new versions become available, or (in the future) when they are slated for deprecation +- dbt will notify consumers of your versioned model when new versions become available, or when they are slated for deprecation As the **consumer** of a versioned model: - You use a consistent `ref`, with the option of pinning to a specific live version @@ -109,7 +109,7 @@ selectors: -Because dbt knows that these models are _actually the same model_, it can notify downstream consumers as new versions become available, and (in the future) as older versions are slated for deprecation. +Because dbt knows that these models are _actually the same model_, it can notify downstream consumers as new versions become available, and as older versions are slated for deprecation. ```bash Found an unpinned reference to versioned model 'dim_customers'. diff --git a/website/docs/reference/resource-properties/deprecation_date.md b/website/docs/reference/resource-properties/deprecation_date.md index 9fe9e2e1098..830412d2af6 100644 --- a/website/docs/reference/resource-properties/deprecation_date.md +++ b/website/docs/reference/resource-properties/deprecation_date.md @@ -28,5 +28,59 @@ models: ## Definition -The deprecation date of the model in YAML DateTime format. +The deprecation date of the model is formatted as a date, optionally with a timezone offset. Supported RFC 3339 formats include: +- `YYYY-MM-DD hh:mm:ss.sss±hh:mm` +- `YYYY-MM-DD hh:mm:ss.sss` +- `YYYY-MM-DD` +When `deprecation_date` does not include an offset from UTC, then it is interpreted as being in the system time zone of the dbt execution environment. + +## Explanation + +### Purpose + +Declaring a `deprecation_date` for a dbt model provides a mechanism to communicate plans and timelines for long-term support and maintenance and to facilitate change management. + +Setting a `deprecation_date` works well in conjunction with other [model governance](/docs/collaborate/govern/about-model-governance) features like [model versions](/docs/collaborate/govern/model-versions), but can also be used independently from them. + +### Warning messages + +When a project references a model that's slated for deprecation or the deprecation date has passed, a warning is generated. If it's a versioned model, with a newer version available, then the warning says so. This added bit of cross-team communication, from producers to consumers, is an advantage of using dbt's built-in functionality around model versions to facilitate migrations. + +Additionally, [`WARN_ERROR_OPTIONS`](/reference/global-configs/warnings) gives a mechanism whereby users can promote these warnings to actual runtime errors: + +| Warning | Scenario | Affected projects | +|--------------------------------|----------------------------------------------------|------------------------| +| `DeprecatedModel` | Parsing a project that defines a deprecated model | Producer | +| `DeprecatedReference` | Referencing a model with a past deprecation date | Producer and consumers | +| `UpcomingDeprecationReference` | Referencing a model with a future deprecation date | Producer and consumers | + +** Example ** + +Example output for an `UpcomingDeprecationReference` warning: +``` +$ dbt parse +15:48:14 Running with dbt=1.6.0 +15:48:14 Registered adapter: postgres=1.6.0 +15:48:14 [WARNING]: While compiling 'my_model_ref': Found a reference to my_model, which is slated for deprecation on '2038-01-19T03:14:07-00:00'. +``` + +### Selection syntax + +There is not specific [node selection syntax](/reference/node-selection/syntax) for `deprecation_date`. [Programmatic invocations](/reference/programmatic-invocations) is one way to identify deprecated models (potentially in conjunction with [dbt list](/reference/commands/list)). e.g., `dbt -q ls --output json --output-keys database schema alias deprecation_date`. + +### Deprecation process + +Additional steps are necessary to save on build-related compute and storage costs for a deprecated model. + +Deprecated models can continue to be built by producers and be selected by consumers until they are [disabled](/reference/resource-configs/enabled) or removed. + +Just like it does not automatically [drop relations when models are deleted](/faqs/models/removing-deleted-models), dbt does not drop relations for deprecated models. + +Strategies similar to [here](https://discourse.getdbt.com/t/faq-cleaning-up-removed-models-from-your-production-schema/113) or [here](https://discourse.getdbt.com/t/clean-your-warehouse-of-old-and-deprecated-models/1547) can be used to drop relations that have been deprecated and are no longer in use. + +### Table expiration on BigQuery + +dbt-bigquery can set an [`hours_to_expiration`](/reference/resource-configs/bigquery-configs#controlling-table-expiration) that translates to `expiration_timestamp` within BigQuery. + +dbt does not automatically synchronize `deprecation_date` and `hours_to_expiration`, but users may want to coordinate them in some fashion (such as setting a model to expire 48 hours after its `deprecation_date`). Expired tables in BigQuery will be deleted and their storage reclaimed. From 5d02a3d14b4a37507bede45f9fe2ec2c1b3100d8 Mon Sep 17 00:00:00 2001 From: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> Date: Tue, 18 Jul 2023 16:14:02 -0400 Subject: [PATCH 17/31] Service token update text --- .../docs/dbt-cloud-apis/service-tokens.md | 19 ++++++++++++++++++ .../service-token-date.png | Bin 0 -> 50236 bytes 2 files changed, 19 insertions(+) create mode 100644 website/static/img/docs/dbt-cloud/cloud-configuring-dbt-cloud/service-token-date.png diff --git a/website/docs/docs/dbt-cloud-apis/service-tokens.md b/website/docs/docs/dbt-cloud-apis/service-tokens.md index 139eff8fd07..e33ed772c00 100644 --- a/website/docs/docs/dbt-cloud-apis/service-tokens.md +++ b/website/docs/docs/dbt-cloud-apis/service-tokens.md @@ -3,6 +3,11 @@ title: "Service account tokens" id: "service-tokens" description: "Service account tokens help you define permissions for securing access to your dbt Cloud account and its projects." --- +:::info Important service account token update + +If you have service tokens created prior to July 11, 2023, please read [this important update](/docs/dbt-cloud-apis/service-tokens#service-token-update). + +::: ## About service tokens @@ -92,3 +97,17 @@ Analyst admin service tokens have all the permissions listed in [Analyst](/docs/ **Stakeholder**
Stakeholder service tokens have all the permissions listed in [Stakeholder](/docs/cloud/manage-access/enterprise-permissions#stakeholder) on the Enterprise Permissions page. + + +## Service token update + +On July 11, 2023, dbt Labs made critical infrastructure changes to service account tokens. These enhancements improve the security and performance of all tokens created after July 11, 2023. To ensure security best practices are in place, we recommend you rotate your service tokens created before this date. + +To rotate your token: +1. Navigate to **Account settings** and click **Service tokens** on the left side pane. +2. Verify the **Created** date for the token is _before_ July 11, 2023. + +3. Click **+ New Token** on the top right side of the screen. Ensure the new token has the same permissions as the old one. +4. Copy the new token and replace the old one in your systems. Store it in a safe place, as it will not be available again once the creation screen is closed. +5. Delete the old token in dbt Cloud by clicking the **trash can icon**. -Only take this action before the new token is in place to avoid service disruptions_. + diff --git a/website/static/img/docs/dbt-cloud/cloud-configuring-dbt-cloud/service-token-date.png b/website/static/img/docs/dbt-cloud/cloud-configuring-dbt-cloud/service-token-date.png new file mode 100644 index 0000000000000000000000000000000000000000..8f35eba639b854bcbc7e29fa554d30f801ef1066 GIT binary patch literal 50236 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 TOzp7^z`v{NI+rjPZ$0=wW3uTE literal 0 HcmV?d00001 From 30a856a2c6011f4914cde0f4ec55c782b9dd296b Mon Sep 17 00:00:00 2001 From: Grace Goheen Date: Tue, 18 Jul 2023 13:28:56 -0700 Subject: [PATCH 18/31] add initial defer docs --- website/docs/reference/commands/clone.md | 10 +++++++++- website/docs/reference/node-selection/defer.md | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 150d3b12e62..07b9259eeb7 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -27,4 +27,12 @@ dbt clone --state path/to/artifacts --full-refresh # clone all of my models from specified state to my target schema(s), running up to 50 clone statements in parallel dbt clone --state path/to/artifacts --threads 50 -``` \ No newline at end of file +``` + +### When to use `dbt clone` instead of [deferral](/reference/node-selection/defer)? + +Unlike deferral, `dbt clone` requires some compute and creation of additional objects in your data warehouse. In many cases, deferral is a cheaper and simpler alternative to `dbt clone`. However, `dbt clone` covers additional use cases where deferral may not be possible. + +For example, by creating actual data warehouse objects, `dbt clone` allows you to test out your code changes on downstream dependencies _outside of dbt_ (such as a BI tool). + +As another example, you could `clone` your modified incremental models as the first step of your dbt Cloud CI job to prevent costly `full-refresh` builds for warehouses that support zero-copy cloning. \ No newline at end of file diff --git a/website/docs/reference/node-selection/defer.md b/website/docs/reference/node-selection/defer.md index a6ef6261cf1..e33f95a5142 100644 --- a/website/docs/reference/node-selection/defer.md +++ b/website/docs/reference/node-selection/defer.md @@ -14,6 +14,9 @@ Deferral is a powerful, complex feature that enables compelling workflows. As th Defer is a powerful feature that makes it possible to run a subset of models or tests in a [sandbox environment](/docs/environments-in-dbt) without having to first build their upstream parents. This can save time and computational resources when you want to test a small number of models in a large project. Defer requires that a manifest from a previous dbt invocation be passed to the `--state` flag or env var. Together with the `state:` selection method, these features enable "Slim CI". Read more about [state](/reference/node-selection/syntax#about-node-selection). + +An alternative command that accomplishes similar functionality for different use cases is `dbt clone` - see the docs for [clone](/reference/commands/clone#when-to-use-dbt-clone-instead-of-deferral) for more information. + ### Usage ```shell From e1b997289b9d41965f043b2ca0fcd42a935422d5 Mon Sep 17 00:00:00 2001 From: Grace Goheen Date: Tue, 18 Jul 2023 13:30:54 -0700 Subject: [PATCH 19/31] add caveats for useful bullets --- website/docs/reference/commands/clone.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 07b9259eeb7..3f74d7cd88a 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -11,9 +11,10 @@ The `dbt clone` command clones selected nodes from the [specified state](/refere - You may want to specify a higher number of [threads](/docs/running-a-dbt-project/using-threads) to decrease execution time since individual clone statements are independent of one another. The `clone` command is useful for: -- blue/green continuous deployment +- blue/green continuous deployment (on data warehouses that support zero-copy cloning tables) - cloning current production state into development schema(s) -- handling incremental models in Slim CI dbt Cloud jobs +- handling incremental models in Slim CI dbt Cloud jobs (on data warehouses that support zero-copy cloning tables) +- testing code changes on downstream dependencies in your BI tool ```bash # clone all of my models from specified state to my target schema(s) From 1a087c7c47c3a2268ab3d085947a204851fe29e3 Mon Sep 17 00:00:00 2001 From: Grace Goheen Date: Tue, 18 Jul 2023 14:04:28 -0700 Subject: [PATCH 20/31] error note --- website/docs/reference/commands/clone.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 3f74d7cd88a..6b58a107a3b 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -4,7 +4,7 @@ sidebar_label: "clone" id: "clone" --- -The `dbt clone` command clones selected nodes from the [specified state](/reference/node-selection/syntax#establishing-state) to the target schema(s). This command makes use of the `clone` materialization: +The `dbt clone` command clones selected nodes from the [specified state](/reference/node-selection/syntax#establishing-state) to the target schema(s). You must always use different directories for source and target otherwise you will get an error message. This command makes use of the `clone` materialization: - If your data platform supports zero-copy cloning of tables, and this model exists as a table in the source environment, dbt will create it in your target environment as a clone - Otherwise, dbt will create a simple pointer view (`select * from` the source object) - By default, `dbt clone` will not recreate pre-existing relations in the current target. To override this, use the `--full-refresh` flag. From 72b217b8c375037a791bea195e2cf8bac605659c Mon Sep 17 00:00:00 2001 From: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> Date: Tue, 18 Jul 2023 17:08:43 -0400 Subject: [PATCH 21/31] Adding date --- website/docs/docs/dbt-cloud-apis/service-tokens.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/docs/docs/dbt-cloud-apis/service-tokens.md b/website/docs/docs/dbt-cloud-apis/service-tokens.md index e33ed772c00..f60cfe61a9b 100644 --- a/website/docs/docs/dbt-cloud-apis/service-tokens.md +++ b/website/docs/docs/dbt-cloud-apis/service-tokens.md @@ -5,7 +5,7 @@ description: "Service account tokens help you define permissions for securing ac --- :::info Important service account token update -If you have service tokens created prior to July 11, 2023, please read [this important update](/docs/dbt-cloud-apis/service-tokens#service-token-update). +If you have service tokens created on or before July 18, 2023, please read [this important update](/docs/dbt-cloud-apis/service-tokens#service-token-update). ::: @@ -101,13 +101,13 @@ Stakeholder service tokens have all the permissions listed in [Stakeholder](/doc ## Service token update -On July 11, 2023, dbt Labs made critical infrastructure changes to service account tokens. These enhancements improve the security and performance of all tokens created after July 11, 2023. To ensure security best practices are in place, we recommend you rotate your service tokens created before this date. +On July 18, 2023, dbt Labs made critical infrastructure changes to service account tokens. These enhancements improve the security and performance of all tokens created after July 18, 2023. To ensure security best practices are in place, we recommend you rotate your service tokens created before this date. To rotate your token: 1. Navigate to **Account settings** and click **Service tokens** on the left side pane. -2. Verify the **Created** date for the token is _before_ July 11, 2023. +2. Verify the **Created** date for the token is _on or before_ July 18, 2023. 3. Click **+ New Token** on the top right side of the screen. Ensure the new token has the same permissions as the old one. 4. Copy the new token and replace the old one in your systems. Store it in a safe place, as it will not be available again once the creation screen is closed. -5. Delete the old token in dbt Cloud by clicking the **trash can icon**. -Only take this action before the new token is in place to avoid service disruptions_. +5. Delete the old token in dbt Cloud by clicking the **trash can icon**. _Only take this action before the new token is in place to avoid service disruptions_. From 91b51afa70b75894b93d2801aeda73f81f1a6771 Mon Sep 17 00:00:00 2001 From: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> Date: Tue, 18 Jul 2023 17:14:23 -0400 Subject: [PATCH 22/31] Update website/docs/docs/dbt-cloud-apis/service-tokens.md --- website/docs/docs/dbt-cloud-apis/service-tokens.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/docs/dbt-cloud-apis/service-tokens.md b/website/docs/docs/dbt-cloud-apis/service-tokens.md index f60cfe61a9b..811bfaea29d 100644 --- a/website/docs/docs/dbt-cloud-apis/service-tokens.md +++ b/website/docs/docs/dbt-cloud-apis/service-tokens.md @@ -109,5 +109,5 @@ To rotate your token: 3. Click **+ New Token** on the top right side of the screen. Ensure the new token has the same permissions as the old one. 4. Copy the new token and replace the old one in your systems. Store it in a safe place, as it will not be available again once the creation screen is closed. -5. Delete the old token in dbt Cloud by clicking the **trash can icon**. _Only take this action before the new token is in place to avoid service disruptions_. +5. Delete the old token in dbt Cloud by clicking the **trash can icon**. _Only take this action after the new token is in place to avoid service disruptions_. From c42a5300ceaa8cef70659462a33c37a419db1480 Mon Sep 17 00:00:00 2001 From: Grace Goheen Date: Tue, 18 Jul 2023 14:22:12 -0700 Subject: [PATCH 23/31] error message begone --- website/docs/reference/commands/clone.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 6b58a107a3b..3f74d7cd88a 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -4,7 +4,7 @@ sidebar_label: "clone" id: "clone" --- -The `dbt clone` command clones selected nodes from the [specified state](/reference/node-selection/syntax#establishing-state) to the target schema(s). You must always use different directories for source and target otherwise you will get an error message. This command makes use of the `clone` materialization: +The `dbt clone` command clones selected nodes from the [specified state](/reference/node-selection/syntax#establishing-state) to the target schema(s). This command makes use of the `clone` materialization: - If your data platform supports zero-copy cloning of tables, and this model exists as a table in the source environment, dbt will create it in your target environment as a clone - Otherwise, dbt will create a simple pointer view (`select * from` the source object) - By default, `dbt clone` will not recreate pre-existing relations in the current target. To override this, use the `--full-refresh` flag. From 1991ca0bf45c956a88481c345eff6a0acec40fa8 Mon Sep 17 00:00:00 2001 From: Jeremy Cohen Date: Wed, 19 Jul 2023 01:04:19 +0200 Subject: [PATCH 24/31] Revise v1.6 migration guide (#3728) resolves #3696 resolves #3723 Revise v1.6 migration guide for readability. Still a handful of TODOs. ### Materialized views - Add `VersionBlock` components for adapter MVs, missed in https://github.com/dbt-labs/docs.getdbt.com/pull/3593 - We seem to be missing docs on Snowflake dynamic tables. I don't know why https://github.com/dbt-labs/docs.getdbt.com/issues/3494 was closed. ### Other updates - Add manifest v10 (will need addition to schemas.getdbt.com: https://github.com/dbt-labs/schemas.getdbt.com/issues/24) - Add note to upgrade guide for `state:old` and `state:unmodified` (missed in https://github.com/dbt-labs/docs.getdbt.com/pull/3596). I haven't done a thorough comb-through of other closed v1.6 PRs to see what needs addition to the migration guide. --- website/dbt-versions.js | 2 +- .../govern/project-dependencies.md | 4 +- .../versions/01-upgrading-to-v1.6.md | 64 +++++++++++++++---- .../docs/reference/artifacts/dbt-artifacts.md | 1 + .../docs/reference/artifacts/manifest-json.md | 57 ++++------------- website/docs/reference/commands/cmd-docs.md | 21 ++++-- .../docs/reference/node-selection/defer.md | 8 ++- .../docs/reference/node-selection/syntax.md | 14 +++- 8 files changed, 100 insertions(+), 71 deletions(-) diff --git a/website/dbt-versions.js b/website/dbt-versions.js index 1c6cb52dad1..01d1bf5d128 100644 --- a/website/dbt-versions.js +++ b/website/dbt-versions.js @@ -1,7 +1,7 @@ exports.versions = [ { version: "1.6", - EOLDate: "2024-07-20", // placeholder - need to confirm the final date + EOLDate: "2024-07-31", isPrerelease: true }, { diff --git a/website/docs/docs/collaborate/govern/project-dependencies.md b/website/docs/docs/collaborate/govern/project-dependencies.md index 3469ec1a7b6..158c405e4a7 100644 --- a/website/docs/docs/collaborate/govern/project-dependencies.md +++ b/website/docs/docs/collaborate/govern/project-dependencies.md @@ -5,8 +5,8 @@ sidebar_label: "Project dependencies" description: "Reference public models across dbt projects" --- -:::info -"Project" dependencies and cross-project `ref` is currently in closed beta and are features of dbt Cloud Enterprise. To access these features, please contact your account team. +:::caution Closed Beta - dbt Cloud Enterprise +"Project" dependencies and cross-project `ref` are features of dbt Cloud Enterprise, currently in Closed Beta. To access these features while they are in beta, please contact your account team at dbt Labs. ::: For a long time, dbt has supported code reuse and extension by installing other projects as [packages](/docs/build/packages). When you install another project as a package, you are pulling in its full source code, and adding it to your own. This enables you to call macros and run models defined in that other project. diff --git a/website/docs/guides/migration/versions/01-upgrading-to-v1.6.md b/website/docs/guides/migration/versions/01-upgrading-to-v1.6.md index 52850239a53..cb1e9af603d 100644 --- a/website/docs/guides/migration/versions/01-upgrading-to-v1.6.md +++ b/website/docs/guides/migration/versions/01-upgrading-to-v1.6.md @@ -1,17 +1,19 @@ --- -title: "Upgrading to v1.6 (beta)" +title: "Upgrading to v1.6 (prerelease)" description: New features and changes in dbt Core v1.6 --- -:::warning Beta Functionality +:::warning Prerelease -dbt Core v1.6 is in beta, and the features and functionality on this page are subject to change. +dbt Core v1.6 is available as a release candidate. [Final release is planned for July 31.](https://github.com/dbt-labs/dbt-core/issues/7990) + +Test it out, and [let us know](https://github.com/dbt-labs/dbt-core/issues/new/choose) if you run into any issues! ::: ## Resources -- [Changelog](https://github.com/dbt-labs/dbt-core/blob/main/CHANGELOG.md) +- [Changelog](https://github.com/dbt-labs/dbt-core/blob/1.6.latest/CHANGELOG.md) - [CLI Installation guide](/docs/core/installation) - [Cloud upgrade guide](/docs/dbt-versions/upgrade-core-in-cloud) - [Release schedule](https://github.com/dbt-labs/dbt-core/issues/7481) @@ -22,24 +24,58 @@ dbt Labs is committed to providing backward compatibility for all versions 1.x, ### Behavior changes -**Coming soon** +- dbt Core v1.6 does not support Python 3.7, which reached End Of Life on June 23. Support Python versions are 3.8, 3.9, 3.10, and 3.11. +- As part of the Semantic layer re-launch (in beta), the spec for `metrics` has changed significantly. Migration guide coming soon: https://github.com/dbt-labs/docs.getdbt.com/pull/3705 +- Manifest schema version is now v10, reflecting [TODO] changes + +### For consumers of dbt artifacts (metadata) + +The [manifest](/reference/artifacts/manifest-json) schema version has updated to `v10`. Specific changes: +- Addition of `semantic_models` and changes to `metrics` attributes +- Addition of `deprecation_date` as a model property +- Addition of `on_configuration_change` as default node configuration (to support materialized views) +- Small type changes to `contracts` and `constraints` +- Manifest `metadata` includes `project_name` + +### For maintainers of adapter plugins +For more detailed information and to ask questions, please read and comment on the GH discussion: [dbt-labs/dbt-core#7958](https://github.com/dbt-labs/dbt-core/discussions/7958). ## New and changed documentation -[`dbt retry`](/reference/commands/retry) is a new command that executes the previously run command from the point of failure. This convenient command enables you to continue a failed command without rebuilding all upstream dependencies. +### Materialized views -**Materialized view** support (for model and project configs) has been added for three data warehouses: - - [Bigquery](/reference/resource-configs/bigquery-configs#materialized-view) - - [Postgres](/reference/resource-configs/postgres-configs#materialized-view) - - [Redshift](/reference/resource-configs/redshift-configs#materialized-view) +Supported on: +- [Postgres](/reference/resource-configs/postgres-configs#materialized-view) +- [Redshift](/reference/resource-configs/redshift-configs#materialized-view) +- Snowflake (docs forthcoming) -[**Namespacing:**](/faqs/Models/unique-model-names) Model names can be duplicated across different namespaces (packages/projects), so long as they are unique within each package/project. We strongly encourage using [two-argument `ref`](/reference/dbt-jinja-functions/ref#two-argument-variant) when referencing a model from a different package/project. +Support for BigQuery and Databricks forthcoming. -[**Project dependencies**](/docs/collaborate/govern/project-dependencies): Introduces `dependencies.yml` and dependent `projects` as a feature of dbt Cloud Enterprise. Allows enforcing model access (public vs. protected/private) across project/package boundaries. Enables cross-project `ref` of public models, without requiring the installation of upstream source code. +### New commands for mature deployment -### Quick hits +[`dbt retry`](/reference/commands/retry) executes the previously run command from the point of failure. Rebuild just the nodes that errored or skipped in a previous run/build/test, rather than starting over from scratch. + +[`dbt clone`](/reference/commands/clone) leverages each data platform's functionality for creating lightweight copies of dbt models from one environment into another. Useful when quickly spinning up a new development environment, or promoting specific models from a staging environment into production. + +### Multi-project collaboration -More consistency and flexibility around packages! Resources defined in a package will respect variable and global macro definitions within the scope of that package. +[**Deprecation date**](/reference/resource-properties/deprecation_date): Models can declare a deprecation date that will warn model producers and downstream consumers. This enables clear migration windows for versioned models, and provides a mechanism to facilitate removal of immature or little-used models, helping to avoid project bloat. + +[Model names](/faqs/Models/unique-model-names) can be duplicated across different namespaces (projects/packages), so long as they are unique within each project/package. We strongly encourage using [two-argument `ref`](/reference/dbt-jinja-functions/ref#two-argument-variant) when referencing a model from a different package/project. + +More consistency and flexibility around packages. Resources defined in a package will respect variable and global macro definitions within the scope of that package. - `vars` defined in a package's `dbt_project.yml` are now available in the resolution order when compiling nodes in that package, though CLI `--vars` and the root project's `vars` will still take precedence. See ["Variable Precedence"](/docs/build/project-variables#variable-precedence) for details. - `generate_x_name` macros (defining custom rules for database, schema, alias naming) follow the same pattern as other "global" macros for package-scoped overrides. See [macro dispatch](/reference/dbt-jinja-functions/dispatch) for an overview of the patterns that are possible. + +:::caution Closed Beta - dbt Cloud Enterprise +[**Project dependencies**](/docs/collaborate/govern/project-dependencies): Introduces `dependencies.yml` and dependent `projects` as a feature of dbt Cloud Enterprise. Allows enforcing model access (public vs. protected/private) across project/package boundaries. Enables cross-project `ref` of public models, without requiring the installation of upstream source code. +::: + +### Quick hits + +- [`state:unmodified` and `state:old`](/reference/node-selection/methods#the-state-method) for [MECE](https://en.wikipedia.org/wiki/MECE_principle) stateful selection +- [`invocation_args_dict`](/reference/dbt-jinja-functions/flags#invocation_args_dict) includes full `invocation_command` as string +- [`dbt debug --connection`](/reference/commands/debug) to test just the data platform connection specified in a profile +- [`dbt docs generate --empty-catalog`](/reference/commands/cmd-docs) to skip catalog population while generating docs +- [`--defer-state`](/reference/node-selection/defer) enables more-granular control diff --git a/website/docs/reference/artifacts/dbt-artifacts.md b/website/docs/reference/artifacts/dbt-artifacts.md index 2fbcc329484..b20c1548d99 100644 --- a/website/docs/reference/artifacts/dbt-artifacts.md +++ b/website/docs/reference/artifacts/dbt-artifacts.md @@ -39,6 +39,7 @@ All artifacts produced by dbt include a `metadata` dictionary with these propert In the manifest, the `metadata` may also include: - `send_anonymous_usage_stats`: Whether this invocation sent [anonymous usage statistics](/reference/global-configs/usage-stats) while executing. +- `project_name`: The `name` defined in the root project's `dbt_project.yml`. (Added in manifest v10 / dbt Core v1.6) - `project_id`: Project identifier, hashed from `project_name`, sent with anonymous usage stats if enabled. - `user_id`: User identifier, stored by default in `~/dbt/.user.yml`, sent with anonymous usage stats if enabled. diff --git a/website/docs/reference/artifacts/manifest-json.md b/website/docs/reference/artifacts/manifest-json.md index c71c073d842..3a916ed6d4c 100644 --- a/website/docs/reference/artifacts/manifest-json.md +++ b/website/docs/reference/artifacts/manifest-json.md @@ -2,53 +2,18 @@ title: "Manifest JSON file" sidebar_label: "Manifest" --- - -**dbt Core v1.5 produces schema**: [`v9`](https://schemas.getdbt.com/dbt/manifest/v9/index.html) - - - - - -**dbt Core v1.4 produces schema**: [`v8`](https://schemas.getdbt.com/dbt/manifest/v8/index.html) - - - - - -**dbt Core v1.3 produces schema**: [`v7`](https://schemas.getdbt.com/dbt/manifest/v7/index.html) - - - - - -**dbt Core v1.2 produces schema**: [`v6`](https://schemas.getdbt.com/dbt/manifest/v6/index.html) - - - - - -**dbt Core v1.1 produces schema**: [`v5`](https://schemas.getdbt.com/dbt/manifest/v5/index.html) - - - - - -**dbt Core v1.0 produces schema**: [`v4`](https://schemas.getdbt.com/dbt/manifest/v4/index.html) - - - - - -**Produced by:** [`build`](/reference/commands/build) [`compile`](/reference/commands/compile) [`docs generate`](/reference/commands/cmd-docs) [`list`](/reference/commands/list) [`seed`](/reference/commands/seed) [`snapshot`](/reference/commands/snapshot) [`source freshness`](/reference/commands/source) [`test`](/reference/commands/test) [`run`](/reference/commands/run) [`run-operation`](/reference/commands/run-operation) - - - - - -**Produced by:** [`build`](commands/build) [`compile`](commands/compile) [`docs generate`](commands/cmd-docs) [`list`](commands/list) [`parse`](commands/parse) [`run`](commands/run) [`run-operation`](commands/run-operation) [`seed`](commands/seed) [`show`](commands/show) [`snapshot`](commands/snapshot) [`source freshness`](commands/source) [`test`](commands/test) - - +| dbt Core version | Manifest version | +|------------------|---------------------------------------------------------------| +| v1.6 | [v10](https://schemas.getdbt.com/dbt/manifest/v10/index.html) | +| v1.5 | [v9](https://schemas.getdbt.com/dbt/manifest/v9/index.html) | +| v1.4 | [v8](https://schemas.getdbt.com/dbt/manifest/v8/index.html) | +| v1.3 | [v7](https://schemas.getdbt.com/dbt/manifest/v7/index.html) | +| v1.2 | [v6](https://schemas.getdbt.com/dbt/manifest/v6/index.html) | +| v1.1 | [v5](https://schemas.getdbt.com/dbt/manifest/v5/index.html) | +| v1.0 | [v4](https://schemas.getdbt.com/dbt/manifest/v4/index.html) | + +**Produced by:** Any command that parses your project. This includes all commands **except** [`deps`](/reference/commands/deps), [`clean`](/reference/commands/clean), [`debug`](/reference/commands/debug), [`init`](/reference/commands/init) This single file contains a full representation of your dbt project's resources (models, tests, macros, etc), including all node configurations and resource properties. Even if you're only running some models or tests, all resources will appear in the manifest (unless they are disabled) with most of their properties. (A few node properties, such as `compiled_sql`, only appear for executed nodes.) diff --git a/website/docs/reference/commands/cmd-docs.md b/website/docs/reference/commands/cmd-docs.md index e96f825d2d9..754c5e93baf 100644 --- a/website/docs/reference/commands/cmd-docs.md +++ b/website/docs/reference/commands/cmd-docs.md @@ -10,22 +10,35 @@ id: "cmd-docs" The command is responsible for generating your project's documentation website by -1. copying the website `index.html` file into the `target/` directory -2. compiling the project to `target/manifest.json` -3. producing the `target/catalog.json` file, which contains metadata about the tables and views produced by the models in your project. +1. Copying the website `index.html` file into the `target/` directory +2. Compiling the resources in your project, so that their `compiled_code` will be included in [`manifest.json`](/reference/artifacts/manifest-json) +3. Running queries against database metadata to produce the [`catalog.json`](/reference/artifacts/catalog-json) file, which contains metadata about the tables and views produced by the models in your project. **Example**: ``` dbt docs generate ``` -Use the `--no-compile` argument to skip re-compilation. When this flag is provided, `dbt docs generate` will only execute steps (1) and (3), as described above. +Use the `--no-compile` argument to skip re-compilation. When this flag is provided, `dbt docs generate` will skip step (2) described above. **Example**: ``` dbt docs generate --no-compile ``` + + +Use the `--empty-catalog` argument to skip running the database queries to populate `catalog.json`. When this flag is provided, `dbt docs generate` will skip step (3) described above. + +This is not recommended for production environments, as it means that your documentation will be missing information gleaned from database metadata (the full set of columns in each table, and statistics about those tables). It can speed up `docs generate` in development, when you just want to visualize lineage and other information defined within your project. + +**Example**: +``` +dbt docs generate --empty-catalog +``` + + + ### dbt docs serve This command starts a webserver on port 8080 to serve your documentation locally and opens the documentation site in your default browser. The webserver is rooted in your `target/` directory. Be sure to run `dbt docs generate` before `dbt docs serve` because the `generate` command produces a [catalog metadata artifact](/reference/artifacts/catalog-json) that the `serve` command depends upon. You will see an error message if the catalog is missing. diff --git a/website/docs/reference/node-selection/defer.md b/website/docs/reference/node-selection/defer.md index e33f95a5142..6079e53793a 100644 --- a/website/docs/reference/node-selection/defer.md +++ b/website/docs/reference/node-selection/defer.md @@ -9,14 +9,18 @@ title: "Defer" -Deferral is a powerful, complex feature that enables compelling workflows. As the use cases for `--defer` evolve, dbt Labs might make enhancements to the feature, but commit to providing backward compatibility for supported versions of dbt Core. For details, see [dbt#5095](https://github.com/dbt-labs/dbt-core/discussions/5095). - Defer is a powerful feature that makes it possible to run a subset of models or tests in a [sandbox environment](/docs/environments-in-dbt) without having to first build their upstream parents. This can save time and computational resources when you want to test a small number of models in a large project. Defer requires that a manifest from a previous dbt invocation be passed to the `--state` flag or env var. Together with the `state:` selection method, these features enable "Slim CI". Read more about [state](/reference/node-selection/syntax#about-node-selection). An alternative command that accomplishes similar functionality for different use cases is `dbt clone` - see the docs for [clone](/reference/commands/clone#when-to-use-dbt-clone-instead-of-deferral) for more information. + + +It is possible to use separate state for `state:modified` and `--defer`, by passing paths to different manifests to each of the `--state`/`DBT_STATE` and `--defer-state`/`DBT_DEFER_STATE`. This enables more granular control in cases where you want to compare against logical state from one environment or past point in time, and defer to applied state from a different environment or point in time. If `--defer-state` is not specified, deferral will use the manifest supplied to `--state`. In most cases, you will want to use the same state for both: compare logical changes against production, and also "fail over" to the production environment for unbuilt upstream resources. + + + ### Usage ```shell diff --git a/website/docs/reference/node-selection/syntax.md b/website/docs/reference/node-selection/syntax.md index 36e3f03c422..1a43a32e2bc 100644 --- a/website/docs/reference/node-selection/syntax.md +++ b/website/docs/reference/node-selection/syntax.md @@ -81,7 +81,7 @@ Note that when you're using `--selector`, most other flags (namely `--select` an -## About node selection +## Stateful selection One of the greatest underlying assumptions about dbt is that its operations should be **stateless** and ****. That is, it doesn't matter how many times a model has been run before, or if it has ever been run before. It doesn't matter if you run it once or a thousand times. Given the same raw data, you can expect the same transformed result. A given run of dbt doesn't need to "know" about _any other_ run; it just needs to know about the code in the project and the objects in your database as they exist _right now_. @@ -106,7 +106,7 @@ State and defer can be set by environment variables as well as CLI flags: - + - `--state` or `DBT_STATE`: file path - `--defer` or `DBT_DEFER`: boolean @@ -119,6 +119,16 @@ In dbt v1.5, we deprecated the original syntax for state (`DBT_ARTIFACT_STATE_PA + + +- `--state` or `DBT_STATE`: file path +- `--defer` or `DBT_DEFER`: boolean +- `--defer-state` or `DBT_DEFER_STATE`: file path to use for deferral only (optional) + +If `--defer-state` is not specified, deferral will use the artifacts supplied by `--state`. This enables more granular control in cases where you want to compare against logical state from one environment or past point in time, and defer to applied state from a different environment or point in time. + + + If both the flag and env var are provided, the flag takes precedence. #### Notes: From 1f867b755f9eba03af553f1c7a4bd17e0b4a0da6 Mon Sep 17 00:00:00 2001 From: mirnawong1 <89008547+mirnawong1@users.noreply.github.com> Date: Wed, 19 Jul 2023 08:59:26 +0100 Subject: [PATCH 25/31] Update clone.md fix typo --- website/docs/reference/commands/clone.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/reference/commands/clone.md b/website/docs/reference/commands/clone.md index 3f74d7cd88a..32c8a89be04 100644 --- a/website/docs/reference/commands/clone.md +++ b/website/docs/reference/commands/clone.md @@ -23,7 +23,7 @@ dbt clone --state path/to/artifacts # clone one_specific_model of my models from specified state to my target schema(s) dbt clone --select one_specific_model --state path/to/artifacts -# clone all of my models from specified state to my target schema(s) and recreate all pre-exisiting relations in the current target +# clone all of my models from specified state to my target schema(s) and recreate all pre-existing relations in the current target dbt clone --state path/to/artifacts --full-refresh # clone all of my models from specified state to my target schema(s), running up to 50 clone statements in parallel @@ -36,4 +36,4 @@ Unlike deferral, `dbt clone` requires some compute and creation of additional ob For example, by creating actual data warehouse objects, `dbt clone` allows you to test out your code changes on downstream dependencies _outside of dbt_ (such as a BI tool). -As another example, you could `clone` your modified incremental models as the first step of your dbt Cloud CI job to prevent costly `full-refresh` builds for warehouses that support zero-copy cloning. \ No newline at end of file +As another example, you could `clone` your modified incremental models as the first step of your dbt Cloud CI job to prevent costly `full-refresh` builds for warehouses that support zero-copy cloning. From 44209776e402d4357730ed16652aff3ba81defec Mon Sep 17 00:00:00 2001 From: Ly Nguyen Date: Wed, 19 Jul 2023 09:09:27 -0700 Subject: [PATCH 26/31] Update auto-update config --- .github/workflows/autoupdate.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/autoupdate.yml b/.github/workflows/autoupdate.yml index 4105ec6b902..352a34b4b7a 100644 --- a/.github/workflows/autoupdate.yml +++ b/.github/workflows/autoupdate.yml @@ -4,9 +4,9 @@ on: # This will trigger on all pushes to all branches. push: {} # Alternatively, you can only trigger if commits are pushed to certain branches, e.g.: - # push: - # branches: - # - current + push: + branches: + - current # - unstable jobs: autoupdate: From bac3b31d7a19f057f5510976b5392b36717c5086 Mon Sep 17 00:00:00 2001 From: mirnawong1 Date: Wed, 19 Jul 2023 17:12:42 +0100 Subject: [PATCH 27/31] adding cumulative metrics --- website/docs/docs/build/about-metricflow.md | 1 + website/docs/docs/build/metrics-overview.md | 5 +++-- website/sidebars.js | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/website/docs/docs/build/about-metricflow.md b/website/docs/docs/build/about-metricflow.md index 6ec7ecfe4b5..d96d477c1fb 100644 --- a/website/docs/docs/build/about-metricflow.md +++ b/website/docs/docs/build/about-metricflow.md @@ -60,6 +60,7 @@ Metrics, which is a key concept, are functions that combine measures, constraint MetricFlow supports different metric types: +- [Cumulative](/docs/build/cumulative-metrics) — Aggregates a measure over a given window. - [Derived](/docs/build/derived) — An expression of other metrics, which allows you to do calculations on top of metrics. - [Ratio](/docs/build/ratio) — Create a ratio out of two measures, like revenue per customer. - [Simple](/docs/build/simple) — Metrics that refer directly to one measure. diff --git a/website/docs/docs/build/metrics-overview.md b/website/docs/docs/build/metrics-overview.md index e7271ecf417..103b7a242bc 100644 --- a/website/docs/docs/build/metrics-overview.md +++ b/website/docs/docs/build/metrics-overview.md @@ -25,7 +25,7 @@ This page explains the different supported metric types you can add to your dbt - [Ratio](#ratio-metrics) — Create a ratio out of two measures. --> - ### Derived metrics [Derived metrics](/docs/build/derived) are defined as an expression of other metrics. Derived metrics allow you to do calculations on top of metrics. @@ -145,7 +144,9 @@ You can set more metadata for your metrics, which can be used by other tools lat ## Related docs - [Semantic models](/docs/build/semantic-models) +- [Cumulative](/docs/build/cumulative-metrics) - [Derived](/docs/build/derived) + diff --git a/website/sidebars.js b/website/sidebars.js index bf992619dbc..1a1b33ab1db 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -275,6 +275,7 @@ const sidebarSettings = { label: "Metrics", link: { type: "doc", id: "docs/build/metrics-overview"}, items: [ + "docs/build/cumulative", "docs/build/derived", "docs/build/ratio", "docs/build/simple", From 3f8a9adf536cd8469a7b540880a824ecbc90f9f7 Mon Sep 17 00:00:00 2001 From: mirnawong1 Date: Wed, 19 Jul 2023 17:19:13 +0100 Subject: [PATCH 28/31] fix links --- website/docs/docs/build/about-metricflow.md | 2 +- website/docs/docs/build/metrics-overview.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/docs/build/about-metricflow.md b/website/docs/docs/build/about-metricflow.md index d96d477c1fb..5a42fcd7b3e 100644 --- a/website/docs/docs/build/about-metricflow.md +++ b/website/docs/docs/build/about-metricflow.md @@ -60,7 +60,7 @@ Metrics, which is a key concept, are functions that combine measures, constraint MetricFlow supports different metric types: -- [Cumulative](/docs/build/cumulative-metrics) — Aggregates a measure over a given window. +- [Cumulative](/docs/build/cumulative) — Aggregates a measure over a given window. - [Derived](/docs/build/derived) — An expression of other metrics, which allows you to do calculations on top of metrics. - [Ratio](/docs/build/ratio) — Create a ratio out of two measures, like revenue per customer. - [Simple](/docs/build/simple) — Metrics that refer directly to one measure. diff --git a/website/docs/docs/build/metrics-overview.md b/website/docs/docs/build/metrics-overview.md index 103b7a242bc..b2cadb9116f 100644 --- a/website/docs/docs/build/metrics-overview.md +++ b/website/docs/docs/build/metrics-overview.md @@ -144,7 +144,7 @@ You can set more metadata for your metrics, which can be used by other tools lat ## Related docs - [Semantic models](/docs/build/semantic-models) -- [Cumulative](/docs/build/cumulative-metrics) +- [Cumulative](/docs/build/cumulative) - [Derived](/docs/build/derived) From 991ff053a24e97b0a6b5b3c5631c1c1d428953ab Mon Sep 17 00:00:00 2001 From: Ly Nguyen <107218380+nghi-ly@users.noreply.github.com> Date: Wed, 19 Jul 2023 09:36:52 -0700 Subject: [PATCH 29/31] Update .github/workflows/autoupdate.yml --- .github/workflows/autoupdate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/autoupdate.yml b/.github/workflows/autoupdate.yml index 352a34b4b7a..f26abcb6802 100644 --- a/.github/workflows/autoupdate.yml +++ b/.github/workflows/autoupdate.yml @@ -2,7 +2,7 @@ name: Auto Update on: # This will trigger on all pushes to all branches. - push: {} +# push: {} # Alternatively, you can only trigger if commits are pushed to certain branches, e.g.: push: branches: From 5bbfa6b81dea5b9fb594d36ce96c5021d3c011e7 Mon Sep 17 00:00:00 2001 From: mirnawong1 <89008547+mirnawong1@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:49:11 +0100 Subject: [PATCH 30/31] Update metrics-overview.md adding timespine info --- website/docs/docs/build/metrics-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/docs/build/metrics-overview.md b/website/docs/docs/build/metrics-overview.md index b2cadb9116f..351c674ca8a 100644 --- a/website/docs/docs/build/metrics-overview.md +++ b/website/docs/docs/build/metrics-overview.md @@ -28,7 +28,7 @@ This page explains the different supported metric types you can add to your dbt ### Cumulative metrics -[Cumulative metrics](/docs/build/cumulative) aggregate a measure over a given window. Note that if no window is specified, the window would accumulate the measure over all time. +[Cumulative metrics](/docs/build/cumulative) aggregate a measure over a given window. If no window is specified, the window would accumulate the measure over all time. **Note**m, you will need to create the [time spine model](/docs/build/metricflow-time-spine) before you add cumulative metrics. ```yaml # Cumulative metrics aggregate a measure over a given window. The window is considered infinite if no window parameter is passed (accumulate the measure over all time) From cc7ea5938a4290b5cf9e23a5e93f1c6c28242719 Mon Sep 17 00:00:00 2001 From: mirnawong1 <89008547+mirnawong1@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:51:43 +0100 Subject: [PATCH 31/31] Update cumulative-metrics.md --- website/docs/docs/build/cumulative-metrics.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/website/docs/docs/build/cumulative-metrics.md b/website/docs/docs/build/cumulative-metrics.md index 77d23d32dce..efdde600635 100644 --- a/website/docs/docs/build/cumulative-metrics.md +++ b/website/docs/docs/build/cumulative-metrics.md @@ -8,6 +8,12 @@ tags: [Metrics, Semantic Layer] Cumulative metrics aggregate a measure over a given window. If no window is specified, the window is considered infinite and accumulates values over all time. +:::info MetricFlow time spine required + +You will need to create the [time spine model](/docs/build/metricflow-time-spine) before you add cumulative metrics. + +::: + ```yaml # Cumulative metrics aggregate a measure over a given window. The window is considered infinite if no window parameter is passed (accumulate the measure over all time) metrics: @@ -24,7 +30,7 @@ metrics: ### Window options -This section details examples for when you specify and don't specify window options. +This section details examples of when you specify and don't specify window options. @@ -56,7 +62,7 @@ metrics: window: 7 days ``` -From the sample yaml above, note the following: +From the sample YAML above, note the following: * `type`: Specify cumulative to indicate the type of metric. * `type_params`: Specify the measure you want to aggregate as a cumulative metric. You have the option of specifying a `window`, or a `grain to date`. @@ -142,7 +148,7 @@ metrics: ```yaml metrics: name: revenue_monthly_grain_to_date #For this metric, we use a monthly grain to date - description: Monthly revenue using a grain to date of 1 month (think of this as a monthly resetting point) + description: Monthly revenue using grain to date of 1 month (think of this as a monthly resetting point) type: cumulative type_params: measures: