From 9aefc6c8ed2c81efb9bb9822233479b3c5b765ef Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 22 Sep 2025 17:43:54 +0200 Subject: [PATCH 01/17] Task/update FUNDING.yml (#5564) * Change custom to buy_me_a_coffee --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 57ee8ad6f..9df3e0d6d 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -custom: ['https://www.buymeacoffee.com/ghostfolio'] +buy_me_a_coffee: ghostfolio From 010b1e9b03b91123df42eec0945d086d40e3cdd0 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 22 Sep 2025 17:44:16 +0200 Subject: [PATCH 02/17] Feature/remove account column from activities table of account detail dialog (#5559) * Remove account column of activities table * Update changelog --- CHANGELOG.md | 1 + .../components/account-detail-dialog/account-detail-dialog.html | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee1318bbf..7abc0ac03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Hid the account column from the activities table of the account detail dialog to avoid redundant information - Renamed the show access token dialog component to user account registration dialog component - Refreshed the cryptocurrencies list - Upgraded `countup.js` from version `2.8.2` to `2.9.0` diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html index 8ca54ce29..eff500d0a 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html @@ -126,6 +126,7 @@ [hasPermissionToFilter]="false" [hasPermissionToOpenDetails]="false" [locale]="user?.settings?.locale" + [showAccountColumn]="false" [showActions]=" !data.hasImpersonationId && data.hasPermissionToCreateActivity && From 217ecd4d3f29b85f482f34589804a9c8275f8114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sven=20G=C3=BCnther?= Date: Mon, 22 Sep 2025 21:54:24 +0200 Subject: [PATCH 03/17] Feature/set up pagination in import activities dialog (#5527) * Set up pagination in import activities dialog * Update changelog --- CHANGELOG.md | 1 + .../import-activities-dialog.component.ts | 12 ++++- .../import-activities-dialog.html | 47 ++++++++++--------- .../activities-table.component.ts | 4 ++ 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7abc0ac03..2f65ade6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added the symbol to the benchmark component +- Added pagination to the activities table of the activities import dialog - Added an option to configure the account column of the activities table component ### Changed diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts index b1794cb4a..ea3292663 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts @@ -36,6 +36,7 @@ import { } from '@angular/material/dialog'; import { MatExpansionModule } from '@angular/material/expansion'; import { MatFormFieldModule } from '@angular/material/form-field'; +import { PageEvent } from '@angular/material/paginator'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; import { MatSnackBar } from '@angular/material/snack-bar'; @@ -90,8 +91,9 @@ export class GfImportActivitiesDialog implements OnDestroy { public holdings: PortfolioPosition[] = []; public importStep: ImportStep = ImportStep.UPLOAD_FILE; public isLoading = false; - public maxSafeInteger = Number.MAX_SAFE_INTEGER; public mode: 'DIVIDEND'; + public pageIndex = 0; + public pageSize = 8; public selectedActivities: Activity[] = []; public sortColumn = 'date'; public sortDirection: SortDirection = 'desc'; @@ -236,6 +238,7 @@ export class GfImportActivitiesDialog implements OnDestroy { .subscribe(({ activities }) => { this.activities = activities; this.dataSource = new MatTableDataSource(activities.reverse()); + this.pageIndex = 0; this.totalItems = activities.length; aStepper.next(); @@ -244,10 +247,15 @@ export class GfImportActivitiesDialog implements OnDestroy { }); } + public onPageChanged({ pageIndex }: PageEvent) { + this.pageIndex = pageIndex; + } + public onReset(aStepper: MatStepper) { this.details = []; this.errorMessages = []; this.importStep = ImportStep.SELECT_ACTIVITIES; + this.pageIndex = 0; this.assetProfileForm.get('assetProfileIdentifier').enable(); aStepper.reset(); @@ -338,6 +346,7 @@ export class GfImportActivitiesDialog implements OnDestroy { }); this.activities = activities; this.dataSource = new MatTableDataSource(activities.reverse()); + this.pageIndex = 0; this.totalItems = activities.length; } catch (error) { console.error(error); @@ -356,6 +365,7 @@ export class GfImportActivitiesDialog implements OnDestroy { }); this.activities = data.activities; this.dataSource = new MatTableDataSource(data.activities.reverse()); + this.pageIndex = 0; this.totalItems = data.activities.length; } catch (error) { console.error(error); diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html index 6b048e6c0..508fdd753 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -21,9 +21,10 @@ Select File } -
+
@if (mode === 'DIVIDEND') {
@@ -114,7 +115,7 @@ Select Activities } -
+
@if (errorMessages?.length === 0) { @if (importStep === 1) { } @@ -153,25 +156,27 @@
} @else { - - @for (message of errorMessages; track message; let i = $index) { - - - -
-
- +
+ + @for (message of errorMessages; track message; let i = $index) { + + + +
+
+ +
+
{{ message }}
-
{{ message }}
-
- - - @if (details[i]) { -
{{ details[i] | json }}
- } - - } - + + + @if (details[i]) { +
{{ details[i] | json }}
+ } + + } + +
} +
+
+ + + Latest activities + + + + + +
+

diff --git a/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts b/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts index 7a98e3c8d..cb06800be 100644 --- a/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts +++ b/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts @@ -1,5 +1,11 @@ -import { PortfolioDetails, PortfolioPosition } from '..'; -import { Market } from '../../types'; +import { + EnhancedSymbolProfile, + PortfolioDetails, + PortfolioPosition +} from '@ghostfolio/common/interfaces'; +import { Market } from '@ghostfolio/common/types'; + +import { Order } from '@prisma/client'; export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 { alias?: string; @@ -23,6 +29,14 @@ export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 { | 'valueInPercentage' >; }; + latestActivities: (Pick< + Order, + 'currency' | 'date' | 'fee' | 'quantity' | 'type' | 'unitPrice' + > & { + SymbolProfile?: EnhancedSymbolProfile; + value: number; + valueInBaseCurrency: number; + })[]; markets: { [key in Market]: Pick< PortfolioDetails['markets'][key], From e54985d9844f3e8b47086e8a483ead9bf31508c8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 24 Sep 2025 20:49:04 +0200 Subject: [PATCH 08/17] Feature/update locales (#5516) * Update locales * Update translation * Update changelog --------- Co-authored-by: github-actions[bot] Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ca.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.de.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.es.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.fr.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.it.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.nl.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.pl.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.pt.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.tr.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.uk.xlf | 212 ++++++++++++------------ apps/client/src/locales/messages.xlf | 211 +++++++++++------------ apps/client/src/locales/messages.zh.xlf | 212 ++++++++++++------------ 13 files changed, 1320 insertions(+), 1224 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 607701318..c161bfbcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Hid the account column from the activities table of the account detail dialog to avoid redundant information - Renamed the show access token dialog component to user account registration dialog component - Refreshed the cryptocurrencies list +- Improved the language localization for German (`de`) - Upgraded `countup.js` from version `2.8.2` to `2.9.0` ### Fixed diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 2e71f05e7..bd4be27a4 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -38,7 +38,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -73,11 +73,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -403,7 +403,7 @@ Balanç de Caixa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -463,7 +463,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -515,7 +515,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -551,11 +551,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -591,7 +591,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -627,11 +627,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -659,7 +659,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -819,7 +819,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -859,7 +859,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -999,7 +999,7 @@ El preu de mercat actual és apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -1015,11 +1015,11 @@ Importar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -1071,7 +1071,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1527,7 +1527,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -1631,7 +1631,7 @@ Oooh! El testimoni de seguretat és incorrecte. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -1671,7 +1671,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1934,11 +1934,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -1963,7 +1963,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -2643,7 +2643,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2663,7 +2663,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2679,7 +2679,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -3268,7 +3268,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -3924,7 +3924,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -3932,7 +3932,7 @@ Activitats d’importació apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3940,7 +3940,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -3948,7 +3948,7 @@ Importar dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3956,7 +3956,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3964,7 +3964,7 @@ S’estan important dades... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -3972,7 +3972,7 @@ La importació s’ha completat apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -3988,7 +3988,7 @@ S’estan validant les dades... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -4012,7 +4012,7 @@ Holding apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -4024,7 +4024,7 @@ Càrrega de dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -4032,7 +4032,7 @@ Trieu o deixeu anar un fitxer aquí apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -4040,7 +4040,7 @@ S’admeten els formats de fitxer següents: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -4048,7 +4048,7 @@ Seleccioneu Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -4056,7 +4056,7 @@ Seleccioneu Activitats apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4064,11 +4064,11 @@ Enrere apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -4160,7 +4160,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -4184,7 +4184,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -4196,7 +4204,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -4208,7 +4216,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -4316,7 +4324,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -4692,7 +4700,7 @@ Continents apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -4700,7 +4708,7 @@ Vols refinar la teva estratègia d’inversió personal? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -4708,7 +4716,7 @@ Ghostfolio us permet fer un seguiment de la vostra riquesa. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -4743,7 +4751,7 @@ Copy to clipboard Copia al porta-retalls - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -5145,7 +5153,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -5157,7 +5165,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -5173,7 +5181,7 @@ Esborrany libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -5181,7 +5189,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -5189,7 +5197,7 @@ Exporta l’esborrany com a ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -5197,7 +5205,7 @@ De veritat vols suprimir aquestes activitats? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -5205,7 +5213,7 @@ Realment vols suprimir aquesta activitat? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -5309,7 +5317,7 @@ Tendència de 50 dies libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5317,7 +5325,7 @@ Tendència de 200 dies libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5325,7 +5333,7 @@ Darrer tot el temps libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5333,7 +5341,7 @@ Canvi des del màxim històric libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -5341,7 +5349,7 @@ de l’ATH libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -5457,7 +5465,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -5761,7 +5769,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -6009,11 +6017,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -6041,7 +6049,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6049,7 +6057,7 @@ Aplicació apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6057,7 +6065,7 @@ Pressupost apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6113,7 +6121,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6121,7 +6129,7 @@ Oficina familiar apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6129,7 +6137,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6141,7 +6149,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6153,7 +6161,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6161,7 +6169,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6169,7 +6177,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6177,7 +6185,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6185,7 +6193,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6193,7 +6201,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6201,7 +6209,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6353,7 +6361,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6424,7 +6432,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6855,7 +6863,7 @@ Please enter your Ghostfolio API key: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7035,7 +7043,7 @@ Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7043,7 +7051,7 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7083,7 +7091,7 @@ end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7091,7 +7099,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7198,7 +7206,7 @@ Terms and Conditions Terms and Conditions - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7206,7 +7214,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Please keep your security token safe. If you lose it, you will not be able to recover your account. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7214,7 +7222,7 @@ I understand that if I lose my security token, I cannot recover my account I understand that if I lose my security token, I cannot recover my account - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7222,7 +7230,7 @@ Continue Continue - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7230,7 +7238,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Here is your security token. It is only visible once, please store and keep it in a safe place. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7315,7 +7323,7 @@ and I agree to the Terms of Service. and I agree to the Terms of Service. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7324,7 +7332,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7332,7 +7340,7 @@ An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ someone apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Calculations are based on delayed market data and may not be displayed in real-time. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 8edbd8187..4dcc345d4 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -13,11 +13,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -54,7 +54,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -134,7 +134,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -190,11 +190,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -230,7 +230,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -266,11 +266,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -422,7 +422,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -686,7 +686,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -698,7 +698,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -718,7 +718,7 @@ Ups! Falsches Sicherheits-Token. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -769,11 +769,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -798,7 +798,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -922,7 +922,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1050,7 +1050,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -1342,7 +1342,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -1706,7 +1706,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -1866,7 +1866,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1882,7 +1882,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -1950,7 +1950,7 @@ Daten importieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -1958,7 +1958,7 @@ Der Import wurde abgeschlossen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -2018,7 +2018,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -2030,7 +2030,7 @@ Kontinente apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -2038,7 +2038,7 @@ Ghostfolio verschafft dir den Überblick über dein Vermögen. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -2073,7 +2073,7 @@ Copy to clipboard In die Zwischenablage kopieren - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -2130,7 +2130,7 @@ Geplant libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -2138,7 +2138,7 @@ Aktivitäten importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2146,7 +2146,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -2158,7 +2158,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -2170,7 +2170,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -2178,7 +2178,7 @@ Kopieren libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -2186,7 +2186,7 @@ Geplante Aktivität als ICS exportieren libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -2194,7 +2194,7 @@ Möchtest du diese Aktivität wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -2202,7 +2202,7 @@ Änderung vom Allzeithoch libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -2210,7 +2210,7 @@ vom AZH libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -2266,7 +2266,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2278,7 +2278,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2346,7 +2346,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Neueste Aktivitäten + + apps/client/src/app/pages/public/public-page.html + 211 @@ -2358,7 +2366,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -2370,7 +2378,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -2614,7 +2622,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -2838,11 +2846,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -2910,7 +2918,7 @@ Folgende Dateiformate werden unterstützt: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -2918,11 +2926,11 @@ Zurück apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3030,7 +3038,7 @@ Daten validieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3038,11 +3046,11 @@ Importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -3086,7 +3094,7 @@ Position apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3098,7 +3106,7 @@ Dividenden laden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3114,7 +3122,7 @@ Dividenden importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3122,7 +3130,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3654,7 +3662,7 @@ Möchtest du diese Aktivitäten wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3810,7 +3818,7 @@ Dividenden auswählen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3818,7 +3826,7 @@ Aktivitäten auswählen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4522,7 +4530,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -5168,7 +5176,7 @@ Wähle eine Datei aus oder ziehe sie hierhin apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -5204,7 +5212,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5360,7 +5368,7 @@ Letztes Allzeithoch libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5448,7 +5456,7 @@ 50 Tage Trend libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5456,7 +5464,7 @@ 200 Tage Trend libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5464,7 +5472,7 @@ Cash-Bestände apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5500,7 +5508,7 @@ Der aktuelle Marktpreis ist apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5604,7 +5612,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6057,7 +6065,7 @@ Möchtest du deine persönliche Anlagestrategie verfeinern? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6065,7 +6073,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6073,7 +6081,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6081,7 +6089,7 @@ Budgetierung apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6137,7 +6145,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6145,7 +6153,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6153,7 +6161,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6165,7 +6173,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6177,7 +6185,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6185,7 +6193,7 @@ Datenschutz apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6193,7 +6201,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6201,7 +6209,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6209,7 +6217,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6217,7 +6225,7 @@ Vermögen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6225,7 +6233,7 @@ Vermögensverwaltung apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6377,7 +6385,7 @@ Fehler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6448,7 +6456,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6879,7 +6887,7 @@ Bitte gib den API-Schlüssel ein: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7059,7 +7067,7 @@ Verzögert apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7067,7 +7075,7 @@ Sofort apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7107,7 +7115,7 @@ Tagesende apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7115,7 +7123,7 @@ in Echtzeit apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7222,7 +7230,7 @@ Terms and Conditions Nutzungsbedingungen - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7230,7 +7238,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Bitte bewahre dein Sicherheits-Token sicher auf. Wenn du es verlierst, kannst du dein Benutzerkonto nicht wiederherstellen. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7238,7 +7246,7 @@ I understand that if I lose my security token, I cannot recover my account Ich nehme zur Kenntnis, dass ich mein Benutzerkonto nicht wiederherstellen kann, wenn ich mein Sicherheits-Token verliere - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7246,7 +7254,7 @@ Continue Weiter - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7254,7 +7262,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Hier ist dein Sicherheits-Token. Es ist nur ein einziges Mal sichtbar. Bitte bewahre es sicher auf. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7339,7 +7347,7 @@ and I agree to the Terms of Service. und ich stimme den Allgemeinen Geschäftsbedingungen zu. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7348,7 +7356,7 @@ () wird bereits verwendet. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7356,7 +7364,7 @@ Bei der Änderung zu () ist ein Fehler aufgetreten. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ jemand apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Möchtest du diesen Eintrag wirklich löschen? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Berechnungen basieren auf verzögerten Marktdaten und werden nicht in Echtzeit angezeigt. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 669601533..c23d83944 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -14,11 +14,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -55,7 +55,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -135,7 +135,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -191,11 +191,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -231,7 +231,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -267,11 +267,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -423,7 +423,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -671,7 +671,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -683,7 +683,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -703,7 +703,7 @@ Vaya! Token de seguridad incorrecto. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -754,11 +754,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -783,7 +783,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -907,7 +907,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1035,7 +1035,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -1327,7 +1327,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -1691,7 +1691,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -1851,7 +1851,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1867,7 +1867,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -1935,7 +1935,7 @@ Importando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -1943,7 +1943,7 @@ La importación se ha completado apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -2003,7 +2003,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -2015,7 +2015,7 @@ Continentes apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -2023,7 +2023,7 @@ Ghostfolio te permite hacer un seguimiento de tu riqueza. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -2058,7 +2058,7 @@ Copy to clipboard Copiar al portapapeles - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -2115,7 +2115,7 @@ Borrador libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -2123,7 +2123,7 @@ Importar operaciones apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2131,7 +2131,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -2143,7 +2143,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -2155,7 +2155,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -2163,7 +2163,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -2171,7 +2171,7 @@ Exportar borrador como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -2179,7 +2179,7 @@ ¿Estás seguro de eliminar esta operación? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -2187,7 +2187,7 @@ Variación respecto al máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -2195,7 +2195,7 @@ desde el máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -2247,7 +2247,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2263,7 +2263,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2287,7 +2287,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -2307,7 +2315,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -2319,7 +2327,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -2599,7 +2607,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -2823,11 +2831,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -2895,7 +2903,7 @@ Los siguientes formatos de archivo están soportados: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -2903,11 +2911,11 @@ Volver apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3015,7 +3023,7 @@ Validando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3023,11 +3031,11 @@ Importar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -3071,7 +3079,7 @@ Participación apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3083,7 +3091,7 @@ Cargar dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3099,7 +3107,7 @@ Importar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3107,7 +3115,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3631,7 +3639,7 @@ ¿Realmente deseas eliminar estas actividades? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3787,7 +3795,7 @@ Seleccionar dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3795,7 +3803,7 @@ Seleccionar dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4499,7 +4507,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -5145,7 +5153,7 @@ Elige o suelta un archivo aquí apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -5181,7 +5189,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5337,7 +5345,7 @@ Último máximo histórico libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5425,7 +5433,7 @@ Tendencia de 50 días libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5433,7 +5441,7 @@ Tendencia de 200 días libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5441,7 +5449,7 @@ Saldos de efectivo apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5477,7 +5485,7 @@ El precio actual de mercado es apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5581,7 +5589,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6034,7 +6042,7 @@ ¿Te gustaría refinar tu estrategia de inversión personal? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6042,7 +6050,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6050,7 +6058,7 @@ Aplicación apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6058,7 +6066,7 @@ Presupuestación apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6114,7 +6122,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6122,7 +6130,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6130,7 +6138,7 @@ Inversor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6142,7 +6150,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6154,7 +6162,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6162,7 +6170,7 @@ Privacidad apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6170,7 +6178,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6178,7 +6186,7 @@ Herramienta apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6186,7 +6194,7 @@ Experiencia del usuario apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6194,7 +6202,7 @@ Riqueza apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6202,7 +6210,7 @@ Gestión de patrimonios apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6354,7 +6362,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6425,7 +6433,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6856,7 +6864,7 @@ Ingrese su clave API de Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7036,7 +7044,7 @@ Perezoso apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7044,7 +7052,7 @@ Instantáneo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7084,7 +7092,7 @@ final del día apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7092,7 +7100,7 @@ en tiempo real apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7199,7 +7207,7 @@ Terms and Conditions Terminos y condiciones - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7207,7 +7215,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Por favor, mantén tu token de seguridad a salvo. Si lo pierdes, no podrás recuperar tu cuenta. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7215,7 +7223,7 @@ I understand that if I lose my security token, I cannot recover my account Entiendo que si pierdo mi token de seguridad, no podré recuperar mi cuenta - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7223,7 +7231,7 @@ Continue Continuar - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7231,7 +7239,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Aquí está tu token de seguridad. Solo es visible una vez, por favor guárdalo y mantenlo en un lugar seguro. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7316,7 +7324,7 @@ and I agree to the Terms of Service. y acepto los Términos del servicio. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7325,7 +7333,7 @@ () ya está en uso. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7333,7 +7341,7 @@ Ocurrió un error al actualizar a (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7397,7 +7405,7 @@ alguien apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7429,7 +7437,7 @@ ¿Realmente deseas eliminar este elemento? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7445,11 +7453,11 @@ Los cálculos se basan en datos de mercado retrasados ​​y es posible que no se muestren en tiempo real. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index f9ce310b9..0e7d8ab2d 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -46,7 +46,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -142,7 +142,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -194,7 +194,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -246,11 +246,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -286,7 +286,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -322,11 +322,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -478,7 +478,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -630,7 +630,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -874,7 +874,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -930,7 +930,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -950,7 +950,7 @@ Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -1049,11 +1049,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -1078,7 +1078,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -1222,7 +1222,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1302,7 +1302,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -1314,7 +1314,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -1330,7 +1330,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -2022,7 +2022,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -2030,7 +2030,7 @@ Import des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -2038,7 +2038,7 @@ L’import est terminé apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -2054,7 +2054,7 @@ Validation des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -2062,7 +2062,7 @@ Les formats de fichier suivants sont supportés : apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -2070,11 +2070,11 @@ Retour apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -2082,11 +2082,11 @@ Importer apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -2182,7 +2182,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -2206,7 +2206,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -2218,7 +2226,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -2230,7 +2238,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -2410,7 +2418,7 @@ Continents apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -2418,7 +2426,7 @@ Ghostfolio vous aide à garder un aperçu de votre patrimoine. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -2430,7 +2438,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -2457,11 +2465,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -2485,7 +2493,7 @@ Copy to clipboard Copier vers le presse-papier - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -2574,7 +2582,7 @@ Brouillon libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -2582,7 +2590,7 @@ Importer Activités apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2590,7 +2598,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -2602,7 +2610,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -2614,7 +2622,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -2622,7 +2630,7 @@ Dupliquer libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -2630,7 +2638,7 @@ Exporter Brouillon sous ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -2638,7 +2646,7 @@ Voulez-vous vraiment supprimer cette activité ? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -2646,7 +2654,7 @@ Différence avec le Record Historique libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -2654,7 +2662,7 @@ par rapport au record historique libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -2738,7 +2746,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -3046,11 +3054,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -3070,7 +3078,7 @@ Position apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3082,7 +3090,7 @@ Charger Dividendes apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3098,7 +3106,7 @@ Importer Dividendes apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3106,7 +3114,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3630,7 +3638,7 @@ Voulez-vous vraiment supprimer toutes vos activités ? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3786,7 +3794,7 @@ Selectionner les Dividendes apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3794,7 +3802,7 @@ Selectionner les Activités apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4498,7 +4506,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -5144,7 +5152,7 @@ Choisissez ou déposez un fichier ici apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -5180,7 +5188,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5336,7 +5344,7 @@ Dernier All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5424,7 +5432,7 @@ Tendance 50 jours libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5432,7 +5440,7 @@ Tendance 200 jours libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5440,7 +5448,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5476,7 +5484,7 @@ Le prix actuel du marché est apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5580,7 +5588,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6033,7 +6041,7 @@ Souhaitez-vous affiner votre stratégie d’investissement personnelle? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6041,7 +6049,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6049,7 +6057,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6057,7 +6065,7 @@ Budget apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6113,7 +6121,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6121,7 +6129,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6129,7 +6137,7 @@ Investisseur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6141,7 +6149,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6153,7 +6161,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6161,7 +6169,7 @@ Confidentialité apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6169,7 +6177,7 @@ Logiciels apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6177,7 +6185,7 @@ Outils apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6185,7 +6193,7 @@ Expérience Utilisateur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6193,7 +6201,7 @@ Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6201,7 +6209,7 @@ Gestion de Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6353,7 +6361,7 @@ Erreur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6424,7 +6432,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6855,7 +6863,7 @@ Veuillez saisir votre clé API Ghostfolio : apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7035,7 +7043,7 @@ Paresseux apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7043,7 +7051,7 @@ Instantané apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7083,7 +7091,7 @@ fin de journée apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7091,7 +7099,7 @@ temps réel apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7198,7 +7206,7 @@ Terms and Conditions Conditions générales - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7206,7 +7214,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Veuillez garder votre jeton de sécurité en lieu sûr. Si vous le perdez, vous ne pourrez pas récupérer votre compte. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7214,7 +7222,7 @@ I understand that if I lose my security token, I cannot recover my account Je comprends que si je perds mon jeton de sécurité, je ne pourrai pas récupérer mon compte - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7222,7 +7230,7 @@ Continue Continuer - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7230,7 +7238,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Voici votre jeton de sécurité. Il n’est visible qu’une seule fois, veuillez le conserver en lieu sûr. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7315,7 +7323,7 @@ and I agree to the Terms of Service. et j’accepte les conditions d’utilisation. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7324,7 +7332,7 @@ () est déjà utilisé. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7332,7 +7340,7 @@ Une erreur s’est produite lors de la mise à jour vers (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ quelqu’un apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Voulez-vous vraiment supprimer cet élément? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Les calculs sont basés sur des données de marché retardées et peuvent ne pas être affichés en temps réel. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index b89b8b768..e6e96a265 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -14,11 +14,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -55,7 +55,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -135,7 +135,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -191,11 +191,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -231,7 +231,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -267,11 +267,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -423,7 +423,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -671,7 +671,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -683,7 +683,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -703,7 +703,7 @@ Ops! Token di sicurezza errato. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -754,11 +754,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -783,7 +783,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -907,7 +907,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1035,7 +1035,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -1327,7 +1327,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -1691,7 +1691,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -1851,7 +1851,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1867,7 +1867,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -1935,7 +1935,7 @@ Importazione dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -1943,7 +1943,7 @@ L’importazione è stata completata apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -2003,7 +2003,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -2015,7 +2015,7 @@ Continenti apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -2023,7 +2023,7 @@ Ghostfolio ti permette di tenere traccia della tua ricchezza. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -2058,7 +2058,7 @@ Copy to clipboard Copia negli appunti - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -2115,7 +2115,7 @@ Bozza libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -2123,7 +2123,7 @@ Importa le attività apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2131,7 +2131,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -2143,7 +2143,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -2155,7 +2155,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -2163,7 +2163,7 @@ Clona libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -2171,7 +2171,7 @@ Esporta la bozza come ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -2179,7 +2179,7 @@ Vuoi davvero eliminare questa attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -2187,7 +2187,7 @@ Variazione rispetto al massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -2195,7 +2195,7 @@ dal massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -2247,7 +2247,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2263,7 +2263,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2287,7 +2287,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -2307,7 +2315,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -2319,7 +2327,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -2599,7 +2607,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -2823,11 +2831,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -2895,7 +2903,7 @@ Sono supportati i seguenti formati di file: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -2903,11 +2911,11 @@ Indietro apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3015,7 +3023,7 @@ Convalida dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3023,11 +3031,11 @@ Importa apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -3071,7 +3079,7 @@ Partecipazione apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3083,7 +3091,7 @@ Carica i dividendi apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3099,7 +3107,7 @@ Importa i dividendi apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3107,7 +3115,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3631,7 +3639,7 @@ Vuoi davvero eliminare tutte le tue attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3787,7 +3795,7 @@ Seleziona i dividendi apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3795,7 +3803,7 @@ Seleziona le attività apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4499,7 +4507,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -5145,7 +5153,7 @@ Seleziona o trascina qui un file apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -5181,7 +5189,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5337,7 +5345,7 @@ Ultimo massimo storico libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5425,7 +5433,7 @@ Trend a 50 giorni libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5433,7 +5441,7 @@ Trend a 200 giorni libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5441,7 +5449,7 @@ Saldi di cassa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5477,7 +5485,7 @@ L’attuale prezzo di mercato è apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5581,7 +5589,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6034,7 +6042,7 @@ Vorresti perfezionare la tua strategia personale di investimento? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6042,7 +6050,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6050,7 +6058,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6058,7 +6066,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6114,7 +6122,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6122,7 +6130,7 @@ Ufficio familiare apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6130,7 +6138,7 @@ Investitore apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6142,7 +6150,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6154,7 +6162,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6162,7 +6170,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6170,7 +6178,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6178,7 +6186,7 @@ Strumento apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6186,7 +6194,7 @@ Esperienza Utente apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6194,7 +6202,7 @@ Ricchezza apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6202,7 +6210,7 @@ Gestione Patrimoniale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6354,7 +6362,7 @@ Errore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6425,7 +6433,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6856,7 +6864,7 @@ Inserisci la tua API key di Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7036,7 +7044,7 @@ Pigro apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7044,7 +7052,7 @@ Istantaneo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7084,7 +7092,7 @@ fine giornata apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7092,7 +7100,7 @@ in tempo reale apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7199,7 +7207,7 @@ Terms and Conditions Termini e condizioni - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7207,7 +7215,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Ti preghiamo di conservare il tuo token di sicurezza in un luogo sicuro. Se lo perdi, non sarai in grado di recuperare il tuo account. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7215,7 +7223,7 @@ I understand that if I lose my security token, I cannot recover my account Capisco che se perdo il mio token di sicurezza, non posso recuperare il mio account - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7223,7 +7231,7 @@ Continue Continua - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7231,7 +7239,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Ecco il tuo token di sicurezza. È visibile solo una volta, per favore memorizzalo e conserva in un luogo sicuro. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7316,7 +7324,7 @@ and I agree to the Terms of Service. e io accetto i Termini e condizioni. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7325,7 +7333,7 @@ () e gia in uso. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7333,7 +7341,7 @@ Si è verificato un errore durante l’aggiornamento di (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7397,7 +7405,7 @@ qualcuno apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7429,7 +7437,7 @@ Vuoi davvero eliminare questo elemento? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7445,11 +7453,11 @@ I calcoli sono basati su dati di mercato ritardati e potrebbero non essere visualizzati in tempo reale. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index d5f5e4d2f..140089733 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -13,11 +13,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -54,7 +54,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -134,7 +134,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -190,11 +190,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -230,7 +230,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -266,11 +266,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -422,7 +422,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -670,7 +670,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -682,7 +682,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -702,7 +702,7 @@ Oeps! Onjuiste beveiligingstoken. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -753,11 +753,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -782,7 +782,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -906,7 +906,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1034,7 +1034,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -1326,7 +1326,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -1690,7 +1690,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -1850,7 +1850,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1866,7 +1866,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -1934,7 +1934,7 @@ Gegevens importeren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -1942,7 +1942,7 @@ Importeren is voltooid apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -2002,7 +2002,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -2014,7 +2014,7 @@ Continenten apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -2022,7 +2022,7 @@ Ghostfolio stelt je in staat om je vermogen bij te houden. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -2057,7 +2057,7 @@ Copy to clipboard Kopieer naar klembord - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -2114,7 +2114,7 @@ Concept libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -2122,7 +2122,7 @@ Activiteiten importeren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2130,7 +2130,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -2142,7 +2142,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -2154,7 +2154,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -2162,7 +2162,7 @@ Kloon libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -2170,7 +2170,7 @@ Concept exporteren als ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -2178,7 +2178,7 @@ Wil je deze activiteit echt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -2186,7 +2186,7 @@ Verandering van Recordhoogte libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -2194,7 +2194,7 @@ van ATH libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -2246,7 +2246,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2262,7 +2262,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2286,7 +2286,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -2306,7 +2314,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -2318,7 +2326,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -2598,7 +2606,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -2822,11 +2830,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -2894,7 +2902,7 @@ De volgende bestandsformaten worden ondersteund: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -2902,11 +2910,11 @@ Terug apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3014,7 +3022,7 @@ Gegevens valideren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3022,11 +3030,11 @@ Importeren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -3070,7 +3078,7 @@ Positie apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3082,7 +3090,7 @@ Laad dividenden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3098,7 +3106,7 @@ Importeer dividenden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3106,7 +3114,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3630,7 +3638,7 @@ Weet je zeker dat je alle activiteiten wilt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3786,7 +3794,7 @@ Selecteer dividenden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3794,7 +3802,7 @@ Selecteer activiteiten apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4498,7 +4506,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -5144,7 +5152,7 @@ Kies of sleep bestand hier apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -5180,7 +5188,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5336,7 +5344,7 @@ Laatste Recordhoogte libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5424,7 +5432,7 @@ 50-Daagse Trend libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5432,7 +5440,7 @@ 200-Daagse Trend libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5440,7 +5448,7 @@ Contant Saldo apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5476,7 +5484,7 @@ De huidige markt waarde is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5580,7 +5588,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6033,7 +6041,7 @@ Wilt u uw persoonlijke belegginngsstrategie verfijnen? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6041,7 +6049,7 @@ Alternatief apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6049,7 +6057,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6057,7 +6065,7 @@ Budgetteren apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6113,7 +6121,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6121,7 +6129,7 @@ Familiekantoor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6129,7 +6137,7 @@ Investeerder apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6141,7 +6149,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6153,7 +6161,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6161,7 +6169,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6169,7 +6177,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6177,7 +6185,7 @@ Hulpmiddel apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6185,7 +6193,7 @@ Gebruikers Ervaring apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6193,7 +6201,7 @@ Vermogen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6201,7 +6209,7 @@ Vermogensbeheer apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6353,7 +6361,7 @@ Fout apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6424,7 +6432,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6855,7 +6863,7 @@ Voer uw Ghostfolio API-sleutel in: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7035,7 +7043,7 @@ Lui apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7043,7 +7051,7 @@ Direct apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7083,7 +7091,7 @@ eind van de dag apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7091,7 +7099,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7198,7 +7206,7 @@ Terms and Conditions Algemene Voorwaarden - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7206,7 +7214,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Bewaar uw beveiligingstoken goed. Als u deze verliest, kunt u uw account niet meer herstellen. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7214,7 +7222,7 @@ I understand that if I lose my security token, I cannot recover my account Ik begrijp dat als ik mijn beveiligingstoken verlies, ik mijn account niet kan herstellen - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7222,7 +7230,7 @@ Continue Doorgaan - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7230,7 +7238,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Hier is uw beveiligingstoken. Deze is slechts één keer zichtbaar, bewaar hem op een veilige plaats. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7315,7 +7323,7 @@ and I agree to the Terms of Service. en ik ga akkoord met de Servicevoorwaarden. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7324,7 +7332,7 @@ () is al in gebruik. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7332,7 +7340,7 @@ Er is een fout opgetreden tijdens het updaten naar (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ iemand apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Wilt u dit item echt verwijderen? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Berekeningen zijn gebaseerd op vertraagde marktgegevens en worden mogelijk niet in realtime weergegeven. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 381a575ce..b0d8e1840 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -186,11 +186,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -255,7 +255,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -379,7 +379,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -431,7 +431,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -467,11 +467,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -507,7 +507,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -543,11 +543,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -699,7 +699,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -731,7 +731,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -855,11 +855,11 @@ Importuj apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -911,7 +911,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1347,7 +1347,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -1411,7 +1411,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1431,7 +1431,7 @@ Ups! Nieprawidłowy token bezpieczeństwa. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -1622,11 +1622,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -1651,7 +1651,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -1827,7 +1827,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2327,7 +2327,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2339,7 +2339,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2355,7 +2355,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -2903,7 +2903,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -3471,7 +3471,7 @@ Czy na pewno chcesz usunąć te aktywności? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3551,7 +3551,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -3559,7 +3559,7 @@ Importuj Aktywności apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3567,7 +3567,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -3575,7 +3575,7 @@ Impotruj Dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3583,7 +3583,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3591,7 +3591,7 @@ Importowanie danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -3599,7 +3599,7 @@ Importowanie zakończone apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -3615,7 +3615,7 @@ Weryfikacja danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3639,7 +3639,7 @@ Inwestycja apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3651,7 +3651,7 @@ Załaduj dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3659,7 +3659,7 @@ Wybierz lub przeciągnij plik tutaj apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -3667,7 +3667,7 @@ Obsługiwane są następujące formaty plików: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -3675,7 +3675,7 @@ Wybierz dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3683,7 +3683,7 @@ Wybór działań apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -3691,11 +3691,11 @@ Wróc apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3787,7 +3787,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -3811,7 +3811,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -3823,7 +3831,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -3835,7 +3843,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -4255,7 +4263,7 @@ Kontynenty apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -4263,7 +4271,7 @@ Ghostfolio umożliwia śledzenie wartości swojego majątku. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -4298,7 +4306,7 @@ Copy to clipboard Kopiuj do schowka - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -4680,7 +4688,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -4692,7 +4700,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -4700,7 +4708,7 @@ Przygotuj Wstępną Wersję libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -4708,7 +4716,7 @@ Sklonuj libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -4716,7 +4724,7 @@ Eksportuj Wersję Roboczą jako ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -4724,7 +4732,7 @@ Czy na pewno chcesz usunąć tę działalność? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -4740,7 +4748,7 @@ Ostatni Najwyższy Punkt w Historii libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -4748,7 +4756,7 @@ Zmiana od Najwyższego Punktu w Historii libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -4756,7 +4764,7 @@ od ATH libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -4864,7 +4872,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -5160,7 +5168,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5400,11 +5408,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -5424,7 +5432,7 @@ 50-Dniowy Trend libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5432,7 +5440,7 @@ 200-Dniowy Trend libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5440,7 +5448,7 @@ Salda Gotówkowe apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5476,7 +5484,7 @@ Obecna cena rynkowa wynosi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5580,7 +5588,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6033,7 +6041,7 @@ Chcesz udoskonalić swoją osobistą strategię inwestycyjną? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6041,7 +6049,7 @@ Alternatywa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6049,7 +6057,7 @@ Aplikacja apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6057,7 +6065,7 @@ Budżetowanie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6113,7 +6121,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6121,7 +6129,7 @@ Biuro Rodzinne apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6129,7 +6137,7 @@ Inwestor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6141,7 +6149,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6153,7 +6161,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6161,7 +6169,7 @@ Prywatność apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6169,7 +6177,7 @@ Oprogramowanie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6177,7 +6185,7 @@ Narzędzie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6185,7 +6193,7 @@ Doświadczenie Użytkownika apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6193,7 +6201,7 @@ Majątek apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6201,7 +6209,7 @@ Zarządzanie Majątkiem apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6353,7 +6361,7 @@ Błąd apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6424,7 +6432,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6855,7 +6863,7 @@ Wprowadź swój klucz API konta Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7035,7 +7043,7 @@ Leniwy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7043,7 +7051,7 @@ Natychmiastowy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7083,7 +7091,7 @@ koniec dnia apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7091,7 +7099,7 @@ w czasie rzeczywistym apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7198,7 +7206,7 @@ Terms and Conditions Zasady i Warunki użytkownia - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7206,7 +7214,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Przechowuj swój Token Bezpieczeństwa w bezpiecznym miejscu. Jeśli go zgubisz, nie będziesz mógł odzyskać swojego konta. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7214,7 +7222,7 @@ I understand that if I lose my security token, I cannot recover my account Rozumiem, że jeśli utracę token zabezpieczający, nie będę mógł odzyskać konta - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7222,7 +7230,7 @@ Continue Kontynuuj - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7230,7 +7238,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. To twój Token Bezpieczeństwa. JEST ON WIDOCZNY TYLKO RAZ! Przechowuj go w bezpiecznym miejscu. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7315,7 +7323,7 @@ and I agree to the Terms of Service. i zgadzam się na Warunki świadczenia usług. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7324,7 +7332,7 @@ () jest już w użyciu. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7332,7 +7340,7 @@ Wystąpił błąd podczas aktualizacji do (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ ktoś apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Czy na pewno chcesz usunąć ten element? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Obliczenia opierają się na opóźnionych danych rynkowych i mogą nie być wyświetlane w czasie rzeczywistym. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 1cae366d4..1fad5f3bb 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -46,7 +46,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -142,7 +142,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -194,7 +194,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -246,11 +246,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -286,7 +286,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -322,11 +322,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -478,7 +478,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -746,7 +746,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -802,7 +802,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -822,7 +822,7 @@ Oops! Token de Segurança Incorreto. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -929,11 +929,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -958,7 +958,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -1102,7 +1102,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1154,7 +1154,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1290,7 +1290,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -1302,7 +1302,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -1318,7 +1318,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -1994,7 +1994,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -2018,7 +2018,7 @@ A importar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -2026,7 +2026,7 @@ A importação foi concluída apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -2042,7 +2042,7 @@ Os seguintes formatos de ficheiro são suportados: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -2050,11 +2050,11 @@ Anterior apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -2146,7 +2146,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -2170,7 +2170,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -2182,7 +2190,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -2194,7 +2202,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -2350,7 +2358,7 @@ Continentes apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -2358,7 +2366,7 @@ O Ghostfolio permite-lhe estar a par e gerir a sua riqueza. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -2370,7 +2378,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -2397,11 +2405,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -2425,7 +2433,7 @@ Copy to clipboard Copiar para a área de transferência - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -2482,7 +2490,7 @@ Rascunho libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -2490,7 +2498,7 @@ Importar Atividades apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2498,7 +2506,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -2510,7 +2518,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -2522,7 +2530,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -2530,7 +2538,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -2538,7 +2546,7 @@ Exportar Rascunho como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -2546,7 +2554,7 @@ Deseja realmente eliminar esta atividade? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -2554,7 +2562,7 @@ Diferença desde o Máximo Histórico libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -2562,7 +2570,7 @@ a partir do ATH (All Time High) libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -2618,7 +2626,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -2898,11 +2906,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -2978,7 +2986,7 @@ A validar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -2986,11 +2994,11 @@ Importar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -3070,7 +3078,7 @@ Detenção apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3082,7 +3090,7 @@ Carregar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3098,7 +3106,7 @@ Importar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3106,7 +3114,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3630,7 +3638,7 @@ Deseja mesmo eliminar estas atividades? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3786,7 +3794,7 @@ Selecionar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3794,7 +3802,7 @@ Selecionar Atividades apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4498,7 +4506,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -5144,7 +5152,7 @@ Selecione ou solte um arquivo aqui apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -5180,7 +5188,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5336,7 +5344,7 @@ Última alta de todos os tempos libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5424,7 +5432,7 @@ Tendência de 50 dias libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5432,7 +5440,7 @@ Tendência de 200 dias libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5440,7 +5448,7 @@ Saldos de caixa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5476,7 +5484,7 @@ O preço de mercado atual é apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5580,7 +5588,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6033,7 +6041,7 @@ Você gostaria de refinar seu estratégia de investimento pessoal? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6041,7 +6049,7 @@ Alternativo apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6049,7 +6057,7 @@ Aplicativo apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6057,7 +6065,7 @@ Orçamento apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6113,7 +6121,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6121,7 +6129,7 @@ Escritório Familiar apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6129,7 +6137,7 @@ Investidor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6141,7 +6149,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6153,7 +6161,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6161,7 +6169,7 @@ Privacidade apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6169,7 +6177,7 @@ Programas apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6177,7 +6185,7 @@ Ferramenta apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6185,7 +6193,7 @@ Experiência do usuário apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6193,7 +6201,7 @@ Fortuna apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6201,7 +6209,7 @@ Gestão de patrimônio apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6353,7 +6361,7 @@ Erro apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6424,7 +6432,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6855,7 +6863,7 @@ Por favor, insira a sua chave da API do Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7035,7 +7043,7 @@ Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7043,7 +7051,7 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7083,7 +7091,7 @@ end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7091,7 +7099,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7198,7 +7206,7 @@ Terms and Conditions Termos e Condições - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7206,7 +7214,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Please keep your security token safe. If you lose it, you will not be able to recover your account. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7214,7 +7222,7 @@ I understand that if I lose my security token, I cannot recover my account I understand that if I lose my security token, I cannot recover my account - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7222,7 +7230,7 @@ Continue Continue - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7230,7 +7238,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Here is your security token. It is only visible once, please store and keep it in a safe place. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7315,7 +7323,7 @@ and I agree to the Terms of Service. and I agree to the Terms of Service. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7324,7 +7332,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7332,7 +7340,7 @@ An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ someone apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Calculations are based on delayed market data and may not be displayed in real-time. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index df8540772..50522d41f 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -227,7 +227,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -339,7 +339,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -391,7 +391,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -427,11 +427,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -467,7 +467,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -503,11 +503,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -659,7 +659,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -691,7 +691,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -839,7 +839,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1211,7 +1211,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -1267,7 +1267,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1287,7 +1287,7 @@ Hay Allah! Güvenlik anahtarı yanlış. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -1478,11 +1478,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -1507,7 +1507,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -1671,7 +1671,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1931,7 +1931,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -1943,7 +1943,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -1959,7 +1959,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -2487,7 +2487,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -2995,7 +2995,7 @@ Tüm işlemlerinizi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3051,7 +3051,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -3059,7 +3059,7 @@ İşlemleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3067,7 +3067,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -3075,7 +3075,7 @@ Temettüleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3083,7 +3083,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3091,7 +3091,7 @@ Veri içe aktarılıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -3099,7 +3099,7 @@ İçe aktarma tamamlandı apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -3115,7 +3115,7 @@ Veri doğrulanıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3139,7 +3139,7 @@ Varlık apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3151,7 +3151,7 @@ Temettü Yükle apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3159,7 +3159,7 @@ Aşağıdaki dosya formatları desteklenmektedir: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -3167,7 +3167,7 @@ Temettü Seç apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3175,7 +3175,7 @@ İşlemleri Seç apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -3183,11 +3183,11 @@ Geri apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3195,11 +3195,11 @@ İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -3295,7 +3295,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -3319,7 +3319,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -3331,7 +3339,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -3343,7 +3351,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -3763,7 +3771,7 @@ Kıtalar apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -3771,7 +3779,7 @@ Ghostfolio, varlıklarınızı takip etmenizi sağlar. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -3798,11 +3806,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -3826,7 +3834,7 @@ Copy to clipboard Panoya Kopyala - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -4432,7 +4440,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -4444,7 +4452,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -4452,7 +4460,7 @@ Taslak libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -4460,7 +4468,7 @@ Klonla libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -4468,7 +4476,7 @@ Taslakları ICS Olarak Dışa Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -4476,7 +4484,7 @@ TBu işlemi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -4484,7 +4492,7 @@ Tüm Zamanların En Yüksek Seviyesinden (ATH) Değişim libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -4492,7 +4500,7 @@ Tüm Zamanların En Yüksek Seviyesinden libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -4600,7 +4608,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -5084,11 +5092,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -5176,7 +5184,7 @@ Dosya seçin ya da sürükleyin apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -5188,7 +5196,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5336,7 +5344,7 @@ Son, ATH libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -5424,7 +5432,7 @@ 50 Günlük Trend libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -5432,7 +5440,7 @@ 200 Günlük Trend libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -5440,7 +5448,7 @@ Nakit Bakiyeleri apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -5476,7 +5484,7 @@ Şu anki piyasa fiyatı apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5580,7 +5588,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6033,7 +6041,7 @@ Senin özel yatırım stratejinizi iyileştirmek ister misin? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6041,7 +6049,7 @@ Alternatif apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6049,7 +6057,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6057,7 +6065,7 @@ Bütçeleme apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6113,7 +6121,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6121,7 +6129,7 @@ Aile Ofisi apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6129,7 +6137,7 @@ Yatırımcı apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6141,7 +6149,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6153,7 +6161,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6161,7 +6169,7 @@ Gizlilik apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6169,7 +6177,7 @@ Yazılım apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6177,7 +6185,7 @@ Araç apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6185,7 +6193,7 @@ Kullanıcı Deneyimi apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6193,7 +6201,7 @@ Zenginlik apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6201,7 +6209,7 @@ Zenginlik Yönetimi apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6353,7 +6361,7 @@ Hata apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6424,7 +6432,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6855,7 +6863,7 @@ Ghostfolio API anahtarınızı girin: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7035,7 +7043,7 @@ Tembel apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7043,7 +7051,7 @@ Anında apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7083,7 +7091,7 @@ gün sonu apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7091,7 +7099,7 @@ gerçek zamanlı apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7198,7 +7206,7 @@ Terms and Conditions Hükümler ve Koşullar - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7206,7 +7214,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Lütfen güvenlik tokenınızı güvende tutun. Kaybetmeniz halinde hesabınızı kurtarmanız mümkün olmayacaktır. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7214,7 +7222,7 @@ I understand that if I lose my security token, I cannot recover my account Güvenlik belirtecimi kaybedersem hesabımı kurtaramayacağımı anlıyorum. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7222,7 +7230,7 @@ Continue Devam et - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7230,7 +7238,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. İşte güvenlik belirteciniz. Yalnızca bir kez görülebilir, lütfen saklayın ve güvenli bir yerde muhafaza edin. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7315,7 +7323,7 @@ and I agree to the Terms of Service. ve kabul ediyorum Hizmet Koşulları. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7324,7 +7332,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7332,7 +7340,7 @@ Güncelleştirilirken bir hata oluştu (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ birisi apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Bu öğeyi silmek istediğinize emin misiniz? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Hesaplamalar gecikmeli piyasa verilerine dayanmaktadır ve gerçek zamanlı olarak görüntülenemeyebilir. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index d1900d944..734c29a16 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -38,7 +38,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -73,11 +73,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -427,7 +427,7 @@ Баланс готівки apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -487,7 +487,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -539,7 +539,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -575,11 +575,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -615,7 +615,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -651,11 +651,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -683,7 +683,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -847,7 +847,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -995,7 +995,7 @@ Помилка apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -1003,7 +1003,7 @@ Поточна ринкова ціна apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -1059,7 +1059,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1495,7 +1495,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -1639,7 +1639,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -1735,7 +1735,7 @@ Упс! Неправильний Секретний Токен. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -1791,7 +1791,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2054,11 +2054,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -2615,7 +2615,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -2927,7 +2927,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2947,7 +2947,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -3247,7 +3247,7 @@ Будь ласка, введіть ваш ключ API Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -3544,7 +3544,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -4204,7 +4204,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -4220,7 +4220,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -4228,7 +4228,7 @@ Імпортувати активності apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4236,7 +4236,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -4244,7 +4244,7 @@ Імпорт дивідендів apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4252,7 +4252,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -4260,7 +4260,7 @@ Імпортуються дані... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -4268,7 +4268,7 @@ Імпорт завершено apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -4284,7 +4284,7 @@ Перевірка даних... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -4308,7 +4308,7 @@ Актив apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -4320,7 +4320,7 @@ Завантажити дивіденди apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -4328,7 +4328,7 @@ Виберіть або перетягніть файл сюди apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -4336,7 +4336,7 @@ Підтримуються наступні формати файлів: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -4344,7 +4344,7 @@ Вибрати дивіденди apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -4352,7 +4352,7 @@ Виберіть активності apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -4360,11 +4360,11 @@ Назад apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -4372,11 +4372,11 @@ Імпорт apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -4472,7 +4472,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -4496,7 +4496,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -4508,7 +4516,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -4520,7 +4528,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -4628,7 +4636,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -5052,7 +5060,7 @@ Континенти apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -5060,7 +5068,7 @@ Чи хотіли б ви удосконалити вашу особисту інвестиційну стратегію? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -5068,7 +5076,7 @@ Ghostfolio надає можливість вам стежити за вашим багатством. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -5103,7 +5111,7 @@ Copy to clipboard Копіювати в буфер обміну - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -5251,7 +5259,7 @@ Альтернатива apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -5259,7 +5267,7 @@ Додаток apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -5267,7 +5275,7 @@ Бюджетування apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -5323,7 +5331,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -5331,7 +5339,7 @@ Сімейний офіс apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -5339,7 +5347,7 @@ Інвестор apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -5351,7 +5359,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -5363,7 +5371,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -5371,7 +5379,7 @@ Конфіденційність apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -5379,7 +5387,7 @@ Програмне забезпечення apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -5387,7 +5395,7 @@ Інструмент apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -5395,7 +5403,7 @@ Користувацький досвід apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -5403,7 +5411,7 @@ Багатство apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -5411,7 +5419,7 @@ Управління багатством apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -5843,7 +5851,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -5855,7 +5863,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -5871,7 +5879,7 @@ Чернетка libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -5879,7 +5887,7 @@ Клонувати libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -5887,7 +5895,7 @@ Експортувати чернетку як ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -5895,7 +5903,7 @@ Ви дійсно хочете видалити ці дії? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -5903,7 +5911,7 @@ Ви дійсно хочете видалити цю активність? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -6007,7 +6015,7 @@ Тренд на 50 днів libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -6015,7 +6023,7 @@ Тренд на 200 днів libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -6023,7 +6031,7 @@ Останній рекордний максимум libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -6031,7 +6039,7 @@ Зміна від Історичного Максимуму libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -6039,7 +6047,7 @@ від ІМ libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -6171,7 +6179,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -6302,7 +6310,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6575,7 +6583,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -6987,11 +6995,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -7035,7 +7043,7 @@ Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7043,7 +7051,7 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7083,7 +7091,7 @@ end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7091,7 +7099,7 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7198,7 +7206,7 @@ Terms and Conditions Terms and Conditions - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7206,7 +7214,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. Please keep your security token safe. If you lose it, you will not be able to recover your account. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7214,7 +7222,7 @@ I understand that if I lose my security token, I cannot recover my account I understand that if I lose my security token, I cannot recover my account - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7222,7 +7230,7 @@ Continue Continue - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7230,7 +7238,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. Here is your security token. It is only visible once, please store and keep it in a safe place. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7315,7 +7323,7 @@ and I agree to the Terms of Service. and I agree to the Terms of Service. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7324,7 +7332,7 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7332,7 +7340,7 @@ An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7396,7 +7404,7 @@ someone apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7428,7 +7436,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7444,11 +7452,11 @@ Calculations are based on delayed market data and may not be displayed in real-time. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index d79646244..58da88399 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -176,11 +176,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -240,7 +240,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -305,7 +305,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -363,7 +363,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -413,7 +413,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -448,11 +448,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -487,7 +487,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -522,11 +522,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -663,7 +663,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -693,7 +693,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -825,11 +825,11 @@ Import apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -878,7 +878,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1268,7 +1268,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -1326,7 +1326,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1345,7 +1345,7 @@ Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -1518,11 +1518,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -1546,7 +1546,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -1703,7 +1703,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2155,7 +2155,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2166,7 +2166,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2181,7 +2181,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -2689,7 +2689,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -3201,7 +3201,7 @@ Do you really want to delete these activities? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3272,14 +3272,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3287,14 +3287,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 Import Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3302,21 +3302,21 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 Importing data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 Import has been completed apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -3330,7 +3330,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3351,7 +3351,7 @@ Holding apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3362,46 +3362,46 @@ Load Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 The following file formats are supported: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 Select Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 Select Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 Back apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3483,7 +3483,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -3505,7 +3505,14 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -3516,7 +3523,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -3527,7 +3534,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -3907,14 +3914,14 @@ Continents apps/client/src/app/pages/public/public-page.html - 124 + 132 Ghostfolio empowers you to keep track of your wealth. apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -3945,7 +3952,7 @@ Copy to clipboard - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -4310,7 +4317,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -4321,35 +4328,35 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 Draft libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 Clone libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 Export Draft as ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 Do you really want to delete this activity? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -4363,35 +4370,35 @@ 50-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 Change from All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 from ATH libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -4489,7 +4496,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -4760,7 +4767,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -4973,11 +4980,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -5010,7 +5017,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5118,7 +5125,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -5497,14 +5504,14 @@ Would you like to refine your personal investment strategy? apps/client/src/app/pages/public/public-page.html - 213 + 234 Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -5559,7 +5566,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -5601,35 +5608,35 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -5657,14 +5664,14 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -5675,14 +5682,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -5710,7 +5717,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -5728,7 +5735,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -5763,7 +5770,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -5784,7 +5791,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -5830,7 +5837,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6212,7 +6219,7 @@ Please enter your Ghostfolio API key: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -6424,14 +6431,14 @@ Instant apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 Lazy apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -6445,14 +6452,14 @@ real-time apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 end of day apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -6548,35 +6555,35 @@ I understand that if I lose my security token, I cannot recover my account - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 Please keep your security token safe. If you lose it, you will not be able to recover your account. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 Here is your security token. It is only visible once, please store and keep it in a safe place. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 Continue - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 Terms and Conditions - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -6652,7 +6659,7 @@ and I agree to the Terms of Service. - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -6660,14 +6667,14 @@ () is already in use. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 An error occurred while updating to (). apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -6702,7 +6709,7 @@ someone apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -6731,7 +6738,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -6745,11 +6752,11 @@ Calculations are based on delayed market data and may not be displayed in real-time. apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 77408a631..b845cf7ad 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -187,11 +187,11 @@ 27 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 2 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 101 @@ -256,7 +256,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 160 @@ -328,7 +328,7 @@ 现金余额 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 147 + 148 @@ -388,7 +388,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 138 + 137 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -440,7 +440,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 281 + 280 @@ -476,11 +476,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 262 + 261 libs/ui/src/lib/activities-table/activities-table.component.html - 298 + 297 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -516,7 +516,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 435 + 434 @@ -552,11 +552,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 462 + 461 libs/ui/src/lib/benchmark/benchmark.component.html - 169 + 176 @@ -708,7 +708,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 170 + 169 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -740,7 +740,7 @@ apps/client/src/app/pages/public/public-page.html - 88 + 96 @@ -864,11 +864,11 @@ 导入 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 152 + 155 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 185 + 190 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -920,7 +920,7 @@ apps/client/src/app/pages/public/public-page.html - 106 + 114 @@ -1356,7 +1356,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 92 + 94 libs/common/src/lib/routes/routes.ts @@ -1420,7 +1420,7 @@ apps/client/src/app/components/header/header.component.ts - 281 + 279 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1440,7 +1440,7 @@ 哎呀!安全令牌不正确。 apps/client/src/app/components/header/header.component.ts - 296 + 294 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -1631,11 +1631,11 @@ 279 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 64 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 72 @@ -1660,7 +1660,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 96 + 97 apps/client/src/app/pages/register/register-page.html @@ -1836,7 +1836,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 191 + 190 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2336,7 +2336,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 190 + 192 @@ -2348,7 +2348,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 188 + 190 @@ -2364,7 +2364,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 191 + 193 @@ -2912,7 +2912,7 @@ apps/client/src/app/pages/public/public-page.html - 221 + 242 @@ -3480,7 +3480,7 @@ 您确定要删除这些活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 259 + 270 @@ -3560,7 +3560,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 215 + 214 @@ -3568,7 +3568,7 @@ 导入活动记录 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 88 + 89 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3576,7 +3576,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 376 + 375 @@ -3584,7 +3584,7 @@ 导入股息 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3592,7 +3592,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 388 + 387 @@ -3600,7 +3600,7 @@ 正在导入数据... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 170 + 172 @@ -3608,7 +3608,7 @@ 导入已完成 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 180 + 182 @@ -3624,7 +3624,7 @@ 验证数据... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 288 + 296 @@ -3648,7 +3648,7 @@ 持仓 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 31 + 32 libs/ui/src/lib/assistant/assistant.html @@ -3660,7 +3660,7 @@ 加载股息 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 67 + 68 @@ -3668,7 +3668,7 @@ 在此处选择或放置文件 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 83 + 84 @@ -3676,7 +3676,7 @@ 支持以下文件格式: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 89 + 90 @@ -3684,7 +3684,7 @@ 选择股息 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 112 + 113 @@ -3692,7 +3692,7 @@ 选择活动 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 115 @@ -3700,11 +3700,11 @@ 后退 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 143 + 146 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 177 + 182 @@ -3796,7 +3796,7 @@ apps/client/src/app/pages/public/public-page.html - 143 + 151 @@ -3820,7 +3820,15 @@ apps/client/src/app/pages/public/public-page.html - 160 + 168 + + + + Latest activities + Latest activities + + apps/client/src/app/pages/public/public-page.html + 211 @@ -3832,7 +3840,7 @@ apps/client/src/app/pages/public/public-page.html - 169 + 177 @@ -3844,7 +3852,7 @@ apps/client/src/app/pages/public/public-page.html - 178 + 186 @@ -4264,7 +4272,7 @@ 大陆 apps/client/src/app/pages/public/public-page.html - 124 + 132 @@ -4272,7 +4280,7 @@ Ghostfolio 使您能够跟踪您的财富。 apps/client/src/app/pages/public/public-page.html - 217 + 238 @@ -4307,7 +4315,7 @@ Copy to clipboard 复制到剪贴板 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 88 @@ -4709,7 +4717,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 401 + 400 @@ -4721,7 +4729,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 414 + 413 @@ -4729,7 +4737,7 @@ 草稿 libs/ui/src/lib/activities-table/activities-table.component.html - 145 + 144 @@ -4737,7 +4745,7 @@ 克隆 libs/ui/src/lib/activities-table/activities-table.component.html - 441 + 440 @@ -4745,7 +4753,7 @@ 将汇票导出为 ICS libs/ui/src/lib/activities-table/activities-table.component.html - 451 + 450 @@ -4753,7 +4761,7 @@ 您确实要删除此活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 269 + 280 @@ -4769,7 +4777,7 @@ 50 天趋势 libs/ui/src/lib/benchmark/benchmark.component.html - 25 + 32 @@ -4777,7 +4785,7 @@ 200天趋势 libs/ui/src/lib/benchmark/benchmark.component.html - 54 + 61 @@ -4785,7 +4793,7 @@ 上次历史最高纪录 libs/ui/src/lib/benchmark/benchmark.component.html - 83 + 90 @@ -4793,7 +4801,7 @@ 较历史最高纪录涨跌 libs/ui/src/lib/benchmark/benchmark.component.html - 110 + 117 @@ -4801,7 +4809,7 @@ 从 ATH libs/ui/src/lib/benchmark/benchmark.component.html - 112 + 119 @@ -4909,7 +4917,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 313 + 312 libs/ui/src/lib/assistant/assistant.html @@ -5205,7 +5213,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 239 + 238 libs/ui/src/lib/i18n.ts @@ -5445,11 +5453,11 @@ apps/client/src/app/pages/public/public-page.html - 188 + 196 libs/ui/src/lib/benchmark/benchmark.component.html - 202 + 209 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -5485,7 +5493,7 @@ 当前市场价格为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 634 + 632 @@ -5605,7 +5613,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 88 @@ -6034,7 +6042,7 @@ 您想 优化 您的 个人投资策略吗? apps/client/src/app/pages/public/public-page.html - 213 + 234 @@ -6042,7 +6050,7 @@ 另类 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 80 + 82 @@ -6050,7 +6058,7 @@ 应用 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 81 + 83 @@ -6058,7 +6066,7 @@ 预算管理 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 82 + 84 @@ -6114,7 +6122,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 85 @@ -6122,7 +6130,7 @@ 家族办公室 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 86 @@ -6130,7 +6138,7 @@ 投资者 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 89 @@ -6142,7 +6150,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 88 + 90 @@ -6154,7 +6162,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 92 @@ -6162,7 +6170,7 @@ 隐私 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 93 @@ -6170,7 +6178,7 @@ 软件 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 95 @@ -6178,7 +6186,7 @@ 工具 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 96 @@ -6186,7 +6194,7 @@ 用户体验 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 97 @@ -6194,7 +6202,7 @@ 财富 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 98 @@ -6202,7 +6210,7 @@ 财富管理 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 99 @@ -6354,7 +6362,7 @@ 错误 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 625 + 623 @@ -6425,7 +6433,7 @@ 346 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 48 @@ -6856,7 +6864,7 @@ 请输入您的 Ghostfolio API 密钥: apps/client/src/app/pages/api/api-page.component.ts - 41 + 43 @@ -7036,7 +7044,7 @@ 延迟 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7044,7 +7052,7 @@ 即时 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7084,7 +7092,7 @@ 收盘 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 198 + 196 @@ -7092,7 +7100,7 @@ 实时 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 202 + 200 @@ -7199,7 +7207,7 @@ Terms and Conditions 条款和条件 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 15 @@ -7207,7 +7215,7 @@ Please keep your security token safe. If you lose it, you will not be able to recover your account. 请妥善保管您的安全令牌。如果您丢失它,将无法恢复您的账户。 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 18 @@ -7215,7 +7223,7 @@ I understand that if I lose my security token, I cannot recover my account 我理解如果我丢失了安全令牌,将无法恢复我的账户 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 28 @@ -7223,7 +7231,7 @@ Continue 继续 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 57 @@ -7231,7 +7239,7 @@ Here is your security token. It is only visible once, please store and keep it in a safe place. 这是您的安全令牌。它仅显示一次,请妥善保管。 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 67 @@ -7316,7 +7324,7 @@ and I agree to the Terms of Service. 我同意 服务条款 - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html 34 @@ -7325,7 +7333,7 @@ () 已在使用中。 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 561 + 559 @@ -7333,7 +7341,7 @@ 在更新到 () 时发生错误。 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 569 + 567 @@ -7397,7 +7405,7 @@ 某人 apps/client/src/app/pages/public/public-page.component.ts - 54 + 59 @@ -7429,7 +7437,7 @@ 您确定要删除此项目吗? libs/ui/src/lib/benchmark/benchmark.component.ts - 138 + 139 @@ -7445,11 +7453,11 @@ 计算基于延迟的市场数据,可能无法实时显示。 apps/client/src/app/components/home-market/home-market.html - 44 + 45 apps/client/src/app/components/markets/markets.html - 53 + 54 From 3bb90ef6987edb80542e5c852e677b947b5d9b72 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 24 Sep 2025 20:50:50 +0200 Subject: [PATCH 09/17] Release 2.201.0 (#5571) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c161bfbcd..026d511be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.201.0 - 2025-09-24 ### Added diff --git a/package-lock.json b/package-lock.json index 39e3c66a3..b4ba9b226 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.200.0", + "version": "2.201.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.200.0", + "version": "2.201.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 69ba4a466..6b2c20819 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.200.0", + "version": "2.201.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From fda121b1389c6c5f30572594e96f163be736e4f2 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 24 Sep 2025 23:08:03 +0200 Subject: [PATCH 10/17] Feature/add missing filters.assetClasses to user settings interface (#5572) * Add filters.assetClasses --- libs/common/src/lib/interfaces/user-settings.interface.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/common/src/lib/interfaces/user-settings.interface.ts b/libs/common/src/lib/interfaces/user-settings.interface.ts index 942f6e616..e5c65f82d 100644 --- a/libs/common/src/lib/interfaces/user-settings.interface.ts +++ b/libs/common/src/lib/interfaces/user-settings.interface.ts @@ -7,6 +7,8 @@ import { } from '@ghostfolio/common/types'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; +import { AssetClass } from '@prisma/client'; + export interface UserSettings { annualInterestRate?: number; baseCurrency?: string; @@ -15,6 +17,7 @@ export interface UserSettings { dateRange?: DateRange; emergencyFund?: number; 'filters.accounts'?: string[]; + 'filters.assetClasses'?: AssetClass[]; 'filters.dataSource'?: string; 'filters.symbol'?: string; 'filters.tags'?: string[]; From 28bdcc63d8f9806f124fc79bd90f9954c242b2e0 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 25 Sep 2025 07:50:26 +0200 Subject: [PATCH 11/17] Feature/add settings to Access model (#5573) * Add settings * Update changelog --- CHANGELOG.md | 6 ++++++ .../20250924210446_added_settings_to_access/migration.sql | 2 ++ prisma/schema.prisma | 1 + 3 files changed, 9 insertions(+) create mode 100644 prisma/migrations/20250924210446_added_settings_to_access/migration.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index 026d511be..c4caf3625 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Added + +- Added `settings` to the `Access` model + ## 2.201.0 - 2025-09-24 ### Added diff --git a/prisma/migrations/20250924210446_added_settings_to_access/migration.sql b/prisma/migrations/20250924210446_added_settings_to_access/migration.sql new file mode 100644 index 000000000..e6b1c4ac1 --- /dev/null +++ b/prisma/migrations/20250924210446_added_settings_to_access/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "public"."Access" ADD COLUMN "settings" JSONB NOT NULL DEFAULT '{}'; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 67ca81682..7a3c613ca 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -16,6 +16,7 @@ model Access { granteeUserId String? id String @id @default(uuid()) permissions AccessPermission[] @default([READ_RESTRICTED]) + settings Json @default("{}") updatedAt DateTime @updatedAt userId String user User @relation("accessGive", fields: [userId], onDelete: Cascade, references: [id]) From cd40ce36790a60ad7ba727f15ed63baf51e88180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADn?= Date: Thu, 25 Sep 2025 20:57:28 +0200 Subject: [PATCH 12/17] Bugfix/enable save button after editing tags in create or update activity dialog (#5561) * Enable save button after editing tags in create or update activity dialog * Update changelog --- CHANGELOG.md | 8 +++ ...ate-or-update-activity-dialog.component.ts | 4 -- .../create-or-update-activity-dialog.html | 3 +- .../tags-selector/tags-selector.component.ts | 59 +++++++++++++++++-- 4 files changed, 64 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4caf3625..f9b2fa815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added `settings` to the `Access` model +### Changed + +- Extended the tags selector component to support form control + +### Fixed + +- Fixed an issue where the save button was not enabled after editing tags in the create or update activity dialog + ## 2.201.0 - 2025-09-24 ### Added diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index fde4f20fa..33698acfb 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -573,10 +573,6 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { } } - public onTagsChanged(tags: Tag[]) { - this.activityForm.get('tags').setValue(tags); - } - public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html index d7f466743..d6c14cfdc 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -322,10 +322,9 @@

diff --git a/libs/ui/src/lib/tags-selector/tags-selector.component.ts b/libs/ui/src/lib/tags-selector/tags-selector.component.ts index 50faab651..05a4b3e7a 100644 --- a/libs/ui/src/lib/tags-selector/tags-selector.component.ts +++ b/libs/ui/src/lib/tags-selector/tags-selector.component.ts @@ -14,7 +14,13 @@ import { signal, ViewChild } from '@angular/core'; -import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { + ControlValueAccessor, + FormControl, + FormsModule, + NG_VALUE_ACCESSOR, + ReactiveFormsModule +} from '@angular/forms'; import { MatAutocompleteModule, MatAutocompleteSelectedEvent @@ -40,12 +46,21 @@ import { BehaviorSubject, Subject, takeUntil } from 'rxjs'; MatInputModule, ReactiveFormsModule ], + providers: [ + { + multi: true, + provide: NG_VALUE_ACCESSOR, + useExisting: GfTagsSelectorComponent + } + ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-tags-selector', styleUrls: ['./tags-selector.component.scss'], templateUrl: 'tags-selector.component.html' }) -export class GfTagsSelectorComponent implements OnInit, OnChanges, OnDestroy { +export class GfTagsSelectorComponent + implements ControlValueAccessor, OnChanges, OnDestroy, OnInit +{ @Input() hasPermissionToCreateTag = false; @Input() readonly = false; @Input() tags: Tag[]; @@ -99,7 +114,10 @@ export class GfTagsSelectorComponent implements OnInit, OnChanges, OnDestroy { return [...(tags ?? []), tag]; }); - this.tagsChanged.emit(this.tagsSelected()); + const newTags = this.tagsSelected(); + this.tagsChanged.emit(newTags); + this.onChange(newTags); + this.onTouched(); this.tagInput.nativeElement.value = ''; this.tagInputControl.setValue(undefined); } @@ -111,7 +129,31 @@ export class GfTagsSelectorComponent implements OnInit, OnChanges, OnDestroy { }); }); - this.tagsChanged.emit(this.tagsSelected()); + const newTags = this.tagsSelected(); + this.tagsChanged.emit(newTags); + this.onChange(newTags); + this.onTouched(); + this.updateFilters(); + } + + public registerOnChange(fn: (value: Tag[]) => void) { + this.onChange = fn; + } + + public registerOnTouched(fn: () => void) { + this.onTouched = fn; + } + + public setDisabledState(isDisabled: boolean) { + if (isDisabled) { + this.tagInputControl.disable(); + } else { + this.tagInputControl.enable(); + } + } + + public writeValue(value: Tag[]) { + this.tagsSelected.set(value || []); this.updateFilters(); } @@ -133,6 +175,15 @@ export class GfTagsSelectorComponent implements OnInit, OnChanges, OnDestroy { }); } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + private onChange = (_value: Tag[]): void => { + // ControlValueAccessor onChange callback + }; + + private onTouched = (): void => { + // ControlValueAccessor onTouched callback + }; + private updateFilters() { this.filteredOptions.next(this.filterTags()); } From ef5661d81c0393f56abe8aa3f108e00eda06aabe Mon Sep 17 00:00:00 2001 From: Kenrick Tandrian <60643640+KenTandrian@users.noreply.github.com> Date: Sat, 27 Sep 2025 00:34:00 +0700 Subject: [PATCH 13/17] Bugfix/investment calculation when selling all units of holding (#5509) * Fix investment calculation when selling all units of holding * Update changelog --------- Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> --- CHANGELOG.md | 1 + .../calculator/portfolio-calculator.ts | 8 +- ...folio-calculator-msft-buy-and-sell.spec.ts | 146 ++++++++++++++++++ 3 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-and-sell.spec.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index f9b2fa815..17f0d57e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed an issue where the save button was not enabled after editing tags in the create or update activity dialog +- Fixed an issue in the investment calculation when selling all units of a holding ## 2.201.0 - 2025-09-24 diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index e4d9cdfe8..8a8606003 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -922,7 +922,7 @@ export abstract class PortfolioCalculator { if (oldAccumulatedSymbol) { let investment = oldAccumulatedSymbol.investment; - const newQuantity = quantity + let newQuantity = quantity .mul(factor) .plus(oldAccumulatedSymbol.quantity); @@ -948,6 +948,12 @@ export abstract class PortfolioCalculator { } } + if (newQuantity.abs().lt(Number.EPSILON)) { + // Reset to zero if quantity is (almost) zero to avoid rounding issues + investment = new Big(0); + newQuantity = new Big(0); + } + currentTransactionPointItem = { currency, dataSource, diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-and-sell.spec.ts new file mode 100644 index 000000000..bb976564a --- /dev/null +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-and-sell.spec.ts @@ -0,0 +1,146 @@ +import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; +import { + activityDummyData, + symbolProfileDummyData, + userDummyData +} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils'; +import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory'; +import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service'; +import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock'; +import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service'; +import { RedisCacheServiceMock } from '@ghostfolio/api/app/redis-cache/redis-cache.service.mock'; +import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; +import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service'; +import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock'; +import { parseDate } from '@ghostfolio/common/helper'; +import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; + +jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { + return { + CurrentRateService: jest.fn().mockImplementation(() => { + return CurrentRateServiceMock; + }) + }; +}); + +jest.mock( + '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service', + () => { + return { + // eslint-disable-next-line @typescript-eslint/naming-convention + PortfolioSnapshotService: jest.fn().mockImplementation(() => { + return PortfolioSnapshotServiceMock; + }) + }; + } +); + +jest.mock('@ghostfolio/api/app/redis-cache/redis-cache.service', () => { + return { + // eslint-disable-next-line @typescript-eslint/naming-convention + RedisCacheService: jest.fn().mockImplementation(() => { + return RedisCacheServiceMock; + }) + }; +}); + +describe('PortfolioCalculator', () => { + let configurationService: ConfigurationService; + let currentRateService: CurrentRateService; + let exchangeRateDataService: ExchangeRateDataService; + let portfolioCalculatorFactory: PortfolioCalculatorFactory; + let portfolioSnapshotService: PortfolioSnapshotService; + let redisCacheService: RedisCacheService; + + beforeEach(() => { + configurationService = new ConfigurationService(); + currentRateService = new CurrentRateService(null, null, null, null); + exchangeRateDataService = new ExchangeRateDataService( + null, + null, + null, + null + ); + portfolioSnapshotService = new PortfolioSnapshotService(null); + redisCacheService = new RedisCacheService(null, null); + portfolioCalculatorFactory = new PortfolioCalculatorFactory( + configurationService, + currentRateService, + exchangeRateDataService, + portfolioSnapshotService, + redisCacheService + ); + }); + + describe('get transaction point', () => { + it('with MSFT buy and sell with fractional quantities (multiples of 1/3)', () => { + jest.useFakeTimers().setSystemTime(parseDate('2024-04-01').getTime()); + + const activities: Activity[] = [ + { + ...activityDummyData, + date: new Date('2024-03-08'), + feeInAssetProfileCurrency: 0, + quantity: 0.3333333333333333, + SymbolProfile: { + ...symbolProfileDummyData, + currency: 'USD', + dataSource: 'YAHOO', + name: 'Microsoft Inc.', + symbol: 'MSFT' + }, + type: 'BUY', + unitPriceInAssetProfileCurrency: 408 + }, + { + ...activityDummyData, + date: new Date('2024-03-13'), + quantity: 0.6666666666666666, + feeInAssetProfileCurrency: 0, + SymbolProfile: { + ...symbolProfileDummyData, + currency: 'USD', + dataSource: 'YAHOO', + name: 'Microsoft Inc.', + symbol: 'MSFT' + }, + type: 'BUY', + unitPriceInAssetProfileCurrency: 400 + }, + { + ...activityDummyData, + date: new Date('2024-03-14'), + quantity: 1, + feeInAssetProfileCurrency: 0, + SymbolProfile: { + ...symbolProfileDummyData, + currency: 'USD', + dataSource: 'YAHOO', + name: 'Microsoft Inc.', + symbol: 'MSFT' + }, + type: 'SELL', + unitPriceInAssetProfileCurrency: 411 + } + ]; + + const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ + activities, + calculationType: PerformanceCalculationType.ROAI, + currency: 'USD', + userId: userDummyData.id + }); + + const transactionPoints = portfolioCalculator.getTransactionPoints(); + const lastTransactionPoint = + transactionPoints[transactionPoints.length - 1]; + const position = lastTransactionPoint.items.find( + (item) => item.symbol === 'MSFT' + ); + + expect(position.investment.toNumber()).toBe(0); + expect(position.quantity.toNumber()).toBe(0); + }); + }); +}); From 432251e108b4957c221adde0d8ddcd7fd941ba71 Mon Sep 17 00:00:00 2001 From: Attila Cseh <77381875+csehatt741@users.noreply.github.com> Date: Fri, 26 Sep 2025 20:11:23 +0200 Subject: [PATCH 14/17] Feature/remove deprecated item of activity type from create or update activity dialog (#5555) * Remove deprecated item of activity type * Update changelog --- CHANGELOG.md | 1 + ...ate-or-update-activity-dialog.component.ts | 45 +++++++++---------- .../create-or-update-activity-dialog.html | 4 +- .../types/activity-type.type.ts | 8 ++++ libs/ui/src/lib/i18n.ts | 2 +- 5 files changed, 34 insertions(+), 26 deletions(-) create mode 100644 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/types/activity-type.type.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 17f0d57e0..2e5dcfe47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Extended the tags selector component to support form control +- Changed the deprecated `ITEM` activity type to `VALUABLE` in the create or update activity dialog ### Fixed diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index 33698acfb..6454b9918 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -51,6 +51,7 @@ import { catchError, delay, takeUntil } from 'rxjs/operators'; import { DataService } from '../../../../services/data.service'; import { validateObjectForForm } from '../../../../util/form.util'; import { CreateOrUpdateActivityDialogParams } from './interfaces/interfaces'; +import { ActivityType } from './types/activity-type.type'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -178,9 +179,11 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { }; }) ?? []; - Object.keys(Type).forEach((type) => { - this.typesTranslationMap[Type[type]] = translate(Type[type]); - }); + for (const type of Object.keys(ActivityType)) { + this.typesTranslationMap[ActivityType[type]] = translate( + ActivityType[type] + ); + } this.activityForm = this.formBuilder.group({ accountId: [ @@ -242,7 +245,9 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { ) .subscribe(async () => { if ( - ['BUY', 'FEE', 'ITEM'].includes(this.activityForm.get('type').value) + ['BUY', 'FEE', 'VALUABLE'].includes( + this.activityForm.get('type').value + ) ) { this.total = this.activityForm.get('quantity').value * @@ -261,7 +266,7 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { this.activityForm.get('accountId').valueChanges.subscribe((accountId) => { const type = this.activityForm.get('type').value; - if (['FEE', 'INTEREST', 'ITEM', 'LIABILITY'].includes(type)) { + if (['FEE', 'INTEREST', 'LIABILITY', 'VALUABLE'].includes(type)) { const currency = this.data.accounts.find(({ id }) => { return id === accountId; @@ -357,9 +362,9 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { this.activityForm .get('type') .valueChanges.pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((type: Type) => { + .subscribe((type: ActivityType) => { if ( - type === 'ITEM' || + type === 'VALUABLE' || (this.activityForm.get('dataSource').value === 'MANUAL' && type === 'BUY') ) { @@ -384,7 +389,7 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { this.activityForm.get('name').setValidators(Validators.required); this.activityForm.get('name').updateValueAndValidity(); - if (type === 'ITEM') { + if (type === 'VALUABLE') { this.activityForm.get('quantity').setValue(1); } @@ -513,11 +518,14 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { currency: this.activityForm.get('currency').value, customCurrency: this.activityForm.get('currencyOfUnitPrice').value, date: this.activityForm.get('date').value, - dataSource: this.activityForm.get('dataSource').value, + dataSource: + this.activityForm.get('type').value === 'VALUABLE' + ? 'MANUAL' + : this.activityForm.get('dataSource').value, fee: this.activityForm.get('fee').value, quantity: this.activityForm.get('quantity').value, symbol: - (['FEE', 'INTEREST', 'ITEM', 'LIABILITY'].includes( + (['FEE', 'INTEREST', 'LIABILITY', 'VALUABLE'].includes( this.activityForm.get('type').value ) ? undefined @@ -526,7 +534,10 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { tags: this.activityForm.get('tags').value?.map(({ id }) => { return id; }), - type: this.activityForm.get('type').value, + type: + this.activityForm.get('type').value === 'VALUABLE' + ? 'BUY' + : this.activityForm.get('type').value, unitPrice: this.activityForm.get('unitPrice').value }; @@ -543,12 +554,6 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { object: activity }); - if (activity.type === 'ITEM') { - // Transform deprecated type ITEM - activity.dataSource = 'MANUAL'; - activity.type = 'BUY'; - } - this.dialogRef.close(activity); } else { (activity as UpdateOrderDto).id = this.data.activity?.id; @@ -560,12 +565,6 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { object: activity as UpdateOrderDto }); - if (activity.type === 'ITEM') { - // Transform deprecated type ITEM - activity.dataSource = 'MANUAL'; - activity.type = 'BUY'; - } - this.dialogRef.close(activity as UpdateOrderDto); } } catch (error) { diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html index d6c14cfdc..42fbd0ebf 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -65,9 +65,9 @@ >Stocks, ETFs, bonds, cryptocurrencies, commodities - + {{ typesTranslationMap['ITEM'] }}{{ typesTranslationMap['VALUABLE'] }} Luxury items, real estate, private companies Date: Fri, 26 Sep 2025 20:16:44 +0200 Subject: [PATCH 15/17] Release 2.202.0 (#5582) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e5dcfe47..45159a312 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.202.0 - 2025-09-26 ### Added diff --git a/package-lock.json b/package-lock.json index b4ba9b226..7b31242c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.201.0", + "version": "2.202.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.201.0", + "version": "2.202.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 6b2c20819..463310c60 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.201.0", + "version": "2.202.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 364b2f020ed49181170589dab3b1520aa233e8e2 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 27 Sep 2025 09:51:44 +0200 Subject: [PATCH 16/17] Feature/remove ITEM as order type enum (#5583) * Remove ITEM from Type enum * Update changelog --- CHANGELOG.md | 6 ++++++ apps/api/src/app/import/import.service.ts | 6 ------ .../migration.sql | 8 ++++++++ prisma/schema.prisma | 1 - .../not-ok/invalid-type-deprecated.json | 20 ------------------- 5 files changed, 14 insertions(+), 27 deletions(-) create mode 100644 prisma/migrations/20250926182138_removed_item_from_type/migration.sql delete mode 100644 test/import/not-ok/invalid-type-deprecated.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 45159a312..bdb7ea502 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Removed the deprecated `ITEM` activity type + ## 2.202.0 - 2025-09-26 ### Added diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index a96200261..82231d237 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -718,12 +718,6 @@ export class ImportService { index, { currency, dataSource, symbol, type } ] of activitiesDto.entries()) { - if (type === 'ITEM') { - throw new Error( - `activities.${index}.type ("${type}") is deprecated, please use "BUY" instead` - ); - } - if (!dataSources.includes(dataSource)) { throw new Error( `activities.${index}.dataSource ("${dataSource}") is not valid` diff --git a/prisma/migrations/20250926182138_removed_item_from_type/migration.sql b/prisma/migrations/20250926182138_removed_item_from_type/migration.sql new file mode 100644 index 000000000..756158973 --- /dev/null +++ b/prisma/migrations/20250926182138_removed_item_from_type/migration.sql @@ -0,0 +1,8 @@ +-- AlterEnum +BEGIN; +CREATE TYPE "public"."Type_new" AS ENUM ('BUY', 'DIVIDEND', 'FEE', 'INTEREST', 'LIABILITY', 'SELL'); +ALTER TABLE "public"."Order" ALTER COLUMN "type" TYPE "public"."Type_new" USING ("type"::text::"public"."Type_new"); +ALTER TYPE "public"."Type" RENAME TO "Type_old"; +ALTER TYPE "public"."Type_new" RENAME TO "Type"; +DROP TYPE "public"."Type_old"; +COMMIT; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 7a3c613ca..72ec79008 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -349,7 +349,6 @@ enum Type { DIVIDEND FEE INTEREST - ITEM LIABILITY SELL } diff --git a/test/import/not-ok/invalid-type-deprecated.json b/test/import/not-ok/invalid-type-deprecated.json deleted file mode 100644 index 77572df85..000000000 --- a/test/import/not-ok/invalid-type-deprecated.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "meta": { - "date": "2023-02-05T00:00:00.000Z", - "version": "dev" - }, - "activities": [ - { - "accountId": null, - "comment": null, - "fee": 0, - "quantity": 1, - "type": "ITEM", - "unitPrice": 500000, - "currency": "USD", - "dataSource": "MANUAL", - "date": "2022-01-01T00:00:00.000Z", - "symbol": "Penthouse Apartment" - } - ] -} From 90b28ea74fb51208cc052e953a767eaae286604e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 27 Sep 2025 14:52:18 +0200 Subject: [PATCH 17/17] Feature/add hacktoberfest 2025 blog post (#5584) * Add blog post: Hacktoberfest 2025 * Update changelog --- CHANGELOG.md | 4 + .../endpoints/sitemap/sitemap.controller.ts | 1 + .../app/endpoints/sitemap/sitemap.service.ts | 138 +++++++++++- apps/api/src/assets/sitemap.xml | 1 + .../middlewares/html-template.middleware.ts | 4 + .../hacktoberfest-2025-page.component.ts | 17 ++ .../hacktoberfest-2025-page.html | 202 ++++++++++++++++++ .../pages/blog/blog-page-routing.module.ts | 9 + apps/client/src/app/pages/blog/blog-page.html | 24 +++ .../assets/images/blog/hacktoberfest-2025.png | Bin 0 -> 125689 bytes 10 files changed, 389 insertions(+), 11 deletions(-) create mode 100644 apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.component.ts create mode 100644 apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html create mode 100644 apps/client/src/assets/images/blog/hacktoberfest-2025.png diff --git a/CHANGELOG.md b/CHANGELOG.md index bdb7ea502..cfc95d387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added a blog post: _Hacktoberfest 2025_ + ### Changed - Removed the deprecated `ITEM` activity type diff --git a/apps/api/src/app/endpoints/sitemap/sitemap.controller.ts b/apps/api/src/app/endpoints/sitemap/sitemap.controller.ts index fb581c72e..b42ae3594 100644 --- a/apps/api/src/app/endpoints/sitemap/sitemap.controller.ts +++ b/apps/api/src/app/endpoints/sitemap/sitemap.controller.ts @@ -37,6 +37,7 @@ export class SitemapController { response.setHeader('content-type', 'application/xml'); response.send( interpolate(this.sitemapXml, { + blogPosts: this.sitemapService.getBlogPosts({ currentDate }), personalFinanceTools: this.configurationService.get( 'ENABLE_FEATURE_SUBSCRIPTION' ) diff --git a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts index 3774d2274..b8cdfc5c6 100644 --- a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts +++ b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts @@ -17,6 +17,121 @@ export class SitemapService { private readonly i18nService: I18nService ) {} + public getBlogPosts({ currentDate }: { currentDate: string }) { + const rootUrl = this.configurationService.get('ROOT_URL'); + + return [ + { + languageCode: 'de', + routerLink: ['2021', '07', 'hallo-ghostfolio'] + }, + { + languageCode: 'en', + routerLink: ['2021', '07', 'hello-ghostfolio'] + }, + { + languageCode: 'en', + routerLink: ['2022', '01', 'ghostfolio-first-months-in-open-source'] + }, + { + languageCode: 'en', + routerLink: ['2022', '07', 'ghostfolio-meets-internet-identity'] + }, + { + languageCode: 'en', + routerLink: ['2022', '07', 'how-do-i-get-my-finances-in-order'] + }, + { + languageCode: 'en', + routerLink: ['2022', '08', '500-stars-on-github'] + }, + { + languageCode: 'en', + routerLink: ['2022', '10', 'hacktoberfest-2022'] + }, + { + languageCode: 'en', + routerLink: ['2022', '11', 'black-friday-2022'] + }, + { + languageCode: 'en', + routerLink: [ + '2022', + '12', + 'the-importance-of-tracking-your-personal-finances' + ] + }, + { + languageCode: 'de', + routerLink: ['2023', '01', 'ghostfolio-auf-sackgeld-vorgestellt'] + }, + { + languageCode: 'en', + routerLink: ['2023', '02', 'ghostfolio-meets-umbrel'] + }, + { + languageCode: 'en', + routerLink: ['2023', '03', 'ghostfolio-reaches-1000-stars-on-github'] + }, + { + languageCode: 'en', + routerLink: [ + '2023', + '05', + 'unlock-your-financial-potential-with-ghostfolio' + ] + }, + { + languageCode: 'en', + routerLink: ['2023', '07', 'exploring-the-path-to-fire'] + }, + { + languageCode: 'en', + routerLink: ['2023', '08', 'ghostfolio-joins-oss-friends'] + }, + { + languageCode: 'en', + routerLink: ['2023', '09', 'ghostfolio-2'] + }, + { + languageCode: 'en', + routerLink: ['2023', '09', 'hacktoberfest-2023'] + }, + { + languageCode: 'en', + routerLink: ['2023', '11', 'black-week-2023'] + }, + { + languageCode: 'en', + routerLink: ['2023', '11', 'hacktoberfest-2023-debriefing'] + }, + { + languageCode: 'en', + routerLink: ['2024', '09', 'hacktoberfest-2024'] + }, + { + languageCode: 'en', + routerLink: ['2024', '11', 'black-weeks-2024'] + }, + { + languageCode: 'en', + routerLink: ['2025', '09', 'hacktoberfest-2025'] + } + ] + .map(({ languageCode, routerLink }) => { + return this.createRouteSitemapUrl({ + currentDate, + languageCode, + rootUrl, + route: { + routerLink: ['blog', ...routerLink], + path: undefined + } + }); + }) + .join('\n'); + } + public getPersonalFinanceTools({ currentDate }: { currentDate: string }) { const rootUrl = this.configurationService.get('ROOT_URL'); @@ -43,20 +158,21 @@ export class SitemapService { }); return personalFinanceTools.map(({ alias, key }) => { - const location = [ - rootUrl, - languageCode, + const routerLink = [ resourcesPath, personalFinanceToolsPath, `${productPath}-${alias ?? key}` - ].join('/'); - - return [ - ' ', - ` ${location}`, - ` ${currentDate}T00:00:00+00:00`, - ' ' - ].join('\n'); + ]; + + return this.createRouteSitemapUrl({ + currentDate, + languageCode, + rootUrl, + route: { + routerLink, + path: undefined + } + }); }); }).join('\n'); } diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index fb2a5403e..2d4d121bf 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -5,5 +5,6 @@ xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> ${publicRoutes} + ${blogPosts} ${personalFinanceTools} diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts index 665b93354..892b1ab5e 100644 --- a/apps/api/src/middlewares/html-template.middleware.ts +++ b/apps/api/src/middlewares/html-template.middleware.ts @@ -75,6 +75,10 @@ const locales = { '/en/blog/2024/11/black-weeks-2024': { featureGraphicPath: 'assets/images/blog/black-weeks-2024.jpg', title: `Black Weeks 2024 - ${title}` + }, + '/en/blog/2025/09/hacktoberfest-2025': { + featureGraphicPath: 'assets/images/blog/hacktoberfest-2025.png', + title: `Hacktoberfest 2025 - ${title}` } }; diff --git a/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.component.ts b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.component.ts new file mode 100644 index 000000000..72990ca47 --- /dev/null +++ b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.component.ts @@ -0,0 +1,17 @@ +import { publicRoutes } from '@ghostfolio/common/routes/routes'; + +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +@Component({ + host: { class: 'page' }, + imports: [MatButtonModule, RouterModule], + selector: 'gf-hacktoberfest-2025-page', + templateUrl: './hacktoberfest-2025-page.html' +}) +export class Hacktoberfest2025PageComponent { + public routerLinkAbout = publicRoutes.about.routerLink; + public routerLinkBlog = publicRoutes.blog.routerLink; + public routerLinkOpenStartup = publicRoutes.openStartup.routerLink; +} diff --git a/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html new file mode 100644 index 000000000..318d86aa0 --- /dev/null +++ b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html @@ -0,0 +1,202 @@ +
+
+
+
+
+

Hacktoberfest 2025

+
2025-09-27
+ Hacktoberfest 2025 with Ghostfolio Teaser +
+
+

+ Ghostfolio is joining + Hacktoberfest for the fourth + time and we are looking + forward to meeting new open-source contributors along the way. Every + year in October, Hacktoberfest celebrates open source by + highlighting projects, maintainers, and contributors worldwide. Open + source maintainers around the globe dedicate extra time to support + new contributors while guiding them through their first pull + requests on + GitHub. +

+
+
+

+ Meet Ghostfolio: a modern Dashboard for Personal Finance +

+

+ Ghostfolio is a web application + that makes it easy to manage your personal finances. It aggregates + your assets and helps you make informed decisions to balance your + portfolio or plan future investments. +

+

+ The software is fully written in + TypeScript and + organized as an Nx workspace, utilizing + the latest framework releases. The backend is based on + NestJS in combination with + PostgreSQL as a database + together with Prisma and + Redis for caching. The frontend is + developed with Angular. +

+

+ With over 200 contributors, the OSS project is used daily by a + growing global community. Ghostfolio counts more than + 6’600 stars on GitHub + and + 1’600’000+ pulls on Docker Hub, standing out for its simple and user-friendly experience. +

+
+
+

How you can make an impact

+

+ Every contribution makes a difference. Whether it is implementing + new features, resolving bugs, refactoring code, enhancing + documentation, adding unit tests, or translating content into + another language, you can actively shape our project. +

+

+ New to our codebase? No worries! We have labeled a few + issues + with hacktoberfest that are ideal for newcomers. +

+

+ The official Hacktoberfest website provides some valuable + resources for beginners + to start contributing in open source. +

+
+
+

Connect with us

+

+ If you have further questions or ideas, please join our + Slack + community or get in touch on X + @ghostfolio_. +

+

+ We look forward to collaborating.
+ Thomas from Ghostfolio +

+
+
+
    +
  • + Angular +
  • +
  • + Community +
  • +
  • + Dashboard +
  • +
  • + Docker +
  • +
  • + Finance +
  • +
  • + Fintech +
  • +
  • + Ghostfolio +
  • +
  • + GitHub +
  • +
  • + Hacktoberfest +
  • +
  • + Hacktoberfest 2025 +
  • +
  • + Investment +
  • +
  • + NestJS +
  • +
  • + Nx +
  • +
  • + October +
  • +
  • + Open Source +
  • +
  • + OSS +
  • +
  • + Personal Finance +
  • +
  • + Portfolio +
  • +
  • + Portfolio Tracker +
  • +
  • + Prisma +
  • +
  • + Redis +
  • +
  • + Software +
  • +
  • + TypeScript +
  • +
  • + UX +
  • +
  • + Wealth +
  • +
  • + Wealth Management +
  • +
  • + Web Application +
  • +
+
+ +
+
+
+
diff --git a/apps/client/src/app/pages/blog/blog-page-routing.module.ts b/apps/client/src/app/pages/blog/blog-page-routing.module.ts index 0e00ee530..9b352b7a8 100644 --- a/apps/client/src/app/pages/blog/blog-page-routing.module.ts +++ b/apps/client/src/app/pages/blog/blog-page-routing.module.ts @@ -201,6 +201,15 @@ const routes: Routes = [ (c) => c.BlackWeeks2024PageComponent ), title: 'Black Weeks 2024' + }, + { + canActivate: [AuthGuard], + path: '2025/09/hacktoberfest-2025', + loadComponent: () => + import( + './2025/09/hacktoberfest-2025/hacktoberfest-2025-page.component' + ).then((c) => c.Hacktoberfest2025PageComponent), + title: 'Hacktoberfest 2025' } ]; diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index babeec4c6..88b685d33 100644 --- a/apps/client/src/app/pages/blog/blog-page.html +++ b/apps/client/src/app/pages/blog/blog-page.html @@ -8,6 +8,30 @@ finance + + + + + @if (hasPermissionForSubscription) { diff --git a/apps/client/src/assets/images/blog/hacktoberfest-2025.png b/apps/client/src/assets/images/blog/hacktoberfest-2025.png new file mode 100644 index 0000000000000000000000000000000000000000..ab04e6dceebcc23be881b95666a2321e7bccf1ff GIT binary patch literal 125689 zcmeFY^;gsH|37XkN~lQJQ$Y|UB&0(@x|D9DyE`@vU`kE8yIUAAV8EWzHAYB`bi$|s z1ICE4!H4JjeE)*)&##@cbHBEovpvpZ*FA1=eSfc`N_C(4{0P^ax8vHi zoA>YCxOykkttRFwT=&ycRlJTG;*Yp`LE)`t>UZth1KR(d*RN&eFkZX9ou~fptwC_k z&XQ@;nnv0`M%j0Rz$cB-j-~fNx8IwUq>V@H2>ggeGcYK57M=|}Pf;T$=TA=xM=->b@RXYMrWM$zj)2}%liMtAGBh3|66>@`QKOk z?_T_GUtFca|8nGi_2R#h_`lluzdmxc4gS|t|9=h#`%JY)BUmgM>J?O9@0EU@(r4SX zu$w0;#A(%KRo}gS8^hr#j@{pwn!-!5&@Xd^lUIP}#N$B84ZwvX>+v}miyfJoDp(Dk za~H4AwAz>pmzU`+o(Nu?5{kUZKy7+C#oNI}@{wfaQ$W=iBZcbwR3k^8lFkkfvo1D# z+bB8wBQD4B`rE)W%({2*IgwCD>JgGK9+^HoS%GW&&Uiqx(|`7*cK|Pg8}(nZp7fNr zZbP#Pnz(AaAKvoyvxT{`k)pc?2f{K~FvILW=VWox+5Z0A;k=Uba?fSh18t?iKAkq> zp4Y8Qbv>%a%i`h5JwLn}tpqk=m0NG-`i=I0qAi&Pq4HjOZA!JX=va3zFPw_|o6|+_ z{%GXxG8FwvfMLW78pH<2t4HGZiLMbDY#5zJKzZ4xt?pe9q z!a^57plwf9zMbP~SGq1^%yw&Jf|6{z>FI~=&(wEMZU&lh*w}UN5=Mm$iv4eZ@B$?A z)`3*+1}C*qaPt0&*NSIPHA}?P@TmOT26 zrwH$=5~!=}-hj1v$@`B;1T`D>Ck9ht9Vo&r^)irdMS^B z%6RVjD!ZArn)4kR)N_1VvpD)8ym^^+%0t>c{NRC&E;}*TZEKX3;ZGiNs#%|$5=_fV z>J?Dth%tVxvL?hs_ysf=;5p9uq#3_d^V^PRW`$ktvDeq?w_N(SmmLI&;N2B z{}iUpx!F*fNsubqx`AUfO(EclX0xM^^?98>Wqw(SJ82oYqvV7?zQPp*H7eXr@C)#D zVtLDc&`5Sps|$V5P~K|nTjqrvZ__B<9ga_e5^qt(jq|l_m*=C7fUks9ncqVf<^;@u zkFC4PjF50ch2O&Z7Uv{Y=SKN8kE?A3!BPXF!vZ(G(~|-8c*Yfe!YYzNIcfoqne2?E zG9Q@xr70fB)>i5iz0h6m)cHeS>g&e60nE7A?|h6;j1}rW-O`G54kJ1&incgxz@PQ+ zU-Ig!U_;#(GWv|I(NJxdJeN=HOYYs33v+BjJV^#!r>z;QT=UW9WZl6FQ=Q6sR?y;^ z3`mK!E1=Uya(z{7?OI-?fGt5PicH(`+KqDcSchFk$CkF!Sxcb?SJzK#2Vap_aIh<`W~?KlWuEm6IVK6yFmF zqq44jZ2f@BI5@eyyu2lC_pVt9&&lqVJ8$kQ*1f+BjZLtgLfItTWdI)>FHds07HE(sAOb8HnyvJNn62(L+0IA$yvbj8WrcwziRsC zK%%sc#b(>Ue7|F=L5i4OyzbkWlJgm*@WP2PE<*a9?}@F@JeTiul{P~yQjW56`NIgN zay#RC<7yOXNvvSl;xkwDJ(&cJ}|dme zCusjHwlN`-iHaPvj2jQpJOnc(040LH26lvad0TiPMl$~NDEX|G*YS6Teb(OUR??#9 z%vA^7+v@^`mb_aMyZJ})oM$X%aBPVn?H}DJ-sYjGv&~-`&%17u(ltSY4HH|xZ_l$< zh->Ogh_Cnm$ag~CdwBd@&!gMMOwgEyrWU<4R7zowad|;5O;Amve8REl$Oaw}`^~2M zDo*mRI~dnFU|L%$&9oe^ui%92+|Uc}n0sj@rvPu!){mum5mz8ZI-sJ+a?0(TLrC`yzY1CZv+43Xx8Wj)HW@+zSeRV-47z#aq_bpTrLp%01YK ze;;Q&!W_1Nk=?WHkbXAyy3k;vLXz48@6A(rtY5j{mvb6!bbS-&l?O=tb+bF**xhc1 zjhG{DpwQ&13b@y_;PF@25hJ`dP?5v_)v-6d?|vZz?@#%}Cr^MLvF|tD;(O3rZOpF) z^GL#%vIg}-G- zpQKy6a1-6g-m3k>lE*|X;RJ&<=;c;=LYTCRxn7k}l9$Phlb~|Ycn5e`iTp_UX_5)k zGc2G)RW*CZv~PQ_>$S6dNMcTZs6Un<;%?Y%$>%_k^0k~$a0bep<+E+RjnF@+5LKv~ z{G7S}?WkVW7?oF0{5C_jfs^hj(-X0J3vf1q55~}&Fn}pbYO2g(UyXUwuet=excyDu z>V8&`td+-3V;VjnbW9D4%Ya7|eGKg|s19%>YR0>qVYb@Tn1wr2Rj9t+AHV)zWd?gW z3u-Yg!`bfMDL$vgckrLP1ub@vz`Qb?>tz9*Rfp7-#8j@;C3^H3NHm(}*!f}sWnX)`HUkVq~KK>?ei;R~SNLTLtjuT?hP{WRyap&yt+8&o|0QQx=PW+~*P7J4!NX^C~H4Vm0qp^^(-}jp-kyhu8dfBk?Zkn%-lMiO!pj5yDMkwc2%1+TBWBQS` zPOK7jHdeBIUg61m?|x?#$YO)<8Pqt>1|kA~1J%{{&<+jOzug{fy(L5E)&!@xb31N@ z@}(WsTu!x?3Grr~Bv+5rrI|{rA(y6u`E-_ta0;D{o9!Y>;8W0dsnys=4ves7w#JM3 z?5HlDh``X^`|DdLEae?3$jM-7Hli_{HN9kI!^5e$3|B&g!j4LoDf-Gw&K`H!d?d{H zLa?phxUFSd>cT{v0ZEI2FddpAW(MgSV_aAN-q|6BZ*h4z^B<@Ca#g#5eqmt>(=6f| z)ep+xK}Umb;AY*<-O7Rx;^M}Je4h#RRl?}%BH5Imj(r&Yt4mAfQy)izU`xm7iw5~Q z89@%|j}*iEM#6fipz-F|)Nu|WeBVnwM~g%eDYeaI2hFywj_9DdU2z^wihMhmDF}}i ziXa23GIT(P!^M3_ zKQs!WXN_h=M1Yi%-XCBXD>w%!XfuXq5C5Uf_22XwBf7gsTyH` zu+DKR=)(=Bl2&iGc7L;};BkwFAGN4?^M4kKU$E3xf2FE zA5U!Ung``CE-#%dve?)ejbH#qt}eq%5}t)wp<8VR@Akk36kM#sCg-ItzZNoH1puk~ zscr0;sfP=Aa)&lxt$)C8##y=jd@E-36P-~XJYOG;{{2hP1*jw~y+-JV24tzs`Gm12 zLMIzo-<#EU$jp7X=sg^^OpZNMHO> zu6&yvvz<}TH|*}->~xB3|G+r9Vqr~&!b$QrUd@-2h6@OygId6rZub7`-y&fpjhp$2 zau;74pI@&YF%+Qh(R&05$D8J@qfUbh2LH-(Z&L>wJ;^RU$Xt&ve>azh#a6#cV-FRW zWk?>KX@1$4{?hPNsCMzAPJr%?vv};b9vgH-%_m z@v+jBmU8t?{XIW7P#(j6w$dVq)tfuz@&`wDucy;nq$yLi@GU1yp;J2*E_uuiN*%!q zX32+-WZ`Q7(BI!0Q;=;ybX& z8L9NYC8s|c=YLvT?mC(ZH_$#XHhKclgnKQYS4-B~>?igu#y*f8i5b+u_-p&`70XO@ zm^2oV14HIK#lQAHa6pIFBT?GWpZn>vt${w6{IMJih5th_5c2s0-hLT}69f>tV6htn zCj%FFoI>C$athY3@Ie*(Y(cOl_1c~-RD;n@1s^Nu?et^NC2%jp1?Y*~VO`jjKEe{6 zevrLK`ohEdw;LfDIdnQ(EAZuuAIoS0K|UvW%7FXTO@VjPq|4} z5n`sh>xRt^56+L%g=SYgam;RSbBcXBTbJ)}3>-cwA_G}~lPSmYMLTgm1@qj&Vhldn& zxre)=SvFKX;ql%N15HaqgcfwiT z2uJ*Jf3$Vacb|af2Tpx7nFF+e!Op#9v9r1h2O06ZVZW`-QymwV3EBhlPIec6^ty-9 zyR{;fd+XAg!I$EMob@NmYzv0+0NdZzjZ5y!)S&(EXqCW#=7`|niqtL_S*9^*rNhop z=b9K`YkT{B&fXK~)&T%4wiZVRTt|&!^#(Y#Q%@I1`g)Msj4QS)C;@f zrD)2k?(nW@5&3;DFms9Q_)ia^T;8F+WKv85n*0s(iCOeuR`~APnE|!h^X~z4e!0;z zhO#^yepR8x9NdDpq{}Fk(M6~Tp4W~Mami6 zv2#Y>S1X9o`-T&w*Ab-Qg_Z>D_9mYWZwGD_YN~oweaNyG-K)Hm!cPKIcEx3QkZtzS z>ukEt-J=IBf3_rD=A9=v%u5?znI`tEODGuKAI>W!sBbbI^+A}w;zK4b72wb_KPf3x zQ6Bs9hGB91UYI>}zUDi7U`u-SH0S?X*_DoZ7Vq)m zm(Kk%zpQK9t!CtRF&f0ZK1McP7@mPvZ=meHu4BD_UZ@y(s>{v#ls>-r_;=E3YE(w& z_VZY}8+y-N=YDxerJ@;*&jCjEXv}M)UpjOFJS?xHbcNEN>P$OgDMIrhb;QiZPmcGM z18yTg%4!jVI?_C4Gf$1Yteuc<8cKgtmKW#;^8#r~TJ4clGZ_0T=e75BvV&MnkzXfNus7c`$41mDgr+wfK>z8KLtGG07+`RmAAp4~A% z=yl+^;5PF*Mc+c$+$c|mB&(1n$VOX84|E-2cq%}h=~?gSh&L*o|n1O$Nw zYdk8x!&9QH+G9?xh?2vmySmy~g$fPNAGY96d!18#uT9lHole(HR&!N0KJoED+kok0 zuJ|d5$DSQ#G9ruS%UtsMQmev&RZeWimO8Nmz@mA#sH@q*M|dSK0lWbp;FV6e7y@C6 z&3F7CR5KKLkPyT5tS|eu@`qQqyIU*vWT8t@p?5Hv-S9U#D%|1LRhdk9~%p zg{42pALI)5$~64x63Oh=_=-OQsRRPq>WZ@>Sb?2p_& zqwZ7qiUiw18?QaBXo{|?W0?D!W2XgNi=lyYj>o*dl=CtpMhm+gc>?wWGSHB>DaDMJ zo%6puga(k$+!7OZF*G&%%eD+fF4N@bn znsEQ~S2_|72eBK5oMRUC&F1&-GeA2oXyo;;9p$9{h-Jn9zMbdI3AE4$+8?!Aonl4ygx7P_Cv7h!}>e)ENA(_1PW8$|m9qWlS_pVI{S$mRTg zIgy7uyM3FgmYv%akxR1#5d^nl$B^-8Z^|OVgb`_@=!V-o__VJm6(!F=&$~ zm{yZEwqU+mP;f|q6rA~nL|jU4euZc_!O=IswDCXnYeqrcXK9@!v-=WA_951 z{S^GG?+JL|k!8-fC9JKBc%^1=FrRfc{j{l`-abCwQ+$h8rlg7p-%9FtndgBlB!ndB zrVfioJz>CF1=POJTw9oGH8v~};YI2S5m^6iBF^-X?JjNJ)EtWzSoqE<`>5e%-GnmC z-8TYZfZ*T^KI)9enX3H5X1sRNW}UEz!kFv4MAoe0w<}^z&ep)THW-XX+q3o9se%8T zE8TH`E8D@PA?8U;7M0N56(gDrp6Scu_61KP>@;*fIb$fw@u|_7b?=>hkM<}gh2m;} zbFg^C8FrSV^C{J&^yk7yF9R>8rv+KFV6b2KnV#ydMT;n7068$-l~y~$Iy_;VyCj*~=<0IHtvnr)ZnFX!;B2#gp=l*e{;oJDN0n`tty02LRGEZL08$$hrku#b! zUO?a4#O`rUldkE0dt#kb3i@$2!mPS8{$avLQeaPDSUXD|zE{|#y^wWsa(JpNzg%$U z+t8aU^oJI^AQHp_A&?+Ovp-=4+agH^%v#8pJ3HIn^ic^$&S4RC)6~*OJ7K*-?9v-w zH+ra=HExeF#I`=%G_O%LvovIHz4g|w^_#b*%x~YDW9m<|k#(zXd$rG0`&n)!3D`uAZ$;PeIHm zGyo)gaF-a93nV9FrkL{XruwUQEGg1Ua-?v99CC6%56eIIgwo-VU| zn57!Cy|60=e%3FLGSB^b!bN-aDEY}B>0Jn#Pk_zbL`4Eb$tznV-0-a1m*Q* z8JGLry%SZ!(-21&D6c*f5uucvuKDu9@;E!;+aUNnWjBykzVtGR9*qA(a7TL2;ZB5v zkjkz$bC)(O?7;VO2#yyP6V)02p3J$RjiZ$aUQFh#nH3K(=+`6GM%S{}>G zKTZu6>)5!|hzyOI1alFwB|)B?Gaq0;7Q|tzQ|`gJj&l{ZNU7#oi)6DG4R%_(--RWw zrnhdyJZR+dKy_c=flMRPRPb&!CL;O#C;Qkq>4*jwTr&M+HYg~B9RJg)t}c)vck;kA zN`9`+iKA1%70XR^IYENb2IU_m6x#X+YF4oN{IEiNS-#OA@uqL;)UTJfht5%VXzZp6TPNW&SuAj)8@ir@o^Ustx#) zykLZ6WE2Lsk*X3B03e_G8+RUwffN#Krwi~6*tSVMThKOOxAzl41-iYsdF#&^rr8>S8&vu``B$Jhpw~xkZc#c%fUhz1l zjIlse!>Ev%_K`JOh=FYXb}xtWsSupa*F1M5CqRs@}tR@UyfLOdxD8 zgv!b+>xrI~UjS^#^+^+=Ts_vd6rSIpf;}|l!(9udGGl&=4 z{p!&znq04$MVHJkFE0b4lefdsTo(3je=WmHPfV?f0OzNt4+X!-!}F(YE`4+9!ENJ9 z9=U9bXIxXP`c3T@wSjEAn)mk^op%r@XLw>ZLf^fHT14_%{#U-mvZ%_^}#Uo5|2IZ=< zd-LBXhG3NznDRg|Y0c3h7pica#J8`0FRRBPSN|=He}*JCF*Gvyd6`FOz(1*j-!lC7 zWmf1-$kQN9g5ooe;e46Y@gB98+gcgXv?IruEpg=ptr{kYd^Ws)j}CT9fqEfro&WCY zI$+=kI`a-(Lplo7uUj-Ts*FQzw)#)&kNzE9ZUnx8^$g3=qKKLlY?#c4${tvv>J`b; z-AcT$v8M@ZzMuOCvG(iN-r}TuWz=d3=bYp*HnVQp1a(|eMA*zLSvg+!0S-M|XN}kW zq#eI)ATTN=Dqbcc{TimdVDWih`z25RkZVi)HbrQ%8uVvCt5JGvQ;f?1@nL1kTV}y% zYe~~j74kPZXEaB;fXvWzJM+{uZ>9$w{boJ*-zw8A3r`;AfQ+=I4Q?uqy&CgX`&t~x0e&5 zir8!1PxbPw>(&Vk0jL{#f;_eOW#w?EHHc6;V4=_Qo4G%xfijW}xjvaOrqZ#@=ZvwZ zJuTYsceIwK@?5a`W`4GYr8)^LVRwl<*TxKK>RwxWspW6+r?`6KB+-+J7u|lS3y`K; zbzCgt$NetxkGvhAvG!k<0Rn*S?l|E$Z!G{J>sv>&h#Y#aA7n_a(K7b>Mx zn(}3T-Nq|2x@pzuafECd%=APiky9kSFMYyrKt3Gg2n zho3#>N@cGtNE|FndCtgj2)5(3kJIg^^FhJD#`K?z!T z#+spvO2{;#T@V$X*zjTXPy>F`IyltRw4Jy2)R_H8RmZj~d}*%*etA)gmNEtRi)KG- zTZvN2$-ANRLM$SlmyNd~-H2=F%t+}biZd%pbmOd)ALoC+)S(V!l#oEcD6Q^K9zSU* zf20d=Y_79pPGKvqQ`q?oU|tN6#pG_U14*qxh4{B#Ry)T#lI*i5S@ws{69C65%yMn23C5;5=n>=0HLdWy51Kf07x%ohsx z2fIGS?%(DBYko9bmxz>uxvMMY_laGmr_*XOYFjZ7O6-1Y@=_j$b*&LY6)LVxj5|JE zhf)G}CXT-onlSP#KiKD^puv)y{EWpq(-Z4_f{`brN$E7J`ZTQj@UH%WL0K^4nH}~x zr~Q}){qDYXVA9)({{T%lY&9kJEgEbKO)pmN)9?3d;j`k$&Za|OG47%C9InGUF1%Wp zIPd!v#0I^$u@NB0ciDI(Rw6m zUNkl3rxX^Fppl$_l)g~JT9!TW*^43Pa)h$@n1E+--w&rMR}WH@KgPb8uF6?YN*i~k zM1f9dI*0cjF1Wj^?5ca5m%Q+uzEt6;tJz?-Qk13>jgD81>RAmtC~J)W@KzTba1tU&GO!_4hT9w6@7KwGnpQk_@T1nuITk+0gs`fa_!XI zoUFy)hZ0u=gj_~FW!My>C_<<*$0efV#`}F2imaYqB3I{(FsM}Rh*F8Iwq{{YGcC=#go*#;$1>31ri+Ia~b>SL01)yV)`A%A~^Ca9i>Y!mbk0MASb}9!_^^NDr0Qg#FkR zZ$f)5P4tVENlV>>&x6oJlHj^gIsf^yueg$aCpt{Q*=Cx6+`rCYuijVAr*yfrPg~X1 z=~QVYiO^z+Vl4x7Zd0v9%gUqu^zpw@GJ}x_LhI%+MrWN!FxiTsOl41|M7(0-i8{05 z=DRWeNUVNjKIix*Q`Q%<=gI6!SHfIeAw{2@wmif;NzvQmEq*waB@6aOSWI@g-BD;SCTF&@HSkr;Fv zX&U$!aJChmX5);qvQsTOD^8CcZ+;0q<_-AAfr`PpB>b)r4Mi+$yD4M^a73APQYlK? z)psSd>_q;=PxU2MeIQ8D$J5mPeP&g?D$hFeNZ^5hYp~5~P>nHSUs+b%`{^gs?WceBPCe%`H-@Z}AMR^2?eBu>9 zt*GPCFH7%)YrZ!<9+dZ!g(37x;$2r1Uc5q2?NuvXOX+3HP7w(UBxMa$1zEPVKKlAL zdUyZG0$}nuq1!L68GJSfByuFy48LOx=+H4kwNGVUui+Zew-UHJ&8blsiF!w+#yCwP zV$&BEU{45}CfWXJG_y_^NI?_*)QM2zg6A@|7n-UEPLI_qyYrMfztKM5TLoaxbhL*{ zWlcW{-;w`1taS8@5n%Or(>+i&>zsV*z$0z;=``}NVX)4!9>RNjqdbFvDrwQ(^mFl& zz>_<9-KWP<)hQrttW$2mLK%jC_p?%^Ry-p$gd`c+jghn~^REozi zP7=vXW6+viGlT6x3#6(EUh0qPT9@8ID-x}pE0^xEeMW7Cqg?ExjOc0kZ)LS>DV1Rm zdW=4Sd;2^qP-A15_X{|XY-CRr6z>1L#5^Z}xA_@K-#Kz5)_0(^W8+F=DL{@;3UGyU!JSJl~=DD zQLi+IoHafViQCaV{m6dN|6eI+7p0!p%6R)w|7oLZ2B%e+h#{V{Id$P>nnI{CukG({ zc{ZIH+y!Q2x@T2CvA|%$l9J0|G|Iz^-;Ahkf2JyIUHKxp-OOR=!Nv*0>McA*mZej{ z`UqQYpZ2?<4lFiYJqifl+YbZT1sopu%=I_Jv-m3P{S;PjypMfLh+;upq4Rjry7xer zn~vw?y#t>$&I$uFvAE(5;kyceMDKYxn_md?tghh99?Q>M(>>((RG>umbZaTeF(eSp zN6Dsp2Qi{k#~{&k138|`t{bDTx1PN#-PF|Q66m|t{eY>R-^n>#j~G5TkgC4vGd8eA zFt(HXY&B8ii&%Nfo#~_J-edFoumeA47^Ps+?)F>rb1E2^NGX4&2jnR?i4t{%E|D$> zb-QfR;=BR-lV4);rEUrb(B#2&Wk!tBrQi^McP+ux`|s&v=?AL#8}@<&MCp|=`QS0O zx^I}av{gqf_LaiIBIVVSn95%${Mh~!K7D%E1lA1prZE*X-k=QZPR(H7jSJrOVOMOS znba1y_=yoaKEd*AP$|~bNdzk|9+J9M(6=%im=rmUM~4NGChMMqil#hSh{9RrklZ=- zlFIx-1&D>fl{ZgeC94B8H88|!lDPhUY_*`Z;g0mHF9lLs{A0zJi8qtRug`l*TxBpg zcy}5Ivk-s-J3Gg@5O2k^15Tg$*mb?!u%V01r_4%_PTjkv5!7We{At-!{7STy$Imq< z;jWM=)z?n%cY5H!9I^64fuMuc04*Wc&4_fj+iBSH%X=V%qu*E!`nM(!2;X$pvb{gs zhXycW_c0>@jG=OJ@Ei`Y{M_6p5M))<=$I*&hyQP(1%-o5jni{Y)_bKAyb5on@C&ID zA{IF0u9QYK=I=;)wigu2*YsXNo>hzd9*jnFPRdLZV^i-3<+*CF=4UL`8MKyd zg5ufJKsdN>W@Lu&Y2Kz~rf*y-ur<6_M(k$1Rq*Sv6eDQ2$%r$EK-11iARfq|KX zUkHReNy>FJ_?tDC`L5JXf6J4iM=A#4S>Z(`x%VXTYU0}I#p^_*Ya`~b|`gZj;<}= z)Z3{o_$=`)vdVzF@!|(uEZ4hv$#W0KA;>0HAGerLD((aU@~E8s?rd8IjU9Nw0W4Q$ zzZ?=qZBeB3Byawv667per&VX_h6+EINkqQroewLJY*nr7!Bt6IJ_{S%__?BYYy12F z(@mizjA=g=O=wq@WK_#Sz$xK^?xtSLpUjD5#Vnkx%-A8jMNy}NxR&Mpwl3C}xY-ju z=U@Mw;=n>-kJ`M16I#AiD~yKGZ*C?Jy>_TD@DIfus_w<5syg~aE~ zdn^C8YY)%y_o1??dV)u`J+)Cj_E|0(H6stF6u8%ACQw(``1)`E?m}hHbJUG7A!L2( z&~@}C16^?JBJxUZZ@av;;bg4Jyvq;UEab^_!A26RoEzNQ5*h4R(e?)7ELf&HY}F^xKSyGO@wW7bj+ zX;$qEwr@4=XP=wU3O)GQlJ3Nm3s`a5U@(1x?(ZBjx*f3tUx^+Q+x`(a&kscSbaq|X zV8)?wQ}^-2EyC`luOHn7B>;SpZ?znU@xra z2@oVT=sgdDALZXM&s-$i=*=FFj>z`qNxRPL6d_aT#-?Y}`o7IO@Z!b)?yUmFH3Y0m8|?eq`$lto0o#M`o|PXvGHzLQhYR)br3#jR1pl zuy6TkZ%F8u^Gu$Z@DhV5(kZ-APc+@cMCLZp+Dc`H#9N{Ty`ZC;!D2k2sJ=*v5mccad+>WPT_*%S+18+lysVTCC_z{(sgJoduR+%>?} z%-DQAJ4JdPe{?aWniJc+RSsBC*-B}B&vx9R%P&-zr${NhfZf;ARH=TM-|jOm!!Zv{ zpuLgx;Gq*dByF08waqm0Fms}a13euYtUO+=apE2`_&fDYS*qzbPi}3UnjPy= zmDqu;bEwV$eHwCFoM3jnuewq8B*aPt=KHwpc6}b?A?o{nCVIFVwGxxofpY4 ziPal?T&XdJE$v~UUSAUoH7M&N4j8?eSXWrn(bQPGWOBMm2HQe{VvySl%v^>$l=XaL$&#EQXT;<0((E39I1R7D4`xsQ*sJGMexdnP zAZ4M^n(wh1qm*xNiFn)HNt(5WFRmz%{$;Kla)iX#v?{fqfUb{Txxh2X<}v3!hUC2pdh0UhrB>z$}fjoyRxI^#A5;SMvz9C%=3OTB5t? zc&E4T%&X-G?9AFL6H*Qa&3Jk)TB2WASmSUw4h7^J!B{DQY8uVZ_1@aq>ire{Aqe{M zT-oIFDUSfGlclwFX9s0MdHCZ(hkJ;=tENM4cn;PlL>thGPv5_{JKdCRkYEV-Q_`*^ zX`^7cwyCdv`x-a``7BQNCJwxWMOi5FnURl9j{-;g2iMc>v8mzj`rlMtJc4-K;a`6u zR0nByVk=y>O|qD)Tku2FS5U6j%D4Y&C(rFo}F1jhJX&O6-esGT-p^=DKrg&6mQmH`59DO5hh1G*G9QuSiFTsky`9vIzjhyN)a~+yhzF0id09xvP)r_&uz?h= zMlyH1+{ox(X&Jw2eZ!c5xY#tF*Y7ZWi&+NgN3uR5G`#n$jK{=qoKfzRT&aZ{fvc2| zL*s8D#fW%4*G9ft)nj+}w(uRxXIpCv?8Xy}Mv{W1j^&j)mAe|M;hj3U?G$6kzXn>@ zi30=WG~2;q+O;g{4vWFJBCK4h9J;Kj&nQe_UxSw18kZQYgD)QQl4~J+BBmBQCKTmT zfPiuP@e5IdLl=PXR@-Z*b)l-Tgrv3GLL4$+{|(3fHYqL5rwg{ zs0(s`Okq!HN+S6%^vWr-)IEa@kSl&p1q`brJZ?t_p|HNV5BQ)*69U(x~)- zg1fxQ!Y=oss49QYvNfwq|HXa-s>Zsia@562dXt=9TeH9D$MYbo$Kbz%X=)hNRjw{? z9PlMrY5M_-kt3{pwrl3GoL_9JW-kZN*&^1nbObp`lW#G zd@iyXRTBu?-Q6Wif$#INyiyC~H$rhCde9!@=alhDM-1tERd-I{msp3xRic5{y^S}g zUUr!Y29r*`5RfQ*%(2sqpJ7Q|YpXpN5b+s0l;)pp>=qZuk*ND}dV+f3=y9xc^!mrt zT9^!KwQj;KF`&cditXA^X7>Br_-oOVX6hzuEEx_8l<9k<+_R_WnsJtyD?WCTz4+6yga&* z(&dI}YjU0iZ^>jvWU*--A^$#=oCF~BvQTV1g|>DMjTOSPx*lgq@kPiE^JUmm zR_9GfCR@6{n`}Yqi+>Gl@2_mqWAoyDZ&J(-dJT;yFu zBH=hk<}{N>rG2&}cjnSVFw0{e@+faRMr~rhXQA+XCdY8{TR_vi&eo&nw~(a!rq(aQ z#{7$D@@GP~&W>I*`MUIt4F~Fk8k7EM_%dVrey|zt^0l_l_bsjG_P7HV#3>j{u!G;h z&suvbGOX_HHIUY~cs~w^o+@s)%gVw1RRfgrL+Dg1IoVl`+*LfUbd*#UB0Fbbc>ZUl z8r^2CDOMP_dJ|=`{$BX$B@GSDQobQ7W5=q)B0Pys8(n@SoaZav$M?w(7pf(yHC`-> z)E}I5rtLX4uk5lnnmrd%uCrMEqmX||_w}_vr7)flO8b&WYq7A#eKOLgB1O&OJ4=~~ z66ss`4#Qmv)KrvMn^&f9@`C=2^Ns2j-lA*8klXrS%r%NAR-t*gA0qa46O-Suoh64; zh35hh*uuEkw?l$UDLJZ#>N}E zU}21HsS0CjiJOfS#`jF>8|Puln5q61CZEqvPJ|y`);j6f8Kd5oOPP|QX_r0C0mGcb zniJTSFw|3E;#9>reoR^5EEk&g$SY;rd7#|cayVXTAk{=G=>`1Nw8u9l6pwGbUE^{Q ziLw}Y7!)45pwPz?Rqf(6<09RCz&m&%p@Rs^`a>X*$Q5KFR+~~#w%pV@o*^LgCv23g z0msgzAZXOe*1F+Qft7XG(%smEfuWbSkyq4Nprd(g;$+yWVH>r%%uxAB$LraRd(;3> zjKS-_aTf8>7v8J&h|rY?EZ`?UucT4@sqC}>5!MUoFS*oiL7EGsSN}f4-FrsU`LF5` ztWjth%N?$!{KQQ(UWaQe;u5iMIwGcp4b4e5`#pYeFFznGNWs|&lpL70i;Q;UlHboQ zUpU%SkF5NpMGoUJ}#a%h{1Fo)8S=g78H8De1`T4b{pPtX25 z^W#!>TYB5HC$lQgF}9Ufd`inDU9{F@80LlV@$~d^3}KHM28Z!;=!9jj&4%37yuTD2 zY<$~sSx)cYzuLQsnU&l7`}_LarYKUHzHl;U@bl*=ZPu%KTmslLSrY*H9$PIXzQ1#i=8glz+%MXXiw+^@n+=NM@=yTG1lTzM=lcbV3GZT#HS zU^ZUG#qWo2{pHKm-QE4k6{y~S^dd$`59N6nMQf9S(I?CGR7wd|_G-!jzrDThzg2w{ zUp!6c>RFxULIpSa)lVNFO=w6<^1lE1JeB>4QPFuhg7Xi5|7$qyL*FCaYdTKgj>$l? zJW`xz{g)>$)N|XXRquP8|52&`7XFgv2&Tqi5mW3_%(pE+eJaa%eWmK#Dd;w8xx#FT zi+QZ%P*2P4DC9M+$3(!$D`6>6hce&7DIKZN_BUq?gQ(^k92jl>$ul^25F=a z8rZOr9Z$JF;jZo-{~i1O^VwmdJ9t*OJT4|5+RJc9Ns^}6wyh6be1)5vtI)KDuJ54ZnG&?iPnt^|kA`t~UA+)c`J{>ulQtt(T{@{) zvH6(Lb9$;o*tfggE}R>mYTX_9V-PflPoXlQI4MeO7dOiCUH_QzbjZi^?KK~YTW>`% z9W_|QN7?1E@%a(h4wX0WS-tn9%G}2EKU1*w5I^P8LGwJ;u$ZT%&&Q4YQz~&7E7mjG z*6ZbVv$?x}Y)ptaGn*!6UChHt^gh3Go=OHazNAm;M07~G7?+D0obRG}(3407B~s*~ zBO~Tx7HAq|6Q8MEZi?u%v^_xFIm=|+&xaVChdG)DIv1oZ@1g^ z*ROYP*%QPpL9AAbqxBLf2I?t#GNN&-ym@*okp|Lzo*cyGL$B`dABt_R+wWbuhwf zn{#qwncD1NgT!3mlu8@}{q^Y8;meonaIIZvb=k(=W=9Thxy9(7mzHuVK6wbKt&9G7q!CJ9 zXt{kuFFI-%A$#<)*$iFEb%?`ev+0v%+((+AlX8P6xslED3_q8sseRZL+L%Bp!&%Q_4khl!^>&Yp1z)*tb@F_I*2KsmR)4bXdGh}1- zP}T{q&u#DM{x0(Tvw8g!I~M0D%cA6O-{*uMtJA!VnCCd81VNt_+j@WQai~_$tw>c| zQx;xZ)S#mjOviCgN$3|^F>KH}QA1@9b&ks=b{eHq;uxv z@T>?XwpH!8kdAAATpYjuP^4pU_+er#i}dxgRcy;Uy+gmIXWr)J$(P<_nKq={`;W$V*cFphQ}42=Z&Xs(V6M~-0+`t z8mHe(Im@XxGUzJ|dVrBa^OLkrl%LXGOifmKNg>yLQce#rCuPaCNnRetx-7 zX^vQKW%>dyv-c|meE#R+BeZ2w=iQFj($+7QSSxJ6uIRH)Y)ZLJGb-Yx8h-yHc6G(On#6Gz@uqjxL8@GL1`Qh4=XLKmFrxzkj>C zdpJHUA214AEtjvQ*|kGA>3jb>zA76mFP4J}>&5vu-=|xpd)A1PYN*Yo`aHXj-EQ-f z)=+{^PS6}awKH>v`>S`MIwo3fx9jC{73Z}*RVL|&8+Q14zZGDz!Aue7N@1^|>jb81 z72#DM-$f`EtISd-;-Y7R!r!4k6!ulyqN5$h{U?n$7pK#Q^*BFLnpE4EwiD+Kgo|Pp z=QY0zqJ{BHs!-hjgZfN=E`sLa5{qR4E*0sh2m|J@d5yE_M^~Aj^^RA5SX0^J@a4tBY?FTT*#}S5XdGB(ndY1I?=jQ7=lisY#m$%fE3~BMJymt@xn~+bv{J|8 zGdF~zPsnin?swbYe*ZT4CiVAW`!?lz9}aKjqBm`y9`;PC0~RiXN+w-6H?FRBv1m-6 z1(x&T9_h1U+<)*ofveRb^nxZ|LH(rC!fsiXYkm3m*>SJ7v>1m!{rbz}8l^3foC27>1B8BM!%RgzK*XDMgoP%V`( zDCspVauqYhvH{y7U-E07;jlk#eKm9_iAyS|l!BJE;MYo6GflGcYVdv(4dL9a8< zWxmXo9&Pxi6fhk+PWXN ztxwxf4Wm!y_~4B>CWUoZZR+z5LthnIkr9jEmX()+tfa2bk4rn8^ZrernAXsHKJ%1G z5sIRKNm`U|=$o`%;Mu6Jbn=gD0pj3s(fD|8sE(Gc<@Zw>?EKJFw<=Dw%BSWOmv-8X zACtj%^0Nk&k)7rD(~)=Z5zo>l)N`&_f6G{+clN!xd#U7~_MaU#(_y#U6>H)2c33V~ zhnCO!u{w&a*MGA<-|M7Q^d_GqcWkL@zjes!8o$0Z&XBmMw%%0H@t8F&Hq&QX#+Z#c zmagtuExNW<*=0Jk%|FgF8^476@zcMb9+ka1d8?RAQb{kZpOK#VrJ04}W?wbV_9(vi zu`Jujp~sm^-8ODg&)<)Ch&%zmHrMm}eZN=;^qel%P$xet4Xy`0&~0z|fwKsj!)KHh z=d9O#8z)s?*=#oH-F9)&l5e;7XTEunFA(~d`>TEGaen)D*V!>TY_cUT2S@QLCXD|4 zKqC?^!uMXqGWVaYOVn5nVnXGF#Exo=o6YL#YX9}??Po5Ye!lpqrdPq=aY;R)iI}zI zj9*%s-rHE6{6f`f!+Ty`?e1>x`-gzrq`iI4T#Azyc&w+nd3w4?fu*k< z*AK|VN*$h;=hnR%8lUZM8}4n5?OWqOV6$0IK8XaF37W%&l-CL$r!q4u+&kZf=g1^s zn3v7d&9)~C2`u6h^$APCri$uuVba6NbdO2qwN16=Th#YP)i2>8PkVXw=5 zL^12IBQ3O2^XG>+=Ta?noZ(?thyMMyZ+GXsf4A%Fec0LGzTKbx)e8tsN#hV=XbJe9 zj_1txhO2);=QjOYxk_44pY-asB*C_c3q@{h@6FHbwwveD(uLzDAM{j8XPXrzr>AP< zdu>2WHtx(cZ~giyxL=<$^h4?eoxd(cWpej9vth!X$!bSDzoa_$VHc;jn(COQZA<4# zpJ!B)9Fa*;H72k{6W;OsUw;InNaPuYD4G8t*2`bYI}zInj;h z-nglOw;cFoM7F0zR%m&zDhF;9v-TXij`-93lTJj>4kgN zX7hd7>q(@_-6KX>VPkG?uEU-6v!w`q2HVX#^exWMJ|pz?!q;s2a^usyu`1n+8*v}Z|`xx8pIvm9N`{s(eA8hg&Ke1L!dL%ITwV@>p|Gntr zy`R*2y$+YyBne0i-&ugkCy6t`u?k`_%uAZKs`%kzT>T17TEEjjT51+37 z;D<;Pf@2u;;$Q#RTR68WU9w&;VlT8pgBw?6%9|Ngp2iX>c1Acr1My0t!H*jOk`V(tB`x#uy?spaa=vST(-zK zVW)*2bLgsHqA0}w^gsU3zx?{|8b7pnB>$iP?cZj{vh3q#67F`pU;p%{?%&Bis5Db^S#7+L#c!e0qE?Myj!J@TJmt1X#V)v(8{F}H1WEA?bUjOmVBKrCOPg}sO0a5k50|eXPYUN&E46o@9rNz zEbv-S=MOF3$CtzY0O70)H|n0f&2{QI4D9F@joxOn4%fotV|BId&|X!RjqT7~8ZoO2 zm~}mt&ri?&8^CjlW>hzzy%Fn~VcPh>W)bs_)11qW4oonu6ya^bBUgxpZxf?fW&5LoYNNUfxYmALiY;SIqdF4NrNF z+28LbbCfUe+3cr$)|igPR3}w9U1PDVmzV6)`CK*k<&ngBa!q|w$OWI^*yR%D|Xls1ma>Ou1&LfZ0i*&mlkZwW)VxK|Iy zGP36`?ezh=pOI|0VVD;h+jp^p`l)zzwVxztUfQbckGPuI+xzin_UAc!H9hZn$%f-6 zPX5c?T*iHiX@lnR>EL3w+uh$kTrL5>*oP@-oG4B4Bp)9%uee0ee8MMx=NL2vZCud2u-$ILXEg=Q zSN(gH$5kcspn2tljEm_k7R&EJ^FC*67Bruz3}C$W=jS|5Zj3yppn2H&L(iAC+h09s zzF0JbgDXMvS?B&tH?>Pto_H5DpESOCIh7u1y++4=zkPgsuG9-E2hC@(=?niY(z++w zuq+Q?5i`BYTbus>IR`JCROxxo2b2Jv_RUY8RQ=yJRYTqFwvP{wf5_*o@M#H}!$oxW zq=!bG%I_9q7VE~9;!+M^skrJP4C%vtx-C!`em|~i^->wqY}Tu{!!#8G2I*gquPhEo z4&4zPLGwXAThP3*V0!r?3SH7ZkD&UDZyU>H)Yl|DKe*G@OAh0=@O8pyvwyx-edJmC zly}>CbF*KsR)6{H@0Br9<=1w*&1}}Z5NJ3S@qxuM);4{fYI(iJ&G`Jn-UvNt%0 zWMp$eK-q>xpm7}E8+TksKwNO&#u-r%MRB89eTWDOvh-F}xo5m{&&iCsdE>^78(UUZ z_xri>-MVBRbS0ywk?|-PKlk|LS ztu(X+yi?1PtA>Rx8XlVKy7hWJNaYNAYzOM1U_?L}o`oHz(I7zsMDDb>u=z8>00rA- z*)-J8jhki{x-2n}xc?_Nvn~ZxN_JxUFIQ)-$QOgg{a_pSPl)D4@|@%eZUL?)_@azB ztOv$2&+AF!RHSg2F;%HvZv-hNn|W^qI94rV@Z%hE)k@FL(O(B`m& zOl_d~HsfMZOhSkghoJ#pmbBXxb|}@S%CH9`5i};Q9NK_EzPmtCcZoM7G&jp@H6}sO z*%(ex0A_YtZ^qrVQa@yhhG_;8S<{q&e_Zt5;Z)QFViw=Pz#tV2X>MRJYEUX63+dqm za}_3IcbvA&;*HI)ZM%h@wj?Qqkyv5QOF5MIg*t&PfH5CV`h-^_fKJvvLz>6JxRK_O zW}Rs3(eo#lX}BR9Q!@#oFdGRhJ~vT*z*gzDTP>X+XguD+P|a@8%sPn4$tpa|_3Jkm z3aT3+MNf#y199d>x?+Mnfl|ep0z#_Hu>!2y-LeadsGiqDnPgAsh*)(hWDuAyEV`r- z1ALZXMoJ>B%pbrM?r1X#{ra#9EPG{^<1p5@8Ay*wNRud=h$J*2k#H+%fXuHaEVjea z>%q#L_k2$Yij-#?e}fC5q7|vYZZ8v!DsdJTk`Bq98%+$P>Ndwl(j2J-iUdM7Ez}bO zP6f9oWKX3C3}`}LZYgIo1onc3PP%;WIRVPHZ0S^|(@92}Q^r61p#cB!)ei;i^LJdr zc(2h=x{4&p^d})pAvwIkCq9+#2ZL%}k#%9kVwhEnHDJ2=J!9ed=tEGr`yWC_O3_!b z&ln%L#p~(sr;<*&(P%~%5AI@WYI5`D88wxO?ovhRwi(->!1n>yqJAT8;?uYZ5_OVt zFBE8&NQ*lfCW69+1i4IP7qa-dbeMsRpCFesA8fOHxKD6#SCvJ2aZA@^GO0*ROjMwT zNQdTRNzn;ZADF~DyK#R|Dz@zr^fC%gll=F-7(HqX3>G^KX>MRJVt8fO#hHl5uaGkb zElLwhV3=9TL?!dd!9u~1=CLqtq|31p(?%L5cGn=)iR3Z7%L?N6VaLeH+EuuTHRD3=`_3WGq=oSnjvf*v?pi5D%WnhFX zm&?sYYXLK1NCOrXfXWYDS$*MLnG|NfQN&ZOivET=|!Zg&wCMlO`@N zka3}&Y^_peZpb6nS&-bO8^wtXI3r!6$B^c+Fy^Frn7Y|dc+31L7b2ZhFols0T*oe! zio6#JSyAgx%}MTOF$EBt&?}_bunvTVgIUoS`PfY=x`_lVP^lFQ9TB}d{e=f9a8Xe; z^tydzlYbbCIO$Qc+fl4(cv&}vjqB&6CAdzhz`mu$=D-Db>j9D>3y+b7Y1{0bTC$+^ zFoC~%P!N(x#}(@Z!JJi!#j@+p&emIPaqUVw5DF1GK6X(o#wrzReiN4}8K5vM=`lB2 zL0yG%CEKnOUJ&NuwJ6-gZ%vw~f(|6u5HLcdh?OXY*ftU*VCP#RHgNF`Qnm)2TVP>5 z%<>{$Yf2AI1_vteIOH;o9BU}&M*_aD@1BqQubA$_=Cf!DRgnou2MKaA0m){i`hDu( zs2il$gac)$uA3~6&|ta1I|T`SS}ZVivnOW4S|nNI+^nb(J=hD?;mF2m^iY)TtB>nYIwU9 zZ-=t~Exk@m=thX94-Rk+>Qr!FUwjCP1!es?r;oDXlLi@nzJZFn#aPJljflgfLVm2rU9Q$N*`#MVs9Auj3Z6#r145tXA+qT;yDhJe3( zN=R*XDbrwFD+x3Qusd8>0GuSHb;h!#(><>Tr-b$^+xJQ$NF;T0R`%ktu3M={44Y?X zoCDWjQUQ;;URQbkz^zU%nS_>}NUNA77&&MaGV$#hD=;~^<20J0y@L-NQ2N1AI=M_7 zhuQ1T&CQeMiRTHF0NnG$vxVAUdNl5sKU=(s)!>QfH3b4)VB^k)pEPlinYds=RY-7W078&a;!94 zU^B3QL!B4L6Nw;Xh*9jNX_l>4t5S>_OpT;991eh@>t_rm#0_7_1Tcq(**kAR1BHis z^h1IS3=HysAI( zdYJhSL-adE)UVQ$6a;sXk{ObfX|kE5z(v(RyJqHu0?KeL|HiROl<4iV&OzG)9i3Ge zhJAY_PgMX@oE3`QzVmO95;n%V1qbcn8>zVi;l+hHv8shyP!_0%L7N3sxX(WcxK9uJ z-r!Z>jl(mGTpL%)E{UM2dI*122O@;2ID_gx;ae6Oc~cyQJ{S{Kl!&JJ>*8I{Yqw#k z?qqbOLGW>?k^I7SI}h*f^DnUcJbQZ@?n}dI{!YA8)QR6;p^=t~e zg(6LL{i<$_oVzzL*xF!7a|451;HTLW!slc0N0c5U?$&oQXwEzq93&~lfUzS$-Q3hj(*vkU8)>O`f{Xb9_p455<+SN~L&k~5;^==fVY`Z}!0 zBj{N+idu*2w4@FcbLEx`RwPS#-XqURR(_BG*W`uAzB07|BnEKnqPu^}&3`C#sER zOW)!t7-i@>4xjTpauyVKq;T+x{GIBYf%1yM4;Y0IYjk6?DQFSun!xO;oS~RP)HE#k z?z4fx77Ig~8yMsQ+W58DK75x`p0a=ShqSOv5$bf3(dm6;b5Tg&=27}7aD#_&J1bi|(JD2!9P$8jC2Aei* z4KhSEjB=T6JJD`|+D4o}m2i0K%c7LneW81UIy5BgM$*(qg@#vA)k)4D`FxT=5X^=j z78*htR^jRK=54W^;qI^cR0TXBpO=s&6p@9&;7F=kY`cEA?j?At!IRrK$_P&^b1^dC za1y8Vq)pRU`MrekBDhReZ?2P7T^QF-JGkmllE};}1j@XHQ=r%lg`Z7@t-%BB!mCy* zaO2}IeKRmvq%fqpfk7_tN%KgbaRnkt^Waz>NwUYClR1>=ECy+wOFnde4ngEjw=-WP z_|@Vp^P~^Kkmj*4Zlt;509tv(<%2@95@{`B1xPdQszLdI$9@gCSfS{G2C@ISY-6yF zhzqrrUaN$RYO@s~?M#NC@+gaQ7I?-+e>(w1n#@})%rS|2a;Y^$kijn^=PMkCJ--#n zTE-p1q|i?y$I_gZ-FAE4Z&bS5G}u(=a>KXo(5#3Sr_)*(FrH@XI4?L^}$akgiLY4WW0$xcK#}~>C(b3Vq&5K&vmZe5Y8DvG7i6sA|}@%Atyg$ z)Y)U8EyZ%BVlmR3X*o+sc5_Z3L)Y@JD3IoK>9Xr|MwN3yRzEWh@xgP(s%wh3mMk}E z+{hapOCN*82r}jG!-S3fH_^Z35mee``5MUl|x|T`;7%fk7@P4E$Nr zOw%dhVWSZmoGZ97vgMZJG{a?#7^Pk8#*x0pUF&8Z1Be)kR#O)V&3PTn6EzP*n#aN- zBF*E5h|+pqI%9^ZHcRI?*NDZh#jWs^yQ#xwwp&^bw=seGjf`>?5xf>#gDJhmQ(Z1= zMV^pgQ?P=GC=3!bWFM@s=2Tdn@_&K_f43uA^lCP}Z2fR_AdshF=EZ!$NG+%-xSO1u zC}7qvsdq3LP^6UQM%uFoyo`$~0fmKvW3!ciu7q74FPfiD1UC}+23{-_TxQOjgcOE( zoa4C7Cd)xuDi+~9tyZhs^`!f_loL-ed<4lF|H+UWRZC+Y<(~>Qm1vu5+g+>@{I|m7 ztJ0H?%sqfwlh>Qy!bErSVuqw1>la=otfTDb-fWqxv~tNZ{|qItVs_Jtw_wlK*83)qpDHvBb-&Ss^-j-%!o zGDoc4bUrGDLJvC~-9E~|z(5T{nj095FOc9X1;g!qS&Fba3M6))KMxJ1g{V}1nM+aD ztU3JEC!Lq_B)|RbZy$N&QN;m~^lRi9EDbU`@+6Nve$QQZ-AF%6!+|5Y`#bLV@fWYX zDEPV0P{6A^ZUO1LbUN*_OB%JPtebUFrkijlg?R91uzFXTse_7DET;o_7?V zXiFcg=?yn0Xn>AuvrKYP3Y1Ld1LFBM#D$;klE3trKeRl;7Yczq zfkIf1tQc%a^0R^Yt|rv^Bz|!MMN4{WvhUClT2jr)wbCf!RHV5~f{su6YEvdaE)?eG z>iJbksjWYMkA9}#!SRwr0=$4)ZR_EWO*!03ypv-t#QFCEF9mK*CwhbJhPrNBY3nce z3-QKE{>&}d=mNJ>C_#0KYJ*{BV#pvcN4xZ2@?Ws3ZYwOTdIg1ne$A5=OVU?y9+d%JMO^dm{|jgS8rs=#3G5f(R< z)m6lvDwB7SD}=PVS;4XGp2vsvM8pXC6O3V36LviIhY1J&U^B;U!v4fV=cX0*N|``m zb;VQ;rBY|?vk(~=EEX8j+`wS05u9kkC|<2r!ZKk>C#L1H%T{t4VPZB5sxM|3;J?+9 z=29ePt9kiDBwHO;403O1wOS{gXh`#Tc;EY9P%0K%Z2KxkBG538OD%~XqbmyJY@4LS zg9|aXk(1~$%Z!3V^tvcOkvFs|YPMRj-bF094lLL_K7t2cM_9D)H~?#!-D!(j>`cxa z>#nQSG91n{V#8TCp*lkeVe!~Z6do?*kRc3dZeWlZ zl6fL0xQc=_mjb8VT8t0MaV%Q(DTHtOce<66=1c{^{BZhjDi&!@$`+ndq4#*`A@5X| z(=P^dzGdeqP@+^+s1;!fu2YQbuK!nyQ>z7q^IH{Ze%^UU7lv;io+LI7Pc5}WePt4v zNn}unCWKbJs9jAd!kzu(c?zLrdIXaY7Nb2?JXo9I>M`Digf!t{+@U0xnF`y!)$Ouh zD`kfnY+3Pqd31-r zD=M;?P*kba#HSjYjTM4dbT*=JPX#)8FM%;M+t+kT?T&n}Lg6ouGmZJX=ck3}X)ZDG zM<3*b6Aw!-*J~uG0`PT4V+H@JctwmDLr)p$l!fJO{h1T@xmrTdPSkWMM5+I z=Y-E}E>JAB!u1Uq?*39t40%Zj40YV0IRqZgZCHK?f8wDod68^laH5h^5S67goHQ^n z$QFh)H!#QyuH(QWCGXLTJdx4zGT%iqtdN=Svg|6nGo~6_Icd)4;Id+p<`_sl@51RT zst!I#*PaDl6U`T49@%QmzpUtDth?#UU%nJ(gnnfXMyYRAr1?4L9>xDUNIJ*VdX-8U z9?slcV=+po46=i_bjcKSmoqbR$xqm~D&;b)QJc-Sp9aI~%k-?c{5uc7i-yxe!RF@b zVG?g<4N)rTbmp3%fPkE2-SA|}Ww+62;VLw`&9U@@Wg5s9Wpo9>b!>&+kW~Coh4Su# z%4L>H4lb1IRTTPkLB2W;(9e9{mv|4`><*;Fj8!Qi`319uOs00MV2L&tgQ8%3?*;t; zM0$f{X92eps~@15MjO6`S0Cv2d!3xyujb=QoU;e+YqB;`hn}ky^nbS|CPM95g5{(H z3Gl6{smXeLCv<}?4A4BMCTmZw-x#-{xh{;PG;y8pY2#*>6+kgVEljL6Q7zk!vuV@j zFwz|Q2`d9SyANm)a7QRy$fHHDG@IQ{r^(tcd(P1j8|a3VEVRzRz+envNOJ>&3_uw; zN%SGzqetmYkzco~m%(ZzQ-Z)Urq|=8h@r-pgX6=M=D2jwQ6p?^r1`z~e!~jM!DYp_ zXA#1*$)xYlLv-y~NbEzpB)+EUDa|h?m3j|t0k?9cxj>p*oC1g>NYZ&fBkWwK74A8} z=taBKh)F^PG`yLQ@LrIJhED}4Om!E=BW zI!qNvMkg4UP`hA4zku1a4`JNbCwYTN7E340G-xPM7{V$#v1EZVL=QEaP3afO{vvVh zh}Bg6hK3vBMT~*4+N};X7K+9|fv`vV!9gW21kJ<)XBJ~k1{Tcy18}UdHKPQC4xxy> ziGGWwS4=<0-2fn^szm~Pykd$`gPw`P2YJ3KO5Y>R+i41v5^AFrX)vf%;Lqm?2-Bwz zhRaauv+v*1jZUm0Krx=?-OaKNut*D^*!hIh%!_Ek6PJgL8=R2_XzEf@>}5)CpL&~; z4Q;#FXf%9YJAHB#fAq(>aj_GgeK&KTvB;d` z9T~U#Vv)Q(F9Ds3;Wci%)s8Ei#N>6}IH-&%DHGDWl4$y=sY$3O38MbDNI*S-@o{dh zu3+!iWh$-8>)#a*v1OAJ@ zgu!=l?#CM#7{rDl%?%7P08``+yFf~g35a(xOgSEzgeq77QrR$tOGouB3nvFGNmr|t zAk=rOBF!Ir{GPk-{<=ark)AY%S9Zw3x}N4?&@YCNM#jN-L!$N!X--fJk<69IN$e@O<5Dzb(}2&{E=2v9X-;$_dVZ7B`Smp0fQ(`2PfwuFwv z)Ksm}XbMGwauzXK#Ow9OImj0kR|WD zSH`8%oGS9ZNH2_5^`g@^`Wx7o0=ma#;M8&=QXG`p_@3n?q>WPC_9&)IQY}E;Z(u4{ zN#zd%?xpp&OBG*%i&8|3V(PA4J-o8(29pp9pcop=Nf>=j>EOkKjHjf9FBJ=F*>^Ji zzF#D2!cYKcSsRgZ%{*KwaA|rM)^KmukED@qMK772noB(|l7`pN?JGMyNjHnuLn=wQ z0yfl~@Nk*LfMx~%o0*yA2U)UMA#wT$GJGZm%6dw;7vfRGUix93h4{d1!6`*bH1G{a z)_K+~z8>F?!NmiUDcf3G$oOO1Wg0(v#*gM3d%Hz|zIi zeq}r-i`GnL|yQyRH-Tm)Gyo zivzQ!WF2NC)0z}RqIDIu~9&Cd|nnz{{#+fb4)RM*6dx6;Gp)s;&yiwnD&Y+*=q1B2`V!}rwW#9Uoe4(b5cW3V=!w@$;=WkHds4ZUY`F9&(72pwh4*%0JcKX93FM0?0Qy#(zx@_ZE@MNq%6i3Oq!GLie~06G>$AOg2V*` zGyOVt$qU!U4is4Pr?=5hGr<;D8iY;ac^hJOBZ+d;C5DX_2Z{Z);YluCI=yN03@p5% z|HOW{oneHKkNG{A64aLYJa|xf+_FP!*N`t-$m93)sR4bVJ>}|9nDR@@!#^Cxjh0}+ zZ+E*LBn#qkE5UJxIk%L{^+qGUS2E+#U}4?NE<-8VAi#Z%%w{bT)k?WoD$dNz6$-Iw zEFnDu{9-E|KS;kHnKcd`JG{eSeS_LHQLR8dS9peuQhb1s4Y~m+Vm%*pxlr3Ny`IQ4 zmCG*M6Vt0FVt^OxHZ7e^7kJc^p&I$(jJd-67+7nt*+V;9AJ5C=ZTsOmT zPfh)Jnkro`J7_}Pw4w@+Hf}bhWYj*n3upABns6_?6t=RUiH9|;!pNqFg({T_r98=_GaMAj^RHs{=M_wBuE;OV@&kL8ehge# zu#^;VbsZZq#kA88)Jw3_AUmx$Iaz~#CT^erOVUs%meGzitKDC?FSIL6qGK~KFh~qT znj08o4;ZIwwJOYO6Uf;p4-%hjN0Diepc8M-=0J`k&7^1BMKq9YO4gQmIB7+5+?t&+{w4kI?`dPL# zlTb;0Ez&Dh{bk`GXXCt)=qR&e`Bw}}T&DT;sma>x++4fer7(*w>2|`OPs)5~gM5!2 z{~6MjN!W6WT&iJ3huo#sMXS{^{0qZVv_zU^P;}BLF>P`M#w6IVWK3_g0&juRha{*) zj>C$AEK=OB$^q@(#kFgGPQGygT?h0xs2q$9p?UJb@6zK3LcfTfO_3nCS}A*0=!Q^E z2;;4!^C&*=q5|yEq0tHxY1(!x;Av2Hk;@KE%xGa7nSb(p3H7^8c>63Uu-!q=y;1uq zr%eBA>BUk6!DOK$ccsq+1Fy3fckH@0QJMbN;Xi4(Mlg|*&dK@xEgHdbIMdCos2L3- zZByxY$oTj_K4&9xr`aTQ)kONKPOVmf8-kGz9#^^ScCq(RJJBUhc8Xx368y#<#ZW4C z8dz1d3T-?<=f$yI(h1FVF=Oz(UbmSdO2CB)8&m5SBKM8-yi&dC>B)AhT~9Px!KB4s zFQf;B0;r=*3=9l1hat@k3~~WYg%>JlF)s4c5N(B|Igy?)Jqq$%qhYI`eDc1#?!Hkm zKQp9xT*&NM`b~ydPFy1ul5tf!pzL|sYPgVV5LKd)aV^oOWl{XBq>fXXtW9j5nOoFJ z8u^vHP9DW-wSq<~BQ=yDs;(WS`6W!&s&G>?vvZMsKH1Tjpp%xv!unY*yY;%t zhImn61UY*Rf+*n@j=thAmZL(NQbDaob8U~DACjp`nWsX@9!-N4K)ISTB!;$l(9EHT ziAIwRkw^qGXND)y% zE}HpGL8YKTH?%&Ft{!j;(^IvX*}BHTUZq^_#fhIw0grAWsttOz+61(MWR~;>1_oOI z3~6p)kPDJYW)>VInf0e-2Os>Z6}zrVb3)I9>BvONQY~4sv{I=k4tVUb`|nuyL&X7W zRv)!|`P0-_dGygo)Ca&N9{bz`y<|DO9Oi>BQ?GcQ z)9cmLS9$!gyVVD*UVYT|+pC^Ayi<6y$^**l*8T9oKi{P|=Ex&XQ5R$5#tmqToE$4x zu6*dBP;$R8fW?GGq0{c0Z~n6XW_^%PC52iO!uk!8B2rCDozhKpEedFbn_+qA!g)zl zR(eu_EqRQRc{Hqi8qMY+rBS4saf3-5xWg7hDIGV|iNpiM6plmovotwq0wQGdk>w z0E|lR^?c`0_;9i|F*7@)-zS+Tv&`&ht>|F+TCG;Py>3cp45+}>N@e4wnMJofZ1p|6 zOVHX<7M_yv`Z3^xppf2zXyMVwwUD6&&1eAc!f~^YH!lvjl|`|O!2C2=-ZrgpA~a91 zf@60qz~w5{3QRoso+?(@N-|`U4>K#|k;+>ilamvjcBheZD1!ia#kE=$ZrShu;UUT!|DO5`V?vrk{e)U7 zzRgn6ft4z^VAhFHfn#8aLK z&)R~;DZ!8v@;wj8?M<9Sw`za6X^?QP% z7L9Jxt}ug2bF4YKF2Fv7x1YE$gRp~68k40F1MYodqFS%lJDnbN>|vr;Xeyeb;6cm` z)2`|~R=?AuZI52JC%ur6>QJw%v~;Q&DNOl3N5QS|36`yp8XgI9rKc-$l2VqrE^zM= zj7%&8G3u|#_c@m7w&H|zHnmP!3Veg}!rsVOmU&HdxDr+y==sp@=x0-m3-)Bt21@wQ zK~*xZG#5HC>8Zku2g3lD4(576gYg1i-*Cs5O+h1zk!xC%O2vgXuh0rm7cH&f(B;PB zD{<MSUCHORY zl(MYRXl1f07!4*SDliqZ0t)}iSDd|S)gft4I2zJ?-MX8;^re68hI=ODN1F3U zBhaQec}8_C3?k)%4avvtkm!*bIJ?9W8C zVg@qD^ z2)ODf(I>=``0H5BJ1XKCU?my$4Zht)g1wO_e}g`0zHzg3ZNDHQeHba=IVcQdiJ(cp zb`85b^3Y)Gc9|&_(nf`nZMR$Pw4Ag?2`%l{J^V$CzDIgDvib#UDNQ^EA9_ocOu?+9 zUJrHt88_H=ak5sMotqn#N-EE_9M%vsq@#?z+vE z#Pfkm4L#H}%4K-ZHoWu%xqpO)W|xW%8WZ=rJ?UH12l>l48_h7YAPTg?tE-Y*gkkty zFz@D0x0|1^Cb5H7u(M_DqQW*#^rtbH1lSVZh_LMqRTrk9F!7K+OjLCgmn~beV#Q9| zY%{&nPTRxJlamv)pOh_NdI0t3-uwRer7wLqC`w@S2iI+f7|_>hRd~qy?~ybLv|B^p zij@Zy9?L|n3SU%o4*Dn5*^00kX+E`S)67VG#$mOSJ!*n^7w1QQ(Ij z>ny~JP#*<#Cf5eeU(2xN1_rspkmd#knW5AVrZ19iS1nA?2W5WOU;Cv2?}-UFa^i{S zu2~#P^B-S(-Nhublg_-ypES4T(R%xWyAjAMq&dE2v)=;orRr!gj^`PXjzz`Aueg;COB zkS=Bt$Y-R>C*ecV7D-P_ek07~pwml}5bW8{e)=h=93NR$5>1D#01Bv6>tQ)(XX_vR z=(TsO zQhFGR{OjVa$f`WkBQv`_oJO~EmP1Q>`jNr5(BI`jCTq<-9P!rL2V~o)^hw>fnN&X8 z0UO>L-MZNs(^+@BJqVkQJFb!(mtk-v5ooGjSRO+_qk2h0{OCmsoH8h7yYtAJbkls6BqIjK{2%ny2l zKXb7C8(x{E{{BMp|A9efq=`t6T>ey%9;R3+tKm4m3orpYb?)}=Ack)R?NVS}S`qd5 zGUk+h8h^D>0hNCVxA@NA?5~rCW$l>KRLy8|GnwO~Iz&07I}Hy}L4YRaRttMKknh<~ z5>3|wIUhkAEvR5)FGeZB`La zR&w4>xp-g%@53o?;`G%4)}}yLeZ+*R@}NdF5M8vL<92QymFg5 zhSoyL=&$}PWu)UN=<$@sq2fI32vCO{KNhnxP97ro_NvZ51!kSm*1g@Y5PKXptY3y` zoOTYu`$if89-peZ_@m?ZGlC|i)HC&M?+^9=*&n&{6z)WWM97A{CTvpi ze4phtHF=_wN_B?W)0<-l#6UV*^#Qt4j=o2YYrj2<8qEzcI>V&g>qT>WdqsW--JNNL z)%a7Hw27Q!J2~8ghsbb8@-io{KXhJ{PO^fp9Op&-cAGW1QkWxxmgfo_ivdMn)-iQm z!WgM3sun?&s_CP@n~#=_GgiNYvHq${f<`j|39M0|jS*3eWMaxKM%I!?#-V~ZKe!EN zX&Wd4@gO90Vwdd%QpMn0axmS0#{}i`7?_jgaU85lx#&!RK`Fmb9&BW2Ry^_ZX*iea za~_2q10UvmnKoS$t0|i$6m9%>JuKTi%f@%-MCZBprhsF!C~jJ1Z*{2pCC&lG$DG%- zjkAv)lup;9`Xe_nxS=6Im$ko*Is1ZSKiYE+HJLshq61-%5Ac8#U#bGpB^8Z_=Fo_` zaOqyu_Lt9i;`QJ=`6Ivb8Ha|Wj&HoqK+D-$7~9$~8)-0#Of5w}`7if>i8wHyrkob3 zpwr-DF(_F1IP%PKU&vTEZNgc`h{kPt+jcF<@fpTYuu4j1dKt#$9#C0=oWm;>Qy#)9 zl`9;Y(P(J!XK_x8Gn?e3=1_}NS8iU+Fbqn%Jr5ybq4LhnH;%#*F4X9C>kI&Q>Tv(b z5|u=F+PB2L$*Liy?WH9_uF%_^dWHBh{8+_Bu*^G4wvj{Gd&NI%+9d7umlO7dqsnu> z$w&a-XLIz>eisF>-O&%Whh3a+ix#>wT1fB1RI{YaHGH+5$;@P%^!;$1H^;@8$+YR$ z2NPXHzD3g7d_?hozMu5d>rXcQ)tYKyx5k7C{~Rkhlt_Xm57?+L=pO0WbbS)k22@4}=DY`_31t4n0$3oGJ*66^ zjgDa}mZNAG5Kb5pj+)<~tHXkJgaS2|5~-(8zN7MAc(Z}Bqv=aZ_Gnn1Y>0_iO+~0; z--#E)f~?6lU^YG|!C!D(A!uyRr6sIph2i+sJYiZMqn)2C*jalE-qri@41yODn;he4 ze4B<3$LjpiRVbcBxQ&+lP6{t0@HcCkY<)?ADKj#@jAk^}{!@%Kj*RzACKpC19Nh2i zLl{kbtF7A|8OEpP9CQ_x#-{eY!bCmq(|*yfD;y^~I9-oKvh>+r%EF)%iXgGZfU=V5 zc~ncH3}KbK+_GG|kRFTqJwZ6VfZRW#St`C?As|z$!Iv=}a3XxX?pQkuS&r}dXH)G( z40Jl|&DWCn2uXD?@~`>tF!z)SaTLn(jr7&?hJ4QlWTyM`I_RZmg1H0RGK6`Bb#lEEU3lyK{lu$8U)=pTdF>CNxQ#~uede3=Rn{* z@+*2bl0+iPWTfX+^5#>!Wn)D8LrAuDeN}yJut#+sionzvnUhM+jB#xaUkyp2-|{?& zBAjbzZiLw~#n{}6porzObXAskL7Cg7d)z+B^VC7*mgnt;K(J)Y7`9(ELRxlp&z-sX z!Hg?G>2r{lJpt7R=rjKt3A%1p(D9{Uk0iXnvP%Y);~jMrwbC1z42iTM)yx?)=1R&V zD&$drUj$lr|8-DbMDDy*L48-M#Cz1p=KRhk!^&D?+T7&j-oB$1fJ(rM`Wc?&vv$yPy^-7AedA$p-^x?18sn5^HEs9>}yI< zro7+Pq02a0dW}lMY+PLpyxiwqW)*=r?kw1V1#jpyI(FGm=X40~gp92wET@EAzI1&hhgjZ|_i%r78vG zxSHPmb8Mth9wQ*8U?(zsY_+K5>}cFzP9Yf|;SSj06RYIc8&e$Joh;)5$1R@xCpEfP z@hLP?bl=Jj8YSbC_S1pdgaN5AYI@>+&TBu?&qX~Ev`<2Yj`fg!e0%umlZx>B7SoBa zIOu*;fQeO^)cnefnN9M9RYxe&=$$E|V z{4m7L)D;-i;+o`BnsMR=iu!piJ>tBf5uIw&1^F5!UZLz4{SAD*!c$Wb^m>BB`D}H= zunri8rzsFz`#|Y#9=3>GSSO()8e-bZMM7k>UT2Eb1Am4I1?MC~7=%QU^=^aF!2fvK zAuq4GPy3o0jL#U}gF;I#G|p~iqd}7?s%IJ7L5#yQ+t&b=wuyex#&DbIfP0P$(cB=& z@b6&Yf9w}IKXXYjHE7(WVm>60gL3?5Bb;V_Px|m0Ix)VQ*c*WoZ89Qof&yb^b$d=c zIRar6RnYaL=32AqLRl+_#)rWeDl6tYL z8Kiwv#tbx(e8BJ8=vpPsPYAGfgnFS+v7=nlDMm?PdJg(R81-r7fY>DNOu`5%xOBMN z$|b!cklxz49V7n(`WCkUjE{tI8}w1hGT|fD4R;@EWt8@E*z}HCIAg01q;mt`(-nNd z3ONBA!#Q~_dYn3H!V=Z8By+Pg`F3R&&q^6Ky3=hf^C@g<1rUv+b%YAvg7}~5&Sk5F z4KeB^myDtduf+`gdz8t^;~-!h99X_JPJr_JQ3=k&ZLu*AC%RDq`b)|g>ki1o7-^i@ zLXF^+0YK<{9A@|jMk}Gim|mmmw^h4q7_agPsw)x^}4VKDSlrwm2Q34}6}LN!jqaNgclZWD1#YX)sV-k;14| z-8o|G^TK=g8AZ@*rC82aiLmyB`9<)drA8xXcU0e9BX)MZo)H99wR+n*yH{rW5%9bz z__}ql@pK+q=>r=e-4|SPrc->~ij_ss@-AaOgHnpj2w7CwcIve`cRSI;lHkn*2&R%r ztz2@3nh*-6fFBDhp3Tbqdq0V?{O5(v)miX$#rS~%dFg*)`?sjUJv3=T_70*0Ep{o}#|Zn=x=?-h zWU}!a2tI2tJS>I5-c2=*V|xq7q!7AUkQ79e6ryDO(6|LhIzJTOpSE4(G$=I0EJPB} z+F$?-ZJ)!sv|gw(EUOfJjZa`$YKZ;`J;vtQ%o!)Q7ko8a7x8L38aox^LVcR?}?5fhHNr- zOB51&YBP9Vvyx*fwuhTM{q_%l72;1CLG=={{ns*8UD|mgB~y6Y!l0WDfG6jSD_XmS zCZt+#WQz1b&d0q*=P_7`yufL`4wkeVz<&;8Wt~}Q_}eGdQYvWPm~?_|JWt|K7z8hs zD1{(rmCzB-dM0?wk-Jwo7ggsptlH7z1!tX9tJGYy?Un(zBW<02XU%>&Y%=#pw1`2n1gcWYaj8PVBj*|M zAk#DH*-uh*T~eJ#|LgxMhf4(Z0}x`Q@O12!@-CD~E|+#5R-G54vCBC&H{`uMWDdk% zo1iuFf;65PEZNz`hs*n8Q1=sMic8GQPdv}O<9yiADHg`1^C-p^qf%<2Crf6hr6(Jk z?N;q2^z2PV&!VA3KsSE&CI;?|3xw!66jwxT%JF(*u~CC6;ph2uXp6Y5x-NORtbdB> zz7(meP@)(9SlaZtPm9}!7^zmNQs=b!i&zv)Lf#^nu;iM*PxDNg@q;~4tMM2(MCe#b zjR1XjzeCcsF3HOwM4Y| z=Y#W>Mcvdv(ZTrXbT~$Kze%9oATThJ$1}_Wn^Y*}_(xe8r30%(m*p^wC;2t1e|X*# zdsY*!Q5D#oRCRIRM2*_*Pg({DPnsBS2D}q22jtaCE2LOw@K!DS3hsz}%&NjV6w&mB z%GoTMMf;+uS?;mUUTOV#x#CfZ(4-0sj)nVyW_cwJ7(yrh7m+`5j3i>vuh zTZ+qOBuAPr<){_m^7bN`Da>SA5Xx+fauQ*}6|f7j z&**-l7(YX2*!BY`3_g~udeI|8HtggANaFUZ&`cQT$jAHiZzF!VzCLpaLKMw+ZKH*D z-A_y8;IaYb^$2~QPfX-QNXOmtIq`rt6hJ)^>hZ|nfM}Wv@!*fx1VAV>`Y^7tYWjsr zjTEQ^l8;$k@J_RY^wFm;XVV%8-m!=c=l#ocy{M^V{5w%xokt}4V$l||n~D3x#ZcG@ z3fG%bH-NcIVMA0nKtx$6iF4BIz#meEj=BWn6|q(B72{Z}pEUxWdn2$LVk8j2Y@73~ zmY75}h;Yp#bFgt1^S>77aI>}6CoH~TOq%UBp&MpLR-`7mi622WaiKD1pMR47!a`6A zVJw@5h6dbO)R_so(~kG0Ocg!_Br}W&!yk5@y%@*%0YaB2$zXDd1gIrJI&25GKpT@y z=H6^LDi;~lQ$&SEMaIhYhgyx!>r<0~siEfO1`7xkGR(qt-pjEq>)5Mg2G z^CLC!@%y_fd6#dSn`$FqU=JhVFc~i__0K7-T2J9inTap34i-hpI1Q_Q8`;Ykg-3^7 z>9Sw6Xg=YQwXk1!xq&hpansY>>;VrQ+mPk2bJj!qL6Sy}mu_VP8qmfR)1-hdO)Olm z$KHB`MWaFvGjd@}*1M;`t5*c&^8n}havx=XLcC~8{Qj^zVP5&6E80|!XWtVvc?=1v zx#+m(RN3HFv9Y_iG?ns{O0wTb6jF&;2KhqiZ_Zgit;+6G0KJG`XNZPhZ+4_9jaf`m zYew;kb<=66V0&@Yb<)-6Qi1Suv zEqAUA*~J7nC0;jyZFv#X%apC@XoC$dB#XyyH)C9HI~lQyAJ__@o%5P6qf436xHzn1 zOm^i+UjmsR{*zs!S*-F2YS%UXESodHz~qi+8dpm|M8=;k=dd>y27T<7XwVj~gQ6($ z@Oy=!M)=s2fSlUG(s*CRPk|E|w@>Mom6cMCM<5t8!BE0$`8%89{ews^Kk-GLZo&8Iw=?uDp@ldCC(^KAIGqX~)7?#f(B^6kpWd(9e&B z>ut3v8!YC`s(<*cASwwGPyaBKJTED&Bh(6kBRhMakJdOyU&<;fE`d6Zv=;C)*a(Cf zAaK8A48@npe;;%5ERd3Oq$6}^38z4&B}7*^21#of!y|te#2b9(M*hkD!^ynFXqPE18Vaav ziVul#AQKhD6Hg&X64QU8_cHU4{jv}>nu_09(sEm)$Yo$xa@^x99}@tFB|lZa6hQtI zG@gTgIQd2!lfF>GWcCdxMbLapf1L0gFCfF66+7_&-C9Tt+tyI2EUD|^O~Iz??f0|( zmekE3+^bu~v4EiIf8ihu|CPxsabv$%j*csS(B`|F0K?eH#%(*CtBg`Ahb8mpAc{TU z24W*=(Mkn|Wnx;Z{CqtiJX4w_eJKioVl63_KC*QyhFE$mk*7CzJDkGR3CCtX7WF#4 z=Fb&86G%XS?dc7JT=_{c7XBs@@r{ zMb+w~Hzd2HD{LI#d0>#0P|lT-(W#W9gXq~&YzZT<=G#UH z4qUo&czzPE8qdS6pR#HNmfN*ZJr=ZSl%MR$Vh%$J%LX+4F-K0LM;-z>c>*Anz6=NT zl`x9l*CRE7)Pe^`HnIw3=6CF%AtTbJyn?_}v*V=z6Qkri+#8_RiS0%3Eeu2cn??z) zvPHxu_{3;dGlHi?@jpb>Qh?`4%?r(93Z5T4Q>gt|g1hS*?z?>ta##-jnnvD1Ij3AE z88NI8NrfrrN$Km^gMd7q2@u@5m9c3t%>|erA5UdUf)SdWm(xX-uG4~B>_@EJ1nu|7D+|Q z+3ztLhj%lrWI%|}QLiRXaaj;=sa5n(sA3o7>CaAgdXgAZm@6Stfy2K-Ni?NA<^Niq z@|E3{9V6aq^Rqm7choaH2Jq8Wn$yo5A$)j`Y48+Q6m8gR=*OHuq0J`NZvtj5#tDYi zieWHDN(A5j?5Hd?#Cbawt~ylmjkC3KJ7pjh2)rP-BVP+dSi=#d0_eCxH<@I?F30hC ziU&cbxR#QqVmS`;OrN81t_}IF>xAyjo`1{vvC385yuI_BPps`Aa*){EhEce1$g=g_ zdx<>=oXC`O!jp7P-o(J3u2)&YB|NhV4nRVuT^X~=`ba`NNem8=?5TjA4QlInC5dU> zt>?h-ntlL~z=3f<>2|%gtd2cz+-D{(bG4T+sT-52RTYg-&?9={oKp~`RzS?gH}~lP z@xFej#0@hT`ISYSCE5;P@?pC#r+22XzKB$r0Fp#h&|tR;o^RBk%^SNXlD+ z@b#lj-rQ?7@$PcJsr;ytF5)w4vRS86hUuhaSl$a*(}0qQ7%YV-xPj&)k!EuI*W5Tw z^U}||slUKUItsphA4|Z;#breNCo^E>5seUu{1$kc=km$SG=l2$a9m#$RMB_3{;4al zvP9o)IugsJf(Lwlq$oskcG=qGzIT-uEkH<)Iaq+9*Bu4c8QlZ>gwk?9VVU=*Aw|$Z zL1}PM&zx7L;;|Qooak|AlYf7JwFschfO~O>=Ca^r=MI9GS6pD zL-|(r)ha>0b4je&8buBCP&43AA|_$Gn*=-8WUln5vhp=~pGOh)#`*gRkLuH%KI3Rd z2nl+Y5GSvpKFv@`rtqlssy{-k0$bi+Aye&Ka-j;V4m$>^Q!VXXWR(3(r0y<{Ob!YE&)}KNM-J ziO!X?tFr*}tzdh;Fq5+Oy9k^*&HVt%sV1Te@^4z@sw0Y3hTk6#C0M?lULN!_iL)1R zN5OUYRDN%_<2t7l8$-@YE$;^Z{ih@qhtV#-VxI3Aqd!b7b*9%;%ZDplSlqg)KlvTP zPdF3==-TYXDcZFMNI8yNCk-NNMmOIwP_z>c3FAfnl6+keb&0|=C3LvdI+o$P+U)>y z?-cD8>$xIIHQ)xtU1pzxf!p5l<=oT4glz&`_eOG%8Q!m2K@d^MyHrX#KBrGB>smEN zPF!5dzy#L)Sgcm1&)^&{t--|+N}-P;LNH>rw@qY_U22%j0BBHvFAch|Fh%pbIkxG% zOLst>HQb4azI}*xt#aEM5--^t;rD{|vCO7|YQ%EsCK|32BQw*|iU9i44cJPhVcIV# zv$x63mb&Q9y`~()_hn^kI(7<<+Qy62^ivXJ$dOY;waYfcijd;9@s{#@pTJ@>=*ms{ zx5EOI*4-HnaJBwxf<1~9s8^Me_bXaFhJCPoAn#Y36bd|uSjHx?3&DlB@Tu$L+rgj6xV<3kY`1;IPMyZzJAF0<#Z8O54vwW!3?Y*=BN{V9r{3 zQ!=#;tuj1V@~+8X98%vwH^U)9I7jx4^EGa)SMShJ;H700Oih>2d{bCg^aQbxi>lL% zKSMY0mKrEB1Qka#4v<5Af|6oT)dll8;sxp4O)?o*xLFI-5Ik;(03?fQJD|mvUrYXY zs;s?;?~r$d&<`wYmwAv>QaiwyQEaJuRU%TX&AF3k$c?Y8tYKhS1nlfa4*V4g4t@b{ zw2e|>=9g84wrw9TN9`oh@^dLLE9z1{$y6^nZv>+FP<>!E1Bm&2y_(uoe{3QVaB||K z1zt_?R^%@gr!s~nlup`#4WzTWp2#|6En_zs%E1Q?}?Gzh#jpn$lsZ72a9T5QIl|ZWXh~ zVq*at#n~3B+QPF;J0GDcSVfiB!T2P}>rGY!$Kh%vPo!1Hy65$9nCb3JkqiTtnhYK0 z-+}GZP4k)LNrcYQ_4flDmS2FRukdmF6}N3dD7Tu?rgpUlsO~&tL~&94C<-_Bq~l6M zG>fq!5=fKcb%Zm&NbF&D#T3hqZ?5}yFxlM1JbEQN4B4m5OmKb->J2bJNZY`x`o}ESa}N-^zss|ewcTH!4NYh zbk6M*O(7nROMjqFJ7vgSvyTpsSS;i{E2ZX<@AVsrm*wIQV;Vu+&)8@{c{=4*vL1$G zD}cr4(E6#++SYU?{iT2{qN1mK-@ z^di)o;<39JhlLs?VasJzM~t2_Fzhdm6V75W;taTayu0M?0yF=N z|5?$UaB0V1Uh%~iZW>Gy*2q3jD|r%iAD(XtxZ7F~j};413NGeBbUk!jRG>7UR1<)$ zU|?CS9o$#L@e^~3o+N~9$|-@BiYUZmG1Wq9P-!V(ChDjRUzU{1HoF0OpRdIM6+{XH z?eHqe8jPK7$;j(T7u5VW_r{od-gdq`m1)DqcHlGb>1EQ}!-l?h!fnW79X%GKKRTl$ zSpL<*?=KWmjI_2kEkTk1rW9{-J~(CPCFcl=zJVLmEJup*gH$TvHz%T%Z9=6l2KOU& zUKR7o2poo=5o1-&_Y%7cd8stnzZV{DVJRpmEF9o>(tcI8$g%BFd`bUiNlX_`_BYGM zyru&?4G=o=iAu=at7>OD1xDL@k!G9?XTS?yNV!#M>I?jgnt6r#DCNSA;HvpWiO*97 z2{nu#BpAnlIQNWkD3msE;rfjWqi_>$>28$Y3cO*w6|O@(yoM%N)vA>dMM@Pu9LbFh zHq(@_cdgfxU&1!>&`axR>ffB^`+k%(&ug;GGp1Om6zX~1^*Df}GTUf1kxh3i3vI8tv;JT4Jd+&n;%fTXsUJ76?L<5mcY4-?vLTX1g+*13K)NW6@LEPse zB(5K2-KwMOd>ki<`}PlXTSsS28+!jRm4hrbvOGgv@^O2<0eKcfg#7VO0v|0{N+OJc zDI(txi(iYTb<$!ASR9*oUC9Z664BHK$GdyJ zaT?AUrf@)PL;C|Y%}>_(7~YkXYPG}GA;QE+{!#F^;uV($P=9}c95?%!`ojg+pC7^F zFCx&5X>X+Ll;>BkIrvG7H|4Z;|;;pl_=V_fo z&zV+b+UQlcEX5&$#-+-7*(9OKY_4~f^8&%fW3k3js>CM+&EKP^l~mxmb|TD(>P?|5h~;fdcNopWxP~NQCeDQx90G{BNKK%owrX|<)vkoLp}rY z9d}pj8v_Q$e5HIg8F<->1K`~+m<#M=cA=#>E?I9|%uL7PSj%wVJ$e=uRT4tn7c^VW z{I&LoUZ?xeM|fA#Fk+ROoZj!5m~)Vx2U^bLb-L1R+s_oPonNUt$d5M$7a64J|6^M}a>P(dq6!Y8Nvlc-NyYAnlmS-zIPFM* zj5R;K`U+Vl5RY+C806X{)($okGthrISA|3IhE(AlgwQR($#(@`dh$tY$7x#jlzxo`*ln$ z6&1Hp&rh4imA3QN9au@nkp%*yX3C?zKMAA4uBnK4@ZO}6s=NF>9Mibyf&=Z39NJv) zG)=$B(F`5;C>9ll;sDf1hj=jfHw5+9ozDW^Se!W`LJvq<`A2TCaQI^7^rad(xM))_3 zKp}kPE=O1%R#e(gRC72ikP)h(_Vc&5(DC)R0q?l+FFFOEFHAOjGBW9U`J{_%wa2h;TQuaar&~+DkxyvN%QmS z*bd}48SxCUdvSdm@P|X?iv#;hxZD%!x*Zr6=P}2ga)U0F0UCjd50)5Mno$$uUxz6I zAZUi2Xe9&UUOwwmRf|SSfR)ac5=n!2KvwWS=Bb$$iU2kv3pG~N~1 zJCctZCKIUt5t^fKi(bPfN2Aq9fB@+1*P=^m;Q=yGvl2E40s=NIKjDIDv*!Kg$A*DPCHS%)!18Q3m_NP<~ z;WvH*d__Y1o)Nj0EPeqh007zJ{!M;m{(fEG-E~s=lCm!6Q)P31#FN}#c7cl8!^HF} z?DUV--k92_VP4jx(`a|M-+wLq*rx`a zN$H~Uo#57@gtas3D?Q362H<%Qe)0yQgxL4It~TQQ_u)VQOX0-Z*RNmwm1~$~#WBJt zECOhwgJZ{vV&Ks@gCl+%e)~=*T~^Xz5aakR(ak!0mFQh_I!1 zM_L5b*PA@RJ_0{@BHN@5rVZ#yUUl`_n-y*l!A6P*(cJcC-Y(JHYncY-;%?96+~`Vm z2b$q!%dcOxhI!l=c^4`TODsT+nS9DXg+LPbPuD-=8&WV4YV3e|fzO zoJ^3Ql0=r-x6PG$Ymr493V|~1DzBFnk`=?Dz3>{FB8u_1?{1OYqM;GFfqEZ-xG3zH z(mGpTh1P^Y;h`sgzd1Mq&&giD+7`9M9De1eg$a4@Bx;vlNw=-N7LQNr*BvPO_ zbZPi1uM`*9Q;O#65tU#r=7ETX*+aXl!QnCcG$wTe?vXa%4!jQ+yIL6f9JLSgjq6M< zqBSq{^Vo|KX>qIKRdRN=+Pym+cI>nye@_SNQMunmzrSO@X-md$`yBpaO&O3isW%(X z)^FVs0W!DxybU%?fZb;KbT8sLkeh;t6UE>VO2Xmm@eFGNga2039uhc&A8od+WCxa8 zfddB89$pZj>y0S-kTQDvzC>p7N#3A~)XiH`VN|DL@`=aiB^|z6Z z1r!2kf`*>`ZEfrWd~)obsvg-N=XiGvP?+-V6-f;cHm59~yj_EE>WwjO0-a@#QB&E@ zcv-!`U$fN51}K^IxKF^>5mUsUnoQTa-&h5V(rx>I^-4B?nGw$&a>tq1 z#GJ<&a5c?yL&lB=WS;7QxW0eC=bE3%k@lvbLz8uj8%_-OM7O}Vbsr5cc^^HQ)pdGH zBv251OUU_nbp^^B85pom{Ko)keve!2rJt}T(#09TeVx7t81CQf@_yiFM48b=-J~QP zhbq`5qho6ohn~j+X(%B?LiT@^N9uJx)!gccAEiVufqf5;7e*=OA+czcfLmi7F?)+ zTX_^J{IngR{1JL3uPK2ov#Vk=`_Kat*Q+nx-KJM*wWd;`MY?` z#I$IuA8V>k=Mb&r=EqRoB>zJdP3Gfvl4%&_I32qz8D$gnEAo!aB@+BC9w@uzaE0Ro z4wx7yL}o7pa?Waom#tGg?B`lOnEbS+omR5^2i>0@;*Ue{oFu5Y^Ag)IBrat0W<@}1 zF++~}M4p5&H(Xf~9uFH4(pTipd+N&%m&t+@urHk5d%h`LE%4{0N?S7 z$@aHJS7<>TKntH!NEO(mN6NQfsZwbg&jfJ7buR=s z>9Tw-tM*TSD<%at{nUW+udNzhjaSHvCi+(?!yU=~vIikp@V_kA* zP1eBDr)|z=U?rd8a{mr~N`?QpG_YDbgBOV0WIQbVA|diG(!dR$&YMZ%)5>qAn$+Q9 zgz5?maoy$RR4XCJd}+{TdSQtoe7mSF#@4PI>qPgAJD6P8*|jI#fUUR zh~Kyp+o6)2IO88zv9y}Wig7vPnrx^@V~R&5E)Gf^J>@P550MS|D+-l;|BRIJ*aS>m zUb90FXf|k(wHtL5(nbEG2M+&wWQitb?FsakwbY9hP%@=8mnQ!TK0CD{3O=WGcfFx@ z6s*B10&0IFEJo3dFYT;Ot-g-cV77oTa@8xk>CC@KA@qJqHS_lyBk^)V@Q3`PDEl3W za~zs-t1vN!|6sLg=`kOJf*%<3VpL?0D+;ze|4;JbU>F13ty~9IR5^7RfF@(#`<@#t zk=3;`jvAn$mZ7fpO_pT11V~=^Ppp{eeCa{<6~?APKv}FiaYWLm%rE}S1jwZ|NXY4j znhmWf3H;Fc?KFJ4iVC#JJBm)8Sm^R4zC~V0hc~YQm^T?*{T#TW1as8I8qq+LC>BMl zz;?vwmMu&wEuFsZCWMI3P0v@qZ_nXP{A93ppjdFhQLeI~y!bPjr3wynSXL&9?jV|T z&H{OYGc}&t)|lEV)ZW4Xvxgbnc*sk&*9c?G?EO+vW>F7cV+>jzc{FZ{VdKeAKv%6M zqkAT$GMOHAT~)9@gb!RWX|3ecryxO0BU9?ls~Fez_at9|aBW?D(S&_NDWam#yf4lu zC}t$kp?}BX=eudd79rhuJWH7s`z&?LieqpR@nwJY%gbB!+=J4J{s z!2Cz39w;y6s@A&}v#~!TgkPQb{xCw7bB(Ff(EN-RFIbxp*8?q$u!0X^7Gkl^R`Ehd>{VTVb!gY%_jrO@EddLq%~7QTj{|WiOeOc0?_n>QOZesM zRt$c$`tEG)*>-)A45xK=vbJaJ;H++kH`L^`^RmiaC}n-?f~zfQo+*C8E0qj&*T>t> z;#67c7akOT1;;8wWQH^v*7BlL%-n*|K!O915E*ye{$kA!PdRmS8EBtTNO8QCILZI+)N(SwOPs~aJ4IrPn0%nSi+!*+fxdeqY^;ar5aK9N!(v~ zSRUIS2S>4wXy|D3lJl{0^8F?>c`As?5@~=vck|n_AXXG6D=k;Xnda=Lj-O(r_Am6Q zL^TJ&>59SK45_1fH3z;GqSTqvYA-!7f;SjBuZxsogoDp_1RFQ!3}7Yiy+INgUy!zS zJ{-$;;}!t_k3h>7`yJWJiWeD%H?&NWlsIEhOpW%!BV`=PVjtoojS5*+T=Nk(jp28 zNG|pManvG-ril8qWP()8GldrcV6@viuC1d4FarBqsHgQ;m?6tECKEOKAE|TTJX^2vYIe->{wHQ zXb2Q@L99T-{lcdb0rx&E4KHPHM8wZ8r#HW_7+n8?g)FnPDpV=c-iM#udKLKU-oYB1 z#~l)q){9QTtBGr6*fJZtm-&-z;~qh**$knx`WqFO4etT4cWK?G%@hLz>l@97hS%;T zwC8Y`@n4Fd7w_Gg*tLgHnD^Um{q4b^Xv7Ggz#yVadX2N2Uq3WXVOd-q>ct(Mm)-Zn zx!r8IRxdl+E;{wU5$M-((2S!9o_7!~F z35PvYu?MzV`eau8se2!eHqUlnu4;N$*ESRM72kEI&ifm5@FIpHOK?sbH%I35 z+pn5MkzYLPXz~B*qQ#NMTf#gXzkQBBc!8$v6eDW_s01lJ6=H1Bhn9`vQC@FCj;6>r z@~+8c?0)e@jo3B5B$Vg5@;)|#v`rzd-w|z|MMge9k+X;ij;Vu6Gx?K18m@xjRo?M9 z+xCQ^{Y89CzZ6CRDzX)OXT=F80-56*N4Y{*i`T zl}chGv%Qb5TkIKuc8aA?=Ie`0nB-+(xr2+@f440J55*9-dg^8a$F^ z$AC--ELVa5ZP;g)Rp&57lq%@m)e+-9y#+&9JBeIoy?i%a%5|aXx`EQ^dsE}%JjDO- ziWVU)@MYHwk?}iZ|ds6|A6hOHY8zS~u%7YOw4Lt)W zz;e00)GVxBH|THN?yL~IZ5jeuLvzj=NGxY>oQy7>Z;-7dX3*?btW(Y#j)CABoov!$ z0aS9sC-^kXV%zd`uVedmW*p1k;~E7756VgUy=+ED;0lq;%5s#R$67jj zL16`%11cx7>n`8XbJ!Jv;WutOOBtZotXbhb`z7OZ8JK}JwCeMsQ9;Hp%MK>#D)LBX z1&Kq}hKIxDGR$73aBi(S^thIsY0dWitW%hdG|Im`tat|{TlR&>3BG~9q4R06Y3<(g z5igNji=CIqrDUpu)@&N+H@MA-xWH<{TfNh^{fXWbhv(OF3(wsFF3}$1wfSXW{K6q4 z6rd=S#Agn_@-Y{jR7O$6&8YW#%>}P@we|-*^^XTef8KT14Sqw+NS%%%zm~%RoVSgQ z_xtm1{ax24`yIr&j!k!ZEFAGKN7d!QYG~P(ESnqXnvxS;$NtM5|BMGS|GAV4plvWE z`bBY+?7^L`0TubUvxN|O@R>lk%C~nl^NY5NyyF^3DM!997zG1L9l_;vhV6n^L5}kS zai^%cv#up;^JEQgXOPY6Mam&+gf$_XjlY;Vh?)+LZ|Xh@XUVLM1L(?5dco(LJRTx* zmB1n?h-08pdTb;nu7(5ji(Tn#mr1dP%Y*>M3U6$b88Zexo?VA%=5>PCHsEH*U)+$5qL}mH=|7tYY!!wg@Gvfzss7;J($}SI@`91a*BT76`?ziPHcRvy}w*^ z9hWJrxm%V)pV+Y*N4M+0as>cLe5f6~wjA|8ju(9nap)M07-vD=Q+FmXfzwwOXv!A zb(?ajZrNw(8;YQK)bl*MzX$*0Q}c@^Ct!kkkp#%R5)dl`g6ZQaYLF{eqD;gIxvM`R zc6s!#aUYj?SU)I}Ni|#8Hu_9IpLOznIh*r-EZBAFd`SFwhWeA0pd@Z;4DSZ~Mtj`* z|IEG`n+FFR$jdEITdK`mzYu+`7KUH<@;%RJaDO$Rbh@YmLm8_C8{Nf8NuxpQ)N5df z*w%Aj%l5DL1J+x`AHDP2+g;|i(>R{$u+PkI2ZDm+e7-?mOC9g67rMT0t^o&dGQ)i& zsF~t36L{9&6EL%G&SP=PEes4$q5orm@&6XOOQB7t53-Z9o5SLhG{EgK=$FZW8vOZ4 z4!Q~pTgK;-JRmeTULp0680Da3uE=Iq#b&(H*3}9FSvD83P@tKA5EeQHv3uh3gQS>M zi0Co;N{wj_F^mKQ7oF4aOq6l}C6!lME)r?*$EyKgi`TD}yoE77p!^F`TDe7G;gg~} z?u)d_L0)TOG7gf0)FV^s?S$7_0c`|gB0_W+KmwYxbb&Cs z;d$D^-bYRa&Dhm-b4K#9=)3kjs{if-zFwd8cdZo)#g&h(1{K^#Tog8ZFEHfYuKZ!D zt5rwn&PkaT^zO=HeP3nbL-#~L`l4v7GyB+4YQA?BvHTCKO;|Dmn?3ed8-lHOzh;@Q z3SNeNwjvnTpYm~HkB&EIWCWhU=>+4-&(%SB>J`Kemkkphi-PC%GQWA%hChFq1)H(y z0Ue$f-rtvw38=@{a$)(ur4tH~Pk~c=1UrwCYrNk^i%U3a8*;L$e0NSh?&4#09}Wv* zD`KO()ZD;7_=sgsZMLW$od!S>0&C!ND3jj;PT(U7a< zmCHOl8HVxBD9KNzHS^gJgs3fwIEjEB#Og3II51;h8 zSUutcM=v(Y)?il~;%Vxx_TKNcC8Bx!&AnQuu;= zft>=w6T6y{aVu|}+!DdDZ@(Q(EWQhSqq43b*O^P%Xilwt) zA|I{1@0aTjdd?sJho!5Iit>ND0!j)Cba$74fHX=hC5IJt-bKbhYEc+~pW0P+1BMhK~ ztpB6!aL{5Nw8~*x^3ZR?nar9lEGfr5M5AV{Vo*@=PJlolp}JN+p36j}^PBugn$S*< z;50h=uq^HBpZKm<2cMSLh`O$LimF~C!RBOIG&X3vfCsG3q|8U7UR-kquZ=IQPwVsX zi&->Y;xLmHN6Nu!o)$WWjE@Tnd2+wmp549une1k$`}{0#oAVog2CFzPg%2oGzA+Ox z4YF6>e0Ax0=e4AZ;iQZZ=wx{AbKgqeAGDRhm;BLmBOerT{>WW_2Yuw5g+|SG@28=G zAFjvz?}0Hw==aSyD)8ZYsl`2TV(+2o_UI9Eqxa1BiM@^QVdJT!-6Il`Q?pF>-FLOB zvJf~e5;QOim<`(Rv*Ya)O}NbA64O2Jmi;e9Zuj-@{4N5n$@u7L0{!ki+wRxn1J1;P zZixiiekO8)+x`uTdR!Zi`8!E~YglY;5u+08)h14jk{_g{-aI_VF|L`=4(yJOe>vgs zykYB5x(%6~{~Vd$|eI zZYyH6?DAiL&Gf&OTwKrBzIzZSgo9>Mnr0k`cmuDS4G$odH+!OU&O@vqZV*~=Vy-AyrGRoUy}^Hqh{OzoYgAn})5WvzAvI1=D3i}p$%atohI zhD5gZlS1f_J-95k>ScP7<=|a{F+j z4p8Jrkz%)E`XtaJ95?-!$>qD;rxCvmc$yD>fAvdJhAO;w;Yal)ZOC@0L-o|J5Wd4V zn>qAo;(T+M1q_$=KHeb=0DC{>Zh2%CGc13;<+l9Mb5zuD88SwzmlLJv>_sDHdM-Zy zElzCvptwzF-ZPQrojMe!dyl<1%j<^1d0=-pIvrGB%Stnx?u?{;ba`kiy(A|JdQWcY zbPRL8yS!b#qz|ko#~!JkKW~DAc4UE-QoJTY_oJSz*PFc3Vx_MzPF6w!8@GcWk$SBI z^nyQA1wil+d~edQxLEFh^HOmhk;m?TcvHlpAmgL6Yc(_mWbwGs_iD7^?Du@YSk~EI ztX6$Ja#Y)U%vVcvcROS)M=i>{{<7TDf2I9l?~T<=ZvWTW8l%~spHl)F14WJ7-ugp_ z299G=`^RYPC?m6L!tHH)cgRP{`wq>oIXQm!dylLCv{;3YR&Z&yO7|oLsqk@Pqs>=z zr<4g_U}%HpKhwdpL^)S;m#im%CZ#EZr7iM6{j$g#TB>vW?$57p17FV`n)pv(YN_H( zR!YLNa?LM0$!=|N0)A`bOa%F)%{bNM8XnX<0-TogjTHAD)pE-rVD#~z7AQY}Kod`^ zvON~gy~o7MUq|MYNj+RGw|T5@U2DgQ-1P$Xj`%gsn;{m>j+cwB!|{hk!i9I-1*8mV zf*vJC`-9d`jl3#guYK02tg2ASvK}SROWahDL6P1u1Ncd=OlV$ZY36~p(8&14^@D^+ zCKrR_;CFHE(ifa0=0yssd4=^d&a}(giRLdx+VjudyK2}KI%_@_&+MsjUf4^(Fl?2P zw@-;(s^^^=*cbo*jBxpwzIFw{WDM z0zNqL?*3=%j~R9XMUDEEauc`nPR;Zt|AYrE^LAirz68hSRv&|(%c5<+ z10?FS^WOhnQt4szb-{VzP2!jXiuZTDceZJkmpS>W(DF0>Om7VNituXs-z_T@p)bmk zkIc?K6XI^=z7N;Mi@wV*yK@znAKGrE)?YrlE=}s6QCT_-x*YpD+O-aa#dVlw%Rz zd(>h$qgl6}r6Ck(r;+eBk~tOlhARgTo)ggI`#VyN=shhsXJ8m9Z$aowVc|cuxvq}>dazR^VZE?% zlo~tvYGY8|X?vE(SO2q{t~rgD&8e?m@q?iXL~g|c$=8&Yni~C^spxl+W+AXIqCWd> zDB(I2f@| zZ6zU*UDR~lbvj3X*QD#ACQKXOTQKE_IZWym{odO)1EjprI!rO1Y{#z!J(@ikPS_IA zhPK}>mA6Q>| z)J{`;t)^e_78_-4;QKhU>Vt46E6$0Clrz{k>`zQ@@DAau0<_|7U1H_q9P7L+wEc0( z@S8HLDx?!*Vv_IceW9r3-gNf;ZQNqDV9_UM^5bT=9X=loi??+Jar=xg-4V@#rkwNb zaet?F#-eQ=EK)8bylj;uY+hCsNY-{tzrRIee`iI!)ZF>sCH$iLVB#nE=d<5J41ZlU zHhp+GB0 zegFE-YcA`McfAQu^oz9&(>175a(=?)BuF1uLMm1g-N%?#H8vy*<)CORX?IlN&A&gI zbSA(XROKCobwg#K$@gBw`Vqg!b=O=7m(gjji*u#EsY5M%VgCJb*`PJoXl@M}ldo9S zURdY`L_urFmoLSC`)<;T37P*!;VJ;r`ir0T3jZ=QZ>D=Z7q)1)JLNj(XB81tMGpNj zg6ehwD7DG5P!uhsl}?D_+9ZVN(npey!1|ete0`k^)VI~?$LE)Yjl-M4nGtgNMkCv> z$iL9sEne=@KO`R7A*8Vk1L4XHT9aO>RvDlzGcB??@Skf2QDx}k?V_O_Of3?$Rrw^Y z1J$091m5CtaA(Q)!LL{imz@QbneOk8+H}8Z8d6+Ym8%zJW}FZqnJr;#yYcRC3Z~onZtUtO(Dx-(tbG<(89fjxBcNoT$m@>V4|{(8JyX5u{jUGw zW5DzdF{culu?kdu1?jy7^UY;o#x`oORMb7vC7F^0L4rXMy137ab@+azo!%5gk8);+ zY{$H+=Jd{%9m&01PoO7?r;*GLQ0qEUu4R0VuvAGn$r1wq&ep4VT3-L-{P~kNj!>O9 zZ(N+~3qH?a?HaCL~7o+MQswb|P z*^>~QX%%}DTbowhIr+>sJTidgVPF4HL0s~SAnSKbm*nDdaGT}BX#&5ARuGWgzIf^8(jlU!XF^j7ro!kBQ@VBy5OQn8W|LMT8 z@E7c#6DyOC;Eam$$x64$kY*m>fG_Nw%b=D2z>G2|bZ&25-{$wXPgUo0UaBrw`X-le znq+qkyswTmxz{9Gc652vztEkJVuj5c5OYF174#$>_CnrpU+4C+DZ0c6K_hlmPhS%i zq{eFCGB>%Hn}DBb?hI9QKhw!m2ff*jpm^!Y^|-UCBo0z;Q+~^i(0Bcy->N_972y)3 z(f0uxURLYq(>ybujdF@yuhd4Vg2Bq!p!)E`OVSFn=8S$SxlmYy3o~UY>65woBgS}% zIYFG{Pvo6zv~Mnsq_x^ES(Z8yzWHAA+}}tdkiG{MmTJHQ1!5N-^EnX#Ol!;ZXm=%I zp8H!QvFd3RQ!&7#Uy?izBlh+)W*?%qY5t8bIS~(&kSU*R${q@;F-F2*5)N|MK=m$OyGTjvvU`>6Fs)T}P z^f;*Nh1XvQTI(NzIoP#`R6KAPQn{6>ebp2807s{!frvGWdV!Riu>0r-57}(7SdiA| z={m2I;x6eyp>Q=+&NB<|&CKlapJvS%b){8qJGaf3zow*=$x48HpFg`tLWG0|`$x)* zU&Kr(PB(23e9AGxvtf?ym5Tut2Thda94&>|@`k2e95%lzznbXvn2chmjsiuL zpuDX#67D#nP|#cUq96H~Te#$A@kMpXNjTeepeZ z&&c_cK~H;D40=8!+YJ)q(MX`ayM+p7`b*(|eWCPw3CCe`42nDwbH|43NQ&#cc`Iev zan%S(9}Ik*^-B*hScGUym|}ZnrE;3{B~q4Ifl!m`^sPKH3G|yYoFCga5zJoYRoIH(M|Pg9G-?U-EL_Ii?;0um#m!l zmW2}87IZ$DXK}MlHdy4Sm+_d{-?VTc z%S_^^mfKz4L3g`Nostj=If{%@_S`*uNxmV8{IIo}FJ zBMFRKyc~oQ5SPm{p55UVE6+3>FFYxxB`usP1vC;i-5q?i*z%VA2_VLp{MQGJaV3(tm&#MzS#(n}EO}i#51aJ&t9-XCTc3sY9LT z&d_w>m1%A%q#X;Mji#NJe^9{>@E>jS_0Dnud$XL+DR!{p{47otO-0NY@5rDDmCQQH zDiAzTb)W9lFM@&}9rIM6jGl!Ga&4TpL7?;qF7lvFg}jE#e9yz4XUW_YxicYb5Y;3T zngck6{v?W?xu&KO!45slN)@kF?*TIgr2Vql^Pv5Fx*hzhhsnu@+QY>6db90i`K{ht zj<19pg^gS$6+|=#3y?9j_V1!@3;i_BrJlO@#4@rZ%YKrcfAR<;CET_DwPbl>)@QXdl~Wp zJ5i-jeT&uOV2)QxWrKE5sFM7zHdG!qF1?ObMIaYCn$DA%gIjp*zj*u0;t}U}A4zq~ zWSJfxP;yJlow5^~#^peitp{V;AD63?ACe`=&wz|TDPAsZ_G(ZHvryFMg|c9F2Q@uR zRc)-H&{18^RaGPP#GNSXxw-+Kr(|r5DNs4T|5rI32IN^RgA3=L}Kg1`|Am(P0vo0Rv`r`2xbN(XYS9qF8z&)Pz=3(E8AUz@`-jCna<;c@VG z=VzX~iVB2qhnaMUbwGtd=f|M%a?44ez6o!{Vl8b$`{PjR9&(g-~i`(>)28EL1r=;XNQGQ*H79v{NS}_=Tel!#w8#)q*)}KglDJNeaI5;23K|1lz6!^ zgI4v?8DSLUKZ3T`DBR({G~~WqCS>y`H+KR7;m7&>+LT4)z*UbPHb^Rlm6ztl(pA;c z(xStr5SI<#o4g*r7osuUE%G)&*=W)C@4RpbkR|ZGcb&N6j;atHm*N!kygz6mU>=&VHBd>#2$fnCN- zE7GJ&2#DA*s^`I+#hW))8}BP-Aczc2e<^5VnVTvkmbkx1co)e2W8CmN*Gl2>0whX9RmNRnpZ`011_-7-@BRA?>8Vvb52p{ zi&Y_44*oY%rvr?h-^`d~3!@NleB3 zkUsnn^f>(RGc%Lw4A7CDgwMr(5jEixS(=5^X}MIJOrTAgyuO$hk0Zb4iqH0dP(o~Z zcV?VF(0vwo|AkxFD6(PkFe>VaDDL-kd@1U{>rHNfx5h*w9{U>x2S;J}3T*@d36wHW z!xOachl9&_>&}fnMhI1@j%iK zj1`6!8Z3(5q~&U{{7i6LMTqx7@LS8}7pX|S1Yq1^c(bD%CDEuH{O=V7w%-mVF++av zAxv#t%{~aT#3ZydsQPX`-1hlmmdd_uy0n zT>RCz))v)-LhPBi8aI+~;Ci&pC%s!W==eP2lCdgFQ+)8dy^5{p)O?*^K1!VSE}1ni zWrcJ6jfG{_U+&$Wj%NG1!*V{bz*Y$W{6HA1G$mzrk&NIehRhz@9kz*YAsL?hc3Q-$ zxwtrJ7HuiUw6$UiF8CbDQdn7n&+Txs1}6=t!{h}V{ahLuKz7WEt(!qz`4|G$uGM#7L5jqvCZG572})#*0RR`N-X6>6{aIiqV8$ ze4AH|TB1Nmz^qzXn@kJrf1%gpAgpBrv52!bu~v4JTJmI^Bk7OW2|p@ue7^COWb>Jv zyxi1chG*?ZcQ~@*=_J|242Si2tMrT+TD1O)%4)Z=)pe`uCic0WZtoHJyxqkMjgX4F;$Ogu zuo3To?G4^G{YnZiGPNoh=+fOa?c@{PXTh}TWe4N$=#1W+C`|1$W$>&TR*Vs0hndv3 z{Q#084q5qU76%37@qwqg!}3ElNPp02f6=#6dwe^0#u*0IMy{=m*VuATdxh?^!aAw_ zkTA0H#)~MB;UM1rav=H5_*`A4s)Sq1>l^tb)2-c76YXm|wYOp5zKZq-k9mt6SF!Bb zp)%5B=w{*d06~TS*?9eibMO0isnUrn?-)_CvD%kuW0hdgO`tlVcLIG~_`>I&x>xS- ztfxMXV?CrQ5XB^wP=%aj+7hV>Dtegk2P4aIPq%Aht_ zDo~HlPMt3wa9q&8I@f_R z*}G)4jYZs{aYDgDT=q~1^hgg6!`0UlFEAkd0u0PdV2aKXr0=+ioSyoP8*!0Os`_ww z_dzwGI0w|vR96b0Ii#RGPx^#v73``tAwd~QN*13X=vbAQ3~?lo`d2I3?;|C2g;d{j zhqe?3fs}7wn+p@GQDVKuB0u>x-#x)W@agK$IA9yu1#BZmCo}s18YODE?we%Slfpxn zKebTR*OW*+_LeN2_ER+*V$l=%v@&o$Bgq!2&EUNhx~dS zDOs$P*S6|X-3_z|hzQ>?lB7axuy;HJXEv(+~J5P6nzi^u4-3S)Jsa#tcyuK7O9 zZm2L(^!-G{5cKXEK?o$ z7f-}wk37Jxl!5NOcAq`3n|tr{8AMxUgIptjoNPY$BGaT0RIM^Bn6&uXna~t2Swj zCL%r)@U{rK@761gw%i_S@y75Kny2EjWgH*XFFzOwpl)tm=TW2^K7HoQ3lI*30@_iG zu^Ur{5leqg)ZX?IjAYliZ4AudQ;QT_IeH`^AX_|C682q@L^e_F*m{tV8}~pX0l`*- z8iJsx6`S-$dVUF}3FcY~^1u#T`w7Gv06Hs7>TOm&yZByEPrB!tHl3|EonyoGI89Jq z*#ZQS$_rEce;|0S@VY>eR`7#9Z}xc=7GJ!~H>fD2>UV~u-_`Qb&a^1-Uwo0FyP8by z1~@@uZZ&a7Rirm0J(m1rt}~>4eIT`#q|qoOkF@pp)2ugkWy-N;dN<+-|^fYEjU;H zeSePsMNoh4c3RHcqAyXW9W`TZSKaufO#Mh?B8R`XvCLN~xI7f6IVP4$_^afWWYgew zp1RcOah}ca^v~>su)^#5krt|z^L<5J3B z*4o#iC>5cPEl$H7K|}yYP@xX3FggL31^YD>eLImL#tQ3Z3iwhA5~LP!NkmgNJ#m7b z&}MyEPN7zg{8sgnnR-wcPW@M0YwL6~_dP3^N2L@cjVs$c-or3B69ZND^yOw6=UeFJ zb%`*?6VT72c8fxn;QoVfgxfvt#}YElml60c{arTpUQJPwKLi)&=C~JnGvpZ6IouOz zOK49oc13BQyw`xvuya=YITua}c^?|Z|F0qB_y>j(s1p7d0TiHR-E?_2zNfg$>%ZXW z4r1`3oKhQGFL^)joU%Z) zR_NwDERU_KV!)1Dj=)3fWH3xI%HJ#sh#IWPdrazgU&9bS^@b#Z z0@u&u&Am6#4j>XV#Jqa?lj}hk&f3~#uTk8#J(nIf&S#2;B1FjTM6y=&MUrT|N%ODW zj+ShIHpf0yvC@COeBL=wDdfwD5d1E^Oq@2*??-`!L zL>0-RN$Js2b$>pi$5P?0ij-)_hfWC2{LVKie@QOnc4}w=(|wn`iWA*UEtO&-jmOmuCs;Dp~vaipoltByffq=6SHx;B{iB z*3R@vKt1J?>+-|Bl{*TNOf>0B9GtOfk=3gcqEbU`)z zGpjBKL_#0F`d=M;=)0#9;n9fX`A7Ji?*buLP2=0B&#Gnp3C`g_P)@0gs90u!>Z#`I z9|iobUh(UaO1%PTK1pAXIpbzP&Ik(+61{&PU9ML=o&n=gSeC!w4lM=Nc7}J`XGC?8 zzjLvFXCBW=jMu%auwS8?%yQD;Ku^p(I(3X9MYmz|L?v+t{gWL#kdO(Fi(85xj`F5jq#JAT#NS%5 z)jA9Az!IS%IlyFWgkqoVUC!R)ZzKIP6hV}n8OIg)(sy%~=-fa_N&Ib4P+8e|g@ra> z+xX>;G4+LMz)q2HvG&Yd&@czw?|fHNJ~y-W<2+BVMZSFFqJ*Eg)!x}86Aa6N9Ngw~ zfLLl(26B|qrA8A_BEqC`sV;^R8I`T_SO~lV+T-P$9c78B!wFyJO%yZ?wjRrk0VgiQ z(!$#)!91g(vI*Y`8^`t#i-%!2(j!`M>cL-D3g5bfA%_*QdeN?tT$XacpJE z6F{z;J6Pi3i-2>qYM*?icty&bq$5HvJ%$h4*>!w7!7+}Pl5VKsy|>P;_uVmT9qDZ; z_GF#4R0X-%d?9@?n_$*_G4BFN@(%loJMEWAPEPLjA8L#V+K!793}o)0#N+AB;%+Kz zBpCV1uXh{zrtGaCxIl6H7x0H2K_Qf^9h;wsnoARJUOth}nOK!1Ni-;IG|)sYCR6Rgm^~T7VlD=O@hbiR4Nk?ZQPu~;$r8QK_oOg-ifN*< zw9wCA1^^hPuqkb|=rvq61FUhjfGt^2DFM8f_NNeZ$?J{~F3244oHwnyV=>YI%mX-w;pUR+5+)4kRsQ5asx?mOJb@@kiVUF?Dr5{O zQ-VSSj>dsJGX9-z>k7PS_g59#ti{E95(p0vB1^OVRn7!>%}%4^|&-VKMl#zItt2RSs6Xc%!VBB$q~ zkTYQYK*&sYvlmTiQy459DF9r2fBKIb5x~mAQka@D&C=9GRf0~mqOmfMC1~wz>yA_DVFPA9WvF@J)!Ge}-IJQa z7XCxN&~9;64;05nyKJLZ*s6pEN*$Q0#;W^ara$f1dStVm#$U4u;Di9u?D5J6R+zNc z<8WZhsTDY5n!z*}$RsuADH^ z^N#!bfXDlZDUShX4QtwkoypRnpt3C7LT|bkZ>#(k(=A4q+WhOGEKer$^XMMG zXU;9V4hw2(a~2vkg@O$C5KjT=XGv z+UR5kRoqKL9CMtW-dTEanTcgHfCJw3)A(NKXI5+qXrgLKxAM0j)5x-wi|ldXroq6^ z0IOPvfNc!<{%M@jH)*aMr9{w?-`=vvk(3OZ+2W7y-!-XZzcn>XUDv7|&D)K{P)J+O z%X<%kiNI~|Zk^aXAMQ4bifp=G9JtYiydZ72JpwG!x6diHj)5|;x4!=dl{&R*F%lhj z7nkyGBaG~!^TV^rPp1kyKXjeTOzMqYsXu_(s%mTRjtMrg;;>b$nLY^VM;c%cAx7>2 z5Q6<52w_i%T((vKej__eLCJ{-r=`?CDef0u3spw@O?cV=M9jZriNc;w_nAU~i|6}G zt?y1b87~ji!$)RHO`fpKRjn6U=R7k{9NUsCDaagCfz$|(hZ#*skXTlTMTF7_s6)GV zXewCApJPR5LCe7ASb}BrVxQ}Gk+-NpbjFm4+qefE!P1YLH|gdat`o!DZ{DdOi`3r$ zrCch&be0!%b^y-V2Hc4Qy7;6d5&EEGxzqg|RX2MY4?T?8+nTu&xT^7R z8&;w5VA&rhS?~^?gSyk1{pKQ-`LV)ly_H!7(LFOBuA6_DV%(YFl@!I zc!DI}&<4G{q)?PJ#jVf!N4D=miwH#p`|%%_=NtZna;gK;?#e$oD_V%BBc9crCu33d zm^f=?N?iLha(Cjv?=Bhp)3{B<10P(!%IIMgf9`Zx@3T;h5vA;@Oeq@$>^_Cw{c#5m zC%b%ai(cGawj(XP9%zefNJAb1r=)%f$*;zDIXgW5IJ;Y+^2h199^r zG0I}SS&yd$6uVyB*Pjj|f~NP*SqNQZpP+o4Z!pEBoGw-Umm}`H7pI@$q#gZ*$mqr? zk^K>|vIiQwAAO>KWuUyq)i>kHh2GXZ;|Xr6$V@S*=iC`RqLJ4~=h*QVvIA}#3S z>F{W|=Y?9&x{``XW%gabvg$@cxgYA0D~kvQf9)^XKTIPWaO$P@OwTYzf~E}d!M8D? z^wouV&!3ls{A1uKo@m%=W`e|As%u*$egys|BnN9<;w`ZM0z2Un0t-Y=5ML-(aDlzy z7c5PAiqQE`s5(@N5a#0UC`_}>HuN*DZ!RKTHNg~@jwBgfR|e?J92J(crzm0d*|0h^K- zFk58MyH%tOtuSt_QjV96^fKjNZFy>5!74o#xPOIZ0MGK2rHxT4`>>&+V`LNvFQhk? zgRYxS^A&`X*T6awVE-9hxSy!M%@m%Ll%)c6W?u}gY*2-pot_bcYYeDD3+gMOg33S` zNpa%%zqew&TT8Gv!>fN6IlI}po6n6G(G5e6e|6xo4(W(O(K4&3g{nazUr$*y&0$!e z!AQp_bqA3IN{j+8QyzY#3BWKJa0)MYT3A%f9Jq-wQxIcXT8H)HqlY+jj#A<{$6n&^ zd0+9Wl0s?VcU?GR830{b^C}b0@r=(Av6e5-nx2|k%5F`iptNBe%Jb&l@-$htCc>E* zPkCj0I|;FAvsq^1X>gm`@26LLbL;0cpm!;0nSz*BL{~)u2#yS(v0c_HHgadD=7{8V zUiSCJA1yZyyX&iM{Y*yi^?FG-1yz!EZ@TfAJh+s-{hffYR!Mvq z3(f4UE^@rN@V~xXuDd{oYe1u4%gns+PFwakJb-UvxmaeQ>tMermKR84KoKkGOqGEM zXMJlfEi=J>K6k!1ldUo{aW@-@a^KHuR?YEKpx*l3e3%4B%7MJiJerbF{0zXzz6Om0 zmjGU4`~yF1Xm;y#*d#0>F4R^Pbu1~=`yOL|(zx|tJ-sRr{#q4Cy*L++5(^N~D>_23 zD%10!Eq?gIzNT9~aE_Mn(bT#>*)+Q(MZI7$@>L=_(kMg~!r0-)9W_k4F)(#1QHBCn$d_IP|JA2y`06fffNXju|WZAwK1B({qDz1 zqNA0Mmi+UoF?))XzUjtll9{MNuG@Hn$_g9jWMX$L$@ELCLVVWyF5AD*fXz)oK8O)o z4o@qR>1Y1{4R71kO`y~ry1#wBcma(7GYhP4;!!^d@tWiaZ~^ef`K^D8ZyW#Z2M5Z7 zX!B3EXOpTBd;M3oTnsRBbu(4k1w1%4dX#T7$^9L2TAvy!?T1U;Rrjn z*y=A;Zz}?_BZ*3q5$nJmow7HQugi_!Q6(d=tt2VCQ33f|^WQr|vw5LSUE}DQRAp8j zhKFO@V4|ofBO#s?Gi%n2*LK{c|IQLvS`%*UO-ji5>E7Lp97uXGAYor3Gy4PtHM6qq zc_yp(YoibSpMEl5ix!K3M^|OLk1pS&U=&m}jP1Fcl%Jkrn-E2~0xCXbq>Po5Yg58o z+`m-YGe=doJ5>>%Rhf_41Z~6&|1Me5LvxStBN&5+`0O5ilElDL&WG{-w{ax_BPS2H zy!H0pJY@_|=Iak0hI4aM+%y!^Uz4-txpZYDeMlB@Q3TR~4LxuwuCE?IZm{f2saPL+ zfUt|IOa-*{q?HgYUc{TZ+QzR8;5Lr~L=alv!9t_92*Zx)DL31#3PcNnU89}TyYA9m z`Gx>9%9~RzNVJmAu=U1WO$}W)#g0P6@@^y}dexDz&p2l{?XwsdkNJX~M$&FnK+n({ z$n9R*l{97#cu(3 zD~${_t#?4I`L0{ zw#GNU!nyoOk`cxYm|1L{3vfQd7o@)UpIEZVcjv+x+7XEe+Lp(uAG%X2kfqI-l47%9 z`o+ETjs(0TjBpn(!=TSU6TVQ6I0XQ9PR=)IIhdR+;x0EOUXKs)i;qtBx|eW_(DqD%SevAJEY0P??T}n0jv(@%T6)j=5RVT5d1qa|Z&G zip!a)ko*}Cwxg~$YFz575EP)`W{F#P>-D1!4G&c`tnn1f|D?)80UlXaxQ1GU zUp=fF*Zw+d|EMQ}g3s@iweKpuHoKm2BF1j3eo4?t2aWWiV;J?0Y%z7jjp#6C)`y$F zaN9zk+%z7shbE7drm-KrUt=RFB9jndT8=M^6L|i-_&=RCA=wg&a69U#QpjTgSOPuI zAAcidA~WNAcn#w8ffIBK~fYbo)NQ2E=skTG5%sD)VUEx_x66&{{NA4moDWTGYh3YxXy3HQ4BGjbOPUER| z#&r(z0P)VMo#uk2HN%~r2mEH5?B{9;%;2Wl6Vwrq-t{_%O;|OWuF(A!+K?NWB zA{8X4;|OsjD`_pAv;p&qKAKv~!_DtnwG=eU*h5UxD1qiKs<4M7qF9&dDyWdI1Y9t{Zulge@nI;Z) z{%SxOgP!HYD;3z9!Txcn03Xm7>)YRDjz@~-qQo%8GvW$wQB4j<+WSBaP5&O!*fSCo zZB$WAfwZsu&9A<%F);v@Ksi2V<#{p6045mk+ZsT0PpSYrm5fYDaYOJ~9A-v~)uD#^ zPotxixQ!}kvO(=X?_1}LC1I#64ZZ5$$9L5}1HiY%S6e{xiJ$D%_a3bmq@F!k zP`BE%WP}bV#cMtG0G#>*osSskc$#dGaR3+V|JbhRd-+n0iBP25PQisk$$YBn>v1v@ zMFsko+s3Q6C>hMKMUn6k%TrcCHZ7RxIpTc}mmRQ&>^~voJ-Ti8_ZD+}jgVlwTpn;+ zzmrqtVPOt#UsBV}v&#ItCc%uqoh<+eBEMQ$ zP)ep-5^Y_rR>g90P)h}H3^&^ct+xTMd>>zpN!;=V9wILHDtH96pyJe)<@D(kA*GHQ zkBw$LhIB9T&iy;gLw(Uhtk&n%lX41JQbHw5QZs4K2)5bhNakyIO1qVRllx%{l5evE zjY`^k+@IcsjY;3VyMmP(kAw2`K+XYk;9?SBnZ5T`*2LWiLX(P2=CMQiTospu&4 zW|dbJAqWIxR(S=^$??d66ngWK@A~bn-(I|2OEFKpP!Gw+kN-h`B6^XC&~IA-0|h6) z1Z+P3UDHsI2=zJsj~b={me@#{qHnP;3$OF#m18ZE2;f;h41c6Oy}PdTgu!s&9;WqM z3d|nB<;I!xgB2^U9Bd90h5|C4_l4esZi29*hIJl7!^j4yV2Rv%|#1t80liFHZVOlK(Tmw#4P;B5O^dD9MZK zH`M6~eob6eND6X?|LGePfH%+x2Wx>^tBP6kDF^y5?8?_pu4)=#Ai&JV*XY2PDe~7J z^+UQoK;1$9dX>)82k?AFtetU942W!4o#Tw!{cj=qkizT2$fGvoXmM1{lNf>bVIMZ6 zdJHD!Y#jh~6SBqSkH{b}wVBgSsnb?Cm77myLM1`t>0EM{3aE<&u`;HH4<+L?;&u7u z*WfM}x`cS+unpDd*M9UBPFG=5JLLE|@jVfwOeZ=x=oR1q?B-NU=PhO*t9ISI`J|%! zQR8#}UJ!r&n=%OwMRf^S{$MF=5@>Xqz0;v27~IL28p(lCk|o-*aB3gDfl7vm{&lIN z_(wyT3RO;k$P(>1?MY^-_I6H;Qyj zzwoVAu|1>-YSxpO%#xn<8EY3(4U{AxEMp0l*#!HZd`R)4E_$P$2-@P4jlZ7^mNO2J z#$zKL-)_=hsoh}=e4w}txP$Clp+tnj z-#2;c8=qCt6i<}D&3yy8Ya)MtJnGyN%>vg^BpafE~1INB3h#=uO8u8%Li} z2u=?F-(o_b3IjC!i$jaqeJg8#!T|lJCX9UE%I4QSbX1l5RLKR1X_iABq64~Q+{C3- z^+4d)s=d;2n(NgfZIk@P-Qf#C^xqqMOIoqqN;rO|{~6-K~X58UrwUSWBLK&&d|Q z{IF1YApLj^bchyiXfee3zX#LN;nWecEb9q99)e~BBp3lo)&y855QQ5;bXA1=KYv~f z$j&kky-~fvM)0Es^mcfdGpSJYwTNso?d#evjIZOPzKdGb^%PJLlC#2kwXrKuNasTf z|Forbh=9v+sdJ9t$9clfdMh18fw?MzkPgw&_PnW@*6_b-(4)m>$A8rE{@;APj9t9m zzIp~siZZKKRTYSc-u&v@)+D^38-hFWm`h?sK?quyYb<4U-~+8Y8(|0(A(hK22sf3T zSlC2GoBPJLKfuiX>b+~UJSXut6JiuY?^Y+^!Frx3=trF~DnX-BU~S&WiHP<;HJX{x zPo1~3WJn#L;wPBTKE7ERSaiyHju?>64rkJJN<@rZ_>5zsu+s64VN_JNFwn8U`1OoQ z^m7sw@}j0wHs}WLrt@SMuR)u}LnifyKmFqr%z1$@4PlWp%23%M02%hw{ zHD$6s3L_qNyp4l&EP+7RCcv=@F zIF95ol|+B#qr5nNgnSZ{`t~!|tVGb0rc*A<=I$o?7oW{D02+oo@NWGPm*Vt&CMVB# zlOhlupid=XQr@Sk4D_=x6-Ia0Cf1V0;!Xi(UBKq!y2l-e^Hl$t_J&T1-HF!%4Zg*j zw5&f9+E60F_k%)ZJ;y7RpEH+_V947aEU3T`lRQ%WeH7@j;o80l1e@R{bkfV(Y3gZ5#*6@y{7O!yc!BfB zyM9jP_#Jumyj%t~_2HSv7We(xdSU0KoSQ{B^H>spymM`e6QiAhy#PxwQET+A`HL#6_2Mm$Y;VixlZ@>6UO&(%miHC7=rsq#L9|y7uMs ze*33mC`0b6&Y1H!FSsRJZ@yWPAQ0Fnh4c!#*Tq3(b9_|>J+}=l0wIi|SaBk}E2S4V zqdK(tEd#Ci@SjAEyW=AtB>IE+6U^T9aE(e|2vpm7Va!KitwqZ)Gf0+l({-({lJW|R z;lmfcZauO30;wVkZ${phTEoy%xIa#sKZqDKPyB#4tX7B+CinW?iT-MImCB1paiD2H z3_SK!NTtG7liWZr8VTVrp^>D#bKizc4=&N`zBLMD@Wx?MF4Z}wViA`WGmMO|h~8iM zJ9eHyBX7>3ipVV5Z}9opRpd*j_(RxPgI`esDdzv``7Ow%g%G)?YtjB_@=Rs97*EG@ zw^BA%Y73#UU-uBT&xwP!PpmWvfI%iqM1o2HkA`X}t?3E=X)rAQPi!*S<^M zt(R@JhNz3^z#KyI0Vwm5?B2^L@mcr&V9R4M$~KAuVBu5ko?^w%X{|$wwiH zT+Q#7@f?bUkJ78T65SUNt1-J17*IEcpi)Q4 zJlSecPCqiK%{xIhCXAKZI10lHty5zhQ_WxsEm(mU*!H1%QpnRk1Nu7twFJiZXIn+8 z8IUUg8xo7e|3NjDLqdT~iJ_peh-iXACb<76UC2bz|`s9K!~No{`NoE&jF zF1Q!%lDKu+_)d>_`*_v=$V;ba0se}Rc0Ip^P8so(z+G-J{;AwT>yKwiDz4Tn{ffE7z< zGwL~T!xO@a1$Y_ueqV}84MtY(AeObRKw4Fi^ShKWp>j`~BH)i2tnWT%;$`nTmJ6?~ z9-3K^FjMt(8dvC-u2m&#%+DAG>-zk^00}$o4!p1E$P&p*v04%c^^so-K=?D7-@=@h zgNV20zT|gwl{aR!#l4PpvY@bFm7J=m9nrqzDp!n6l z<3tLPi^c5^+;qSB;XTV&Bx&Fze7y9B(vMC5_~ts=wCp*&cdk}012YBViW|w&<(%UN zF(t*B=wf5k9Lj#An)Y>(&f542c;@*Qw;Ryc*^(ytI`eV?FKk= z%Au9=uqY=RYnaaMjqC1IP++lPt0EL%ITRx6P|d`sY+(687NT~+kYdi0 z1tFwP0GhiPsSj^)WR0?_WaBz7_Rrtk>{?N<`o9x%+1Vf$y3lRr#RNew*;Jlmfug2$ zZgoB;N?A~Kw}K|0ArLjeG5^)xe#p{8DWYY}wFE}^$2BpUc`@Dwa-`y`yHea146L2F z*;Cs6QewO~TUWhF`_@8s%r?ikKiB@J53Szj1-D4zy2^ejTI2OFUKmi~F?Ar1Z~U;) z7#zl$JVfIe(PEE^N-G|F2hUIxz%6b}O;SGgTA0-muG})ER&Q+I$;F!UTCw77{i>2F zLqdNz-(>j{J6rDN*@?1t8~d;V=f$Xln@pM80mT#(V)e)Asm0cr!X0e0NJy%bcldc~ zA9vKQoQDX-->+VYUqL&AzWMx@E#qgk3kW9%NxQ|c4K1S;5)@0ZAu%y9waG!g2J254 zFO)-N!Ws{H*!PpThyRTfMvv*{X2Cn-0gcylZlS+empqf3-G}oEKZZi$q|Mg{J6{9I z^;GbZodUALJC)tja?m(%JNPD$Ij+V;_kj!+GqPBf*4}1G}A4IIy99C7SN1;$n`OTHWSZ(E=y69 z!oSx(eOf6VW{Gd^0@z*^e!Z|IK#_M&lfpX*dAIP5BtC{TPIA*#5dp)qGOr|EKj5jA zY1JSmr;d9nVwNVmJ6YJ6Y}Eu(V}sN3Mb{+0~PBuqDcNnskP!Xs}@$10Nvwf+y_Bj@h2?cAXt=LCI zlvf(d5`=Enux$e9Qp;HbtufokmR2z?=-o=dgZ^5>S`DzQ=eg$66NzXvUMH|~H>4-C z0(I2c7Wv{4`zKRI;H@c|{BuI(d;QWK3hL@QM!(1YXpTdv5g^iWgY!j40A*x_4L#iI zT`j$&<)Z?B<^DEivAq>mB#>jrzt6&)O-=;#Yg2O0TwAMqQG~d_kPszazN5=VfF+v{ z#GCy&Q4UC;pTHdaIw(tVWqw?)iWJB>a}cL(emckUeC@hN;Ij9t#i|N5{Kb0$#FQq< zPoI5Gq~TlxDHV{2R2p~{lp}ymFgyfT&pMqw%5E$uLdzGLeQXj)Ubp89%HqNQbpv^* zj<%$NEIR2K{Y$Qq>EH~+Rg*=XS7$d*KTxal()}5Y zCRB(Y=`~9|&W9Iw%ktj7hrFTD5^}T4{v`GFV;2``gcOX&7N!TZ99?0Qv90^31TR_R zad$@Qo}H<9fev4Ot}XJ1j}<;*(HC5h1TUD)wty52$?L(lZ~wPqzw8hh_3!J~Pr+qO zMAUBNPKBd+OTtl@yhW!4XU-(;EWa7MzlmI(PM6_p%Er)XtxQoR=rEKssmo|9Zmynv zxrkdoo|-+#%3;^HvD8J~h-z^zff*xfIM0U7|JXWucBw#L%4 zFAn^dgDAvn5Q)VH@B-g;WU!UKf*zuW(wbEutq%c5=ItXp8Mnn-(46KEN|I@&T`e|y zZ;ts4DGFd}PV))8VTvvkYH;YC|4Z_}AxZW>AgK(9(=y*)1Tp|cAXja~H5DiYlxmTh z1oRu^OG>~L4c{DB@=k4R*6=27+0^CFAH4ha*IWix6b?G=_ODS`9|R)ozktvDQU&D9 zxG^Ntod=Dihx=ZWdRCT;<*2>u;eBa4=%XAo#WM3-esKDT5;0uYp1xtJ zF;1>{C-x@g=MEr3{FiZhi-$bxHMI;gL)Re5nS1ma>;j+wg>{HD1#zXTKxVZjuWsQ} zc*f3JiFcr01eGFKhqnT&AM$S!RRiDBRW>IdF;WW}(f?%a^d|s&TGa|X?nuw20#Zw? zO-KK{qh%-C7rUY?bS({9jzDqeA|lAhEAfUAzT60tFs&0@H>yIlg{3E1{dD$_MO<@o zEucaS#zyCS{-Et&DOK_Ay2ct}V)8neV?W+10eFTH0cSx{h=rX!Rn5_DsLtp3K_^c} z9#}N}M%P2V&Obc@ck9L8BT+y6btsT5criDArtTP-`$Q}b>NbOM*Xux5t2KT42zA#PE;mL6U6tVyxq_X zm;Xu-uC~6ZclAU>{xHs${VRbEe^X5~%oxzQrth26e#U zNZp(8?*NMUGX16&Cb8_TCPiGa`}&8#+goDcFHF|r%gn&x&I>n?`vYY`Q;Vcx;o$P+ zN(Qw6mj4t-?Noy7FI@vo;pbk$?n?qYJ?K@x_>~i689Lta59THW{k{J!Kn$(iD~evU z!`w`fa!iBmj!xz+>9K=06yPokWkeSjQ6>(D*o~rcX+gG+9G({{GG9k??Y-WJRefoBUEWD}Kcc-Y_bBxG*R7K_St8I*kr) z6&*(+3N+RkK7cppIK9&Q&6C0?U$7u8Ae42=7)}d$8DrfI((CX8FJGgb9=gpEA}H;c zK!N)B`qp6E!cmI8>!-<#02CtDp*QaCZEhRp$0$0Qs0}Xx;d> z_u#Uwe9)bkZ>Y=~P_t8du{ff&&}53ZU0Q@07E$i7IETkLm-Xy(S$#2nznJT)TORS) zzLrEw-!f~Uqlq|XA{hPozrHWsTTQlCh-q6#-)zHqc_w}{Pat0K>COTpe~B=gt{jjQ zi#gR!h0Do}q0Fk9tZQqQ{y_`4v}3`0uTAZ$>`eRS8ZASmJUEVQDIr?`C@7xU`RZnE zlfTmxdOE8N>m}*^<5Kd<_KPyI*8s8d*S{(369u|nggHUU(LV2D3kJ*TS->LtR;k@Rv5HUTw*~h-|I>T5#v19n%`h$D;I;pae!!Ir$VjL zGEAUa@cDnp0;z=k{14B8heyt@xVAO8eT=M&2``x8(LKV2VGwJ9^~mW9q1`x#O2 z6mfw>eWRmse$wC);)KyLcg3K6M>yxsm5YH_xz+CLvupg>)J)eIhB{cHpTmRgoNqQ?!fi>gCKXsQ^5=4H={Zk zBgruBh$n0M+iyIRN|F1zCHiZ#sA)GCGSGNlhP_TttnG&vFiE#wJRrm^RzD4UxmIAN z-MGZ9bTVXvxF=)w$Ya8dTO7QdS?yDI><40TP*aoO>FJ93G7_#}8;E)YFX)|hx`*Nq zn!?+ft*2l-`q6*8T}J9Y42KpVp{1`gTo#En1i_gryJjjD0X{!_JhN5F-Fu?H)x>wU zW<9w+a=f{)b6K5JLH=yv!9Xhp z(0{o!9>*)Vw4N7a8MIk)g@y=)HH0DdltunJyb5u3QxXX*F5 z_RnYev$8{xk5V9(Hk46U3s3t^ovf{#3c*GW0tk>-mRIr{<7C5yAqiBE%hZlKiG^~N zBqF;NlzzG;MlatU(4x^rYbkqbX@Pw_-&j%EnPYfXrxM2eqNrOARrJ**`rz{-obWavQ4 zG(ONPPGAK-2@Y!6fOt5g(9ewpd6a(Shei*P6aD=A%DlvYzN1$cFKI9x0fjXn6Jjc@ zdym+RwxHo5Hk;i;ZDdrKXfeSSeKs_d-n-4p&Z=|DDmO+7cDDb;W@=OON#O-B z3M<`b&83~(=jP_BleiLc?yXGo*y%1~se+LMe!PjjN-vPVpQ%(0O7;yVt~!0v@Q)DJ zW+I~q4M#wd@%ygpK>#WR|Di755PM(~j~Pf9BvG}VWKWvZ3$vVlY(UH);wD=y4+VlhzY%yoVnjN!K92&Y! zsFpU@7At{ceL~-)*q0;_Bq?@^v*NHQ_Z3L|du8XAr?Y*(#MjI)@i)tpWa(0g?06>y9(l!{ zg9{UED)uBW0|1NhvpeY&qqy?Sabw6LmkNy3E|NrT-VCrt(4&+2FH*`5^Er)kiF|b9 z(!;i(KBFU4E_@y?c$5V(knPW+Daxm8<}#h3qru&MNFrS2@GkI5J>EK)I-OV#i#HJX zDI{#kz>T1-N|8nHr9sE0>HgbZy5p8sRnGb!tHX-ucX^+dCOV|*6Q44(+Xf@K!tcJ> zQu2RLo1V<*Vy;u&c#|)1RI1Onm@fczWx_#qYyv-n6YAPJvxib9Gc(LLmM^fBUf!5s z2e@u-#_|940T5L&>Jn046pJ*2oJ+WMuKMc^A!j8c!QZIFHv}rqXFyq9Nj+gk49dd5 z%XRtZ_10`n5_u)MvoC(#pzj^a}a|n@zuwr_FHvGz4NuDq(sYPWJ zAr<75P1a5h0FUZ=FgN@sx7=IQ{gB)G+W@iEP5yNa-u+DnMq}{>Nh$nXDsV^}ta6Z# zM3MF5Yk<=G=dkCdQ*=ljU3H@s;x^@qz^5moK7Ic^t;DydP}!JVv{rf@*-+5CcR)JZ zhdXjZx&{Ln5l`k_XC+}_3D(>+W0@+cdSEJ|{|9R{YJ0@bpeLQL7zU{-j}EG9V}=Wt znJ90~e-&auNX9Jv|0uqUANlg@z%&b8?lXCK@(T2mc*P7$BB$(aoi3!M^TQxI^MQ3j zxWyAuyp@1`;D2_$@NhpUj|CbcwW#YZ(`0ZTc%S>Sm+iN!a4C#PHU;zQ6`kc7#l)?x zGme$}o<7fQAbYi%csEzJ{R}m+sscte5OcH~N^vb$eK*+9FKzB824iWE%7z>rcOkfX z60CPcAZGv%g?ybbx{a&u7$ZRpVB;FQ4U=>AhxM##e1Xi!0H6tC^!NUOstTPd75U+= z#siL;4}8*^|EC8vQJ*wWg6UAGV{QTilff8u7Yh7t(|k}xw^>^Sh8`flyyvP8n53;$@+J5_P#CA%OO9^p>ZMRTeg5^$IeL*Y<(D-J$H)dqZZl0+IJ?Ax zPqlU_Z6t>FWMDj94w-ghj69RH#(sqxee#*o@Yj?pCRxK5pe;txHpMqfdG7v+mo4ON z{jw484apOBNyZDkd^;2*9q^2jEGXU#Y3PL~f$p0g|4n(S1K^RM6vG5%goA#x?1`w9 z4l*5JN8~fk7Q9Zr4E29OPLXERzs}dds9e%X83rLa`?$nF@;n746t)lEPdjyFifR|!g42-w1?}Ok1JCbJo`~RQ+_fkj07hC@Y_4(>`38_4P{c4e+Lc6K_a8@KFB*Xs>92RoFJQugwGO_k_`is%|qr$KDLMA_r1}zOUgfiUkzayV# zV(7FW+5)I3=7b!sjN7L|71A7Eyxn|(;ipz1GU|%745Hl<9A@a%5s=4|!3Hy9^DJ2* zn$zuubg-F00T%694hH3{Hr&7*2gv2C^jiz`o0jN)Ft(J2b&#c&UXaQo+aUaiGg%S4 zT&UaehFy|GAj?a?+XY?#mM@TzpS)zHoj-9hyoC+y zDPJg0B|IyNhYFjH1!Tc)2L4xT1c!ysfN%rFn>CF8HWyh>8dgRx0HoNQ1F)@v6v!A_ zF{2iZEnW-?bGd;M;3b7qrpknzOscvc{oX@B$JY)PS9RtN?nTd60hnl2ucL~lLjA)P z5-KO9L^-n;@9f>gf&q1n`=7`64MN{CCS#_C_Q9LO_BO@CJ8MdQf8Q#QA3!VkOg zTgbvkE~}4(as3je&p##bh+*B&n=QLZhcQ?e8&ws3w^1pz3+4fJ%36*8+$$q=L>TbI z8C4`ZnlYWqg|BJNN?WN*;1-BS3qmO(q_REkTJT5x8_j1S&vs#3 zbyn;Lznw$qexZ7~FL%TV--Qc&(XKL;`t|zmJK(JR1C_cvn+=ucWU0?UjGNUIv-J=cxxwY*$nZ*GcXWw zGroV(uD}RFW|Qer4_-DDayc(4Iy^Yv5B_VD>Z$D9a3?i1Wy!&s~Jt1 zQ=_N>GP~tJ)w)_hI$1t3z1P>pF;U`oT?cKm!Bt=}#nPn0hA@R~zI zqzM^+5ZR+wSkG;m=rTkj1)@XtD*Qr4*H>9uxU?CWu*zj6L^{naFPJy`+eh?3fSo_x z+^hcn_N}SRaZF-H1}K_eDG}3+wHsl-^j&oI&wUFi+JJI6`P23?{4*Odv9o9Mxf8P` z26yAsD@1;KE9AESyWP9<5DG%K({;5z0FV6BQ-a8}R;OweO>_e5;-tcMFCcfq1R(>$ z@s?QDLnryXdz8B|os&26asTC!SiS3>N`wAS`Y{CerIX8w&V4%NcjawiQ)iauw38+Ii%Xcqc@r!63LeR z{hozKwd>gj#VIHnH!u`+FX#%t8y3Zb3%`6`1L$XOnpAZ)Pt{|98DHZ)tA6a zL^UQ`ZrsV0Oar>EI>-=e8v2sPavDs2T-nlClV6HAU&(&3=A_et!MtN|QDtW$eUGN} z@*NYp5S!6+`PZQS6YvBznrOx#=@pzTK%k#fd`xQWh~xDp^A6sp<)xM3ik9rzzCWqv)-=0H?m+SG&!KR z8F>oFkOy#}4WRg7X&|*;U?voK(j^K?djoO*4+qW;-BAi&bP1UGG?nDHD6s#Lfh7s| z#)uR^F?}Ddb=XpS{xSC;|24w?Af52Z3XH6s$l<$3KV7M|%`yuS`iQmJoVL~Wtf-47 zX5&krfUfZN-KuK6@ECrSvq|c7>k*0B!lc3ej(9!Ru-MaIMA5=r?i-&W_`lx%v{EKL zUh+(3Wl-pn&KP}G;b`EX<&(U#6{`Rp+E~Zy^sd9&zpAh)AzSnMIEzG>pl6D&MVvdE zmBlZ1xouLu$fm%~=w44&ZR17_j(R3F zsF~)>HC7XBsi2M{e31f12$nH?o|S;*H6DDF=2Ay@43HEoh1Wo6^99;OP*nudQB<9I z_#nGvIPXAZ_?6;!#x#l?CLg%CT6#hGtPrj?6 zI-PfBDR`5!I&F;RQ)#j^cH-!D#_DYX#F$4ln7aIhr*DC3ca zi%L>Ycj-4H-(u-IQUFCAN4Mepsw$oWif(H#4KjRTXqZQS(&uMxHpOGQi-%6qZ-B{Z z^&&hkUMR|cVh=Zn21LC)5lxDx6q(Kr&ft?~2#k7Nl9V*Nd;GQ}l+dg0Dbgb7{#7A# z^sS6AQ30n#MKK^la&e?GR8Iw#{j2_GhUbw6=ik1Fq*ixwHRq5pz2>h}M;Xo&xkem5 zK~bEg3akn;<~-+1U?hfe#*m!z^Vxdne05IJ<)Mhn-IYB05;7A`_vZ5wM-x(nS1Enh zf&E}EfB|U;WDu8q7*#$_7+rS|&|o+55nOqV=hEBKY#Ba@7=nx5bu<r&ul@@F7WD*q3;>XrjnFB=hm z^Aj&Vqi{9etk3)@1_7hCAx>M59sSr-#%CHnG$*|D1FYI_Wdg+b_wU7-BBW?2Vid9= zuD{;y-xYh3oILPaz@EiXwXn2|;}&qzazLf9l7Wl2m)S`C4+@P5v%KXtdUf$i^~!D4 zj;0(r7|OuNs}X-Xi1naFsko-hnSxia1La74&+t_W_E?}USurgKBItd)&G;V{8?4so zsruFwW?!&s5%*_n+Cde$a}qFsK->Z*jgXHq0)QqzO;0ku>1A5{c?~O zIv20df{X~QB$A|+0d-~z?zQ7INfbA-xg)9)wsE1jj-u;25m}at%DDzxz+1BMpSG+Y zp$Xu)KJE?ndw1e&Akro$*&r|~e^#hWGM=eAIVoHh4`2k#y4EQY-*Fy_>g?wg2V?dC zXoh9BZo6x#9Tl7Wj{LS92WJA`Db-2y(P~qjEIJ~FmA0;MJxR60xYez0pP}?8g@Fn% zb%m`yP*njNR_+Xvo znxiXr_Un2(d*WS#4ej-O)YCi(;Jzv4VX)V__Vlw>(J`K!JI%Ai;rRp!YluTaeU%hw zsH>s?hnkdRurzR-ti8k7`VW2lpCS}px1K~PDP%z&d6K{M&nOw4j=2r6j}w|is{Zv7 zIbP`A-DTBP>mkOHmDWdx52_|KK(d&}L)%s2Ln~Z5*4(L4iqWm=8FjkdFRy)mT1&Bo zdz?9&%cp==&*$%mTrds5X0D zKQ~_?pS6`@YN|#f2xfkWsHE+wWLC<*h8{YdVP*JZXcvLG;qSmABV_xX-p@bYSz z+N{DGY`2YFwf3wY{3xZpQo*zm)A|tnOc{)^ui~oz#uvFLHeu7i$)KUQyL2yN>6(!v z=o!`3ppy{B=KBj$nYcfSWo!t*6-O>`>Kb8F*X{7|4?WVcO|YxQ9UE8V&*yVhX5;l_ z3NP?I!3%iC6YOH9RVfVSOh$I4s+q;g#R4$AphUmvQ~Z|gi~|R^42;wG0V-|}9GHSX zJC|ocsOC6QIZ6#TzydQvLY9w^oD+0cRj&YJ z9Y-95?^r4n1!G(5LU1<{>i=BHeb=JtMC6HKS1$ug z1nT}m=HHTy&prf95|_Aidt?$g;Z-0^ciV zeI7H;7U6s&*v^lf3T4=q4dV(E`CnAcwemWfSYh6{;u!r#{s}A^d8#pD$vGf#qry6Ph1kF519MuVWIuax>zfw<|LEBe-$ z_wsg8$s>Be`!i69_BA_9&tidsmYD&c>zj3*|eNbu=Ej%6`d?XdwWhZLby!LB> z$-#{0cHJV5o(^+Gw_}#RSKx;?9?*lDNBOI)e}do;+=rF!W!DLVS_`lC8-cqiKs?Jn zxu@Cjm3i+>W*X1LG&Bkl03}4-p8R+VxVEZuw?5g=D9?w;H$Q^J(c7WjL5~nS%{Vjq z$!Lu*NVbTr{LxZgeO;E>?h2~y_twlu#wklxl??ti+si_QfiE5ia>>8@GZ@;4t7h0!MCl4Le(xi$W+zXK(ytpO zs9N^+M~UJ45iXOBpL>Z2J!H3Y1~%mvj~~tN87`$02a4n1`caKA+#!Xdr_%(%!dqV$ z{2*#d8|q;BDmTlQ8ji-mVzXfW5@9_kl7=WIazB@e=2`9dcW-y&hobS8CgaY--QC^8 z-HuDl^I=Euur3{fKb2}2`)&)lFa90M!~Ss;^b=LxhBo3kuK}%kbEQ}NF9-J>fl8xx zx4jC1KYmiM^-Udzmd&}0&rNCGJi3TmpD;-e%ZPj~ve9d4iN4-uuFrm;)^|98oTMgg z%%jvoyYgJP>X@x)7EmVl#4I)Oqxns0ea%sOkTe?)ad&>-fP1 zHAz?9ND!q>c5lWh*#ZCM`&ck@UKNbcPWo{qVZUgZ8qB-w)7t!grN*mp8sm?!WX^}r zurN_H%=mKN6wlUBg`rPwpEeNOp$?T;puIeh6q)uN*8;T>A9s|<#kS7sjm1(!;aXfqn7wieXIB3b)g6m_OrjT zVmAUVKjX2ro&iL4%ehf1 zQA;dpv9E+>gWD%s`yQ8Yiihjw<}_8T{)|IaYj!B{CX>_0ScJz4VYS)G7bXX-}O({yCLzXW*WNFeCZX#$+4wcDO~8vwMyUl_D>1J8cJt+>!lfB`??Hzqu$;=R`;iZT7Od^xgi!dWiKQkJ=RKoMP`!?Bb;zb{5;<)9_UTl~=-d_gQ z%_PH-Cxe8c54nT~s5*u&-kO1murL|kyqDetrQhwUeGnU!y}>`t@Exxi5yFlhu*yC^ znecy5c+6kO#ZqtEx8&sCHaL%cb$SISth(t!eW2$Ef@M429Zht+xW9hh|80<0cw3+f z)6jaMcWy}T%+bhc42{u%3d@`?Tm%>E#s#;2q_%$zY3!#4R~z4%$z#Un2a;sF(vqAUQ)_@N%JYeD z{*Ar5p;PMAm1vnOKSdWLdg=_y>kyf`7IdLSvjk9l@Wxep`3ol7xR^6+J^Hr z03QGM2p^gL<;^x-EgC2ui2eOR-q~`NUSATw64bM=$4@zYJjFI8g%|Za%vGdl*OQc& z?FwH(WP*N@n$2w8t<~^Q`FQLtUAoiFEjF4$1>UsePwb7O+(LY;nwX5aNOc94Lzqm&pgQm|(^|;>xN`Uiu6o;s1=e;%^)Nd-m z%5PgpEJs!zL7x7d0sboIo284!84B0G>7x$TPnN&k$PSXbV>y57?CuP0Z=X^mxoC_gz}2N=&r2JROG2ZMHMBpIiBlXf$eiTtKO%V7<`;3!!RBx@Dd& zs}{qX-^O{CJAI~0TmJCyKILe+(#XE*OT|0D9ibizp6*$F|1c@mev)}~qpxL!v1WKA ze2*%2wXA7eqP@81cPh=M$wf|=xV7B8wl1_^tqeV2e!2W`;VRp)t@OY3oPT&|2it(t zLiC!?|E#TULVy6Dj`f8UEXgy^BGx1)^i8mgr?g3AzUPm^U{Wv&i#hxQmVia4^SH>k z^k_$NxMuz}Y}$F-*aHq+x_Z`0&wIL2+poLBDD0c`Opf^Na00IDDDzZvpAI=^ojpFR zCt0N~!RdW2Tg3$a^q~_F>MMOR(=$NL*+FN@HZ0A_$sqvqYJV`1elOyW4~fv~{N5cf zZIVB{#P=?Tgevh3 zxYvEbYko#jHQm+=kByeNzFNtf`a2tHs_sM1P;~3^(KgxV+vH{I z(XVLi#FJFGTe0_tC-HV}Bx+>U=u3zP;RoVCV;OW9@GJWeXOP%Tw5Smto)TtVfm>Is zeW0+bpV0TTcC<&~j0vpdt1qQ%LR9t*(|A=6zbs?(vN~E02Rr}Wj|2qi;-#_e)wDm4 zPix{bAMTK{E81Qq%F&HYh+JMt8oQbNTT?>gyAuD~8BPU14|AHa8Ii`-E~MpIFpiyd zp_cwCGP=%Zr((fvzGB3&=mq$14Fnf9XXV660Q}Pn@|Q7k+}1A(61EJS-B_79dj5uX zV+q-zyL*5U*V?n=+_)eU7mU_Ai$UiUgf8P3Lps+lT8-{^FNy5>yN$>`9+jJHm6>pd zRUa_U_&YgN8od*eJeEJ}L)OE@jL{4DcOu^ddf)iOG&SsZ^^g4QHzro|ZgW#mPvIpw z=Xa)-+J6~yzeZX1vt&2_293_Bu}123=)({4rp1f%P1)ifBvc%1XURN&12qZFzA(_f zt?BXpp)1x&MWgllN2qhe}moMkM2_ z9$yo!!sBXiWqVhe|JJVi9eGy&>WBMIZj_4P@zV+QelG9F_8~`KqoSrsb?hw=d-a@N#My=s4w!jy3fU??;!%SA!Y% zd&Z9pz3$ljD_^#aKdjZ48XNeYHw;p`JA8U7n*17{Zpy~m`Xz!g%+~rlvcXJFsj=mF z5DcPcp`LD#^pc|AKr%C^)7e*z)kSa=UeJGRdsBwi|>78#k00L?>6n*Db9Y%?4>D? zjT$3EA3`ULJx}_x7phHvQZ_nmzwhF~n}rq~Jnq?2YW?p4i$cKO+{s(M`_<{MoTL0U z2sHB~Gl?HMCS&I_{Z}KTJ)SPy7TsbC?y#41AiiEjV{AK!aa16>d@cc2!e)9QlrXFL zMFon))l|{LUJv>M(g5C|)7^{Th<1?tYwV84Njwl3e$qxlhkl>n`BhXKl9IH~|E)$bYKQ^&wmm#)(`m0iSzf5u;oPTDehFRpPH(DD5b~+L z{H>ZYtSD4>Nq?umr^Ik3bgA}8bTCSc7__>eqT%&k5x3meoP7}G9k^t@tIEbsG9PUp zUk$eqTi?DjWyYP}P@0feJiaUp{jE!??|1HX7R%5lWnTOYGjc4}V+J_Thso?EBK&>{ z?-l6N!2ue%vkAW~((SBUM{$-gcre@K20_lvg1=GqAjK{@ufjm5|JrD(!6~%a#^dM8 z&nP`KkGpEf{jQE!?e95d1zS^I94Ho&&eLpj&i7||Wbg%DBmCc8P5YlUmYlBkj7xXh zL?3*Xjj@D}pIuM%z7CZJqeII&F3#iZYlm$%59Fo(%}#k;yzO^Ii-vR?owvAqcdoeP zwwz4~+1O|w7?6PVhJuqexahU#_$PaVQ?~y_pRvz*8Mf!q?UGi7SAUcGD{xh{l~sL9 zDWix{6fktk7tjhTv{XS;a2EfiL!(>4jB%MW(|)&!n&~#zYCBoxok2`00$s9cG`^k7 z^ShmIZRxax#_~p~HlJq<-MT#9XJ6MSE;}msTCqvNCg-~u?pL{-)H&0z40Jt}Ur>VN z@#TNX<1WIaQJ%VOlMs%h_=;tJ$Sv0aF6Q&sWJ)Om;rO>It~6=q0D+%qbD1N5M)g9Z zS@NaK%cn_O_5JW=_w4n)>}cAt&74Tc#20~_UB5(*ywr3^T8~ROLFhoDLeEcajOIU=_TI=dk)n_wNQIuX8rc+2%_B_6DZ#!H(5+z&1*;IZZ`3VAE zlYgO~zCAsOs}-4!;d!rloPgDuFWq@^44{5jRr%fe9<}m&3@3V{q}yMF095$H?_G}# zc=cQ1v2`kq-a-p7wRGqeUg3!{ub%6;z~E8qa@KQfBP?Do_}!@Sx10J&QL;<@!5WjS zpk)3y2xV9~PU-#Vpi1_LmNOX7hZp4RR73O1V1@!q`dkhIfz*os3)G(nND$$fcfS(v zecusrrH-SV$VWV95hrc08H`RIfWFN1E5F73|B-Y}(RFrPv`u3>X&T$M?Z&ok+fLfp zX>6mh%@eb+?WA#Xzy9~-JY|eCPWE2dbIvuFHfd-WR3I6ex8w0t_TdEENi1)hUJn?S zZ{5Hj^Ct87@B}!iHRCNXur48gNuTPz7b=U1A<>N3WVT;=)Nt||T5(6@+I6%+6T9?@ ztTk%7j~{9ks{FvTTf2y`986E&)8zn(MC`-*f$@RlPb9xcCEFM^L5Y zMXxfFexubz2-?THY7Mujtv4!>NX8dLzPp||xsPGZ3n#F(`*s0*-#f1Ew{rr*t0Sam zP;t^nkGNpQrbB0lpMW;K}O-QK$=tMP^ziG1Ofu!f}s=)qSYEJucv2~P9fmfx= zEU$*U#3%o*G+!Vx|M+rb|K2~yd7tpKHs{x*2A7)6a#>WJ($*||lJ~nASKf3V^?i6F zyZBN|ZJx=x?#GC47Fkj`HaX4k=X2mR*CGBxjCqo-8=2LVa9ucOZocK8o)hUcc{6QK zOA8Cq|AGQ`YiVCHArlbl$12V zzGM!VaxVq0E}Y*}98efq=E>)JWbb-j0R3GM=Gb)2CC_~**O!dngIQ z_dHGZuhVTC`jQ7WQW|#a72^*$GXy#0?iC`eE=Lx=gMv||oWff&d%^=skY2RFQVp-!d+p&Jp@f3mP@4JiF z>;9?j?bXM)|2cFcVX&K0&1WuC&uw1OUQg2xhX(N3R$J%aoiI(MW0A~ojy6#m(`sJz ze%of?dtPp?ti)^KoaMcHj^imk<)n#VwQu}m?>86O-6f^+F*hX3*;EOqLszxv7|HZb z^okk=@^3$bhgONQy>l|T1%^Oz-kBrPx*!|9aBy(O@&Jog1k-?#;L((lR1C2V5ZKrR z$7<;2Y6^tFHG-i}bo18X$KP6I_jR@csP0MBoUKa;66wK>_Edr73P22unH6!z|;EXZvjX)s(&z$(>AfpO0XI*Ja>Rt=c~9 z)%d?Dt&SR1Ivx+d-|D~bJJeZ-K`0kOE@V{`iYcHZ#^P$WZJ~d(K z-{^%FK0Va5Zl@Vf25O5&Z`*NX-6~dj+0gOg_D$5yP0EMby_yt-9?$-12&p}-=JDD3 za=GG}T0(7;fNeC}p;#l_9886Du>x#(d2XH3z1pi%SHkPwc7WF12|=4A$j3<-+mQ5o z(46{no*=W)E-ZBmMc}j7;Y|N>kSq}KPW@YKn7SBVA{bjhWXW~oaY!VV_XH$Yd~Hju zaa`!BHGyx*@1&cWE;L-ZmCJzV_b3y~^_OnC-6^X`#Q^|=LO)FztD9*5l_mmx+@yw2 z@g3GzR7=;c?Ij$5JJ~VSiYvAwL>G+F==n`+zh9`zuN!{zk8ZOtp$EqaMj24A%@{vh z0v_E&VgH_K=m9DV=!=KjBDaJZE#wz0y+Oj{<#j%WY)@rB!bs*@Vo73>WipIGLs9;& z(vr8Ub}!GtNb5w80q{$&iKh(c^W;XJkT&Wf^Px%!2VsY8B*yc{F}~rB=7T40nmU6i zNd+hv-tg>F39KB9st$~M=&fu?2?s$)mFTmtGWy)NOB`% z@_tme+bcw%=9L4f!z|~ukC%#H=uM)KNPKrknX#P5?%gj1fzG}AIb8NNoo*n9EE$2n zIRtMT7(y8jFTO3+K#USlgb_^d%gTO^ zMI^^m(`9xDAp7Eo&E&T7R94dcL6B3-DvC}>2iSrXcwpBxZa`yQk%$8!@U!ZI=e7b&V zzwlgY-|&A}e=vQd2M+|^d=~(~wFCQyh;Yqu_)_3`d&=j*d#N8D;gVlE zDuK(MqWvF}M2s!_F2}@!B#2ccbmJUgUIcQw4AJ*EPy)|)pg5B+@5p(7ct{=k?&s=d z(DH7EwH@WrW2SxAsKCc9led6%GwNTlS-|9!G)>F*4Grrm-!q#B8@@zR!otF)a=NfJ zEDWb-tnRf+7p-yMWh3sF=9T&}qDI-H_DTjTQaatscmYg?w6a zvulEFho<3OTg$tf+{y`^gqDb%5fuu-OXkCP&FuiYS)1vc87=8z%;wA3S8WmtV)=LM^`2kz2`U6Ff09rimUSL~XZQ$r zC+MfcRao_Od zkPS+^vH1IPOfP`w@EbVuOTJ6b-KLX`#h^IJ4C4+1$iqfWa*zldvh)zbPfGwSGWKtf zD9B@Crsg~u5;NMf>T{7QnCWF$JLHq-a%?}(NoZdfBnA*$qLW_CC%#xI$ ze`~oSs439vaMbwB^0MYXe}t(1IBboM27x#>_a<0kH(oT`dj&9>s6zmn64ZLA^Vk2w zUFPm<_kC3j|HWf-F`t3fEN?YZe}l)kw%&bEa5f8vy8LPw@mAu2qiY__AUYTy$pW0m z&FH1a914T_LI6Okoc>A6L6`Dwp6L9$c2DqejL?48CQ_xQLMC2U;)(lyQsc(I8+^H9 z*Itqa(LnUI)^EM9DAn&hil*B0ZpQVe?E_eb&R0Rg&kQqteLDc2)}{m-hzJ?ne%W=I z_;I~JQ}b$Afl<|(56SqYT9XCo%eoNMIm`Is-^jvNQ_ZWS)$^Ypi2&${^BX~r?yDWf zBJBJ8N1biDPL1S8`@iEh3m$i&EMIn)QU&tP+r<*WYoBkE-&l%g zrXDtNp(jLs0q55nz_o`LFtoc$; zud#IbOndWr24?uzs`mTO=>&%pt}>uCQ~U?Pi7-uL#Y#y?X`?tr{|ve#nGs%QW+WmM zWDk1kUtT24CCo*)^dyhr1&Ju%4+&+gHog5>>Tplh{fm}E2KY6=UBt-hI4cxW2u=%$ zaar0KX?(Q-h>&0f;SB%#?#V7-W#HRU7S~0=(YJR3-TmPjE6GjR&#Y2|1(QuS>Xk|` z5NlVi)Q4~qgqpBwRL~Ffo9&5760B;_u+SC4T!o&cTEVdifc+zXitUqo@;;`<`+RMZ zLcQBLd5!nF%*OTPQg5)raxIg1f&Tl=qCfxbZg=}B{+X~Lxm`5f67UZHh+q86fnkZS zQ5vh;9aOqh@xtpKi-q4Y6|GwZ5Z=7vu%>m$n z{(4bKM-VvluuSoMfUCA0!xwUm+w{jnK%#jJ^p1S?Yg{ptU$(9>@7P8N=QnOH!BV_Z z3u8Sr%R1|r`)mL9vedCxV{W~D3ncZ{yIBSu*99a?*?>SkZi{f_@;|~w(z$Twoey?2 zL9E>m8&LcYEA~3>>kNLknF8ou#8Lf*XX}RHw!jYy*1OwzW6zW_{vkTcn-QRdYdLAP z?ScP90!1T^)4`kojy-CK9Pq&yJxSdEG;JPK5u^XQW8K&`_Px=jkP9>@YiSpgs3L6p zceoig46|R5zh;*cpkzRK3_Mq44EzS?2bq+uu#JSXxWc_-CSODp;0@TNZUK7z_K@Fu z@P6szrn>z?s$DkB9I6gspx=>(7Pfa6a&@8N5Q)>kK0-G8p`(-KH!q61zUz72a5mbB zeNZyb(1{Pfu2M*KUS2%ZKUzfrKCO^yFc#LNw@>LTzR#^qliP|D^1G-59G(&JPz55S z1MZjty8;ohzpO>M@#^^`v*&>{DX0MEkAu11?TND6Ml13xt{skQ6*IacNN2uWuX(8i zqY*H!A>M&8r$E&S;m-vyk)*f-{g+GUZQ-~{y|#tQ8l3URc&mledoRDUQ&0N%gR7%A zjdZUTTTMtBfoT@7DMUzuqw^}YZ(U#&$~s823-<_qF^l~zpPH@}3e+kJ3I$7ZOFAD1 zp>#ZEBA?{9jn|F8{p5c>`)2p3dLw~gylR`{184zg7{I;$u6&HWVb~fx-oun$K=5i- zKg~|^*nbq0=sEVhPnnnvP^;8lIefTGz2&^DVSL;#d<4Qkx52A@IjF>+;(tj??L5m> zf%^Cd0bEI#0H#@)C->C9KMxkxEj8_@SU;?o#~xlZ46AALIVMt6W@pw+ffkrN+jteP z!~i}AEeF{%BXgwo?DyQ?!)*W8rd43jvKzpifaks@vnlAcZU;tQ!}a}%g8!k_>aqUi z{WUdM@5*cxX;9bX zu&v^KoK3Cv`gjqbevc8Xf9MO&e#uzs@|fy$E2CLxD~9MO1nS)blK<7*IQ`2_pD@dU z`>sZUIiGbi0A)VGSgX-ko7xGQA3eOBF45U&X!vZshhKEuB5l5G+;ePrNR*(-K@x`~ z6v4Y%DmcvLz5s=C>W^`(E)bqP9+7G_nhO^5r75uq$|gfF!#V!@$pVtDMHT8(x-QpL zQ=XF_$_rs;4ZagI=DObJQ`=@e6-)!vQoV&xXVoH|#X{dkDo{A(lBP z`a^2y!?6fpfbC)LXXg5pNF^)An&$#=oSUf|d_Rs0xrK-)^+B{F- zW&3`>;r}?(DDbgRV`mLfPovc9YCGkcr+)Zb?q8r2a;|t^u4lIln#p_gojg5>R~-;- zXP-Xl0citZyLHm#6Ix(*-GaYS)LL}+U6amFPb)zGgMTT-895W-=TTumlp`1%l!*7K z^~i)=)gsbLPoy=l$FwON#$*WxdtNBAMxm$NXRZ!JFVRy8KUmc#*_=^WD^n>zzGZk$ z1qTMm)>+?o2wkjIhTg4bc_SG7t|v0n_~4YkYRlHJit2f<$YJn?YE?m=$_f0fQmBoQ zAG|bEp{|;{c+RIVF@_>FBu{jCCaqN5R;T^t!3ZDKaa3BHW$?oI7Wl))AdOa)t{ zc-TYitGvg@@|*Mv*OzUl*#P@&_cW#a#iYpucUTk961C9d0jz7bF4w>N_b*m<{Im^u z=Gb+_I@NrK?Bpw!k~PP8AGi7euI)S$z+DgBc-DJED*l+J;$`0zf|6N3JvVg3GqDDT zp+A?%ThG2R(U8OOrW~^NXg2^Md$YCfB?&j+O+vdl+{AK4updLfuR05O^R*cgX{*!#|5Nn0#1*Y19l76i?t3>N(2+3UPVtv>(C}Eyw4>HOKzCjp;@{n~J>PVLo3Uv! z;P*YsllbA-w@6vq5qRl^udVs`RmOveJbtTisdy>@2M^*8A9o7_etx0G95Zlm@{e4i z%$0xZU_;N4{2v=~n+TyR36w`uCTY5DcipM6_YZ)VIcXiL3bR3qUGT5%%c~DrggMv$R>B_Sp&y$HdH-znFk3_DHL#kax%Z zOVRNM(4V4`f}9~K9yUL=YW(S#U+;R+v5`A>y@xvq=KD}-G1*x0r~W-!#1#!Z{QS}`Y2|JPIRrKmqX z_}UK!pY0fwYE{CYL4sMtPW53CFPH-+uu`|M2?v=}WFW^wLfn@c^x3s;k|<(*u6t=mdEt zxvD?8a8s2JroYPMRAM(;CI6^MFO(;Wq_00QJ7NpxQLFIcx%j=#|8iCbYSQk7wXIg{ z*G0H%f#%B{okoN@{@o6&R6ff2c%5cj()k$I-@sgBi+N_i2vi_D;f+8H82I&LtZpOL z5><*;S&?_<#y$OW^O9p0u&}THQ^?o{^-7)YwM8R zl*hB*%jHuc1)t-6#*=vGkWG+L5c$Nq7JKmw6q-G&%Yj`9FrW1-L7@B5kh6Z*khA$Z z+(2}u?HVP?Da0qr3|0Wh@><<}>8L}4!+V0<} z#`YoeAi5H`z-OrvQpn}IIo~2bG-@Yusm{GNc=g;CP059O0=&pQBgiLr12rkZcz&KW zK}$I|oTwTKr5Zj^-ia%0q4=gMGJblf1$*P*^b$oNrAai#N&Gp0rx#RKJs9{+!c^QM zSx7zVBTel{s6G1(snVBh6*`dv%)-KA??2T~6c~)K_qtw9T2>k7Ik6Y)jOQwWH(Qj z&D{4K@<&Dj(dsHykQ0?F5Hd~(0(Nn*S?VLJIgy@-`5Yw^{amt zdS(eHIequ4#Mv^qq5Ed%VbpBCswJ7xyt=*<5u=5$!;hqgt5(JMmMLkcTY!=Z_N^Cr zPhBVm>;UImLk2mMhTDp<&YOvpL+9BoVa6hrU}@vkvwB*z7RP}8;KFRu={J%k#~_Rt z;U17v>QnS^ckm44NS3bNv^2N19jutcq0~X41Et3?CMM>7`{%)^-j~D@5zO%1P!%J% zH)d2zp>qF1o#El$!Xmv0|8Okax9F_UP;z*+I}wfkzMQ-kFk3g-`t82V3IDLQHl8t* zADGO+e|<$>w3|$SP_CHbu;7r{PW#2a4)h*S#gZkQ1my!1(|@4%;1wUpvJDSjG_nYG z!IP-x24+zJ5asn)XKT8vAzEgSNCGRxGE9I9!bvk82V_L?tNYBqq_SE2bo(G+RhJzWr7 zwt{*>Qz9|Ige$@h1uoBb+^V%7G}_lOeLm%%596afd812bRDf9yzq-aFg=Q!p#8|4u z@kqWi!oU+v$fJuxoVqFTi{7CIJ-yTo$CqXgLqvAW{}IY>qW3vgfu8rrw2>OUIP8HQ zxvk61`Tju)_1g2f|F1L}5xI6dY@%dJ6b2TQ9bCg_sGhp}^T(}eC`x7RV^>*Lon7t} z2bcmB0kl5RcDucE1X>Kj#vn4JP0bl^ez9fr{pNSL5$?ebNiip|R zH|C`_Dvv6s#><1vioBwz&w}R<* zWqIXTUZvpl=@k|X>0|H^ADItw_}6!b#9%kUK_VQwz0WeoaH3T%MJ_*J!`)Ac$jLe7 zI?zBZ(p%`CUXEp%K@r6X{}NC5e~_v1LOE9i*Nzn~gwX1rxBZKpa)laoB0c@??DzvB zG$l{c`ijV9pL4hNvjhcG`uKQRbT|sD6w|$-$nrw~y3n4euGaV8?0ksIGJIG$T$u7X zxP>5q&S*g6oeHe|{cReq<1ZUl)T-wcABUcQ|9%h>=|$+8=OF_io!uNXmrBaFZ$D?R zP>)_?U#jv3>OL|T$++YU+U*xqs!O-_w`Jo~Z~~16vwMuqjuB>%Tr*F+)K?SlzTIGP zM9~VAlk;qEJKg3BAxGugPZ{d=^IBDy@Dzi;#M&gk+-cWvQ0dZyg)0@yHHW(|48j@< z1!@#&xo(@0oBc%7W`#R0tpx`X(7BsLHcjAEc*j{u8saNwV5IMmWBLQ=83E3r*>EwDQKe%nr;*WfxPlHkgpw?or2zS z$grhckg`u(ADVg-6PDfPC;aaqTG*S;jAS}fRlY~%4SvLGly__P;VHS+#&}4qJw?QAyXK`}rW7YCOsq^tKG2W})|VgU zW`-#<(;hzm@uE>E-{H}76?(A(z%0@mLab2ftx2Vr(wp5+>( zR;#Yh{>N@!CgmuNc_y=#bx#$rEfX|@Hs2@s$fa+O8-^&C*eLmg<$koQkTJ6=F&(3w z3=j56)k_mx&o64U*kDs^kH(00k8q}X_8t!N=Z%cslTXE8XVUU;u6*=L8tYB`wXXA1 z51T(8NHA?cD!1S;!Z?S-Nb3KQeBe<5!Q5GtP#$GwYi4ACt&72nbwH`HUOk`Z^J2LV zZKpq)CM0hY9kzzR4#)CJhdFv@rdDTXLY5gM#Xd9uo9jVAMwL5|V60w6YGR5}es1Kh z98|;>vv1|-*GiY1B!0X{$Q1j{dO==B^#jo+CQ5$d3i98zd^l1N-?(lQE zH+Y%JMXe^kg;C!$4Hp9_ZBJY_>okQ5WciV8*KWX1M#VkkwJia99Z0K)+(CdBY9#?v z$EN?JDwI1B18et!0LI07b3lD__}$bk>4}yF4*P*n!MsV#k0gVI8A;^(h3YH_TWF2hM7qgFLswF)T%2Fq_N@oa#gZ0g zw@_QpaG9mQWbOt?H>J=(l-tm~Ot4;+g%`5*Qp|*S?qRT{CRw)F1-Yf{$$kp&2ga~6 zLp+IUB{tfaZPn)bFQWo*Yol6DN~k_DXXy|*dHI!Bi_WI^H}l%iX?zAom)KH&uU5b# z#}HCfn5DmAgA>K=CxD^rUHm4~NX5(H`qAV0D)s*oR>^QKBwY+1D$Yzsan6hpd{d6xXOT6JtRhpu#~3{qX?rvc z&v@L9tA?=W{@ibnO$t&)hP=uoFidj{78YItH^;pf1-?}!6CMMMIV&`dOPSOIJmrw| zI{*6sI1FyH&agpIN12<;kx`_SIad&k=b@m8ap-@^j|N|*1Ya1YF|t#7LIa480boao zzxT2wk2wiwMs&wfE~EXiO;wgUjh%KF1wzmr{#+U9RX~$8 z!6O6R5~^Iw`1*p3+9@XSl!eFPCXSe$S3g@KU z{*$?40>zn@p^N+e6vTJ59MTn&Yo8IA>|s9U_0H@TySEx3NWKi zqm_DCPX)s=Iod54wW0$fzpl?YRHa9b*`Cs`>%8!6pTUGVB_dd-zKq$AxKY?rSLeF0 z>QP1TA2CZgtMvpU2uX)*(~8w^o=PB8`s@<^LyMA-{(YiDXnjKpYejcscBo6pmR0kk zHX(r!hH(L?9wW0eO}SOqrMGCiAwbjA{oo7rgu+#(3!R>Ngm$>u6_N-^Q?A*ol+OJ1 zS65`Mv37w^<8hiTSpOq*n)#Kem+PegYZ@YB-r!}}1` zgRwRHt-dDPh6IBYgws(VJ%!ibMSN*D`uZ1stK6_IwH&PcF5Xk;^(M)oym-N;i4=5a zN;o}#Sk^*0$G42e%F?!DM7PstJty?xh}YiU;biZp@Wxk3lV-H~Wd)G1rR-mR?f+4! zRx!`yp-+3SYMNoukRY*2zl$#5ieCF|n9JY~>cf?1qYoOBsR;~f)=eReS;;pMusVsq zC_k^uF}NrY#$EW>g+>6l_WngwVHFc-Isy^h@ z#<9REF{zXwB1FGcJ9l%pehhb|U!uxb(7anrPhBP&as9>L8KPS^LZa)*^G{mI8<1?N znrULX3RQfFH9U&dZb#1K47X5H5emxZ8^XfGwf-9uqEx`aY3BX4w{*-f1H;T|y%VAv zio~`Xy(9vk5GXN{;)e*g0c)0{*w+ZKEorcp_+)5}C7xQ3*$3ru+8UAUyLb_lIfB`B$Ej`Ir2u zh^^=@7v)Xvec`SQ;ut}862W#V^T3XDR>tz4@jZ27m<^MQ;~)yyMO*fvM7CXr=v9-1 zv%T$4Ff5S5nphUC5_M4i>iv#3xZmdD8}hsp%70m+6m~-p1b_Z2x99y1Zh52vAsGx6 z!Z535T`T8}a!L5aFoXD2?YMHgbhXgf4TtWx2}AHp9Og~smUMH}~+N%ceU!|8Q$p*5b#CCUS5DqgyKUMBYz4(1GLqr^R)emUM+q zJP?Y*k`AzGG*Ach+ zdA02M_pf8#?AtYpc*FH{-{>*3p;@j2Hu{{<(cQnKz2mBRxY=A*gcQ;YWx1Otp17=bkbe7j@ME#KJ_i(uXi?!z>OdQ^%|z9MS!K(%y+QYy@=tCR^!v! zR?20u4yAx%u$stBe7S57GM`C9X2jmFxIUTmP{wh=VGFj^{z$Erz&f}g#9=)R4HcfP zC2M?K_x`^8knR;&dj8{K{2$^!U?q$>0R}F#Bbb(8EP*bG`U|yIZSAy*6Dt8Lh0`WE zFyW!{58WH04O;tV(ZH)U4{>1CO^*oNrF%P+_hWxqCA{^`?mBpjr&i$A+U-ov+Aptn%q(VkS!f%GolZq)5 zg$^1zrhe*(OE^LEXlcgh@VtS0;k*_O%D6>Rc4NHLqryQq`$$G)6c?r!ywF^u|4_*UDGC*Ib9W^~n zGtHDws%6rTYu>+Bi~O)UU$OrC^A0@JVZPRVSWF2%=?RFUMn0%GL5a22YlE@K5flM0 zJ6`rEk;@SP%PtCcYc$v%`2j->+O9(4Ux~a%-=%VBwQF82eBYglv=Zu?O1SY6_$FS@ z{wsj#&b!3~R&iud4g=NtVP@52H%%XRN>V!(a#9FZ)0kQ!r`yUdTLskzqVR-5f^3Qv zY~-Q&CSJqkPb>w5M4YS<^27_6d21xrzQ%}6K9#aSF}W4xIvuOew#yXu!d??(4;VJ4 z?-R(ZJ!5|35 z_^22JMoG$|VIS|*Sng$qq?>t#7m~^sjfKf)@#kzGF}XB?<0aT6T1;x%C9)A2^#+A3 zk&BW)@28?d-DiX!!x;a1=sL%IEmuP@;BEmN#7#Rw@!)P8Yl#?DfiCg2^=P3dFugiN z%f6a7{Hx|G$ym_lVe4>YCLpM`A*?c*&f=hJfiT#egplcSYfrTLERf<(M**U;=6p6B zHXI!H;X~A2515(XWq~y@1q;!jaM8d2bB>OoAX2Ysmc>1@JS20F7~kqs8b69s#HwJ# znbLL=A8yZO;OZV&^yzPS1wpx zk%#?>;c+lcqE8CfZyap;YMNXaS*#P-!Sxu@+RA-b7aCgpM=~Z00X*z@?@8GuMQOo# zq*>xTvhlBWF*CjXh}t#d*hV~5rwV5bw;Lc8i9K11({sl}451|n~}Ko>+^ZW@;-Dww}b5zoAniYmVQJDwh1;1|2gd~ARFqvO;zE-wi3ktK$f2|C6i&P5SSoQNkG5C0o z`H?{W*HMNbVzh@6XPOZmN@k}sY*u<1jt?p&t{E-em0#7p&KT_S%G=Z>o!+HrTqlgSr?JK>aD=Y=7Z*yX8> ziXWhWZ{aOXH(3z>NZtC4t5J4FLUin{ii*J6rf5w3GF^G=Eg8*WP1SQ~VE)Owtis%9 zR2ytyyocf|Xc-=QBxCh+u8g|0aPo0%@0jbRHIl4H{=UFpiB}fm7~`Zfh|H%o_eIK| zA<^aMP|c0(STLlM)wLy`g!P2Zqu)S7g8cuXNDT{b$p+Uy)MQ6JtI^THM7b`y z&8x@zQwFMV2O9>fRk+U}LT2nG^4Wnf@V5+TGE#eD)X_IlW^R;yornod{*O?k4WC;i zgzUDJTil~_IJjs(eMxP5MpDt6K$UtjOObeJa^j3fl@XupbbXGKXpoxW%`6H_E;js} z5_`3E0XB6(I0|K`9P?c&MSRj zG%u0K$dKa;M4FXW1vu+L>7N6t((Lnz{3GUUWhfRDw_j!zUzAb7OD$mfJpF^^lpp2M zhKB6i(`VGmv7`kvcDtO&7B1{@C8sWywDySS&miG%3TE8=h)NIH_c~g_O>I{4Tm9=Aq+s+d!c+e z5T)Dr3O^)~trGF|ks#n3dCpNTpse`%|FaQ_Cr`PPt@ET`{G}@S6c(?34YN)%>^S<& zc3lt&M(NoT1qNoJQCG;FK@L(j1Qv3U?4Zl@B8tui_b$(1M^+IPIgWHF1vN{lK3Z#Q zr1v0uqHC3k-XAxWD%RiZY1ZM=zH4LTcd+E74t?gNqpC2Qb_p`!83{)e=4yRJr=CO2 zi$-CcD9UN6Mi7|TEkHdXg)ns}7@@y694$*6cle&NhSxYqLDjg~9A;1?deUg%=fZ`v z!FxsLYZ(%$l>!$>X+{c&4Sg&wYw;JNlmd5#zxQ=x#n{e>8|cYdd`>6X?hx{MH6 z2Z}Bhg2{?f2q?FFhI>l{ZZ>c%7^Uz5D!jBFnMniqtU4mYSP^f*`v85Ybk!c3&>MsM#dxpr<{tQ_Xrm{ZX&qv3_r9WIW(6BmoUtmDRmXz3021Vg3 z2)wMU>^T1oHd+O&Aoju4c{+xD`ZM5DUAp(ZOEh+^IZZE_`2bwMW{Zq6NzSCf5>Q4` zPmo*U2kG0wN2}HoH*54FrHBNVDp+gfb7`ED7OxS5%wZovzq??;#0p~&)z3Srg`X-g zh2%oGG1TNPLhI-8R>f;Zf3K`T>hd$8YZxlM{Ygf=xWxZjx;2zwWR>7;hG3CokGhVQ z!KbS>E>ajd={4lAKLi+!4AZqAy-KcJgteJKG_KMi6D_xB*JN=S6>5i+jH`jEY%ztx z(1Pu{L3Po979dj-)ZSccV7&n*j&GzrCeV7E248{ldFFEQ0lW|t- zduq)49Zf!Ii zDvSkVh9{SblJMFJ>p$aW*Lp0W@zGv+RU}el3a=DNQ|A-sFKhJJmTX)N_On{wh)93R zq#>CXmRNH3t5lu*AdaO%xsvY7S<@vL<%mCbj#0rmFfslZ2S?n%czQ-Q4vSWY=C=EU zlDe>+EzDm=dERS0iA^sc=;~`Y(qq)I-TB)lnC@+mL1MJB-qRQLTfxvF9R_KcJd4y! zLX@y+AH>utq-X!kB;d#Y)Jl? z3Dr4Z;tKpf`h8n6hKH%H6_rgk_iUsqDh;VvPXn(A!-Az8Z&8J-+&+_>rnztbQaXUa zdj<#yK$5=}LB!12=pyTktbF*L{|iYxYhA7Q)V!`lQ2Fxo78-RuIz%#utagfW0Iw=C z#95l~SE?$(Kj+o2(()UdLrvR>GOh{|RU%r zj4;4bUxVxvD%$d%;@u>UE`hGl=V@B-Cm0EcXB|HUO|nj#wpfc2W+E+%>`usHc|`Ji zhVy5JR6}e_j>(FJ+DIR*Ju06Jv`B5WCy-A|fyDfohZU+ae1f1hpjXlt-_dAx^^%u-tV!`Xvytz zC7A|71*GDp+aacZQw2~g1Q&uKL)=R!Z#W#xX8!56o&IaaGz=7lv}--gRthwzkq=t+ zYI?Y}f+!W9nuF3(SRg}avJc}g3;&e}2mr9Ez$TtFs0$&ZNiByPQoS_9l=?ZBsIA#+ zxE&DW-l}&?yShVwc7L#q?mUxlur7=YKX*EFjkqd!9MUXe%Hh37?YmT#w{BAiQKft$1nKK!BBdKlz~ z?Yoo=jt}(3j{gNkT@N!}vBNJ$xu&4>>Xox3#?{FCOj9*`q%x9|j`c)B+si)E6D5Fu>_72il0p&1otLP0&+*yVzm^3I zacLQcWcqF1$g}Q8wM)_clh}onvz_-zazTMifFMEU1)q7`KTViUE`!aOdBdzan(Pa$ z5EYp=y|BGTmx~-s(0YN^edz#G7v8Q(sA!{;(#jRAX-0pqc9k1fCI{HHcUG$#3iOYt zH7uxS+EF|cZaE81X`jpimZXWQII3~k1qg^xTu-qQI+r2>NWhLEo4l-SLM?!sr8Yb> z@>@k0W;Qr|0;1O4h3F`1Et)w( z%+^iYn^G>pi9`m#PSP`p{xcmQ{I51Y6Z*nVTq^3yqeNH<26Y<=hdC`yjgKSe?ev7@ zlFiq8b;9Ni8#T~53eMG4A(93&gBqg*PNLa7_X6e;Rx-)0N~8Ah6dV;1D~uy=JqN5+xp9& zS_jQ4vPgqDuXz^8#lqTR4li0K4LEN!C8Zmnf2}vsc@$t_WitOR{xSuoU-W7#(%QUm zi6A{k@38%HFG2$@#td!w05|?Q(`x34u4lV60Hs;!XxZoyrK_$`G z42E{{z$r#?+`ZO%L>3i(p~%Nj7oUFYl1H17O0IfY@iy1Qq=Oa%;|$tojVv?XSyC!s zy(axK9_AwvDOe8AVYO4z!4Y^ABJUZh*YXdD0uEhE1^90&8P4<+iGuBVHE!IUac#=t z{bEx=Wb^%6+>Fsg1SLb^5}%kM#I16b?w7Mu1QHLLb1<{jrC(rT)6B#Z!e3ZgP)%{U zKZ-XvuiK$kM(*~?CtzOp$5k>KR)7AzGHDFqk?)^YCZwt}x##_eoUWFq2)~Sqe^C=; zHO;{6k_i4S+9dCe;xSQ%T>zOyHqNuB(^KTtU1*|{fCrZbon8@rhq2C z=MM3db1vBq2CPnd|4t&=3uwRC=p|*5@ z%Wj1iLn%XoU%!`-dc7fF6|TXgVja; zQ_SmRqwg)bSQPwDSbat1JkTUIG_9CRW9JrbQGKNP>7f6#b=n?HHgI+|&8##Z@^a?& zRi|QMjBu&X+)!c#3iyAFik;?CxPlpWl}>;bw#}X^Oofb65^iyhImY+bJ z;lI#8Z2uhQ$hUw98*hO3SO+9jcN(e}unvOt?ddzE&@<@galK!p?{}s>B=slUtkT4Z z?($=#nB9=Rie#$nmbeI*9u=jS_6K9$-PU#1XYtA4_t4$&+OM}EBncNPILRQgaG@y> zx*YHN!M&kD2`0AJ8^{*f3fZR;feP;7S&XCD{2F?jzI*I|io1IZ?^7Zif3_3#!nQe; z)NUCH3T8I`sFdnG%!bB3+L{_*DgG`JzZnUWuXcMDb02c02_K#ZZjCK$IBn4!{cFjA zBh*%_|1Gc?Mz0fqkv_B?RZ#&bHQ_(W5(MLSw1cz3L9=HV?-;Er*lYUwp>2ItKCFYw zLGr_`-gDpUVpcT4Ry%ci`5#-YlMz(l;%~hP%TaV8w3<+#JOv*^Q**esj0vqhI3?#p zl@kxjYX1#RFN4@JP@MI`>4KjIhl8T1zdGs{CGq+k}DY|!-U8fGx$Pi zG{k0(t+-H|Tb}&5F0pF#S5JXwaG{Rzdn>W!G$|(_{ogq~#LUTR=`!Q6s#OddQl%D4 zmWYg{vSngQKg{+BQ5h%oFd!k(bi{2#hDxmm<5M4lBWV2@ELT!c+JuhQ_Cs%$InCPh zEIO!28x>CIesJqleDG8BVw3!2W|57$;F3*W1zoG*5QIw;fVIIRDrTc2>eYAx-eId! zuYPh;NMP-e1J9#GJ!y^Q><29P?BJ@wj+8(m4*j0>;ALY#{wwv8j-k=L zd3f=C44%p)o$UyzMHRL{^SdKdp$l2B?jYp-*Idcm09kM@&UkC>a7WoVG`($#KK1HY?8Nm!Yb?Z!axV4FY?s zLYMEzSQUAJD7t5~k>CT;Bl+tJ8Q(sut5m7g{bB!bE%1g$Bj`Bp{T@LaCJo%IiGS@* z7?=q;$d^Re>B7zl*oX*MF)}zfI1$53w`Xu3HP>W=9B?YQm|<|iUKT!3J_O&xT`E4= zFFX-g$R$zzo>b+o*XVV=XB?A!>gJV)#OLtw#%vyF4`Q?GpQ&AdSAIptuF`7|e|3G= zq)rr(*^1P*A$p|4En7Y1zZof*anR2GIpIN+d>u7tK-CkhsKiL;oZ@}a>bl+rHJC%x zlRlco(PC!SM*}D0UB*b7o>|eKmm=xBD!jC0myg3SX^$Se#hy9XW|+XmKznSe($Cx| zizejNEF{pIk{ao)Irhq2@jsTn!LQQx`+AUVV=^WiC)>7d+fz+;O}25eZP&@RZM(PU z`+NU``*UB~d+h})N&RHycPG2@KP)k?qq|7rX}E@tMDSR<3|nC=UsixCESav-C}D{I zmLQ!OoVMt-zxefVD6bX*$QB!07(apn*-siUNdDEiq0AKYp~i2TQ+%lz7je2&jtZ@E z8+8~hvJ!^b$Oo`;l)^$}0BQ}h$Hu&vV5wg!1iq&&5{nL4$!{LQ{n%VR+$LDy2NBg8 zeTK>`869|TAHPmqMAPh+kcdDUjOtWggp7G#0JwsjGzn65$=9Tr7(1v{P96d8t&mC~ z4oXl=%5wt~pQ041oiPjcZ1`7KBujFtsvsc}@R;?xBIfgGofB^gUWoxKQ+EO_B^NFaHEt%Gv8rMIhz(;BO%HwaOv&j5 zuIAFMSd^~jI^$VcQwZjGw!r`mkJn@C&{ka74bN;(pz6BjyjGV%+*snj>VGh%`lP-b z>=p>Wau@vb7U3Z^JO!buR#l2vwy7}F?b}VPPT1d3S4i=Tv zyG&sL>huHsc1AQ;hluIQV*Xx8i)0HH{Vv|U@R|`1;y(zKAd2#w*hnd7t~ebqaB|sN z+Poo^pW#Kh`c7S);tqoE%9CfyGrT|1TNTl^r3S&vh((`&0=`Qk07^oPHj@%-%tTpy z1b)Fhh`b}6fhJiAe4KgI7-Ln3GvIG5Q{Hsq8dn3A6g8hnr0p#R-;K4SbNC6q*NpBM z)-}tb+;1TS5iiS^pvtZU8j)!^{UuJ>Y64SmzEeZH+H(sH80;pUk96A!kWb(|*rN1D zPZY7hKz(dSBf&y9kwN?ZMK~<^pGF%-Y%Ov^SUq|+qO^ysuLvB*KiX+kD5UqVbFDh` z4F^`~6-%&qstUtk1y(AJPhC$B%6SKr)md^TGE2^spv@0^LV5dr@-9JDf)vMDQ;Bj+ z8qtD1;n~DVan+eI=$=9J$G$-hh2##7YS*B`-5tZ<>YCN#7hD>ochgcmNX4Co@m@h= zN@KKjV$!PPs;qg!dLvQ50*HK<>58R-aEIQ*@6x zqZ;&QS?}u>GhPs0kg8IOXT4{B`ee2Y@=?tj(BDsa|Je#cWVp~F0 zDIAcKlIK*XMMVdC7tWnWCUHU0X&J+qP!JzI3w6sIqqzX2f{r*cTyapAh6-tqB;%uz zA>ac#&ilJbY`RgCd4BRVqT6}OMt`zMhPH(_OZfX|zR&VOr5oGa>;9(>{r_F+u<5jv z$b+L@a10=MK2*wxLXuV8G%t-(rLkw=`Pak+p6%DYj}HfFoUTr;J?8*N+=d2GL}bPg zrv?Q{hLGvnBoDq!I;P?<`Udx-Z}TscVGm+V61Ne=z1WlyzQOf~pnoZ;X(O2Hs9!P> zWNC>}73Qgfzeo~Z&C8(rMJP3g+JP+8WUq^^@x&%^-$s6$%ac> z(GL;gx>2z7mDAaxhZ_r$%(_92TB4E7kL+hq4pG{JU>ZnujjVh3kL@xwlT8pTELmZ0 za`XVMeV@Z(t~ov0_ncezEL=)=b+o*MGf`+J*CUr#rs*I1u3)GbLcL~dXXPb02}(q* zzmpEyqy_1gvn_e;r13&5*{5COvFFzy}?3+|eL;F9dc9g+RatY=B zbAW)Dc>P`ZQ4u^S3h`gzT_TVXN$jANF8t*U4XwC6B3DD|1x<|y-Dna$bGBzhMghK4 zDtyll=F~?D4%UJf@5mg@LE?$<;m09O#E~cQk)S8 z<$`$PVzCaVNK`ZP&qP&p;1HW3JU(b*{mWLWWV>!p0ci$aq4Do$0Az&x0Cc5AzW7HG z6LO9G@_FEC;a2t>lIY&S(vgLQJyPhFH_^%84V^~$|2)8h;$vKt z3*MMh2e@i7@x$%SGDIAPBvlz0`jTLSZq2B6VfLKFo28L(Cxcm}fT*9JCu$9k6cbMm zU;s<3F1`#GHufAjq`TFya3&$?FY_`@0t$V{mbgG1dY}C=tS+NF@keu?D!^^r4#JO8 z|NGm67^IfJZ^G;I7N*28p^P}w%-)54$X6-?ueJ2X28y?__ArOVR9&_GmSvMs-KB*R zAv_Y=D|t{>X%ws1yOOhqwz$p|ML@2cYF%V0X;>dtNpv$GJ@idOX* zPGb#=sQ8WOkxIW_1e3=7_%I(>QLM(830Ds4DOvM^KdIQXZUG&)bq5?6i>L2~!rje4~7El&yI}TTX;!WIPH}oz_u8uAB%kTjL z^;J#|e{eHAy%E5{S`+TkV9vz8$r zEZiHCZOgZZN7eLTk_8zx=$i3Ev$Mvo%H>WJ5J8FS1{`t`ovzOCzf#sC{7qS6sVEsL z6rgVgxr0?w2{?l@mEz0=1yvhM<=j4cQdzzY;)5-SnfuV)dyLF|cy^p{J-omxnuw1H zYg&#p+LSXC-4~UHPnos?E!HE?VmMp}wy2lp20%s=&Td;3Q zFJoL*NDr6vto@lB^sCwi^}OAS(+C1nWcmDw=AJ1|{W+?&X51UuxdG){u#CGCqXoHE zLLbz10lMkvrC`->rkZ2GUS*M0+{C7xZsi4)q{oH*ZgAUzbOVhIRAjT^#~24 z_!aux593($*c|=PAbtnxhN9;FaIJ$}8Y7zd`lDKqq+w@E26*ns7nh7$0Yfzy4I`m_ zH)%6A*25vEhlYj#Ud*I5Gv3D_t3*?@!a8qBou&=RO3ND_3R>YfBw#?UcE-B}p3$SM zh!&E%)JfQAp(cj8^z%)Lq{Yrr&BuN6X#?c2V^Sl`5?-Gj!yVe=h2hW_x0iFsAQ=@l zYUZy5OKd|6mf&pC>^?TWF72+)iyHFGE~TT^8I*AC7s^_gY#lUYGx+vxCOyOvT(KSx zvHt@@jaBhV$Hjz#w9x6f=ieWQR7c3{Q0$Jkt#(zUEiyp?W;Kn}8h$~BeG^AYrL!Fn z__@_g!8a@S{n}IIKSVemR!wa^L;g3n4zh5iw@c2PSdLb?kX>ZVo!g?0WMccq2m!>B zNy%HBSM=Hb;c1wVUE-5@^)(m`BhW+wy~sPXF+SqtbWk`((fOe3H5op%RbmP%P(GKf z6N@wt+h9;!?%?aZ`H`S^m8C!VcJQKmOMgfudn^<+ zq{OjE3gu={CehO*rV@%{d$KqE5J7SN0TaPm0I4LFF5aZ=oUoRSY591b z(odTr&knR>?J#@15F4yQFA0rhBGoZX@iW0Opi0cy{fLpJ=qQ2+GJ7aCV=x1lF?64h z3Z%=Kp2!q_ueuF+=OJ~lE(5ganhHL zI~dd(OtdjIKQ)yC^FPSbB-Y7|;ac+O%PIsFHfw6#`pC>gmE5HNm+p3JwLp$e)uQHk zcJrLb3_IgNeW>vtq7i*f@_xv|ioMlfsUa!z0-QCojYJb;bf{sB!Y zDM?FR3rPr*)(TeYdeMG)$x3bQjW>vHNL+M~D?p>{N=zG?P4@cZBI#S0_w_PWvwatn zzu!Z%+AlhnQVuAVu7rYEfBIB6opj`WU6-HYhcaJRPp|?unp27yIABfXl#3Qz#Z+af3C4VA9$)x(F^Xw# zVM_h@fAbpuoNsD)>_}l$7K@>h#A7B_YK<&k%1N|9L97GfFzjS+NYvXmZ6AXgsw?ct zpJYrA^=p!bnfy=RsQbU*Et1QrWPuDi!qh}LfnejTXrq?Ow&tas2AS~KJY5jru1(69 zW3NgL=+R;8S2M!-h+4QB4KF_n=Z}L!fRy25V8AGu*0%%c zJGZBi6TD)F*8VTiLu{w{r~eEsSgVvn*!fyuF^|+rR7w5Ss>M!`1-(2OakE2SLCEXj zsC8^_2M{Jx>!w=}Xq6_Zy-0LY5h~E*hk>fq$XGa>^-Hx6Ho3y7H<;qa4)S4UX>x|Z z40F&PS|Oct8MUzBRkrPPtlmJ-UvCh5UkLZ$;KZJ}g;`d%`aQS&f@Lf^kW=xd>V$N* z1k=rOB_}8v%nwnsl?>1I#(uwwLWM)Y@eG-XfaSM(1P3{xto#B!lyZo?{{q=_nNi)E zLs@F%l@r0=Y3jM8WylUE^8wf7tT<`D8#J6bP zxDpl?FXE=3YQbYW9%qNEnRXlDJ`45B7v300!&%kAJ`AjC!<^$ziIB20)B36aS8aET zg1DdoF^wgxtx99~!b=m3eGDYg3p5@7vI|H3AEO3Fm@f8jRAItUQm`DOhZ=RlJ_D7> z552ytWWLqjydQq7)S*y+fX>RJpO?If&beU03r9s1RsiH%rjXPH&0MpL!o4x50(dduCKWmZdZh$GhE|f55szvUlqzv8UV^QQiGV{ zKSZWUr8MM6Ax}i}53Hz#cE7nrkU0aXGQ_>P2dPw(sN63SI=Gf`^)z63BlUj~r37Km z^G=jWxNFq%^`-BA@b4}!j$#?xz*r85{zX^lS3k=^9TPa zbc&bROU(-ksuuyb7$Pj)320P7LCK(7oJW2;LjL=_{(^|jUZJ6{i`(ZdlT`a{t^2 zPQpMXFr$LyR!^`OER|;7j0M=VwEddmn!NRFp&9__hwV3;-yO%qllhm{n%A|YT}_VR zDuN|~0_DhTb6Q$651g8G-$1>u4))>DLNX1D$#P*MG9lhqug zhjcZry4nv&>t56fS`-rf6%g1?#;T+`DftUc&&Y@7$kf^xD*a|aYt^sF0v;*{cFbvl z2^kW7a@$=TpSKm1eSVe9?&iZv>Z_bIjFR{9qh*vXCkDYWCMv~vaf1>0C~1O{?ov_< z-Y|vI(wa9WOACKjawDOy?(1J&bYN)W6-e^Z@1?(V8S{YNk-BLsSoP z(itgGS4pfP4%r{anO+Fqh|7^G_~J6A{vR04aPNQGxSD~LmvhX9zDElS7P^qE%fDtbG^H|HA3(4VTl%G*-pezK(GBFoo4V8l?$y{oCd?M+kQRaI>P9DC-^;0H{ z(Gbq_IHjd8R)Do+Jjm63+WRX^<*voRAZ`a>{`DkuEL-*!PB+16+sQT6M&=}QSQ9U6PAr#-Yc?raI}A`RjZO4dZxe}7OK~MgMH*v|05Dht2trZ}NyN708Mg)k zl}J&R`(c^ieZ7l`_4EZKHol%VG0O(y4sy~sOJ8SvEf0qYVTaA9IrE0?S?sB^FV7xR zV1jC{g<`mRW20lVs)IH~5kUjveYX%g*rd+<2l0!q{*5F#3Mxo)-eg}l2K5?_5q>+w zVQp><3Oay-WJwS#*J$8Q0iU!D7kpp(DL7$3id`ZiJSO*(e1X@aOM_;SWP0K2^02k}buvj|{R!a=<5m{q1ULE2B#%GMb zA=$W2$`wlvTvC7`+>x_ase2!{g$d+=eQlJQRrLZV;U)MmN|YmI@vx@upyY%=r7@8* z5~D>>kArxyItqN6b^TDb;w;<1ej9P*lTrOE8T*!{&i{j;aNH}7;=DApM}WgBa&i7D z*>XNG8;l*D0i1VSRmu|&8x_;V1GPG3Fkc6yb1Z1#Q3^~A#6CUncw2CY8|Ow%OA5T) zK`n&~$>5|z)?TL+;1`b9%s|0s%0O;4)7(Bc7A<1Fv4isd_Tt(!doO01w9r?cT2yz= zljZ86J9zI|v1(!}c86hvlRYhR3Rio=RKQMy+VN2Y#V0eQU*$nWOKQgx2(OF1UOmDz z^GQziUaIyQrZLUVXv>wO*_P{w0Hff{_<&?yrn2vk>J~1~LT2Q->$fPb7U@LwqcBd-SXk}1Po+Ekd=hQOFW`w*=v9dV&z=%+6b?7vj7cs-5he~-4_cH5W zlV5A)z8oX9SH{1-{6qf-T>Pxt`-)ZkZVHa7L1Jf$h$*$x(iN2)XXv=scnW zdkRikaFzejMLNMzqBdx{EA?Q>8A!c$&IXt$5a;|GM`hg|rO6t|c{g>0q&tjc`hyL2 zaIK$sSsLi=o<|-c@MzqeS~4`=yi9YYkjj-4(rw@4+7Low+n61%WIt9gMk4I@n&`hp zr9uI&Pd4ibclI|5f=27bBdvfa?1tMfUl*7%xMQdlJ&Q@}P1&dZrn}YXhJN56K(|g~ zu;)QgdT9_`GT%W?a}t!#NP`ClUCjG+!~p-hPMP?%VUhV8JtEo^XpnjwkZH6Dgol0R zn|>lt!|$(JteUcol9WPi&+I3hiJ;S`n)62F(Yh|c1<(iONQzbWUNXKyQ5ke%RZ2Y{ zKqJDcaVvI~R6mubpz~c6e25A%XimX^xy8?9#ip>RSPWUy^)X$M-3A*7|IVQn7RM7V zns>J|i9u3Hd$pujWv$#4`z{qO1w{pFC?JEn@q)&1idfCffNRXdtk`3TP~PpbJBb2I zT0aePYXplzv;_S_TcU*T1n`v=97MC-M1QJFf&Q+he0uab=tr$vN+2V(S2>|fgAq43 zvta=WJ%(rT79NymqKwz4%bPi3vsrz4?^$a-VA7CLW&hIgS?XqE9|amhm6+9AR7&$) z@kddgMkymHYS$@1AQ8{dP3ZsP>KCqBky=vIOClkv zsaT3)SOJjCJSYB1`X+4}gL4(9jUm;D3NFPh4O8H@Pfv~J{`8pe#%|A$D@*4Bjit4c z&u@a<5D}1w&^TaApTL_#-D}InNst>BX!C4=QEKi<9S>HKj}Ff)fmpAsUypJ&|1Vgv z=w6=S$)jU>Z+NMo(i`enkgXSSh*a`7?=ok=mw?3J+gf|2EXl#HM2+- zTEdNZn`*?V@v3uDP2LkC)wSxfZVC#0PEi;rB)C>*Qpr2~z{(5j4sauyFZWNK4wOLg zi-V_ytz)iOVj}^igJ=pk7w;q5kwyD*H7gvz-_=VGbB0&`(R{PY5sEmc(P%5PivNy^ zx{5}Vqr{|TqYBo^t&{6ROgTY%YEP!xf`rn&`duNOnSB%w&^qKFLNtb!^8xhnD9o4RunCo z7)X81Vs1PHZyC5Z)SX+GQ#RpCxs@K*BL3B%#uK{08gzI#nt06KM$Khci|}wI=IHA= zzp!qgh5St)EFx9;79dkbYy+IvG`jG zj52x6W?$ihaHWYcbt19_`shg9&v-nWFBV^SPhAOBX>I*4KA)ZJiR|8HNhc4d2W9?3 z&Qs1#uR!VI>gl%4l2~=e0@qCh`Yt5Zpuc+_M-u=wYCdbls=8$#tot1xPW9eT&OR#~ z^wb%=kO&TF(vj6=+%#u(9H)TWUoIA2c`S!MCK6@PG7K6AU`>ivXV|$$;);VJzd<2^ zV9S0x@)A3N!V@cgr={UP`=2FM3HR0!LE}y=`;tz0BeedC6q8{8U~<(|$X7_Iu{Y>H zlLYN;nR!sfEMyD+;}BAQcc5k*SHvIco8l9abo$QZ7556AX5o*nr{f9?Avw{Mw)uld z`nl3yHTz40gnHgm;VZxe`G5T;;+I@S;p59$R&q`<7M}=RLoo8>-m_~{3;CkngMZ{Q z)0IN#DvnA`pY(_z;fftUP%hrSCq9hPGbtz>?%LqEY5L%L6%WOuhwt=Wvv`)Oq+n_8 zi$O)ES9)it%59&3`{g8Qj~w--gL|rGVK_2t^{R%O-Ee8tX*oblle4cbCnqK#{Ke2u)2_0G3<*u|k_df{{9_kF)j-bG$x!G- zyw=SZ{A;P)tMun{%A5>+C*T(SXY(R^Wa zv3Cc2^RTe@lNTcCxE0$si@5B@!HGfrzl$#R9sBw3RzHrTgg|#ZN1;`8a&VZId9NUk zXxNBrJEvM&zM=<2EY;yJ;$+zGM*7NrD%3ZsxTs1kOWlX?`Qp5@_zo_V>f+%5vcu~2iJNs}mrhHH=Pup_6JZNR~ zs1-yu>5Oh+p6q%WLR%|mFQ(05Al-)w(sZ5g+Ka(>WXf)3!x@T{w9&g=xVe8AIlYIqczhbBJA3D zhoE4Tq(&BZ=e;$dR5Ii|yiadQF8lMzKIL}=qx$&IV6@Rf%Hi2=m-286M%YA!a7Ib_ zT?(*pyMc=!`)u&Zw2T0h;_4}FJa)Y2M1s9IED>0K)^RObaB`QibmJ*?WG~%_)B{-c z`=jr<#R>xmd{2Q4T{s@e(?%!MlUbIR z-EaX1)hVm#KCMa>eaQ~%K3+brpk%QD`0?G{*|P{M^p)Y+h?E9G?$34~O_UcEbgfeA zgu%)SNvUPqD)tsGmz7@dS?n3J&5Ookug~~i*vCh9HMPYr?@_*4Cusz~_xtnb=V!nc z!KVINa0j4^#^D>`#pUG;=0AimL>RMzS=tVfR-=&t#+Lwc3Vh(88@aUJ-S+QM53$&z zy0hWA4>^Iv)Y0fP-sy@(TzO)x?i| zR?LA&!caaunt$1YxAk7LwuDXrLv42e#;_Y2&XSvpmN5{BSBJ>4bYYb7sGvVUW?lwQI_<+56F3yz+&AZ6R z@#x3)y0*IC=hYPuC=4)rc~3t$e^j}=Th`HJ$96@NPqh<8myEx8aqG#xa|7mQKzs^Lt{Y$a4~T>mpn6w0_)!$Y3$0ZT4(m@~bV zpP#K#_2E(BlKZ>cpHHtwVz|awYL1X-F?8@Sy+0&t+KcQ6YH|do7|n5WHZ@9iy)tmu z@Q_d;~U8zbbXa4feN^8 z^c2|thUlDTZ3`gzdOdiZ31xCaZ9J&V*JG@9cE( zBm*g)YHB~ry1WJYL9@D&k9}RWe>TlhD>jA@W~$EIR)LPV&u>ppc+iH(KIZSgK&amG z@7P)&)Y+KXfTB#Z&qU3=%gGb%JU1VM^6C}}dXLQIq%?wz%X$~yV2n3q&R)LQQ?9;! zl9T2B-2}(e6NQ=&sOjze(;ak|c}Memi=Ghd-DC+`+bc(Vx=HptW7k70^x0_+N(=xu z@pcCVid&{o#_i3|JX5z%%o^TPi|LoWs{6E*)8|LBc*Hav3sQ`Jma#Z?%%3tor62DJ zrlFvnbH+?5KPGj(4|Vf>i#Lq@M#i5MvbG|OHcgALTz)bDoZZ#o>C$JTcM5mj61Hnu z9;F_2M){yFTnU}SN1wxG(qli8m5-~d6s3GN`YMy1=~e>UH~Tr}8@~zAZi}aL89Rwz zMpHt1PI`LT_opDEr(v?&6# zhBstxlhU@w1={ht=h{V4>7LCF!Azd|DV}4Nz+>Rn+ds z9f1l7dr&_R_O|eP^QQ@Nk7D!;c%(>E^W0$ zHi}#?*5`G)O>^XP*R=+htwL4$!FeyWY{T9%wd~|kroa>RJMjDoGg5x+RH`GMJPW1q zvR-0!*$Lei{`a1p--%JK9DWC6w%z?%c8vO;+MHV@ZaKgUM4l;r@Bv{K-1K1=IxKhV z#9ASZW56M_=orQUlx4JKR46%{Rc9j55py_662yUPyb~_E8%3M z-}2_0BCH>mfYVa~9GO+Y@mUe8?pnLS>o9x<6`wm_1zyvp%_I9f&PL_tNg6Sn>D4?R zLo4*Wv4v~%=D8m)uWobSt>A0l2!`r_aMdE`vmJhrKwJN#ulr^r-RN<75h*ym$(!1( zzyvdho6Tsu)U4Gi>MJAYNB!k*+!hH!7QP93uU1RrE8H;ZjAQwX6|U0fo#TqjOS@T_ z^&{yw=#JxPsp4$20w|ToTNR1rrpGpuL@j~#%CzS*p_=hZ6CR7z*3kmtJiYs!A)i&a zg(@x#x-+-u@1m>FADljDa-Oq=tH<>cb|FnekMAN?w|&_?(Kr-__|lbYIzDeuetdj< zY6Hf_G#Am}coyY!xT#%f3$RB|ti+71ov!~(ULVdc3Q%vj*jqF1>Me{VVkhTNog%G3 zJ28(K(_HjrII3!}x38mF_0i#hYEg`47yC2%wK&Mar;CXjxa&U_RQOsCKU!qaQ2k{2 z7O=LRMtjL+=cU-}f~zWkND@8I0%P6a=F2T&l?63n-<;FjX=+Ee10VLD%i?<2N0RS- zd{ueQ7Y_CY9$#&^m|mTz((*tfDahQJ)NSvswzfA0$)d%BCx34)qPTYN*Np6U=3mSk z%T|3mJiI*tpIfK3D=bwr+?A^lex(yTr$F!TT<;Z@JRtH8eJP@+`tMCm>{9rDd1RUF zZvGaR87{6BER)3;YDm!3O1uK}B7oeb%@>EAxfYvP*~A3!kjgBJo1$^GAi2yN|V5nwjR$+0F$>6l6_FLL1A~@yR&ENQKv9 zKmo_qE$8m5{6J9g{n=<(5BPPzwaV&XQ;=lCVErq*2ZXC`d0oZz*`JcN_cs7h zrH%+i+t(4+eIw;!Tk5I$fI@cTkTAwgP-ER_2gl$c%++Wpr?^*bWcC9fa@#I@TN6)(xXjdz+l%-K~$t0l+(FUBb z2wq!p52@H4(a$1JFL~bP-AuaBL8#C#Txb}gTMd%9Gt%$92t;hkJ;>eWrS2a4VCO5L zo^QU}K2FcvN=zPzT+WyR)5M>NR6hwi_l%DTy-yHTxYNsB}S^G6Hb(s@9CN7{0Yt;bglGs**t;OK}xyfnd{P20Wu_{aP&6BHPwU9e!mj3Y# z7q1&ZSITG8B1MJp`sU~>m2_Y{odPt;w9~CxNvJ|Y7l%MinAIvy9p91A za+z;AaE+$Am|knVjf$cAAa24tl<4`&qkH%JI9=VHosA)M>b#3VElqxguzNZS-9ewW zv3LvjUtRT)ZO2KEaC1s%G=Kc^^G?NQ(ZdhqkosEod6rKO3eH`2_E&6+btR=Ga<6U@S55q+IU5HZxgGD4(ao?P*;%sgL!VaT^1Nd)9M|z+h!ME#;0fN=ca8_ zGU=(0d9)KPpU7&ohGK%1nDtG5|491WrjC8O7EQe<@lE^D`I4&Jgkgh<>`eQpL9$6U zKZ}`?1)->{TcSeSDvyju&eBco;$lQOEiT{n(ddxe>*vMALzkBpw{NGmfi<(^vErRV zq@vU=>=3!;@gA>GoT`+nDm)&1jsvB~+-xfWohGPIL?^w9pKQq_`09u>#PEva@c z4r|T>b$fnz;jqxVb{ltYysrBgzV`@(pTS@w(8=apTVL;JzoX|%>!RQ@xcIIuK81&o zWD5OW0R_CTXc6AhCrKMCd~I!tmOh!y9`6YiKkckkbSNgX5+3`vkUpusoYS#8J4bPQ zZpTyKcUTI$ji2D7D>s96$n$`eJ?iXT^}GxUoVnxisSKMA7iulc&YVE%s21%f5j|AZ zPDYPTSP8LZR{=k%vwTu%6+4v?UmM(8TF}ZDm_1B3eJ9gQr&V|1LHR}>QzU|7ayG)a zsW0s41S6L}XfDg+35*Yw0*?{@aYE(Db&t!b;g8JO1$x&Y{EK`%{JUIED(UdrW?ir7 z;VFT0x2-A5j+a|>K0FE>gJiPjr2to((n+ziv6KQ#!%or37`KbE`1nnW!!H>KT#}k4 zsMOv#d+8_U!8(=10rllmL^0|(&tP6(UDeTQ*kuBV9vdQ>MiY*veeY|d0Iy#+ZR_)A$2zn z3e6+sE^Xe|Dm%>o%r~o;%9wk&Zjp{tc zRFKK{dt)#zUlb6aI(eKiGIrKTW&ZHk7AB4ke!})D;NiB5my+he|wM zc2^p#3neGdXso%~?SQO|=?@v#^^C9YbVXI$6 z@z#dKFL51DU|Z@zu3YjgmG;c3Z;}!Apy*<6tWc)w(>1v>hwnDnS#UFx@q~iM?_lE( zUwRHFjWt7}d!2;^%;s%LSF!J!y9%$`ee*}lZ;`@OHr6NP8K2jaa`S^%n@Zk^H<)8i zFt!w_`C0Gs$EHfhwcJ+b&2!mw<7iAE32x~TtXoiw^lgTbvpH$5GQN8r?Rd@9gT;vz z9aXcj`;oBhYx} zD|t#rJMDJpEG-Zo2Vi=`B0OTdzAi`w>&RzN&S|6}YRfwLZOf zvIj(zR1Oa!sS62BY0a2qz`WF5$iV%XEir}X3tO>{Ba}u_NHrW(N;bwuM@Zw7?$y~5 zr9rYxeImjO06a{>Y2xa_hYPaAF=>#!;BWY5sla9IHSawL)$+=jQUW%{1`cTUBQvn_j*i$9jJp6Mv%eFy?n|R(wT9O-2|Ylo2%UGYJoQ7rLcB zDabpXkh{Dsi0!w%-!J-b1?oD|ZSEHj=ubRpNBF%7;cU*ZlD*r>{S4z^Ku}>Wn@{N@ zf#+^&dd=p`<|SS{zA^LV1n1MC%kBac-o@Bk$F9aRW&aK?K3yrC)U&fKLt)v)6)$g{ zjh$u8h~9Jl=V~((Bn3lUnd$3twY}fimgJc{yd_&##DcN!Q~U8|!n3R5byMaE(EF4i zkk-8s1m3e{7l5AJ8&;;H#y)*!5l0?tho35Oea6u08QH=d z_0H*T#37e9r&DXVg*ub?r;5xRL62rpBrItslaq^r_KbMCD(kOE#f%W$-lEgc%zZyM z6Qt3(+3n=#*Dq81nb$KO)YH&p5l}lK!+KlWmbAC9c5b6@%aZRkdEyg)px<{lUB%gs zz1rTJgHZ3{Qg5}sWmBnIGx2N!Du`TITN-epHsh$=DMu*#;#DLif5_=Ncm0Wbel_Bn z^LbUJJ$^sT4oS$)n5L=G2rUABuC^0IQgpd^c_j?iUn6#F&Z;@pOx@ou+e{XfskWR* z?(&FU4Q-r{AN4ehjb*PAJA|wyTp@vH%0WCF#GE&-E;?K;jgMJHKi^l|6R@VtQPJ&O zwv3)!4QBYsu(P*)Y(_C%tC_|89Kr?s0&>X8`nFe-bwipg9=My_iyyyLVbF}Bb}Y^i z-Os&SQg}J0$7H;`g$wX5zMMyd&aVqhe3sqQY+TNIRDXT<*2+q$xHk@L_kkuW*Q?bU{Y z05~Y%;*%*_c0v`z;Tt1$^C(x4zu)z7TIJXI$uYK9^1W;?tD&~*-NF?6yK zhI9F%t-q3<(hq0WkrT`ZPx?X_?I+}q8$B13)n=arW`bDU;Pe3-m zx9@hl#6scf)L(3=($M#Z1*o**NsdOnH##P!%F3N>$y4%o)!X7yfm;#JAuE2uvYcnj z#0wqFW!zhw4YsIeGv2k0jcB;Ep?7uNG$mXAo#B}DPZyFBc15+R_QMREGi;aIo>w0g z?gkeN+13Vb2+(3n+R5zcsiDBFDrV72B4E}?ul6JE@J*K0XVBCldBMm?5!hGCz5z5E z_|vzR<6(WP!eRs})GunkPoX@l%6T4{q{m{3p(FRW7m>r;URPtLH{aNOy9!Mpv(d7e zdUJG{dMngixV`nJM;KJ)6<7?S3GRG48S?uy`#n>psDJ!3`Z;nMmT~B1m5_8?O8ZGZ z;6ShNw>huSUU65)mk3Y0uJ}yCMsW%N)410_L+_H>gJNBwStgxD?xGXXMu)1yddH>r z`C{3$`Tn--m^=-acImX7Fw|H}aT{<@;paubLg>tdqB;pTD04NTw$`X)rRnN8VS}Tq zpwQK8xl=a@8+f2{UhXoNrU{$YNAa~-^a*{N>7mY#+OLKp8?&=YK8VY$V2&<56;h`i z*CD#`MuAc_TiS|OZ>Y5Q2W{)7gD1n4>4)`l|KaO-W65#wx;vHk1(gGqqhD%8zW_9pA)S=h;b85M;Rw1~47 zl_O|!TlUNNfXCN!+oso#cOryW_vN=RwMnPI*NW`xiwiclzBU$c`l0V`$M;%+2ltSd zRXME3S}E^|`|;Dor7w#uExpf39bB#@>2odDdl9mmrk?k=4`n2Lf-7t9Alr`4QGCNy zLP|QI=U{tj*3-uNMc1eM)3uSN(B&QakmWm`cT1TQL<~BgEW#FbXR2s1wo0PsoD|v1 zs#HJ4IbU&7RO;X^kYk3|`64bP;{N`?va}Yuq7|d_?)2Cq=>EHMFgY(C zfjlIl?z=l6Z6G9_M_O;bD*Ti-`cU#+QD!xs;1Qe|tGd03yI$T5Y@7!-y}e>!d+rdE zoARE2+G3_Q2hF-@bdAd4PoQG9Uaaq+xVoSI{=VXOp*N$#QBXytsa|}2A2?c`E#5|X z9=lp5b$hGG$=L1w1>6vcHaef4^q}V*O9E6s{<@pG3cwLLUewM5fd-r8n)vHTu44oQFKmAN44e&p0Rgl)V7 z9Gl~e1gp%hJRBJu7USNEWYgbQ;OZM<0D6Q6{=Qbz!N? zT$JA?t?){|P;*<&Zh7*0NvaspkbOoV9KcZmpGEmC>(>$qNn(FMHXry3r@hNp+@ zkgdB7S)Gfm+MLr*a+Ly6xTt9lZXgvWJqSu4ijxw>e;ZZzP6=1@2=pOA7SU8 zoUnLQ6%pMvAf$;gcPHgMkDcxwje~k@2Z2mg<`x>RH(Y9`Of-JZaOE313DhF}2Ap0y zHI~}+yd@t(lVP);S{~s1Rw6-Vi&6lM<7KIP4Q+(7MY67*1lvK-TEJwgJI&IJ(|f0l zH5K$sjh$B(Vgo|@q3q~l1|h-Wy-gmK)n_S}ikjz{B3Ym>VH@xU9UvXzb1%5KxHk(IdDQ@1`0KZN^hs4h<;Usmk z$+CrOxv?umzU#b*3u=b_PLnnDGb88u-nFi!qs_z9`=xjkhx5LTmLvGn01RZ{aXjPV z=l6PhxErJq4gz;3q>XPc3g(+x+yCmDY_;hlHTq$O=GCeqD|OWS_3K(%J34%xuB)A! zx+T-j3pKo~K#z(5gRtNbo|$A9H@DZPCk4>A%L`jgJwV>KgcG8SVa7GLQ#RRp-%Iva z>N@kD@b5abJisH%iNVw~^Up3xG;YaHM+2{~OzAldGw&0riu^`V*>ZyUk+Ny8b9+C( zWQf7BC4qI}=52LsEXT;qZ6;GkGs#5F4XR14ESGXi z1uHdkPjLeg(wfv<7)#TX5zSp(B2*L?CN~@vc@vdz!E#MeOb`VZd};oL_iOjdxgYMQ zd!KvGbDwkW?+~0un>=6nUB04~=ENlsa3vQo#m~QdmUatR!2ef2)J~+4f3BM4yoXG! zn>ax{wlpiAjlP-zCD*fqwwE8lFcf4drr|igDQ3*Y#AM+u1{`XMY;dS~U$CWGl5^HmFr=|RVenitf%2(tu0ee;?H*6I`Xm5# zNUF6THQB;BM6rY6B(vZF5DxD&tWjC4%0Jta`V(iRA+eIq^02Y~`y%gSB#eC$a&)(? z*VJ4+j+^zw)s-0P@v<~_G+Wq1d{&uuWAnGM3Esl0e}9~4XrnTOUu&jd0bh);J^M#~ zaK0nn2X6~yfZH|xAp|0`VHUmrnE~`u(Mx(==!8n`TlF6WXI*!9BQNHkCV9^G=e{H- zjpI@C=a#Ko30on!h=ne@;}6U3gboCFLBQZR@%YB+ibrdq^_UrhQ|zdI;1R72t2jZQ z`ki4}d42n)=Kz2y5$RM#l@{==H$y4PCrKl}&L8sHDI`ej!y(cPaw5yBL&fsiBgehS zLgx$2f%lcZYr~uT;VF91Y{}-n{FD|^M}SczE?HYa{t{0&_1uLkLyB#LZ6$9*Fmi}4 zNWXQE%B4WOKLsC;TnI5AZ?lxLzlnxc-PJI0`_p6_&xKMocNXF^N3#L|b$vZIT_fl~ zbDo~NvbRHpv00Ddm+eOWVWyQu9g8QvC}r=vUz}fBm2vSezb$GyF(xDvB5Cg`c#uOT z0Pg_LKZqY#g&yecki1?lzUi(S-7Z2nGPJtN&m&dsbx4L4w2p*6d&s1gtGuU08JeR< zv0+3m`wZ*7)svnu-3qkzc5-DB`~ct3OK)ZMqyt5X64#++mc-?3a3s~!AF{fD;mQhb*X!JT{{I?UL2()HX4UQ;vS zMJYGhUI827f?m6yUj9tQ`I#SdW30s1IybhM&|UlxYFHAn20R<}aekDp{=$$0ocETi z;v_leLuDEi%x_dliDGHW=*Gr`7V{WrXTm1)31kGh*cVWH{j$mBa(M$R?P~T=m0M@a zy?dPd>`he~q+bnH@uj(WsJ=8;F_=u+s`u0bcYRfIclY%iX%@;Z6Atq<1DT1Sp1+)- zdnH$;kbD~pGe7tF7A9URoRTRc!&!A9OcQ;0KE1EfvnCL8V`O6huK zw&C9P{WxANyf;j8+`5FFA9N2QL5Z zIybkll%l-YgNMiuFT0vTTG4+iVLslzp>YeWF&*~^m za1!3RUaltN)EB_aaB;4`Zr+5>ywEu6Jt)JOJYcN*XuxfF)0D3boyVy06_NhEQT->% zfJFhA3Z-R($G$ST9qq`?{bwZ}mf@F@b(y+!M{xN~=9+CRW zM;o@9$95$c3=0wqXR^h{=HuhzEiE`TL&1$o&R5MTvCBRX(Cf_GAsG&8DeSW?o%6Wx zs+W+l0LN--ABYSbsWVW|#7pv$bX<Ckzk-6*4<^L zqHXuIk1S{}cw|9;-T_>p)Uv;cnqmHKs#__knAyBMsNrE`Q>C_#{^g(hkjIxED(e3e z0&^(N1VdUu*(S3k;j*=3goA&NKmAHEZSTB|L%`pT-+TAt-4dcNbyBh|9`ZQ8@TdMy ziH#pYcD)r(u4Or(j2fof{m>t#v4h^LtKHe)ItBN=rFe)O8K%Hon&PdmZ($P!M9p-v zMLl?;Cx4J5cva(aNkE@lm{tyY_R=}I$^DaA>6-8uNbU6D5pGXCwI(Dabg)WinNX8# z6WHDDL`Qt6WxV@WpQL*Ij^Oizr2{zSlKzPMR$JYY$4a$C4)<~E`1c`74l^np?t(l$r znC`&za23FrrYM&>e6nJNR*XPDJHt_);PIv(2~f7Iw%HC@l=5bH-UXG-cC(@$)2T3*-^{ePr7wOt*z#=9i!c zcZZI=>Gtcm;#UBA9<@Jv63eMpzz*lsz7rbUa*Bw=Ki$~hjRCRn_T?9;QKyEaqt}v-|xjYfAHNueD{;zaPU1| ie2<$_82lgfU>iez1vc?Z==S)Ar)ySrS86WbP52+{QO-C3 literal 0 HcmV?d00001