From c6c476bd42034d43aebfc0fb648015f41d8d7dbc Mon Sep 17 00:00:00 2001 From: mhjensen Date: Sun, 20 Oct 2019 21:42:36 +0200 Subject: [PATCH] updating dim red material --- doc/pub/DimRed/html/._DimRed-bs000.html | 53 +-- doc/pub/DimRed/html/._DimRed-bs001.html | 51 ++- doc/pub/DimRed/html/._DimRed-bs002.html | 51 ++- doc/pub/DimRed/html/._DimRed-bs003.html | 51 ++- doc/pub/DimRed/html/._DimRed-bs004.html | 51 ++- doc/pub/DimRed/html/._DimRed-bs005.html | 51 ++- doc/pub/DimRed/html/._DimRed-bs006.html | 51 ++- doc/pub/DimRed/html/._DimRed-bs007.html | 103 +++-- doc/pub/DimRed/html/._DimRed-bs008.html | 51 ++- doc/pub/DimRed/html/._DimRed-bs009.html | 93 +++- doc/pub/DimRed/html/DimRed-bs.html | 53 +-- doc/pub/DimRed/html/DimRed-reveal.html | 275 ++++++++++-- doc/pub/DimRed/html/DimRed-solarized.html | 278 ++++++++++-- doc/pub/DimRed/html/DimRed.html | 278 ++++++++++-- doc/pub/DimRed/ipynb/DimRed.ipynb | 425 +++++++++++++++++-- doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz | Bin 191 -> 191 bytes doc/pub/DimRed/pdf/DimRed-minted.pdf | Bin 204179 -> 234356 bytes doc/src/DimRed/DimRed.do.txt | 72 +++- 18 files changed, 1560 insertions(+), 427 deletions(-) diff --git a/doc/pub/DimRed/html/._DimRed-bs000.html b/doc/pub/DimRed/html/._DimRed-bs000.html index b87451a93..4d83066c4 100644 --- a/doc/pub/DimRed/html/._DimRed-bs000.html +++ b/doc/pub/DimRed/html/._DimRed-bs000.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -174,7 +179,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 19, 2019

    +

    Oct 20, 2019


    @@ -198,7 +203,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs001.html b/doc/pub/DimRed/html/._DimRed-bs001.html index 07788dd92..a9498ae16 100644 --- a/doc/pub/DimRed/html/._DimRed-bs001.html +++ b/doc/pub/DimRed/html/._DimRed-bs001.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -198,7 +203,7 @@ data.
  • 10
  • 11
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs002.html b/doc/pub/DimRed/html/._DimRed-bs002.html index 40e9fbfa3..13ecbc2ab 100644 --- a/doc/pub/DimRed/html/._DimRed-bs002.html +++ b/doc/pub/DimRed/html/._DimRed-bs002.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -197,7 +202,7 @@ ensures that all features are exactly between \( 0 \) and \( 1 \). The
  • 11
  • 12
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs003.html b/doc/pub/DimRed/html/._DimRed-bs003.html index 1ec740a66..2ec698d22 100644 --- a/doc/pub/DimRed/html/._DimRed-bs003.html +++ b/doc/pub/DimRed/html/._DimRed-bs003.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -200,7 +205,7 @@ techniques.
  • 12
  • 13
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs004.html b/doc/pub/DimRed/html/._DimRed-bs004.html index d5e0a2e1f..a06f5ea25 100644 --- a/doc/pub/DimRed/html/._DimRed-bs004.html +++ b/doc/pub/DimRed/html/._DimRed-bs004.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -275,7 +280,7 @@ svm.fit(X_train_scaled, y_train)
  • 13
  • 14
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs005.html b/doc/pub/DimRed/html/._DimRed-bs005.html index b9d0cd7d3..818201cdb 100644 --- a/doc/pub/DimRed/html/._DimRed-bs005.html +++ b/doc/pub/DimRed/html/._DimRed-bs005.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -225,7 +230,7 @@ svm.fit(X_train_scaled, y_train)
  • 14
  • 15
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs006.html b/doc/pub/DimRed/html/._DimRed-bs006.html index 60eec4c18..307eae100 100644 --- a/doc/pub/DimRed/html/._DimRed-bs006.html +++ b/doc/pub/DimRed/html/._DimRed-bs006.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -204,7 +209,7 @@ logreg.fit(X_train_scaled, y_train)
  • 15
  • 16
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs007.html b/doc/pub/DimRed/html/._DimRed-bs007.html index ce8c904ff..cd6de3817 100644 --- a/doc/pub/DimRed/html/._DimRed-bs007.html +++ b/doc/pub/DimRed/html/._DimRed-bs007.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -200,27 +205,41 @@ plt.show() #print eigvalues of correlation matrix EigValues, EigVectors = np.linalg.eig(correlation_matrix) print(EigValues) - -#split into train and test and then scale thereafter -X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) -print(X_train.shape) -print(X_test.shape) - -logreg = LogisticRegression() -logreg.fit(X_train, y_train) -print("Test set accuracy from Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) - -from sklearn.preprocessing import MinMaxScaler, StandardScaler -scaler = StandardScaler() -scaler.fit(X_train) -X_train_scaled = scaler.transform(X_train) -X_test_scaled = scaler.transform(X_test) - -logreg.fit(X_train_scaled, y_train) -print("Test set accuracy scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))

    - +In the above example we note two things. In the first plot we display +the overlap of benign and malignant tumors as functions of the various +features in the Wisconsing breast cancer data set. We see that for +some of the features we can distinguish clearly the benign and +malignant cases while for other features we cannot. This can point to +us which features may be of greater interest when we wish to classify +a benign or not benign tumour. + +

    +In the second figure we have computed the so-called correlation +matrix, which in our case with thirty features becomes a \( 30\times 30 \) +matrix. + +

    +We constructed this matrix using pandas via the statements +

    + + +

    cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)
    +
    +

    +and then +

    + + +

    correlation_matrix = cancerpd.corr().round(1)
    +
    +

    +Diagonalizing this matrix we can in turn say something about which +features are of relevance and which are not. But before we proceed we +need to define covariance and correlation matrices. This leads us to +the classical Principal Component Analysis (PCA) theorem with +applications.

    @@ -245,7 +264,7 @@ logreg.fit(X_train_scaled, y_train)

  • 16
  • 17
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs008.html b/doc/pub/DimRed/html/._DimRed-bs008.html index 61e98700f..6675e552a 100644 --- a/doc/pub/DimRed/html/._DimRed-bs008.html +++ b/doc/pub/DimRed/html/._DimRed-bs008.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -181,7 +186,7 @@ MathJax.Hub.Config({
  • 17
  • 18
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs009.html b/doc/pub/DimRed/html/._DimRed-bs009.html index 8481e8279..cac6aa00b 100644 --- a/doc/pub/DimRed/html/._DimRed-bs009.html +++ b/doc/pub/DimRed/html/._DimRed-bs009.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -157,6 +162,48 @@ MathJax.Hub.Config({

    Introducing the Covariance and Correlation functions

    +

    +Suppose we have defined two vectors +$\hat{x} and \hat{y} with \( n \) elements each. The covariance matrix $\boldsymbol{C}is defined as +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} cov[\boldsymbol{x},\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{y},\boldsymbol{x}] & cov[\boldsymbol{y},\boldsymbol{y}] \\ + \end{bmatrix}, +$$ + +where for example +$$ +cov[\boldsymbol{x},\boldsymbol{y}] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +$$ + +With this definition and recalling that the variance is +$$ +var[\boldsymbol{x}]=\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, +$$ + +we can rewrite the covariance matrix in this case as +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} var[\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{x},\boldsymbol{y}] & var[\boldsymbol{y}] \\ + \end{bmatrix}, +$$ + +

    +The covariance takes values between zero and infinity and may thus lead to problems with loss of numerical precision for particularly large values. It is common to scale the covariance matrix by introducing instead the correlation matrix defined via the so-called correlation function +$$ +corr[\boldsymbol{x},\boldsymbol{y}]=\frac{cov[\boldsymbol{x},\boldsymbol{y}]}{\sqrt{var[\boldsymbol{x}]\var\boldsymbol{y}]}}. +$$ + +The correlation function is then given by values \( corr[\boldsymbol{x},\boldsymbol{y}] \in [-1,1] \). This avoids eventual problems with too large values. We can then define the correlation matrix for the two vectors \( \boldsymbol{x} \) and \( \boldsymbol{y} \) as +$$ +\boldsymbol{K}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} 1 & corr[\boldsymbol{x},\boldsymbol{y}] \\ + corr[\boldsymbol{y},\boldsymbol{x}] & 1 \\ + \end{bmatrix}, +$$ + +

    +In the above example this is the function we constructed using pandas. +

    @@ -182,7 +229,7 @@ MathJax.Hub.Config({

  • 18
  • 19
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/DimRed-bs.html b/doc/pub/DimRed/html/DimRed-bs.html index b87451a93..4d83066c4 100644 --- a/doc/pub/DimRed/html/DimRed-bs.html +++ b/doc/pub/DimRed/html/DimRed-bs.html @@ -72,17 +72,21 @@ Automatically generated HTML file from DocOnce source 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -129,17 +133,18 @@ MathJax.Hub.Config({
  • Why should we think of reducing the dimensionality
  • Basic ideas of the Principal Component Analysis (PCA)
  • Introducing the Covariance and Correlation functions
  • -
  • Classical PCA Theorem
  • -
  • Prof of the PCA Theorem
  • -
  • Getting started with PCA
  • -
  • Principal Component Analysis
  • -
  • PCA and scikit-learn
  • -
  • More on the PCA
  • -
  • Incremental PCA
  • -
  • Randomized PCA
  • -
  • Kernel PCA
  • -
  • LLE
  • -
  • Other techniques
  • +
  • Correlation Function and Design/Feature Matrix
  • +
  • Classical PCA Theorem
  • +
  • Prof of the PCA Theorem
  • +
  • Getting started with PCA
  • +
  • Principal Component Analysis
  • +
  • PCA and scikit-learn
  • +
  • More on the PCA
  • +
  • Incremental PCA
  • +
  • Randomized PCA
  • +
  • Kernel PCA
  • +
  • LLE
  • +
  • Other techniques
  • @@ -174,7 +179,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 19, 2019

    +

    Oct 20, 2019


    @@ -198,7 +203,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 21
  • +
  • 22
  • »
  • diff --git a/doc/pub/DimRed/html/DimRed-reveal.html b/doc/pub/DimRed/html/DimRed-reveal.html index 82886c900..20496dcee 100644 --- a/doc/pub/DimRed/html/DimRed-reveal.html +++ b/doc/pub/DimRed/html/DimRed-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

     
    -

    Oct 19, 2019

    +

    Oct 20, 2019


    @@ -469,27 +469,41 @@ plt.show() #print eigvalues of correlation matrix EigValues, EigVectors = np.linalg.eig(correlation_matrix) print(EigValues) - -#split into train and test and then scale thereafter -X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) -print(X_train.shape) -print(X_test.shape) - -logreg = LogisticRegression() -logreg.fit(X_train, y_train) -print("Test set accuracy from Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) - -from sklearn.preprocessing import MinMaxScaler, StandardScaler -scaler = StandardScaler() -scaler.fit(X_train) -X_train_scaled = scaler.transform(X_train) -X_test_scaled = scaler.transform(X_test) - -logreg.fit(X_train_scaled, y_train) -print("Test set accuracy scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))

    - +In the above example we note two things. In the first plot we display +the overlap of benign and malignant tumors as functions of the various +features in the Wisconsing breast cancer data set. We see that for +some of the features we can distinguish clearly the benign and +malignant cases while for other features we cannot. This can point to +us which features may be of greater interest when we wish to classify +a benign or not benign tumour. + +

    +In the second figure we have computed the so-called correlation +matrix, which in our case with thirty features becomes a \( 30\times 30 \) +matrix. + +

    +We constructed this matrix using pandas via the statements +

    + + +

    cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)
    +
    +

    +and then +

    + + +

    correlation_matrix = cancerpd.corr().round(1)
    +
    +

    +Diagonalizing this matrix we can in turn say something about which +features are of relevance and which are not. But before we proceed we +need to define covariance and correlation matrices. This leads us to +the classical Principal Component Analysis (PCA) theorem with +applications. @@ -500,21 +514,163 @@ logreg.fit(X_train_scaled, y_train)

    Introducing the Covariance and Correlation functions

    + +

    +Suppose we have defined two vectors +$\hat{x} and \hat{y} with \( n \) elements each. The covariance matrix $\boldsymbol{C}is defined as +

     
    +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} cov[\boldsymbol{x},\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{y},\boldsymbol{x}] & cov[\boldsymbol{y},\boldsymbol{y}] \\ + \end{bmatrix}, +$$ +

     
    + +where for example +

     
    +$$ +cov[\boldsymbol{x},\boldsymbol{y}] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +$$ +

     
    + +With this definition and recalling that the variance is +

     
    +$$ +var[\boldsymbol{x}]=\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, +$$ +

     
    + +we can rewrite the covariance matrix in this case as +

     
    +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} var[\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{x},\boldsymbol{y}] & var[\boldsymbol{y}] \\ + \end{bmatrix}, +$$ +

     
    + +

    +The covariance takes values between zero and infinity and may thus lead to problems with loss of numerical precision for particularly large values. It is common to scale the covariance matrix by introducing instead the correlation matrix defined via the so-called correlation function +

     
    +$$ +corr[\boldsymbol{x},\boldsymbol{y}]=\frac{cov[\boldsymbol{x},\boldsymbol{y}]}{\sqrt{var[\boldsymbol{x}]\var\boldsymbol{y}]}}. +$$ +

     
    + +The correlation function is then given by values \( corr[\boldsymbol{x},\boldsymbol{y}] \in [-1,1] \). This avoids eventual problems with too large values. We can then define the correlation matrix for the two vectors \( \boldsymbol{x} \) and \( \boldsymbol{y} \) as +

     
    +$$ +\boldsymbol{K}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} 1 & corr[\boldsymbol{x},\boldsymbol{y}] \\ + corr[\boldsymbol{y},\boldsymbol{x}] & 1 \\ + \end{bmatrix}, +$$ +

     
    + +

    +In the above example this is the function we constructed using pandas.

    -

    Classical PCA Theorem

    +

    Correlation Function and Design/Feature Matrix

    + +

    +In our derivation of the various regression algorithms like Ordinary Least Squares or Ridge regression we defined the design/feature matrix \( \boldsymbol{X} \) as +

     
    +$$ +\boldsymbol{X}=\begin{bmatrix} +x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +\dots & \dots & \dots & \dots \dots & \dots \\ +x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +\end{bmatrix}, +$$ +

     
    + +with \( \boldsymbol{X}\in {\mathbb{R}}^{n\times p} \), with the predictors/features \( p \) refering to the column numbers and the +entries \( n \) being the row elements. +We can rewrite the design/feature matrix in terms of its column vectors as +

     
    +$$ +\boldsymbol{X}=\begin{bmatrix} \boldsymbol{x}_0 & \boldsymbol{x}_0 & \boldsymbol{x}_0 & \dots & \dots & \boldsymbol{x}_{p-1}\end{bmatrix}, +$$ +

     
    + +with a given vector +

     
    +$$ +\boldsymbol{x}_i^T = \begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \dots & \dots x_{n-1,i}\end{bmatrix}. +$$ +

     
    + +

    +With these definitions, we can now rewrite our \( 2\times 2 \) correaltion/covariance matrix in terms of a moe general design/feature matrix \( \boldsymbol{X}\in {\mathbb{R}}^{n\times p} \). This leads to a \( p\times p \) covariance matrix for the vectors \( \boldsymbol{x}_i \) with \( i =0,1,\dots,p-1 \) +

     
    +$$ +\boldsymbol{C}[\boldsymbol{x}] = \begin{bmatrix} var[\boldsymbol{x}_0] & cov[\boldsymbol{x}_0,\boldsymbol{x}_1] \\ + cov[\boldsymbol{x},\boldsymbol{y}] & var[\boldsymbol{x}_{p-1}] \\ + \end{bmatrix}, +$$ +

     
    + +

    +The Numpy function np.cov calculates the covariance elements using the factor \( 1/(n-1) \) instead of \( 1/n \) since it assumes we do not have the exact mean values. +The following simple function uses the np.vstack function which takes each vector of dimension \( 1\times n \) and produces a \( 2\times n \) matrix \( \hat{W} \) +

     
    +$$ +\hat{W} = \begin{bmatrix} x_0 & y_0 \\ + x_1 & y_1 \\ + x_2 & y_2\\ + \dots & \dots \\ + x_{n-2} & y_{n-2}\\ + x_{n-1} & y_{n-1} & + \end{bmatrix}, +$$ +

     
    + +

    +which in turn is converted into into the \( 3\times 3 \) covariance matrix +\( \hat{\Sigma} \) via the Numpy function np.cov(). We note that we can also calculate +the mean value of each set of samples \( \hat{x} \) etc using the Numpy +function np.mean(x). We can also extract the eigenvalues of the +covariance matrix through the np.linalg.eig() function. + +

    + + +

    # Importing various packages
    +import numpy as np
    +
    +n = 100
    +x = np.random.normal(size=n)
    +print(np.mean(x))
    +y = 4+3*x+np.random.normal(size=n)
    +print(np.mean(y))
    +z = x**3+np.random.normal(size=n)
    +print(np.mean(z))
    +W = np.vstack((x, y, z))
    +Sigma = np.cov(W)
    +print(Sigma)
    +Eigvals, Eigvecs = np.linalg.eig(Sigma)
    +print(Eigvals)
    +
    -

    Prof of the PCA Theorem

    +

    Classical PCA Theorem

    -

    Getting started with PCA

    +

    Prof of the PCA Theorem

    +
    + + +
    +

    Getting started with PCA

    @@ -530,7 +686,7 @@ X_pca = pca.transform(X_train_scaled)

    -

    Principal Component Analysis

    +

    Principal Component Analysis

    @@ -567,7 +723,7 @@ X2D = X_centered.dot(W2)

    -

    PCA and scikit-learn

    +

    PCA and scikit-learn

    Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The @@ -598,7 +754,7 @@ More material to come here.

    -

    More on the PCA

    +

    More on the PCA

    Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to @@ -629,7 +785,7 @@ X_reduced = pca.fit_transform(X)

    -

    Incremental PCA

    +

    Incremental PCA

    One problem with the preceding implementation of PCA is that it requires the whole training set to fit in @@ -641,7 +797,7 @@ instances arrive).

    -

    Randomized PCA

    +

    Randomized PCA

    Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic @@ -655,7 +811,7 @@ previous algorithms when \( d \) is much smaller than \( n \).

    -

    Kernel PCA

    +

    Kernel PCA

    @@ -681,7 +837,7 @@ X_reduced = rbf_pca.fit_transform(X)

    -

    LLE

    +

    LLE

    Locally Linear Embedding (LLE) is another very powerful nonlinear dimensionality reduction @@ -693,7 +849,7 @@ these local relationships are best preserved (more details shortly).

    -

    Other techniques

    +

    Other techniques

    There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn. @@ -707,6 +863,63 @@ Here are some of the most popular:

  • t-Distributed Stochastic Neighbor Embedding (t-SNE) reduces dimensionality while trying to keep similar instances close and dissimilar instances apart. It is mostly used for visualization, in particular to visualize clusters of instances in high-dimensional space (e.g., to visualize the MNIST images in 2D).
  • Linear Discriminant Analysis (LDA) is actually a classification algorithm, but during training it learns the most discriminative axes between the classes, and these axes can then be used to define a hyperplane onto which to project the data. The benefit is that the projection will keep classes as far apart as possible, so LDA is a good technique to reduce dimensionality before running another classification algorithm such as a Support Vector Machine (SVM) classifier discussed in the SVM lectures.
  • +

    + +Here are other examples where we use the DataFrame functionality to handle arrays, now with more interesting features for us, namely numbers. We set up a matrix +of dimensionality \( 10\times 5 \) and compute the mean value and standard deviation of each column. Similarly, we can perform mathematial operations like squaring the matrix elements and many other operations. +

    + + +

    import numpy as np
    +import pandas as pd
    +from IPython.display import display
    +np.random.seed(100)
    +# setting up a 10 x 5 matrix
    +rows = 10
    +cols = 5
    +a = np.random.randn(rows,cols)
    +df = pd.DataFrame(a)
    +display(df)
    +print(df.mean())
    +print(df.std())
    +display(df**2)
    +
    +

    +Thereafter we can select specific columns only and plot final results +

    + + +

    df.columns = ['First', 'Second', 'Third', 'Fourth', 'Fifth']
    +df.index = np.arange(10)
    +
    +display(df)
    +print(df['Second'].mean() )
    +print(df.info())
    +print(df.describe())
    +
    +from pylab import plt, mpl
    +plt.style.use('seaborn')
    +mpl.rcParams['font.family'] = 'serif'
    +
    +df.cumsum().plot(lw=2.0, figsize=(10,6))
    +plt.show()
    +
    +
    +df.plot.bar(figsize=(10,6), rot=15)
    +plt.show()
    +
    +

    +We can produce a \( 4\times 4 \) matrix +

    + + +

    b = np.arange(16).reshape((4,4))
    +print(b)
    +df1 = pd.DataFrame(b)
    +print(df1)
    +
    +

    +and many other operations.

    diff --git a/doc/pub/DimRed/html/DimRed-solarized.html b/doc/pub/DimRed/html/DimRed-solarized.html index f777e2e44..6cf01e88c 100644 --- a/doc/pub/DimRed/html/DimRed-solarized.html +++ b/doc/pub/DimRed/html/DimRed-solarized.html @@ -92,17 +92,21 @@ div { text-align: justify; text-justify: inter-word; } 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -144,7 +148,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 19, 2019

    +

    Oct 20, 2019












    @@ -462,27 +466,41 @@ plt.show() #print eigvalues of correlation matrix EigValues, EigVectors = np.linalg.eig(correlation_matrix) print(EigValues) - -#split into train and test and then scale thereafter -X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) -print(X_train.shape) -print(X_test.shape) - -logreg = LogisticRegression() -logreg.fit(X_train, y_train) -print("Test set accuracy from Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) - -from sklearn.preprocessing import MinMaxScaler, StandardScaler -scaler = StandardScaler() -scaler.fit(X_train) -X_train_scaled = scaler.transform(X_train) -X_test_scaled = scaler.transform(X_test) - -logreg.fit(X_train_scaled, y_train) -print("Test set accuracy scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))

    - +In the above example we note two things. In the first plot we display +the overlap of benign and malignant tumors as functions of the various +features in the Wisconsing breast cancer data set. We see that for +some of the features we can distinguish clearly the benign and +malignant cases while for other features we cannot. This can point to +us which features may be of greater interest when we wish to classify +a benign or not benign tumour. + +

    +In the second figure we have computed the so-called correlation +matrix, which in our case with thirty features becomes a \( 30\times 30 \) +matrix. + +

    +We constructed this matrix using pandas via the statements +

    + + +

    cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)
    +
    +

    +and then +

    + + +

    correlation_matrix = cancerpd.corr().round(1)
    +
    +

    +Diagonalizing this matrix we can in turn say something about which +features are of relevance and which are not. But before we proceed we +need to define covariance and correlation matrices. This leads us to +the classical Principal Component Analysis (PCA) theorem with +applications.











    @@ -495,19 +513,138 @@ logreg.fit(X_train_scaled, y_train)

    Introducing the Covariance and Correlation functions

    -









    +Suppose we have defined two vectors +$\hat{x} and \hat{y} with \( n \) elements each. The covariance matrix $\boldsymbol{C}is defined as +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} cov[\boldsymbol{x},\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{y},\boldsymbol{x}] & cov[\boldsymbol{y},\boldsymbol{y}] \\ + \end{bmatrix}, +$$ -

    Classical PCA Theorem

    +where for example +$$ +cov[\boldsymbol{x},\boldsymbol{y}] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +$$ + +With this definition and recalling that the variance is +$$ +var[\boldsymbol{x}]=\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, +$$ + +we can rewrite the covariance matrix in this case as +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} var[\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{x},\boldsymbol{y}] & var[\boldsymbol{y}] \\ + \end{bmatrix}, +$$ + +

    +The covariance takes values between zero and infinity and may thus lead to problems with loss of numerical precision for particularly large values. It is common to scale the covariance matrix by introducing instead the correlation matrix defined via the so-called correlation function +$$ +corr[\boldsymbol{x},\boldsymbol{y}]=\frac{cov[\boldsymbol{x},\boldsymbol{y}]}{\sqrt{var[\boldsymbol{x}]\var\boldsymbol{y}]}}. +$$ + +The correlation function is then given by values \( corr[\boldsymbol{x},\boldsymbol{y}] \in [-1,1] \). This avoids eventual problems with too large values. We can then define the correlation matrix for the two vectors \( \boldsymbol{x} \) and \( \boldsymbol{y} \) as +$$ +\boldsymbol{K}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} 1 & corr[\boldsymbol{x},\boldsymbol{y}] \\ + corr[\boldsymbol{y},\boldsymbol{x}] & 1 \\ + \end{bmatrix}, +$$ + +

    +In the above example this is the function we constructed using pandas.











    -

    Prof of the PCA Theorem

    +

    Correlation Function and Design/Feature Matrix

    + +

    +In our derivation of the various regression algorithms like Ordinary Least Squares or Ridge regression we defined the design/feature matrix \( \boldsymbol{X} \) as +$$ +\boldsymbol{X}=\begin{bmatrix} +x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +\dots & \dots & \dots & \dots \dots & \dots \\ +x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +\end{bmatrix}, +$$ + +with \( \boldsymbol{X}\in {\mathbb{R}}^{n\times p} \), with the predictors/features \( p \) refering to the column numbers and the +entries \( n \) being the row elements. +We can rewrite the design/feature matrix in terms of its column vectors as +$$ +\boldsymbol{X}=\begin{bmatrix} \boldsymbol{x}_0 & \boldsymbol{x}_0 & \boldsymbol{x}_0 & \dots & \dots & \boldsymbol{x}_{p-1}\end{bmatrix}, +$$ + +with a given vector +$$ +\boldsymbol{x}_i^T = \begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \dots & \dots x_{n-1,i}\end{bmatrix}. +$$ + +

    +With these definitions, we can now rewrite our \( 2\times 2 \) correaltion/covariance matrix in terms of a moe general design/feature matrix \( \boldsymbol{X}\in {\mathbb{R}}^{n\times p} \). This leads to a \( p\times p \) covariance matrix for the vectors \( \boldsymbol{x}_i \) with \( i =0,1,\dots,p-1 \) +$$ +\boldsymbol{C}[\boldsymbol{x}] = \begin{bmatrix} var[\boldsymbol{x}_0] & cov[\boldsymbol{x}_0,\boldsymbol{x}_1] \\ + cov[\boldsymbol{x},\boldsymbol{y}] & var[\boldsymbol{x}_{p-1}] \\ + \end{bmatrix}, +$$ + +

    +The Numpy function np.cov calculates the covariance elements using the factor \( 1/(n-1) \) instead of \( 1/n \) since it assumes we do not have the exact mean values. +The following simple function uses the np.vstack function which takes each vector of dimension \( 1\times n \) and produces a \( 2\times n \) matrix \( \hat{W} \) +$$ +\hat{W} = \begin{bmatrix} x_0 & y_0 \\ + x_1 & y_1 \\ + x_2 & y_2\\ + \dots & \dots \\ + x_{n-2} & y_{n-2}\\ + x_{n-1} & y_{n-1} & + \end{bmatrix}, +$$ + +

    +which in turn is converted into into the \( 3\times 3 \) covariance matrix +\( \hat{\Sigma} \) via the Numpy function np.cov(). We note that we can also calculate +the mean value of each set of samples \( \hat{x} \) etc using the Numpy +function np.mean(x). We can also extract the eigenvalues of the +covariance matrix through the np.linalg.eig() function. + +

    + + +

    # Importing various packages
    +import numpy as np
    +
    +n = 100
    +x = np.random.normal(size=n)
    +print(np.mean(x))
    +y = 4+3*x+np.random.normal(size=n)
    +print(np.mean(y))
    +z = x**3+np.random.normal(size=n)
    +print(np.mean(z))
    +W = np.vstack((x, y, z))
    +Sigma = np.cov(W)
    +print(Sigma)
    +Eigvals, Eigvecs = np.linalg.eig(Sigma)
    +print(Eigvals)
    +
    +

    +









    + +

    Classical PCA Theorem











    -

    Getting started with PCA

    +

    Prof of the PCA Theorem

    + +

    +









    + +

    Getting started with PCA

    @@ -522,7 +659,7 @@ X_pca = pca.transform(X_train_scaled)











    -

    Principal Component Analysis

    +

    Principal Component Analysis

    @@ -558,7 +695,7 @@ X2D = X_centered.dot(W2)

    -

    PCA and scikit-learn

    +

    PCA and scikit-learn

    Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The @@ -589,7 +726,7 @@ More material to come here.











    -

    More on the PCA

    +

    More on the PCA

    Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to @@ -619,7 +756,7 @@ X_reduced = pca.fit_transform(X)











    -

    Incremental PCA

    +

    Incremental PCA

    One problem with the preceding implementation of PCA is that it requires the whole training set to fit in @@ -631,7 +768,7 @@ instances arrive).











    -

    Randomized PCA

    +

    Randomized PCA

    Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic @@ -646,7 +783,7 @@ previous algorithms when \( d \) is much smaller than \( n \).











    -

    Kernel PCA

    +

    Kernel PCA

    @@ -675,7 +812,7 @@ X_reduced = rbf_pca.fit_transform(X)











    -

    LLE

    +

    LLE

    Locally Linear Embedding (LLE) is another very powerful nonlinear dimensionality reduction @@ -687,7 +824,7 @@ these local relationships are best preserved (more details shortly).











    -

    Other techniques

    +

    Other techniques

    There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn. @@ -702,6 +839,61 @@ Here are some of the most popular:

  • Linear Discriminant Analysis (LDA) is actually a classification algorithm, but during training it learns the most discriminative axes between the classes, and these axes can then be used to define a hyperplane onto which to project the data. The benefit is that the projection will keep classes as far apart as possible, so LDA is a good technique to reduce dimensionality before running another classification algorithm such as a Support Vector Machine (SVM) classifier discussed in the SVM lectures.
  • +Here are other examples where we use the DataFrame functionality to handle arrays, now with more interesting features for us, namely numbers. We set up a matrix +of dimensionality \( 10\times 5 \) and compute the mean value and standard deviation of each column. Similarly, we can perform mathematial operations like squaring the matrix elements and many other operations. +

    + + +

    import numpy as np
    +import pandas as pd
    +from IPython.display import display
    +np.random.seed(100)
    +# setting up a 10 x 5 matrix
    +rows = 10
    +cols = 5
    +a = np.random.randn(rows,cols)
    +df = pd.DataFrame(a)
    +display(df)
    +print(df.mean())
    +print(df.std())
    +display(df**2)
    +
    +

    +Thereafter we can select specific columns only and plot final results +

    + + +

    df.columns = ['First', 'Second', 'Third', 'Fourth', 'Fifth']
    +df.index = np.arange(10)
    +
    +display(df)
    +print(df['Second'].mean() )
    +print(df.info())
    +print(df.describe())
    +
    +from pylab import plt, mpl
    +plt.style.use('seaborn')
    +mpl.rcParams['font.family'] = 'serif'
    +
    +df.cumsum().plot(lw=2.0, figsize=(10,6))
    +plt.show()
    +
    +
    +df.plot.bar(figsize=(10,6), rot=15)
    +plt.show()
    +
    +

    +We can produce a \( 4\times 4 \) matrix +

    + + +

    b = np.arange(16).reshape((4,4))
    +print(b)
    +df1 = pd.DataFrame(b)
    +print(df1)
    +
    +

    +and many other operations. diff --git a/doc/pub/DimRed/html/DimRed.html b/doc/pub/DimRed/html/DimRed.html index 16c9a74ea..ddbbd9055 100644 --- a/doc/pub/DimRed/html/DimRed.html +++ b/doc/pub/DimRed/html/DimRed.html @@ -97,17 +97,21 @@ div { text-align: justify; text-justify: inter-word; } 2, None, '___sec8'), - ('Classical PCA Theorem', 2, None, '___sec9'), - ('Prof of the PCA Theorem', 2, None, '___sec10'), - ('Getting started with PCA', 2, None, '___sec11'), - ('Principal Component Analysis', 2, None, '___sec12'), - ('PCA and scikit-learn', 2, None, '___sec13'), - ('More on the PCA', 2, None, '___sec14'), - ('Incremental PCA', 2, None, '___sec15'), - ('Randomized PCA', 2, None, '___sec16'), - ('Kernel PCA', 2, None, '___sec17'), - ('LLE', 2, None, '___sec18'), - ('Other techniques', 2, None, '___sec19')]} + ('Correlation Function and Design/Feature Matrix', + 2, + None, + '___sec9'), + ('Classical PCA Theorem', 2, None, '___sec10'), + ('Prof of the PCA Theorem', 2, None, '___sec11'), + ('Getting started with PCA', 2, None, '___sec12'), + ('Principal Component Analysis', 2, None, '___sec13'), + ('PCA and scikit-learn', 2, None, '___sec14'), + ('More on the PCA', 2, None, '___sec15'), + ('Incremental PCA', 2, None, '___sec16'), + ('Randomized PCA', 2, None, '___sec17'), + ('Kernel PCA', 2, None, '___sec18'), + ('LLE', 2, None, '___sec19'), + ('Other techniques', 2, None, '___sec20')]} end of tocinfo --> @@ -149,7 +153,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 19, 2019

    +

    Oct 20, 2019












    @@ -467,27 +471,41 @@ plt.show() #print eigvalues of correlation matrix EigValues, EigVectors = np.linalg.eig(correlation_matrix) print(EigValues) - -#split into train and test and then scale thereafter -X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) -print(X_train.shape) -print(X_test.shape) - -logreg = LogisticRegression() -logreg.fit(X_train, y_train) -print("Test set accuracy from Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) - -from sklearn.preprocessing import MinMaxScaler, StandardScaler -scaler = StandardScaler() -scaler.fit(X_train) -X_train_scaled = scaler.transform(X_train) -X_test_scaled = scaler.transform(X_test) - -logreg.fit(X_train_scaled, y_train) -print("Test set accuracy scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))

    - +In the above example we note two things. In the first plot we display +the overlap of benign and malignant tumors as functions of the various +features in the Wisconsing breast cancer data set. We see that for +some of the features we can distinguish clearly the benign and +malignant cases while for other features we cannot. This can point to +us which features may be of greater interest when we wish to classify +a benign or not benign tumour. + +

    +In the second figure we have computed the so-called correlation +matrix, which in our case with thirty features becomes a \( 30\times 30 \) +matrix. + +

    +We constructed this matrix using pandas via the statements +

    + + +

    cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)
    +
    +

    +and then +

    + + +

    correlation_matrix = cancerpd.corr().round(1)
    +
    +

    +Diagonalizing this matrix we can in turn say something about which +features are of relevance and which are not. But before we proceed we +need to define covariance and correlation matrices. This leads us to +the classical Principal Component Analysis (PCA) theorem with +applications.











    @@ -500,19 +518,138 @@ logreg.fit(X_train_scaled, y_train)

    Introducing the Covariance and Correlation functions

    -









    +Suppose we have defined two vectors +$\hat{x} and \hat{y} with \( n \) elements each. The covariance matrix $\boldsymbol{C}is defined as +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} cov[\boldsymbol{x},\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{y},\boldsymbol{x}] & cov[\boldsymbol{y},\boldsymbol{y}] \\ + \end{bmatrix}, +$$ -

    Classical PCA Theorem

    +where for example +$$ +cov[\boldsymbol{x},\boldsymbol{y}] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +$$ + +With this definition and recalling that the variance is +$$ +var[\boldsymbol{x}]=\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, +$$ + +we can rewrite the covariance matrix in this case as +$$ +\boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} var[\boldsymbol{x}] & cov[\boldsymbol{x},\boldsymbol{y}] \\ + cov[\boldsymbol{x},\boldsymbol{y}] & var[\boldsymbol{y}] \\ + \end{bmatrix}, +$$ + +

    +The covariance takes values between zero and infinity and may thus lead to problems with loss of numerical precision for particularly large values. It is common to scale the covariance matrix by introducing instead the correlation matrix defined via the so-called correlation function +$$ +corr[\boldsymbol{x},\boldsymbol{y}]=\frac{cov[\boldsymbol{x},\boldsymbol{y}]}{\sqrt{var[\boldsymbol{x}]\var\boldsymbol{y}]}}. +$$ + +The correlation function is then given by values \( corr[\boldsymbol{x},\boldsymbol{y}] \in [-1,1] \). This avoids eventual problems with too large values. We can then define the correlation matrix for the two vectors \( \boldsymbol{x} \) and \( \boldsymbol{y} \) as +$$ +\boldsymbol{K}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} 1 & corr[\boldsymbol{x},\boldsymbol{y}] \\ + corr[\boldsymbol{y},\boldsymbol{x}] & 1 \\ + \end{bmatrix}, +$$ + +

    +In the above example this is the function we constructed using pandas.











    -

    Prof of the PCA Theorem

    +

    Correlation Function and Design/Feature Matrix

    + +

    +In our derivation of the various regression algorithms like Ordinary Least Squares or Ridge regression we defined the design/feature matrix \( \boldsymbol{X} \) as +$$ +\boldsymbol{X}=\begin{bmatrix} +x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +\dots & \dots & \dots & \dots \dots & \dots \\ +x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +\end{bmatrix}, +$$ + +with \( \boldsymbol{X}\in {\mathbb{R}}^{n\times p} \), with the predictors/features \( p \) refering to the column numbers and the +entries \( n \) being the row elements. +We can rewrite the design/feature matrix in terms of its column vectors as +$$ +\boldsymbol{X}=\begin{bmatrix} \boldsymbol{x}_0 & \boldsymbol{x}_0 & \boldsymbol{x}_0 & \dots & \dots & \boldsymbol{x}_{p-1}\end{bmatrix}, +$$ + +with a given vector +$$ +\boldsymbol{x}_i^T = \begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \dots & \dots x_{n-1,i}\end{bmatrix}. +$$ + +

    +With these definitions, we can now rewrite our \( 2\times 2 \) correaltion/covariance matrix in terms of a moe general design/feature matrix \( \boldsymbol{X}\in {\mathbb{R}}^{n\times p} \). This leads to a \( p\times p \) covariance matrix for the vectors \( \boldsymbol{x}_i \) with \( i =0,1,\dots,p-1 \) +$$ +\boldsymbol{C}[\boldsymbol{x}] = \begin{bmatrix} var[\boldsymbol{x}_0] & cov[\boldsymbol{x}_0,\boldsymbol{x}_1] \\ + cov[\boldsymbol{x},\boldsymbol{y}] & var[\boldsymbol{x}_{p-1}] \\ + \end{bmatrix}, +$$ + +

    +The Numpy function np.cov calculates the covariance elements using the factor \( 1/(n-1) \) instead of \( 1/n \) since it assumes we do not have the exact mean values. +The following simple function uses the np.vstack function which takes each vector of dimension \( 1\times n \) and produces a \( 2\times n \) matrix \( \hat{W} \) +$$ +\hat{W} = \begin{bmatrix} x_0 & y_0 \\ + x_1 & y_1 \\ + x_2 & y_2\\ + \dots & \dots \\ + x_{n-2} & y_{n-2}\\ + x_{n-1} & y_{n-1} & + \end{bmatrix}, +$$ + +

    +which in turn is converted into into the \( 3\times 3 \) covariance matrix +\( \hat{\Sigma} \) via the Numpy function np.cov(). We note that we can also calculate +the mean value of each set of samples \( \hat{x} \) etc using the Numpy +function np.mean(x). We can also extract the eigenvalues of the +covariance matrix through the np.linalg.eig() function. + +

    + + +

    # Importing various packages
    +import numpy as np
    +
    +n = 100
    +x = np.random.normal(size=n)
    +print(np.mean(x))
    +y = 4+3*x+np.random.normal(size=n)
    +print(np.mean(y))
    +z = x**3+np.random.normal(size=n)
    +print(np.mean(z))
    +W = np.vstack((x, y, z))
    +Sigma = np.cov(W)
    +print(Sigma)
    +Eigvals, Eigvecs = np.linalg.eig(Sigma)
    +print(Eigvals)
    +
    +

    +









    + +

    Classical PCA Theorem











    -

    Getting started with PCA

    +

    Prof of the PCA Theorem

    + +

    +









    + +

    Getting started with PCA

    @@ -527,7 +664,7 @@ X_pca = pca.









    -

    Principal Component Analysis

    +

    Principal Component Analysis

    @@ -563,7 +700,7 @@ X2D = X_centered -

    PCA and scikit-learn

    +

    PCA and scikit-learn

    Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The @@ -594,7 +731,7 @@ More material to come here.











    -

    More on the PCA

    +

    More on the PCA

    Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to @@ -624,7 +761,7 @@ X_reduced = pca











    -

    Incremental PCA

    +

    Incremental PCA

    One problem with the preceding implementation of PCA is that it requires the whole training set to fit in @@ -636,7 +773,7 @@ instances arrive).











    -

    Randomized PCA

    +

    Randomized PCA

    Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic @@ -651,7 +788,7 @@ previous algorithms when \( d \) is much smaller than \( n \).











    -

    Kernel PCA

    +

    Kernel PCA

    @@ -680,7 +817,7 @@ X_reduced = rbf_pcaLLE +

    LLE

    Locally Linear Embedding (LLE) is another very powerful nonlinear dimensionality reduction @@ -692,7 +829,7 @@ these local relationships are best preserved (more details shortly).











    -

    Other techniques

    +

    Other techniques

    There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn. @@ -707,6 +844,61 @@ Here are some of the most popular:

  • Linear Discriminant Analysis (LDA) is actually a classification algorithm, but during training it learns the most discriminative axes between the classes, and these axes can then be used to define a hyperplane onto which to project the data. The benefit is that the projection will keep classes as far apart as possible, so LDA is a good technique to reduce dimensionality before running another classification algorithm such as a Support Vector Machine (SVM) classifier discussed in the SVM lectures.
  • +Here are other examples where we use the DataFrame functionality to handle arrays, now with more interesting features for us, namely numbers. We set up a matrix +of dimensionality \( 10\times 5 \) and compute the mean value and standard deviation of each column. Similarly, we can perform mathematial operations like squaring the matrix elements and many other operations. +

    + + +

    import numpy as np
    +import pandas as pd
    +from IPython.display import display
    +np.random.seed(100)
    +# setting up a 10 x 5 matrix
    +rows = 10
    +cols = 5
    +a = np.random.randn(rows,cols)
    +df = pd.DataFrame(a)
    +display(df)
    +print(df.mean())
    +print(df.std())
    +display(df**2)
    +
    +

    +Thereafter we can select specific columns only and plot final results +

    + + +

    df.columns = ['First', 'Second', 'Third', 'Fourth', 'Fifth']
    +df.index = np.arange(10)
    +
    +display(df)
    +print(df['Second'].mean() )
    +print(df.info())
    +print(df.describe())
    +
    +from pylab import plt, mpl
    +plt.style.use('seaborn')
    +mpl.rcParams['font.family'] = 'serif'
    +
    +df.cumsum().plot(lw=2.0, figsize=(10,6))
    +plt.show()
    +
    +
    +df.plot.bar(figsize=(10,6), rot=15)
    +plt.show()
    +
    +

    +We can produce a \( 4\times 4 \) matrix +

    + + +

    b = np.arange(16).reshape((4,4))
    +print(b)
    +df1 = pd.DataFrame(b)
    +print(df1)
    +
    +

    +and many other operations. diff --git a/doc/pub/DimRed/ipynb/DimRed.ipynb b/doc/pub/DimRed/ipynb/DimRed.ipynb index cc73fb1ff..e764465eb 100644 --- a/doc/pub/DimRed/ipynb/DimRed.ipynb +++ b/doc/pub/DimRed/ipynb/DimRed.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Oct 19, 2019**\n", + "Date: **Oct 20, 2019**\n", "\n", "Copyright 1999-2019, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -337,32 +337,67 @@ "\n", "#print eigvalues of correlation matrix\n", "EigValues, EigVectors = np.linalg.eig(correlation_matrix)\n", - "print(EigValues)\n", - "\n", - "#split into train and test and then scale thereafter\n", - "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", - "print(X_train.shape)\n", - "print(X_test.shape)\n", - "\n", - "logreg = LogisticRegression()\n", - "logreg.fit(X_train, y_train)\n", - "print(\"Test set accuracy from Logistic Regression: {:.2f}\".format(logreg.score(X_test,y_test)))\n", - "\n", - "from sklearn.preprocessing import MinMaxScaler, StandardScaler\n", - "scaler = StandardScaler()\n", - "scaler.fit(X_train)\n", - "X_train_scaled = scaler.transform(X_train)\n", - "X_test_scaled = scaler.transform(X_test)\n", - "\n", - "logreg.fit(X_train_scaled, y_train)\n", - "print(\"Test set accuracy scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))" + "print(EigValues)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "\n", + "In the above example we note two things. In the first plot we display\n", + "the overlap of benign and malignant tumors as functions of the various\n", + "features in the Wisconsing breast cancer data set. We see that for\n", + "some of the features we can distinguish clearly the benign and\n", + "malignant cases while for other features we cannot. This can point to\n", + "us which features may be of greater interest when we wish to classify\n", + "a benign or not benign tumour.\n", + "\n", + "In the second figure we have computed the so-called correlation\n", + "matrix, which in our case with thirty features becomes a $30\\times 30$\n", + "matrix.\n", + "\n", + "We constructed this matrix using **pandas** via the statements" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and then" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "correlation_matrix = cancerpd.corr().round(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Diagonalizing this matrix we can in turn say something about which\n", + "features are of relevance and which are not. But before we proceed we\n", + "need to define covariance and correlation matrices. This leads us to\n", + "the classical Principal Component Analysis (PCA) theorem with\n", + "applications.\n", + "\n", "\n", "\n", "## Basic ideas of the Principal Component Analysis (PCA)\n", @@ -370,6 +405,247 @@ "\n", "## Introducing the Covariance and Correlation functions\n", "\n", + "Suppose we have defined two vectors\n", + "$\\hat{x} and \\hat{y} with $n$ elements each. The covariance matrix $\\boldsymbol{C}is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} cov[\\boldsymbol{x},\\boldsymbol{x}] & cov[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " cov[\\boldsymbol{y},\\boldsymbol{x}] & cov[\\boldsymbol{y},\\boldsymbol{y}] \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where for example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "cov[\\boldsymbol{x},\\boldsymbol{y}] =\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})(y_i- \\overline{y}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With this definition and recalling that the variance is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "var[\\boldsymbol{x}]=\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we can rewrite the covariance matrix in this case as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} var[\\boldsymbol{x}] & cov[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " cov[\\boldsymbol{x},\\boldsymbol{y}] & var[\\boldsymbol{y}] \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The covariance takes values between zero and infinity and may thus lead to problems with loss of numerical precision for particularly large values. It is common to scale the covariance matrix by introducing instead the correlation matrix defined via the so-called correlation function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "corr[\\boldsymbol{x},\\boldsymbol{y}]=\\frac{cov[\\boldsymbol{x},\\boldsymbol{y}]}{\\sqrt{var[\\boldsymbol{x}]\\var\\boldsymbol{y}]}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The correlation function is then given by values $corr[\\boldsymbol{x},\\boldsymbol{y}] \\in [-1,1]$. This avoids eventual problems with too large values. We can then define the correlation matrix for the two vectors $\\boldsymbol{x}$ and $\\boldsymbol{y}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{K}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} 1 & corr[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " corr[\\boldsymbol{y},\\boldsymbol{x}] & 1 \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above example this is the function we constructed using **pandas**.\n", + "\n", + "## Correlation Function and Design/Feature Matrix\n", + "\n", + "In our derivation of the various regression algorithms like Ordinary Least Squares or Ridge regression we defined the design/feature matrix $\\boldsymbol{X}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{0,0} & x_{0,1} & x_{0,2}& \\dots & \\dots x_{0,p-1}\\\\\n", + "x_{1,0} & x_{1,1} & x_{1,2}& \\dots & \\dots x_{1,p-1}\\\\\n", + "x_{2,0} & x_{2,1} & x_{2,2}& \\dots & \\dots x_{2,p-1}\\\\\n", + "\\dots & \\dots & \\dots & \\dots \\dots & \\dots \\\\\n", + "x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \\dots & \\dots x_{n-2,p-1}\\\\\n", + "x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \\dots & \\dots x_{n-1,p-1}\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$, with the predictors/features $p$ refering to the column numbers and the\n", + "entries $n$ being the row elements.\n", + "We can rewrite the design/feature matrix in terms of its column vectors as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix} \\boldsymbol{x}_0 & \\boldsymbol{x}_0 & \\boldsymbol{x}_0 & \\dots & \\dots & \\boldsymbol{x}_{p-1}\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with a given vector" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_i^T = \\begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \\dots & \\dots x_{n-1,i}\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With these definitions, we can now rewrite our $2\\times 2$ correaltion/covariance matrix in terms of a moe general design/feature matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$. This leads to a $p\\times p$ covariance matrix for the vectors $\\boldsymbol{x}_i$ with $i =0,1,\\dots,p-1$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}] = \\begin{bmatrix} var[\\boldsymbol{x}_0] & cov[\\boldsymbol{x}_0,\\boldsymbol{x}_1] \\\\\n", + " cov[\\boldsymbol{x},\\boldsymbol{y}] & var[\\boldsymbol{x}_{p-1}] \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Numpy function **np.cov** calculates the covariance elements using the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have the exact mean values. \n", + "The following simple function uses the **np.vstack** function which takes each vector of dimension $1\\times n$ and produces a $2\\times n$ matrix $\\hat{W}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{W} = \\begin{bmatrix} x_0 & y_0 \\\\\n", + " x_1 & y_1 \\\\\n", + " x_2 & y_2\\\\\n", + " \\dots & \\dots \\\\\n", + " x_{n-2} & y_{n-2}\\\\\n", + " x_{n-1} & y_{n-1} & \n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which in turn is converted into into the $3\\times 3$ covariance matrix\n", + "$\\hat{\\Sigma}$ via the Numpy function **np.cov()**. We note that we can also calculate\n", + "the mean value of each set of samples $\\hat{x}$ etc using the Numpy\n", + "function **np.mean(x)**. We can also extract the eigenvalues of the\n", + "covariance matrix through the **np.linalg.eig()** function." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Importing various packages\n", + "import numpy as np\n", + "\n", + "n = 100\n", + "x = np.random.normal(size=n)\n", + "print(np.mean(x))\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "print(np.mean(y))\n", + "z = x**3+np.random.normal(size=n)\n", + "print(np.mean(z))\n", + "W = np.vstack((x, y, z))\n", + "Sigma = np.cov(W)\n", + "print(Sigma)\n", + "Eigvals, Eigvecs = np.linalg.eig(Sigma)\n", + "print(Eigvals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Classical PCA Theorem\n", "\n", "\n", @@ -385,7 +661,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -413,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -440,7 +716,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -464,7 +740,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -486,7 +762,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -516,7 +792,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -539,7 +815,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -586,7 +862,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -623,7 +899,96 @@ "\n", "* **t-Distributed Stochastic Neighbor Embedding** (t-SNE) reduces dimensionality while trying to keep similar instances close and dissimilar instances apart. It is mostly used for visualization, in particular to visualize clusters of instances in high-dimensional space (e.g., to visualize the MNIST images in 2D).\n", "\n", - "* Linear Discriminant Analysis (LDA) is actually a classification algorithm, but during training it learns the most discriminative axes between the classes, and these axes can then be used to define a hyperplane onto which to project the data. The benefit is that the projection will keep classes as far apart as possible, so LDA is a good technique to reduce dimensionality before running another classification algorithm such as a Support Vector Machine (SVM) classifier discussed in the SVM lectures." + "* Linear Discriminant Analysis (LDA) is actually a classification algorithm, but during training it learns the most discriminative axes between the classes, and these axes can then be used to define a hyperplane onto which to project the data. The benefit is that the projection will keep classes as far apart as possible, so LDA is a good technique to reduce dimensionality before running another classification algorithm such as a Support Vector Machine (SVM) classifier discussed in the SVM lectures.\n", + "\n", + "Here are other examples where we use the **DataFrame** functionality to handle arrays, now with more interesting features for us, namely numbers. We set up a matrix \n", + "of dimensionality $10\\times 5$ and compute the mean value and standard deviation of each column. Similarly, we can perform mathematial operations like squaring the matrix elements and many other operations." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from IPython.display import display\n", + "np.random.seed(100)\n", + "# setting up a 10 x 5 matrix\n", + "rows = 10\n", + "cols = 5\n", + "a = np.random.randn(rows,cols)\n", + "df = pd.DataFrame(a)\n", + "display(df)\n", + "print(df.mean())\n", + "print(df.std())\n", + "display(df**2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Thereafter we can select specific columns only and plot final results" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df.columns = ['First', 'Second', 'Third', 'Fourth', 'Fifth']\n", + "df.index = np.arange(10)\n", + "\n", + "display(df)\n", + "print(df['Second'].mean() )\n", + "print(df.info())\n", + "print(df.describe())\n", + "\n", + "from pylab import plt, mpl\n", + "plt.style.use('seaborn')\n", + "mpl.rcParams['font.family'] = 'serif'\n", + "\n", + "df.cumsum().plot(lw=2.0, figsize=(10,6))\n", + "plt.show()\n", + "\n", + "\n", + "df.plot.bar(figsize=(10,6), rot=15)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can produce a $4\\times 4$ matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "b = np.arange(16).reshape((4,4))\n", + "print(b)\n", + "df1 = pd.DataFrame(b)\n", + "print(df1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and many other operations." ] } ], diff --git a/doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz b/doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz index cc8d3012bf8ff852404beec798cd00f6066991cf..559fe806eb7b72064d66a71abebc6e9c89a20406 100644 GIT binary patch literal 191 zcmV;w06_mAiwFRlxU5|O1MSaC3c@fD2H>uHia9|^nx?LWcHu&h;ssKYny5``l7hXx zeSoeMH${Yeo1bBZVWuj##lB4Z-AAiI2<2G@Q*LrPCrX!khA{<9C?%L=DItI`ArwV` z);sB?cb?ht6nPff3H^3%9BY~ndzM$=nSbIam4n@3@X~0|#*5mR3lyrY1W!~q=o+{Y tZfb!Qw_aHROb@^~S6&&-u5oA0$+FfZ@vol=f*=UK_5h;t^Bn*P000&uRiyv` literal 191 zcmV;w06_mAiwFQHS*u+D1MSaC3WG2Z24L5oVoo55Cb}-@!bPD-FAzzrX=`GW2=(^$ z0qv@#8!3f+o1bBZVWui}`M!wU-36OL2&II;oLNejMDbcLFs6VLO5>CgLJ=UGBs2>E zZFkbkU>!5lDeYM(E7aS$X{>2J>{(xdXa0#}D=n0V(Y0EE(oWP`Um%xVC3qzJQPse; tuyYHHxDC<>U}^-$xpY!1b`5)@Plk0i3V;2K=Xsv@wFigX;;#S*000VFRVx4h diff --git a/doc/pub/DimRed/pdf/DimRed-minted.pdf b/doc/pub/DimRed/pdf/DimRed-minted.pdf index 85a5cc8702c1938f418a75ba7d8745bf3a7e05e7..463adcf4dcac8907a58f91f8fa0cd0edc37f0798 100644 GIT binary patch delta 140902 zcmZs?Q*fYd5Um^AwmGqF+mmGCOl&*z#kMiAZQHhuiEZQj8>ebl?fqVLSM|+%_pH^u z5<3tcijm?d!8k|~S?HFx#CB&) zS0C?1zF#oWaO!F0!V~*+d>E1=cQkKaP@$G@ojiSezCr&;OwzH9iq_~GN0`F7CXSNH z7YZaR2{|g6GqR%7a(mF50Pn7vR@+)!mCFr{1ipWk6>XW|Yn-&wFIi;*Bjdoszk!+P zbJMfsgL~R0T4RlBvv>cN;CtWS23Z^24d=c)uTNR;A6ji}7EhPH(Hf2khZUzx)CQLt zs9CEiI(+>#KhZFEeH{b{)n~d_;`wscd_#w$(bLpT6LGi8_P)=xXG*~)uus;-8x@ChtbiZ%o_ZqNLNL3gjE-RG@LVCT>!w;w-I0RI`_^Mm*K8oPtadwm_Q6v(hx{7X+%i(o{D6k)gZ!1EH$;xG;QY)IecEWaD?N5!qVDGbb&lW zf%5{<2zpCL;72neFVo7L5*f#_*O<}r8TE<-xo>C={Lv|s@^+!LcE`Rfn0D<>qgXVZqUoGe^w2QKxk&MDYs<DUq&1o^bxzurhdvl zuv7ImxdS+WZRRgo4z60b3kLWtRoMwf-iv(uvZw?b9r?pGmtfcqF{25!rUpND-l;E? zd{YVCVmE=q)GJTCVNL6GC%K}?)e|QHgS$_1&!R9W;I@}{^$CSuZ*)5sz!iv57Sc7C z$Y!6K(Vi}yt}RmARc&8u(0F^??w7X@~(H@tI}aGBy|Qs^u~|A_qY=G~$RRvcZ3 zGpt^2vPD5YLz)uRKx%}d3fd%pp>Q>?yo;VMh8@WT`@u;n6BHp1Z++9p%t>-;g;lr; z!9xOsobbKOcK;NS*B>5^K=%MIMap@?3WvSW&HJTnCh9aW68SD|rLr<=Y2gp$KQAMh}jJYE`5sVv(X1`f_*hvhhPg)YDPjU zX5sWyi4_a7`TIftXJov-?+S8M_^w@}9NQ@HH-=kB&snK47|TkhzM0ZG6KXv)`hIpx zf*PEC7|#(=D;XYq_>?{S6R~{N8iW_S6O=&78FrbgaLG?kvDn!x@ZX!AmmpW>WCpB% zajB%&@O&vhTh8(~XZ+*7_XiW|z9#Ff_d_b3UH3-p2)$0PRIhEbWa!|&LVD%jD9DugPqck=fm|EBCC|T6HaGhFEtMOhnR+^1D^Qe zZK#NRnAnBCe+M$U8TQeFaBmJlBioMo`k;BaLpnwv}cK||rIQQ>Xa?Z%h&$y7|Oso@RWa;>yF0{POlVhTJ!+zZ$RVaeIo7>y7 z*(%f#`%cpKyT5TE;ZeI#0f(`XFpIzf zevpwT?+gqXW!N(+rMALt#&m@iSBFbw0`cDqK#U^*;;Osit_ z$r=&0&|k1HE{BHriI+3gl9uX>*CZ^>F+?&gLzv`)!-F1)Y%m~T>LsDZe%exdP}>Mw zv(E2Fb+8{bNcs-3M;g90Cv7-=YLiURYgc{L!RxWGyWd(Vqy<(sWbVB@{P@*H99clZ zzu_UmSVol(8`_l)?E1YG5C3*d?Z4+$R)(yOVT%E6?L-H23tjv1C|pjoJ>>qcYz$ZH z`0}#O=*MkcMhU==gN)GVyfWT>yI`tO?s+{l@4cJVVeEHR9H?0JsG>)=wky(F*OXuC zumpx57}@WasfQS|{QR`9hEXz=pmiSJ87OzcEt)&A4c^%PqoCnr67B92?^%8}XTw zRaf6#=!XYM$SrZ9*}6(36>mfRsRt6|yFK4_tBl$gc_PCm&m?B(qh&-YPdN_Lujie= zUR2Ovkaj=Dwaf!>tSH}BO0K`4#dSoU;7sjIoLwlLOpR>+M`>?t1;@rs!c6i%3Vwb# zCV5jka~BH|R&Exa|3#`>_-jrZqqlkneNs36|Jsl{o{UzsOE|}V{?*dx&}deLOpFWq zl`spI8{^~ah2)20Aw5@YBIij870A=>{dPr~tt)?XP(#hl5AX_jKE{-Wi%6>S@Cf9f z1kw8RqqCAmky1X2!v)izCoU`<{N}7FRySQyBdzabynpOWo8|_nw7attZ1y(p%c~dV@Yu8ZjMq+0*Itk($P9vxif)gY73%Jr|PheNKCNYK#h; z1ej`ak1rnVK~7+F8Bvyq)?1d&tauA}E0%}6;AY%-e@B@LRo@@#{m!ek&#CRb-uZ$- zHs)*H>L`a_H9rJ)?8l$xk*8{^Q$Qjm5NrJ}4Y~?yIYcC3tWHCz*~(FjKzhMIUTC3b zjmpuq+i32FxhkB$UAWhW-`fX9yS!>~Zw&_;9zVfr_iSOBDTB7~$cxK%-mrxlsyAgL zr#f{FqMChm)<{>>#+pMd-|rvu@tL`0HXOUPX9(|zp2GlFW>zm3EK%G+jN8y#BWFyc z0)Jnc+PSHu4EjbUXK%rkz-)D6+RG=2S;gff>`uQwWDA@ENE?KJu zV$qIKjjF(H5ST~Uex(-Xc{A*4vrX%us!9@hOC-fmsMc}yQ+E2hG?+qwI`PirEx zbSBYW3#=jgeC0@s4Ho1LXJ0K5f$lcNG6sT?-LPCeyFw6Im^Es_3k#&BkU#mj6nmRO zFGGA>ec--=u|y2_(njDWaxo~gLg#5ZCEdiI8#X{2ZnY{6CbTH?8CEUZ4?8JiHZfgP z(lhSDl4>=ZTv7wtEkZRV(7V%3MUp^1eFFjo)pkaeKtBFV;u1%EQ7nwWeGtuK>_W_> z7&ak6!E76Xe}8O~5*5$yUYz=Ok(%Jy+(oZA|JztC4g@$N7$G|WJWPsofU(~hn=qU+ zrU-yRYqhJjR^Z~Sy%_uqGhMOH6|v#t+C)FkDFSXkiDM&j!e#hYAVb%j1i4Vu^&d$G zW88!U8GJ9j5>gB0WPf zQ-9xOTLg`|QAP#9nw(GO)r}NarXDiH@d1|Q8tf5seKc1%pzf7^j#@HE!yrdGXNeGM z{-$EGat@6kZvRF;vq4}b9hKpdNM!qKS?dfaZiIF*#8AYe8j&fzII*}LuMl)W1S$-u(nM<-!Ch!M`DF^Soj`TL>hiTGjHfN{5tt&z1F zqCOBMMP@3kM_~~5mk<$Y;SzBuYJgLFEXtOwnCK=Y>>lER(vr)h_k(D3f z!zE4`9(hHiPnYi-_hTu@1O%7n8!*;r8^MX;$g0hVN#81;W)8!72%-y%g%y%qa;1|A z=54xr$WRolJRKCth#@LIot#*7A)!X&x36Z|*CH-DYcC>^R7nE-%jJ|8<+!1X20pkm zNHABuEU6m$O1Wh8gmG&ZrLkL;`J^xSk(~^%xm?$<$WdElNV8B}QlHxp0nr{Jx)jgt zAjdK8c*7_XVW-aEp(_g(IN=_Hzi}?b@uC!Cb?n4<`G8WUOoqo>1ck-K%V5od;VA&J+18lO<#p{!zu zyjf1lkt0>Z)ORg$L>%iQ0G^V0_1Q2niFvt5O`fM6Bz_FQr*dmJWg;-F^ugDIU+2r0 zL1>t3>}CO=)Nmm-{ZyP|mtAl$->Wo_0|*kLo;EgTnJS5TOH0S5bygob(t={v+8lW^ zlyQ4)Zts;g$VMS|istwC!7c$L4@OQu zYiZMtSOx1bzHQ^oX2oQfv_-?P=umHqLMU4E>E!2SmdXj%iQrD`65YlXJSKW+KpP4yT z3ot8J34b@^HsZW^`6k`I?ZII{_p2(`m{`z1$=YIPKV2~ZV*&rXRTOQDCff&%R*x0; z-f=V`JL-FM3$zdx1Ye0$LV`eT#Mxa9FoR?w!c^y8N*t9!gnxh}NP1^e?pG5@PLZy1 z%z3=^B0)Vs4;sR<7Pc_M?WMs5dU%XbE%(*-ojG8wIadlwjci>?utVhlUeLpem` zL#X-CITkF9e$P^FBDy36pG0g@{3jRowme;PKBKwJ!kS!0;8uLK9~>of)E^I*t7 z&R4Yko}LnQF1N#Bb4*8H(;IxuHC&IEN$4I5S(Rwkkuc+iXc>bf>SP#sM7Ob2724am zTHba9cfZ3HO#75cYB-$~>d@tXlLL>fxTX-DOz+}pbzjpH%xsW#+sC;zAHMN|c}tk* z`AO>Lz#B9##S=n)k``p1R9AY79(}E)jr#s=-hh}gT>K@AuK)I^+KM@jllRbSz`@>b-&bBZAvy#-$v#Q`n$%*k{V6?e_k?}0w@(uU(F2B6*Obgy*C-snc zYl_6<-Mout#nbnA=S$^4;XIT0YxBT$j^YxE1C#K2!S_Xwqq?G=fWqvCFU(oCc zJSY8x(gfM}f@=SHB0{#dO$8oEqlNNw%@s~dh4Sse-#2tJ7)2`h1665r*7C>Mh|0un{b=JGMqmo5+H%ezNbi=L za!!AP=~K)^V2?HIOWYZI#&=5V7yj3t{@1?!*Z$GehZsTK+zrFME}*I7$z2g*KYAXC z84iMs>U;L8vSwL;K_`;Z3e_X=Nb<%SX;77&BvIZ6Spiusk&+Q0l08Vz1zbL8%eugn zP=4BksRpE~P4Z*BoM2^&Vnkm1f3f@$yIjEw5n~r!pqjkUSm}EAh<6Ch*ID$>lu&Ai=>I1<7LXm2RA}3`dh5ulw#+ zV$h9Xl$~B?V{$9gnyAuo=Q&PTJ9A5}`r{k_`VI8_xjkc0sous=+ z_!(4}l$eb1qe#B8`nh5!VMfE<{qgoKr)JwpFddM5qZKXImK@;uc0|WXSIo7ncA9M4 zHimd4e=rfxzO%u(vFGwTq6_!L2?hN@iIQBDAk9_!R53e7l6|E9P~qce5g%+KTXr@= zu;nLFG#gbIHKX`)XEl}PFfI~Fy`^{B9;47!#krMdX|RhsLpVqBo82@c z_#7}mi@2rN2ntQixGT0Pe_NJwaR5V1utn-v=ypRsrz=lf*#7u*X&TJ<}T;f<-6Pu4J5f8Rrif2=7E`it>I4V|)s{BE_gK_r7?cf%BhHTX`hGcIV zo9?w~5`)*;%(f8N$doGR_nc+%ks#Vd*gKj@(@(9~R)6F_Lbx6YaZXKCv@>n^$wNQ@ zq!Q0x7uGZU6*7aapB7n42XCiV3WZMJg`cUW+OyVQ5{*NK+l4FdV(dqgl)RD!*kg+n zUZ!&m3i;UKx-5#6&ghCoI9SH<|031Vb#E=;YRHM&iUYLdkZo#^eV8@Phg*`_4%Q!I zeiE{o{Y{YRA?Yb(MWFgK+vGZA(=-gAADUK^>Bp7en$y8S*48)$3Cp2NX*F}j%j#NB zZWluvFQ$^hbIo&;R@yeQa0a(IsD5NZ$4Q;dG`t{Z4ylA-A%bLd-gRUS5IZ`aTal`Zi~u ztTWz&!Yx8CystgRSfU6al~C;~t2w6i!g|mkMuT?$=`@i(WBto~+ce~h;iOHpWv-$j zk8TKws<=*&QB3b9Nn6ADwEL_nN+qF&`B;3RqC{nmtIwP)TYQ9@{f3}4jG*KjQo@Kc zZvr@Q4}G>XoY&L3U5%)@?3n?rkExEF3)-@jutmT6*M8~uu89jGn@18yHI#TAtFICU zqJwoiPA8mqj9YtYVr_6nj0UCGd}i_8Sl2J8L5r{NkxTMQx|9|>F%?2?@VawmiTeHN zHFP(w<)hod;Mpe8UJsGFAmxlACAB2D1v^4v6pSFzfeMf<)v2KhlpF`J&!Wjt5u{=c z^){bj1ol9AW7;8_=f&uwE5SkT+3`Yocvf6=jj|<%FK*XehZ)n4XcOx?d(B!V%@QC| zYpL2o)<}g^(^>PjM!DjPT*}uRbb2IG@}&{1{$%BOArjqz3-Urr#Us+RF?)hDOFxek z@aIeU;q@1<9ub9@i~a_pe))yWMMBTsgO4^mr488|C`{e{-V8~@DsbN#fjH`|I*a7! z7A7BLjdt+xW<7CDQgSTsv0*~fRBY9h=R4<@OCGJmk#Qyk{1P4#v>6F~wf0zuxCSj& zRI-a-YlpZtO5b*F8-qIz`qs=%6v2O@xhV6z)Q9PdDNZIUb$$VluW)k6^lhv#Q|8mw znLgY~U#{!K3W$eu9~fg(Wl&CQI2eaqC3U>WQfQK_NGX-Ew0Fb_&!52&$g`Oyp4^^l z7n~(}bIDcc6O>Yn!%5@Rw3y(^y69z$vy(RNEf@HoJSe&^`+1afA3J@ z`|x{BVQ#l~(?d+cO93jYu|QV?%tD z59JX&9(*@2@&7FX^rad|lS9gSSd1W!P})JH`4nw|K1;)Ycc&*bK8zl*Lf;9TQ1@!e z=!e6bUkU-ATiVhdJ35FEHv~hGBNFL!ayk-~pTbVBl$9iA4j@@;%2EzXF4Ar`NX>9P z0=DCvCX6E45EX~U)0aoA5!XNdC8b04GYd28QY%2-o*q5pV1N=%$yeDEJPFq0%ww$v z=T>lN`Z4Zw68T?C-$n6qSJGUo@Lf(siWdcVl9~WJv^J1mmN{P`j`xD%42KOq2-Sfb zYUp_=+ht!F#wNnY;y-$Is0xV4t#Mx*JsCjiF-}qb^;S{7W{e*`qeS}{%$>MnL^FmJ z-=|wBS?BWv*c>22=t7oidBicLpjPqVz=sXFmnF>KGpUQ0X7N{N5i`WWQco)DR_yoa zN*w^-3Q~0|68a<**yCNO^;#6_@h~N1a~H-t&PR%5Mo||Qg)~+t*;f*Os8)<7mAQ_3 zY+Kp<#CSI2-uvycT}p;qbeCA5S89X$_gahTS_UA**pTWB$jgl#!-YH4AnWm@2d6RT z;~l4Z4f{n&ecO@eA@@98awu(C`c%Wc;f??sBt>W=L^cCSn66!{a@2;5!Sea4r;bRY zK{U(6X-xb{t?bkoXUjTKk}Y2ihzKqm^%-XJ0*vyT9W?Gg6^K1Wzhc535Zb0ts91>@ z*%EXH##6@Ph;Zs16>u4id-+kW-{}|-l$h`QL|0Rc5G0P@yqb;HpY&opbuZS%b`F6u zCn4mp^%jPK+CV6%y+6EXrl9WxMr?!f^F89}WH!u^_0EXURdfDTa08s{Y;MAqDXQWb zhI=%l;OO|)$H?#yzjc59`*oMzxmA4315S+B9h9!ybu5`$osFwX)6d{=FIjc8PCOmA z+XoLbh(WJA(7iKzwC}l}o&m^EZw&#AK8a$^h#F59$9dKSsp_8-;OygP&6QHI9DnBo zYTY>rab0aVJb8?uxk48%x450PHTfshVrmISVN5T}+gG=WD$4>AX|ehN5q`i(p@8Kci|~86=LY>CWFSpFP6Pv9?Ru z$P7UP+>Zvxbqk6eEr><*yZxq^O`6Q!B~=f!@#H{7>Km}L0E4jD12oomO{l-E;- z!%XgeNz?Uk(KJH`XddrGZgGok`+{duvt%}%D)5%tAaIw^dm@jRZgSHQvTopOG(GRI zb$XT?ia--5SwSOSY?09Hd@$KY^}YIC|NStbktF%_z2me1kRFL)HUNoj%VmEl)Pd z((9>0ean}hPf;aGl;*0d*UJH?iFhi2!*8{m_WV2FA-iMV(DyJcbaL9Mk7NSsD>I|5 zZSB5Y1fuJ<#+2t3KR_~2!Ix|-{wt~~z2k5(>egazWY3LrWz}%O>zo~Vvn0YyXJxO5 zmDUBDiw?|&5ekR%+0dJ1fV#UCJ`EI%W~z_$p)i9P;dSIOQV6t=ORe&M8QK3QfOGu6 z0GyMDndHBh$WBiIRB6lDAGBh2Ki8DX&9WL=4=PN6@VKNXdc~1|uEU~Gh>&QO>HhsG zgDGR$a=dbEyLj}&o!ALYBHqUbzUTUuc8%XIVTyR0^6q2mvx8W$+(vCsqI_ZM^H1WS zMEpRDNdf2hkz?@#m8*7T^u{JJ*LT#{+Xgb1`*3UN#ru67aQ14-og`+Vu_|4#6&*32 zcTwTL(}l40b1HheAn&X^t8%gF*sLY(D!=(YwmaPZs*)jpM(2A7*&Qe!ulC&8`FQ`L z-n0<3TTJ7YyH~K%tGpi)Y_QN7Q1r~PWKS|s_MpreSLEEdDl*^vYfof4E+Tm?jBj_j z5!2JPyZaOcbhyYoj9?k$$n>H|s;Ib6ICo0N(awAF_rgezG|s%TP%R zZv8!*oK@qcZMedDt&QBYEK;#*QVFJY6AwNhE;hjiSlSzgB1|#mc$}Lxc7Y;BU%ru= zp*rSAxHeKr*d(W&F->7<&N_DtOyr5PD3N01Ub^pt#e&hW=CxE>+aW-&W+DiP*w}oQ z6)IUa+V+LJw|bDv#nEb+P>~sFtvN6SeWr5_)lqt#Bsb~C4{@3@xDkOBKHI7-{}D!I zV&0+!Vt&E!bE31m{qrA4#X1z?Vl9@C5%LMTXUTfnB}*)H|KpF;;EM-oUd5dH zyw)%oieC@bq(s8vwHIJ#U#<M(D1rCT16HClX5@PFV)Pc+=6wc(;*SA6v2w){AfuG zQG|CPe5%h33AgEtshW`r`&1X?q$cw`R$0R#HUIKK39^ATrVsQ@lG_d#yKzP|YEuFGM;y_lMV_JnfY{iPPa;2E`UH`rRl!fNWa`^H$U_*MCeBcR;` zLCh&#oQcCMca}NSVnO(BwB!cdS@ZdUEUTHkIEBg4UOq933;eY!v?F1_aJ&V{63is| zhYE>sLNl$1s$yJ_J&l2m7Tl#sm2$yvPA6O*s z62r+h57`Fk7mj%4elwJ72F{@j>Ne<(p=s3AO>vxniGj~5y!jyn{Q$F<@n2HF4BAs~ z?O}I>ya;-JW!yR2#&6B8&3m}NjTzR)VSZ%{R3Am)o879siX;-iQ2kGEj zk}y3KIV-cp^S@Vjm#@7z=wc-OOz=3<*^(tK!_&+^XfBk+HgN1}g`}YUu)kOad+$Nk z_L+>@GTzg+TEsS3h`}Qo=T`@SE84j^-a_F!(|u0?R*0%*5?|Loo6T!eu_a)J`2ns; z2l~Kph*;i>>TNctaC}Xg1iSxVFdxbNdX6=b=N)F&PYWk7zcQj>^dO-h%hCojzbSZn zO=1%in7N9$C?tJ`(+~v+DKEPZxwO7A_~=m-7-fEH*v&ymL#)#?n69J%VCu;irGq@R z;1;jH@}Y)>UK3X04O>&{gjp^1+Sf-{(4B11>SAib!Jw%9Dq-&@0me#Xm6TKFU0An( zLdkb?x-R{N1IMdL_nNWD_~;!9R&@l`!J+^gMnMxbsK3=&zt#WZW#3xHeKfCuav}|a z^5&vZHdNg>Qx6tF{&N)sqS4sBm>M)43&5#<%Xx$(9H*d|Fjjw@y{iltAq0k-zBzBe9`%NU*dU|h{I<+D5q8+_rX!8VBt<2KH{HvCLll3E^mN+)nSnbx zB~RM2prjzAPN~v?CA(xe2Q9Q~TK;DbX}KFQ9r9ltl1C-E>bs9PQ0qZL%?hnR$B5?i zckRyE*hk=>36bN(&$|JR7ci^Xs^rCp&Gd?sI;--SHf#e@&&>h8oHN}zLl39nRar?K z!34oq4qvCXlY@L@D(igJYO#a9T&I?Q!>^4PzhWj|#;LK=SW@{c0jNQx7X5r$?mWi5 z@^OXm76(p;CIX;M2rfmHyt(b;2lQnjrnAK-V!+qiBaje zp|=BJNfbVEJ5p%5-d4J{zwoXIT>3SHz4pkHhX8G03=+mHZHrGs^^?s+_pc<;R=!QL zO?pPK#L0m%vN&*DvwbjGFu7vbH2a~@n~PG1J`roN(ba=`z=|_n>akT8&GHXr)83LY zRh9@9LnZRg@)$cpCiOx}+jo?-7i>=yt7G|NzH(qo`QB_c<#qb|Fa%^+t2T5e>oI3L zVU6_^gvYT_`z&PKeYDVcUtSDdsiEX(mqQ`CVHA6ZLuBaR(m<18=Q>5_`Is4W&%zu% zzN|HT!Z5l=_+!+hbnruzp|mL^YRMRVrQv}6S%6?;q^lFbVA9LHG(?vdN1m)TkmZlJTfX`MrK#qEgm@LF zcON1%N1`m zv}smukz5J%?T>uwauJF~E4PN33Y`BX;jiwy3ZC%+=-0=@Fkj46$<|0USWLo--*Ty& zb;!+|mudCtqsj>~>*nR{eI@mOf^@zexEW1BT8CChqz{Fs6>UCmq3WeZ52q0~(MW{+ zxd8s+woC%qVv5iZGQ(lhXr-GFZGz`0zSCFVM|V=TJp$z$b1mkB*rv^{azZd-%rfeO zw#IMyA#JiJ^AEqJH#G&yWO{Y0T>B#!0+ATMkess%W;{0Nu)K~;K1ja7NTHJBsNMwf755g= zCFEEOS*CIj#wA3akXq?&0A@DF$)-qxI!X1J0ibj?oH-Te0a&xQHI)nL9kfW-^fnf| z)0f(PbcYfeo2JU0LP}vs%|w4Wkn3bQq| zIeXf;4s#!1iTwe-uYj2O(xm^JV>vnhA4W143+MkblC!jB+&4!N|GON1V7S1p2x)R0 zV+g+-#9d3|nxCMY_9v6uidr>69!sJBeglQuU5>PwDjNF*o9l;6Tt2X5hFSe}OLcI( zW4H71ATpMmMAr1P%I;cI)f!c5>_>f_@_Myhs|82z-CmoPTe9 zotGf90{TT{(dt2RV)0b9wyg;ZjJ&Af{&R#EPKl|=rhw~ZeRGI!5<&)3-g5P2ZBf8+ zlPp+Eiipx>rQKVVb=lm7W3G*r)f1w?^EsXF;x^Z1%oD`g_PkcMMsg~S7dBom&LmoC zzifo^R1l{VDjr?Zo6jhzIf51tz_Rr zC@b`u=T(fPyuCP7Ydbab*=_5vzT%XM_%6)v(SgHj~8#n$$w^}P-{QI z%k-=*G1a;D-?~)c((1!_C;TxvS>~qhx|lX}JCemfqpij?mM*&tS^i&_2ql|+9DTeZ zP!w0EFZ%$`Gzp2;Sk# z^IPJ%AoA$1-8U4N&zXgtrln?=9TTC2&N$p4rRNiEqa2`%+dOM=hQ|1Ojqce->}$Q< zrMcdy{eo7~(ad2nvpN2w_E&`km6L!vsdEFV?+XMrt)9@;jc>Asfur-LWJeA$E{vQ@ z&u1FV{N`T(*MAa%E*%GT*a|WokR6Q6{#?w_)9E;)WCd%EFBn45LI{||15e*VN+*o2 z9M}bQ1rsn4))Cd*aVjsSN+*3NBPMbP(HVgryC=jg4pA82LF!~F`Ge>i$L2`G~#h&VDQj)LG@iNrGT*6 z^fGP&2YwLQ*3WA`YEM2480iB)$bkpwyII zaDSavg)a;j;LLz}OX2_16~wrh$!vBdv_5Ui+o{Z(i^`DiW26*K97bWbvF9aSL}_ed z!>o0c+5yEB_MhZKW{yvg8Y9gG_cK*XfEQ^=#frw4A&FoIcPZlo@a&Mph;_U+VN%R? zXL928*SLVs*ZV2{7ch z_jj@VC@jpl-5EuJ8=Ds%NIP~T(oS-$H|(e@XbYngxU)BIEciR|D`_~)`pdFe(3S3M zJ%t+la#!h`fVa|085SwmYF`R9F}@n4w1r`XlQs~ZUw~5jjD1}##^eFHjfd#Ug)Z{b z8RJ{0OmKY$hC?jTT-O9eU!GlN1Sx!m#IkwTJtR^i6tw~X3Qgd8sIhQ+PVl=fd_yof zS5JhnqmuDDv%L3r#K7(VZ#)HSR9g*hJJJv1LS%nuo=uC=dQjKS&03A6Tx$NhM!b($ z`KwaTlg`IRSUZ%ZVy8Ey&CmO|kyTU#P{!kvkZdUqwg>(j7lHgL*kPY;>5)BFWCMeq z9tYGoBFi&iqL+qBp+=_4AI9HVKb8a&`r6$B0_icIMx_7|F;8cJD?CjR6m{kbF86-U zfC9l|*y0RP4*VG!DHW1;TJ-KrRdAN&C0!l-I0KAJy`lF}0ps!hvBN-nSs7il-;$j$g_S)t+r@&Qt|56&1E(c}6> zLIGi;AYeWV?^SVUGzCJB4&|1PrWE{JwET>Ziuddh;%3j54Xf3$O* zmv|wNA3Z8IE4T_KXDT3>XRxMhzUKb0-xo*$LP@x8(va2JW;x<4^G^jGa;Qt+lB8^X zP>mre@>kTP95MlH8K+1l(huJJBcnn1X~qnai5cNZGOz#`eg_d8>#R^a<3w`Y1&Fl= zLeT&s7D!GAcq5v-5&2nCwR0s0#9B~`s##hf2QG=M3cuxIQ}oFvq4^|^$J1`t!_>-=JmX-KjY7tB$ydeJauu{f($bC_uxE;2zUg} z-4hI(Eze51*hbA>6LofdlKQ9HT%{<_-|{aGK7OsN4u82|0%!4K(?Hva?ix{lGm}pN zs72m#Sy{h72GlBE@So+2TLvqd6UC3`6TpZH#JU~F9QyvPuY*Kou-MPbqd)HdOs!Ez zT>Js`gUjB8^;AfTcr*lC{>;ToiU|7AOw8OCs=rxCUHct-)3>uju$|L?kODMwufxZl z>|epD>=eA32R{6QQfN67Hi6y-2F64hz^PT9BG}c@=D@@ZPE|#QN*UgR8BZG8poAC$ zdP#o^F7G4CMMD>|*zG$U%cM9$MHX=>d#WrwF~>pmsIBa>0HA9*tbuA5r&Xxb#e95d4qRxJ#4BKT_6h}g@o(;S>xWn2tFq{m}!fb?^R>K ze`pdkp0#<2ouu0u`~u}Vt=aYmTx>nvNsbUXz7apa(LuN?PIs_zUic4mK`!~CD98?& z!79;?wqH$0f6%rn+D8xftCxTT%pz7|5-2N$xAnBY@~bNI@F`kg9GYI&YVFo{VWad? z+ZCg?G@x_&?5Eh5&!#^w&L#8tnJ8)q@+g(S2#C?5|d_J#*%lHRL4S0{g7LH@NS`eB$Y}k@qzYtC}y6|Zya46{*nxrux5@jX8w1-Ee z8q@B-o~Et|!_##BZ@lH=_`mU%g_ZSx2jhZ&$~kXxBK(K9C(=`^jWh{f1Y3?kncpF804Sj?SJ$A_|XOT3^G*ylRoBeqNrEb8X484PR`Px1<-I!nyE8``mmH z(qE@+#!CjY&s}WXUE12b2DSHuBY?6%?x=*ayX1k&MrrSc!^5VEPZohn%%wsuvFL!c zWLI*fst2mN({R`poD{qRdHv334k|O+@tjtr&+o@NWaQdLu&?lT6{3i%i``8Na!5B} zoHM`6aC|YSGw*KGitk3DC*sOj?3><&bDwGWA8|(QTCuP-6w`0(Ojs_KP9SckDjh+| zKB;`wY>gaSmpvH=t5M$DnRefS%y($adc)P@n$K*{0gS#wc;?$)vOa@O1b2;enG_eA zP4d#zkn%d<47B%cam||l9{daZz}hV|G6e^LF=x)~!_LvZ9!G!WD~*9iCSS563x9p1 zxyzM^pM#JD8)rL3b#xq_3vkhM(okkVVTRa1{Ed;^fcmq+SqoMbWE~3TJS_4zA`!eY z0X$0TA3LzcXP1-H*dC_)J(P2!-dflvjw&Z8Pdv%S*ZFN(=PX+Gmj+AGvnN~ef~2}= zpVv1}OHw!ngk*v!@rEVU;s&XU0mbvU929a~7?FH%wWB$&Zn9sDSb&I3ibV1W82u0H z#uFtzRU`zoU2PONkdfq1%QrD|+NGNJN5N*WPIlPITwE~TQr>o=2nZWZYnVe+fai!2D z2HhZEUBNlKTRkAtNPs2u{rb2_eiFg}LDUP@<_4-_P$qEx_%zM3U0NiV+`#TOWCPKM zli%QDYb}ilI9k0$l!H^D?t#X);;{M{7)gFwMOya7b)UEvVVq7%-Xp8)6&MbGkpV`kgw&sb-u zPP>pVW+g1WkqG~-?O_>k9i}oQHIHI^x||$8_J2=$QhNDW(Ddkb%}+&oUJ=STmY{6~ z5hEIGF3#7+b{y|uYAtN!xw-T7y`qbGrDtjODE^5kVWttF5nf5)JX<<1jm6}y6Im7k zBU9C%G5gbR^MG+Djc3`Z${sKoqK{spU>c0%La?EIGUw>##XrP7WNpX5JGAUZ$5h4J zOwolSX3vvlsc(uFy%t3D+byx^c(rcMA_CUpwz*)eBAuE8(ao(LR}7J)q>sDxQ6R)^ zAn7v1(sQa0oNO2kOSy^d#ueR>$Qs4@PK8~A!Lx`aLvi9k|47FpsWY?_Y_$A_DjHeq zQG_&EcTjo`{&}E3d@(q#;YV5PF_k^yFLvB}vjQc4(U=}B09wZ*FcJ?{9AQ zS=i3|wg_^+xo^@Ca~Z20C`5sW9-4Ya<=Txd1*8kN8FeW#kRMk_ASlEj6f|&XXoq{C zH+MH-9}42_VPFTnL=M(|yj;SN;ePG=EE8l|oqD^R&34cDpIs2OBCDVzsHmjVLj9og zG0NE75K$ndfm=3tG0%LWy+|N>6c9+R_g|WDoGdzAT+}KgvkMD}_!q#*c(hAhyx}o~ zNB@=$D6g_+X(aR_-c5(4AJi)9o4fs{$0Ue=PV0FNksih56#4}i4OvR@Li2`cB6d?Fo$*%wP5gE3EubyS!NL?EG1vGMk`0VT(AhwI@?kd_< zZ&o{m?kIo(C2d0HoPR{A>rEoJCWYqdA5!f_9FB7_Gjkq$9w8P zwRWe@6$HDwK+;Hgk94u`e~+DlI)g&lMa9}j--8s+0##-TV*qZRvAnhwXNCUe?i{@{ ze)wj^DT1u}k}Ct;2wvZP_pXrM!k~7HSIWT7x7!E)p1&}NHTNK*A!L(3`OR12=Qcv{ zXZSVcF4!|z+TA7{3dHW~=SKr;4|X~S+TQLb@f&dqf;!i-+S0Q3oBPbShp9=NK8OKh z9Ee|}rXMuOJ^%>|7IcOE^{rS48Sf1vG+c1dw4g_%v;`8{H zXiKf>*!ZL=CBKFSyX`3pnH7T8f;u()?C~A9+kN+s10+{BBQxL!XQl?eO9-#ZL7oGC zS@&&`Gy~&DN_?x2f4nxoTH|(byo89q6=`DqNU8v2v>HDWkc)k=r{RvCL2n9>8^|rC zzZ{F_$mw8yn=pkNzA(GpE&vF^X~6S;Ms_fW@Y+tXP+S}cNa-6g8Wt2t^p^;UJ`u?5 zc@GH;0P^q!{#8K|))6`3I|NAYcdz%{68}aD_7WlWSlEe+GdFTuGMd7^E-K@1TMqSn zC4M51$l1lI9#i{I28WJD=n>s_MW-ix@z@}-w!BntZ-+&VY#YxpF-Ruav=`%| zn>CG}a=mGNti)7g@Lh*k>12*M3kEeIuFXIJS%Nd@Wi=N{+*!yg)NBAvL>;?&w&v>B zpjp+%;jk2bOmrU=HrCOA6ufo(v`tykE6Jy8zDD}kqqLRBHAi%R>_p=gsJ?%4cDkyf z`im3Z($kX|^-|)bZ8(<>VL(#(j1;Ir`U>yCSk3;LsA9%Iz*?m)bW;MIddqxCwO1D~ z7E?TbAU(!aW-u-k{|~nDeE9zZNMco9J zDjQ!+1#I{Y4DOW)i-tORVnx;7t%|TA1Ba0zPIcsBr!E=SL}OE64XcS(YtmkuULLiF zQId!m6Eyzwm0F8bvcfX*9JCjP+Z4TVwAa$q0)OJ`TnpT`LJ#{+jamz;G=wm&@ypue zKy-?Jth1miv|wdj5P81bx;~xPREeO#eExZ0kZ}K8#Kc9nRFO_qQIbLtiP=ML7L;r; zO~Fk!2YbgxbfRP-+5W~oY67j@?D0nYU;0uC4)IQz+I2f-74h{hi*zXYq0RZ|Lu6^v z34dD!x0@suuy&IZ-<)RYg9gI6*9YGOX;GC)i_M0I13HRJ?U74yUtDRW{Y}qBO7q6& zpGeILO{t-{CEb z_af6GT)D%S=3_c8E3~-c;lPiwHk^`|M}M$Bs>B(`(ZbO;62YPphbnka)LQx_9Vyi? z7kO1eSuoxicnN@v-_=_X&ri}6BS-I%#W%I8!ySr zT%SaAtnPU?j!Kcp9E6L`>`NaIIe#N;It4otF>xomY@}RQ1;48$BQxg7pYv^b-wZ_# zieU8h4~?_!xZvrZ9|ejomU`oIw5f4tP(A%T-Vl_I*?TdxY+v~a7+aZStqk}oVy055 zXX^5V_@aeWkabvg(nM`v?a;5hZPh^2eOlwWj0>@4FZuRm(>G1&p!FX~>whv+)SE4Y z8?~dSgDd-avlI0zIs9Uo?;EHKIX^ef4jj>zSdYwa9#O2P(8s$_3kSOJ72c4Xfoae= zc-H3)Wt{2fX(YO3Jvb$68<*(6#VL%D{%Soe*c9tvWQygU8J zQ&Qk|T^!@HepfEsgTS9x?AMm%eRc;Kn_>*~5AzyA!If(b!Z7QguXaU@%TX;X6H>)R zN^AI*J=Y&LaWTv_qC85c?HIVFxSdQ^?5^2%5cd~KZI*}4q2276Y6qtP3uXUK# zr@Uzk-N>3`5v&gu}1M5RT({+_)C!?Nf4TD&olwO zxTSzFSA$1izB2bbQNpfa{t*7^xh8;=%VH^dIh$MR7Sva3kt6-&GAQyG#E z$~>f(WTYRh2@f;rY>zjQ22s%`%q$4w8mV>v&xYsFQ$&sZcQu2X6f9$0NP)3hyzf3{Rusa zVXwESoyWOH%zqxyVuHd?SOE4{IHIFh&d=*cW-z@q)9>K125(H2Q0q^1o%XP)z}sib z2=iaqp2pZ%3KV#!vp)Ld{U9H~*GNzAto^X*IMmt_lYF!HRW0L`BfwQ# zdADqBDSu47>RU-=^Svszn5^R&J=EK5X;}fGf<$-`)6|$*G_PcCZsnRiXTS3Jb(@bY z$x*H?3w@FZ)4i2*a4?`)#}q#vo+0fPP;R1W){Q!~(6s3CA=(w$MFJS__8xa%IL@y+ zf1lq(u^-=#VLSm?a0VSgeWM1}*evQO9oM;>OpS9%i7!_-Cy zBBwRFHoXenh?bmf^fn!*@SL#|Exo2;oMP%83B<#@YaL-Y{w{7z{$q0#X&exI=u-EU zx*)&~fU$UE#K>E6`h-!ZaUVhWg#6(SV3yw2u7xZ(pzuc(Rev?O-f!-8MgAbI<*D5y zynk&4>fB|!`;lyvVMntsR^& z5FMRq#zo&Juxuj})DzXbG5!uC5>nyAh99qk-woR}NO*pDX28Zl7a{T}v~#*XM1M)c zo~(l*&bpExmWpS4qny>n<6GnXE2<|k;D04|4sDM{;o^DQt|@WugAc4y1JYNM2`vwb zkGn?(6^cGoE}-66O|t;g`xw%*ZoRwD>Sj5yVR%g5Ft;M!XwJ4DH?nELfDIJOW%*Ld z9`??R7qXroUygcnByqk1qP0m)NR~pFlb_YRZ?r-uuowsiwVb455grUGkk7)NRez3| zJ~j?#jC$WRoO%6)pLSj85TOYSFF)I6=rN4}gt9&;8zAZr6#PcMTL2^^R`=jN%kbB(-k} z)$acdJvnBOfp!Xa*--;|(3Pn|N+FZU*8}<-3@Yg)OXRn*9IO~eeB{V!N#{{G_`y4OS@lHe&r9|>)z4LJjz zMl>;oiIeuVgi-EL zY5FG7p)1(wN|GWXk9hUfc#3x{T!xkhIBm~#jqA2-qQ&BTrttNO7=lXDo?Li41mw{Vd!i(&#W(a84>meFZ1^nlIE=rBvwD4^hYJ=~&AR61c9+kr znymcF8ApV<3(m49HGhS&7Oy&+J!rt^9&&xOUd>5;f)i{w)%|rt_LwX`PUU-2YL3h- znlgj|p=><`=&Ew}JPTUTiXEY%ZB7C(f8Ygu32>^d7)pRme~zk5-X1=!_AqjOo0|sH ztM^H{|&Hb$MAswHRMyBuGEcF`GnyY_2INu7;CR7R?_A#g`R zn=lb$8(&L-DFNM`0u~9I7pnUN=((9`lX-ZEhAO=Rr`Y<0SwsjsS<9N3t~6^cYUO?s zx!lz&0V@We>VH6^Vr2e${l?X}HO*GSiX`e5ddK)Sg&fS{hMX+ ziRfL-ke`ITn44q_{@la+N!&Q)zg%)~nCuwU9g)Q~Cx6RAq*3+9R3{GbPS@mM^EXT+ z;bjtdk0TUc3_fZ?IiN_9S(Lzbr~lYRz~;ZqNk9j)_xRC;$>)B{ZybN{Z3cIgpbeBLlvk5mq+k;X^?X&%6@-^yDW*ia=gCp}Nwy=Xy^zd-CVK#s~hJ-4c zQrn|6nS?}TwJ{zZv50li2ESI* z^7MMdGSXA#SjXFEHxJ{$)gWMYs;Z!=5RAW#^|WsN*`YSd8#Vz_1S?p~$`q?+qhDL`^9((N$Nn0|i<77O}zgwxq=zrL3 zQ1Z1KFKTH=^Q;q`4b7~C^NzaHJ>LC9pi>>HTi|Bz7kKnsB>57@cT^ExgZ|W^UJtcF zbIt?HSs0{gSK_jL&M!D(@HVWw*>$2XVnfwD%0T8eVYY$e!7w3d88tDw&n&xg)_`s!#&82P>lbAJAycOSTlGK+TF! zJ9{2!AxejCjjSM}remOw10IpGwIw@7k8`sokXD8w@lz~`iE#5?VEqK!3x8A4OKo#8 zz~%Q`256*vk%dUzCztf|l!Ug21x0c?14_EIkJfhU*<>M-5hBmt8ExoFRDCKGP+#@x?K=0 zzck-irhS3h=Ei8FP%paw(FyYGhi>nqneKrQ!daB^!_08|^^(^~!VjsItty2@3#2i>Qk>r6t9ZXOn`8^p&* z%z2WX;@!FvaR!^T>VG+q$l!*pMw}_#!`ZJKlB&+H0y*i9c+&6s*)PHHVJi zX}SsCu`IQOg`jw)@YNYhs-)Ys)LP;%W|&?#4JN-(=x;xLAZ}TEd!=1K=%8y%;1>1z zamO0Rf*E0Sk!=6R9M+2c{a8=U?vcV$g5gKfW6`1*C1+Qo6n~8)CYGH=gVA<|Q$Di} z_y3aOE=iVH^y%Yo6U(TauQFgj5xxM zDn}ME4ZZ8AvU;>Yy|js5!#f)qprl=jZcL0bdn-NYg#*L^#kn0o?V=7LcJYZ-#H_i8 z!-jB$y-ZTm?SCX^L&BvME-g~`JrUUhj)mfOhSh$xj3OV3=63=Xpg@VD+d-7~)U~T0 zVe$+Z)8bOU42OggOC-3%p$|d~t#gIs-!zU*@Eq7;ns})0eqSc`u&XnuivcI6BPBoI ztPR_VPew&^V+IlQos1}}ty}b%LB~nPXub%%oe%DQB!4$D)b~k(obtKS7UA&EFA3NZ z8^hl!#Nw1$k}Oh9K*>9Ul;r2pq$GH;0r-JmTIxAPmR3*@PCP`rm0@?ML+MT4xYb5z6h`P!uzm< zFtmCo2t<2C0by!j#IU1IfUrokS(z`cX{ennVD~kI;p2PERkBh293yjjjuvH&heybC z!pbZ5&bs61^tn=eoaPrVn)>J8hfo7DG!Rp6!^nbjL z3a%*<>zUyi8ZRcd8^SX=08T zXC|`y9r{goxf~keyu9a#>PekW-G4n~nG=ba^*G%`t*ek7e6;K$Fz)94Op~zR=H~M( z)>EEA>$k(g92e{kDn20_6^5UGj6S4p?{rBmzU7S{b{wOnnxl$*9#wZJCpD9%{^>IL zl_G(F-=`lITyDJ>hr>y$<^pW!OB!?PXlOb_l0su;=77tasXJ-PA-e-a`hWUnF-bUw z7xVT=n5dECosPf_-N>~l!chQNup)qW8ab$n4|sVd<50+xDV4|Qx?=g6$?%4~`s26b z?_K(&^^rOg0ri=JQcJC2%AN={=4*(}&i%ld4S06*-*bV9cO21dx zGuL$d@%q^Erx)Q`mOUy19ez^O%zm*OMip%^ZJlXPL zbhq6u8rs=s{zSxgs>?imDnkh71T#Vq@F@cbR#no46SHek3tuJ7I~A=h%x06LUxR%7 zvl7Kp##ft$$SxnbS?!6kLW9k-ER_3*C^9mf#WpnabS8=RnN;%-LQD%L*bX9+{EnUkLDBgul5 zDy=%0``3n;te%n|)_>jIB6CZEp2jfDSgeISek|gwW1FQ?`Yv{dpJ;w>D7j>=>4bfAkRx&WC8Iapr%mIwN78 zw2DKYQc^LIu!qmRG9WyOJ2=WY&0ag2dQsjAEi~p_J1*92cz?AP_<>T1H7-*w*t9FL zp>5l-qrk5jjQGwPnQ`6|5KySOdfCHIsl?x`riDo+NKfR^Pf~=nQhd$d%0QW*BtNsX zs*j4kgd!of!nwC#(Z81Isb!(L9Ve(TtX;h|7;{#N=WcmrkZkO=7}v2yiK)n&np+gk zPny8Mc>Sy3Y=4_EhUf)6O3rC9rl8?CKZhb>2VH4idV7lStViE0pL;CaXzrGSzQHeu z$YcR0i_J9k7n+p_Up$;HW!%SSIK=opo!X}tG28-Qgbag6N~GM~2dyjp5hlgS`3$Q> zs{K()!6_C}3%c&9yzfhyGmVMN=L>@?9ud#9r7Pz;AbzP^vuIh`jw zN7+JryvWUo6Keb3;U7Hc3Dpk5y}66jf2W&Nynf3bx)9H#K##eb|IA92czdqQGdzLo zA_$4Qa(hly+?|5O2`X?1m zFtIuWWq%=s=%VkXg>S@?4mf7wL&a{dqG)`}Ce87(XOB^;b52YxW!uEdR0-_E11i02 z?wuVBX)x6{SqScx5*@kz_kik~aoN~zKRlhoO160Ps?`y^=+Q~8X}LZtc^bw`5($@L z&;VE7T0d2EV%>$r?JN$2s|QW>mBzbJm8%*yB7gp>Q2Wq9%~r$kP$7Jh#PorgdJvxH z=a6-xX2$eoh8Z<)*s}_u1?eaCD|-~}IO=Te7KtpT4{+Y26g^e^Nh0(t2#F~{(N5s2 z{UwLl<}9M(E`2q8)rz&0hcv~l*{2nz9flbvXwV`rlD!4q7Nnh#!C@ya0Cyk#_Lgy` z7(eP-H7yU{>R>;1YO$<=14xcSOm>&6mCmp}K}e$cNWb1%*T*i!u*-)$qE zB*2xwC=RHQF)Y7d(0}QLmtWBJ?XB55ivM83NK7$ZfA68G9WTFG%}Y#rU4ZNGB!3jH6+I>{Vmd@GT`7iB1{scv2xBwgsYyd`1768LXlZx7!2;14% ze6V(c`%^v=`gtbrdl@|Q^U&m38QH0;OHvG}vI0JMxO zZ2xuk(Tm1bwm>H*0NcOJfFCvZFTNjz|HBqQuOK8SsVYJJU+wajlBlh*or#658GwnE z4PfZ#Xy^gQ@X-TItgL?kFUF5nHUYZ-)g%CVI$JyE4-j zi2j8*0raB(M(hj#da=I|6M$agZ^R6sm;4*C0O+OuMr;6jnZFS`fL``*^bt?)--zQQ zg2LbEBZAW3=p%yizY*t$7sJ2NhZm#2(Fbeee6V9 zDSM!!h21~$X8g#^@gMLb4X1y=4-4miz>hRs{sBMIaQz!HeQ^B=ax|9Y7GwZJ|m?SJu~O%AhEF)RlG zy|aNhMFs&ev&TML3j%m2vm{E{4gpBB{#alMe@Faznu3<#ck6dGYG_I=UUHsuo6k+z zBZMU<)3LhZi~Y&b!%Cz1>A>MS8&AlG?u=#?>Nx4b>w^70LTl!#?-a#2*8Df!^c^T< zUD?Us)`k}mVcUZApJB)Byuk$NdtBCph{YEm5TuE(j9cR!#qgy}Fp`>KlsU2o5sIAa ze+#Mggd&=_VlvSJ<GB+meE;BG$!W*d@9g=IYL@~uQ9sA zq%R%B5oh7zvApgJGp)*`FU|>sc|!onq+}yQA-dzJuu!QtC8;#o8g{on1zM;&6qSp= z9)htRupGBNt`GkbZlNE()L??S>7q73e^#g&qIE^mA4SMff-Rhil@mAK_a*OIStNk7 zYjf;&!-Z=$J>AZUBM#^9Wk29C@ZZ>|G2IjXYKnW~2Q`-pSV+OW+k^=OKdm?*S7e}7V% zY6SH9skxqd&&dW)sew_w8m8MiZat;q@O>88RqT`Vm5SUhO>m+KHxkD(bFwPVuc(od@?@ zTUys4H8$5eRDw(lA)BvyUFSgyf5|;hRYOVVX8tDXoSb69%>>|Aakiun zRCagGoabnY!eWC=`qbs*^=tFI*+(#ODf9B?d`kEwiM;$SgYGGYk3v#{wauhF$P|h~ zpm~P4P5Y`=9ZwMX&~`$re~ySFB-so!l8AbZXc(?PqXX>qI20l--;Pt#;sRZE9palJ zdN#D7E?rhwYzsr;yEIm=WEF&a+bL`~QMB5H`AqYSzKV=^+8O6n9jgC+Lat>ssV)gYaBE3%A5UiFecF7pVwa}2dniZAO{afN-&3)v2m z-A_U9i64EKY7J?I#3W~{b{m~mUEi^ng`+Di954^=) z9ylUGKILD|e{!VTc(Z)gntj{1!(XBhGr9d1P!%eOqQcvEQ(Hj7j6-`0_pfm9(VYIILG8c$-J{$wlRHqQ1RVSmcWX>Wrtqn`kOeFkyYsn@;J2s&CE0|Z; zK$GD2P|Yh2Lz}$x6o2ki9lKQO^401GUVrr)9kNh4e>~LMr#arLA`|!x+-Ae+yL#KU z%4Ek}IfaEPa1PGFQ)R6fG!IbzH^P_R&* z4b8Tbf3$|boK3)>uPb2lV5F@#`9N-Xi_@rd2p!@kzwA++0*#;b%B6_<^SXo=?TPp> zsb4Dw<(7O_QYwUS1;^F7LOak7W9l5`@4SejiYnJ(Le9=b^DJ(W84#<|fF7$h5%+yA9K+ zDLmD8Hf3hM_y5PYY0et>L6pf(CVnp4U8d9n%tE&)<|d~)W8T0=aA5yrPWGe51uDPP?dpknN!xC~)NGeF$7JYmEnK~k;k zF@$JfE2trlqOn~WhNo>-6Nk3lfdVY26guw;RqQnyn(zWtPLNde4I~mH!Yv)n z)Y_fQf`EZWZ}}|`nSR4GsNA6E8H|{uszJtY8uI!U>(~^w)o!4k{a@GSo!H-F6N5&d zL}gRAl@pwzRPa>2Y61MLxkj+3O<=NxlLYPq_DuKEw<8K7uiKpTRXdTte%rv%ho z2abge8*i0ZL#I_x86u&Kq)5r~W2ZE)a-ie>waXe!G4}lbbtW&AI-!CAj0hNsSZGPQ%5qWE#05 zkANVL%66;XL%jLIKFs|?8L;b%lBS| zxcKdEY(3rN=K7h~ZBOHo*9ZkChfiCAtMe^wyryax3)f>dI1$ptcjf7lA_xWJI7TW7UMi#Rl&V=k4n{v1>#F1~ z(L%^?zSm`gAmYJg`qMaK^5l9r5#f{+}SfM*)w|03U_KyY(96$D*xKAn=-A%8V z&*5TL@3CZIjgqtTgMDx|L+DRa!ryjYt0PpOhtghx{h&PqAnXY@#qQGQNm|Iikfu-3 ztSUwp3{=LF;l6bXe+O{4z6XxWN$txR#GJv=7wjKMAMCJ34cw%{GD!u-HfKhli+)%B zQTViHZ)l6kB};FQ%{O6w^yEimu*s*+#SuTu87K zlWpkwJcbNA;(6^8%^Y7Ks(er!lzR)3UX9-$(8GcBCxV)GCu0-bT(Ujr7!>=*1l=jP zqr3mFZF6eKe}rMQXtr&0vTfV$36pKxwr$(>G`Y!`Y}>ZZxq0utzpyXYUdyx3y#)!8 z@q5)rm??+`{-?$uuCV{?A4%a;Z;TJ8%d50gLUe)L1dLOe{1_(oGwKjDI#UoJrid@y}e*LT*x&lUa+ z5Lg}kwLC$Ub8WA3ws;&75Kif>ERkc;zfPeOuKgLr#6Yi)F+wWn_pga6spD>?DSifK zq@Plqe-4?xJ24ZgysL*Gk(WVKbiim>Jl6@yafM-; zFK3s_ym`)!_g3vdLiYQcHZLmYp*c?X{(u(Jf2!6PQ4(F8D0&l00X-*1VMg4l-6W<^ zg_^NR?MrdUhv7B;Xp)10&ClqAYorXBvvB*hGZZz8eENur!ccVkv<=7|M}h`YDhJSj zKSsfp-}6(0Q?iFnRe?F|S9o6Q+<;KW$_VrW+Lp}!v)^ElZ7!GnWw?1fUR0ihb!!e_ ze^Z(w7oIDweh5Sid?<|}@0ME+oflZJ7MVmUWTy~~|50TpGm$g^=F#!@Mu+*kw%ry( z@b1L4_4Ks3zCF3Zl_Qx*Nyis>K-xt&_CAqd@0A5=R(*2Q` zg~gIFx)rZZCXvyQ%ofvmLw$?YSGC8W$d>TfM0&i@@p=aJd5Nh=4j4b+IFClU9BD%>l6bZSFbuNx-$o zFJw3KIo&pD-jo~sxl8S-iUHil<=3J-3E1uL3yvE-s(gKUaq%@QF1(oXkI*&6O0E6@ zex*t6G+p!W4+H{by36vD;+0Ble~SM}wHz^8?vrp%w6utRLl(aUvD#;V)%?Yz>`;Ff zQtfx&c&hsNh@M9o3>&#oI){{9Bu-rRul3)EQq3l(`wGY|cAtD?y{UNY)Q4E@ zZgP1jq5)jzSs{_>vB^Qv=`|tNv#|^v476Fd(1_`0nXc3T@&yZy+eDs_e}?&phL&*Y zTr|(a{E0zVqIRwo*s-@_ie*eqPxbb@s=Uc_l3#GaxyCPjj|6-&t%0<*$>HD@OZ|Un zBl9ZHnP-$eDG4YFx8T-A#zjMac82lAL6(i0gc%P~?x<($+gxty&jGR8aYvf2fRcmo z?thfR{WskM_`)?GzQ-Cge?;|4)J?n8gT*{f{%DTN1ksbYTfgf|;gQHKLdY(PIpS); z7*jDSt%nd+k}|iMxfcblb49>)a=F#V&%@WrYJ^K#BCTy9Mf(YA&2lAodzCj!%gue7 z=|j(#`Guzt{qWo{_&NK!Ox}5f!2_9}ppB*u9wj#A6k{FqVXhLbe|mQcy`cLR$29%D zVXz`)LE$bJ;Fkeh793V0#&&uzf_#Zj z&%BCe2ryFfyMayVe>_8S2_5=EyC(Uf7xc<=YxTv&)uI@g4v1hh){#^TX^nTxhaDMQ zE*#=}`4xAT?|{QehB@)2>|$Oj05!kS5JTK$7E_PcoP6qy0QHvB$DZR@uOxQQd&Jj~ zL7nuS`~DZ6Q0Le?ZnverUzxrEd;w$;!l2g=?prjDdl|x{YYr5-6VS(4LueM1V{1rnW+%?w@-tN-#gp# z#Neo0rH84fE4V_5e-K(A zb`&hL)8tcSu#(eWjKmdT&VwL?V$o%?uX4w2Fe*Rft!33f4%iaa4M`ANdp^oCa+^cb@q`C zwwV;}RqO=`+*n_e&$sS#A(&DM$E&CmmmKZ$3>3Kl7+; zkNP)re~e+jdR8j>SGN+Uhn01Z4?1f^9xi3V$U{!BTEm_rWqmY}YXXqkp5L9wzD|Vyn!fJ=_1?iEKy{2{236(ip12R=z!?VpTfuA`StOhea#njv2Rqx57&*P?t z+j$!pD6V4snHWm$9RvBLN4uJROe<*|f1T%j432yU!F|=QD$d86xS5}*vJF)sBDQeQ z^L)Y8idViwu18CXhVH4eBt*QjUmeQXxNeqanS{0|d3lNyik{J*)U>1gwDUK7+G=J< z)l|Gh#4jtZdtcr2bhYAF*5yKHpEXX1cKvZ)&-z`kGAxtYE5EC?@xfjIWzu5le=W(s z&!GuHjPL9sy=>(QM;!m1U|ywg9dcEYpO5~8q(Fb~d@GCZ=@){H&)m)_S-!gjknV?~ z$g^Z05Jioo9KsY$dF*nu#eDI}yL+Bq8n7!jQmb@6Bo23OIp1Mrm*}FYKPy~);)`hQ z@Yql|s{V@Z@(B@js0}(|bI=YFe>9Qh%nEl!ekGbVR$Jxj&txYv8pts)Ljl+JOugW6 z4StS46$_A>FM5D;wRTy+u9QOvVePL$#Y!3cYWb2EnLICzoj&TGXmLR|ALEDcSuy~&A3bSABD6K}q4M|NEUqtdWZ;8Jx*tc-Y9DLgBwKy11G|5|OpgKSz zd+f|*WS~^W!5P2_2{RPMf4H!5G^z8%?lvc5b}&pRuYXIJBp+?oVU4<#L751F`t`GD zA9kGnYRwB9IDaNp={Rgaz+d0T#s6l3=&W0ujqK;LObQS@Uc03$9e8bNw4(^}PsSE0f4yH7{`VqYBn9Vf zQLQO{{^jYes_r-FY&DQ5-#86wgl==qT-dHn=V{&-R!m0bhQc^ungFvSoi6qM!y=;m zARdSyP}USCBZ8%%?%Gd6{_TK-SyNN`GQNClYFz`Y%GhCs^u;6?k0v3S8VZ;~{>#sV z9&mfEN|iKvu^_1Mf2Xh5qQN)vildBY6DE~MyerC1${Y)T8=0ptLQLCk+3d^Zq#9q* z%O{vG!x`Nc9lxSRavgpaAq_uvy*&s{oap8+s#Yfi&==W0bI%@h0(0k4ge^QP#Iw%u&J+la`*(Qw% z3D^d6YC-8~bl*Fg$8qA^JB`24zL-G^z#!*>&o>Zc0`7Q+>F8xB-T*2;!UjivTjb z>5->|4g(xDQ4!_fm-tqdclDX(knm#rZFI!reBA*GI>=RZEnJJUzs{X0byShNAy}$h zyk)`oUqFa0e@;q~B!7B?bFNz(P~gjKzq-BKh()53Zb`d(a-YpV;<{|p8A0vz2LD0b zQ2SyDmBx?zVUkl479}M$? z{&Z>YZ}wWnNs1KmbowNUt74ZRhR_0W0aa^)lA9s8f9ODUN8f+ap0{cQN!~n-#kiXE zE{7qO_tDCCK1D<=N%-(D}8SP1!<$8x{iidum{ zmQB*t2Zj2GhmU_EfNSj`BVHPfWaHGFfUMCrmzinpDHdua{{hMiTZG2i4e2hgqU6a( zP^;Z2zonL(wonj3ODb>qb2Gui4}mR?d$ZpKuMY?^qCTPZ{~E+JfOHUvQh4tt!$J@p&d^q9trbiRhtq{_Sg@F$%HWY zc)6hziKi$DG9Gh*nyMHx72_MNNUD&6_X{mY^NHafHs$o7oOq8aEn>%zt6q_n^~UV7 zf8qD6PBcyvZqrXw%vID8-Kmv75VZE`}o%MNN z5(OUbM@%D#nhJe*tt1yUoIc$Vf2=iyfeGlIEEZMkT;=_0i^EY^I%QOD4Xl0szqM6TE!@3m+>iA1L{TzQl8Zm= zk`F=)_h(oc<@#ceuJ*thz4w5H+`Ao-%&fDYfQogTdG4$0a-8)q6htAMw2UsZh_p3#!EcN^M`-<-Ja8J%=4(3wGT` zYg$8lTnDBHuUs`jnsKvKe?on^isu9ncPE`=8fj2tL`S_+=I{NJpVw;O9;?esDfzMj zRvMmg04C?tY0=@r33ZcYf~(<&QoiPNy%ucjb`fNO*_w6%Oz*q_bnO!^Tq}3ERyqmc zg1Km0B@o4@zPJO%ZtyUyk!5-^ae037%8{@}e+mEeTdI3DPNaTMe@ig5s>KSb;~LII zKGD?Ow9TZGx?zj6I3vX#m=M^f_p674vsePI%_Dl0GQtnkhFJT?GA?gIA9sCrjL4wC z0G3;eh9FKvi&@vR>}1FIZBrTZH3usrJx-TpVtyGi>kLfJGzV#G4+=c~XXYK63-~7< zou&r0m34X>|KWDye{lTPyr~=iJdeySzL}ttkY+9*)as; z!9C^`F>IA9{WD!rtM#i)ZF-S-Sau*SFE;*CTc6%Q3#gw{80GIo_;Yt{-ODCbFut2I z{;BqNiZM%t!Bd>-*PcYIT>gw1?yuGh&=V03au~+>G%PRTId_;^EIofo7Kw*Cl>3k9MIQR2C7_Pe zSDyJQ__#qa^#>8q!>qnX#+}LqLQB9ic9|#iL8U!gjv15_neDDI@&D`A(=DoOGrHAX zdolPKx9gaJR69OoZ6Z4l zJRy=bO}G@aA~~9Gdo%ky@H3N^49!D7)u-SGl9TI!Fu<4>9-pDHOLu4i54Y%)b2I1q z{$fF{z-<>-T;L}25IBf2B>8T@ZJ`+o>g?dvialQ9e=bBU#CUG37nFnTvtwzP}h}M9@rNe~9BS5Ih7EK^;eCtZTWPY;QM5qIXplUt{T5|bnLh^1% z8Ky4C7PMigJKRtOiARA$P}{qwaxjW|2g^vZ!hdj;zdlCnW2Z7Xy&y2VsFOe635-60 z0;(W*A}`*~;H8zu#+JFBpZn46k%*BSOIm#4X{IL?SjLWyH?;K`=4151A;&GdSv}R> zV3*c^4%CwK4@9VDBNt3EaXmx}EM$|%wCu72m&BY#o4g+}6!dV87YwgZB6wxaKdapL z=YIhs#w2^Ky}|hc`T`0bEWy~;DN%H6Mzz_)m&Lu2t3gxX$;nx$0m0u&ajs6tsdjo6 zK}k9<3)Ldzq7I8SLbL229%1aExz*VK=q*LdISM_2GzU=(hYa!S=80OuAhwL(V&h$r z83maR6YPs&{2%m{5YIsjj7H2z&8%)}B< zb>*KfT*)8(r7A(9XU21tX3&KuxknEz+T^u=wVUdO25B&~;mLO^#fF`w{D1yT2#Z_x zt?asbNK_JUQbL}%>?Z433g$k__{+#UwyPrPyz4~Fl&(Hm>Z_CosOm0`Q73?ht$+Wn z-61?klt_J8gyfZk#?Fx`);k?f+7ciOkFrs@T`DA8D zLV%=}yaF$k*^$%;q#L4AM!65)2{)ovnzb&jTH~yxIu)TP*?b+07dP3Ro#FBX2CB|J zA*9WJAOX5-i_o_4u`7>jxF@JFgMaoGxTPEuM>qH(liK)u1nANjc@RTOv9gXx91#rE zcRo!X$kbePxuN3nM zf&xmT()N?1LcJ8J!xOwl2zV`0PJfav88_oLX;XluOa^ytD^PUlYsg+ahhu0F5=N%1 zYZ0z;Y{Pv^zHhO8X7=BCU{c71cwdVdzReEVAq_tAhIcq7;W4*I!IL8b5owINjzq}8 zdK?>l;f7rF{VG-eh^cF&h<{7PWiTBt?wB0!!-aDH&>tL%p^e_=Y?*%8(T>1F&WT*+ zH#YNC+!^kd&Ts+lNf+rTpQ>*l~D#llpj^>9{Vm1UvoX{Cy>z{%6kF^?w>wV6R!QN0C2} zA?DowVqfHBbe%|qcMxuV?yIaf;8FhVajYTiZmXFSqJO7=qtvZVXTSLFZB$k9NG%04U(J9zA~u2rVJ2^AZ8Bbfc5JAa z-K?UO6FiAxqmOGy55w=|xYr66h>er?mOvv=e$%*FGsb$v-(Hlq3S&+e;DK+ZMovn6 zIFn~UnI>5%^%E4;RkYl=nr1r%c`x^-BsswT;6nz$GdUElz<-^N9hsB96K6tCAjEot z2`MHQq|I?U-FbLd80JjEZ18>UYuoObb1FeWRIpktGc)gh7p&FZ9XpF64cUH-Qr!FQ zV;7WIC3oWPQPBv_TEI973?Q*bK(DssiMFTtZfOL*EYsk+Mt}MPmo z){LC85X<&cjeqSPId;M@*P)(h58890C|>ks8X<<=T4kR?r&HU(&ABfQ_?zA$hL{i} z-Fe}UlNa4G#fcnIhw-d5&74e5N|pRiCUWUJ5%cfL>x5?1c=o)13-3qA*lo3G&NJ|} zd9lXJt}P8oscLPyw$u9elOZI%c4vRPGF6#s?yAgNTQixbVJRxn1;x39VA zE;K0CQGbI!`Su5K!40|C2<%XlU#M!FBg#yRB>iDpwZB-47Ny```su)m|B-Dv2T_?4 z5kT>*lPo*w07^h~h7BT$fK4RR%WQ}0VZ>KD;}IgZ-qInsg=?p;*XsH7C>)pC+^-Zd z&+kT_b6z5-tiJf|2e-9D(S{P#FzKIA-s%@%QGe-2CG54ZUVUwvDl=I#fN7q6(8FND z8(vs2ixAsekBc5%qRuD1UpWnOG-nF=KK<2B+XASy!!nTzdTGTJ7VeE*;OUJn(yW+XxY)Oyo9`$Pys z9Cu`+?IX&99+`hX1VfRf+~RZjg^1Kc!6`fp#$63C7AaODnMVnhqQv54VH)2#-zG?q zZ@-F}{~CBbv1>kPid@>!tf*LX<7n>GiE3FuC%%P--?ND`?K{Zv8(}t1Y+cS%s(*2S zw%E$WOtm?^Rx~D(7(&zR7!WAk$CyA#;KTQ{j3`St#To|5CC@xKoHEB*N@n`D!f~QW zc&(5nQ}~P9E^qqA_lw;L9Whqt_4p559;04g5S1Y6*@z(2;#a8_@|vNcgw4?~;`6m* z)sN%^(I81J3nG<3Q>s;@(hA<3H-9o2^}i9l#L?ni8<(clI<>kcI%u;uikYje+CmTx z?31ubV_t|eo)mD!4ceZIP^@k}byD+uoG8H)b{|+!{JFrq+!xf@mD)(wed-GSf9g?w ze{Ta*lP$|`;U8}zP#U(jZ!y&K^1`ePSm9w$sQJybavC>07G+V|@7jWd2Y(sDMbo!6 zaMBj)G7CTq`jeQ`zo%^q z6E)p74>36s4Twk!ENC)Kr$^?3|8 z;I4S|t98Tx zAB>m~1!g_{@)uyEF{_Uw6rLL(Jm3Ajw(jw*Bg}Ji)uEG%#+{6%`+uE=v?*;!O@GGA z9C0W+ap#Y_G%mvuc`By@7bu?~cXVY0OpOI~1F={)aaCT$*-W}c^C!Ml27(M5-uxv>M9{}E2a2tK7ZsF)_#8~};=u90H2JPaz0<5>y z9|w@|+=cGc?09$KYh%xuKu3wD3VL4cqWyN+ETG^}*m5u~kALHUpNY=fpeIJ0f+?4F zM>EPF#U04seW}9YHQh0So4>Mt+biEf&l)uzx?Se{l+sFEwzZwWv1R92p2Hug7Is`c z(+LwXZZn&RS&YKOl7iDhRO9_^!$!c8fkK6k$-b{&xxU8y&C7V@__2B1jEW3%(&`lv}h7?*E?3SW#UFI?{r2dFygY3 z97!a{bqBM7I_bW z!eOF{JI`M-M%0;aDT28hoq3D+-EaV&1YtSc1>FS1UiBx z7E|EJxokRznU!9RL0m2{Eb0fNK`ZiouI7hEi`@FrE;SgSN^IHRhl3%NDT}hZ7D)#k z{3_GkRWRqycLd^mdRFU0mq$O-ioUY`*C@x*H;~PylKgx^D^qIn<3hbT3~qJ=X!o)n z9)F=Z{v`H!b}gt6aCr<_PFJI@)AH;JGr~m%HdE(7I`&sqCTJ#I^T zD^pcW5fvlsv$*kcXY(4DE|CyCi;0*Ew^0>%@c#Xz(U76MO(f71j0fMc$K?UW%#GK7 z$G~ghe>XKPj1h(Y8S)RP?Bz_o#@mxfa(|hokxcOPhfuh|*w!JJS0(qXgLE{Vk%rck z&EqF?lZfb=#Ym@B0~sB>K`P01HFvbFgi@#H9yb%tgpX`zeExU>L?b(_X|ohTuEj<~ zIW?y8$ZxQAq`ZHUcY+~kuTE=BXEl()pd#| zJ=1!+)($MIvgO^omJ_bZC2nZ7xA3W`lsI5DVMc~eX8K(zEen}Fh1UW8@Z^ih6~b3& z&i>8Xnvxg1jURDyp+zc!zIO9|1Aq7EL3S9UgRH=|y{R2`-@2F-zFJP~ew%7s!c@)> zRH^nazH^XBc8Zy1(se>Bi2i#hT)fy-)Vi6-PK4FXA{a6yk)!l((T#VDTp+Po4UK)r zE}-=4ZnQe!^k8Z5XGpHg8Lqy!xgkQ+2)YFx0!xM zlqfBH6eh|CwA~UPs8zg6UqyWVoxZ<5oqd-^Lb-D2!r`(&T_B9NK>pm8pgaN#$?D|d z<68_(ui?K1IQ^2j_s`U>kKib{;R%eFFhCP;ua4GCNcz69MaZ_|Sp?U4rA!fl-KCZBdEq zI~vADH62U_BVOLvFDfC=;!EhT+>}e+F2E7WN%_> z3NbJuc3lVFuSQ@sWN z6Tk^*XK((S_P?}|zbOO!k@l8qVh6JRhX6on=HOt<#lYa~>`ZU!XzxG|vNNT(wfaY& zvYEL(z!_v`33z+816l$9X^f+d@mo6`%z*zYlkk-we_hk+U*Q0IAn-qE%na=R$(5Fu zmj+lHnA%iX=0BHh1hTO=w|B7rS4AMe#M}z_TfP17Ju|oY$0j2vEAd%W zNtsUilaH1Ve|J4W5os;}2O}GRiIWAu_%@`XHpaprYwI`F_He)3Cu08ACkK$7E5mwmVN@}EOW^>#vyK{i&d0ArvD9D^*#;cXZw|Noq^ z|Kj@WXk{g9U=5`F&xZbYl!3LmmFs`T{a1(@@V8XT|0CJl{Y?E!3T|G0o} zJ@_xZZ;k)07QmqSSyfp@lIFk0<)0u?8zYdhxs54+nUxJ-U}tCG3di_11I(zGOU=aR;H~gc{-8HLsXyqAPx=pfaBF;Bt@CUuE&+rd=V>kL=#QNql0$IK7oHE@CU7iNhZ&)Bjlib+rHFzAfX+U+`@ic7MS)&Gvt4 zyh*mVGO#!ME8uOn{;u{G;rJJPTa?pZ@NH4fe}8rKO{mLX@J*rXU+`^FU;lysdB)^_ zKV1H~I~o5Ry8n6V{)3eq>_C=4HFM*)zc~I1kuh+vGk4Kqe7pFV-t2E*|Nc$qKM2VF z+}VF+3kiW-+~`=|#-EOvgA>5S`ZoG+y<_+Ik6fdFJpli?bl+}=f8*az9{>>O0yKh~ zf1d#var;{&)CLxMispTqREJ?_h2}Dcg4=>OH`emb;q@LP zBGjN$aGrWnKRXcXmn4*JM;nR;!6iu)3DJD%SwgqRS-pGf2%ZnQh-Vq5aYx4whSOSn zJN+9r@DRRSM5pIURQ9vvlr5H zGK^K^)4(G@c?`MxnZJP}hw#;A36Hq7#cl*dWLnq@-mt2uhK0Blrq%tlM3THoL75wI z56;o1cpEF#fG!>3FF#t+r)z2de=niO2F9h{tiyyc-<`>SvHfaeSs8GiqEg-qCOeA! zbb`^?dp}bn8_<5hdCFx%xK&RF3R6rI=~t;0TG=W!g(3X`f}-@;42t#&Jc~|@Cw*1h z^cBj$h~(z*Om1*-U&uY=hPo8vGOEVMwt~1DV9Kkj>2_b;fbzCGRYYV}e__-|q=eLv z3D11BMh9nVf+2R3E_G6KB??x~i0*42^F)J`x|}~0-1mTz>GSE?o(1VCx0Y3s^zaIr za3he#vdVEzPUoz1dQEI0>KZ6%Q0H77|43^70it4kY(EV1HN{vI&55Cn;)o0vN`%Ux zcIY<7iYGgVF6 z8OS6Y(ntk|$$vUi`~D0r_Ox$*KO{ZcxdlxtQZY5^M`A5>K_j#!cVi;x^}T)bUm6+@>q|w;^k=p zI3zK>zIB|3!h>^N&jLzS(>(X6tn@TLz5?%JQ{Y`c9N2kmWrnS}ePPpzU_xQixY1!O z$obIm-tvZH7|^6T2O>V^E9nL~A`9r1$CHP9=fVz$f2>_vniYlWO|0#GS)4EoIfAh$ zA2^d9U=djVQBl&dR9ffaXRrS$nXEmW8)4Us6d5UW|1~CE3fBl|B3W$ig!eVoEv|*C zA|(bM(f6V&Bc;7TR<%3q7xCQLpp_B#PPm5iA@4U7J|V{5%QGJ%f@<&5qqyp z>yIhaOteV8xEVY$9M6MEx49N^4OX{IM46u4u0SV<-+8kC{9!t z_VQe%$tGIL={j*$gxyOzSgjQh&trW|PJOJie^2akiAS%-KW7p@{|!uppLx_=s{Le2TWZ=JfOi!vgN$^*N{gPHd=Sx}e- zFOGNL_gE^Y=B92extJx>mCLJJej05y;LF ze@$oEP0A2bHS@Y-#-|4q61bUxJy;gJ>up{2OUekl#2G+zGy^oay<)R_Jlg0l+Yi;8 zlD8+ePMo@?U85;qTA`A6db`o?EF^5)ow2zP7T||IoAHn&fQ^!+-k3F94@9mo#n(&i zMqd+RtMgC&U~)-}=g4tMC~``3SgX!Xe_D>M#<*{Mu){8~otqyc6Uh_3`G$1N!kO%+ zf-%(K%5k}dRxV@KA<#QQf`U2EbJ{~Zs(PG%iQ&d!5GmL8{lvO@Vi&`8m%`N?&%}wu>st@b-Qs0>m);hE%P1Cb^K~rM<@JiPgrfP3e<=(` zB1WCqJe}zpRo6v1o8faDuEK>V`7I9ohiddC^&7yzt=#iuA z+r5EsW6*o{q3?WpbZ_GpgEV9$rqvXxmn`}*Y)xAhM22jmETfNlqkH8Y#`{hk)_u{2 z5-t~Pd9H}27PB#vr*SklqI?!7p<{@ z$$7S`)Oi6P(R=Wp0y?%Zu|@=Gf1T?i7LcZ6HTyp&||Tv{`jHu ztKf({PdUA3{*C>y9?N;h1iXGSCjH82wwYZsPpCIFCiZ;qbB>s3)Ong3UxmW8LJ}eb zQ`Jga4xT&;zY#MPk|Hf;e{YN;nks`9)Xe!^$`(QuVzOD(x z$7hsPy&PnLWT!IkkB~a;sc{2kQnI(Kd4e*DdLUO6BwNu2MshEtgOokMI&%~{^*-u{ zEjNGW7Tnpw;V1^0SHJ9TTTSw(Ca-YOUkvj_^o8LZxbGUJWtkkle~?_j!P#M(+|TDb zW!%9Fz!NS$l^Bg+Qu5gyiMW+cx2RVrW#P@*a;7sqa`Og&nr}$7N{J9THmq1bycnZi zyXCqJ&An!m-Ip6Fd9;{u+```^3 zTZeAMS-I3FvmXa-sOrZt6P{z1=2*m0L;TUCTdbbmQE}z{7d#F> zPN~8fzYc?3Z;i~)+}M|^dj;H|_t6{Ds5y3@dQJ1{QEGt->7E$!Yw!(Y6mjfMT!VV( znDTopkdPZNe+}&wSs$(-m|L2JaSLF5cE9Fr?}CJP8RsX*#Kx+ROil^dql^+CL-$qI z=|X}_4{_IzN26L?!Xn6V41aRiPDh7ffq%$OXqs%zrbpZF#_>SrU~P}3o)P!bP5}($ zB}7356t-^t`e8PySlR)nD(1V&J?*UijG^n4Ci|^Te|S7nenI_pMz*eU(k+W!v39_u zFN@Q|8w)CkRMC9w!ZWDqgLMpnp&+0h$8FM_?)1Voa&9E8-1 zG+;Lef1TXrllo|wTy7|CJ+|P3Z8H*_R11o zc#Hc+*=;&S!4QF^Szg06Wb3532L|b&Z~c&dCZ;J=qPquT1NwQ>T|q;(<0gw%<411Z z8+Sp}eN`!qI?@(kl;z9mej7x2n*TC&gSglwe-~G^qX%th?YC*91GAMw0I~eEx#{;RVNwSS8Eku>2II6jq+C>B?Av3%caFg9lv+ zm@Dli%;b0RP;;l6!zwdw?^AB}E|E4h4vewp@iz$PVP@{uR=;uDPD(5U+)993)Xn`G zf8b87q<^Mj>!{_MXrO~TDFYPrbvifQZw5~4#TnUj#&yQOR&8bI9Jkmd@EuRik6iyW zvVf)UMpcmApn3G``(l8h*S__HsrKm{GN6%t+$hDs!l!E8PohW9RVvPq_CDZz#8zZq zE|6SFa6J$%r!wfB0g{ z*f$uDPyCqh7kxyCA?qm?+nQY(?xo6eB=UFDFCLP$W99HYBMh5@R) z-b<@{dm#L24UVk=sHM*VyXqf9e;?k(!awXd3WPoN?YPGRnO1M&%}1wHhKlljow4wi zCT~ILo7XqXX@;&Dy<1C1d38@DXLeXH8+OFCd#{108yD5{5>IYzGtOkt4gDGULfS3Ent(jK=cdy{|-e|wk_*t|=K zC=_#QQwBNQoG~<)1v*Kqfj#--;7%r=N^EzL*#vvRDDu+C%~t}>)A`hstIa~DmaOQW^6NK5wjb7QRdOvTcuJqQ(yQv$u4sb=U|ywm>iX?p8bQhY)wpNVmT z3J~g&b$(K9vKYX@m^;6xf5FaVHZ-;4@FAb3;6t4(+Hj1b6pDVtyPz)sN>d~NQ_!`t zu14}N_&mTBS?ao$8PpR$dg(}$n&y~i5l&)_;&xKW2C#f$fmQ6gP2cZa7Z7F>sFIUx z#bD8~;3DIRcbin;Tg93gOnm3=jv5wfdW$R7)$b~`2nAa98G$a{f7z*u(IRh&Eu9Q* z>y=mz{@g!|v7-er8xmlV5l?-L8sDFa!lgSCTG4m5H5ye$k4OG|tKdF57w1*Z=rCVbOw$)daTuL1`lFtP<+7k9{qms+vIYkK6B@MODFexd=OQPfiO2dp*aelU ziw8^+BU|4CnI;q2e;3;Yt*WAm+)v%`jmx7Ht(1cOjnWD~z#FR1FW@MFzR_T*9b_c} zxJbxW#;w|6O(4kBPlQ8C`GuxX23T#bLd}2n0w6c;L3AE0j?FEr0i7;-~`L@CQbX=!j zC<3q!5;@uOf0@;aU%rkeSK|y^HfIj3f7?Dp>qxo{KceV=upWeOM811neMOTen{V+r zECrc8A@se|rDq7hy;kcVSO-Osc$H3~^h6AxD&Fa9f41Qnc}AZOq#^~dBkkxA-L>7_ zx0+_)V17BMlJ^PO?%Kr$qg@|^L(Y@*(oOkVo7U&GpY2!uqc?MYiH_$>&5me4ee{{y zpXgY15t>KFK=p>S944roJ``70bWRp7e6b5Hy(PM+b6OWS(&|J6&-&` zevankSH}-DVoury9LQaPFooe4CFUNL%R-$H$W9q&PQQgF0zs2Vulp(*6Lp+-jg4|G)!p3VI zTK}b!H8(n~TThP=kQq##zHIjCYU_JhV2~K+DA5VBtTl1&e(L!o8^~|b>D_!z=A=`A zegul!|g)H=vt`l^8s>3^T2=5VsJ|7#V#?ALPy6-j$nvdWN$w0=k-R5s38X z9(??W?;nWKQ|bScJ`Y3jT42y|{X5Ht+5g)+2kW4LHy^=klmAJ z%Nq@hQ=_d7&j_a$N1?^|BCpXw7gswZsv0UN77PzB?Ze*_mk?iok1AfQkwPq}FERDg zFR{e9!+|#ATB8h&;^Ru&HieRro9@vC@tfQ9FUol5GeAmW?W{;&cc zwaZ2QtQXcjd@hZf1|PHkqhBfNx_1HZ20Z&w<05ACU~*dz*hVX|gtpzDZQ3el>p2or zy}s89j3&YSa_CwSll#j;?*O%GZ4FF_!%}_qe$+-@YVeq#v-=^|e=E)F$LM4hFCAV1 ze};_n$YdS+Nv57=6Kh(TGAdGBDJ`oU-46F8d<(=mYr3-ZepS=zD05`fz<2S;i0B&LVbOLOsGAO9x0& zFHgAXgLx4c_!eovq9%pO`W3)^Bo`!AmBpTi#CdvzDpvKh_8s~@~CLUOo~ zV2;HVG$|@gG_EgR3K>YWKBemM-)0-*hfTSxQWx}1=;Hf{f2}#giXl zNVIH(*z`2W^Mr#h#eHtfEfZfI&h`%X)OIi6ONqyK;ujL2t+EA&pHYQ$ayE1GvVEcC8-EXh=RPDFwyRS&6WAC}?;evNJo4&3z zrhcO?f7^irx6am4$i5)1MxLHR$~79f{vHsdT0LU$nk%Cyda3-ec14Jb@PdX8&ad0o z=q~8_(@!XvS4VM3Xm-=p?W);b{S11o2e;>x9=#PJUn<&6FHZ3~^8Lvr5LZ^Ze;

    jbi>b`C_dC4-Qooe}1USN3B&+in0>9#`LwY*FKJmUm55| zV>4ZPj@Btk^K7RFkz?W(@bG+}gAz^-sr)Ui>t#;I`YvA7@P`?tT3`0y8!{)@RU2^g zG*|B~QG~7mK~G6o9IyBKW0SrtMfgcz?a}Rx<~Cde;8wj767jUR(R4O&i$t!0PzfrK zfBBrG4|MPZ7H0%;NiKZ!R+xy8|zyM7WVS|=5$srcjlnE0mOHS}czNB;z7+G5Iq zDCt-)EAeBz06ET-H#$^Ji?>B=tIZ>&J5n!e7zAViYtp=WRjVnxIH=0V-M|`*g~yr zBjG8@^US!Wt`tU}42MDzcnJ8Bs?QkM4{1&yC#TV4>zu`p)b)>EB^GULe{9D96x5rb zA`7A{(K$M_@1!MRx{=8rr-@l+Qn0gK)9>BF_dz&`nIS7xHAM67v0gmolGuaD-`5#~ z2yos_23(k}8Dqe3$zWG}l8Eb2P5Fu;lUf0j8a0!}B1jM$l6{XfllfsY1a;V^Emo=O zhI!Khv)cZZzf4Jq>Na1;f6=sv(hp53+Rs?#L}X8ihIR_=aPs=@PGs2Vv-8nC6bWq; zq8DG^_ngumm3q@i$Z8!&$q)IMITKvNF2*|HwhC&wUzL6`P&s2H>|d9gZ74&+6krf9 z-b~U#_WE?wVb0Yrt=zf>^~1CwZbde;K9@5dP$Y7Z&8uEsi%vhef0X$P)lgc$oQ@^3 ziz^p#F*JTerAKK#e0*=KAWOGzhsqrMuo70#e%nXOIy767lodlQfklL}crK-$8vZ3E zVAML=T_exi1F+5o+cOeo8cla7kh6U15DCgXu=X$~b@CJi*JS&ksnaL$%}ax;73xVS zV+|BVynAe|#qo zDZVS>sA0^%dY165KgjET9H-szD6NiQ@h61ZDkl!RmXO;9=PJDaa~ZVlvpUHJg|=D9L8ele4JvtktiWfg;`oXwA>N;!x_d(Gwue@>Q7f-4vs+`1xXLXYl+eQm)%vlb8kspb8R_VEy)c|+IKBV529#s;aTeIhdoLa&- zCF8EYJO0YGcD_S^uTVNAen`QrxHMv=u#o06EQ7oGdwh#n!ExuQF6Az#b_xu1j7ob) z3WTJ3f~$#9va+Aw=Hj^4)ai*9R}jh%weFVIcY+Q~{uO{CL4C&tQgEsj86 zODpvZQ0QA3+n54oAK25@>``5qBQpmNjCrmQPuz5?QQ$))cKgb&R%@b75 zaXh}GA&C$8Eh=0+k!)fbL0goonkoWieT+lb@XIWHrJx1%?X;b4(HVZ6+WA28GOj$+ zn*EXmA(6&2v~A8NA=na&q&R)eDLkatrii?&#IK7DB>!{=mlYEMp@hO)&ode&e3_N4 ze{P`ASx&Znm?JVN7rNTaeM#T+uEo6fJD#z&_6tgKUyh1-3{Iake?Ur_M6?jY)h$6! z5nDJ?uI6UuK!FuA;?gI@J)IO^uxdJcv!l4+FE`6!Itlxy7te_7;=0%2>?fB<#o}%@ zU#l1o2flUrKEsG`#=wv-)%JeFoYR#oe?A8sQ<7>J{vYox(p#bk?8orpeop3uNDwBD znPiCLR^CoMQvnl?GFn38yObx!ub}FRs@Ul77(T}$O(8cs@o1n{uU^i(S zQ+jdUt;E!YNQVr=b5IG67_5utTppatI9H6M&%)?#DibST&Su-aQyM1zvFn$*e<{4~ z{c}&IVp;F-WfG%GINA?8zp^19r;L_fUB7I z>KqerC{v(md*j41iS^+)S|4-t8!t0IQ(D|?%AviYjrO}1>7In@xYY(&<8I*dD67S$Z4p7Sto89$rr1bqwrn-Glh3T8PK;f!NGONRmuFIABZl$=X!e|oQ>?2Ycp3;5I8 z1tfKsouX8S6WVL`tf5l$B=Q-oEMhjdV8prkiF5@aJf0P42r+qw{CWPEmUoN5=mct6 zRj@>{YMpGFjc7Drf{w?`XjSr8s+Xs#PGuB@oLhjoo*uvz452qazcKJSiqDQ^I=OD# zu0^rLWky8JAslhgf2)xn3N{*zivq;rR~$Ke==#Ic*mMd(1p4eU_lW!$=u`fqcDhuK za#;(UMB)|DW=fg}o#7r18yVW~6HX`o#0Xnf)rW~H%<}7s;zL`Pm+WfmG8w{evAVIb8HFrGL$-z34HnKe{W>!JXUMJC-KLY15E|- zJTy+(UfHiCNzS!<6x4nlSrDacxXofWu#HdqV(bdS z{&Yi*khw?`s|cHUYAxJ@hL8U7kA=5^%@<4`w6c&Ua zj%Gq0*U}9pf64dd+_EuUAa-ehBCz*0R!V3lxB^f~z)|{Z33nFjR+HAaLeaWt~Dtm53le@E!g!QPK8{NfxjISsKf?boL1 z{u)xVPZRrH$EqnK^T4yek%HD~j+C3Mf#^*5YhzSJ3meP-9XSEnuW zPBKtEbOsgkDIPSs{h`TK=&D&w5yP$3am+P^i{F3bq$}Y{(iqbT)w5(FDCjk%WHw}; z#8yPYf0A|L(^CN&as*en5V{V;U5c~NgW+j35I%Y_||!qdEmKuH~fUS3mg zXzGs~-voLXkgwN0yU?L6m@vTOy>%8&1k*-6CC#yYbYCltfjMCw0}~Pwq42Q;RI_zQ zG=xe5*s$Ny<*E9MY$+w}07^knUXemwYWdRif4h#nA$Wr`FPvWM$Rd}o$v`eS$6gjO z3}W)1rQjIfg8BO$wgymrCea*THIuuseMQ zRRrwHPImN6Z>@F8{kVBNk4$_cP3AnKVF`ZJxE6lM&MV<*L=sCKEoe}206)%)y=2-o zKzf{DbB1Bh!Erx zNN%@|dEec^f*8sb$g|rVUg>H0(S9Q7UVfVNLi)0evZRDBb-4G{$dr{-2n7p1w<6H7 z1|J~VnxjE5Ga2Ds@tQ?iFF)^ITCb8z4BJa99lN&+4JNF}k*7|BLw)f{!p~%Ge_QN@ z>+C+8*Gc4itrw<2+$psA;FkG+kMMGyhSu3#@%)FB&mR*j>oJNf;UXR{coM^tn)ha1=n=lCV#lR zQH}zeStt$3gMln}I2#AfUHnHuxOkX`%}0i{{I83hnZrg0a#7Hr)vUo;KBg9Cs-C+T z9G|-TPM5O)9*7x;V&MYEm2Xdpoqnl1HjnksMTOM-3F8adD^_3$M|eGohxb=w|jDBhS=O16Duav0mT@b@FhE2a0b3)C z9$gk`hN*~+VZ^b*D-F!@!&-cCcuMeVoL-2B!)uERYb98rgp2tKE?ninH+4V^;kkqDF(d6s$mi!t?6j_nP2EIgm6Jyl2zR0} zd?+45BpnKc*@dm>|c;3Cp9fH z8El_`2E5}nK_cmKEa6FbY7en7O_-mVnsJp7txhAR@p&H4<3+B^J%DCut_N+o``g5B z#!T)iNYA=P!U?LzKnI++kp2`(4B1{f+4gbw=SCDcbdNE}lO<$0?;fhzlQn{VK~Dp6 z03P`cl6*}c6-I?lN`KvIbw)oKbF@f`*7ZLts(qCxS>%*%>M(bQ`EWw5ZcBh3TxO%} z-|Zt-l0=@n-A?H7Q}+h&Io@%(G}viH`pPZl$!c;v-I|%X5|k(%k_*PwL)M{^-t&oE zot4fkAl>-`>w&%}mN(9;z;_-OUT8vu?Jb>Cwoa41DK-b?!GAp2XO0`<@1N1(Z!E9E zgUNbT`l@h!8XiSr*gY&GKMon!W64_GdPcP#^XTkt8xoz2dqMLhNo1NpL4R(~r`R;f zekMiI+a9nQ;UoMALk3-^l1@y48{Pm>Cyp>7*>S2i#UhU}saukAw6#Ms+@{|P>Fl>I z*{z$YvA~04>3{L!=fQZEg?v^NXia5vm*#M3uzH#sz+uIRZGOMDp8tw-^Sxq8o-f#E z(G=nO*H}8X4Y~HYcs5vM;5#5m@}dqOv(y}**;pc*au+G}y9p#HTH>Ws(qKFHb|^oL z;4CM-r8w^fsS=Sux3ZO7h&bUxSe>e+P;SL9<64z>Hh(c3>nbVR53d|}bJSK}I!y&) zjX~jCYEP=VB6nxr5#&GU$x1B+ovNFdU4wW~_ov`UF~oJZ@uO@2jT7Cviii%+ir*Q! zBpWa~&H966Sq1rF4nS0&eHW2)#^zTGR7xkV z@;)1kNBH)ydbnzcOKW2Uf+HU`M!H^biA&4H)t;g<$*k`vR>C{lG0{31T~Pe?egtgC z1Am>m5(12iEFb${)^=)Wn0mVlgEo9o11$L|dDxi7J3h`9oD3sppJu-8HbG8h_JK z`pkxa1J?hsR-(A-;!*_+79NZn^sThW=D~r8&eNrIAKKpww7}ZSos@mvmmEy&;k!m#XQtl^@{ibxZ| zdRaX5>02y~yd;lGu;d9!((*?|(TZ#9%yCxtF6LO%s>wo)5;{IF?TmU5Mlb^A4O)+b6IPhWs!3`VnuLJ=nj1Cr1SD^mtH&E3e*}fs;^nXzKlX{nJzFX$9-k3}= z>B62bD8RR!fy_~V!d5u=imI)@qj>7T|FN%Jt~RL;ymiZC108HFkb1Cyw*QqZ95b@; z&iC7XH*L`V5gnDZdc5AsG-rlX(8)2o#ruO*m_wu6?1J05arK?!@h`;d_VJG>7}6&t z1);ch;nU$(T7O8FI{s5XUDv!C=$V;SUqlzlJcwQ!+UK~ zAGV8_N2nQ3q!wN@l{VsT=tn+nJo*X~Vv+1B(fvcsb0jeTzuEJ z=Z&baI#qVIB;|SCwvtYbBLH2{ys{r2H~4`@;+Xv0N2t(ig+vPleU%~q6}8t9XN>D| zrV@%G)D_Qdisa(_q-*7R|wjcoFsYO(IDG{j)Z{aJ*l4^vFhbTwt4mKevBcR)cRt)rTFU23v* zDLKQ!KexE9V6Uy#(##M)5}Q2J1tgW0ui~du1#go=0c&4#Pk*`+T~@0VYuYOIMyAA` z;oV1`#ZR2eNPg&6I>Q7Uj5Ft_vm*JE5?mp$OMgRD)R20jyy(vo6d}pGUT;>I#{3AD z-+U^tRAN991SdS9G-r%2wGvl(#O#eC8rHIbr;*b;dk}o*u{f52LIAC@;`y_8Ar9Jw z{x;E~+;}OX?(?j=p(h+Y`7JdVgDv;oWKlFGDCaKHXdiiPv>7k`E9VGr*pG`(`B<#o zKY!&OLt<`C`eh9{=cx}Yd(D`2#+WAiTvm%0tB$E9;@12Oi+}n5*ks0QApnSNrlEHb z>rSK;UFRDJ(5ndz2b#Lc(sIBl`~K|uI2<$5`aC<(ZEslHuq8xccTDlvHg&A%_xk=> z`P#)Kk{p@#T3@wg*LPCX1I#5B46N@mtbgPJj@K#z4^c+~z2XZJZxqN3+*LnFINYXv zlZ3SrfF&MDF%RX%04qTt6fSa>%uTwrHG=H!(0PNBMfkZudt1LOw;lWN-WvN;HDp_z zZ#HchY6Q2CA!(iuWoSWD5VeSWiKIWr{q$!WZXG~%B!AP_ z2s~IH`{g;)KB87;y!F=W5i-_?D~abCKJBPqyWofzQe~b*qkNZEI7-73n^3O(29 zjUjPLG+X?;M(~>wRbP^cKGX|yIb&~UQy7%7`;Duh;p!o)axVaOpTrK&SB!6`aTH!y z`mWc;u|6Wt*G*HDsz-$G;v=TAXMaH+5R)Qpgoa!ocJFnkuTiUI&&2##8C2|G3ycWROd{vv-YB zOOirhWw#7%Y^kOJuz-EqO^2n9|9Z{}Q8$FK(sGS;VBYb5vkMCzSrJn9qkl5vAtad+ z=f=wHhF6ZJFa%EK0XRFk$P+~I>J#MquUwszJ+r4zQ_j4lk!3kiX}C8Kfnp&B9T0?M zT-C&Edem7f^~dc^ex#{a81Y}hk+i-eODF0j?bQRp6)c(xa5>mV!j4j}g=lTb#sV~p z=r7tfx4q<-*HBvezhCdHynh=Ye*`F0--bCZE^QjXV%UBw0m)7@@8_bBZ`GUy1=R5! zPfHA2@mxm$lFoLW3qF*Ew0tRPB&o9D#hxNK%+Q>9&4RT_y}Ry#$oQ5Tfr!I`TeM5&wuljkyWBC-6p?iT$Woft(6+?J`1*T(1XB~umHNm zZUz|v0mXFP32|WnvRA;RKlJ;C zlJzYM($xzhyi=I>$cS_PKR!DW{D9vl)Y$^vZ8T3O^n?iQ ztgYl(QbyX%`G3aJ-@hG{&1Cg5Dv1wE_}2fS6;S98h#AThQj?|+--4ia*`Tv?E0|r z#nWv;Ab;Vh{;8I=`}8W)uKLmmSuaOx*vaceHWB9VOqrvpZAf1G=6IA8t)h^F&Mk$V zS*_g9;|8mBc?{$MysUf|sps<@+9pBV5%e%hr+RSX<^eLbJ5F=H=ITAh_PeQ(5$#lGFUGUNGz zgjrR)byCopSN*=SIs0P$`!&t9G@V(dGBjskC-DfEU}v!F*^~QiqMDJKA)U~sV}6hU zBr6>y!nb>@PH*`sYYMnsnx-ltFFNrK9Dk*-T#`BeiO>O5{M6mRz&p~G5b|iW7nl*% zM%bI21{JtyNnd1DwYH6BLG~^QkYV8`#Nv;y7+_Z}Ox-1Hs*Ij0SD-|_ia7C{A)~cQ z?jZyxo@F+Q9D9!`4Cf!swe2T$aJMw+N*UB};$E16rW*=EsGH7`BO_JeELTRWm3Til zvW;A~S;41$l1S(M{{l}du+--5nhSY`AG80}p&x&uTROKXc~QQz3%)>dGZQ9|Rx@-) zx`;JZW(ok6_a_w+fKzFll_%)&x)K}xEoQ(=#ROVYd^U9i_Xf)lJ0~J>!?R7fEj6TR zsvVW#zuuz)IVyw<10h}()4;4ByE254Gt1@~4Gf$@PC_JdT%Bgbv;w}$7xoPR4x$;E z1yFy=l%K1x20d&T+@&dKq+>ExncNVUCf%=_Qrka1({%$hHHHN0A@?T@!&)`~D5#c- zWzFd3WbYybidy~gIkZpYD8q|Z`Y$pt3gSgbk6L}RAaCtEDXo&dDF{N6Z^c#kxgf#p zIwI2p>G~S9bYV@JLKMvoxZ*U5a4Q({B&>hbS0-=8eZu_8zlI9QKpq`h-j@u7MNYW4 zbzJr$Q)G-Gw?sr3O0V;X9!z&Q8ssgcjaG)+%2WQS8p{%{d(T9`_Iz5UmO>wtaInRBmP3^?`~m!Yh}!`C3J#)H`%IB-LvQ&?^HN0$ ziFksS9UeiIzDGnwvy3`fCpc9#bbh0ubGU`?mVBdUJ=8R?9*F_SoEXgj>%N7N!9S@A zPQ9`{&m{DhCC3H-hxiA45X66voJfE86*#|5CZPw6thj}J?bw2f;Kv;EGO zEhaICKNaNalC$0~t_` zOFA*@4}M289yPIxPNoPOt$~73TN(_AY2>_6nJ-}XZw8)5r}R_qSmnG;-VSxN(&%Se z7|=k9F;J!Nxzr)g)kj)&TIFIScHJ4K5e>yw;8Db{PP%z0Cv%U1DS#p!YHk$kV%WPk~Vht<&CYR?ZJ ze*-5@%evrgxyHWqA~FP0fN#M@gO9P?22f&`!_GAA0}tZRV)$h$pz7WKQe;*R zYuBfAWLeiVVqrrQC!Q5WY;wuf&;?Xj@p^tU`u9DYaL|7Tb?q9?x71!CdCeVg=LqCO zyfPEg<+x^1(A+@Ev|IqF2p@^WhQ#;UIH*+)90NhI<>>S-28Wn!)Au5^?_1n;)|uTq zHzh{8%0bQ=GjI2&*_V)Y|t8$y|pikqtg3hw@{CMc3|rO}Q=dDDA8W zf!!@5fkl5PtFXJZruKomd_t=h^B~_ROR)jVju>phl-Y#Z?VSKVW$_`Y=Lp*MkibpC zaaup8r=6fa1PG>}hLvW{m{V$epziZ!RZ1pr7@b%@P?fI_UVi;I72-K$#3=bcdUS76oAgTAoP_(+f8 zh1_Y#_;!pWpSOry0P3D@9+V(VMAul&qRq3u|FcP;tey`8VAiO5)Q&skn+Ox>soF^( zvXqKby7ivE=MCEC61mY?TK{`k&m3h|UUHUWdGC>Z;EOHoYBHt?6X;DA%ehIb4MaN| z;hld1O7i9ul>P%dde>i&5Yt&pQX@`cfWP*BBMoJ++od8MhAgcIo*?Bo?(p9j7sciG zD)3W|L;Xz4xaF4G?!-j7A>aFBz~N7CoT-oMKI$zH|6z|N;Rfwm36X3#)hzL-NTMz6 z#P|7<_+Lj5pT%5{H#g2X;h*+J%gx1Z_KPAwl6+qT{wT$byx4(T>?-JnHd6sG_%wR4mOZO5mc2f+CRbyn8t!!mD$P*Q(M zJop!zq`uKH%gKOmX#JBntR}m#_87vZmH?u-+@b^P`dbVx%&>6xTw9I zm{=J*!Neh@shr?K!4@Fb-@`7arQyzifnvA|hs(nXlIVdGH!V;)q$PL$pHzNBAVE%# z+H&Sn1e?~a;=623niUqrp$r~xCvSfZPwHZ57wXuaF@>2jW(_5FXI`U=Z;9n0Ox0!B z?lSkwmM6xAhC!YBBl&{{5sN3akwz{OFTMvjG-aO_M!c)0p$)EAM0X=XE zpPg`goir9Ez05SLYFvTz6-kRA*C}_A2tqf;I`y@R9t!jekH_=V-#L3IV}O6au9n=; zxR#8h-*S7Gx~^i`_;$N3bp@UrvP*>Wy>D5$$9z<;FxPV`$CtaF^-ayGS7g67JE$X# zVS_ioN$q;b|f4J3m@DM5|{p ztfM=ph#?TYRHoqKu_b~T0w{lcZkYV~l;AnAwPyGWCc5pU=a z{>(!Xo2~f9o5kz`F#_7qlfDB}WY?u7R2M+#bklQ(I-$Ogda>KG)nd~usks3R(o1}7 zZ>m1{#D*z}jkd`0vAix51zfJyiH^QJ-)M}zQ2zdWHTQc7sA&C`N=nlw4#OUizy&`U z(&Ecp=qdFH*|(LBI1Ya(wTcgEvtGV4eDJrRjwE+ot3u|*CJP&FO^Gw>H@;$!$GkH+ z_iw{O7#EyS#}YE``St*kIV-9L&U$p|JlC*_8Ay9oC`Jba6>Oq35N-Q*akes#V|3qm?w`S4uCn>HG{KQzZ28R@h{vhPv7%Jbjrbx!g zeT{U22eF{IdIL$js#OJ~6_Pgq#}rH4fC^=9WOHOEGK`pRe3yA`}?n?x=K-Ql)9Y=V;jc4 z+=#Jc8QYAlkYk)N!^}Bj=2*rcqD5%A2@zdOi597(6cVLHC8Q9N%DoC*yDs^i8MlS+ z?|%RLzUDP^<~;A`{XFmUET5yW*@>)f=8yP6RtSu$6Y!cwfIW!>qIAn}6oR=71SV*z zyFh;dAxw}15b#=>nqmqHL=FU^7-RvWkP$%8L+Jn+Vxtht58?ori=mhTU=6_#2gCgV zKOR7WP>{l7Lj(W^3U8bcE~@SaaxoZ!0~j!*j8TXPo5x`U&{07QZFO})BmvtT57>g# zAS8?%!~j6pAF#!f@PGpnh8YO15+%1J*8%u1;iSJQkQ7 z!e%3!f3y(E6jy6Cz{1RdVhKQQYJjyXnIib5Krp61Kn-x9V7MR;<|v?(EGcFbPbW)) zhTs_h0uTyu1eN&@ZHkyO;JY-8O5-3bVFCb0M^UzshDKOe7(O6`i{cSZ0G`bh>Z5;#$VPQgGf2^D+9hwawXb@n}pkiHt1SBhD7GzA`U-Kr zrTHq|9KoKHq}nE0|MD*q?~7SeR`xQ)!aszq;R-W?Lm(TAe`uIV?7J-hLIF(x3I>0ma4KCx zAV4@j0y9Bi#tIX~XCrKY1~R!&6oUp~7co8;421xc69Pr?e+1^C^jOv|IOyj%Vib9WIBK> z2=}kGolgK+3?}dYr_6J8hXjA>aSjNF1v2Mh46YR;9P)Q!pj7&7sb}prD2VNc863cb zur>)zu7Z_gVzZ5%PYl5c2dEQt^yXpM*iwUFh|2|ZW@!*sn0d;vZU}S(8s@g!ZFUe< z|9zZ<{+2Km@n^sRfR?Tv0CG4WPfQb=5iMO^fKR{{z#j@14iTV%hY^1iqX6s>Gzy?0 z95F$owRHgvKMvLt2xUSv)Q=G$z=e>m_I&6&W-yP2en<4@AXxTq$lQ1+`x~OI_YDz_ z(i{~!|AGA=V?OZ*9R_ouABD^d`GXQItS=fI5ZeQg`J)Og0+xvz!eR+uUj7U&n+fuS z=-lo(2~IfSs%n03=Rbc(zwn-na*!a%o#BtY_g*vbTybpdzTOK?KmdZmA*xtw3qm!H z4@|qZuQ1v&uc1g(!4UuP{8|$a+oOwHGa7Em%2@pVMh-H~kG+2$lc|`G*l#!Tjy@g> zpYc$L|C#xv^G3>rrz8H(+j_ugQnc(!OS4C(-0-e@GD$CEiYn!l|Fk`o>sg@Fm|1?b z{1?FWQ6JIpR@G#(){_~@p;S4qqViWcqG6|-31w0o=IZd566-5uUp7=ML}wX6;F%T_5j~G0*$>M_R zWKFxYm3|&+A7@=!a+d65opuZW2wni zRh^0k*SsaZ?5fxOa2M!tStYje{`6V0=k8ze8ot-NnhEVYrBk{5KY8~z50oa>;|kSV zRt|Q=W<>5$&rWC(8)<{Yn4k0 za*H>5i%*&Pnsn2q&qpS-B~w3cXn6C+#PaU_^=^OEclVB~<1X*bsj<;d_Fh_A_2Py3 ztJi4;CKF5=|C)1ptcUg0ftx-XM7(-QH@BKTXb^8|OuoH$Yg^Zqy7%VW0qdgugKmax zUgs(Y9_g(%JbpdF>e-9p?Jw@b!G|Qt6Zt=x@+`v^+87iKKa z{ZZ}Ls!f>D+$jAjAzglX5>IB?N%k{nG%`<5LT2W-&MDs|ChHlBW#M8WPlLPL2c9IB zDDT?h5OICkswVNuhZCI@wR%^J({r^Fqi=s$(PE|R4PXU!T;$456^*fhsDWVmRlVP} zx15Yq9Q`=JJdU4YDXj@FE;y2Ro}_kS$fzMHjr@YFZYP^3EjB6N@%+%OLkFL(y;I|@ zMp)mrcQ_a@=N!pZTa!@HFB;>X{rQVUIUoN!M0q&eka6{W%`#tVBH%nt8ynnluTp`wEp2~kR?@W0YIeBpYnAOIviXp5yq#M%zQQlK{mkiW z>pt1kPgciL77=?`o=Y-VbXLD}-s72`x~YEoLw0g8d#Gj2ffWjx)D;7%?z%x$`gGHHxpKt)H8QUOm~Hvm(kX^4$I7&oinr zHl7?XZ~FCvUj6=dk-R$glq-p}Jt=VC&L<-X(P?4%Lw?9A&ba)M;Uw?UsQ0cBkk6A# zw|?ngeQ*s}7A*BtzGl6d=*NFcR$_z4%Q{X;x*j;d0oxWD4;oH%>`qV4Fh&EreChA> zeqX%-SNdCeKR*T8vS&OdK~;50Yh=A?f>!qdYk5a!`OD>zP&B?IJ$}Io?RBOPklV!P zmBiEsK}5CcM?>&cMVrFHQ~3O*HJ|%OI{!L7&SE{ovjDAct)kTsJN|j>wT8> z?)H!>yFlg>4c96IEx+f`C{?z~`0YekpPXfEIma#MV-?|?;nvYt2@bV^sa?in=;MkIpI_e7*Spw6#ug*`;BPs>-@y- zd@y*8_A4PIJ(r43BzXq4{2A>9ApOf!caDiFP|JhZl@g}2bm+3NULVdRT zm1}5zfR%oAkLsRi5$L(6(z*k*z2`1&{m`-XXkA>m{nb61wOfCay;*DHlSfbUTN)ZN zM+&`Sx6m}#nVA?*924y^<`IVPXs&qb)z%`eu9=QE>Cx9uED5v@ZPhGa`q`sB`_^V0 zl`fqL)B5NvJ=onz`M~3})in{1b5&wCN;NNdaL}#fcH2whgTOmLKx1ZiciK3x}1*hwY z4sqFTBCB{Ex2*4c-jh=}7Ua{LSNuLMvjcd(C&{+U(IJ1vxWeNwxrB>IW@Z+e+-M#j z9!pioQW&t1=85{?QvBc}MuWz`4eQ26V4psSQ20KKzCM%zm1u875QGb3p%;vQ$sXVbZ;Uq%l$`R3tGvHn z@sL}J{RJrhW)j1L@b;ioHSdJ>(8a#LS6ezNtJa)!mu+@(Ur3I&lN|3`42oxc$P0^+ zk071+GOm6Ho{8RZ*zvN&HpW6V=_#2j}-6QEcQ<^U(IZxD{uM7QY zWN!vyY6>whHN6H3~0GWo~D5Xfhx+ zGcYrkfgu4D1vfP`IUtiUEGK`pc6U6L{r^8Ao9q=`na4biy=9N=E%V?Uj&Tm>9D7E} z%7`RFva(Y~WQXiXW>zSYO=X1NQJ?#Bci)fi=g;5cJg#${=W9N%*LYut=cjs#@ysDgx+2ojp+g7!L#hMY;gGBKjhL0m>gI zL;xTZ5^#dKK|SFB3J!mm!K?stQwq{{H?VuD%$o2ny{g;_ZL=i=UYr0t5J?&>jHp zj)r-{eig4GaK)(!SMzO+(IpO5k{}RI$0(&0Q^S3#G zfx-Tf#tn-3<*R38qz8CG5lAcy2}L^N46#tGF9vY@CBt1X7rx&FVSt)18hxHa|1TB# zziIxWu8P7vnXP|ka46LO-yMS@eKA3Q)aIX$?TkWV5Ev}xcSINfM|i@{*<;RohCu$3 z>8lv%Xlj_63G3lz4=JpV!c_+;f(^j_vObTeqOKry58XHI$bZjx~nt zynN~iT%E8ebRhVD47djp<&O;hUs^Z<=>k9Rf{U*=*c^X}@bQJ|sQ<_g0C zq5#YXfCV_afzMO_nw)bn7~L-s4W4ib(6WPgisO#V{+XBjk7BooC= zh?t}#5DdW$z6&hi*9ZY%5hMzWa{;`4v7rDQg(f?1v$QM#Har*oLNXEn*z9j44S+5G zi)3*K`ZvP)IsX?);QX9%Yx1`qA}R`iUH*U&01W#BiUDBw9}ws7_6L*%z=%Jf3;_20 z1LA*Dd;JX|xJ1Z5ATAN=4~R?T{Wni39D<<{s6UuNaJkWcKwNIj-wwEk#&|+8e~^RV zVqpJ(IC6e}KpZ*$zo8h8T)-a?M=tOe{Ab6F&JV<2`z`wS2>jywrWpD+V(|JtWJ`WOZi7_xHdtmmi+W_|MDtYFbV&HUoY^U#3H? z1m<~Ax+Y!W*_`o8m%C*{eSvF)uVcSCw%K6cFqs512Z1A>w{xHGF@1>?4;+ z374dpNJ#3{C{j!y?m4rAf1H?duD1y1qkif4?u^54=O^nVf#x#ZsB|$iB6nq-gi!nE z;Po4m8e(@QJ>KxOUn_dv{+(M^)_tSr!I)>BFM+{s8&{tXqS!U=oTrCPXY7M8w>bXS4B@+3u^udaVH*ulx_Z9_aLP5@vT zRsSOHP&g73PNwAfUbGapRG1};x?mf2>yE<>dueUoQwKpEiy&k|G^>B{WTT<`UQFZJ z!CiuC_+B{0$M^36)< z4`{cy)^5ltYrf-yK{0=BOF_3V{J<;M##p(?b7{9G-NTa~KSyBKC%W0g6BZ@s`@aRHuE|n&NGQg!2?|9MUgpXH&P?L`DxKw{Qrfx(lfMK6GHe!9B zVzh#Te?DIeQP!I}7grTW#it!s7&+z;+7P$!eJ~7bdX`q{sQ;2P3RQ|fM)4}^!RxFA zQA&f+``l4?=3X3Cq$|Wy0UB8;jZRKFSvpGr3(@dqGj1 zCSW8(o?m|z(mG{+2bhLSLk0+))Rkb=X5BAj7anO%~NR(a}bVT_NVVf${CJ3(y>fB zZ`@w@JbA*mAUV_KPnnf}D0+=Cv(ElFmCAP_nR6?T&K)3is3J-nQ&%+Jif$pdtwA|= z)=^0FKW--(mg?Mfr%z$;9|%7n+#)A-e7Z@_^Ig~IvV3`mtn1@D8xgLw`UHP(skLJW zR4egKSY}i!z)qwT>a5kn&Aw{3%jhSaMy6y3>p@&MSj$%yhF|qMXB>Mmsrc!*Y1u^K zyDb{kRU!~hY{9qF?ryFL<@p9>Ig^!+?+j|nJ^cbY>0vOEe@2#b)DxM&^JZ2>_@xR3 zzVTG(!xQ^hj=Z()18=%2y%m4`VH+_Y&@$z8M3ZZbcXZJ> zC!1@-l~VZ0W}$Wy{rb?h_xwAMre51^{i8~6Y2|} zzUknvjHKvzi}H*2{an0^-AI!gPWmRmPcj|IV&pZ^0H#hAd>un$%f^3XCR^8;TfTdL z`Tg~zRrtlFzSV_7TXW&PnY8N4dPNR=N@ZktR|%T5umu7Yb*v=k?hO&*s*~11A}ZoAx<-3kp2?hf6tDKYfL@Tk`{t zzR2gCiKUWlYNkDzc{hJT%hv4twT#pAh$)0loE2I{Z^lcPshv;FCgY)G_zmX8y)ezo zZMdhq_<489rZmE zeM@XddGpMa-(7!Z%p6P7>N38hpdOXhXVc2X<)|f$C(1v4rNwtmni!KrhYqEHTRlo( zGNk8V&MxXSmG#p$t6V>f-aOLY*~|M0mLdOEFJ56|*5QbpNcc_=kz+*4YVq~Nst*!P z;wV_{)2@U~lIc}Rq^B_I4!YX%RK;yKabHNtC>c2{xR`%PCe+keyu@w8<@B25XW(1a z;;U!o7c)#!9uMhbz2CCe(#xp@C&TP~v;s*DIV*)PX1sV-`7Ml*d)ak0dOx=Aa*c+; zblvIbT{wSW$NA8qie+FG?^0Z+s!H|j;yyPkjJ@lEH{IqtAfJ>%=}*8h@N9Da-T z>esZeEBYhqq%J{BHz&K)K{axI=ruu4I~P$&5dK~EX=NI01S#HYow3@^;(^h@iI85+ zq5aSAd8r8#Ufr=^_gYPfxs0dKLnqOCXT;t8>Oscn-3)SNX6UiOe(*s_&}&c6ttqnP zn8Saymq(kUBGaNYkGSu}i*SL4c~2i%%s-}dSDg`ms?0HZC^pem+xcUjJKB^28`wEx zVNXTNirso7X1`!ZN5S=m?MPN6cYRgdQqnr-hhz8GBc}=}M%%G8XG4njkz(^obgCL2 z1uW_8M#>273roS5_@Pt>yru z!nTK9OVh2(%S22QP5kOWXYM7uI4`dxEcgERh74whR?dwRYHx1=dF*qG?Q;AH>0y6Z zNT+Ow)6PfxPCACdzK#=CekX=bKg%pS;7@J^T4RP2ZS=jxuU6$5b$2YtPkVgc8Xl#b}x- z+GU+h7{fbS^mW`iP_j`78;@@<`|{<|hQ09R4=$e!{9pPtB1;tQt;KAr8f>hCK=GP) zZ0<5Rv(pj8&pn9J4BTPA5{MphF2wyFR`p>3FWbFa#GK##+2L38=b^v&x>Z<@wZe2p==b5}1^Jgou(_H>Rb+3qd8c*8W=PUBjr#?qERa*k2-%0bqKOUOkWgOIhC)P!Z|PZH-V=vsyf?>1*B-g)7(ZDhsUBsY_XgagI?jf;#M z>eBD5D8FA)%>Ug{oyGQJ5bL4``1eufQ51rfy~QbiJGUB3<{w#9PJs#z@dj|@CEa=( z<6EadePW1W7I)PNqOPgik@Usuc>G1=2@!Fn$Y6x_ZLZ+f*LSLPl|9DznQs9mSnj7k zF7=7v7ah>x&sCpP8qMfF{B&XM&Uc)-&YPPn)3NaZu6eMVc$!0OD?Zl=2)CcUy^g)c zy5w_}!rs&6RnF`E;Ou|PPVx=ftyF?teVl>ah>!S5%=Y;%wMH|+116Ag=NEr}x;a6I zzmSoPy)IPuHo-VgF)jUFVkRNB;nq{4!qqh>A+1oX8;4D=;(MK+c5e|Q=G{RU!4~mt zBZd+g)j2_`QFDW6Ugw?w5ZFQBKhIP)^<`8M`r1Fb%vITUJaH_mi!1S)g6?98C^6i| zx4~~)&-rhB)uAjl)i;yuHcql^Y`!Xi%&g1h5?6R0B5ondJr-V{Cxm7Ad(}EhKFiQyW@gIL7!g%L_v4>(I_cnYandMa+;xQT>=8j5AG2M zFH~c$y>yKFXWBQiDOT-huqewe!*?N=o0pP?>9BnZi*)M?T4ua3K`KZ zqz=(e3n^^)sCz5h@fK(%by6<@+cC84O5T=WskIH~;v%3M(9e9L4hNhY<48oO@6Y6e zR+Dr5sY*d5U9m&scI=f0>*4)Q8$W20(C&sPaomZTYH7@p4E$SRJ(;WoNMhwLW&i!B zR;N{4(-!z}uEr)C^d@j;3nsHVlqQ_i#W}T6G1mZfu=iv{p%PDWmF<`{D2Sed@7$Hw zI+M5W?`TjJH? zKZIK*RM4&Cd$&a8Ro~=`x_g1fM@8FVYFiY|C8Nref1zev3Gb(Y!IPc_M|YC~xk(6T z_K)y@dy;9+l=FbcTB>KK@U>iZY9X(|Q0ZnmM>dnpp7B>iI5(1@pki5|=L)~330jw^ z?aV!E73pqgtKqSTnpb-L|iK+$nI2lqXcaYi1vx)od5x+T%t;~KUIBY$h z--lGaK?FoClOi+K8Njven6L5`NwaRHrOo%a%M_OLiR5>Qw6FK}TT<3Ey0~s<|5ECM z+0l6Kko53!q_TaCnt~dJ%+H=0w2>9W(^s>+<}5yo~rPXAt12XAk==4^48xb$!$I;kl5VmnKLYMF=HvS7gY5yp7xE> z^MXpQ8FA^bMqB~$l?vRpGutEw6ZD~aF@`nvQ|Q?_*}5M?tODAldJKL;Gdt@J;PJUB zi>{8l%xlIIY1QoGJsH&H?mU->3m-)1gd#xL?m57F!TY&uD# zu;7>bX*D)!O2vS!Q2aNyGeZ7-&t--nmTVKhjefT+hlxT?;u_wKFm`$7XX>%^fE3I~ zaMd`Xp2`|fN3kSwD2+d`H`Yu8%z2+Jwn(Yic?zHo1X>qhad|yyS5`VQij+@1`|-OO zoWK{&ki(M65;d_!{|^2vj9T5Qe(n!>PP6APSHm#DAB?;zdk|>po>EIA7?|gQei{&y z(hhg%U5NNWQ9o`YutLtP$)NgMj{FaSWiA}X`K!kimE(bb+gG83NX{AtU@A!0`^NBI zIxn)`Gw+>5y*T2oN6Ob4vK58MuQ1AsD>u3vXf6Z&61tsD?rf(y$z*@N`uAl(gfv%Z zZc30!S74LNSB`>dv7lVVgv@3A(fm(h@ZR7#HJsKRhp!QQ9&*5osaFS=3v52`R;TCr z-q?Txy9*naqEW%4eb=aBL#3Au>f3*UfU(`W4k!{}c9Cvs)@86b@nPZqw zyc*>p1Fc~vwu+YiZ9(2n7eB!mE}x?X+l`m79dh?2q~SVZQISV}Zg*=B7Jrf-{oN{d z3tlRdrf#Qlzn*B`2h)k)(7cWC9FyOUT7kS0XSIp>EtqF0RlWfWP`CMY)ady#@n`R- zFV^nH)^*Oviy=Y0Jl}s}N+av?l$}6&t(-LDKc$_?LpNm*ypO#h{H%CY1~KO-RHLvO z=aJrM3iB8*xs8bOh_Y8{5EOWGRLq+P2OPrI+GG#5G!K^@C~t|8J}uYJkx9E{d_v%x#fPX=G>s{KheP%JxeS*@99RW6y%M%vu&+vUm!*Vl*#v^g*2Pw!RMSU*(gH>{aN^})*TH&T6Z%o@PI5c$O z05UsA0gMYSQsaGhk9tpwM=&Rb^Kf*`Q{uord*FXIWMfND)DcVUqXpM?cM*Q`2M%x%kv+>7afg- zi|zlCd|A1eIsWH$@V|`a|5bd|z4#MszU*T;$s%&A~aB4ykM$LW#TB93v` zOs3JkCDs*;pshm9ijLD9{GuMyghef+UgLg@+h)s99KY@Wy0TwVZa1sn+N!T3*Q{-- z&BcR9b8rxx791@r2o3E_#P(+BdB~wM^D51ue?l`$(}RQ#nbh`CCjhYU1qE z0wBeMxuB24@!+qqBAEUKCvf>7E+}By(iw0uVjy@iV$Lu|f!xAj4VEi?wo$mL1Co8j z2MVFWW(5Nf<{>pFTkJ^Hp>1in)#%l0*oa!O)Lo7!>&Zwl#I%ONO(Njp+%Qi6$gkL7 zBgBydH(-WLJ)o|j_`s#Ykc$~ z!NMQNHwGk-1WSA*HRK>zI5<&n=o%i&l*34KR?J(TnG;)L7{L4mY=jBk)c?-_gs}QA zMI=OB>z;P}o-{>J63!7i)}Z7-KbS;m)Vim|mG;C& zHwV)vhr&ZB_6`_{cEnD{fC0nT1i>bJblLeXhh2=Qe2RfY>Sb#83#(m6RG&Gg{XjCt z2l;~mih>_^mD0@Atdw~G2DBt6nK=Z;1;vW`!-4avS=$^G0V?(Yn)ZXPx|=Hg{Ujph zEBjL?4PYA)s}%pG?MFW3z{0y8L5QGgcZv^Z7q&<7rAkFMk`4-H&5g*esR!SU;dEe! z3m(gUM?dR@jE6S-Nhr1;dmAjwiKo1*g%AM4)Eywj7z9nw!+q`6P|v0D;X%Q0^v{Tz zA{*KP+EIilY+Nf%(x)X(=&7JUj1X#>1qa1+20-`Zkfa19fJ}fWa_>Oa|MK#v$OkpV z_pFkT1Fxn2Jty8PauBKBppR|5j|IywN3eU$fd4r}W*-dUn~5l!~-amKLrh>v*z z&pTf_lK!Oz=PZvY@Cp8H)W6{9kE@Tq3sM{j-oR12 z3v^?sCh2EOM3M~v&0gim{)Wubs8?6NXkJ5oRUPmdqL?Rb=(L09B)XXr*A9&n2bMFp zG#h2oV(w)L*(ZelN~sS$`mC&pP7CZ!kd(|ox_Juhum91ZF{?yh@NI{dLFGhEACQks ztIwQ?n#JMNQ=#xUNZi&oJ8pC4;AOR^0ydMt@zbT`UCXV_mG*Qnmm;zgJ?L6Dy^S=K zd(k&0-RMJ19g}~_KNM9pogHQbue!nB7W~M!PaMu_l`2fDd`|VSSwhO}{%~KWhvXgJyN;B zHA_F~vdGLk%%_fYbDE%OlORxY`ulUE zk45qfPWff3TUfU9byl7BrLf*r)oGOuwNyJ#^kbG)p59;%J9CT<+<^>ixPc9dRZQOIC%=-Z~7RolG%SRduk5O*f$b931o8e4+&_E+TjN_$6uYbouOqY1$W~0L!8sIS=XZ>#1CzHJO5BX1;>@k44^;-f( ztG&t&o_(6Yja=zB@8KHkVx0F0mGc^+^=}C5$A9pq=3QS^@}@&NgUgLJ4alGSERq*G z;~HDvb$Pv<1JL|PL46rdN=?${4=Q^2D#tgxUf${-cl(cpo=PqK)Txu`f4-Jo7rFU% z{s0`BfJeqSDvvKtlJ|v=4{ghT45%eVy*8<}XHiwTplG{VN%z6UwLZ4uV6GvMr%*|V z(w`Ms8F*6VS=dV24i1w-o#W;o!m4{w*gpW9pHnHiyE{9><606DCQijZ=XbZHq7N^T z!G#i?cf0Q#OuSa`8@SCMm%(m!ZcR$pa6m#)(+vGewlNk2S(~OAr>84bhy|yI*Pg7p zo3o;V;`!dOz`i>!+h>Xs_j7H}HnFE@`|+gnbnDvlq)zt~c1J}*SGmRY_T_U)e+II~ zGmRqc-|kG*dE7uKB4f!+bb*o5_KR$IdH#Z*UzubR-IWr3olY8=-mdc7p_6@L!w5 zCYc-PMpp7u?mv;JP||%wA$^raZ6+K9c@rU%!;|MhQPMc20Y@e6V@L;CU9_>?_8^`& zd5hh(spTbX1+Rq@tQ;ttCNghIz>kNm1?l8qXoD?oQzSO-?F*Rs@4@IdNR7)<8C*MX z@0Ee3Lq5g#=5Jge3(??8UA<@oKhQWgw3L-Oh)so>hYuKZ=CwO4-|)%I1jWtLovbX- z!&97UMUC&RKqDi9NZw->|4A`|l-|;mCX2r4RD^4T+a;}nK zOc~zKHqw0?SAX;FW`$}CWYsK8X$MW4d!$MJb82rLv56752M~+ZE}8`=O=K z_^|eJ=R(HpPAek40qfB;fao{J{+rkZ?CeV?4$JNyHJ$6=E|1$aS-u#=L%t zhP02tUZ~meBGR@73uA+k=tOLS^hK?G%xa46GIKf}PMW**txN47IH|K7;zhh9i6{Q8 z@;f^6)-2i>$A*<}Qgu_XLWTGyIUPf)1!*5^i=Nu9+F2tq_dLTXVozPvDp}jcD*+tw zKQv2t?k_mj;}Y3u0rE|wdo?zZW_yA-Kx4o3^Q~ophjiUlOL>XR zoV`eOzr$l2S2RT>KSjynZ|9Z>s&z|E#rtmwwi62XPUS0b(^&3u)Z4Kr8Gc@$buByd zwZq3u>~^e3Ovz55o93EPi7pm4{ido>5#7C?ty~{pAVo?3mj9m~nT3UzIoX5;3=NH& znfd>`i)LeE=K0?)nVpk^<)4R^8t^nz*Bx)-K;v(LvV*z$_o3xv}tjCnkcV zL1VzyKr?$3+5E$(gh5Y?E3QsKOhJ|Lz917WGxf0LBQksKb21@EkfgyCQR_W!T*0)p z+TN>rhk9<>=dNv4B>gLDOB*}e>p5TyZ7rZ;%+w7bsMp$qB8fp7I|+IqEUj!!kZQP~ zOTdLd*cZsv7eQ3ZWO0EpYxanpKIz`Z{>P)sLX@~6axPOgUe!w(7sz6bH-0O3{P&7e~ykPrM{?rnzk zm8ruU7O4N)+~8n9a@gqRX69_);%e~h)@a~t?@{&V0)xmDhzHENB{tg1fCv;?C z?Y%+k-PqV2h>l52Cj89Q$`l6viSfnW83Oa`IMgR(n##u}F$(d~*}>m*v0VekVqpHg z+)c&%CjNBQ^9{gl|9T3?S#Ra_{t!$5^08I(=Cg>Y|8u|nEdazN2Jyz@X{vh}!SpFv zK}1|dQdLwTQ-qM;(;Wfs(a`MzTaRD&GyGFeNnAGzt7mco)^OJdnmH&`y>Ci>VrvO= zqmgaT;olI?FjMy;lRx$I$xvr~wSC>|iwMajCNuTL;S!kCB}iev5RR%6#<~51g-%EL zTA}x61ThDhK?V8C+-Ul$@Vwmd&RPG?85Df;;9lbal7hF+4el#)Bzyy%*IZwVhqAMG z0QdLdvv^+!l@uPU2f_3VjL_}IUF5yIEh4j3!2j5RttB34{j`87`C2Pu-|@9Jcd*!p zWd=_pV+Cl|+Wn;hU%#dm-zT@FZnCK8ce9iss29LB8;mrENc{L#U(X+j&O1H+h zio5=vjC?>3dk2z66QnE8@RjuF&>r!J#q(3*g5K7D$LwXi;MQAi)!zc^{S)-V&leP1 zYlY`)9GXy0&4w?hp3VQ`nw?nd_tzPA#pksjs60?sXN~KO>-yzw`xzcz!`8?JzN!tP z#lsCcq^LNQ^?PDR+wgD)#IxQXdL7~9cDV*51^e)hK z@k4B+55Z5r9uQ`xxIsR6MzouZ05TcA=%*dx^UG@|h2nZ>Q@;W#b{Ho_fHlK6#LZ8Y zM8pZJPpa&FkG9V8c_Fw!HTqA`Ub`kHs*<4iK(yp(Xe`jutV)MEZ{2Q=DJ;keHav^F)E${d>lz5bya=(9gGe8<$_P zAXU4s7P`F|z$SWz!eu7#SxVv=u<`Fu|1P3QM~{TSzhy<%m%rgh=jUI9ssl*Z*Y=<< zA9&iYF4%Xs0hTW>hR^A5r%V+`d!`PE3t*`M)uCT7D$Gz0yvTayH!lNVO+motL-r?t zqWsSD<13bd*7|yPvIl7k6rqBDrU6s~5$K+hym@;wcz)6V1%dbp zqJa7x^HSkO@JAs>u;#N2hQjwg)Qdff{pqH{uoG~_mYR(YGxzRKDsbUxDYN|^K) z@f{UaMMDgjGQ}y$UW>&e%}$YUs8X&lB?g~I8x-c4{2xH&5Q?bVMm$^FZ^x+pZWdG1 z0A4o!xpv7r!CYY~-H7h6FzuW5Eal%tF_6(rreIAllxz)0(zh3p0B_PipULN&kN3x9 z1Ui>21Ic>N?L*(lo<~fL+biN3B};1aW{%k?wZ&n#)DQeorDvIB*CCqaF)g8HPT)Mn zHTiF6cryU3>?w+9!K8f_aB;E&aU&PZKDYU^f}@1C4029~UA!j}BpJcP&$**3oYkXW z9l|zNwKgP@B=0pbx>DzgcPzqlew)EM@@QdC-=+iSm*sIhnr#Pg8!N$>sKmPALKvlBQymF5*{&T+x~p7JHx$12`XQ)LU;pi?9E$jE~X_Fy=>_~RlCAG^I?86 zK3wj85RIer5-Hzt+)9P*3!S#l+a@k5MMe*>&;RuiEE3kRP1r7rp3@EUNt5f)PxKlc z_mds^yXy(#gc%u~sp{_u{fk2_PaM!_D3K!{b}M*qs_b0QA&FC}xp-AoAfTmJXeiY_ zdtL#G1Fu^F#$OE5RxR}O6c$?({AEGJx!;x7wUs`{pem5!4Aw;kD*qfN<`oI`h>9|2 z3&G;f2Ww*ME;pYxkWKW6lyx(DBtAEBKlMkq$~|0hvQ0o9Q`nfhNaKG9MA%^WfCy!G;nJdW1?=mTRinq57sEI#-jVWSYXk*AyHn*X30a62XY>Yt^j$4_d zwxeEDv>_1Y*e#G4W#NLS*nJ}#?ck-&+YbG}v`-~qlx?S~ zt5{o%&G%9|i+OJ529a$Mh_LhYtBWikn!724KUVa}rPW%EQ{@hr+4o$gcArh|p#-<8OuMcLYbtI5H!+Wnw z{~22@Jj(Un6opzWw6ozh)hAeNrb1=jv`5eVz% z>Di*3HZ}8pI%0@9QpL5RXD24d^mB?nh8klA2*s zr#V(AyO(&PmJ?<+#)Z0x-v|Tm*j4W-gV5ht|JF$A9Z18-4IaO6Q(-1XdN}$P%z493 zz8UL8Xrl}vkHa;3MRpJ@P;V)pOS{>Y<2})BYg240MecEjP!=rlA)lvgNkR7V-;|U2 zl75phT)0;|AP{wb8yYx|>Q&TFr}|OANiC|@i8mY5dVu7tKpGhdAN>bNW@6-klk;TG z{p_8!^Ja~OM$ zdVmn}AZ&b#aq@-|_9qYgIpSdd__A*2A#2gxD>-uFGMwHMZV}bBXl?hX_fvzI-04?E z>W{4P(zMUk7Ia&hu=DTSVaa?j(x z@pDEW$kD(vNFdqjP!!JCgdf-(&z+iFqxIY0J=3Y(5!Y4XAjI2p$5r0NW_wm6k&d$q zpEl&HNL^JI`h@%KlB~`j2Cn#F4pwia2wYJ-hsws3a!=n~f$h7)Izx>p){aXQfm=zj zF++5Jl-b|E)ibWS)>;uTxAw|h_1FYsb4yuaO-dMa@8pM_UK_<9ZZ{hYjmc_93mmJv zpvz`|%pf~AlB~aXy0GpM_%+DLG}Q27Go%kP(@G6KF235$6DwG;kb1=%y40W^oDQ!<7!TtIZ39S-5HG_8;) zs{Y}H$5*yTcieO#AcZD7Oc!z$W)bBUdBS<_N$xfb>z`*jepXrue)1-tr79M7d zbPJ4I(`6rOIiN@-l4!w1*xc#ghMaN#T1kjNwz{TM&>Z2f*}^vElez#yn>Z!r)`^Zf zQnULi0C2SSj5`v%{Oe9ohbGJzaLxOWNuOs*%~AJ6dvjHIQYuYbWO?h?X$P+9_6NQs zc%mr<(MiWMj71r^yd<&eH_h_quSWT6KcO*AN+xqjWTfuc1;KG@{Z||QlDAW;VwrZ| z+B@M@D;42;HOuRFvQP>`8T@p?T)XYXErTH41qwA4x_XuPzKvZ? z$MBwGZP|tUxKWw{a)H^%{58oZT3e8DaD6`D@^_P2)1USYTyov`?*bNp1b zz#bwgV~1$=^RJlGmsc7brfxzAjp$ zTzQ~%u^4hQYKrKZ!w}KNAj&px4EwlSDNW9h?$JlYIIPC8Ih#QQhH$+}lw5Dz@C0T+ zD(2=&@-eqzgTI6*24A z!L-E4ksh-(9!mwJ)*eOPxI=>!uscIM1b^wM9#FU&wTZxa0S+z)*e^`~0= zcuOIXoZ_j5$SR(vnu1G6&Y@x6bV0Vn?bMjD2impvQ)k8I2W*IYAW zHGDrg`Rf&UkhrrZdo`6V&R}wNK+)@;v1NxJwXa>%4CJkaHn#!@V{YA-pM{Rl6iU89 zO5R&v8^`qH9}EP))`8<6!1q_Jb_QjX=vZ8Er7V6<+fPKqmQ~1HXGtcHyH5-k$!kd| z-?;khsEhdZXfZjy!Ibz3De$)~qQsp2>0`|+tR*{(E{KUFb$poB7TK4;zB>nv0Ip46 zlwU{ zXpUQQp#2c7t|MJG_LwVcpb(DXVqT`!guTC1*t>Cyv&4x+^8rfNG%9YM^=Bm4#NRD0 z)XUVAN`KnIZxFRZTFrrT6NVp}uj2S?jRYmP)iXiHvT$&9)F87ua) zy3i>;O#0}WUUGW+kF|T)#0(_&Z#G0Jlkn9qRdaN`!kVdP<7*y=iTsii#6Q!Ot5JMv z6Z6dMD`#L~u`X%e{q(yh&k#P4C^K8$K`7q!#coo~fF071oXlCwej2!LxMt!aNM&|-^#SGa{rG|R4Sq08RI4~;BX`q~1 z)EBFSxwW03wT#iJLLjeKs&HwYeT@Qf`T(`qzoKI;qhNSr1^Vn{o2ZOs6mE6&9{s8G zHX3u%!OEXn&vw5$yg4*kXXCeN77zZ;(6gGzJXK~=I-V2It>=@k%jN4ijK){>t)8&) zB4HLbC$|)WY-D`}h=SU|(T4uBwyjqO(9*kHwtcVX{3x(JLgl)$Z=|ylq5Cl!;Q$Q3 zg%hDcZ!dkHK__Uev+0Z>EArm7!8voEXbZ6;5Po8+1sCMUz|?g zYaIJFZV@oliYQuLHBc=b8;warP44tb8U8(uO4WFTD1o6E>EbM-`1{m==7#xbSOK{0vXU=|- zz24JTk;;%-(%qT#?qZSiv2hnbCP&YbTpCm-B{b=jhofkBP2ULwl$eLegaKZuBuKXa zQgLeFZ)UIvZ~QL$>Rprd!n|`h%;Y;DvL#yzGNmD;9ro~LX zR4rOFJ1VX!)~pVt^#&f%lh)N%Ym4KX#sbug`#pkv1MG%V;wYz)(^Kg7p@ncW?I`-W zOZ#_&T>ZvdX|wo#U+=426+o2)3qFbVQfW>Pe`u=0X~;hMY#lc zhR7%J8}y5LvT=z(YXoIil~Szt{sA@6WkwU0;w~y&jrR{N>+U&hKnyY*dqvm&hvDRr zQREr~?+@KC3+1Jfz+6sqjZt*a%Ec&qP>rkkKhtG%e^y^BIbju-K>(-EA4%Q2w08Ha zW?opc2*o29{#ZOlG!a{DA%u{0u{HX^Z@6)7eMm-G#=}Xr3~aDVbsxNWku@Fn=M!D6Ax%*{g{3mYgB6 zHMvn=E2B?Ttj);8hy#QWg6~fkNCFWPr_`>3pZAdOY=XQ_-_~hUHYL~fTp;i*#k64b z6vJJAY7?wCNYi8@W-Qi$_=${K*lm2CdvZzc>bMsB?!4{Bjw~Hj22XAP9 zFstYs&d#priaZhe?%|e-I6FpN6P#bU*}mKziK0u^AWVk^nmNr}*l!>PWsf1_0RWThb!y)RG^ah*UDv|42XkpG!*TdEWV5J{dxXri@7h#%?kjo5%GB z1sq_$BWSxA3)|2%6p~$GxEVSKa+KL>c|x-K1LF+AgIvKx;(o+qI{SZws!@gf5}h8@ zK&7G1+YSyM_*c#sm}0;4-+2EP1;YBx;0YVU6f^vnLICOJCg%lfujJmW)E@O4-(p?J zPDan+@&h!DRkBc}*WW&?-^Pw`r!b&I*XcO6Pkj*NPRIrQ-br3qQ=wc9s&09c4DR=u z1T$jRbclwo3zBCaSGVn{4)b(xK(QlI{<<9??r1P38BQ#sdz`Mbc<(E}tD|{sjGzBCJSqS{Q^^TZ}%-K_7^UbN!I6X3bd} zSphPLCd6xhIO1#qTv941?5}1&$|w(eU>J)*io=% zTDy033reQ2d`NLk!hP&G`x(7OuYpdo%qC9>R@%tI_uU%`I{upkvt_5lGBD1NhxxRG zkMxh_{aREZfooe-3amt1U~^f-w_A5s?k z6rkw!@Y9bb7A@-APBXXqDh@q2-}JHT1&f(~3kPs!<35C^S})R+^nL!3l4b0t`}fKf zHKY+M<-bvNX%A-ow?z)&n|z6J&HN!q8T+Xdvh(1$wbjFCVFMVlxQ0;X>#0&5BQUs*6IvKzzS#T16Oc;sra6Tjm!8?j>*=D? zJ&-#$Ynu;;eoU)xy)1O9L z@eHMi&@J&{hx^G{=i+bs8pcFn{ZjkzEHWp*ycB%2m)d%97KV_Qh-4;KOR}q4100TD z9uE&$@U>F+OASCL?gEdTPW4Zw8Fe(-l>)nCLLI|j{i z6t=(};-}IbOvjHjZ7B}f!Jn7kG4!8dYF!n+jPT{pITsEe2uHJ?XW_zp3nlFBW}V!x z7~X1L_04-dpb%Al=;|PNL)d&Q0q~nhp*}i~Z;swbG7To|vKe8hsNDYg%IHN^XABCk z4#M)=>g$HL0^EcqIlUF5mBkX0zB*0w_5%vM+f@QlWD8a!7gxca2aKC+pxFC(G%sc_ z#|(K($YLs$?6m^trP?ZJrpQUyJl#J?oUw}Z(~aK$rbI$Dp(pZ5`f0d&103;Au)^@s zWpQmGd~lS5!vvNwEP)B`!uLPL4$%*VF;;?e?)X>65&zy%&U0Z!DUzm!D!KM(rMxO2 zoBO}Vt*Ma(^M^zxoOz;F192X#D(nsj2P~0iCtF5JGD_0zy^|0uadgzzqVoW+2a5bb z(0bPJdsuZtG4eE=^cT&;sqBvw@!FyRKGFO|58@Hi>?AM#ERQRTW~5?z=kM>6gdet^ zE0>JRO^)GuET2=8nuOO+^7H<;49!bB{Y01n7u)rdruEnJHa}0D4Vt==z_t%kzTNzi-oE-(L zETgd);>pzC^Ld-ume#(?8woO-_1r>-FlJXo^E~tXB@uD@qv|((z=GXdH0sjRhd&>*K z4_~D);3IE4$Ti-TC8F(Q&^D`dn-daQ?v$Q+YGE!-nu9eXp$H3*tw{ zZ?DoOZ^wK{2gKxgX1gaVf9mj!U!mQTeA8`#c&q7w9%y*&eDqeYuM>GCTWvTTX0YI%#!AQ51+eU7aMyR}6-DxNXKN}&d{GvhS<#@935q|4>B zfb=~kfEd2Mtx;xPLO|ymWdzy}#_}JpwtiMOh@Gdw42Jxk*LOC?9(-<^y18K5Jib0O zp{*G4FJ)ql%GsST+EN3jbI6__)TYOy}!- z|4&RSxFtM>ec({f1a|65r67F482(unuPDX<@}dgj)0De!2kwGw>1L5$B~7iFiD;j4 z=|`DZCM$XKte2uro1Q?cSPl_%VO9362SWvm^ih-@bJP=rniiVG?2;KVw zbEdu3`Vc`LMUNwLr3+w4vFi{79ggj{=vSiufx5!V z*nkr{6JJn-7G}wKy+7;m0m7pufO_5FxRy#{{Je*mteX=r(!kwqp(BZ%eq#vRd~5G9 z$Jzqy{P5EP&Kko=xyyySQ?a_$uFF5ro*b|BPvXGhf$A;;8x2#m`QP^@eo!MIVP47q z^b{^ps0ZaBkbC%+kt-_WY9o4w%tBc@hc+9`f;REf2k*Q=ScggYq1~;yG^FNnwi@Aa z5z;z!E-R-U5-A`Zb+M$wpzVi2*lbCcuwk`GMz&@gHg^b~cA;-xi@rHCS41~)UGDBy z1&98efzbN{;DfVv>FezhH**9ec%wz(ppTkbRzHD1{X{2i_Eq_+9J;7lt#s@gu!}Ku zxbQ=HCq%>KnP_%|?H`FOYS=BRJWuSwX;6Ud%z$U49;Zc1(2dRNH=iqbH&CN3tip5+ z}2>&3uiS7fsOm#|I3Akz`4COCqwtPx^SC~ifyTeT+jy)d?mg1Kyia+ zn`E=*Xy6f4OK@J1{SuFGX4dkkD7_$yQH%aB02e^$zf?;0aU91jgj!{07VD_%tze>j zm#O2Cgs`*^QN&du?`3z-$D+Z4AWfn2yPNz%G-16gy$uKU^8vCc&C}8=EN^b(c%`nW zGutl<4no6w=7zB&1MZ==rl-!f+<#|Mgvo+A5;Gm)F{yTGrsl@2jwfU^1@&js^+kJt ztV39a(FC_>`s}7NDv`@L%I;q(A!sfB-g|`(!WzkQ+cvlj?(cRjV&eHOBwKcUaE>DI)5}u`T8$>*^IhN0*H*vaVgub^>trTWYST86Lv$0xkjhY z1RBo{YpXo^^j#RMLU`Ru?5)y}DX?cfYApH2vvy6Ma&7UCSIr37+LTqD9TNtEx{NF- zwI9~siYKVP*=YFesoLi<9k%1R4|C;jo%mVZAD0bA+?cCM>BDG6zkix7)0l_sV|GY8VU~WW|(nc`7)LUz8ofDKaIvO#nR+#m{*8QGHV;F+d_6y?=P#` z=8?mF&7YBTYmCl|AAcdAgrwmlN?mvp1nDSM(|!6=8j*6yQf7`BB5jLh#iGK4UI5K# z*YJEblV$P9!k~yGXO6PG)gug>E`LG~Pbk>Z@YwlN_Shf$N{PYLC@sO8rw}iyP zrrp#@SqL}j?te+3CWfYOkxsVYIQ9#k9+nLsg>(^QjoLJnV1NpCJLqjs$_ zrb@zTOLt#(uP8HRX6q4}riFSC+@$GPJVC*hxQ~bzURmpygZbMFr;UExY;xVhqIJE7 z($}-v8{Ir8#v>CtzO??becS{i^rh_6)~K_WPxbgrM}Jz9>3E^pTCSPn^7dWCd@cf6 zgmkU=hcl7M5+FK>BtovwY8VHDR-pS$U)T4g^e*V>wN@Oq!?Z=19tYIu3IfR^!+1gJ z!lx^mz)Y-9q%1agLfQDdL)Q$r7QIE>n8Sp5B6MxTRwVm|MHuix1fI7|)ST|D__!As z2PDYnihsWzSxiS+b&v4A8Q7-!5p1yZpj(5)wqaBIK&j>-+m&;L*p@m$(Zg+YgG8bg zrP`C=Zt{0 zfXss*&gz8WypDkY8m(2IFpPMPm{A*uLpEyYh#0Q@x}rL>v(&CeqnVYnt@l9*=MS z$j78pb_{R!OPa0o3%5lw9j-2Xu5_TqOn+Qa10i3u!{flb$)mJ6R#_vI%ChkR#@7vD z>v+!;SdbeF?8tJxE#jwe>?b;%?e9>b)I_tT;dtzTC(~??z4;6)B~Z>#!wE$Rr1zZ?Hd%E2|)!hCk>!^WS%lA5$?0?YaN>(lH``v2nQ$aGk+%< zUqm+&67%x28`(eLcWfyyBomr`G>Fy>BF;w_d_b6&_PY(IG}l@;kPgZg z;Jt9Hi2N>1_Pj+%nM+J}t0glOOMitbwpTRjsVIdP)dRaZ0(U@BPi()kfRIKJm$=Kt ze5aEuN5~!T?xp4lskVWqu9N>#SHEq7(}28JUPk)KriH->a>gKV^3Ui~heiN??s#|JV=Reaq2_v__d*?ca}%tl>B zToF|;ga?>&r}j1@W~ZGO*3{0kG$mmh3*6K%IXX5B$&<5BA}V-rhOKFH4lP@n6>|Z| zZ?C`hxv~=Ks-r49Vadj#mk=_8;3g>Fr-GVo$wG2DYR?mhjet(rsSSglCuJ;O> z0~J(-hY+~TOOrwTC8?3yCTpl2b?>i`R!OU(BbP32ZzK%lJLJ#i#n)@8Kc`2beSC-3 z@R5gX&TofOgm9%R;7zVLH;4RSQ(^?j@iGKcn~oZ9juupTgU2R}sU}GsU+Y+>`|=Nww^KH`D~6bBVbsfU-eJL?A& zMG`U%{Ig)ZgN>HJegjPB_oVPYU77zu-UxNAkloFhEHK4Bd)jjL+9qGJxhK` z|G3pnhZ`=1O6}f`vXic)+Ov5Hy_A9`ThVa0Be0QRks8^#2Y*zXz_zf+8SH}P`XvA0 zWOX(~7Ep^neGW@Df}VQVef_RI>s$z>bB+%vhX+j%%zC{hfiH)zV?)Qs!N z!Fl6@9ez5aU_Dl=5JLtV33WXF&6MmtkV8^A{HMTfIKkwoq6hQFnriE5uY`oQSkczL zD7}Hi{`3UvGkBzpJd8PGKXuz)@{c<&*pM=Li$4y0< zY(DmKf=(N9oi@KxHWm8cjb2l|NVuvu<02=- zMkHGwz$rc!h~G&0~)j zc#E`Kr7$Dv{AO{r6H^)MZPd!rKvCqfb&A@2*?F3}FDb{mUW=&sT0AMVSP-T1N4oZm$^+H^*;ue*@!ijOqJI9|mB^FQ1)?dT#Ti)tXtuTf&kk z(t4YXmyWu*{XY2p$8dfqg+uE_dJsa(1D&*bvNSpIt^t955Xn7U9+{Zp_>DRHrsg4= zO#Qi8#Ye4+7->lVA{f$iL?$QOLrK+m8GraJYbZAqZ)q0J%j{AC(^+>Tx@*7_Geg2# z*wbHMq{g?G1oh921T6c~6(Y>=T!)ErE-^p1`AHr7TnW_Ek(DRkx#*)oSuyNTKvYp2 zIQTtco@5MGzelI3mw?3d7svGau4=ps%CWc`t7Jt3r zvkldTOdm*b(_4vbsW^lW!}VjGlK4es*#vJRa)fMRBK&%$hbACLqt`R#e+_Y*Sz zmqFf#rv7fB(lU}h$pS_AB}`Y;;(xF2vFPet)<+r*cxAqPgs_d%Ld|eB-HD-WTNrcoP{MQS@abMnz(eA?aXY1myKgP$K?~2JTx4&<9ofUPys#A5dPeD>|NtJ);bW*|# zO-L}|i4M+PUj9%m@6O`tnSW)e8!-==PI9~>!tCePBRJ=#5oo7hR(pq~E?z+9d7dq$ z9TIZ-)}vu*zeSXe|0p(ns>l5Q_*PDrww|HKD7{Vr8bf}8s(*{`^%{Hw=H_Ph zEee9w?gK}`S`y8%P5PE6E(<;-FeXfV5W-H@#NCfw-{T)&bQ@?Lm7V>)^J@K&^|E{f zK+I6PER}eR14KD!A+$Z-twRmAO*MT~_6-}zlleR~4hZCKYRHE1FVeF#U ztGOJ?%E_?Wi`ZTjo}^XKbCTw%WB}?*bm;N|T$TMs#D}M6GSKC*r;6w&$^*jNQHlM8 zJbVR08NR7%6MqB;KG;UO`I9DlkKMt$7z4@;V!mb7d|b>p`RqGU^6ZhFYq=&9gxRm| zJp$)dSzS+GUebgIS6(BTX6xE11Rus6HSW+ku28l;#N@ockBaSt=Mq$9#0c(ox0Y2U z=La}Y_I3QU$%PMcA+>3(OFaq@Pn_j)UZE2i(k)?UB!50u3O%hqv6qy(uCFPyXxJ{p z2Orfs)q;zy{wy&nlNK<}jU;B~i4?ZS%2oxQL<0sAPO_0dNP{d52OZvSBK^#ia@?PC z3kBb$YoOJ2oEZbCYI? z8H=?*-ZVkZ#qX}8zquz+&$rbY)eQAsoMJz3me6}ogc`j1F=tS>lLv4P2%OJ9?&|pZ z9C;sEHX>t0Bj89$g7B5OVM5VYA?vvCXGAA?Re#^;fpk-*us@lj!>aD*%DQ5RcumpIw}(Lwrk_E7(bzHHAt0Y~Jv4*?Uj z50MRx_7D`9DYq7npg3o?fQ?slH|V<~QFT0jZI}8j6a?1=F(Qd5byMgm)0v%Y*!zPJ ze1EgfzT42;Jv_prO8m_LP56Anahevbci)2nI8cbc{1m4&N19W5>&79= ztk>?}f>s`td1aGoHK0OP6Y%(zT;-X4CSh!++R|oYR87xJ33lK1+$>l@Z#8e>j2q?V zoP~Z}%u^t)zUZu7inK}o9HS^+;e?F=FMl>?Ns=?>SuQ2&Fe!QOJM;D@){N3BW(yIL z+BE?x%h}ET80Te<3XW)S`eJn>{!5lKjO@xVXk~{9CG=J%4;e9s8{n zOdQ!+>dOq~Q|`BeCE11H+=#f;2@F?kTig0GYSx4`&0jfsv5b{^g33{bxcvP(D1Y{R z108W^;$u=Gr_Vd|Y&tC!Ba&MBKhi^T6sE_y^aydcQl9#9_R03hi*{798Y`Obxm2Fm za-lPieH+LhbLk?`IgVDjS4Zi4gY{Ms8>E^e#>SaK^zAHL`i@~LS>q-H)=|22Lub}95#%;MLjGN*?os2<9 zb0eV`;a4|=ds*Yp{?GChzb;K8h`WYQaRL_ zkcJ@=HzCd}Ef3DDmA^pAu>-o*9J(DLi?+sQ?~XhcB%jN9sK0ckL*t(uM99v*b?~*p zEBrCW(Ub%l4zJ`%@Y!e%35A8vK7S)#zTN5S@wGJQ1IdP)r8=ssHEOYQ=z7!`Te;&U zVtdX?h&?K#H_O$_fZech#ec){FLnuv;~>OqvG1=s<~7p@cAOrt#+6s!jLU7WRv9r6{w88-G46xS_< zF)`pxM||(oR?|j=It>p|&#@?%ZnLJkchEY7h183FYKY3lnSbiWU}wHxQXdh}4B7*l zm+@h^-;`BUc=h)A^7$IlKY3+2kHDThYxI*|>n{J-lV>IFKEmtAdAkNt?8O7g9~^6| z!Njp_F6ji8nv#iCp6l}SuqCJC8<^msxc{D)c#A8 zUECUF##TSOX>R+Qs|JP)vXcH8UGLb2!RKNGdaqMKtAFXB`|_F#Ae877)Pu~XzzJXM1;SqDs13I zdFT24g?}!&uCZE1f~*=g@lcL8SFWjJm?+7$!`xmgsSSmO0TjJ=?6!8RT3UN!8^Q3! zzYMdOeMCuEA>JbX#xSEDy+YYhOg!UMkucDblVE#+|8&yAEUv>(R$1~or1*#|{6py( zcfALVjf)^VQR7HPT|jKD^-wWOgYXpW5*4PKY=6@w^K4KI{~$x2Y<7Aj)NQ@;dOd{$ z6+1?Q@cULpfJ`?ZQ(>omqcNUp?W~(Rc_g2JodW$B3xlXW&CHU8Lu`*nbyv30<`poi z!C_=0cKxJSv$Q?kB01!M$i5Z(5hfL)sCTWaw~7}~k5x<0kox5QnQ3HHK+`grDN&73 zuz%{)ZA$Qm6%=u*ZKt=x9B|@nTL_#4=KJZTbHX)qBHJ+u#|p~f@9B}Voed?`AI#R~ zDz_!b$l3gn&1aX9wjbc9=ei-%zamG8ym-4<`0@lyvI?m8uodj+5Cq5WB+X5;kU*B0 z#*mRkp``#luBt??JDh7Lo!XQsVU3|+r+)$Hde!Wlip>jGqoyh!tBc3KdQ~H6N}Ytf zA#M6-pyfrZmKn(z9IDR1k2~T)yo`P!?%fO}W@$#UG$rOzp+o+sb9TXE}YOk)2?{!#&CZOwgu@ygh217N!y1U<8m0;NFWDaKn~T)x}F6E zncsB7=&r%xc-c#tYd2klw8C^PoW&d&8E%L#$8^ZuIhpz!LfE*jqVak-RJq_}S6PzY z(GlnqMXLqT*uqkGT^o9M(`jl+_J7(dan^GquSGV}^H{CJ7y4f0rDdQm&l;*q$k3pi zqR8^%w6=@MLZB8pjdPUsF5lFmlt`5UKfH@_H!7(;4X&nu!hqRS)`Xbw2f4sL1;@l4 z4y(t*V5e6vNpG0-H|D=l8(9+02&rKZFc2!?Zt^F3k{IKkX?&Akl>*#{Rx!5@w)%_kOCNyVCJj;k{wO7i!BO{ZH&jZHpUh_mm3!nszBESQ$PV z`YCVPnzcQo8Y`B*yfs5)>#gOBCLu7WK||P-T;;Kd|2Xw!DI8L6>bfkc6v{7o%d@i% zCffbziY?zy`GJwAB({{@O@DUYqG`Ty6j<|hH5p?=$`H<10cF4k6&ETgIA7)mPT0b6 zZ1jhN!svN26A=Bw#Hu>s`=XFxP7INWUqh>P%IwZDw0y2R{Gpv)cED7|x1dDc!=$Nl z%ze~6tejGE)rb%kjOxQf(Y5;Tz>dIt5_94soxvp4_Vfo%6>rloyMNe+da0dGja-6s zH9#hVfi>5CGt#1ZZkuqAldTI@IOMzHU8%ru#^{}I$ZNE0je!|KMdQ3-do@gLL*p^d ziU+17a-m7|pS=}k(8wYfr!0irmfb%P(Pm*qR8FKGKz_huXLsEAsU%7~x7Qt?9y6&4 z%#Kt1e7pq@kFzbAct2TF>`XN3x%s zVr4>>!2SBIss+Ryw-~hRtggbKyJ169w)ASoXpzjD zaoDM;9GxElN59m79O)YtmEAeGTntsPME&vTjM%Y+L;IfyOyTN_7)ZapKk)OQRg{7p zCh%KTBOp8>LR=SBF7GzmuFbIUxGS`iV;ikOG?M`t^CHJO$tK)Gr+_M#uv98s{c1Ne zZ1l1PFdyZj^?ybrF?I}6HF4zA1gUnWmeoFM{vfP7?2WY-+VcK#yxW?66xP zx~!VJRE-I{e`zvuU+VClxu${|PuQ_chGz;^ksA9pYJcP&d`YN6T*~nrsFns-5rP$N zRZ)6Q8=~`?^63~=W0z8O2FeVYh-5+kRqXf%o`Sp17ox&hJmZH)0`5`KTNHB)d*yjS z03di`y_L|Mdv;_k)_WrmOcj&tmeu}ZKpy1vj_B7d#hEfcdeGt80R2mSHvJ`#uD5fW z?nIudwSN$9I?Z-1Z1n9Un z)vOmg$lMys#C&(=6K8N5RH%vVm+uekL3q?$jy=v9Q=wCZfb@X|2vBIw9pi2=E!;!{ zpoi;a7I)OfY=7+u!0Q~xQKW~unIl#mk_sBCoPYj%@v-}$_1Dz1-9HGYHE#=7uXg4w zqqlJ-Pxi+SCboEB3f+*Vd)vzcw$JGc!}5`DS-KU^8ga?iauYoMUI%{cqvpzYevJ>rj(I4Ql3L#Nka!XtQ@CVhuJQC*}d&VR^TJ>{mzM_+Vj%iiS%U!Go&ThHs0;-6(V zP21Chunm4uP*{aekc@}lv>*WU_t*oxoK^ z_O=78G^JJot^XHX9?|Np>_eX61;l6YTHGpLymzAxGp>^|r<|R+4sUIQ2W#2BG}x}1 z>Dh!rEkc3-f<0$T7?bcbgpOy|Y?|vLzO6tp*{fn@dyaF$Qb$$#rjoI^Gk-h82;&9{^)h);uOUj2R1|BI5SgA6{s{aY%Te#LVtA1NZPZmxi5|ubF%l*+t)x6_iG68#p&TzrFT=DBJu8z}VhCYrOqs$&roxJ_7SCW~(74jYxjitKq^*!QuX#!_gH^sc5RYBua7gY0 zy1IBS;eCrDCEbNLMvXWPlHqfnM-nMQ21M8$K!jn4VIG%gAFqzJa~PnfI(&EX$_LSC z>H&~CEn=Mk2g)Ky3V)EOtP%!7$mx5yX+*>SnWBQ}v8_7aTc0a!Te+`{tp4&AvDS^4 z9c4vG_YSD*b>W#_!T#9Eo804xgh|_G!NpAA85K@?5G1nCx~U4MPxs3((1v%DCX3(w zA5#k8XM5Vub^ycFjPft~2<}wk4~WbtH}LGxZ)h26FVNy3hJRt(4-S+QxVQUO$8tgw zmf~mHPw#_^>5stYZ%~H^Rpkwa_3V%vm>X1uhi^SiYxbp{UHN-m4}}llKOscwJ;$l_OJ zbRZd%Wt1OxPmHnfeN>pXidX|?s9HFHrVh}CCA?*?-G*(u9XW0#(7MPM)K!J^|c5S zMz~u0rs&xWNjfLdjVt7|OF(a7TZ&#aV%nUDY@p-Cclo<3tMPUQJ^|q~44bm5fEPVn z2qry50oI~Wat%*-0}L@}O#|_aEQ6Y~Ox%n&f=xC=!k`#*>%ky6%eQ&_DY)h(2onY{ zx~m+3i+}c38p$zK(a<~30Dxsfq4T0Nxa{QaT?JleEBGKGSa)&8^qg=Keppazv;#@P zC%$g^IXxlc3~PeL=njPw7AgM0ocs}sGb?*LLWnA@pZ|)`D&R)O6|yn?TZegkLNfkG z8n~S4WzyZ5>sF{s06`Rvb}9Gi>y)_m+{o^n#eY##61EBXqnvDf2g7(#T#5AUGADYb z?R7euDXpz?J|JpY?DE zTw64^FvLXokW!9?9W=J?%y-e^7+p|Iv5Q@49nbrE$~tO|s@~eXUhUDM4*kVGUr@%+niy1|eO)`URf8~c0T2FfbUPFvNOo76 z8eWrdFU#%~Acv@)UnMlNEjp}N!n`TuXha8yd?wrPxf0K?8e+4JgdFJ_H55`P{> zjS-Luwz8a6TnPVCmv9Ke=1;9JQPLrf*;iqX9g1sp7^!G>0h-FiD0ENBsGBj%oPwne zY-B(q_ z3ci$W8NDyZCokwe=4I4nWj1T&5`V|WDh9QL+s`LjZvc$&cFCATRCxL%2}McA?e#+I zm}YBda#~L>Y&h|FZL`VVE7r;a*F;hM_7n2wKd`zuR4GlSFIV`$P?fpixnUYROaLcg zw@Z5{H3dr*QcT#K!d}%^yO7*vU;9%J;)Wrgpk?$mQs^%28viTKZN%1roqw5CwSBnK z>h(4m_~FCrAQ z3E|$JnZA@+e#VZ<|3o`{vwyzO!m*)37IkE*e?Ji&47|?QF*=h_$#j}MQ`lx zu&)My`Ira4XwR29?ZPLU9+Cz7IdXY>$6q$U%T}EMYLYZpSKdfqrYwN`Dmh;_@N#AF zY|20;pEHe%1gAI!%3(lbrCgikFGsYBpmB0L6ccrPy6C=oM7!w99)om~oH*TFjP?uP zIPHyo6P1KL4{|NQk*ffk$iK3Ow*h}@;PH;52xrgi5W=w`mTPD!ee^0fH8bI5zNelT zx+AOO28BnoZhtnQvp0Wo{n?`yyYg|`6i=N9E;l}PlvRRmj6kHP6Z9(xM^%-!RKlm| zqfK1iBRp1y{L!ZIQ_aZ4*-)%cS{CC;Ut1pQqi&0h!6LCkDr>2zrgX|JUpiMnaaYqj z&tULgcKx%4FkQ|p@I)9V({?5u8oJN5?Jnhy;8%ejyMK>I`RDT0mZ_09)7Ac7>V{dw z%YHvjqE?j*ta@uL(`xZZs}md>4|}!?aa%jZ)#9fZ6Z>p}9)z0VcM^^J5C)iq=fu&< zqL_C`5o?q5O4v+dMRe&t^tUNn&-Kv=rowm>TW(VTS0I(p=J&JS}m)kDd zHTT|b`JA5y53?VVCnjj>!YF_9>DAFLK4GkLWTkJdo!DC9Xq|y?+Zsm`@qn3N zEM{KE>TVyQDS=DqgVNN`ObS@rEi~Pm_4UB`kw|t~2&9N9tvXwh+G3zY*aF$ZjQD9K zMt^WU`!!;j!+4;MBq-ggrxc^Dp#kAMcjKxEqQJhpl*viH%Y%E3Ltv2uLnNT<&tGsf zOT5K@C(wQ&_mtJs2dZY=?x-~q`~_*Lz=3*Dc&AZkYhB##_O>2jpa6ma^{XNicum;~ zTuwpO2>6t~25hPUq7B3ip~evtt2nX34S!kreNEQo0fzA$TIk?+F#$@ks*RY|4`d~; z@ZMWwD3lMfgeOt4vHx4Non~(pW(7#ng}k(#ADw}Lwk}ZdGecJ#z_KFW8#^4lfo*Aw zlIAxciQo~7J~#>S#D=3`U;~l7s_41YluZM6dRV~agu@_O@oG;E*qU+3xdchzN5?FVHk6u$z9 zJ%$Cke2YfAN9H{3oYgRGoJIK{fm?LiYKehAF$8;CD1QbYk?Y0>_W{zX z$ER^_S48FX3J+a6PIUz>%11ek_l&XNoVzFINiu}nVp)r5{l}eKEw_rPaIlYt2BXCC znJDFGGacxgBCh}BxrZak+O~2kQ^ty43u9dv|*iin5c0*e5|IF_6)xWr^` zNKblGqP(5_k-04u(|=wbb<<@sX@kvx0E!Pondx9306K@9D|#D3r|^M==+^GD{Qg8Z z|7SCQbQh?6Wx%yZ0-1<2wY~sQShC>T^$$bN2yb%4R87rKl>SW@1iT8N)5y=*UqUPO znO%^V>tRp|hc7XqF{5ksh^@MPsTvHk>uT_?!jK;ez<~f0!hZ!pft5NdV41lJ*LDs| zwz%6a2FX8BeH~H>cSFNQH#M(Zp2gyb((wuB>u(1?I^MJj#{NLJZ0j4VD^ts>l3}?u z(v%n%db?)U%Iy!6*1WfUzq>_Q#;jd&w_7&-u1~`efz^>otM9iAX1pbofR%z@wUuF4 zI;dB0D=Lpj^?zgSqxU%>V<3r3md^uPJ4NkkRaIyxHZ5xn#wcQ*`qHWwO)>j?9sh zeJqErB#7gQtWsX(#@H9)c(2z2NBUa`kSvIOjk{u|G=GvVpTDz#{{(ct>etQ+fHO9X^)8QM0!au=FOh6-pb)0I%dB=1__c9Iwx;5 zgR79&>wkHueq?9V3_S3oEvbL6uaa6LDvdXC2g zU^ZUsBWr`HfF?-?gtY!ow}^*tM(6Vfz{VNKmVb!5Tu`s;i_poN1} zw0|cCuFcu5q|4lMBDUDkUcdZSbNkWo;FAOR_O@e{8|A`tK(lky7XfG&#?pDr2(X5Q ziSD26t?AHddhz%|YH26Y6=>5GTT;!~`)dLV+{arJ8*59g(3QRNWZ6Y|6Mol|%&#%)=JU^nD;ep2qR(60( zm)I<1vK5UePc06g2Xdrd%f#(*AD2H3>1#zZ_35{gF|VijyV9FIY6S@Q$u<&Q-+xPO zd2l?U>Ygy$=OpV+b=D9z0t)Th5RRN>TSdW1;pqk-)@$p7;`jNEzOpAC;5!T_u2UO} zR+lid;E`DDPOx^q<)`C`J9o5ySh3JakabzHYGP`4JtR_Sf0h~>h)k=dCLLA|9t?Pe+g z+Jm&!Mnb|H`?V@86wjZ&pCmI4P&K>7K<>Q=$#jio|Bm(Bq)MmZX=Ny%;(>;*?!;X9 z^{WF;-+A1@-1Sawmg#jM?j~*_?uc{_5Z+~1O*y)(pOvvfuQ9fbI`n|QNq@w}v>r}t zU7={=(RknYX}iWH4qOT@*`)^VURQkBc~liV<*t*S1u#k>yNr(cHiPa`*%3*aL~dVr z^PWDoxEue%iF_lG%D}H;WJp#1#$9Q$CY*)u33b|ylXJ&!tfrksG8aq z83J>6RRn`}P}2~!B;EI0sf#sPgZ1Um9Tjyprb@tl6o%WqypV~yc{4UJ?wwso+$H6W zu&FY&_Lbd9_IRV7t$+BS)!sHH*l}dHKwk9%!y9+c*G356t3qPpTRkI@UPJY*i;W~E z5;?T1!UGJE_x31LoVv$GF<(D9$9-Z$pc=APfrGGS)uvmnwgL|C!z3r6dd`glhL#C} zvuBHmz_WAbe!K38`>Qh%y|rf-^YcMzyGyJL@qTNyAizmIA%CHS>=B&L7d4WR_&Wx% z(PW73MmKcc-@}rLN%5ZU2Em}^z89W4>j2!=)_!fftE(n7nd<1ypatw^4h9O4%t9bTxayA! z22@51PT5A3SAU*G0WW#!upB*m0PX2+WfM)+5cSwVAY1p;xl_>B>DmM4H9kCNWkMLP zf)0^MS%aqzRNp8G;HN-^c{aWRzoowa{vfLbdI=|1$)@iC`?~bs8*c5w6?H*+DP5qk zeA;spRD%RWtif1J*2oHtI&?i=LHGgL-bkmGq&}ivG=I8w@n{+{g7^F(9uul$9ub|} z7d8QnFIHPqC#sq|jn%Jn1b3{BdxqB$cd|(zB=zp2Y%?)ZljG7i1U;wtz z?uuq_n4;Gd_?NxcX`i@lK_jdf`ghgy5GAAiM}N4p7IE7cA^FHY2gnBN#y)BK;SMlf~H9t2CjB`b5v}JWU;CjFt(fq79u4gkwrfqlBuh?Br}D&tDA0 zF9EGbLkcK;eF~ekVf(*9N&~+{fUD1-wNAO8-`h?KcDsdv%Y@NURd>&_)Y0xK%}Gzn z1%KRoA1wH42!_d578`>UU`5v<5AXo!Z1{#%FHiB~H8jNhO3uwSc(3!dMIg%0%HlN7-IqGlZUXpB8m z@+zW3RY6oE))=M~)PkNCA)epO!U9xJXn)jEC~v({95{`RS{8ZUds{>dBr%I1irqalvEDc*@KKsu>0RY=+Om1p-FVd00rVo>;DKB zei|{b?Cq!fhuo4osPAl-l7`1M7%nTaQ@q*>iMkXv*$x%}XJXY9QMmUC2IDkJu%`(8 z>&1QOHLF>GqtqUxS+k`X^?Ij;vwt}slU4Uj(lr|SX#@a2z_G6wkpb`|m?;l8AEvOS zqni#7hHKQRe}YkBLhv(~^FPRAx)lF55>rXGnNz*RM@gesqZMSXxYkf9R?Mu_U(iP} z#9_@8HIygLb^8u0MziI6EoFjf&-<9IVNs!L%A-^Yg{nDSTa=cxjP+SkNPl7u!$hfo zs2NVkm3;UBHDrS?n1S+1^=N^x{GjDHuGq}EAFv4aPIN)c3vxjavSDpU(CzU@joV7e z7tzzLoT6jlVlV1ksh4#Fm29mvJ+tO>bnlZv^boOhuah$-t3=63tz{BIE@85IeqmGT z6;P*9m4f2+ujHs1U#oV7aDP2_o=!c{44`U}k+0}STSM-npnLKV$asJUYv%jK5F-_J zs635(h@S;J(T7X2NRQyK!RMos<}7vsQr&uHSUqSk(VZE~FPAk<_-0psp5(OGwasGo zpq6{4YwiNCgp@0AV4*p6^1?FYna+dQd;n(lT)~du);4^kvx-ajw}0iCHA&l-pdVTx z$=%a<8d&S)bBsi6QS@TGx?Vy}@9mk-#N9o}WO|gSmCgOJCP0+@X z7sl2KAswZ3Xf>YMWvQ1?qc_p~w&#E4=Tua0fUjZYwpxf<^@-Qul-f6S!prq1x_Z<& zI<3Z;KpO{!MQXM;e}5v!xC>}tCh-u0-t_%@eLvgxVo8nbN3+_@`W*)+f2oQlx1=oi zjjZNMJ;;N1=L0X;5QenEvN3%;fU#F?TcXs^w36j(RI4s%43#B=63FSM zcz%X~KdKC09@4xdw{=MI;46aoIxnJezNi3+29sGhAEdU(8$J0tBwS~KB-UoLyZltk zovcCew@Cf|s%vb#uW@+N?KzcQc?pXmA}z*o0#qG`^JZQ zX#LO$Dxs&FQGbh-YTJH`b{H(ppBpPcz4c<8s&+XVij%BD{MZrq$Chm&65EUKjfn>qks&^t(VwVwl6Ey*ks18 zZ@l~2=_u3R%+L2%VtqHqP4~7HLR}onLsc;_E9jLR|9`SNYxHi-a=>|}POJaAC=A#p z2`Q~vy$~y^{;!2h8%VG=1u8vqd<70U@latVmG7^-LQlod+AgB*TcMiC2`tcK^V5>8 z7>~+c)y(^eG_sn0dXqB&R!+0$1E}z3d7F+M#s;-{**(@_ylZq~(ST!zEDbGn`6o8? zrZLDi-+uwk{<U47$9v`F;j3JVF?9rj-}gM z&2>TFvSxJLNItJ}F1Gy#@elz(LIPZt{lI*9qhSnWUeXM#Vlg zX7YK$^YhG%0B}H$zg|&^_{oN=KIL}Wo%K!Aec5=AV_ke5BaTCNpTdO#R@fccWg5

    - zJ0Ik2OY{QRWObY95CZMvIYnJz^hUxp*5qA zC&+(D`Aid1-~oZe$6bExL-BE3*t^;lOZ<~aR%Z9vkokz8@`L2KsY?HhR&O|U4r0f@ z2<)qC`{F596DE)8RQ1eFbX1yB^K0GukML(ypFC`-=;hD%Cu&3h&O2QomXgQ>_tKMhDDSj=coo;$cGEDb)4TI1 zPFpTwINn%a*m_s1NKTNC_c2-25my=W=Whs!dyxkP;KZ%eHn=8f>0}O?%5`TWCrPw&ZTk*HdXVea|hHCQZ>xe7lnT_ znWNLo*iN?V;XsXg9(>U8*HHr3zO=J^8DUf`HyO(>x5Tm5Cl(YQkFB|qgcQLvSI%5~ z4rifyscX*0Ts2JUsbV`Yuy)jj9)=kJ_M1dVjab{(n18BN+tf8^WoJ9)#iFHSwxydA zWOygMZxOsKJlDcwVMUN!NeRt7fbPO~{lwe`?~ow6sy6c29ydPLvszVUJ>dCpZ&E25)&FG#tIF8Zwobc@oH1@0 z3YHv%gQRWZ{e#>kIlqm5AIu+v_b|uZZVSqpyS6dm(hJr7>W85IR{xuZdue}^;=Gq_ zdc-CQ*L|=B*fp?C!zfSU)V6fq>FNy&k2Q5{=bH*u8EkPN5)}Wx})_~r_lkIK81P{XT+Nn~yOG{bt zNAWhajY;UA4~q<#0l9r|um55CdVLm!lAwifbQHTzZd$$J$;8>q99Yi1(wjYM1qk=a zHWFRmOKo{@JfiBK@4tV97UpsmiT2Ocu~Nz3e?t-!e>lFY7f4WIcuUHXZUJwr!X1%iEy2~PiX>=v$T-E{H$17F#c$)@W4xli(ht{gri?6N67!*o~ zjj2jBu^1&{6#1{p?QL%=c%f#iye@-_Baw@F+RUl?d?(m++gyHM_z}*8MMOk8nk;@Gf$Y;i2<_ieON7I4~{uWC2xmUm{01o z^%-CWXyl9F$EA?g$QMFG!ZsbkTjb8eO;|B$#9~C{xBGwKm{s3hV+7K8tDrHVMF>~} z#agKvve)Fw$nS>83W^*q(Hc{QCx;~){6e@3DSADy+7pU)BB?RjDLVy_woQIIC1QZ- zM0yj@52M!RX0)ye+Qy*4WvQ#TB8wfi(f_MitR_{B!~Ndb6P6t$vzFg=4lG3F%bm`2 zekpH$c+GzvP(*oP7oQ+Yig_ESRq5SKm};M+zT^K<>Xq9j3L2nDw@2^M_jK~|3^y$i z3CYRIc8@wAjzRDV4T{V%3ZyW0heV@TS8vJCI5_NW1{H<&A2K}x5wi<6ef!jDSgJCe z-fXM*;xqbFnleL-L!FTuR9xO2E}`c0M;-sFx~YFPz~F}9J!(hoz75FRi476b1UsO4 zB+uM|(HWV!BU!#`f23*=&bm#;W8xrDY68x@9EihrYi;x>g-Szx!DJt^CjsbSUP6 z5|I{56xtE{7Qp6lrVv1al-f?ua7AkPN@;%&R-l@M>#@$&QCv3icO(r#d*VVHM8cP` zlUm52_a+fQ=cy8|qK--LE@@E5cN|j;?{q!)mUe%1 z8uOWWX@2PB;EQcY$XffX%>ztZgB0yV?mt;$B1S%Ga3W^=&-B%89`wSwFOb8R0HOqz z=1OV6pAac%imvnb(F})$0#0Ic#O<0EgJIa-Tn0C82Mmz>e}zFhg-w`l7ht!zHsaZ! zwVlT?Dm>8%GW>RGglZ#~x>62kY_5NflOW#pHaMC2dYMiVIl#f~a)<~*eCcKp(fBg@ zZL+v=RxTGmOjrDDSZ8G}HT37f#4%*JnA``XwfY*N$K@_L#vzfF=^OHNt4dyCBn|h~OS8k#kjh z(4XD>W5ly2g^4Luars%Gry)3qm{P3dEn`tlp;z#;^sVU7+-sg7TzoRZazS{R$t-c@ zQ~Enh=#S|6%Yr`%jYqAkIX!`2O96)y%(WjI zutsP31Bjs4dOKxh9N&IO?H}=yuT~y<`%GsLQVfY#0qhXJ4rMW{v3mCOlHx{V;6f`Q z-6{cItA-fgWTfN;n`M;%T*0G=RrsbHDZwI~MXUWzN?74=S*B`c6D>7p1p%ag{X8MX z`HtHHv(2JQ<+)EyOb>sndCd(ze}h)eL8G_W6Z|PES1V4I6uA=*dZoZufcmYc4lgrP zD{TgII4oehOhsi=6fO#)6GE|v5cYR$b^Rdf8St$~!h)@Po6|6u-c$LWmH=HqvwceC z6+7|T(=8nlV)k9o1ZWSN`ks?dSEG{BbB}~*4Qnd4&;KwY(f@zRA8#ycD1eOXo7UmI zYo!T&kNIrqrO5gG=>ZcRS5cPKolz|pk2AV>-z4`mXmaRBl?9y&67cDB4!}dw%wqlO zLqd#ig)k22X5}YQnKb1ktd39+^2d0JsG%00r(3mqYYL^Zf$Xm@Q8ypi9`#gWAEvS| z^9+%kYl#Vm{p){#Vnqbm-$JMjPFMrx%>RIq50%4|5Snc)>5%0pbvLErS_FPY%l?h* zfr#JBJ>JumXMZ_v1jRXem?x4PWT0zDGB6|mA~27Ru}}LoV+U#cYq*@wnC5cYr-~*O z7h6%U;w3bj*^@(!QvDl^>7DT@vez4{U(}?-*_z z4p%IHSvq8&o~c=NWDGA(dv@~h)tQ{%*!6CIOo2`JS;=AxvJ2y6`Iu>f#`J-}4M1kK z8dgQ8$?$*G;zFfp&7QranHV_`%QiAXvTcXgV~nD3cH!!-(I|mRgESN(MF0IDG8hxm zhEA&RmmP?r<|%$G1EwCI@rszg@VQCmW3)b#;RqL&P+C8ntGfj7g?i-f$w1D34I|K%(6AGJDuT!isqPr)H(lZkvRs>Vv3^*-IB{d( zr22~uQeK3f**U5g^X)L;tSW6jP1U3T1n0()oGbW)qk29&k5qw8irHwG7TkIyx}-&e z^uvEx3gS{u+vn}JnBJiC(5?A|JG`ai01C2%T-(qIq(}jSnsOCD=yhntsGy=OnNb6X zj#as6hX$**ieJl|R)@pU4PSBl_)nuS%Kq6Zf~jPJ(1Nn6D*;2JqX$WB2_@=_^kQX_ zt1uMhCR(pTzH%b=3<4dYqN5z} zGM6BKl@mMTDU8I3ksJ;DZP3+)RbE09RPiR#0wc4HFQSI*CVXw2KRmaUq2Yd@e!(2w zFa)_zf@}IMl?b;1B_1EK=862SW0tcVUN86YvG7rwdHP**9y^wUuxAxinJe`@kBfhe z2E$10GuJ3XytnL68U_r3eo37G7?*6z1e=#$bzZf8SLGB>)rd0@Z~C~$7cjW`Db9=Mw_zX5{M9=rXcV`A3`=iGtB4D>;X^J0~+ns$0g`S^=T$%I=ZFaBdRsD()r z_@Wa6|GZ-h2@njsHux#z9Ku&WZ<~Vwj4!MEDk7ePr_~&MGc;1?&SnpOQVh zs`0BObMSws8-1$6DT%4$5QQs#lVs;lWdF%vJvB1i?*MM+3q#<2qT`A_wGnN5d^0v3 zs$0P_ZUiqHLMd7-d-?g%RUY4S{zABM#QJVY1lWp!{!An}YkZE3`V@b(s?7)VI*-{N z8mPu8{iBP(%StW2C;z24%pKUXAu=LbkdM?Sq0tpeU7_^@*IAI5A#?B8ElV_9NpPlt%hA9IdSBr_EaSA7#ZN4WSBy zLmzKpdGr*cCCuG)>fP9E`FQ;Q({rejE127WQVl>L2v%4lvU*u(zj+!{l&MN-s_4>| zH|)gGb~QQ|eqos}?M`Qgwc^e-1;9cHQ}kIkIS*KrLI;HBmeqeMt;X^B)A}f=aLfy zLs=KiToX5DP|tr;GBtqgbD1NS(%;}#&FOmq*bHZ_ zw`~&m#`;!L#d`K{JMS_|e@W-u!M(8zkl>V?C#Nh;9D^{yAwZ8VBW)58qFpsOQH)D) zq*@b9GaXSE&)R--V^p6VVpvxFYz&1R%XBdj<{9MYx$1xUhw(?cHbH~%Y{QhF`O6Y9 zj*Z`e^1s2iQ73~Lh93sH_*cPf=hdK}Bs4C(w(J*cV2`4}P3pdPq3ZNoK#m4mAc?^f z2*n1yB!)1c0bfJ1Vc<{CS;zGHlUz0GrB^HXQ?>=zUJ-~g(k6rDT!YpPi4WJ#Rt zF0r|P7vQHSvX`9;c%p6EK}D?IrXZ@HTyZUa!eh<}sleBh5RFb3A@m7jLvrsCgkM#p zgyDGaf7L5j_8NF)@VU1`nO?~02%)bv1d%E_jbvnPOvS=ijtSPmA zllOm?09EO?Tf~uUuRt+-AngqH3v``vik1kBT$tytBw|*Z@Yf-SXUeog&vsjibw`2> zrvw<%#iR|E0RlO1)#Qp${jV_lwdw-#|L8--9TIkmbKMQ?w?(e!e<-Em`GVps&`>-; zZ|)y_I=8O2_q~k|4`#SnxXT-!ehCF|6sC2NlR^&5#D|<(K7VoEQGs&Q5jtLP-_g7 zPn91|9g8%nnDT~Ym+GDTN(GW2m3Dta-{PD+(t3Qf7<{M!i+-r+P7q0}viSV-d!mi$ZK`e9gI=K>rXS(9-+(5|m)lS(A|je`hY zCW5AC9iCyk4a9N-l2J-Eb9S+&8*@M?6gw3ZF#v?PQQ?=1woUI)l|jw>8N*xRq5706 zPCjPteClh@x|-iCPAKq)9;ntu3M7BHZ${Va@=arKzpd-;Z>K8=E#Kq9V&Lk=6?i9K zP=X&LV<&!hZT%UEl}Ib;s+Pi-7c$`EL14naG7y?~*aaTFg=k5Nja?Z)3Ugu;`8`KE z>-5tgAjFlM13m4PDwPAW;OAz6UoA9bww;EFv-MR<854fk>fj-Icn9!rMBOPK6Pp;j)edhde>~GWAPV9g z1O(hvL&nd_ZdcHXXGEn{#a4eci*TUMKV^9|hv*{(YTpdAaxkut623Lv9^WH$=+24^ zj>`Ga$K`Q8V#07^8~Q=4(lD{$&epb_1D)&noOer&wGs*QmwemitOqG>WzQpq@-x|T zYz0tgUhcrj5lwbA`DjwT6>2v!Qu9PLP%J1J)+SfLYQoI<$4tuDxn+MJudK3UKZL8j zVyN>KPt8K(0vSUUcj!GE2qfDo8lhW}#P&rDCph|fHFwC(TkNYTWnS-b9W{;!DapPQ6@8zHibA%KI=p{_#~n-aA+(}?J~dma$n;2D^gmo;i5T-4db+6KIlI<=y$F26F-iEb7sQ6SN+1H+ z2EG-N-zpCVT)cBNR+Wc+@%nRHXP|#Qq6!h1EB@BMX>E>f#m6no>PgiI@VAmi`IcBm zOMqW?#>K`b4wHWaAI~sJhv3o^ z!lctk-Zh#IC z_AzYy_*g5vA;O{bZVIn}E#KzMSHjh?f(?$N;{8flzpND>E7((xRPp1AjFp(;?e$#<(b zjEUJhKWjj_td~a^(KH$mx(Vt!{Q#n#3$)b9Sb1}m@LGxr=_B8vbXm|}UE2h% zm^=%m+MDz zhUp}`j3w2FUs zGVHpE1kns@%c3U>S9#3wczub1+cpnYb`+R4s90r_ft$lUZWnwBMt=J8!v(C}G^Qu$ zfu$B^e99l^Bn%hjY5d`XSuli1>?W>YD=Rc*OyujHd1e>Rb(?DSBhVO+6Mwj$we@uCpf3Te=vX12|^cK zN({u`G`F(2+!RN07$KN6T7rsiAJ4$jUZ6$+F%%&Y!iCz^g>$xTPENEgp+69j?3BnB z4nQPdrS8h8yI%Rl+a#Ck`D*%Rk!ov9D}%Gc$Hh>GRH~&Ua&Ff8!*D7v6uMKSoe}8v8oY+L9`IvW{qawvfKmT9E`hEOq?U z7$36mdi7O6D^+gMUIPsfYy+u#FvFZIzv$bR~nt@=Fa+%yYB@ z<5h#tg*l7cZMij}Q*D2q+ESL<(1a(&&k?HIifg54;7z{~6JxJDOq4H=vH*P#I82O{ z&Ft{Q1nH$<35>vu)7l@FOLe_8oknri@9}RS8+I9$zGs7{{z>T(EAHxK|L-1nJU-K; z!T-r^QzY%Og?r^9W2N2^@3;*dzjy$JnnzT+|C&Qz5*o%Lyp=^--ksYDxP177q zo+FWo33ai)#TH?gt!M;+#pW!Nc`kzZ1Amo8D2yJxo7G%VuRRvm2o)asWceUgC9`a! zwUJY@McDLr>?4*(*{*8BN!KHoy$~;MR zMWIM4S|3_qK-ikKj_a7*s0)4rIFAAFd*}@WOmO*M*HAm`+u;#ALdi4ACQ0st$M*DIw;VWAZp(`vI_R%U?9t(z+k%)g7LZp!U#N}kyLm0WezXtd2|K1We3d$#r_m+RP(A`xNeU|ammeV>q`MO5s-9*(a zlK>)BYmUg%-ccIF%wgMVMP*grAk=|nbaQAih35nCMuqVQ;TnTQhuenrPp#M#-_x-= za$T!_&?3QQuwW#f9&cA!SAp+YhY|HM{;t z2~~e0#NI`&1S#THj^P?eua3%mBuTqvLu@eLMr<1oAY8>nbrqzZo2^Y_%`I9$Dq z>Z+*dc!r=j<|rW|$vBDZ_^Z`eO4S#Kx{!Y-!%v0xP=7>jF@Ws-5J89C3fJ&N-KvEz zy}NYHeLOm31G%SX&Vr$!OSM5w*%G!+BH3rDQt7tCl%X2>n5BX@R3&2RU3|UD}hl8 zWo~41baG{3Z3<;>WN%_>3NbM=ATXC>DFP9&s*sI{sV1&Oj6gNV7KDNxeU0mQ(< z$jl3nS5S4dH*w%%Pz74L*_pTiSQ(j_*%2rx#9V+TAZtelaT5@b7r+Iw0w|e*K7UL< zG?IF~$f=txCoPaC8ce(%Jz?^I;<9 z=;Y;MZD|Gi>w}Gf;jgE^)}o96Srao`M-Nw9Yk-M^IY5?Cff1nS=f=pkE@A05CC#<1N!;=Z^6H>5LmbX=GJDQ52AlG3&KC%WgILV0X+YLKQj4m(SK2Z z`kzLn`RGz}M+ZAEfPXpA0)a`<5%fU_>i>WG>_1{jy4l$&n%D!W|Ffk3sb^wuZRhoG zn*X7p1^k;UwW6boy@}m_$gEu@tv!L}%GMw=tA7>tU$_j& zb|1X`m_62iM;CyBg_-p~WFM3?vvmNvx&qkP{}BN{%J3fve}B~eZ@K^`O%)AkEoHj@ zi!=YINjR7}np-Kg$2#>%UzN z00KRMW(X^bj%IuzHtEe_<^B>y(-qJZJdCGRID*=;iGNTlnbRGg@x=3YNP$AdK`nt< zl*Nwn(!2)#sX-2<+7uz!c5fT4Db-WA<|@LwCjJWkpHU=4#_}{7HG;DgmIEugNNJ8_ z^9ps!*k`la65EIX8e_*|JRRMSv8WQnDmLP(9RhbhT)9K!Z`JIWA5j+9SZI^`cEn!wXo;lyNh2R2|b#s;4mBT zM*X-rYMwX^xcXj2gB2p-+}ppPhCyzaN&sRg-&`Ps3bOFsy6mn#MA}PLmKbgN!Q$t7 z`~=$NIUV5VDTL35+Us=Vv<0(CoOdAd4c~ttZhw+xTNnSXC-8vJ#t#v~kPSA0vM_k) zBb3==*0cnVyR`x#Tq*u#v<4F7s9V9ubOqsbsDEmtXGf@SRxWT}at42zp<*TfRsi@3 zh20ey2fmn^%BF&s1!v@*n^rxCOr>_PPdn7fMk#I5OQZL5GWZcYmxHWL^TPH<9D=28 zN`HK%T50z?^7fNy} zc5)nReRzuMR5JoHx-#5c<_$hdEUIdms}?k&PWMhti?;A4A$zR=t=!_hC%-k{!+++9 z5@v5OzuEYDwQaKE@n5w@EsBn9T6LOPzK5}q!>}o<+L98ol|y_DbzjA79T!nYd4x|* zVw3v`mgg8w@;hbwjGj0L|6vNz@6RP&J|CYgl^XR}N)ylObjLH;Y_DEN2|5EALkk{> zC7zyCB)diySK3}I6O#kvT0W(TRez1cpW7rEFvR{Vo0<1|?egR@sBKqCIE9T{yZh(C zCvD>is@0$XvuIS5#$7fM-G}nhO7ovspV;ah>I`PUqTtcK5uVWUG~nA~QhfF|R3NM5 zfLF9btgXEkZszCSzgmHJ+49$ak!d4mB@QfRzd@im7=6diAt$-c<%d7_-hYE>d?;)` z`u+8S!op{b&Z~69XWm6rSFHBJqXO^&KjUl?A|lR*yd-{A!4e<(Ep3gdf+^clzReT-8QaQ=y|k^>Ve68n(EIzc z`}V>K`bGodebG2^ACWWd*?)Yw^g}Po+Ie++;tA$KyU`kb(ychj&mF{rt+MzwDthbt zBJt#PfeBOfo=!JYw3~SFC9M`gKmwcFhU6z@ZFpg4i6yLf;g%=DJmf!={VAnw{Qkdb zP>~~}8-7ELS0ug_pE9-cy2?!YRQawzPFK90ATKw-9F%1}a{`j`UVkI5bU)X)51qew z^)ibo8e2fdd*jY?c4vjZok=ADbN$;St<8U8$}UWcJ4t*`=7^dy*zyhkIihf;@-{y{ zJ1cW~TTe$4LLVQt#sJMifa81Dy=^jV!eCMM1xInRjQux1`2~Rpz7iCr|2rhgZG4o= z09^?mmRvCDA;Z)D(tp?*5))-~OZPi<`U1A4paSml7e*AuL(Vmdyi>OZ+`R6xnn}<( za}B+x2Ue@cX5f#f^Nz7X;E-b3_C#lgF0{zI;V1c1RNjQ_+_?TpbaIh)S|g90pm)k_ z#nUa0cE=}W7sx+S=_yP}R7pq`^8%lxPst+uu7l3{3(50-!+*r8<^n!TtV{6>Vo5M< zb=Y!Bsi==mP~`i9-YRIQ11Zse@N*fq1T8pHp~QGhl%xE7T9iD+ozvXMmDkrWs5U%r zMMwB;H8Za5?Me?k@pX;z(-I_;IN)f=^8x1x{>se|43F1DyUjMvzonkw!oj+{n zL$Z0`HUJ~T{(r27$WfiBaRE6Es?=cPwJKFXSnLcx>O}QVE_K$qJJ2$r$vO2|)C-I- z%H{yEWtvd%v$A(9eva${ZulTIu1?et4?H9lUM3a&)`M}#J%AnxN+-xJHQFfm?|uPq ztlbTID$D=kjXZNagNWcQUI z^(+Q=OrbHLsKRMeqqS)($RBQ~%-GWR>1sY0X!k?^TI{@$1oEpUX33(!o)ktT(sSi+ zA`;8e8uf)=pSOb$_Nv1qM+YXi=5Y_*R=|p~9rnEX7PA(ManE z1MyriHbIepF>FUnRs#EpSIQ=S1y`o&*)yi+H-DyY6zJV};oROd9LZM}{k$9O`Zlef zNLmF+t-nxLrt#XC65auO;szTx_^aF1#%;m`*s#H>Wv0Iwc$l9wpj#9s!~S6x7}Y%r z%y>n<&%!)0uxixXbhV)Z%JrSWi_yU{Cf<*k`=hh;Odg?|u3C)rjx<4LB7kq!!av8d z+mneHco%jekl53=8m$2Qz#DhB|LCSS6?K&B51HJBI$yu{K4BM zUDya}oii07UVu>yBB2;wsznyrd@NFEx@~&MdIRtt%!~H>B$;9r4tBaBg8upUFh{M{ zLMmU0Ob>{`f*{tm;6AQZwZ;wU6%Oo-v44W_c6xVdf&3>%X!Y(**QB*JuqM*>j~#f0 zK`v{ANZ&0l3zZFzOGdu(=EPrBd zp;c;2m`kr8O1oGNJvqj_?~wbn;)?z6KYLmx*WT<@O~EUjt!| z7NkCVGr}qWv-O}&ie#B^peGL0bsWD~L&S`wUaGSKl(s}9+cCj@Q0^QfB!-!SZ-pma zvXPNSn=&$EuO>f+qGaOgf0=UXOn;ck`|UTT80O{Ja9#SS^T(F*)XzI=COWOAOPp86S6{(Eg?2Cy4bN zKrAxMM!xzY=TVJvZ?}6s!COY_Mg!4WMSqup)D{mR=lo{U@2Dc(b4QNpT<`o5hH(7c3>XLezugAL zhEEaPU($(^Kq_mMQ*L#Jx(ocV%gzWB4W2fMc@3K5l&NEM9gJLcPmXKI8gQb0 z$J7eu0B9DsZ?O=<&K{MEa2PFdfO~>4U4Ea>+S!PD`NQZus5vbvTuCRo4R-0 zL5|1ow3jm0|Bp#aN#;&NZ7;p3nu}dMB4~=o_9B=dnReJ%@LaL7!zx&T=qh+l;Ozjk zb`=}taheP{wM}7rP=7!VV=k&EYq+NYQIpjq ze}=oEf0$z$j?+!VZ1W9ve8U!Ry*uj55|i>k5QPUQa>h?+dc9VsDWkJyht}nL{!QMK zXa`!lm(Z+e?x9rdyFwGh+W6WcK}pjN3c(B1&)SnKwSwqN8h`p(!n1^123Fa1cWIS~@SxWtAIhf;tY3=}8j4S`0Zcuv{)#qs5)A9=>NDSI_SK1H z_#t((CW;idP(AV~SabH>zEmU)>S%0F16fMW=j@m(u!rom=3n?Rbqt>lx_6%UHv$pC z4FlKcv(FqIe1BhCB~#}OLW67AbzjpX#0Q{CdI*HRH!-he+VHFa_pH`=qt>C}k!hDK zMDn&{xctTA)@p+}C_610QK3IwD(>9awn}6>iZnEy>zQd0;~l^Td`d7Kw9ZUGDd&lK z_qiUkX(hxR^x}=r-3&MPw2iS{tXP-O(~^cZ7~r&cFMplA=Y`QEwXu|B`%kq9F;X3*oDooT# zN?Ge3|E#68!b4j{r{DmbT-{<;+H?SeiT`p}!XdWV&rWfwz-9J=!%B(wU3N95cZXdS z3TnWP034;xXtJ}9@Aq}M;Oqmp-n-dCT$z0wf-54%Up(&$9gqPVr=O;N^ub}PnEa6R zeShYb_)MoufI<>=C!hGeJA_S@BRl`V#{-8usyw{jVv(*S1plt;*N=TfgkPmn`?f*E z!I!a5+v&NPYZ>%fv-8``KDjC~!9eu9944X6%_$*My>O1WAeo8f+xx=d3nm}K3I_Ipp^gLGjQDi$m6G}tA#P@mfuZuOc!w0n$eEB^fp&k! zaj$)lz~(zg_t=dmfS(dT-P>x~p3j1MaG+55tvCrKl+sSmddoa(D z-{`cnu{x90OGfMZhvrz^T@}lV;eVXu`Fusk zc-JSrOvs00v%k8ij~7052XeXg>6t;7rZ*&qy_ATh=HZHZ`?IuPerVCQrG9s=GECFw zm=#flof}m!AWI9TA!#}F{h=6lR`NRLJVCkGI(9>;5-L+GlVqRhW{)_P^O?jP&B&ToT~GQ(qH<=*nsxgpm%9JHxb=6t;X_BynR5+~PR_?nO2x_9e&XqHmVd3H{EP=!c=sjs&|lL1 z_{DrDCX9~#zwSuS#R8je-7+-=U$FcRV5@5ViK&h{kZO^LSb!bBE$733a$pc5? zq3|)($2NhpP&QwW=(p2d?W+qkEl;PMEJOFNy350IZlj*JQO>gPuZx9(!&jT7l}kwH_~4VW!5U-eZ%>g> z@s1n`59tM+s|=yL>s=M?pcXjw$OhHJCbG-Bt+EP=yPG7O*2-n{5)7Ru-}!& z^%6aIq+qJm_1Whc%M+>uN+xS60e6NVv&`gX=ug&k+J6}^`Z!iP&aM3}eNATfmJ)3t zt#<`KJZ?X+A%a6`)Xn;A9Q1&v%B%$M8?ehG$?&8#B!S?NFJ%1dh>He38aqhAHeAVj z&bC_ksy}m+n3JfqPH-mX+CKR%fGNdWu$PM-;(DL$s z;+V7;0Q29l2DXW=Aq1Q6X67heFvft4VnRZ6MCW0>f*i^S4524;@6*~JAtL#|@Z=!n z`R>5rsSe>LRu=0Q9dGBU2UEnfKDK+y}m8976%g&C2Fb>VgVOnfncSANX12`Lm`j@%}| zf?>vtP#dB^{!7@sr8Y5K-5Fe}fUlhU38wQchzZdrwH=(GZLMn%t;&>zM0qkBvfRu` zmU}vBG*8bzgs?-`ZPG--4yh>cQhnfzb_LF(UGB<^OG42@VEhR9z5y>>Rr(69<$s{} z0E~U^P;G$?j)Q1tw4*z-?~GVVmWS`9z;vtBB3dCA39_2MFA2k{iQvBIELm!z=o6&( z{3I^LMV!DaWBcC!V(FZzYy>Zec$i9CL|-B_9bp`LYwl+$dp>|KDC4-%*HiF_M67f_ z|3W#qo%fFXxbvIUyhyEosA50QReuwY#>5=)C+e>);OD`JTyl{?+XQ&Q0yXFI^6;GY zfF>r2l9J70gWA`}RwaaLuMmbm6?-B4DH*C=(vN$?$^e5lKZ54$wpJ)HI9?ElF;YL8 zuGVigg9p(a8;$LIP=SgCY)ewUQ1c$Shk{rJuKQ`+FR*VS22P#oX1~m*n}1f-$dgl( z)ersnxx>G{hR3#6vMxEd#Y6We$tSZK)jPM{l2Me6;^~^q@%l64tecr$PyM1yGU(83 zGF?M2=S`hvYpzgejjqbRKAK);o5g_(Ldfv zH&p1LBQ)>iUIkA}t^25@V1Jf4!k3PjW=NJ~&4Vg*j*h?%CXL$?R+jFb;4P(t2MItO zvkgXUd$26b3<^7#GUdg(kn{~l#N@Qrq{%J)+FR!TE2fsB4hgQLL8JQ?>qzl!F`QZQ zN--3fx#N}2My4>4aw<`4UhaGXu50!S{@nIjl(mSw1HW|m0`9_RB7f2sJ|{!{Qmmbl z-c%9# z{^5s#myRtZe&BIpM5>6Sp9H>P`EX%^+Nm&|?P46Q8YO}KI;1l6in{F*c%>MAj(fIs zR`$kQa&D?_50X97I)B(qf6bp9jh%P`j@nCqPho?0%{Stap_@tDSAh_};yb(+;_7dB zSZs8rjEzXX-7?oG-kYQ~X&7GiCyCt9nerG5hCf8*+8J13bLQblZI1H?ezk1kj9Xen z`D1e>qL_d#kIVD(LWIA>PNin&xR^(7L{!~VU}iy>pyAj~I<{?hY}+&qaNws-Cy3MnFl-igq(MppXIJw=R-^51zg{_q-O}`hW|qUw#*F zve9~+mm@cxfk|lIATOov)^ZIfeExH0Fti>W;^=Gc+{F9ivtH=is|8FPrF|Z5eHhgL z?k}T~cZ&K_U6g2gqMAa`R!qvIiXyl-3rptV2h+LB6X$T0qW{bVBLM^*Q%ZPF`1ZbG z*!-`T!!K@m&?aU`f33iPrHyJZnH%oFCVNHHHuLtd@V4u5@i| z-MiUbk|{L){HzP8G;gVssiUIjjZOjUlnEjt5h10KbzTrrp7V4xftwa>Qpg)Uw~TL`AR?7{^o&Ax5qG0sqNAKo?@`27lb(ETmq!u|KT z=nO9xQ)85*B4WJYbXwQ@NjidHU)6Rq{&>~ zl)5s{#ShjLmv74fvk<1Y?AyH9>0j_`5f}Y~JN`Z|-hRT;Y}T^52RZ#&1mUb$JJtsP zx2v(qQ>n2R{7VdnwOKzt0D-Sa{3V?({Ivstwbn^2tjr@RGEA}gU8j-4AXVhBew%MX zc+pZ&(Me67p4%4%q+YSXrqm6U$5u6Cmaf9)#M~Zq0a~+ySSozRhE3kzk0O{*3T4G( z2Zo5bx$lV81eLSN7!yz6py7(voy0a*0N@I4yVr%R=bY{DAU z%P+!+J62mZtYuhz8lJzGTiVQ`UZdw*7GSw4fRc2h#B_j5+9DtF62-NM)JqpV=vR=`L8nV`HD~f zm;rWOEf|0A5;?rHxPKX|XffCjs|eWdhHR)44nw zq^Qf~-#@>duUG@a(r+t|wfoQkMtU0UjzCc!p>nVRUq;02;j2ltB=X|dMfD-pxs zDk+SmJ$aOd@oA=oTn!$mDQbVXmT6xy1W+ggb1oO-vAKr5Vo;ESYdv%SWeZfJmntB< zwq*^^mERJRUpAYud4wq6_D+3;ay0phxbHhXOlbEZ_XA#F4?d`I53TunhXwBDiK_`jhDCXp`)$> zNQrqC8D6`M)b#8q(K0&#Dr2giuOb)oximj2pe8s&=vM5RueF))_e)tRujqLk%lu(r ztc91UJ{_d4^JgpdeU~9xw{BF0$U?3G1_UuACkv9amWi?>CZpHiqvt{IOGxDp4&r{V z5cZDAd(A*rGqJA&9rOmaba#Vpiu}VaAelq$rjt4_y`-cAXgUi3Hn^1tsD2@T*3XQD z6K#yMRhF;`@ur;F2%VzHl^O2T$Om`zGmOW;66eDlc4O-L+0%r0HqV9?Z@l1f zu{svja(T7IbdoT@6>M#TV%g-2aIen3S&utKYzNI%*3Rq>zQp^qw8k#iPn;rEYe4q& z$<}rT>ksg_(~U}k{r2D3i~FLIb+k&7Csi;Rf|`8;km)zmNSwP6|z5Ka#*#2%Ph zC;+Ufpq38i)G;9szpsm=Y~1m%`Ql}RevUp+CedffoL&pS@enNf0j57|#0)dLkA9iVoywa;mQ-5u4`_N^+!%3s5t( zjkW8vE*YNM(1u1y8@JhDTh34Ie}M=HMNfV36eC z?W?4%vfov#Q32u{ndoC5jbe8V>YctAlLIaz$Yu$IoMNMUs4al$d;{m^Gi>?_cJ8}9 z#S0O;gXWoY>z@4=>rrdM~s6jcC3JcuEz27isTm;B(%b1VIo zcUf-KR9^RY(%F&hogT)RCRYOMWo28EO60rTCvUVT&v2F|U4Wg`sc-(eYNU;UeyH4e z#aVoddhLuje{qRSKWy{liHcHfK~-@Y?^fC`rq;nQOCt>tm{uhum8Ph#&8}s+4^`Mk zBFa_(sr)S+3O_;(#R4XdS${c=824+9E9d{}R-Y3v6sZk5T>R^FQf|)r+<;7GrCQ%r$c-l9DLtd zY=u_6j4XmyTH5z-lShN7J%&ppfeFO)>X9^cXE5r1J2*Z*5Q& zv9sFco4@ZW-<7iVVy_#cJW8`net13# zdA0xPdKo;uZFB>N3)q@p!~GS0)c*YpAZAGF|8VVSeq(&0&!*uU4b(^q?>Y$p-V;eF zV0=gd&OF-v9Eg>Zw$!A8f&Mdh6#KapK+0&$V5gQ7=E5{F(DHywD;6<>smdWVGHbh# zoAAOJ(vJdZfj}$hAT$~DEf_3LTC>TL!2E$$o3?Z75jH<1jKL!PG2{qo-r?m0c-wdI zYh$z@n0w5r`2*J-t$$T|HmGDFjyU{mpo)@qtE+nEfjfM{FNNSQOBaE)>dYY6V?(>SEj)@b^eq+ww^$u_G^=uZt+y~S{p_x2^if5aM=^5%hA04-ulO*mlg$HaxPm3sH9^{3A^A}5oV^Z z_|Gt4t9$!t<;6Kw$|Q&Fhqg7Lqt4>X1UQE?>{+TFhazNP$>J&fOqV3Bt}R}x5*wcD zdpj@Gd6lD%y)lm&sxz2)logWd<58^q&ntZvC_%C+472cksRspN!6}Fi;8(+IcOD9l z4NUwYGa6ml?E1UFO#&PaTfjDW_<3ZIGQ+;`ybn6dZz&hb)UAzQR-wv8`yIIGt?}E1 zdz|hBgUvQo&h5W~r*HVu!e-V-j-kd1Oom_I(Poxg2bY>;<<;XO@nhLRyA&E(hB3b7yYPs!V z6*fapyji%B{0^A7B*dV#KTFb>_$OXbD53F(7yAjxha%b24YAd3aUW+gp2asTA%*n> z6NQf5xIO`tW-<9YJcxf?XZ{3m*lMUO!CSJ|80TI+#E3OJq|_I`k*Gk8_IiXijv8T& zZyIaWOFP}ncy9TC0zQz(OPh9l=(^U;c)-F^p}Pt$g+jzVuG9 zFNPH0HE7Hv5TWu#&S{a_(-hp5P8ws95c)GX;DT44R~0K52Ojo*4z6!4XMJv zuZqeBK50?sf5Z^hb5*9b)2BphdgL*jS1T2#bYYgdNbL~k zfUh=&S$2K{zya2ov4myld8-7^LyFRu*|^$0t#jgsgRr#oXSjKmD3x%V*t)Ph=TRj- zA>lbJ%Sn;vUnA9PBZOzrX?l&8LpK5(h}UO=GVbji5ik#bp|(U2YcnRskkkyu*O^3Y ze&Xjc25r6Oi(rZE2dUi<=3|#W;&>Hyv6S#|{gD+1Kw+F-D}wI^@4wC>3-+mTL~F)V zJX57qn*7?`BU5S$|IgYQo~_YJzzz&@Up9{OovqSqxeG`tSF2VuBiMYu$AA^$tuTHr zbGDpLUfZEii}&gI2zovZLzpxM0bbX6{P`!ubd`6n2djWW+tv2JJ)}dFHErDi}g!s`~&k*^Q8Fpha ze$lx(r2>yBDJ{nmEx}*nsAu@5$9qw3kg6qffL_glV^(6SvA6cB<_{4+W8W>!Orazd z%f^j=R8$jtByHVDRnWg2ZQSjCYmenaEe5oI~y*EDCOjRdY(D!B1!+~}R z0H;c_p4jc_vXZ~8h!*x-NNF~G78NM zMWKPgF*n#e`CqlJcW-7P0AoGt41P5p4neJK3uT_aGewg3>B4Vm)t#*wOT-Z!HVebn zIXta||KO_r($4S$ftscPOt!6Oz@)$kx`tIh!?hVr69@;CTUbeNE2Ld{oA_R4`N)*) zs9wXFmR5bk278x}MIKSpNI@_szMPl$`d78>?>{(}W_?I-b?f)~$L>Uh9Nj~v_=NDP zZDEI21#}JRxL^`@ff3*p%AT%QQ-_y*`6DeBI;;>J-2Gk9EJ!aC`}kk|z;bQhQ(O8W z-o425;0QU|5@xh-(C3;Oa50Z<=sfSO zdMllFryse7ZU=!a+FIxOB87mZy0WOz>m!SpI?Pnybc>V@EAw3thbl4&i$3R}@rci^ z9D=VGRdMvq`^CbS9jQ;jmhVWSKBlf;ughhZ0K;$Xy;Tilh5{vrZ5NZ<|EY>X?cIcR z3U3(~y~?RLWCwf)*lDILdi~_`pHyZ%)lIpN;Dl+M zD@;JWz%@)`BX@ugxaLHaNzba<*-_4ZBUy!#bY4MEH~1UqrXI$Z6QD}(7AH;O{~IyQ z9X(S3RfpQ*>Ngx-OsqjsdrRk#ONeQQ%V{S=r>pIx>|`V-U{;K!@UIQ-6zjGjPNq3K zwDgl66^}6ynb7Y{M5-Zule&g1w3}MmtfjTPko>grDdgGT>L*U%){JAcu)QKNqRF(6 zb(!xd2Uk8A;VqixM59|3h&38KR1@&cXO)|s)HFq>C7b1Ay^1z?infp2V8q+?^H-54$Z=#{N0gr1T>Aiy6D?)^?0HPTV|_wTut>=09aB6Mhdoa+!i52xrz@8`Wx)}v3~;U-lK1xAXi!s zb;|xVKqTvWS@IljCZ!?7KC1=n+NmI>9>`WrlVpf*zy9s^m=`+GspkrXN3Lz0Rke!5 zdx9LcKdSmRd=pr=pT6X?ppXo*H50jn4@dtMcV^FE*Kc1!({c@a-)Dhk)upPmNn?>L zjx$qv%{EX(6AL^a)s9WY{9g|(=hn&Iu<5Y|fI7SFVsBy2*^@QJ>Ap%71pel!oy&fW z9`}2WjQDB5enmgzS?_wBZ-9i08*@Gn%ybIf@Dv(5q}%I;KIR>~efa2iD9{^W zuva#+@{s3{?!!p!^4+^e-3oAYv9UrLU@N}6TuXw#X~Q*gXydHyPIY-W1bcW=ue6GS zmNTJ)sqUFx0e?gYoFiV6VqK95AxhvcDgN4<+$a8Eq;Z1Nk%FLvqKRCqRaiNWM~@Hu zefdYalnG|399R>!PuKLuVcf70bws_HzneH!RzDeMfsG1@QS@KNfC4u-F8)exfUOY( zjLt;m5=>k;e~C(H-qv5Qb&Pd>)d~+f8!$mzEnzQgU~$};ipc#hvCz$ki`L48D{KGj-u9U#ZggxWM(3M zv5J_>NNmbv&jVgQLnBNP;rD4wK=60cx)dtbp)8gHu&5b(5<{Z=AEE&yq!t|N;=fXi zVWC0vUy2d@h=0>=^Xv&G4n`M1azw0@vsBkXIocq{55_v0ZXE1fQCeF;jJF5VtB|VYl8g(C8EEdeG&}| zY0l1~wb9Y?Uv*K90ojwW_%WBxFxvT31|5N8XsSLearGvSz#dZjjq& zCtD!SWhz8^D#&e0#cPyl0*nzmyMHU}_t_xjLQ}_^#4={TTG8{M8zw^rX%HcDUEj>(H1q;$ryBaJ#mbbScnL7qV zAx7@P4$)NLx8q_+lUsXGX^Qs7G=n1@+nUtkJ%83EM`n$6K97d70rslQ#;)32Ed{SK zn#!IRgtFQ&4^yFt2hTn#B67fdYuV9J#4EKFSKHbe2a z=#B$k%*1eRhDDzn06LUJI7r-=3G!;n64Y({7=wekeFfDOzd4d*Lxoq1aq>YODAjit z)xqCNrZ8jyC*^$!rxyQWz0-Q^5awgo6$XM`PCNIPMMDlGKBh56;RQpT2$c9*7FnqOULZy;gj7A0;MuzpGTY9)i~N8Xs|J`zX8tqq}sgd61p zzTPi8!Uyt5z`!z?ZJF?*0AEjoOiX}2`p0H3h6PSoSVh96hNSykL31YUt-zK6D@yq{ zc}I3(*fjIyjTxK4+!&fJZEig*Y)%#=QF2^p2V0eJNl)DdeH=v{P5x;j_&V?q3Ab#u zDSXLq?f59^m^F^^WG>3HL;Cyy%=FMpi}16>e8r$gz!%pz*P_9B-xZEVFJ1TLXO@)Hlq~YznGQHF3$cL?yv5MAZzY5xT^o73M*}jQZCf z1){w(0HF{r8*8O+-t2@_W(V&Lf4hh=x%C4{aDxDPD=@EIySEQK!CyVU`*Kl$wl}nN z(kfq=iZNMA3s<8=zPm4w=!TlX4tsNNY(UvuXWG;~a62|Y> z#`3j8xILT@C|{$7BdFgeZ(b^5tKo-c_~!r|u&y1s%>6khqW%O;VB>rw&>UYPQtVrq zfKdga1+H~kvJHv7m5WsEHEH-6M=SV{YZBE8sb;na{TkgO^OnE9MgNHqNdyj5IK zt;X?cHryhV=sa`^F;g#~?vQx07r8w(sN2e?>gAc=rZK2rAE-HPjZd~>#;6)sh)O(V zluKbK{ut=Rc`oHg;E+5{vdF`E`gnMTzoItiuZ{$hJxa(^WhIjMHAGY#25c{~#`NLO z{2`^x5BV_lKLFd@Tg#8xtu}Z83@EbdBHz8?F74t}+EJ>HO*n_#8z2;<7Tu&*`dmLN z?+VZcb$9EM2?<$}_A3C-n7nwRIMoEsrlNqfCHtqfu)#&ym>Ns*rn@nv#)$1nGC63{ z%WtL?zc5>qvn7N3(Dp~3c*@1V^gi;wM|iO9LoliBlrbnr<(((utY2xpn2WHeJ4>2K z{Xc*AW0`eb6Y|n)CkrV}VMMrh_Et~8V#SR}VJeXB&+~?XJqcM6*kCV~S3VC8ad{(| zT6t0hW6FWy8Gy4&4uhfPM9oak6&=PywIt1O=@R-O0J7Td1$v@9AQXPSwJzAdj0mcR zv&y&bQTBo~lkz4%C`X$KEZP7Q>&rs8{Qt_<$Ey|@VV|(J_p1TLk=zB#;q)?>hyhY( zSkeI`LeYw=&fjL}Wk9Tty5`#VA3~@UK{yp79;`w=DJt)Q_rX3MM^L<9v*(Q0Z!h`0 zmIxzv0PEnJC%a$01)FYyRxH1wWP&tuds0?P4>A#u56y$RMQ0zhM~o}lzRT7>94wN> zL2&{2!Qx-T&qxuO$_HH_HJxbK<dkATzrDiF#LJ7xUJ`+4#Q1)K5jb_k9=Qo{=JZG6o25)F2>?yt^Gc1I>wj$y?Gx zKv@YKN`!^Y{c6JR@_Di5cW-2uDwuU+r$vOFN;svx{W;X$H1C43@JwTtM82yZWUKFg zj*NA@Kr)B7`bSu_&x4X=YEUUg+?h}StVqO*zC9vUPMfwuEe@zJOROJr_Emsc{&oc; ziOM8rDDQyt+HWr;=gaq6m;(O^`n34d3Apk zUB;R+X?El%Ef8iGCI(H*q@==+O0V$uS!f`%-4m6o;4vJQGAD4DlG|yi!z{H2bSGG2 zpm+MiGk^m!W_X5fr2|t{rKe8j;5Uv6*jZm8kZaVy!rl+&<17V{o*Aj#2k5o`l64{` zXV$C_RhkE(0-~4!s#&9Sb0)v6O5@6P{8+@kDQtO22Ar0Hy>imapU|?w#gRg5gzmH` z-p9|}v`iIfn`b@xYP)1JmF}(we33wFyQt=M z_u*DC-c_M8EjYtj@dg=e8x=SY<#c)*8>@sAODNNg_dAJlk^gQ2@Szzi)D0_cD&E9n zhYbp`O~MJ4<4cP&0TscBuwj#Cwe{oAlp~#2(Bk-A;aQES2|+c$ zFxH1+z`LeF2m~~ImQt(sjH2obeUgCi&OJCQ*xM3;`}HcfwHj0D ztE{u<$sG>l9UZHNcTs#^MWM8J?{GS`KcgXQ19N~ZlE2a33IEvk80`c~*D-fewgoC71I~WED`wck6i3=O_bkI}1s-$8dFL_sT z?a@%>gl0DBh3HKHk^!@l;|R@Q`uo#rOQ&r7)Oax2ENr%;c*S=tY)xP1L51lN8Wo~% zv-k^vS96yU9F#@v@>smx<115eLAwVJqW;V8Me;1Db1p-ZEKukfd}YeuqU3a#T!%g4 zMfnm%1#fe%_aHAFOM)wt8IBYig5k9YQ?rS9H-wQ_AlYI7=2LZTS0uI)zVs-Bb}bkG zdpoJIs>jKUQY%+OW)K_=45!HOm^FX*mpJ2+hT?3Hlz?Ki+e`QbTRx@H?U!u9ZIcrUImM0ITY(-@n25P;>2IZ z*In6ZAsa{k_P^_YvAJW=az3?TnjPvk~B-{zg`~lZ(RIk`y$+u|KzeECVmW zoJdtsOor0pG_pf}su`79`R6dWPOi}y>c@g&ee zJm2)gG(yhP`P!Ozz{%4e(s*Lu%($>!@qowo>8{erK=yN>;$UpO@uPS?_c1?%D<|0# z-0Ryuh2>Z6_U`~$bxmT6gT&rEG4S)ZF5VF20|R&FMTR1N-8#5rx@!XK<2)BqKwI9F%sSOShv?)uP7=x4B-QqlNq8K866OV@rR^6g84!M!vmy z)%b@vn59QVe^MiM{&C{A<_f=1j9gc{^|7XHsK! z)FfTCsw2=SjL+&_@MzuETVV<>EV5yuG)eI=VAKaPGIEf8uuClRUzstR2Pto(A?6c( z!xrswGPJ*)LhO_rP#T#?)GFzaoHv{FDrwQm$(Q;-qA{&R*TP` z8>Jv(_xBOcOPjEA5Q$5ySaG&0RIw&1~ zK0LC3Jf5pFR(1dszp3FEmst*Fv-Tj%L{vIe@J9MtH^WntG{p-CEUL`T5C4dC z3qx$@v&Pd_T!eQOr}o7%JQ2C5gRTeQGAlwJ;lcro@Wf>ZLX!1E8J4X&UiAia*11yg zwTsDw+xcn1YK7D*-TBYJ#8V9l9T`8SgU2b77~7)ZzNP$Y|&BpZtO&RPKT zxP@4R8)q-}7d3K6!M7&;Y*?+~$1xG&K-^k@5s+r9zCrcMXx9|uj3{UUKqvKX)@FMkwLB^R?et6Kbn~_~kT2~~+jT7#fUIS%9u+suScu->#}(=uBXt4? z!0n&06-5~X4c2Q3J8jrx6218oyBON5)Qtuoto4Z^5Tze9wvD1DwGD1`YyO)?N1=uV(Ng!R_PWC5SO~|S6Vo>Y=**K z=!SaLY2~WEZLYU6`gI_tpaeQ=PnoUqVV>mSN!FtIv5#Kh>s%cXA%X&fcSN)wC1xAr z5a-8aJFDkX^3>ZS1p ztB@x#l)}V)e~WVoyo||b=-eGGcN+;!DCzwlL<;WzQKUFp|DjPr=KuI8uK(ntezkVQ zfe4xX`@op~OOrxj;$UO>Urmac@!zt4nA9&YCPq%ef0h&lpjp*}N5zW3uFyi2dd-ts zC=1IN%Zu1}f{;Z>X*!Js*K9i7Y&uO)q^O3BNY|mTX@0x9DPE}}5}g=^qv)!|y;zC* zCS9@h=;8U~BYh^FW#*;TCwJ%Ji?@(}Bo&;?!2w}E!Wc}XFl`-#fgF{bSc3@!VH#sW zhKQe3XCPD*;3vk!!lt^kqE9Pi05Z&kktSdb94#jTgicI~1PqA`JU=X^O3+4xNlbjD z(-#gb6XdtXBoqVzXE;27fq{wyiJoW%2K%pj83v~r1#2u~;SNSLV~8MlFLQ5U4s#nc zSYThy2?Ngf7d!`z9Nhgt2}Q)8C!Buvg?19aXseq1gd=;z(ePQL#Z{9AN@TsJVy;06 zb(q)zdn)u7X%@ucHl8;wdorO4{*am!LVSAt011gF9P}8ZJ~YBgU}D(FyzxkyCX!Hq zrDK}4ly?>q1_=Hn2FV>IB9VTDgApe-aF9g6(1?%St3$C=BZv-b6rrj7KX;C}6Y}q% z{}iJP^FQ*E7)qE0hD%ZGaMjTviU70?Nx@;BjE15_~KM5)l)AoV!TCnd>htqJ+8%%%|Hlmzs z%X)R6A(xYn%I4lv=m;ZgQ|@O>tb&~uMtI1`z_5am$i&XKKpsCVizlyx_Q}~z&*+ne zm#Pa(19Mum-rm4W60%MLY@{qBftabW3Cw|2=}SkXL;*QZi7|^%*iS)d2oxVcuaun2 zIyC^Hz-0oEw2X%UH#7SKUUtY!oci5MI5m!|08Ysjw)1I`LQ1-aS{8RmFAmrYtMy*~ zHNf`O(#VjSXEa4D;*N&m=Q!5uccU}96``P6M^(;^9iEt5+biTtnfGI3&=cwE`q$JU zE*;*_`qYHNf|a|jp&{yrh}jzO%C2;p&Er>V^`;7hBoY!--ok!h=t>pen=3^pYjD}2 zT2f>u?BQ$wcR*m~lBpWJb=u0Z?ea7ulJi=QJ6nSjz;S(Ki<1zS8gvD}D4#z4v*}h9i+)gt--EyUpaNRCUqmFS`I<8e>p=Qy%S%E1D*R4J??#IB@{I7RPCz-8y zQBK?CZYXsNc|~TbU5Iba*0t1@WV@#7xjQ-)NsWpdYy14rS>@5j6z`+W%`E;STXgf9 zGaD_sQ4-_5tBl!Uw7&^BEns(*cjYi!dN{jVg*mC9=7nfHte)xw2cL*iKTTVDtgVhv zirmTK4lGW`U09~d>Q)=%g$jvK-j+XK_WqT~-^{vU1L(F~=o6^*XnZt_?$q4+~5YN?ics(qx2eF zh<0+Co}8SLZ@MQakZ5STigxn}Ox2l<(bGZt+o}uZMcfSE9=E0|yFBJ_t6#KIxasF& zc`&>N#d}C_znC6xyMpqWHXP#=*1YOWOLw8Pp8AsE|Lned_VZXQDtMZ160jFek%--= zOscu=tgE$jMkxVwFxU9{1MUU%u|<+DMOe%ywKzwXEAu*P%X6FK+#P-!Ob8Hw+F4j( zcQ&7W^~jemE+@)Kzb4+Rm-4bGqGPm9H&`;xfpmX=q?@K&rJ8t7x7*uSlG%yf4&N`oNn#bV+L>zO2X zGu3>ll}upplKJe8h?oA8m;M8S zkX+iE(p;!D{`FB^vI$6gn1QLU`7{CZefq+TjL^?f?rzn6dpDfHQ>d8c0cc$9zCx2}fBv~}nK z#XLn3h20}Y42f{+*^RaG-2hR2$OhL|IQ}Ger|UvZ;~IwB@>t9^BVG3=k&iot2R$## z472&6_r#p?;Q0+KX*RD0JRBCdq;VF2)(EqadbIYN?fsb-d@Nq+5BYBeys{yCnR4wn z@66+f7PtqmD?shUR>XCkzQQfhOtI}iiSyI0=jf8XoX(Yw43O zzNLc91iA}_mPM-Wl>YpUqy3RTVre8pQJP*z^JL*cv?mEc8f9vY15`WGH)Ap2%G%g}hB zu8;f9bKY@?Np7(%n=JhI%rn31TGq$eBzv>`fyuJuoMgqx`J_@Mdwu5$Ghm^bZasER ze<3YU5_gFn4=PzLW?}PTj*U zZ4d=_#)$t?ZOuNDewzohW_$72a>##ZkCB@q1gm=)db~gxy*G&^B#eg(~2L^?0z>Z`JGMl4qHNah1V8ujeJmw$CeAJD=9i zPVQM-si;IGJwl6?wD(JysiKiGW*TXs&4|0ZmiIapc$&)A`2se!tJO^;p&0saq`^$%okFcU`ahiOP9V=_Ue z&4U{Q5>7~ulYxp4fQ<+%@Y@FogUuxT)BFdyAAGZ3YB*RnoKUKKN$*0iQ=%2x(1@9pZT->mH&S+6{&j3btoB`A~Y)xEp)s6*sdq98`3>8r1 z^`wbXnF>ER+#XcOyD;Y^w1%xa@$R4_Zpv^!j6j>aLKz{Hm?5|!Mj$7=!5}B;?5H7n zU7#~8eaVoeLtFympan?4z_Umg0r?7LT#!iCBvYms2}}H3k24ZTIBA*|l^{@1gdkM5 zEF`XstRGa}paK#kh0wgaA7B_17#BL|69}IG><%5O-P?;hKCL!kf@%0Sy|1@F<0$m& zhdmfDklra+K#(`^8+spQKYu^8Jy=k7l`v<*-X)NKtN}8I-!S0|kOm>R8YObWC6sL= zl-VvQ8!@Y%|ClqlpDuCC1TPj`vzDy90+j=IiA3H+F}H7khzRsz8bAmntQI6?pyO|u z0@Iuv4>G=-Kn?;^(rNamLwQ5=Qko#0WxR0GWR7y662?2x`;%1B>aKn zpdXx&0%MB5=kYr-iNc_AJ`k1E@~EE%Gg-MO@TWn z;-YKJoA28&r_VG7$6(48v`7wAp`L&|5xFWEt-JExJ zhC*JjDuE@4GNCFU@M~un3F!zl1?a#Jde;P~Gy(<7#4_7a0+1#;AR;}#aF~WWB&0_eU^=TnRPbA zvxX{6^H-r9B5cncCNOX>i1YHBpM|49El-O2NPv0udI#tCJWc|U(p2wj>}{l<qzcofSG&wg*0Ivfssaqcuy6?%s#mOrc(^(d%0y4SSEZFYlIRs%a z$h<;YkWiMct{`?KQV*uwk|Y%4DP;&MkwDGBf*?;x9w2UH(lHkvlQ{^J4rN7fnpPb| zNzy???q3yB{>)+QY$-hc&Htv;O1Aa*07eExoX}`r>1Q-}H4sEH+6YC;2$}P)>j&dO z68Jpy-|^e}3Wl_7A@ZUHehqD(qpJ(VwNuste>fWa4g)tls*O)Cc_>bwJvD8C^X7nv zlRB9VFCaxV8(Cpl%UIwkkH3QLB?4}2<%aT)O1Z=rEX7wt;b!JBkiU3Oj^{y zFAGyrm*n)vsjY*|7kw{sgxnoS(>fN~C{S-LSNbAYb@axK)Rn9(!yl{BY2L^Rof?dl zlND`X!->3H@xk(5$L!jk>|5uFsMC!1>n(`$2mnr1uFS9b@basJQZ}uoR`&BfyC3GQ zHvB*LXZ9A6TZyLIC`Oe0PJg@?FV6DWv`G;;^Z-o7mf2QzPd$Mv(@|I#U&8pYZm#S8 zEk^aANSEx@-uo1?EBU2JoSLlx?FZtJB!ieG=?>T&5Ez0{8hbrAzs1eWWM-}2 z*B;gH)MN#vqt(+6gVGTM+pjBFSr*-dYX+t%c{!H+^Qo<=T3jtv@(^ooD`DI#>d=9e zqo{Ab%MlL>2EFf|yr1XriCS9~3cgF+m)wIuIUlZu35XpR{glN{e+^D8n^SXZ6y^G2*0X5w z!GJ$MZ(b`RIYP}P*EYonfkjw@*09e86mi6{M?cv7q?1*oqr^V_?r&iPY59S4u%fQfQ&cuW? zV!&F;uk6i2$c^p3ur-sy1v&~NgzH9}f4BM6PqBISY^wI!Bs>83g;fL-CjgJ-bkh$a z;rQhC>B#lw=g=8K+dgC(IOvkbWrb;U&6{NRxqb%=Gd#Eb~NOH=hvEn;^iNgq^+BPdusRue4m&X4n>@0)gdb%_oBv=?+f)m_j zV6fm0!QI{6olNlH5Zv7v++naFK@;31xV!7J@BiK1+N!PE54Z2_uD8?8U^m)#& zXLEE;)7iCYE)*x|(v?-fmBVJlT)wi7=QMd|ZL*SOnS>PV`(dc{2;eEJM?2WM=6hsQ zw2=mB)VnJdX*YCcm5>JW7iU>;N`NKPueXjp;cceYKG;i910ZDejyll(kbQTV^EpeB zR1{+|c6}+yEZKFh>({zV@2FbS>dxzJ)hK8CnyN+w%kLL>Q)9$-PFm>6dRS$sVxQ=s zd>h=TTdMo;`PjbFXD(}=On}e(dTcpVB_p)jcNAeG`Y4vbvNgJKhD^ZWEQznpF;?Vq z%6=Nkj9sjy`CzJ(aYW;2bBAERTenAY1K~=PbjXY&lAEc24kB?2-ORYksABK&{uC%(? z>9;^7EgJ7`t~9z$xyX!m?M&UD)&y!+TMu-MPnY;xvRb8B!P4MfT?`LidQvZU6@l;F zzlOPtBvf#?bdu;s2kTsUH+lk!$#lAiV(6Dmc(^zdI<@#YcW)$Bo4?_(Mux3=i0u&i z=~jqA>58dDe|2DGk+8JS6V*jM`iUL9Xudb6RhW$|#FRQ6)5fje2|033Y22R`raR2N zcwcdrVbD&Z;ptO|n-?PyLNjoaCt_6O>($Kitr2b?OZ9i5jk(VPTDsfQ4aMM+d(?9l zb?D0Bh31+!=v=2l&aRg^M=(OtqIsR8v%)$9@umh0&?F8vxVtlmf2OhOU!qwWPqww)neTjX=1?AD1 zU(AY|z>^{o6^4;f!unKg+tEsP8s)0bh5GR-2YU*I((@s*5;92o!BfdflPt~pJm{8y zHmjUn-rcla?aSA-+s?ID{Z+-cv;Q#m$gumLcBuW))@J4Joi1yf3zT7!hRIdS+RC99tvxjhVkd)HwzmPU2~BlSiU5i7v%3U zOy5Xw0?)n?5%8GOF;VX?nV5vYBV(-NtzTk(bOOMPE&C-+@Q~Dq*TDZ3rE>~$f?=XC z*b)_84{*l(sQG3FGotQxu6-XukuowACoKyepn{nVl@yLyhwTn1s-c44fiWL4Vx|hD z{X&^=6;SdnUV(?7O^_vwij5pqH26b-N+5-pcMUv7H5@vvW{m=B0k+W`@;A&>JG9(* z>ztqRbx8pjZkedgt*O$ec_{FJcYfkXLGE^%K+*^z7^H3bfHLeq8s1p{xiI$P!;%pILWQL!PFpx*7AF6WY(72KM zx2)z%h{!~|{mcpY(^5A=D0+bNLk?JCsnUjaFl=b4Y6xS?QE2N%@4{T(<7~raqp<|JJIq(^-B69!540V|8` z=TrD+b}%v)3YRMK{lq)<`$xY;QM#zGJkfsqySwl7hsXR-dlC(WyBTggOPBtk$lrIlKnoMh0@~9 zzL^Pt6U_#+#1tOiLJ*LIn$hFy;+0Z&W7hS0g5?H|+45e>^n4Q|&l7D$Ez@D8DFSe) z81mlpvDdH>)++Mzxaoy{6P0Ao1n0i1MMX#SlM_{m3I0PLQotEs9K1bDg=O-2fL5yG zeqXRNf{hr(RYpFRy~(Fdo4V(sNQjpc*C5d%7-eo$9Z1LsuQnbhPn2x}c&+TTjXg0x!3%zE_6wse|`y4*S~jh$1?L{@vh zsFlmRGIRh~Vm{dk0y!q&*BYW1t+Xmyc9wd1tXdIHCKpewK9G3}F{a$3AGYqILLTRb*A1Z1}w}QTT``kO?b4RcK3I~OP7!O$59Qv z20PN@hbGsITi@luk%*go2%edjm31rX6Fv`6mU`$f8q{ObWZgI^E*;XHyXnyu-nzq2 zwi7f*cKf5|qoJqMkV=(HA-)qC^dTexH+xn}t#4Vz$tWsP%?&$bT@;Z(v#U`zMa@Ry zmz8H)fs*<;2gC>UQYwDC>nYUJ%}S%eYR|>&@Y}#yU<+&**982`-oeVG~c zBc>IV2c~PujfRW43qJ~Fd9&7YlQ^wrj;5Z`1`|19HwEN7MyS08eyNM^4zAoWUUi$0-d{Twwn`Tx8)FQa9QCSlf!PR3kdv>k zZHc&LN{(t&dhE#fo~7@*xiuRu-TnRXh{rALv{f~k859n@tO zwV6gkEy(&q=@zSS$Iek4#yLkYl#Th&9BV-sYgXKTnd+N_9k!|g)A6^ir=;? zDYXmViDGY{k>)Z%ZqT>?*}d#=EC;miY}0?+WzkPk4a3V9_s1jSe02h|DnS;!F!^mq zSD={q;W$j91Q>BSa&c7FxI-jPljZD^WvcuTWE?&~hBZBR{o+w6_Uycz9ww10-&PO) z`H@3I42$hJsNe)$9ids)M#`yA8|vtD933E_--X1BXK=(+AP|BRyVTyOIQZwg*fcj5TtRbdzEPfTJR2 zXJbQQm9%zobtC6t2mM!S0XZj-m;0X>W=vPtk%+hM>sWu?t#GCo zvcH5KRt#(K8g)GHl1U+%6ex=Or>`4OH5mu!Wguy+AEf>|%5~1YQ6Y z03_Js*WJ*gAo76{#-gV8qcnVn+`H-d?liB7k54DPh&H^S&;&&%567BlL)P3%FNCx~e)CU|8b4YwB|(rFt#n-=U*KmqoG5sP zc%7dZuw1hUHf%NTj=z7f%Y#y*O@xDPB-f^mLdQX}fmmTM*6ZH^(ILh}=`O|Dq%Ydf7k!+F5GF~R|?PiQE7H&%<9SA2z)wSXnB@@NL(MpSP1VlS{M&RE=1#&CwcYdcK)(T5ma6-%}azb3(Y< z2L%^NWl0sq5qKDhD%R+a0d>W$0HoCD{}-LnQ>ACK<-Y0GLgG7LX7`TL&XEYcrIKlAC*>(2D+E<&zpX#81fZy{4V^`j%_XK_>HgKllfjOkWBUC$5(NAM! zOWfvg)wI3$rcbw87A`ZClr{^vj~X; z*w6~h#t^OmP+7Pb>rf}a8TqBAR{2OGpvf#gx}ndr+p3N&s<$d`Sj)_tker6OXqGlw zggr8Qror{1>04uVxiDrfb`-3Su&^UWFydbN?O@q=a*V+r4ng6gBJ#<*GBPlMMqsiM zX*#jLDLWnJeBbi5XoRt+`O(C0PIAA)jrdMfiU~-eur8TtP8X(1SiO_Rm7!1fgnz2x zm9j8`b+*}qmU!aS{t)Q3!pais1Gv?pN3q`+b=b=Ti8k3RnbML1F81sh(lUyogj9X3 z-dXwfu9%HJqmBBr*F()k>|YkZ3t-X=m-?>_0*>q|7_8YNdyUCzpZcg}>&95`No~;e z_jkRr9k3lnw37Zz6GQELwup&cdU3#eW%F6trjS(6R70F1AC<^IiLswHrr$W$a19}T z{F*h*F}3nSHX$F@E`aFC1f(wGd>D!{Oj0UTDXz)zmqR!rDS(E!sR>rpd9b=y4(EXF z<;lK{Mfc^)WrgNgY%`=2|J#^EsD(Mevl+)B|5&x$v_|ouMEIJ+ev!6Ogcl7ba&~rW zwCuEC+ep%QlCn45uPi~YJ7Sa1dd@<2Ok{xYOMsjCI*xT7(PX2oui(H;Yd)p(f%_(=2c0zUWyMW`BhC|>27*H2e5&*xf)gLb zz52KaT4#>wEBn)3EXMZL2mdy;?ewOD9D2^c2Qn2CC$Fuv%<#WH*z1dSo0=OWJxCC5 zO~lkq!^S9C?71F@$4^&Mo~GcajP9iBnOXS(TfN9VCqjuSuCb+srohGiDudK_amo)Q zGBP3@ZsCQ+TPbyCzxWE_!uQwbqix0wpvJp^%PZa4)w35hbRLC9tMso!@>t1`M7`T> z^aQRqSMV5*v@DwaR-AR|z{OF0U&JO(tjmSltIDGMCJwTjESQwsN#46~yW4ok_FaKH z)zXR%N(p__8&#T>Lyd>yn)#mD)_+dNo;?@$C!i z&PId{{a{=04|;6HfLKbIV6>qED#k3K?^J9?YU00^(G%H6N8FU0w&W4Nq@h6j-Zy7+ zw1kYdrmz$Qn}JEKZC{%>w>mE}lchcKZ|0*AV?}4~c^BEh1vR-v_i9@NEIU6e@LZ9p z4<=&A&?MgkaiYcBrP;c5`mcm1DVt?vTB23Jy9FGaNM3={qO=_A%a~;gqEub|;ZJu9 zeZ+bD5ag-4CFLS%J_X}kFO`2C#8 zZAYUJcEPH~SVJ&ftA6AVuUxuzr5~4}tk8qMSBVBLZAimXL5I6zXHT%PJ=Y9;VLPPK z>3-})QK2R1)#FkCNj4{bTb4EDb zH!ZqXpekEUv0`^7^1%Gs)?Mpa16mbRzG*K2-<{#Y-T5M%75ZpGf3s!BNNqAU zq@=)wUg=)j&-c62mV?=HrzVVi;*FmptWsT6IsfjOd#RkiCzS$jMfj8TP=Vz`Fg7uMWlBv55X@jP~+#G=$hi88K zwU7LaIq9d{Q%7z7CRCAGi@QYu+PluR1VSdwL+f^4d>GJqvhR)IDZPyfs#-0LUNfFF`%^+9*7@xmuekl}89b|2 zpXU*O-Yl~7eCik*lj9b5z7!BofG;yM3SHlrk9j2c=k<tbcc^81%Vx{w0`B{(AC3aoYhDrD^Vk!VehYeh!$X9a=>k7WD33&lqr zF(~PZ9H!1|3&HPn@$TZKr|{^KpQo;r+4^$n#p%x=$t`FrpDoSQ)On#c{NDqiF|*|f zXvYlo?Rm53sgR$Q`)O0fs>=&D91#9zd9x7YA(y*6yE}MY|F47lScmWB4fy_X4&wA# zZw_9*mwx&0)tEuqsN#oR?j?612cC1)Uv>3Wh8VI=-|K@h5k~v@PY`!)9qdz?q*eR# z4XLx$l%rOu%V{&xk)c{XhsFanbDNY7V_b-C|4po7PS;oe>3m$zTyveJ+)+5IkQ_oqElE ziIQ0IArM*@VYB;);ph5mo@O7?yYVxY_P5aUVv?IwOYUc(NwV@^!eB?(O@HY&UcEoe z0yYYRb3!!rRhi8w-yKPFI>1*)DL*%Ze#*ZW5ce_Kiw)-F=P#!)<`}ngJCw(j7_`Y^ zk>EQRuBA~EXyqfx0aTAWkDe_xBZR~G4<6L3@N!@dyQ%=U^tP6itk!67MF)WiS}EY% z;L!=numxge)ohX41~Am|GNex=O_fYRijEy~wj_15EWyd63`4%rFFr3k*F|D@KMkq& zfi9mJivZJK`K(z4qI>wN9Nd(7?YDs525{HY^+#5BWH{b=pI&pF{KMgV9`ZhAxYfZr zHS#lNuPm;V<`?DdW7=W>1gPE9J5;D%NH%jyk$NBwkA8)01I9Fs1mQXcb3Nx91#m&@ zWV{lpo4=n9N@s~CDqWIO7oPBNxKt2#Al)Er+b4TvvPY*C)D{& zGnDxT<+wXZy(u$ZaA95de4A2);%9sx<%nKR{vP=DDfn#&>1{g73z8@lbD&`K-WyyW zk_)ZR9;ly&fi3GJ>7UtG7M+@p@8nsZl3SHV^pwsRT9jN_OkNZ`Dn35wHtW_m?wc5xFLalUnzz!0%Ty`ip9%%xuzBe8n$2wf? zxW|hvFdbfG%g0P|$q>hW!;w2l8QaJ#-Hq|VCD-N(FD;94JJTw*_6Jh0rKA(q%cc#S zE28oclk32CFZ5+*+WnE`N*)n9e@>>Fi#&m+uEC*4v;PrB{`2WyOm9xMH>Ni;DqJuk zkPXPr`R2iBL4_m!@6Hk`T=bhWgEz$*07pdhpW?|sI?9`OW`lD=aG z8&2ryJ?<{h?x1^(Ts^7DW2&LpKAFY7#2TMTgkA*}GcNMw5y~a=C6i{UQ09A3?C-(N zIU_GwcJ`1+Y-}nM8NDBB=~17kRe4M&onc3$8Etu~YXNwPHdH7wQ8EN<#)!+~RwlrH z`Hv=i1M=j*b2+i;tXfbM6obHfOH&Lbd#dV9B5v(3Gi`b9b>t6mpw_HBtEX)b7hdnr z9fX=Am1gHdJUP|)+9WNbksWEX{pAoFVJ9YYRIoDl@x7@=0$RRtledC7#tMG@O>G|4 zKCDpkl#NEBt8A2OX4W&@-0fleV^|n-ieMnMKU3OGi`vs@((r4y`z_f0;{I#HHc+bN zid1uQbMh$U%j^3&x{O_Uj4VxCCE+_|ja{$0>ew%xOcsD=r=;(mk}W{1!>9vP1Nzh) zsfc>9{^%#w@`X?re4DlNuLJH)qwKsbrNy+(_8QHf*yjQe7!$n*MP+@(NU;=sOfi4# z{T{(+Um~i&FjSdiBg6xb)y zL4BE}6*n!o-gK|9Ou8{brKYr8ZC8ZRiS0wT|9L`&el5JQ9NI{O5q#h9nfP;$RGg~X zMSR}-FaBhO(=R}t!s*UE;(Z@h5@{Mixy;b^p0IG>_2I}?v>74gtZTdJx0zVuyyzf^VDO;JJ ziPr4jAO5qj(f${$o--wk2#x~G3DienRkijpCx2VrD6E>~y6of}0 zW<~z?^1t^9$t1Tz-#ZN934)A4!;L;3sZ6il=`02C5k3SP|fGTu~haP z2xVt2<=J^*&wfJf{RB&440l7&R6-S~*w1Yo8@m&zj@l>smN*7`BuWUTD!U^gQV7L4 z`^i<=jdvu%uqDza`|@KY83r*9SvwBE8~1@au3F{V*b_(i6OIV`v~Zd1VNi6U2(Owj zwVDWMS_~rl3I)uaLvJ$DjgfVXV07{TczGmzMg)9$A9nJHVE@2D{~$iIy$fRKvGhHS z8~z(RQ!~6&p{@i{vIQCC6Sg%FstfQn5~>P->j*WUp-m`dQ}_0uyz!a#nL@rCYYo+d z@hmO*igprPP{E0Fw~fY1J$?nRyW=sGv|^){;jNJfK(}L_M~aO;n@3_bSjnh<6@Xrj ckfqvksifGDz>%PGaBy?-piomwC`zLI2WOBaWB>pF delta 110843 zcmZU(Q*@wB(5@X!Y}-yIwr$(CZ9K6iwl#4k=ESy>iEZ25@Av=p7ynQ)dvGB*q*I5Rg>dYu(0 z4G^m(oxU#y-#t@1ig4UzZMwX7ILh%e{^<53zzGELp9clan(U3p%*}bC4DATwX^^Z< zvJA!P!XA0YKEta2C*|(#{Rn4%x9q(>PI~63M|^}nE)`f@l772vNzDD96?2~Wu*HrM zk7rx8=Xc&jNso5AVq`Bo+!&iNAeMu0VUE<91^MI!z&Ef0>~NAtzW=xpCAd~(&% zFnrTy)^m+`!(WPE0sJ-x{{k{772d2TREbrSyJ)-7GcRF|_rpgH{zjOCKb5*1t zaHw4x@&scMT{Ziflh1kAob>-qHdi~R_QEoLKjb3YcGP1lkGB0Bl9&`d%-eK(?gH4s z8x6Akyi3%?e~u%x;z|GPye4xoui2M#JlyKI+Uf+#<-oK2^=jrx6&m~ozFb`X8KBQa z*?HSbVwV`H1wQvZeigdhcE!joB)lUo$+2dnSgV;qQ?oQ&%d@i+S>66vp(W)lT*UgQ z=UCCHAu<3XhVy$fMd(k)YsaX6-~yh0lvX)zp-%V}N;~Qm?KMb&2SG(g6Jjw2(#*Fl z8o3g8p@F@m1WOZQi3{^RcWJUN&w1A!gNi`)s;xS^ZQizsF4dRK=Q7-JDRbkz-u?!W zYL25waL@`kiCAL0x?cVu8jMmKd2Q}Q2?GC8Vfpo^g6T}5ZJeg}<7?G2gb)w`3y)G5 z$u!>A423Kf2YIKD5AU02Fb}cmhaMS7HcpgbQv zwMFE0@so!!eXdomdC*6i={&;656+f?G-5U^bf*h~@f|#m1GSwd_znm0dFcgr`GZc{!wI;wK zlA;S~%{PkaJt$NG)*Tm>)ngB(Bp(U=P6>$Bjw{L zQ3j^%5dG;bF3ISIC5^dl3L&uPum*xyi@U?rbhU33SaGUSN9pvyF{4gwoX}yFH;Qdd z0sdyuwLzHOi>D_f{RG4zY3@+RrKDSilnmrF%ZUkKb@QTg!{x{pE&%hUKamq^j@kid z`A5z^&85}iu-bz%X}SS%&z9Gzq`3O$1?R-;;976UUBcfiJ{bi88HE;^c~kVt3MDlK zouIshs9V8ttpQ->tg_q#3Lq&cJVXl#+$85YI8(`Rj}Jl&=|D=TzeyL%XZsPMC9BXZ z*rwUHJ9NN(RIk@}w`K z>sS*uDhCO=(uA1diOzY@H7n20dN1E#K}$Q-Leke?6fZ_OKb5kwp!qq15OGBx2=Lu% z)sa)v>*p_ipaLNOc5AzahkuZ3mSd)5B5ydYWLegx8PW#OU)0`2ej?gxQ|3g@Pz=JlaHY?R)YqF)Pg zi$AgFO!w{z55T6O3htO=@G#5UdbV?yr(43bD7TkhO9P7San}TL*h~RdUK%UYCX?kr z^$I3ph2sk6bTx5FRe3@Ac}=o&L8oyR1}6J%17!R z1SLi{TEY(UyD}z5$iwQQ9`_}UKH6laRmPx=1u@0LOZS$w<}#YZJj<>gM((ieA{^5& z%@YN5BW;59TEP=pjRXWPCG<3;dkINq zk_W2xSHYg?SxIEl8-y`|x3p#s_scf(0g*YwF&@s(CVzCI3Z*&!Xu7)zL8@}HFCyk; zB1|}+!6ZJplJ#Gec{-a)GfZhOqz)va*1+EydQ!!LfkSLuIjLXXR!FdIzSwq+Y;D{v z2_e2j(IE;<59sWQB!PkS*3P$5tL zzIjvuFt$mKY=1F=61H}h+^kcCWr?6BdMtU{7^W$TJK#+)=vYit?X0?e{O*ygy?%m# z!kRmnxw^TS8{7X+sA7lS=D*gYe*8<$ZSBQI(WVZa(dYk0@R2+AxRa4T02GA@if_wO6VkYVJnB2T1UDO z)1$ADOMOm@Oao2_?zow6g_pe*WiMwERN@a~?rkNDq%N8V40czm9M7_(sh8FaL+H38 zbcvEPt`ow1E zIToG4KYfN5K+nExstT!4PGJ%BLUne)W|wV2_&Epr03ZR8mH?9EwO)cowdYtKRZQ12sMHs8ok|y~ME4E|42@>-kjwd( zb9@xK%mA(Pan^*~h`9knS%j(rkJkWm*%j2jmc?0Cs4Aa`m6W|oe5OQb2I8XvAJ87X{S$C2>rW%#2l%)O>cA&Cum<`Ld?wp(V7K#Y;V<9Q9 zxxN2kOO7t}*g31jO!RT@hbvCZgf>NioYIbFV%@FUI63-KH<6-1i%LXJdf|~YS7rH_ zkq@uZ_U&x+b7O9;W1Gry+*ANFfsNHMp&mGt8c@OVruUc8q3t!BUH?8nrHOh8(*_4F zmjOL2bWlYhS|pX((8+T`Ff*>XMC*|Cl1o8bi6&n`nUG*DF2HxV?=sTnjQmaZ*Ctg@ zADMl!#3uWcb0@f>@h%Lw#=0u?ZxYDEHMZ2@BE4auu;%uyC8(qw<=feq)IylUewF== zRRC6f?Y~--G?g>mJT%}gkJ=zt-)>V=(?2lz+en^JtK%IJdHJccx7&UTX&r`oT#FVF zsqLoE<+RA9n6wrjgIdSGF?3EkL%qf&x7HeQrQA9{KN2SL?|z{xTicZBD1=q*_-BAJ zzDv#D#XKyKMEl&5bL)wm)==YcxHw5NS)jkwMxn@*0tdoiFE0W)za_ytMkdM=jez?? zDbvAAZla`hg|mLq7J@;-x zZ6~QLPE}5b??Vmou_E?QSkRLYVLPViqJ(mZQy9rUoG^sx-<&z51vloEdRKpeY(OAN zZ@7JNg1a$P_>#+5Mgg1ph+hMl3pC%Jpi{KnXZ%O??^Yx0(=jPbe z?O*SZcdL911qEpN2yWh_*ZiPDu>i;o?*luRh=>R6(;%#%gBht;vY3w_2(RxM_n(L| zWXz;nCD6xsR4lW6<8i@nvCFQml)$ZeM&p;--(`MGMIMGu!m?ddHWBcK%RV$9!_mFp z8+iqLc_v8i3oIKO5Jo)6WOQI;$&>xCCdRYu$E?Z9Cvu}w?w%S6N*slo8o(H+x6pX& zGvlRf(?h9++~`F^0-Cqpse%SvmYA#a$8Q>fv1 zjIwRL5w8bfB*unAif3j`UzT6%tJ%q_7iVg>u2ckz7#aHSLyC@XWicI+3SAC3uF%B4 z9CoI!IUJpcGy`ahbs)30CjV*0gb6G|sMNqB zEv3h>{li^Z5^&^Y;Bg`^Xp4Z^T?MCPfd~eFmX8V59Bl2f*td5~rlRsO*M{AY>rd~W ze+XeGT!%2N1c~430CiM-WQ7@h<4}U59VJCKL-B4LLDTr<8xW;a(?)#2)mU;3aW@2? zVm;{Yh3``x0F-FsRHe}LAXz3#AhpyJ1TlI9@e>v(jBB z&C#q7n%UZ^kcb@h5jSqDn({GnvZJweM@EGYRB%&%LQ@D<;ajRgi`ef}%E(W*I;mL1 z<%u-#;Hr4xH{FW*$#1HBgGPnSsN;NYEC%i_PYlrlK$+$4A?hisnaHS%zl%zVY3}Ii zf1is92%9{;NhmBkZw`N32Y36s-7ouhaM?Rid4m1?IdA;I;}%n7&nb4cu@hQ}MUhIJ zsME)%nIDcV6zzp&m^sw(*pPwRT3re!)h@d<$y-CQiafEPh7+%SUiB2eoNYkhqs3x@ z$!@w7zzF(|Om(XYC;^dcNB@P>G8oQW|&+vib7E3GbuapIYqyKj$*adAC* z^`Z<8nuT?@O!Ch~O6|=njc@o$AItT^t2JYPdpA_z;b~cPb3NL^n#qIj%C|$K&*(kg zHWwl-Nc;}(>*UJ&x-B)ep7FfJfe4##<#s&?OQ0s1ocg`pj`QjL(cLa-hv-}nVlzmY zbF;8w>AU@NLb`pQe33gjwo1ot42~z4!|xeWmbK+`Ycf>4X=9z`OGHju>tMx6*Z6ar zYI*|b=UN~%UbuYHw_SHemUGqF;ep)M?ri(;#ESeUjXEse(p#&5%-cg6JFxh(mU=x} ze1Rw@=5FU2_}~{EhoYv`Gc41A0Xr2z@7b&xJYe>c}nz!s}Ws z|AnHoo9SFFExUbjtr1ccd(U1yT&1KX=nrW zZJVrK$AgxcQAx%`q{(h2QXt*Z)!Z2 z;%mPTM?T%ofuD>)~O*Iu^J(pJq6!XrUCk*3s z4O;PvYF&bfrMlKR<6s+1lEf#RP$6Td=Lq(8W=QF|BV$l^psu@>Zu|6UoFo)AH9IA`Tgu; z!lZ*Y6sfKk!xwoebTg)QkNz>PW^6v&Ld4W3mqgy>RZ`n!2>Z#np%p7V_3ED|G2wO;*IpQIU0}vuh{acu zPim+{i5&l?|1rZ)use}XdIqc6(SgVZ@M~rKsvVDWLOhU9FYJrYAU3oi6EYAE^KT>b z`$WJf@H@z@s_90ol}&V{N&)}J>UFl|7y9+*Pjm_t!a6l(IQ{j-YB7L_C7P#c7elcl z4SXCumzuVJP>vY-u-DW!|0QILH(C{p@x41Q7+G7#iw5}+KQaK)b+hJ+k?vd%o~JMq z+uAT?WOC_U{!=S{nX~003N98Mei3iILrmTko}xh_FWp{J8&uI~R?Dd`qBMv6EO1+U zT~wV{0If;?cCFM7R{@~?mjwO?^t_mLA0{qwiCUj&%7i!}ok*4tvIv9>&x1SWQDVu` zLY84Sn8cst2hV||CEQCv!9R_!6^&tjQno_>O3#vGO%?>t9DawZh}#^|kt=6*f&2~* z>CRCVrqrJlWHU+V6vgN?NLzo+#FY^7?~glh-(j3VdGl~Ikg$LxcvWi2vEZV72CDi} z>V9g5G~ZD)h7GiVkRmDi=L@e8<$Htzs%gLWJCf*!3RN;<3_@vClbG|a;*YL$WHI(4nbltKgYH;~499gqmX^%M`_dlWy=e5WM;lkN` zpR}N7zif7gjoPXVLO7u;ogVU)&XJ>K0DTcH%5xe`mwNd=f;6{i(0*K{sYkv;Not(=}2 zAkRX!;f|Gc;_LlbV|H4ZdtZCEso--rM2SdvpO>3SOQT{xJ;@6=>pnQpZ1KnNVFsa0<1;ljs1-lpu<(C2i>#LM5zm`p#zfgOUXNr|wIwN-ob0aj#nONempCU6x@ILVe> zv~QM^76Qy>QYHprPz94fZ^y6=sB%V(3*>wyK4jO7-DJj##vN=ZWkxagv^7|xBs zk;2O`+zn244ajh6Mb6bZGSwF$$RLq)NbI`Ey>U88_LT`#GP-B89U2U29U&1>1!W<1 z%^Rx~;5V7YiQU!}z{;n~b-?^o^pSqyD1f2Pj#pbdN0$G=`|Xpn2GQIENxm88yvgqI zSNRMYx<4KDh}xQyJ9@tL$^gRz_2rC)-hpbQm>*=$FJno|B;?k)*U@y;#_RGPnFJ5UNH zK-4yG96%fHtgQN?Q2elI+&2|u&~%DSh(!|jynWws9H%7(o1xjQI{+=(+NjoubS!63 zrfp?X!9uUuI&F5hGy9}Z1`4-Oi7#8Z>V0J2B!pfEzs9ynoPQ53tGfKRrcZw;P=9sl zSzk3Vt0A&oAX<7j>r*Z16q&5v1t4@fgDBhT7!$wYsyx->b+r+85IaygBZ6eu+uz|I zYBFX1tPTVoYBR7!CU-ryqS+YfEQAOlHs$I$5KEUoRCITaj;1m>dMCc}Bx;IM+MW>_ z4;P5BkEhUoH|$Ksg%Z~os4q&Ic$-cCaV~opp^O-{$OTK5@turdg()2o0Gwwo34YQC z?@v&PG%e;$BQFSWfE{}ndB ziK#bdo~_X0QOJrPJH!U9$1yb>O5)F#EU<%fFaFpUT35P$UZN4f*f3CetvG?OQWbn# z`h5q)mj^d4vVRtGFzsZ-06YRHeg`W_%ett8#`rBQ)_S$WT&gbA3ex)D)S6rMku&wl zyK|AM`HilUKdxDF7SaX^Jyk@l;93auUkA~2-;Ri<^hD#6SmV#}Ec}plp~oUD64bbp zu-bD8z|Wm`kg)hNz?iJ1DUsHHvwMCPr;}!L%~4-Y$&`5U!n*$n1vrfH6ui@~Gw!xg z=>hgXMOV(zSa^x;aH8;IDd4~dWJIfFXy}?fB-_IjJ%wY`jfAciQ|K@38 zW;Rx~|BKU_vdQZl@ZHCnC)6{4aFod@>Ra7BTIH#-2`|PQ?j~i9x$| z^;>Xndu05ns(DnMZ_S0mOOO5PdJM5ju(hYF`xx*p&YYfy#~_!pMO;gc^fgbC%%s*L z5%&3^ud8G(oIYyGiWFC>T_XMw+DPg!Vl!k4kW4;ZS!IJ_>aAz2#bV+4c0@c@;0ue< zS?O0=o;z4M*X7?LQy|=X28rFg2S3f2oH+-K9J%3L1XS!2r=c2AwSbN zXNzBVsFeRkvk`>2f9%>xcMg0v3Pv=V0|Eg z;hsG(ElP@5NAP>Omsa`#4Iz|{Azs{MA`J*3gK?%N@Z0tsgD@6Nu!lm1T+M~8t_bdK zYW68ZOt@fFh}8XX7XN1|8|mIfV5b;Fb)aB$waJtfeid zpap^{wJ!=IyOcvypwK-ZvlIG{*~*c)nx2A8VWUt-RY@y}VZVrL-#c<5?ylvz_$OaW zq)VOwIk;T6x$hM{6pGS6DsXsFmf5xv$A||+=9ztOQw&I`bsz9250HMrY;h4*=vdAt zUsf?v8>i1_%CUGSSH10E_pWt$vJ^nDS7jJ4UKm%@Tw#A4o~-Qz;<_5V3K2u&g5VAs zOem>?>}vDX)T0M!QKy(-kd1pz3l35(4jntsMw-hQ1$#OB*|QrS1o?wBi)pnZJ(+AQ z6FKWa4 z(}d>TQl~1i3f4QS;8}>0xs(}TR@I!s6M#p(8w^k9amk%Nv=FFqWqo%d3c@SUVGI`E zgX`DrASLA(8LeDTM|F23HUK}f^ULxK%Q;mE-W=D--EhvBrtf*|xa<;2=Y}yRMU!ys zCcMujtg|}+M2N?&6dsoOE)5{SUZaO=KuQ~e;jtt>DiB z-=(7oXOnYe9{NJE@K@D3oM&nKkNnQxV6nOUXx_H|lWN8|{p(eUsKT8ZRySxq-HGj>`EsH#1=y@k?FXZ7ToX1SjL^TB;q+f% z9Xqe~PibshOHM}9>GdqK7@J{Fs-=F;?(**f%Gm9{7I`qLc83zkXAeqA$m3HkaWGnE zF_0QPz1-nWVdbw8#=_IOGah&XMA5Jiv9kzAE#5X4*3`=ga{&0t6PUtgao6%)duTJM zyD&Tv*R$UWw-M@~wYJH*QKT_R)90jEbf?8~ zA;$x@qkd*-DshU0;L2sbnFFXW3|fgIyK?UR=u;}ta=oA!pEaC`<;iT_*DxtNms zrqNNE+1dZ!tcr!0g`I_!HGS6w9ODNEJ2Ojqy)rlzbd#^S68>5PL$bXE0T6%TdcFFd z(+(KQ$NF{YbpNaB(3F=)peYPysV<1hMNyiZUdl{Mj0=JzCaW^DG_{%-6{0h(`ybpGFAZ3eN3AiwzXp8^kPV zI-Hj9Nk{@DY}ZhzZ+a|q2^gI{HN~;AwJ?S&{$N6BX?%8SVq*3D+7HQ0dx|d;ToQ2u zp%FEu_(f1JG*w+~$Qpz+*oC$TqyQH|NKak+aHa}&7I+Hj!9fsGI5hoK z%t0CwJZdPS4W`Y4EsA*noJW_4P5Q+?3>(QemN2o<%Fx`cBK+#NzRQPa#&-#W*>gQBfh{AE zXzRBCv#2f>)eLZOB-m zQbPj>#M+mn$p+c{rbPwe&#lhAkAUgj8d`-ivN?u+J|#J)vxKz!x^G7n0S zuEFg{93jS6P7}~s+0WP&kO!9k_CdNXwok}{H+oQ@zyl3-9UoAHPyc6m-HyB;__e!z zGVp6|`y{07wg-i5AVM`6_%8|hZ-{Pyf$CMk9Vpj(KooNc>A=_#vFS5nIAU^-=*HAF z?K_aD^UoKkV5IgpcmPx5D;`S#(|d&FFp`DGe@E-B-`V34HC?+Sqm7VRJm2)@A4I1; zStpL`@%CI_-~mn^Z%`jQABu-a(+vMz&(Z%5mm><={00@&^8SMOZp6p65r+hw zYdrMQg#&w`Y!nGyMFf>@#7{PY0qDN?QsJS?Bv>o^r zS!XZ&HdANnv1Jtez|UYSGPnna3_U-nIb3}kXY!&#i7h?FG>*R-0xdrM2!t*Ah@i;p zF=tu@-C0f+y$H(^|K|cB$Xu~&wd1N*nmGAGj+=ZBDu8j)jZZ?~vy8oIJfDuZ7uo1^ zt7Y&UmZ@Prk9GW`zmp`;Or;^Q5P8#CO{;t{J4r3e4xvLgABuTHgkJ)?Dn%~ z=Q$h?qD0(3HxS)mzc|`0W?aDl>_dYEC#I9rVps}vghUtBOjsz_*NHMh@}gh{l#Oeb|Pi<#aSW4ircWqgKk`mHK2iXsT= zvZL7k=20iW$}R}2rTQ)!)oI2g<2}CQ;p(97F-%cAQ!0)%U^b$w;*HEytSDVwhT>0M zCsZz-2mA}5lk6i@M?{TBKi^jU=o=jMcKux+)=fDS;E$Ne0PuoZIX=L7(>z=6+xgXu zE{x-rvPr3t$8I>W1hR1GP@pXM)@-~yRTdVzvI1!C3JT1-7GO73T)Oj6v>hE5)2?jd z#`VIK{%0=}!q4afk|Z>JYZfYmX0YNUvwWf(rT*$w zaa56hR=kDkfaD-bk{u+jv{;t}8~k$q9O#n|J}gSQ;|Ptla}YxZ;;lRiKi-;BIs@I$ zmN1fAeOx-t2H5_tOLUGLYMsk|zfx}rLvabd%b5F0L`|;89LY4BLkEV*N-IRhM;8YJ zZm5P0!ssIS+D(61mD51LZ!WvIOpFxG#luFarxpDU7~avnFEJk;8Z5ov>r<3tLMd*Y znE5juLGioRIREU$CSke*LwlIC)@O_;-TTKTcla9hP`Z0nTYvXam>tyERawFFV7!1_ zb2yu*Nm8SFN323s&GpJee+_4aQs`*$k+9B%g9lSYX7Y#L_2-(EV;O4wj7!|NienDw zukX@Apn1vuXC-q~7$MVv*?~D^jeUdoMyxfH*3^Z+z|Ox5CBEbMbVQhX4py#H`Tk@& zrxQu2m zIX7FfK67dVBx4X5+YEw%%L2h5$TGd+SA2hm3Ma>92D z;3xfWo5T{LfL~;BD3<)wd@LNL-Sn(^D~>CC!^O_dey>H6FaNz5-}u@)o5MOJ{0 z21BGRc>heVkiaT}**)&g(?CpFJoTK3G-UKWo%gBs+%=eUkaj0}w!=*RMV~>RXC;k$ zbf-^xEerZeS@B!*zPz1@0lAPASi_`t!d`8rX@T}*^cgRB>%aBQenP-ggD^3o&{d1V zHs+UbPz(UdpamCnZMJ>izU9>&BpIu2ind7H&MKcpMTiXfQ3_o2&&pYGIW?|ia z|K8tbvqbnH9yg;x6HLEk_$M!ntV$<*-aYxvmn!}p2iR@kQ+NC!g5e(mgt+?ow8KEs zK`QtKxbH=)N%H!k_t$eX^EGx;Y8~K|n4gsO!kK>K5IgARF_|P0S7fu=3E;D+VFGoCrq-Ko|WPOi!fqe-TuZuW^mHC=1gXw*gEs-Qh- zzbK=R`@ZZU?(=!>Kg$Rcm{%aB*E9CHz~lsG(wg97aKz z)~nK>86;pyk8EXul4-SH8tfU=x77D^9R(tB*r$498!8k8OG7oFVg*@O zCq6A$6+olIf*x!D@B`p_^m~fNrU>ee^uE_oH=MVNhhePBcK5VcV)YUwg%TvqJJhd9 zw)~8Vj=l=vSA3iMj)H_c-)7h_4cG?Q7@w(B}}6_TyDtHn-OHseOxy~doqEjwwh z)KhKiWZ-_IZU&S1*v?q}#dvdfH?J6;tu>xb!j7Ar#8+D4s@v~-_(`78W#ad}jC02gm05Ev`n$Ei69dXOr2fI(4 zoSdv^tOp;?e@(?IS*rbodqS-->goezAohE;c=I66j8b(BpSK|WQq*KAV`*w=VQJyu zlTpCOwWEs|i|(${>_nYd-BWH)mOGz9p$1?;`H!A~4eOdmtnhSqb(eH2k^|1|^9Et$ z+Z`5{fke2uX@p{E^5}`ZVJD)y0$kZ74`npFj=Z)1P%39ctr`0QX7fOipF*=uJWub*=?@I07RszNFv#E_X-&tR zw%fx1@HX9T@R7sfCv$j{>75g}C!}H|53S#j4l2f(#bBn{tYov|J#^pHert`KP2%P* z-T}gb8Mn84tgt^Q+xCh)y0i&Zg0K%KN9nK?P5+rCR>bbUtCRmw2whtk`2+LuV&)%l zD<^|4Sor~0(!_Iow|4iI6au0FKz-c)Vu{`Hmvtyyvl$gn{BEWR>qUgI zn;*jr;w|kBY9PX%$$-caB83v^qh^l6T3B|CKBd4G*S!8~N2UYCK&}-%#^L5qC>l<1 z+xZk_5yyzEEGuuA9#AN^?>e1*O-r~mA*>_aXF zw6{_)g1&uYAyM9}22sO(R~f_>^q$TV7d&?V^5t-Sk$wy*|_%W4# z4|ie$v$Qyv`rE8j6b7INuh?5^xo+(8OATav>94HdxW?aNGnw0zw7ufi84T9%|?wP#0 zwJ|x9pY6l9J{+<-Mv--Esc^A;80HsB?k@i=%dB^mOegf`yB`A`t>%{zVt#KxRn+fl zt|scDr}p%;6UvhTvo~iZ0_8Wg5JWPw7(#@jS=d6MM^$~BXX6LX9k)Ly*jz;+Kmg88 z37ULv?VCW4U9PP{w*Q^~u$=<;1SR}7NR3QMBX?iKBPCNa8BB;GrM<_xY8ZSgw7TU} zwV*6#7>31CR;l!>*UVUV#Wn;)Z-80DqEarZ(^U62XaS8%l@SHu`LTizfn>Ya_z3i{ zd!@VhB#K}I7KuYKHrXJYdZz{%00uTctp~22JYd1h<=;YI*dYAjD)mwJQ$}Ye0g$;Zuj3I89nhsnRm@yX_h0A0n5sYU6%B&5pwyBIfsg}+P|0u6(A$+50Ajf{q1vYg5#(<%tA*^c7{*I(3*OHJ79FN=^ZfezYo zmQojn=G7YTDzjMAX0kFiW#aSPS%db-`PI7{%%!E;&Y|-23!KwMOw>#91=OvrrE+Jl z0q!NJ2>A(t;Rs;(sr9dNtr1CeS!E&Vbn6jnSeXa*`d7ZC}Z=VQu~@k~T9t(cSwCRQQl(Cq3hUbB2?zNMO}X?DG? zIn$5PiapeD)Bn96-Z4ud)O+30hbL6^?sue4O<1EyRlh^kU&QSkfa=3r(0>GxYWY8;b-XC5}(i{fRU(+{kA@D$^M<}Do{Ri<4S%nx!J?P5> z>+bCWZ>XNdQH=l}Xv|0%P}qwFxFvl~OLl8vV|!g_K%i#@{2=7pT=a{ zBu}5gi$8pnVZL@nIX-gB8h(J0Slsq)NaY%miEIBXu&VEzIQCg|tH{$&;MQ0i0h84b|KUSu+MdC$qET=P?H zI=}Bajdn|5b-hJ=9vW0j-FobO;tIBnzTtFO>G_xF8NlU36hds*Khdh&RXZYy%Kdrf zz^`rFLAAPsPWRC*eSh2i`YSmEf6|S8Crw&s0<^mXLxvBc_Kd`c1jIq$WuEF2>#WX+ z%EO*(o-D!%^)3ZZyb!cAk7apBd+Jo1NgtFdAbg)&| zWwwNO5__AT41s(7Fi1Dq-jX9CtG7uJss?##*8rVvnf3mg@g5cPeDkx_|9BBg5c-Dr z3$X8&6>Tm)NI6-?5lrZWZ~U<>ZCx_@=r`UCTKw)SWx#0P;3e;_ zF@jZQK~L;kuQq)d6|8oMbhOJL_o!gY2jaOfKPR4UJmx|$%<#+8g~RD%aK!Hj2t zP1H_4#Opt9{e*q>t%v`fM`3-?yPjhRqwQKQ>s{GQm>N{lM%r(y628BX4kHUW1~8k# zo+4#@HIS+R#O9|rm$fcOxC3vf(@>GddRkClT&N0T2H1nQ=nnAzeA@^H!Oir1#l{gU zu}+Isd&m(wFWvgL4a{2WXC#oyqYxtGjAt|*#_Nbl-EJmzW~Ubb_cl`Esv zh3xv2+#xA>3MkgvEy-0Nj7)5HGQhgHrHodJV{Bn~+nC883a2I2pb2ymQhrXieo zs{i9d(F?Y94NB2p2<5a@n`;wzhIozMfi-pkCrX7uePyh;!@fO~h+>`##D4wS5(+>^ zb0LtRACrjzxo_Pq?OQ~(1zz!%B=R(7cCeMZj*jdm%9nwz=+WAjSA4jm(Zjf$%HDR?L+`}9AKX*< zqU>^{fs^rpB2!!OpTi#(fSTtGu2i`6BXm3br(o!jGDA$rBlFp+l!fDNWu8G`hn$_LrC@H!LZZpF~(&w=K*IqKz26r9g+<7wf&_e zwyReFHa2}Tr)c%&3XtrDBFiyn?Gr`~Cm%o;PI~UJH~;$NmGkgAxiDZ;s-seFyH6Nw z+jP0b%=)c^s`ey*`GF^_xy@}$?xaE+{ns}{#PLtiA*-WSkbtQSM`pMi(hK2~vFZwE zZw4EwQD3%!IWo8w;FWUD?iTzMcOnW%&KKUpy4kocV3o_lhp_ZkpQ%~2~V6A z$4nh|j5oTXSq!uax%`k9xI6C~t+glBGd6mt8w97#0I{{og3X}YRLZ$%*gQ19M(F&r zg5UwpcEXUGuFv9N89O2D5;VvlKrKC>n?pxmnG2=;9B99V+8$ zoJyo7_5PGZJ)WsoS8US0u|%Z;BN<8$2aDs*Dl?~TL2fb2x zbhuHCIpSUdK$;4I`u8$x9kia%Hsyx(ojs8#w;t5Ota zBw+~`->nGEK8qDf!unWNYKWbEdU>d*`S-h6_a(>ybyJ{5Xtq~O1ua^1UKTxJMWm$e z$PD9V@zC2+X_9Z>%)(0dVuA4dCG}y_!kF@EZoR~0Uyg_vRaM2$V@pS7HdXBv>Dx>Y zei-;;(Zqz41HdHG5FaBNaC4?YnK*L3ARyn_Q)F4|7kSBE!o2~V!Y%eU%3jg}Qy(WX zSAG~EqG_>e@Z)q=i7V^o708q3h;ELKTUI5$3O|jIf*ZZs>IWkjbn%_boEmLf=1ouX zFF2P8J(a9epV3;T&l;t6Ft(8Eh%bM2C3G{SE5G~&GP6>_OIN4g>#gj4SU;q%`;-@? z6lt_yBIb5#8CbPN@+$<`0&{Le?yB?HJ)8%yojG<-;?A|sr%?fPGVVuNo7?$6&G#x>I*gdb%jy1URZakV ztN{^MB^xgAswdZY_iBb(=l@Ws{kiTZI3!?@V=_@OkJj9pDK2X-UJBIDPVoKdVng)> zlU^^6a8MK44Yj*d>am|bTw8h@yjQRjBL%&jKL}$h*u;r`Xo9$cs@6lwPUHU{09!z$ zzw5UVb`#?DSkh^*0FvD3j1=w5dZq{;OnXuAoqr}Js;cs!iP=mgJly4yCocX|&bta{ z2%*C03Ac)Gd_0KBX%?4;VRQcE#<0InSTk!$SCI0lZygZG?rMeDumk89CSMsUp22d7 zw+0?T<6j&O@!-!uf)u2xhtkqZmD5}}8mH3T(C9daRTRv*c{uan60c2Y!9d2&BM=qa zk$=14YwEJ^YIpH#yKa#E)^?&HU-2C7=w?`)WF?xh_q5oWRy#g>zOxIy6s6t58%FV? zr$tnnERBD|K8sMLfC^4mrAIlse*rfwyY`j0rKoCOI3Z;c%WM?fw#w(a6JJxK|8fo{ z?+@;z&-Fo z7M)@4umH5UE%6Ll5E`TO8KfF}Vpg9dQR*g?1{+S&kXfrVhIa1r}!BQZJ*I&I&Vg=5QK#;6R!h&vi!!?L>_|El_}%(Fn`j% ztn=zZYu_Z7R9wR?7bvCdU;pHz6^r|NI74x71uZeiBHZ6(72@eL_FO8ky<*&RI$b-! zzE$PJ>)Wap^lof%cj-l7pUVV^5cAgp5oMg)&IRyuI{9q_y)XmM#47>&J7zyTM~YZF z8hxAQo-&SIa%DZ5V()g;LM|utB7boL&wW;hF@!w>Y<4s69j7q*5bU z8AUBKV997z4{{oEqaq}n$@{UA*Ob-h>jCK&o|A-87t7-CwU`RHS$l#* z`8zwZIl0gfWw0=Z2yzu;$Ni~SV9{s2g5s zNC(z6i>hz`@(R5&hAit+v47u&qbdnTqrD!E)VD(FkW_;uo1Omgbsl~|KVOmg5#7(u z($!cmB0O$#6a0iXLKI9!JBZVUbiI8pl!qB#`D$?tAZvKmx$A1fn`_r{=;C*p5qMy! z`}egaECO`JfuaChwG|f&>?*GC1Ea&&OOfgUlxUD4w5w8)9AR)y?0@hdi+1$6o*&GDo>I8uUOUpn{@0+ivFFV|WRbPRrcSRsKi3T(z5}=B z<+uOP?z_k);>7igE>qoAL%J0r9hVlYJxtQCsM)jxz)9$gMtEEdf}#lY`149VrkJLi zs06vI-SdRHu#n?JKs30&oHK2Ck-2>=5H3XN^%O4{Egb?-OMmS`M=Nyb_TjZb=kB+% zudqDHZVlee#RappiP$Ev|S6dCuTYCkenVt3oR-Mv3(e! zFx_^hc_7=fMH!1aj`g1cmv&t~P3IpB!wX}{^mx$M(ti`r3RZPNk3RD5iOA!*2CwAO zdCUoz(yrWnijup1L_Vl934vs8m|v#Bm9YMc&O4tVpL%AAHAp96LpGehj3FgxgsRqc z8l%N<{tiz9IpACN>5QM@kFB;e5%_SVQab42Z$c`teTV?T-u{ncQtF8GQ;%fOpo|la zuIDWv^?#haG9e)WF9eH6V5Y+6E(hVe6js7M>^`z9C*y0j$bUJ|P*r)d(Em-T)T);o z+ZCPG6u*_8PlHGSU7u;7jZ?R>FWu(g3GT6>bH!~L5$e$IZ(H@Ph4$y2EqQ?rf|s^0kX;uP^SprTbtauEY&euxu|M?K5^ zs8>8QLFP_{$1yb%Ivj+?SCg*!jiOnW?tZUU2b&wED1;77Uzj{)(cU5H#BQ6%I#(-s zSbv$82Dx^D?%OBMrO|=c=Dbw>UXIoC#g@kMj4t4xT^N&(Yz-|aaEIYQ$CZAihOBGO zV`DTN_t7NybHC9f^1s6<+Xe@ngzR%)W6X+>L4JVamNcBsJxB11m5Uy8db@tC*Kr5a;bwb4st-Xu;sk#9cw(SNkRRle_;#3e*zQtIDz$A23@c)+l*mUaG~ z!Dyz?-NaA=3HI>y!+!|b3Mb+Fu^@Vv2{MH#4^V)C!feS24)D{zkAu8EJ;Pg#+7PJ| zcbt8!upW*ThuOk}Izn&PGu}kT7ez&ePi4%{XCMGkujJjp3+uhjPB1a6s-~clv3wxq*BTL4e7H{UgtzLAc zBgo&F#CU`>E8{$n!J9;uMd!81$w}~9>#fg-Wi051j2!onU!Ls^xdp@-&mhW`;%xXI zNsAQ>!q@)=a9DK}cK{{*VRO5Vzx9EXraL zT_LC|$b%Cbn!dpE3tE+JUXIe@d8Q^mfBm;YwL}^@oe?sP`KB&^QGGPjMt}8{k}KDM zgof_Ak*mGZFTcXXBx-B=`Y#d_TmLaMm(FCbly^hu;kaQ+w92)L247nE%KnZE-1Plt zILB@Z9iUMb1+t7(0uaWc0DPr^b)B{dK+Q-y@v77Mw@fQ(Q+PL`w++CMjo2+s_?vID zl!0S44g*R&`c{q7V`J-}nSUKi$nY?P+rlCSCY9^LG9v@>@;n+#D>i@ePI3~O&IOR+ zwiBwjpCGfJ{duEeH5qpy{8cd>Im8^N81?@sxuHdU50%11aU*{e1R;PA`~37bD-t@k zhOA8v_u$%H%NnLbd(>!S+QX_j%4Hnrxp2g-mE`KzO|9e;^Q1}$v zFrD6;7x7D^i)M{?2?X2$sA#ZG;lo$w-^y9#t>{20GK9*i(`&Avv=dA)?Z^3f2;Ii# zyJgRcSl)>I89wB6DHgu24I%PMK1~#D>(Q8Udii|(%yfR=;QjPhLIieN*RZFTZa4H) zK3lRQx@xpcJ?WMt+kYE2PGoetCpf(xV+7p;%^-v;GhKh6Xme8$`DO{0IvgbFt!tll zP9}{H0?33T_$_gZ$r;+8 z$K#7LJb6c8T#ZpFmIuT+`k~?A4C@mPOTa3(;Hv2mE^FeMSAQpg6dRhA4*6xJ!dahH z;WVh&4Fbv)u??tlTC`h4IBjc~lrGZb+7eiRDQc z6jT6D7^6u2q<=(iHNY9Q-l;R8^x1FtPdrjMrp&Z;jyBJo5U=t|#B!DL!YPq^mxVw` zWq3R1gmqDrP;8}WR{em6&|6Jhh}etlKG85!RJ|~k!rS!l;Y-Grl4%<>PpP zl=)&=_@I8)ea?$o$^hz24iQ9gQ3S!7);}$&P>~RgHpmEIa`FXt)St+=xjfBnPb3Eb zm#v$YY8jJH%dLCh?fXX@QXa6!SInNZ{1DiuKhC?s%n!agW1~of+K`vP`2+CqUJrNb zQnyjW?SIa78p5q*>3O50?e_fZ`mXSO;?_P$!-?bdcw8orOHyaBb;a2o+E!#h2%p1@ zFf-iRQHr?asUdl?;}*dM)6ACol&@0I{XaE11ZZ5-Yp^8x#+Hd|J8xw4%IZYUn9AFjT z>T5o}pNVACSgLm35d#3sdx?*|i=<_jUqk#3uZ(|J>-y!7Zt@g-!Qcwt{}S2WP+K)= zQNcZ-3O?|ZgbMyseHu31-ejLoQXC-mwtugF6(4%TI)Rjbr|cfQ6cd{RT2>r4WM!T{ zb1Ka@(Tz3`v7>66WwNav(5}5&&9&dkPq$SeoQ!oD0&f|M-M1L^jzD?mY((*!Y;;w8 z47kZG`1vPydgM4MkU+lR8GK7IRPd-n@uQv&X##ugS;7k zNAroFkYkWfSaFx=S#U$(7=Hpap)mG_ zov~XFSSik=HbF5vN=?`+sDP)Xc6zS<#tfxfVKoMT>T?ZIa4g?lCgT1tMqLOutZM2x zgW)R>EAsN6!&sZZWG%cq40&kUE6 zvyG2=NRypwyCaC=d&57*`x$rnPFG{8WT7A-JkN*a>1lY!ad?A($%6y8Y{8@1A!%6J! zQT#$O4YPf0;Ok1nu7CHHx(;Id}l6HI7OU^`X*w__wh=Jl^y+$LaG~A_T>X_roP_u@F}Y9riUd zajyj^ZJ|XiZ1^6C%m8}^Ur>E%zg}Q^aw+#o2cPhO^pWL|k$*2r#fi_>b}PP!|F=~& z2uZ?LhN6z5?&*g)X_1z6d6qjQ4GE#~v9`?cEM2k87XV|arH^pxrB6|h_BG13;X*iu zr?QUKZuyBN)VXJn>W6=!TL6d7)7q6b=t`^ME*?l(Kn$>H`FpApMRKXY}k{MlAobA)FDFW-)2BLM0~I`u*6{cgcP!+)jj2O_}+=@oxPtq z(CW*SVIf{-dPnF;ID{wrKn3NfdKR9tAGJ#XQv=wv+;$Ix_}Vm%Rqq1-IcBfJADe73 zAXwh%ZCIsnOhbqLuP~ayMr+r%fF^ru+DtNqLzs0GowJ8*1bk`aQt6iHn)t0Sq5vhB(7%9S5EewFQVoY zEj5bY)Oc%T`8vvb0Fxunr+INO`k7nMO!A1>XP97Y=8SSZALZ&h-w04;vw*J&xoY4x zP^wmI@P8OlmcI#d?upEuLMaNffk`yrGw06#*Hwv;;)Xtkf0;%%Cv3^ctp87>KBNEo z*3nEjWaxlJmJNNdchuR6@Jf_JTvl#@FBbasZ?UVvFH zaM>iB93e02aknQ$(Ed}dVcfd+ZaR4}nB2}`Xn&~BeP*8&Pm)_jhOJl}ibcs>gNFU= zE&TK*8rI6d`#pZ^m5iyE@}Og|3{YSi!O%Qwbs9`|gqO`kR!*1%YuXA z4u915;wbz^V@hKcE89Y{EK=-ws4cTG^Rk(F?Pd5E0n}UoS7nAi7|dDBt$vKPlHHoH z!Vr}Qbxery&8Pq1n3ofbC)X6u>?kv0e#7askujWA7!s+*7gUD$nXAF)VWzyHpE$`q z%#hth(OHSfcKbk+#?07AF2@X}pdV`=`hN`BDx?N>xAjII=`Vwwys;|L#5NvL!TiS+ zb=F;v^{tnT{-;2+UM&qel&75TOP-P^n?=vU*(itM^04FTM+pZaIBs|oX*M+X0exCb zn8b8|cRU9INM(EM98_vwARp@I*>Gue*Rt&@NtNJ(V%K27V?0YeaiF~dXFWoaV1KG8 zQa6Gr@zx%K^Mf(OYBhLcyzVy|^H)NuZF+ z0Vcjj@#_Ph34@H)8L{~|4ZL^~)PIfYJsJ9eudyWQXN4~M9@`d}41{xN+^UzLLSd7D zP|2LEsfWGf`(%~u^l|APC~)0~Er}t5;#U-|Io76Flt+Ro8s1B@j1u0zFu62wpII? zMI_}H+2KBFK-lR79dNKpqkm<|fT|=dEkr1kIm$w2(b~0QGiBs~`x&^0dl0sd0XBEh z64o*}ckB%t-G~R(M#2E&w!{)}?{i>>H+p|?^;O^YG?(D@WII7dFYn9Y<8`LPGRB{d z#s9S1vtY_~7;vB3;`gn@sph&zGZ@tqg}Esj+z|Mw5nb_W1s0X;bbmA@*S24pL1yeJ z+pMY6O@_Q~jiC9jL^P5$2hi!)ATg4gsBc z*>2(q%4tXx#F_3iJ}Ex4JIYU_$$vi6+_dM8TO9XLtj%&rlC7s?ztXG05}?W!WOQr$ z6dZ|5&z!bfJF!Z2`F||9e$@zsjk*OH`RWx!K&kjXs30rD9Yy;oB1n|8F|@k zzNJ28;}pe!*Ix^cA^bLO85H)bi8_n2IRkulTLC`01Jry4E5G;P?npk-vpni0|2I-$DS-q|P^UfRZ6Yq)Sq-XR~lnQ*YbQ-`F-7wyE0v z^RI)6k(E6c@Ds&l#8N?Ykm2xQ59wvcWQgF2ud8FUWE>hc5 zJw0b$Oe9@@-i@L2hA=jgEX}Z}#ZDB24Vg^uCvOblB3+Qdjb4baI~j1CJxsTI-Z>SM z@3B-7NXEbX%-&M`rV3?lWOH)EELja&O zb8xWbVqkD~cBVIVw0EEf*_qPYTK%I>+05J?;0&^}1iZc40j+@lG{(`!_^q7|X25?f zleW+xWWA=JmrlPfJRFAcCZFt>34+8Edvy#+cLI5^q^^#8HFeFKdt z{v{9y5O%b)`^_QqZ%iX=0D3e0@>J`+dJ6* zYm++BD}VQTf+Esf01ier023z*fbnfeMQx0QLDtr9s_o%^w@<|UtxpahJ6DGPnrcfM zkh6{3e_Kt=ZH!HRciq_0mO;hF{EH({Lgas9-%N0SY^Fd503!hS1pst0GGq8n_0OdI zHZ%P;zqP=_%@$+}Ffp*Q2YQ&B0N-BV-0TgUfPVl7J4c|0+ux4=L~u;(0Aq6_hqobr zJ1B7ftS(_=0s?UU%lxL~->(1Je#(CiDb?EvH3r#OxdM!VCU6Y0AcwbMp#1-H#{P@z zv!j)jtbsL<@;@8;-%$qE=2ou%8TVfyYQW!8DgTdTbNkQcEa|a`{e|7a=b_oZA zw|}7*v@x{;zU|0ACY9gk$m(ri-!2{V-**;(j)|T1zkF}AXk=*vw6_PavHjx$zV+b0 z^u9Izw^{&$x`?K*s4~rejmtklqBce#V{;o*05dBaz`)MVz!i@1Z3dWGSpjZLZ=-As zbopmU01WgtAcwaUfUTp02fzem2lsm;*=tw<41&K+|3Yj42BANQ9l#*`2XO!xME)R7 z0E6iNB6daq!{d{TeV8=v$a^u{Oi2fZ=K{V(EpW03!Ym;nrm zf6yC)(jUYEU{L;p-WXK>pf?7!|3#c{$lwoptCLOBE`QcHG5^c`R)gtZ@NIdsKV)xB zGjp{y1KRu*@n-uw|E(6wzu=o-tH0nIoAn>a^rrN$rI_B7g8qVUN^Spezs1@byj{dr zKof^QR;K^4{_AM}$$cy1%U|%V47dT<6rQt1gF2?TM5p8_3urV z%U|$KkALf5@U4We|G@t|QS!eZCI8%%jDL>U|2$*=!AcHxAWNW{x$)cI7k`Dw7&zFO zyJ#`KU2{xt_P4Kp|EBXF1Z011=)basgg`ECbS!VfPRGo_31DJ<8}zqMv3vYSuF=09 zcmG_mZ+F4J@$Y9100?ve8o|xafQ-2PEfQ)23x7RDbH<9^lX21?m0en4LoH$@sLCXe`ToB ztN5nK%y}2J5>xF`!Io?rg4>f9Qo zs4d=8-M;dx_9SetE4bd-3+Xu-#wzk@;1QrahTQ$k-@uVW_-eC+N8H+CHv%FuE$jtv zSXETRLfi_|>V8@xN#3NO%#FAQ=V(*Bjg@LZmyYn4A1&$AwY2}2&|?GRQg7B_!he|W z&g8$?ezmcz3^-3wDenc79YuaR!D#HgpQ(`zXg}aQTBC@J5>LXG@YRH6VzJFSygEKY35W7j2I;pu51uJJn_qC6CqCrYs&L0Zy zdqBzb`Sfhhg7lPI%PL8Fcm++k5y)a$^0{I zhO-i~dXh7Z=cC?l%rx?9I}R%ce3G z$Z~+7`T0-Ec)N_D5PxfYb`^zE67@(9GY5h+$5iGjZv@5>>#yM3pcuqVqK=CQ-uGw_ z9(U9!Dzx3Hf$&p%+P6P)QZpdx1!jcg8diVfGUZAzqFg^)$foiB<;=c9#=cu4r;8=L z3HEu<{W2_Bw9wwst;4G4JtPDZ*+hN_e!?KEwrceZg^!zI!`9rsuxUjwp)hIO=r9)KeCT*@dBZUbXi}X65g+rFbb}m`1@y|}$-}*KVTVK3 zE-lT9LiHxr_J6)CP8fz9!B~_JoJkL`2(168DCt-#t#k3S*Z-7E)*jA{uxmz&j1;>6 z8j~)CYXmfrEH-z-`T*LX0_ZteI z5MyuV_n(glD+N=Z*-+@jiX$5sa*2gw`Kot4t-8XFn}6u)Tb*5EENvgw=_@y)xSg!B z8@nDO*Le%;h%V?D))y;r97#}sNNS|nfG3?3Pe*$BZINo_QKIuz@k?+eBjT+1SP zY)v4X=XZ4nKk$QcVRBFuC#nm3d9KoA6D{R*owzE(?j;?p)(VK{u|6iJKGxYMcDcl( zSL2^EiGQE}1}4JKJZi4h0g+RZAM{v#MSb5NMbd`@rY@o$XxgzF384*V1f!*W5%=?-wD9nNv$GdO*y^7?J4s^)@AtHr|ob{v4Yfu=RnZ77+tj+QH z`x?mu+qiLEE7|=WYOcu$Wao&cv+O2i2&tNR-G4FT(*p_#+|0lpEDPTCwyydmWrSVg z3?Mq10UF$1vDrNyZSTk(UdQ(P{}*J-Dr0f5;pG6*jxw;@I#-? zct{e!M#)ld%o?r-B3GE=>!o(1uL-f$`KNv`xg^GO5 zmw(vK&5x0ZOqLqf+4=CeWZXaikig@05jg;_2gO;zZ*0tq13B@iM(jZ;QZX z6brcdI+p74dPP}6(R{`f1|t!pPHdjebbpPi>!O^^@Hq}w;X;)B76<-AHTsfz5q-H4 zu6XfgtVt*cf4{8sQ56;R$kFxf-axo9=so+;cRoG3w{eR>8Zr{oY6{g$7X28urY#F1 zL$*LiCfGaZu~<}p{LuMTa73P`oZd74#{O83<-B78UOyR=eq}V<%&wUy)SDU; zd%pKMM@%&8JWY+SLg88=2@!&+YNag)PacKeh?xpWkruNzMiEUGMWFzbGk>K8*P0!& zxoQ3NE?sprmG9<#upew+*979@Gs>!74zfV9Q_SrHzZo6M2H+4R;(Xhj8QN0p2cC?14`)hAD9RRQlh{*@={NwgKU+s@HEV5t}o{F z=n4*ycOa&mZ}t!m)-L3I@P>@7LpS2ATJ`@6x*0DV-uj0op|u77WMJZ?amKb`wzCz6%A%pEC z`5&pQ{S10OtiFBX7k`KuvO%x6_1`ks;F2*jJUhwuUpVj+eu?5Mgil`b0N17o&oN7L zEaIpk{%F!IR!{G!xbprB9)};NRN;(Yhe58lM&@U3?90`?0`AZI=nZMq9J^1wrg`-! zwLpb*PYn4r_=YixICdwlK|OR#`8^g$$PJi=_KK_zR}joCO@G3;1+YH5U-PziLBhL? z^OIv@W7S6{rv&U#Mv0H1`zq^nA;G1Gxa-HGQ7tZE5#%_AKRIltqrh2??SNAi^Ihehc2#eJjfHl3nih``b;ui+Z9byC~|gLKfhen>wP(-bPv z-2<@!{k-X}pds6FlSQlXBRB7jyCCYms+2|@X$vsQ^5t~D4Wc~Ff0?>LT(+WvsvjUGm()gRTV3mG%;5^1FDbxl_$yl^M79DK~qUNShi5##r3V(WB=o6=z6$A8Yp^A(u$46<8QAF?61aD~2$vqG<6>)h!K$H7kUpqm5dT;E6!PXw^+z}zWcl`(i z_RGq!QE}X>*9NLE#Av1RNVjK?Q_On>-`J|e`B^%RS3%`Of1Qsp@k`Mc>C56RlG za`>K+hxV?}cf2og5ODDE%%$GZ?n|lWvk~WypkQK1priui0-J_vMSRDq!hW6Q`eb#j zZ3lRS2#fmy0zFsp&#^MY099V^rPaMX5dO3V$JPMU(&vC(^^c(s?_%K}b{qx5o`3pw z++%@Et2goHqf;tFMR~u@Sa?g5w;=S*>zm~?L)VPnt)-*9x+jt|J1m$DJL1~C*Fe;b zi|X~;U8yW7QfD}!->y4;H%w8Lhfn1YCBgVnlI&c-jRjSSC%3j4XEJDqfndB8hJem1 zo}FH4k6VV4D*@-}eCo;7W+78c*(opdQ#zBuaVznq(OO%iCHwoiF;;x0VrkSKgbKzff!@tj zGxRLpY5({%z4a<7KB1J)#5h3(2zALiKdClZ4B%kQo!`@7XEGa_+Hv@hPk&SJp-vWU zI7U$lML*(Q&=&xuDH4Dw=vrAWLq{bfig5bIh{{C$UCxJE>#? zSU$19D)!x`?{}^X2(t-P$w{_iu;^HDk@3X4O)BuMV$BRDzH@g+4GT5B#g*#nca>U% z0xkQDK$q_9RK;kKx5SoC27kBpN-PI|?jOe3(E^wa39!hBr#?oF?@vYH(wzyd=sVjQ zjVhzZBY(bCa37tE^D1Zb8;^%W+dtwlnjU?o>5HN`jLsMRQBT8iSvTkrUCxV|^a%f=boJ115=)t?z+MlZot$?SfWSQAO^jZh!d3(P?M(p%wx%e)f=^Ok z9bT(rcIYtep7-96fg4P~&XTbGrNfpgT$d4!Q!<@kLM=1C(4>c=Uu7-Ni|_rBs(2nF zQ%{pmsoD>qRr&h&6J7xozt%8A`B?tA zT4&Jqf=H7@7&q&D+hBe=uG23R0ayo#oNW2O%xc9iUq_RxaRx4%GY8hcZ6Bg_B;AG| zQS?7p55hMh-@UHBqRErZw|E?ug3O)}`rhf%GX&sXtMw18gQ7^hN+(fzA_h z@Qgg8PX|(w0)N<%c65mD+V1XKO*3#XzZ_J_`-E(F?P7z`u8+YX=Sh0$rhKhU>+{;r z_N)HUn>oKk$MdCTN3@?l`b_OmFCgWFWT8-7)jPuhl`=NuWB5Yg<$H(0!+H`hrz5WV zX}5&yVbx#WL*G#G)A4%>bpm$`J#yftgIqCuH6G}FPJhzM-;bph0$J_C`87WH?_;FIVKNICUM9BFQmnb zpOwKI553Lp6WNNa%wDmIj=v;7M|1M4;&yTBS*L_-JtKKN2-^~Z*E7LNZRjxC=f}bw zRp8D*^na!2ZcsmWSL>@9QM1J{bzg?4ZsM@t z;&TwnkYC6lo=pisZYWA&*p-}ySx1cA$BcxojvfkHbC zlz*#j*`$s|-x5+S1(scWY;4a@nnbQA8qOz`0aF`DWjj3CYWSP&6M@6A1cmj8G86ar zES{Wa>}%C`YKEELuz@vGCp3v`9g}buSGCULE5&|Ssb}m{U5V45&SOK^&b;W2=|LxY zlWD*1UO6HjZl=q?eoX71)zM}hPB}a%P<4Lpomp7JzXmH0WJA4cYhMgh@)40B{&Q!@?n$%djRwZ4(bk4%gj0*7&|-X%*XW>&s~r+m4HXm%hKHB- z;qQq{h%dlL6))CEAr{n^nEL6LSYq7aK$~%`QHDnGaiwjW!q9K2{#QJ&>$KC&CubxY zz_P`QqS{G0QR9hk#p?YfYuqfWx_?a^0n0`GmEc0Fj6=&XScRkXrCu& zUBF%D?FX+bfP3lzNLE(&+k=#i#*Y5i9lx;ihnH>xXPXwXb95{D$DJcxxoITRp-O6c zP!&@6B}+BCS4>kiOLFf|Ds|Bl>;%kVy&;suYj@BwAwN^`bJ4K!@MQSyjDI2Zu4Se8 zRXjVu!t=sTC3RI0@l9)gSb>k)<)VJp3+o;}m&Q$lkJ z@%_ZsoZ<1(CX_$R4}XDO4GnHxRbQz6Bqt7Lu7x>Uz~iPYfi{**gfnuHtKh%wC4FyN z2IkMa2cS~fy#dK%<;!oio~J~!r;iLVZ4dxv{!yBF}K#N#{i zHj_NoVU-Glu>epY#QeMobSy7!z=w2&&d4-xyx<)pb+55+JAb9=9>&L@H{_C^!SaA< z=H;SByXgNDqe25g(8le9LpEInyTYlnUhY=e&XG`f$|kd+N!7GO?o^7YC6DD399Oko zUQ4c=e8bD~5tdpyM0TZFkqXp`1zAkP6!>^uU&MXnaf(}N`Jp+Zqg`;o>ecPo+Bsf& z9u?(`P^5GnZht#_*|2$Q@@&0l2k&jI$t7y0Y0KHM|3IF-l38ZzmW4L

    G5MrILni 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 diff --git a/doc/src/DimRed/DimRed.do.txt b/doc/src/DimRed/DimRed.do.txt index b29c5051f..a66916083 100644 --- a/doc/src/DimRed/DimRed.do.txt +++ b/doc/src/DimRed/DimRed.do.txt @@ -339,31 +339,91 @@ Suppose we have defined two vectors $\hat{x} and \hat{y} with $n$ elements each. The covariance matrix $\bm{C}is defined as !bt \[ -\bm{C}[\bm{x},\bm{y}] = \begin{bmatrix} cov[xx] & cov[xy] \\ - cov[yx] & cov[yy] \\ +\bm{C}[\bm{x},\bm{y}] = \begin{bmatrix} cov[\bm{x},\bm{x}] & cov[\bm{x},\bm{y}] \\ + cov[\bm{y},\bm{x}] & cov[\bm{y},\bm{y}] \\ \end{bmatrix}, \] !et where for example !bt \[ -cov[xy] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +cov[\bm{x},\bm{y}] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). \] !et With this definition and recalling that the variance is +!bt \[ -var[\bm{x}]=\sigma_{xx} =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, +var[\bm{x}]=\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, \] !et we can rewrite the covariance matrix in this case as !bt \[ -\bm{C}[\bm{x},\bm{y}] = \begin{bmatrix} var[\bm{x}] & \sigma_{xy} \\ - \sigma_{yx} & var[\bm{y}] \\ +\bm{C}[\bm{x},\bm{y}] = \begin{bmatrix} var[\bm{x}] & cov[\bm{x},\bm{y}] \\ + cov[\bm{x},\bm{y}] & var[\bm{y}] \\ \end{bmatrix}, \] !et +The covariance takes values between zero and infinity and may thus lead to problems with loss of numerical precision for particularly large values. It is common to scale the covariance matrix by introducing instead the correlation matrix defined via the so-called correlation function +!bt +\[ +corr[\bm{x},\bm{y}]=\frac{cov[\bm{x},\bm{y}]}{\sqrt{var[\bm{x}]\var\bm{y}]}}. +\] +!et +The correlation function is then given by values $corr[\bm{x},\bm{y}] \in [-1,1]$. This avoids eventual problems with too large values. We can then define the correlation matrix for the two vectors $\bm{x}$ and $\bm{y}$ as +!bt +\[ +\bm{K}[\bm{x},\bm{y}] = \begin{bmatrix} 1 & corr[\bm{x},\bm{y}] \\ + corr[\bm{y},\bm{x}] & 1 \\ + \end{bmatrix}, +\] +!et + +In the above example this is the function we constructed using _pandas_. + +!split +===== Correlation Function and Design/Feature Matrix ===== + +In our derivation of the various regression algorithms like Ordinary Least Squares or Ridge regression we defined the design/feature matrix $\bm{X}$ as +!bt +\[ +\bm{X}=\begin{bmatrix} +x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +\dots & \dots & \dots & \dots \dots & \dots \\ +x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +\end{bmatrix}, +\] +!et +with $\bm{X}\in {\mathbb{R}}^{n\times p}$, with the predictors/features $p$ refering to the column numbers and the +entries $n$ being the row elements. +We can rewrite the design/feature matrix in terms of its column vectors as +!bt +\[ +\bm{X}=\begin{bmatrix} \bm{x}_0 & \bm{x}_0 & \bm{x}_0 & \dots & \dots & \bm{x}_{p-1}\end{bmatrix}, +\] +!et +with a given vector +!bt +\[ +\bm{x}_i^T = \begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \dots & \dots x_{n-1,i}\end{bmatrix}. +\] +!et + +With these definitions, we can now rewrite our $2\times 2$ correaltion/covariance matrix in terms of a moe general design/feature matrix $\bm{X}\in {\mathbb{R}}^{n\times p}$. This leads to a $p\times p$ covariance matrix for the vectors $\bm{x}_i$ with $i =0,1,\dots,p-1$ +!bt +\[ +\bm{C}[\bm{x}] = \begin{bmatrix} var[\bm{x}_0] & cov[\bm{x}_0,\bm{x}_1] \\ + cov[\bm{x},\bm{y}] & var[\bm{x}_{p-1}] \\ + \end{bmatrix}, +\] +!et + + + The Numpy function _np.cov_ calculates the covariance elements using the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have the exact mean values. The following simple function uses the _np.vstack_ function which takes each vector of dimension $1\times n$ and produces a $2\times n$ matrix $\hat{W}$