From a8b45a911ab973e716ba1cb9747ab7140cf789f4 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 23 Aug 2017 11:18:45 -0700 Subject: [PATCH 01/96] updated figure --- .../figures/graham_pzs.png | Bin 103028 -> 92687 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_pzs.png b/docs/desc-0000-qp-photo-z_approximation/figures/graham_pzs.png index 982d1bd325c7ce29353b4825b0ff5bb3561f9201..99ac291640f93bb45695c2f760dc14c4e3139ade 100644 GIT binary patch literal 92687 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 z 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 Date: Wed, 23 Aug 2017 11:48:24 -0700 Subject: [PATCH 02/96] minor updates --- .../authors.csv | 2 +- .../main.bib | 36 ++++++++++++++----- .../main.tex | 33 +++++++++-------- 3 files changed, 47 insertions(+), 24 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/authors.csv b/docs/desc-0000-qp-photo-z_approximation/authors.csv index 0e2feed8..4724c89a 100644 --- a/docs/desc-0000-qp-photo-z_approximation/authors.csv +++ b/docs/desc-0000-qp-photo-z_approximation/authors.csv @@ -32,6 +32,6 @@ Lastname,Firstname,Authorname,AuthorType,Affiliation,Contribution,Email Malz,Alex,A.I.~Malz,Contact,"Center for Cosmology and Particle Physics, New York University, 726 Broadway, New York, 10003","Initiated project, led development work.",aimalz@nyu.edu Marshall,Phil,P.J.~Marshall,Contributor,"SLAC National Accelerator Laboratory, Menlo Park, CA 94025, USA","Advised on statistics, and project design and management.",dr.phil.marshall@gmail.com Schmidt,Samuel,S.J.~Schmidt,Contributor,"Dept. of Physics, University of California, One Shields Ave., Davis, CA, 95616","Provided the lower quality data mock catalog.",sschmidt@physics.usdavis.edu -Graham,Melissa,M.~Graham,Contributor,"University of Washington","Provided the higher quality data mock catalog.",mlg3k@uw.edu +Graham,Melissa,M.L.~Graham,Contributor,"Department of Astronomy, University of Washington, Box 351580 U.W., Seattle, WA 98195-1580","Provided the higher quality data mock catalog.",mlg3k@uw.edu DeRose,Joe,J.~DeRose,Contributor,"Stanford University","Contributed to the production of the lower quality data mock catalog.",jderose@stanford.edu Wechsler,Risa,R.~Wechsler,Contributor,"Stanford University","Contributed to the production of the lower quality data mock catalog.",rwechsler@stanford.edu diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index 1a96a0d8..e45d1444 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -7,7 +7,7 @@ @article{carrasco_kind_sparse_2014 url = {https://academic.oup.com/mnras/article/441/4/3550/1229381/Sparse-representation-of-photometric-redshift}, doi = {10.1093/mnras/stu827}, number = {4}, - journal = {Mon Not R Astron Soc}, + journal = {Monthly Notices of the Royal Astronomical Society}, author = {Carrasco Kind, Matias and Brunner, Robert J.}, month = jul, year = {2014}, @@ -21,7 +21,7 @@ @article{dark_energy_survey_collaboration_redshift_2016 doi = {10.1103/PhysRevD.94.042005}, number = {4}, urldate = {2017-07-19}, - journal = {Phys. Rev. D}, + journal = {Physical Review D}, author = {{Dark Energy Survey Collaboration} and Bonnett, C. and Troxel, M. A. and Hartley, W. and Amara, A. and Leistedt, B. and Becker, M. R. and Bernstein, G. M. and Bridle, S. L. and Bruderer, C. and Busha, M. T. and Carrasco Kind, M. and Childress, M. J. and Castander, F. J. and Chang, C. and Crocce, M. and Davis, T. M. and Eifler, T. F. and Frieman, J. and Gangkofner, C. and Gaztanaga, E. and Glazebrook, K. and Gruen, D. and Kacprzak, T. and King, A. and Kwan, J. and Lahav, O. and Lewis, G. and Lidman, C. and Lin, H. and MacCrann, N. and Miquel, R. and O’Neill, C. R. and Palmese, A. and Peiris, H. V. and Refregier, A. and Rozo, E. and Rykoff, E. S. and Sadeh, I. and Sánchez, C. and Sheldon, E. and Uddin, S. and Wechsler, R. H. and Zuntz, J. and Abbott, T. and Abdalla, F. B. and Allam, S. and Armstrong, R. and Banerji, M. and Bauer, A. H. and Benoit-Lévy, A. and Bertin, E. and Brooks, D. and Buckley-Geer, E. and Burke, D. L. and Capozzi, D. and Carnero Rosell, A. and Carretero, J. and Cunha, C. E. and D’Andrea, C. B. and da Costa, L. N. and DePoy, D. L. and Desai, S. and Diehl, H. T. and Dietrich, J. P. and Doel, P. and Fausti Neto, A. and Fernandez, E. and Flaugher, B. and Fosalba, P. and Gerdes, D. W. and Gruendl, R. A. and Honscheid, K. and Jain, B. and James, D. J. and Jarvis, M. and Kim, A. G. and Kuehn, K. and Kuropatkin, N. and Li, T. S. and Lima, M. and Maia, M. A. G. and March, M. and Marshall, J. L. and Martini, P. and Melchior, P. and Miller, C. J. and Neilsen, E. and Nichol, R. C. and Nord, B. and Ogando, R. and Plazas, A. A. and Reil, K. and Romer, A. K. and Roodman, A. and Sako, M. and Sanchez, E. and Santiago, B. and Smith, R. C. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Thaler, J. and Thomas, D. and Vikram, V. and Walker, A. R.}, month = aug, year = {2016}, @@ -62,7 +62,7 @@ @article{benitez_bayesian_2000 language = {en}, number = {2}, urldate = {2017-07-30}, - journal = {ApJ}, + journal = {The Astrophysical Journal}, author = {Benítez, Narciso}, year = {2000}, pages = {571}, @@ -77,7 +77,7 @@ @article{sheldon_photometric_2012 language = {en}, number = {2}, urldate = {2017-07-31}, - journal = {ApJS}, + journal = {The Astrophysical Journal Supplement Series}, author = {Sheldon, Erin S. and Cunha, Carlos E. and Mandelbaum, Rachel and Brinkmann, J. and Weaver, Benjamin A.}, year = {2012}, pages = {32}, @@ -90,7 +90,7 @@ @article{myers_incorporating_2009 url = {https://academic.oup.com/mnras/article/399/4/2279/1037682/Incorporating-photometric-redshift-probability}, doi = {10.1111/j.1365-2966.2009.15432.x}, number = {4}, - journal = {Mon Not R Astron Soc}, + journal = {Monthly Notices of the Royal Astronomical Society}, author = {Myers, Adam D. and White, Martin and Ball, Nicholas M.}, month = nov, year = {2009}, @@ -133,7 +133,7 @@ @article{gonzalez-perez_how_2014 url = {https://academic.oup.com/mnras/article/439/1/264/971853/How-sensitive-are-predicted-galaxy-luminosities-to}, doi = {10.1093/mnras/stt2410}, number = {1}, - journal = {Mon Not R Astron Soc}, + journal = {Monthly Notices of the Royal Astronomical Society}, author = {Gonzalez-Perez, V. and Lacey, C. G. and Baugh, C. M. and Lagos, C. D. P. and Helly, J. and Campbell, D. J. R. and Mitchell, P. D.}, month = mar, year = {2014}, @@ -160,7 +160,7 @@ @article{merson_lightcone_2013 url = {https://academic.oup.com/mnras/article/429/1/556/1023267/Lightcone-mock-catalogues-from-semi-analytic}, doi = {10.1093/mnras/sts355}, number = {1}, - journal = {Mon Not R Astron Soc}, + journal = {Monthly Notices of the Royal Astronomical Society}, author = {Merson, Alexander I. and Baugh, Carlton M. and Helly, John C. and Gonzalez-Perez, Violeta and Cole, Shaun and Bielby, Richard and Norberg, Peder and Frenk, Carlos S. and Benson, Andrew J. and Bower, Richard G. and Lacey, Cedric G. and Lagos, Claudia del P.}, month = feb, year = {2013}, @@ -176,7 +176,7 @@ @article{ilbert_accurate_2006 doi = {10.1051/0004-6361:20065138}, language = {en}, number = {3}, - journal = {A\&A}, + journal = {Astronomy \& Astrophysics}, author = {Ilbert, O. and Arnouts, S. and McCracken, H. J. and Bolzonella, M. and Bertin, E. and Fèvre, O. Le and Mellier, Y. and Zamorani, G. and Pellò, R. and Iovino, A. and Tresse, L. and Brun, V. Le and Bottini, D. and Garilli, B. and Maccagni, D. and Picat, J. P. and Scaramella, R. and Scodeggio, M. and Vettolani, G. and Zanichelli, A. and Adami, C. and Bardelli, S. and Cappi, A. and Charlot, S. and Ciliegi, P. and Contini, T. and Cucciati, O. and Foucaud, S. and Franzetti, P. and Gavignaud, I. and Guzzo, L. and Marano, B. and Marinoni, C. and Mazure, A. and Meneux, B. and Merighi, R. and Paltani, S. and Pollo, A. and Pozzetti, L. and Radovich, M. and Zucca, E. and Bondi, M. and Bongiorno, A. and Busarello, G. and Torre, S. De La and Gregorini, L. and Lamareille, F. and Mathez, G. and Merluzzi, P. and Ripepi, V. and Rizzo, D. and Vergani, D.}, month = oct, year = {2006}, @@ -192,4 +192,24 @@ @misc{juric_data_2017 author = {Juric, M. and Axelrod, T. and Becker, A. C. and Becla, J. and Bellm, E. and Bosch, J. F. and Ciardi, D. and Connolly, A. J. and Dubois-Felsmann, G. P. and Economou, F. and Freemon, M. and Gelman, M. and Graham, M. and Ivezic, Z. and Jenness, T. and Kantor, J. and Krughoff, K.S. and Lim, K.-T. and Lupton, R. H. and Mueller, F. and Nidever, D. and Patterson, M. and Petravick, D. and Shaw, D. and Slater, C. and Strauss, M. and Swinbank, J. and Tyson, J. A. and Wood-Vasey, M. and Wu, X.}, month = jul, year = {2017}, +} + +@inproceedings{mckerns_building_2012, + title = {Building a {Framework} for {Predictive} {Science}}, + url = {http://arxiv.org/abs/1202.1056}, + urldate = {2017-08-23}, + booktitle = {Proceedings of the 10th {Python} in {Science} {Conference}}, + author = {McKerns, Michael M. and Strand, Leif and Sullivan, Tim and Fang, Alta and Aivazis, Michael A. G.}, + month = feb, + year = {2012}, + note = {arXiv: 1202.1056}, + keywords = {Computer Science - Discrete Mathematics, Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Mathematical Software}, +} + +@misc{mckerns_pathos:_2010, + title = {pathos: a framework for heterogeneous computing}, + url = {http://trac.mystic.cacr.caltech.edu/project/pathos/wiki.html}, + urldate = {2017-08-23}, + author = {McKerns, Michael and Aivazis, Michael}, + year = {2010}, } \ No newline at end of file diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 070fb8e4..5853372b 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -13,9 +13,13 @@ \newcommand{\textul}{\underline} -\newcommand{\qp}{\texttt{qp}\xspace} -\newcommand{\pz}{photo-$z$ PDF\xspace} -\newcommand{\Pz}{Photo-$z$ PDF\xspace} +\newcommand{\qp}{\texttt{qp}} +\newcommand{\pz}{photo-$z$ PDF} +\newcommand{\Pz}{Photo-$z$ PDF} +\newcommand{\mgdata}{deep\xspace} +\newcommand{\Mgdata}{Deep\xspace} +\newcommand{\ssdata}{shallow\xspace} +\newcommand{\Ssdata}{Shallow\xspace} \begin{document} @@ -115,7 +119,9 @@ \section{Methods} designated as "true." The currently implemented metrics are described in Section~\ref{sec:metric}. Large-scale tests can be conducted using the \texttt{qp.Ensemble} class that -provides a wrapper for collections of \texttt{qp.PDF} objects. +provides a wrapper for parallelized operations over collections of +\texttt{qp.PDF} objects; parallelization is facilitated by the \texttt{pathos} +package. \citep{mckerns_building_2012, mckerns_pathos:_2010} \subsection{Approximation Methods} \label{sec:approx} @@ -228,11 +234,7 @@ \subsubsection{Regular Binning} The regular histogram format may be considered wasteful in terms of data storage; a \pz\ with a very compact (broad) probability distribution may have many parameters taking the same value $c_{i}\approx0$ -($c_{i}\approx(C_{N_{f}+1}-C_{1})\delta^{-1}$) that are redundant in storage. -%It also requires the researcher to choose the minimum and maximum possible -redshifts $C_{1}$ and $C_{N_{f}+1}$ of the galaxy sample, which are unknown -quantities, so it would be preferable to leave them unconstrained when setting -up the catalog. +($c_{i}\approx(C_{N_{f}+1}-C_{1})\delta^{-1}$) that are redundant in storage. \subsubsection{Random Samples} \label{sec:samples} @@ -287,8 +289,9 @@ \subsubsection{Regular Quantiles} \end{align} -We expect the quantile format to be an efficient approximation for \pz s -because it allocates storage evenly in the space of probability density. +A quantiles parametrization (the namesake of the \texttt{qp} code) is expected +to be an efficient approximation for \pz s because it allocates storage evenly +in the space of probability density. In contrast, the histogram format stores data evenly spaced in redshift, and the samples format stores data randomly in probability density. As with the samples representation, an interpolation function must be chosen @@ -391,12 +394,12 @@ \section{Photo-z Test Data} evaluations on a grid, we fit the gridded \pz\ with a Gaussian mixture model that we designate as the "true" \pz\ for our accuracy tests. -\subsection{Higher-quality data mock catalog} +\subsection{\Mgdata data mock catalog} \label{sec:graham} Our first dataset is an $N_{g}\approx30,000$ object subset of the simulated -galaxy catalog used for LSST photometric redshift experiments by Graham, et -al.\ (in preparation). +galaxy catalog used for LSST photometric redshift experiments by +\citet{graham_photometric_2017}. The data builds on the Millennium simulation \citep{springel_simulations_2005}, and in particular the LC DEEP catalog based on the galaxy formation models of \cite{gonzalez-perez_how_2014}, and was created using the lightcone @@ -438,7 +441,7 @@ \subsection{Higher-quality data mock catalog} We then calculate the three approximations to each \pz\ and evaluate their accuracy using the metrics described above. -\subsection{Lower-quality data mock catalog} +\subsection{\Ssdata mock catalog} \label{sec:schmidt} Our second dataset is an independent simulation of the expected LSST galaxy From b2b33c913e28126f27d9b9e79503bfacee64b49a Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 23 Aug 2017 15:49:55 -0700 Subject: [PATCH 03/96] removed unnecessary requirements --- requirements.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 27075613..ef4c8767 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,5 @@ -hickle matplotlib numpy pathos -psutil scipy sklearn From 25c384e9f1f9a3c7cb10f7ec6005bfc60c65fbb6 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 23 Aug 2017 15:50:17 -0700 Subject: [PATCH 04/96] now calculating moments --- qp/ensemble.py | 38 ++++++++++++++++++++++++++++++++++---- qp/utils.py | 2 -- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 877aa934..b017004b 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -1,6 +1,6 @@ import numpy as np from pathos.multiprocessing import ProcessingPool as Pool -import psutil +# import psutil import timeit import os # import sqlalchemy @@ -66,7 +66,7 @@ def __init__(self, N, truth=None, quantiles=None, histogram=None, gridded=None, if procs is not None: self.n_procs = procs else: - self.n_procs = psutil.cpu_count() + self.n_procs = pathos.helpers.cpu_count() self.pool = Pool(self.n_procs) print('made the pool of '+str(self.n_procs)+' in '+str(timeit.default_timer() - start_time)) @@ -285,7 +285,7 @@ def evaluate(self, loc, using=None, norm=False, vb=True): def evaluate_helper(i): # with open(self.logfilename, 'wb') as logfile: # logfile.write('evaluating pdf '+str(i)+'\n') - return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=False) + return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) self.gridded = self.pool.map(evaluate_helper, self.pdf_range) self.gridded = np.swapaxes(np.array(self.gridded), 0, 1) self.gridded = (self.gridded[0][0], self.gridded[1]) @@ -317,6 +317,36 @@ def integrate_helper(i): return integrals + def moment(self, N, using=None, limits=limits, dx=0.01, vb=False): + """ + Calculates a given moment for each PDF in the ensemble + + Parameters + ---------- + N: int + number of moment + using: string + which parametrization to use + limits: tuple of floats, optional + endpoints of integration interval in which to calculate KLD + dx: float + resolution of integration grid + vb: boolean + print progress to stdout? + + Returns + ------- + moments: numpy.ndarray, float + moment values of each PDF under the using approximation or truth + """ + def moment_helper(i): + return u.calculate_moment(self.pdfs[i], using=using, limits=limits, dx=dx, vb=vb) + + moments = self.pool.map(moment_helper, self.pdf_range) + + moments = np.array(moments) + return moments + def kld(self, using=None, limits=None, dx=0.01): """ Calculates the KLD for each PDF in the ensemble @@ -456,7 +486,7 @@ def stack(self, loc, using, vb=True): """ loc_range = max(loc) - min(loc) delta = loc_range / len(loc) - evaluated = self.evaluate(loc, using=using, norm=True, vb=False) + evaluated = self.evaluate(loc, using=using, norm=True, vb=vb) stack = np.mean(evaluated[1], axis=0) stack /= np.sum(stack) * delta assert(np.isclose(np.sum(stack) * delta, 1.)) diff --git a/qp/utils.py b/qp/utils.py index a27e5cc6..96e67550 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -10,8 +10,6 @@ import sys import bisect -import matplotlib.pyplot as plt - global epsilon epsilon = sys.float_info.epsilon global infty From 2d811224233fd63c59356c43ba1c3b980e5de93f Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 23 Aug 2017 15:50:47 -0700 Subject: [PATCH 05/96] including more metrics with moments --- .../research/analysis.ipynb | 252 ++++++++++++++---- 1 file changed, 200 insertions(+), 52 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index fd712ac9..1dcc057a 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -38,20 +38,14 @@ " \n", "import hickle\n", "import numpy as np\n", - "from pathos.multiprocessing import ProcessingPool as Pool\n", "import random\n", "import cProfile\n", "import pstats\n", "import StringIO\n", - "import timeit\n", - "import psutil\n", "import sys\n", "import os\n", "import timeit\n", "\n", - "import pandas as pd\n", - "pd.set_option('display.max_columns', None)\n", - "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "\n", @@ -82,7 +76,7 @@ }, "outputs": [], "source": [ - "def setup_dataset(dataset_key):#, n_gals_use):\n", + "def setup_dataset(dataset_key):\n", " \n", " with open(dataset_info[dataset_key]['filename'], 'rb') as data_file:\n", " lines = (line.split(None) for line in data_file)\n", @@ -112,7 +106,7 @@ " dataset_info[dataset_key]['metric_z_grid'] = dataset_info[dataset_key]['z_grid']\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'pzs'+bonus+str(n_gals_use)+dataset_key)\n", + " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['randos'] = randos\n", @@ -134,7 +128,7 @@ "def plot_examples(n_gals_use, dataset_key, bonus=None):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'pzs'+bonus+str(n_gals_use)+dataset_key)\n", + " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", " with open(loc+'.hkl', 'r') as filename:\n", " info = hickle.load(filename)\n", " randos = info['randos']\n", @@ -183,7 +177,7 @@ " \n", " print('making the initial ensemble of '+str(N_pdfs)+' PDFs')\n", " E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=True)\n", - " print('made the initial ensemble of '+str(N_pdfs)+' PDFs')\n", + " print('made the initial ensemble of '+str(N_pdfs)+' PDFs') \n", " \n", " #fit GMMs to gridded pdfs based on samples (faster than fitting to gridded)\n", " print('sampling for the GMM fit')\n", @@ -204,13 +198,30 @@ " print('made the final ensemble')\n", " \n", " path = os.path.join(dataset_key, str(N_pdfs))\n", - " loc = os.path.join(path, 'pzs'+bonus+str(N_pdfs)+dataset_key)\n", + " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['randos'] = randos\n", " info['z_grid'] = z_grid\n", " info['pdfs'] = Ef.evaluate(z_grid, using='truth', norm=True, vb=False)[1]\n", " hickle.dump(info, filename)\n", + " \n", + " print('calculating '+str(n_moments_use)+' moments of original PDFs')\n", + " in_moments, vals = [], []\n", + " for n in range(n_moments_use+1):\n", + " in_moments.append(Ef.moment(n, using='truth', limits=zlim, \n", + " dx=delta_z, vb=False))\n", + " vals.append(n)\n", + " moments = np.array(in_moments)\n", + " print('calculated '+str(n_moments_use)+' moments of original PDFs')\n", + " \n", + " path = os.path.join(dataset_key, str(N_pdfs))\n", + " loc = os.path.join(path, 'pz_moments_'+bonus+str(N_pdfs)+dataset_key)\n", + " with open(loc+'.hkl', 'w') as filename:\n", + " info = {}\n", + " info['truth'] = moments\n", + " info['orders'] = vals\n", + " hickle.dump(info, filename)\n", " \n", " return(Ef)" ] @@ -263,9 +274,9 @@ " histogram=inits[f]['histogram'],\n", " samples=inits[f]['samples'], \n", " limits=dataset_info[dataset_key]['z_lim'])\n", - " bonus = '_'+str(n_floats_use)+f+'_('+str(i)+')'\n", + " bonus = str(n_floats_use)+f+str(i)\n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'pzs'+bonus+str(n_gals_use)+dataset_key)\n", + " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['randos'] = randos\n", @@ -276,7 +287,7 @@ " \n", " print('calculating the individual metrics')\n", " metric_start = timeit.default_timer()\n", - " klds, metrics, moments = {}, {}, {}\n", + " klds, metrics, kld_moments, pz_moments = {}, {}, {}, {}\n", " \n", " for key in Eo.keys():\n", " print('starting '+key)\n", @@ -285,13 +296,15 @@ " gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], \n", " using='samples', vb=False)\n", " metrics[key] = qp.PDF(truth=gmm_metric)\n", - " moments[key] = []\n", + " pz_moments[key], kld_moments[key] = [], []\n", " for n in range(N_moments+1):\n", - " moments[key].append([qp.utils.calculate_moment(metrics[key], n,\n", + " kld_moments[key].append([qp.utils.calculate_moment(metrics[key], n,\n", " using='truth', \n", " limits=zlim, \n", " dx=delta_z, \n", " vb=False)])\n", + " pz_moments[key].append(Eo[key].moment(n, using=key, limits=zlim, \n", + " dx=delta_z, vb=False))\n", " print('finished with '+key)\n", " print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", @@ -304,7 +317,17 @@ " info['pz_klds'] = klds\n", " hickle.dump(info, filename)\n", " \n", - " return(Eo, klds, moments)" + " path = os.path.join(dataset_key, str(N_pdfs))\n", + " inloc = os.path.join(path, 'pz_moments_original'+str(N_pdfs)+dataset_key)\n", + " with open(inloc+'.hkl', 'w') as infilename:\n", + " info = hickle.load(infilename)\n", + " outloc = os.path.join(path, str(N_floats)+'pz_moments_'+str(N_pdfs)+dataset_key+str(i))\n", + " with open(outloc+'.hkl', 'w') as outfilename:\n", + " for key in Eo.keys():\n", + " info[key] = pz_moments[key]\n", + " hickle.dump(info, outfilename)\n", + " \n", + " return(Eo, klds, kld_moments)" ] }, { @@ -315,9 +338,10 @@ }, "outputs": [], "source": [ - "def plot_individual(n_gals_use, dataset_key, N_floats, i):\n", + "def plot_individual_kld(n_gals_use, dataset_key, N_floats, i):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", + " a = 1./len(formats)\n", " loc = os.path.join(path, str(N_floats)+'kld_hist'+str(n_gals_use)+dataset_key+str(i))\n", " with open(loc+'.hkl', 'r') as filename:\n", " info = hickle.load(filename)\n", @@ -327,7 +351,6 @@ " \n", " plt.figure()\n", " plot_bins = np.linspace(-3., 3., 20)\n", - " a = 1./len(formats)\n", " for key in pz_klds.keys():\n", " logdata = qp.utils.safelog(pz_klds[key])\n", " kld_hist = plt.hist(logdata, color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k',\n", @@ -342,6 +365,45 @@ "# plt.ylim(0., max(hist_max))\n", " plt.title(dataset_info[dataset_key]['name']+r' data $p(KLD)$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.savefig(loc+'.png', dpi=250)\n", + " plt.close()\n", + " \n", + "def plot_individual_moment(n_gals_use, dataset_key, N_floats, i):\n", + " \n", + " path = os.path.join(dataset_key, str(n_gals_use))\n", + " a = 1./len(formats) \n", + " loc = os.path.join(path, str(N_floats)+'pz_moments_'+str(n_gals_use)+dataset_key+str(i))\n", + " with open(loc+'.hkl', 'w') as filename:\n", + " moments = hickle.load(filename)\n", + " delta_moments = {}\n", + " \n", + " plt.figure(figsize=(5 * n_moments_use, 5))\n", + " for n in range(1, n_moments_use+1):\n", + " ax = plt.add_subplot(n_moments_use, 1, n)\n", + " ax.hist(moments['truth'][n], color='k', alpha=a/2., histtype='stepfilled', edgecolor='k', label='truth', \n", + " normed=True, linestyle='-', ls='-', lw=3)\n", + " for key in formats:\n", + " ax.hist(moments[key][n], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", + " normed=True, linestyle=stepstyles[key], ls=stepstyles[key], lw=3)\n", + " ax.legend()\n", + " ax.ylabel('frequency', fontsize=14)\n", + " ax.xlabel(r'moment '+str(n), fontsize=14)\n", + " plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + " plt.savefig(loc+.png, dpi=250)\n", + " plt.close()\n", + " \n", + " plt.figure(figsize=(5 * n_moments_use, 5))\n", + " for n in range(1, n_moments_use+1):\n", + " ax = plt.add_subplot(n_moments_use, 1, n)\n", + " for key in formats:\n", + " delta_moments[key] = moments[key] - true_moments\n", + " ax.hist(delta_moments[key][n], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", + " normed=True, linestyle=stepstyles[key], ls=stepstyles[key], lw=3)\n", + " ax.legend()\n", + " ax.ylabel('frequency', fontsize=14)\n", + " ax.xlabel(r'change in moment '+str(n), fontsize=14)\n", + " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + " delta_loc = 'delta_'+loc\n", + " plt.savefig(delta_loc+.png, dpi=250)\n", " plt.close()" ] }, @@ -382,11 +444,25 @@ " \n", " print('calculating the metrics')\n", " metric_start = timeit.default_timer()\n", - " klds = {}\n", + " klds, moments = {}, {}\n", + " moments['truth'] = []\n", + " for n in range(n_moments_use+1):\n", + " moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n,\n", + " using='truth', \n", + " limits=zlim, \n", + " dx=delta_z, \n", + " vb=False))\n", " for key in formats:\n", " klds[key] = qp.utils.calculate_kl_divergence(stacked_pdfs['truth'],\n", " stacked_pdfs[key], \n", " limits=zlim, dx=delta_z)\n", + " moments[key] = []\n", + " for n in range(n_moments_use+1):\n", + " moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n,\n", + " using=key, \n", + " limits=zlim, \n", + " dx=delta_z, \n", + " vb=False))\n", " print('calculated the metrics in '+str(timeit.default_timer() - metric_start))\n", " \n", " path = os.path.join(dataset_key, str(E0.n_pdfs))\n", @@ -396,9 +472,10 @@ " info['z_grid'] = z_grid\n", " info['stacks'] = stacks\n", " info['klds'] = klds\n", + " info['moments'] = moments\n", " hickle.dump(info, filename)\n", " \n", - " return(stacked_pdfs, klds)" + " return(stacked_pdfs, klds, moments)" ] }, { @@ -471,10 +548,10 @@ }, "outputs": [], "source": [ - "def save_pz_metrics(dataset_key, n_gals_use, N_f, metric_moments):\n", + "def save_pz_metrics(dataset_key, n_gals_use, N_f, metric_moments, stat_name):\n", "\n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'pz_klds'+str(n_gals_use)+dataset_key)\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key)\n", " \n", " if os.path.exists(loc+'.hkl'):\n", " with open(loc+'.hkl', 'r') as pz_file:\n", @@ -534,7 +611,7 @@ " for sp in ax.spines.values():\n", " sp.set_visible(False)\n", "\n", - " shapes = ['o','*','+','x']#,'v','^','<','>']\n", + " shapes = moment_shapes\n", " marksize = 50\n", " a = 1./len(formats)\n", " \n", @@ -626,10 +703,10 @@ }, "outputs": [], "source": [ - "def save_nz_metrics(dataset_key, n_gals_use, N_f, nz_klds):\n", + "def save_nz_metrics(dataset_key, n_gals_use, N_f, nz_klds, stat_name):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'nz_kld'+str(n_gals_use)+dataset_key)\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key)\n", " if os.path.exists(loc+'.hkl'):\n", " with open(loc+'.hkl', 'r') as nz_file:\n", " #read in content of list/dict\n", @@ -662,7 +739,7 @@ }, "outputs": [], "source": [ - "def plot_nz_metrics(dataset_key, n_gals_use):\n", + "def plot_nz_klds(dataset_key, n_gals_use):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", " loc = os.path.join(path, 'nz_kld'+str(n_gals_use)+dataset_key)\n", @@ -677,7 +754,6 @@ " flat_floats = np.array(nz_stats['N_f']).flatten()\n", " \n", " plt.figure(figsize=(5, 5))\n", - "\n", " for f in formats:\n", " data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f\n", " n_i = len(data_arr)\n", @@ -696,7 +772,6 @@ " plt.ylabel(r'KLD', fontsize=14)\n", " plt.legend(loc='upper right')\n", " plt.title(r'$\\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_info[dataset_key]['name']+' mock catalog', fontsize=16)\n", - "\n", " plt.savefig(loc+'.png', dpi=250)\n", " plt.close()\n", "\n", @@ -724,11 +799,79 @@ " plt.ylabel(r'KLD', fontsize=14)\n", " plt.legend(loc='upper right')\n", " plt.title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ KLD', fontsize=16)\n", - "\n", " plt.savefig(loc+'_clean.png', dpi=250)\n", " plt.close()" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_nz_moments(dataset_key, n_gals_use):\n", + "\n", + " path = os.path.join(dataset_key, str(n_gals_use))\n", + " loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", + " with open(loc+'.hkl', 'r') as nz_file:\n", + " nz_stats = hickle.load(nz_file)\n", + " if len(instantiations) == 10:\n", + " for f in formats:\n", + " if not np.shape(nz_stats[f]) == (4, 10):\n", + " for s in range(len(floats)):\n", + " nz_stats[f][s] = np.array(np.array(nz_stats[f][s])[:10]).flatten()\n", + " flat_floats = np.array(nz_stats['N_f']).flatten()\n", + " in_x = np.log(flat_floats)\n", + " a = 1./len(formats)\n", + " shapes = moment_shapes\n", + " marksize = 50\n", + " \n", + " fig, ax = plt.subplots()\n", + " fig.subplots_adjust(right=1.)\n", + " ax_n = ax\n", + " for key in formats:\n", + " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1)\n", + " ax.plot([-1], [0], color='k', label='original', linewidth=1)\n", + " for n in range(1, 4):\n", + " ax.scatter([-1], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", + " for n in range(1, 4):\n", + " n_factor = 0.05 * (n - 2)\n", + " if n>1:\n", + " ax_n = ax.twinx()\n", + " if n>2:\n", + " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", + " make_patch_spines_invisible(ax_n)\n", + " ax_n.spines[\"right\"].set_visible(True)\n", + " for s in range(len(formats)):\n", + " f = formats[s]\n", + " f_factor = 0.05 * (s - 1)\n", + " data_arr = np.log(np.swapaxes(np.array(nz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", + " mean = np.mean(data_arr, axis=0).flatten()\n", + " std = np.std(data_arr, axis=0).flatten()\n", + " y_plus = mean + std\n", + " y_minus = mean - std\n", + " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + " ax_n.scatter(np.exp(in_x+n_factor), mean, marker=shapes[n], s=marksize, alpha=2. * a, color=colors[f])\n", + " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", + " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", + " mean_min[n] = min(mean_min[n], np.min(y_minus))\n", + " ax_n.scatter(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), marker=shapes[n], s=marksize, alpha=a, color='k')\n", + " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", + " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", + " ax.set_xscale('log')\n", + " ax.set_xticks(flat_floats)\n", + " ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())\n", + " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", + " ax.set_xlabel('number of parameters', fontsize=14)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", + " ax.legend(loc='lower left')\n", + " fig.tight_layout()\n", + " fig.savefig(loc+'.png', dpi=250)\n", + " plt.close()" + ] + }, { "cell_type": "markdown", "metadata": { @@ -751,22 +894,22 @@ "dataset_info = {}\n", "delta = 0.01\n", "\n", - "dataset_keys = ['graham', 'schmidt']#['Optical+IR', 'Optical']\n", + "dataset_keys = ['mg', 'ss']\n", "\n", "for dataset_key in dataset_keys:\n", " dataset_info[dataset_key] = {}\n", - " if dataset_key == 'graham':\n", + " if dataset_key == 'mg':\n", " datafilename = 'bpz_euclid_test_10_2.probs'\n", " z_low = 0.01\n", " z_high = 3.51\n", " nc_needed = 3\n", - " plotname = 'high-quality'\n", - " elif dataset_key == 'schmidt':\n", + " plotname = 'brighter'\n", + " elif dataset_key == 'ss':\n", " datafilename = 'test_magscat_trainingfile_probs.out'\n", " z_low = 0.005\n", " z_high = 2.11\n", " nc_needed = 5\n", - " plotname = 'low-quality'\n", + " plotname = 'dimmer'\n", " dataset_info[dataset_key]['filename'] = datafilename \n", " \n", " dataset_info[dataset_key]['z_lim'] = (z_low, z_high)\n", @@ -793,6 +936,7 @@ "n_plot = 5\n", "n_moments_use = 4\n", "moment_names = ['integral', 'mean', 'variance', 'kurtosis']\n", + "moment_shapes = ['o', '*', '+', 'x']\n", "\n", "#make this a more clever structure, i.e. a dict\n", "formats = ['quantiles', 'histogram', 'samples']\n", @@ -822,10 +966,10 @@ "source": [ "#change all for NERSC\n", "\n", - "floats = [3, 10, 30, 100]\n", - "sizes = [100]#[100, 1000, 10000]\n", - "names = dataset_info.keys()#['Optical', 'Optical+IR']\n", - "instantiations = range(0, 10)\n", + "floats = [3]#[3, 10, 30, 100]\n", + "sizes = [10]#[100]#[100, 1000, 10000]\n", + "names = dataset_info.keys()\n", + "instantiations = range(0, 1)#range(0, 10)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -873,14 +1017,14 @@ " \n", " for i in instantiations:\n", " \n", - " original = '_original_('+str(i)+')'\n", + " original = 'original'+str(i)\n", " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", "# plot = plot_examples(size, name, bonus=original)\n", " \n", " z_grid = dataset_info[name]['in_z_grid']\n", " N_comps = dataset_info[name]['N_GMM']\n", " \n", - " postfit = '_post-fit_('+str(i)+')'\n", + " postfit = 'post-fit'+str(i)\n", " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", "# plot = plot_examples(size, name, bonus=postfit)\n", " \n", @@ -893,21 +1037,24 @@ " z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, n_moments_use, i=i)\n", "# for f in formats:\n", - "# fname = '_'+str(n_floats_use)+f+'_('+str(i)+')'\n", + "# fname = str(n_floats_use)+f+str(i)\n", "# plot = plot_examples(size, name, bonus=fname)\n", - "# plot = plot_individual(size, name, n_floats_use, i=i)\n", - " save_pz_metrics(name, size, n_floats_use, metric_moments)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + "# plot = plot_individual_moment(size, name, n_floats_use, i=i)\n", + " save_pz_metrics(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", " \n", - " (stack_evals, nz_klds) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", + " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, i=i)\n", "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", - " save_nz_metrics(name, size, n_floats_use, nz_klds)\n", + " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", + " save_nz_metrics(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", " print('finished '+str(size)+name+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", " \n", "# plot = plot_pz_metrics(name, size)\n", " \n", - "# plot = plot_nz_metrics(name, size)\n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)\n", " \n", " print('finished '+str(size)+name+' in '+str(timeit.default_timer() - size_start))\n", " \n", @@ -936,22 +1083,23 @@ " path = os.path.join(name, str(size))\n", " for i in instantiations:\n", " \n", - " plot = plot_examples(size, name, bonus='_original_('+str(i)+')')\n", + " plot = plot_examples(size, name, bonus='original'+str(i))\n", " \n", - " plot = plot_examples(size, name, bonus='_post-fit_('+str(i)+')')\n", + " plot = plot_examples(size, name, bonus='post-fit'+str(i))\n", " \n", " for n_floats_use in floats:\n", " \n", " for f in formats:\n", - " fname = '_'+str(n_floats_use)+f+'_('+str(i)+')'\n", + " fname = str(n_floats_use)+f+str(i)\n", " plot = plot_examples(size, name, bonus=fname)\n", " plot = plot_individual(size, name, n_floats_use, i)\n", - " \n", + " plot = plot_moment(size, name, n_floats_use, i)\n", " plot = plot_estimators(size, name, n_floats_use, i)\n", " \n", " plot = plot_pz_metrics(name, size)\n", " \n", - " plot = plot_nz_metrics(name, size)" + " plot = plot_nz_klds(name, size)\n", + " plot = plot_nz_moments(name, size)" ] }, { From f8ecb38ae888d8fa257170c1464faba8a790f521 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 23 Aug 2017 19:11:31 -0700 Subject: [PATCH 06/96] almost got moments/modes plotting --- .../research/analysis.ipynb | 114 +++++++++++------- qp/ensemble.py | 5 +- qp/utils.py | 4 +- 3 files changed, 74 insertions(+), 49 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 1dcc057a..80d43613 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -90,7 +90,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -100,6 +100,11 @@ " full_gal_range = range(n_gals_tot)\n", " subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)\n", " pdfs_use = pdfs[subset]\n", + " \n", + " modality = []\n", + " dpdfs = pdfs_use[:,1:] - pdfs_use[:,:-1]\n", + " for dpdf in dpdfs:\n", + " modality.append(len(np.where(np.diff(np.signbit(dpdf)))[0]))\n", "\n", " # using the same grid for output as the native format, but doesn't need to be so\n", " dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid']\n", @@ -112,6 +117,7 @@ " info['randos'] = randos\n", " info['z_grid'] = dataset_info[dataset_key]['in_z_grid']\n", " info['pdfs'] = pdfs_use\n", + " info['modes'] = modality\n", " hickle.dump(info, filename)\n", " \n", " return(pdfs_use)" @@ -121,7 +127,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -147,9 +153,22 @@ " plt.ylim(0., max(pz_max))\n", " plt.title(dataset_info[dataset_key]['name']+' data', fontsize=16)\n", " plt.legend()\n", - " \n", " plt.savefig(loc+'.png', dpi=250)\n", - " plt.close()" + " plt.close()\n", + " \n", + " if 'modes' in info.keys():\n", + " modes = info['modes']\n", + " content = np.unique(modes)\n", + " plt.figure()\n", + " ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', edgecolor='k', \n", + " normed=True, linestyle='-', ls='-', lw=3, bins=range(max(content)))\n", + " for i in range(len(content)):\n", + " plt.text(ax[1][i], ax[0][i], str(ax[0][i]/float(len(pdfs)))[:5])\n", + " plt.xlabel('modes')\n", + " plt.ylabel('frequency')\n", + " plt.title(dataset_info[dataset_key]['name']+' modality', fontsize=16)\n", + " plt.savefig(loc+'modality.png', dpi=250)\n", + " plt.close()" ] }, { @@ -216,7 +235,7 @@ " print('calculated '+str(n_moments_use)+' moments of original PDFs')\n", " \n", " path = os.path.join(dataset_key, str(N_pdfs))\n", - " loc = os.path.join(path, 'pz_moments_'+bonus+str(N_pdfs)+dataset_key)\n", + " loc = os.path.join(path, 'pz_moments_'+bonus+dataset_key+str(N_pdfs))\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['truth'] = moments\n", @@ -245,6 +264,7 @@ " zlim = (min(z_grid), max(z_grid))\n", " z_range = zlim[-1] - zlim[0]\n", " delta_z = z_range / len(z_grid)\n", + " path = os.path.join(dataset_key, str(n_gals_use))\n", " \n", " Eq, Eh, Es = E, E, E\n", " inits = {}\n", @@ -274,8 +294,7 @@ " histogram=inits[f]['histogram'],\n", " samples=inits[f]['samples'], \n", " limits=dataset_info[dataset_key]['z_lim'])\n", - " bonus = str(n_floats_use)+f+str(i)\n", - " path = os.path.join(dataset_key, str(n_gals_use))\n", + " bonus = str(N_floats)+f+str(i)\n", " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", @@ -287,7 +306,10 @@ " \n", " print('calculating the individual metrics')\n", " metric_start = timeit.default_timer()\n", - " klds, metrics, kld_moments, pz_moments = {}, {}, {}, {}\n", + " inloc = os.path.join(path, 'pz_moments_post-fit'+str(i)+dataset_key+str(n_gals_use))\n", + " with open(inloc+'.hkl', 'r') as infilename:\n", + " pz_moments = hickle.load(infilename)\n", + " klds, metrics, kld_moments = {}, {}, {}\n", " \n", " for key in Eo.keys():\n", " print('starting '+key)\n", @@ -308,7 +330,6 @@ " print('finished with '+key)\n", " print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", - " path = os.path.join(dataset_key, str(E.n_pdfs))\n", " loc = os.path.join(path, str(N_floats)+'kld_hist'+str(n_gals_use)+dataset_key+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", @@ -316,16 +337,10 @@ " info['N_floats'] = N_floats\n", " info['pz_klds'] = klds\n", " hickle.dump(info, filename)\n", - " \n", - " path = os.path.join(dataset_key, str(N_pdfs))\n", - " inloc = os.path.join(path, 'pz_moments_original'+str(N_pdfs)+dataset_key)\n", - " with open(inloc+'.hkl', 'w') as infilename:\n", - " info = hickle.load(infilename)\n", - " outloc = os.path.join(path, str(N_floats)+'pz_moments_'+str(N_pdfs)+dataset_key+str(i))\n", + "\n", + " outloc = os.path.join(path, str(N_floats)+'pz_moments'+str(n_gals_use)+dataset_key+str(i))\n", " with open(outloc+'.hkl', 'w') as outfilename:\n", - " for key in Eo.keys():\n", - " info[key] = pz_moments[key]\n", - " hickle.dump(info, outfilename)\n", + " hickle.dump(pz_moments, outfilename)\n", " \n", " return(Eo, klds, kld_moments)" ] @@ -365,45 +380,54 @@ "# plt.ylim(0., max(hist_max))\n", " plt.title(dataset_info[dataset_key]['name']+r' data $p(KLD)$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.savefig(loc+'.png', dpi=250)\n", - " plt.close()\n", - " \n", + " plt.close()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ "def plot_individual_moment(n_gals_use, dataset_key, N_floats, i):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", " a = 1./len(formats) \n", - " loc = os.path.join(path, str(N_floats)+'pz_moments_'+str(n_gals_use)+dataset_key+str(i))\n", - " with open(loc+'.hkl', 'w') as filename:\n", + " loc = os.path.join(path, str(N_floats)+'pz_moments'+str(n_gals_use)+dataset_key+str(i))\n", + " with open(loc+'.hkl', 'r') as filename:\n", " moments = hickle.load(filename)\n", " delta_moments = {}\n", " \n", - " plt.figure(figsize=(5 * n_moments_use, 5))\n", + " plt.figure(figsize=(5, 5 * n_moments_use))\n", " for n in range(1, n_moments_use+1):\n", - " ax = plt.add_subplot(n_moments_use, 1, n)\n", + " ax = plt.subplot(n_moments_use, 1, n)\n", " ax.hist(moments['truth'][n], color='k', alpha=a/2., histtype='stepfilled', edgecolor='k', label='truth', \n", " normed=True, linestyle='-', ls='-', lw=3)\n", " for key in formats:\n", " ax.hist(moments[key][n], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", " normed=True, linestyle=stepstyles[key], ls=stepstyles[key], lw=3)\n", " ax.legend()\n", - " ax.ylabel('frequency', fontsize=14)\n", - " ax.xlabel(r'moment '+str(n), fontsize=14)\n", + " ax.set_ylabel('frequency', fontsize=14)\n", + " ax.set_xlabel(r'$\\langle z^{'+str(n)+r'}\\rangle$', fontsize=14)\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - " plt.savefig(loc+.png, dpi=250)\n", + " plt.savefig(loc+'.png', dpi=250)\n", " plt.close()\n", " \n", - " plt.figure(figsize=(5 * n_moments_use, 5))\n", + " plt.figure(figsize=(5, 5 * n_moments_use))\n", " for n in range(1, n_moments_use+1):\n", - " ax = plt.add_subplot(n_moments_use, 1, n)\n", + " ax = plt.subplot(n_moments_use, 1, n)\n", " for key in formats:\n", - " delta_moments[key] = moments[key] - true_moments\n", + " delta_moments[key] = moments[key] - moments['truth']\n", " ax.hist(delta_moments[key][n], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", " normed=True, linestyle=stepstyles[key], ls=stepstyles[key], lw=3)\n", " ax.legend()\n", - " ax.ylabel('frequency', fontsize=14)\n", - " ax.xlabel(r'change in moment '+str(n), fontsize=14)\n", + " ax.set_ylabel('frequency', fontsize=14)\n", + " ax.set_xlabel(r'$\\Delta\\langle z^{'+str(n)+r'}\\rangle$', fontsize=14)\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - " delta_loc = 'delta_'+loc\n", - " plt.savefig(delta_loc+.png, dpi=250)\n", + " delta_loc = loc+'delta'\n", + " plt.savefig(delta_loc+'.png', dpi=250)\n", " plt.close()" ] }, @@ -447,8 +471,7 @@ " klds, moments = {}, {}\n", " moments['truth'] = []\n", " for n in range(n_moments_use+1):\n", - " moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n,\n", - " using='truth', \n", + " moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, \n", " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", @@ -458,8 +481,7 @@ " limits=zlim, dx=delta_z)\n", " moments[key] = []\n", " for n in range(n_moments_use+1):\n", - " moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n,\n", - " using=key, \n", + " moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n, \n", " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", @@ -592,7 +614,7 @@ "def plot_pz_metrics(dataset_key, n_gals_use):\n", "\n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'pz_klds'+str(n_gals_use)+dataset_key)\n", + " loc = os.path.join(path, 'pz_kld_moments'+str(n_gals_use)+dataset_key)\n", " with open(loc+'.hkl', 'r') as pz_file:\n", " pz_stats = hickle.load(pz_file)\n", " if len(instantiations) == 10:\n", @@ -666,7 +688,6 @@ " data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", - " print(dataset_key, f, n, std)\n", " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", @@ -742,7 +763,7 @@ "def plot_nz_klds(dataset_key, n_gals_use):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'nz_kld'+str(n_gals_use)+dataset_key)\n", + " loc = os.path.join(path, 'nz_klds'+str(n_gals_use)+dataset_key)\n", " with open(loc+'.hkl', 'r') as nz_file:\n", " nz_stats = hickle.load(nz_file)\n", " if len(instantiations) == 10:\n", @@ -847,12 +868,13 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.log(np.swapaxes(np.array(nz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", + " data_arr = np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + " print(np.shape(in_x+n_factor), np.shape(mean))\n", " ax_n.scatter(np.exp(in_x+n_factor), mean, marker=shapes[n], s=marksize, alpha=2. * a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", @@ -909,7 +931,7 @@ " z_low = 0.005\n", " z_high = 2.11\n", " nc_needed = 5\n", - " plotname = 'dimmer'\n", + " plotname = 'fainter'\n", " dataset_info[dataset_key]['filename'] = datafilename \n", " \n", " dataset_info[dataset_key]['z_lim'] = (z_low, z_high)\n", @@ -987,7 +1009,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -1092,8 +1114,8 @@ " for f in formats:\n", " fname = str(n_floats_use)+f+str(i)\n", " plot = plot_examples(size, name, bonus=fname)\n", - " plot = plot_individual(size, name, n_floats_use, i)\n", - " plot = plot_moment(size, name, n_floats_use, i)\n", + " plot = plot_individual_kld(size, name, n_floats_use, i)\n", + " plot = plot_individual_moment(size, name, n_floats_use, i)\n", " plot = plot_estimators(size, name, n_floats_use, i)\n", " \n", " plot = plot_pz_metrics(name, size)\n", diff --git a/qp/ensemble.py b/qp/ensemble.py index b017004b..793e060c 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -1,4 +1,5 @@ import numpy as np +import pathos from pathos.multiprocessing import ProcessingPool as Pool # import psutil import timeit @@ -317,7 +318,7 @@ def integrate_helper(i): return integrals - def moment(self, N, using=None, limits=limits, dx=0.01, vb=False): + def moment(self, N, using=None, limits=None, dx=0.01, vb=False): """ Calculates a given moment for each PDF in the ensemble @@ -340,7 +341,7 @@ def moment(self, N, using=None, limits=limits, dx=0.01, vb=False): moment values of each PDF under the using approximation or truth """ def moment_helper(i): - return u.calculate_moment(self.pdfs[i], using=using, limits=limits, dx=dx, vb=vb) + return u.calculate_moment(self.pdfs[i], N, using=using, limits=limits, dx=dx, vb=vb) moments = self.pool.map(moment_helper, self.pdf_range) diff --git a/qp/utils.py b/qp/utils.py index 96e67550..499f06a1 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -273,7 +273,7 @@ def evaluate_samples(x): y = kde(sx) return ((sx, y)) -def calculate_moment(p, N, using=None, limits=lims, dx=0.01, vb=False): +def calculate_moment(p, N, using=None, limits=None, dx=0.01, vb=False): """ Calculates moments of a distribution @@ -293,6 +293,8 @@ def calculate_moment(p, N, using=None, limits=lims, dx=0.01, vb=False): M: float values of the moment """ + if limits is None: + limits = p.limits if using is None: using = p.first # Make a grid from the limits and resolution From 0893061f925d73fae0524e27ddb216c1e7d55b72 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 23 Aug 2017 19:42:51 -0700 Subject: [PATCH 07/96] stumped on silly i/o problem for plotting moments --- .../research/analysis.ipynb | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 80d43613..6718474b 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -342,7 +342,7 @@ " with open(outloc+'.hkl', 'w') as outfilename:\n", " hickle.dump(pz_moments, outfilename)\n", " \n", - " return(Eo, klds, kld_moments)" + " return(Eo, klds, kld_moments, pz_moments)" ] }, { @@ -596,7 +596,7 @@ " where_N_f = pz_stats['N_f'].index(N_f)\n", " \n", " for f in formats:\n", - " for m in range(n_moments_use + 1):\n", + " for m in range(n_moments_use):\n", " pz_stats[f][m][where_N_f].append(metric_moments[f][m])\n", "\n", " with open(loc+'.hkl', 'w') as pz_file:\n", @@ -617,12 +617,12 @@ " loc = os.path.join(path, 'pz_kld_moments'+str(n_gals_use)+dataset_key)\n", " with open(loc+'.hkl', 'r') as pz_file:\n", " pz_stats = hickle.load(pz_file)\n", - " if len(instantiations) == 10:\n", - " for f in formats:\n", - " for n in range(n_moments_use):\n", - " if not np.shape(pz_stats[f][n]) == (4, 10):\n", - " for s in range(len(pz_stats[f][n])):\n", - " pz_stats[f][n][s] = np.array(np.array(pz_stats[f][n][s])[:10]).flatten()\n", + "# if len(instantiations) == 10:\n", + "# for f in formats:\n", + "# for n in range(n_moments_use):\n", + "# if not np.shape(pz_stats[f][n]) == (4, 10):\n", + "# for s in range(len(pz_stats[f][n])):\n", + "# pz_stats[f][n][s] = np.array(np.array(pz_stats[f][n][s])[:10]).flatten()\n", " \n", " flat_floats = np.array(pz_stats['N_f']).flatten()\n", " in_x = np.log(flat_floats)\n", @@ -838,17 +838,18 @@ " loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", " with open(loc+'.hkl', 'r') as nz_file:\n", " nz_stats = hickle.load(nz_file)\n", - " if len(instantiations) == 10:\n", - " for f in formats:\n", - " if not np.shape(nz_stats[f]) == (4, 10):\n", - " for s in range(len(floats)):\n", - " nz_stats[f][s] = np.array(np.array(nz_stats[f][s])[:10]).flatten()\n", " flat_floats = np.array(nz_stats['N_f']).flatten()\n", " in_x = np.log(flat_floats)\n", " a = 1./len(formats)\n", " shapes = moment_shapes\n", " marksize = 50\n", " \n", + " def make_patch_spines_invisible(ax):\n", + " ax.set_frame_on(True)\n", + " ax.patch.set_visible(False)\n", + " for sp in ax.spines.values():\n", + " sp.set_visible(False)\n", + " \n", " fig, ax = plt.subplots()\n", " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", @@ -1053,9 +1054,9 @@ " for n_floats_use in floats:\n", " \n", " float_start = timeit.default_timer()\n", - " print('started '+str(size)+name+str(n_floats_use)+'\\#'+str(i))\n", + " print('started '+str(size)+name+str(n_floats_use)+'#'+str(i))\n", " \n", - " (ensembles, pz_klds, metric_moments) = analyze_individual(catalog, \n", + " (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, \n", " z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, n_moments_use, i=i)\n", "# for f in formats:\n", @@ -1064,12 +1065,13 @@ "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", "# plot = plot_individual_moment(size, name, n_floats_use, i=i)\n", " save_pz_metrics(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", + " save_pz_metrics(name, size, n_floats_use, pz_moments, 'pz_moments')\n", " \n", " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, i=i)\n", "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", - " save_nz_metrics(name, size, n_floats_use, nz_moments, 'nz_moments')\n", + " save_pz_metrics(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", " print('finished '+str(size)+name+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", " \n", From 637381a4f7dd9a9dd8d386bd51a3d5a9101af1d2 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 24 Aug 2017 13:58:17 -0700 Subject: [PATCH 08/96] now checking stats between datasets --- .../research/analysis.ipynb | 291 ++++++++++++------ 1 file changed, 195 insertions(+), 96 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 6718474b..4b373f3a 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -45,6 +45,7 @@ "import sys\n", "import os\n", "import timeit\n", + "import bisect\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", @@ -76,12 +77,13 @@ }, "outputs": [], "source": [ - "def setup_dataset(dataset_key):\n", + "def setup_dataset(dataset_key, skip_rows, skip_cols):\n", " \n", " with open(dataset_info[dataset_key]['filename'], 'rb') as data_file:\n", " lines = (line.split(None) for line in data_file)\n", - " lines.next()\n", - " pdfs = np.array([[float(line[k]) for k in range(1,len(line))] for line in lines])\n", + " for r in range(skip_rows):\n", + " lines.next()\n", + " pdfs = np.array([[float(line[k]) for k in range(skip_cols, len(line))] for line in lines])\n", " \n", " return(pdfs)" ] @@ -103,9 +105,14 @@ " \n", " modality = []\n", " dpdfs = pdfs_use[:,1:] - pdfs_use[:,:-1]\n", - " for dpdf in dpdfs:\n", - " modality.append(len(np.where(np.diff(np.signbit(dpdf)))[0]))\n", - "\n", + " iqrs = []\n", + " for i in range(n_gals_use):\n", + " modality.append(len(np.where(np.diff(np.signbit(dpdfs[i])))[0]))\n", + " cdf = np.cumsum(qp.utils.normalize_integral((dataset_info[dataset_key]['z_grid'], pdfs_use[i]), vb=False)[1])\n", + " iqr_lo = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.25)]\n", + " iqr_hi = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.75)]\n", + " iqrs.append(iqr_hi - iqr_lo)\n", + " \n", " # using the same grid for output as the native format, but doesn't need to be so\n", " dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid']\n", " dataset_info[dataset_key]['metric_z_grid'] = dataset_info[dataset_key]['z_grid']\n", @@ -118,6 +125,7 @@ " info['z_grid'] = dataset_info[dataset_key]['in_z_grid']\n", " info['pdfs'] = pdfs_use\n", " info['modes'] = modality\n", + " info['iqrs'] = iqrs\n", " hickle.dump(info, filename)\n", " \n", " return(pdfs_use)" @@ -158,16 +166,26 @@ " \n", " if 'modes' in info.keys():\n", " modes = info['modes']\n", - " content = np.unique(modes)\n", + " modes_max.append(np.max(modes))\n", " plt.figure()\n", - " ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', edgecolor='k', \n", - " normed=True, linestyle='-', ls='-', lw=3, bins=range(max(content)))\n", - " for i in range(len(content)):\n", - " plt.text(ax[1][i], ax[0][i], str(ax[0][i]/float(len(pdfs)))[:5])\n", + " ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', bins=range(max(modes_max)+1))\n", " plt.xlabel('modes')\n", " plt.ylabel('frequency')\n", - " plt.title(dataset_info[dataset_key]['name']+' modality', fontsize=16)\n", + " plt.title(dataset_info[dataset_key]['name']+' modality distribution', fontsize=16)\n", " plt.savefig(loc+'modality.png', dpi=250)\n", + " plt.close()\n", + " \n", + " if 'iqrs' in info.keys():\n", + " iqrs = info['iqrs']\n", + " iqr_min.append(min(iqrs))\n", + " iqr_max.append(max(iqrs))\n", + " plot_bins = np.linspace(min(iqr_min), max(iqr_max), 20)\n", + " plt.figure()\n", + " ax = plt.hist(iqrs, bins=plot_bins, color='k', alpha=1./n_plot, histtype='stepfilled')\n", + " plt.xlabel('IQR')\n", + " plt.ylabel('frequency')\n", + " plt.title(dataset_info[dataset_key]['name']+' IQR distribution', fontsize=16)\n", + " plt.savefig(loc+'iqrs.png', dpi=250)\n", " plt.close()" ] }, @@ -194,27 +212,32 @@ " \n", "# plot_examples(N_pdfs, z_grid, pdfs)\n", " \n", + " start = timeit.default_timer()\n", " print('making the initial ensemble of '+str(N_pdfs)+' PDFs')\n", " E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=True)\n", - " print('made the initial ensemble of '+str(N_pdfs)+' PDFs') \n", + " print('made the initial ensemble of '+str(N_pdfs)+' PDFs in '+str(timeit.default_timer() - start)) \n", " \n", " #fit GMMs to gridded pdfs based on samples (faster than fitting to gridded)\n", + " start = timeit.default_timer()\n", " print('sampling for the GMM fit')\n", " samparr = E0.sample(high_res, vb=False)\n", - " print('took '+str(high_res)+' samples')\n", + " print('took '+str(high_res)+' samples in '+str(timeit.default_timer() - start))\n", " \n", + " start = timeit.default_timer()\n", " print('making a new ensemble from samples')\n", " Ei = qp.Ensemble(N_pdfs, samples=samparr, limits=dataset_info[dataset_key]['z_lim'], vb=False)\n", - " print('made a new ensemble from samples')\n", + " print('made a new ensemble from samples in '+str(timeit.default_timer() - start))\n", " \n", + " start = timeit.default_timer()\n", " print('fitting the GMM to samples')\n", " GMMs = Ei.mix_mod_fit(comps=N_comps, vb=False)\n", - " print('fit the GMM to samples')\n", + " print('fit the GMM to samples in '+str(timeit.default_timer() - start))\n", " \n", " #set the GMMS as the truth\n", + " start = timeit.default_timer()\n", " print('making the final ensemble')\n", " Ef = qp.Ensemble(N_pdfs, truth=GMMs, limits=dataset_info[dataset_key]['z_lim'], vb=False)\n", - " print('made the final ensemble')\n", + " print('made the final ensemble in '+str(timeit.default_timer() - start))\n", " \n", " path = os.path.join(dataset_key, str(N_pdfs))\n", " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", @@ -225,14 +248,15 @@ " info['pdfs'] = Ef.evaluate(z_grid, using='truth', norm=True, vb=False)[1]\n", " hickle.dump(info, filename)\n", " \n", + " start = timeit.default_timer()\n", " print('calculating '+str(n_moments_use)+' moments of original PDFs')\n", " in_moments, vals = [], []\n", - " for n in range(n_moments_use+1):\n", + " for n in range(n_moments_use):\n", " in_moments.append(Ef.moment(n, using='truth', limits=zlim, \n", " dx=delta_z, vb=False))\n", " vals.append(n)\n", " moments = np.array(in_moments)\n", - " print('calculated '+str(n_moments_use)+' moments of original PDFs')\n", + " print('calculated '+str(n_moments_use)+' moments of original PDFs in '+str(timeit.default_timer() - start))\n", " \n", " path = os.path.join(dataset_key, str(N_pdfs))\n", " loc = os.path.join(path, 'pz_moments_'+bonus+dataset_key+str(N_pdfs))\n", @@ -312,22 +336,25 @@ " klds, metrics, kld_moments = {}, {}, {}\n", " \n", " for key in Eo.keys():\n", + " key_start = timeit.default_timer()\n", " print('starting '+key)\n", " klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z)\n", " samp_metric = qp.PDF(samples=klds[key])\n", " gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], \n", " using='samples', vb=False)\n", " metrics[key] = qp.PDF(truth=gmm_metric)\n", + " \n", + " \n", " pz_moments[key], kld_moments[key] = [], []\n", - " for n in range(N_moments+1):\n", - " kld_moments[key].append([qp.utils.calculate_moment(metrics[key], n,\n", + " for n in range(N_moments):\n", + " kld_moments[key].append(qp.utils.calculate_moment(metrics[key], n,\n", " using='truth', \n", " limits=zlim, \n", " dx=delta_z, \n", - " vb=False)])\n", + " vb=False))\n", " pz_moments[key].append(Eo[key].moment(n, using=key, limits=zlim, \n", " dx=delta_z, vb=False))\n", - " print('finished with '+key)\n", + " print('finished with '+key+' in '+str(timeit.default_timer() - key_start))\n", " print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", " loc = os.path.join(path, str(N_floats)+'kld_hist'+str(n_gals_use)+dataset_key+str(i))\n", @@ -400,34 +427,51 @@ " moments = hickle.load(filename)\n", " delta_moments = {}\n", " \n", - " plt.figure(figsize=(5, 5 * n_moments_use))\n", - " for n in range(1, n_moments_use+1):\n", + " plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", + " for n in range(1, n_moments_use):\n", " ax = plt.subplot(n_moments_use, 1, n)\n", - " ax.hist(moments['truth'][n], color='k', alpha=a/2., histtype='stepfilled', edgecolor='k', label='truth', \n", - " normed=True, linestyle='-', ls='-', lw=3)\n", + " ends = (min(moments['truth'][n]), max(moments['truth'][n]))\n", + " for key in formats:\n", + " ends = (min(ends[0], min(moments[key][n])), max(ends[-1], max(moments[key][n])))\n", + " plot_bins = np.linspace(ends[0], ends[-1], 20)\n", + " ax.hist([-100], color='k', alpha=a, histtype='stepfilled', edgecolor='k', label='truth', \n", + " linestyle='-', ls='-')\n", + " ax.hist(moments['truth'][n], bins=plot_bins, color='k', alpha=a, histtype='stepfilled', normed=True)\n", + " ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a)\n", " for key in formats:\n", - " ax.hist(moments[key][n], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - " normed=True, linestyle=stepstyles[key], ls=stepstyles[key], lw=3)\n", + " ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", + " linestyle=stepstyles[key], ls=stepstyles[key])\n", + " ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", + " ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a)\n", " ax.legend()\n", " ax.set_ylabel('frequency', fontsize=14)\n", - " ax.set_xlabel(r'$\\langle z^{'+str(n)+r'}\\rangle$', fontsize=14)\n", + " ax.set_xlabel(moment_names[n], fontsize=14)\n", + " ax.set_xlim(min(plot_bins), max(plot_bins))\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + " plt.tight_layout()\n", " plt.savefig(loc+'.png', dpi=250)\n", " plt.close()\n", " \n", - " plt.figure(figsize=(5, 5 * n_moments_use))\n", - " for n in range(1, n_moments_use+1):\n", + " plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", + " for n in range(1, n_moments_use):\n", " ax = plt.subplot(n_moments_use, 1, n)\n", + " ends = (100., -100.)\n", " for key in formats:\n", " delta_moments[key] = moments[key] - moments['truth']\n", - " ax.hist(delta_moments[key][n], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - " normed=True, linestyle=stepstyles[key], ls=stepstyles[key], lw=3)\n", + " ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n])))\n", + " plot_bins = np.linspace(ends[0], ends[-1], 20)\n", + " for key in formats:\n", + " ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", + " linestyle=stepstyles[key], ls=stepstyles[key])\n", + " ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", + " ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a)\n", " ax.legend()\n", " ax.set_ylabel('frequency', fontsize=14)\n", - " ax.set_xlabel(r'$\\Delta\\langle z^{'+str(n)+r'}\\rangle$', fontsize=14)\n", + " ax.set_xlabel(r'$\\Delta$ '+moment_names[n], fontsize=14)\n", + " ax.set_xlim(min(plot_bins), max(plot_bins))\n", + " plt.tight_layout()\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - " delta_loc = loc+'delta'\n", - " plt.savefig(delta_loc+'.png', dpi=250)\n", + " plt.savefig(loc+'_delta.png', dpi=250)\n", " plt.close()" ] }, @@ -470,7 +514,7 @@ " metric_start = timeit.default_timer()\n", " klds, moments = {}, {}\n", " moments['truth'] = []\n", - " for n in range(n_moments_use+1):\n", + " for n in range(n_moments_use):\n", " moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, \n", " limits=zlim, \n", " dx=delta_z, \n", @@ -480,7 +524,7 @@ " stacked_pdfs[key], \n", " limits=zlim, dx=delta_z)\n", " moments[key] = []\n", - " for n in range(n_moments_use+1):\n", + " for n in range(n_moments_use):\n", " moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n, \n", " limits=zlim, \n", " dx=delta_z, \n", @@ -570,37 +614,37 @@ }, "outputs": [], "source": [ - "def save_pz_metrics(dataset_key, n_gals_use, N_f, metric_moments, stat_name):\n", + "def save_moments(dataset_key, n_gals_use, N_f, stat, stat_name):\n", "\n", " path = os.path.join(dataset_key, str(n_gals_use))\n", " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key)\n", " \n", " if os.path.exists(loc+'.hkl'):\n", - " with open(loc+'.hkl', 'r') as pz_file:\n", + " with open(loc+'.hkl', 'r') as stat_file:\n", " #read in content of list/dict\n", - " pz_stats = hickle.load(pz_file)\n", + " stats = hickle.load(stat_file)\n", " else:\n", - " pz_stats = {}\n", - " pz_stats['N_f'] = []\n", - " for f in formats:\n", - " pz_stats[f] = []\n", - " for m in range(n_moments_use + 1):\n", - " pz_stats[f].append([])\n", + " stats = {}\n", + " stats['N_f'] = []\n", + " for f in stat.keys():\n", + " stats[f] = []\n", + " for m in range(n_moments_use):\n", + " stats[f].append([])\n", "\n", - " if N_f not in pz_stats['N_f']:\n", - " pz_stats['N_f'].append(N_f)\n", - " for f in formats:\n", - " for m in range(n_moments_use + 1):\n", - " pz_stats[f][m].append([])\n", + " if N_f not in stats['N_f']:\n", + " stats['N_f'].append(N_f)\n", + " for f in stat.keys():\n", + " for m in range(n_moments_use):\n", + " stats[f][m].append([])\n", " \n", - " where_N_f = pz_stats['N_f'].index(N_f)\n", + " where_N_f = stats['N_f'].index(N_f)\n", " \n", - " for f in formats:\n", + " for f in stat.keys():\n", " for m in range(n_moments_use):\n", - " pz_stats[f][m][where_N_f].append(metric_moments[f][m])\n", + " stats[f][m][where_N_f].append(stat[f][m])\n", "\n", - " with open(loc+'.hkl', 'w') as pz_file:\n", - " hickle.dump(pz_stats, pz_file)" + " with open(loc+'.hkl', 'w') as stat_file:\n", + " hickle.dump(stats, stat_file)" ] }, { @@ -642,7 +686,8 @@ " ax_n = ax\n", " for key in formats:\n", " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", - " for n in range(1, 4):\n", + " for n in range(1, n_moments_use):\n", + " n_factor = 0.05 * (n - 2)\n", " ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", " if n>1:\n", " ax_n = ax.twinx()\n", @@ -650,20 +695,24 @@ " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", " make_patch_spines_invisible(ax_n)\n", " ax_n.spines[\"right\"].set_visible(True)\n", - " for f in formats:\n", + " for s in range(len(formats)):\n", + " f = formats[s]\n", + " f_factor = 0.05 * (s - 1)\n", " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats\n", " for i in data_arr:\n", - " ax_n.scatter(flat_floats, i, marker=shapes[n], s=marksize, color=colors[f], alpha=a)\n", + " ax_n.scatter(np.exp(in_x+n_factor), i, marker=shapes[n], s=marksize, color=colors[f], alpha=a)\n", " moment_max[n-1].append(max(i))\n", " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", " ax_n.set_ylim(0., max(moment_max[n-1]))\n", - " ax.set_xlim(min(flat_floats) - 10**int(np.log10(min(flat_floats))), max(flat_floats) + 10**int(np.log10(max(flat_floats))))\n", - " ax.set_xticks(flat_floats, ['log'+str(ff) for ff in flat_floats])\n", + " ax.set_xscale('log')\n", + " ax.set_xticks(flat_floats)\n", + " ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())\n", + " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title('KLD moments on '+str(n_gals_use)+' from '+dataset_info[dataset_key]['name']+' mock catalog', fontsize=16)\n", - " ax.legend(loc='upper right')\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", + " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'.png', dpi=250)\n", + " fig.savefig(loc+'_all.png', dpi=250)\n", " plt.close()\n", " \n", " fig, ax = plt.subplots()\n", @@ -672,9 +721,8 @@ "\n", " for key in formats:\n", " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1)\n", - " for n in range(1, 4):\n", + " for n in range(1, n_moments_use):\n", " ax.scatter([-1], [0], color='k', alpha=1., marker=shapes[n], s=marksize, label=moment_names[n])\n", - " for n in range(1, 4):\n", " n_factor = 0.05 * (n - 2)\n", " if n>1:\n", " ax_n = ax.twinx()\n", @@ -709,6 +757,17 @@ " plt.close()" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#similar plot with moments of pz moment distributions?" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -849,6 +908,41 @@ " ax.patch.set_visible(False)\n", " for sp in ax.spines.values():\n", " sp.set_visible(False)\n", + " \n", + " fig, ax = plt.subplots()\n", + " fig.subplots_adjust(right=1.)\n", + " ax_n = ax\n", + " for key in formats:\n", + " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " for n in range(1, n_moments_use):\n", + " n_factor = 0.05 * (n - 2)\n", + " ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " if n>1:\n", + " ax_n = ax.twinx()\n", + " if n>2:\n", + " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", + " make_patch_spines_invisible(ax_n)\n", + " ax_n.spines[\"right\"].set_visible(True)\n", + " for s in range(len(formats)):\n", + " f = formats[s]\n", + " f_factor = 0.05 * (s - 1)\n", + " data_arr = data_arr = np.log(nz_stats[f][n])\n", + " for i in data_arr:\n", + " ax_n.scatter(np.exp(in_x+n_factor), i, marker=shapes[n], s=marksize, color=colors[f], alpha=a)\n", + " moment_max[n-1].append(max(i))\n", + " ax_n.scatter(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), marker=shapes[n], s=marksize, alpha=a, color='k')\n", + " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", + " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", + " ax.set_xscale('log')\n", + " ax.set_xticks(flat_floats)\n", + " ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())\n", + " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", + " ax.set_xlabel('number of parameters', fontsize=14)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", + " ax.legend(loc='lower left')\n", + " fig.tight_layout()\n", + " fig.savefig(loc+'_all.png', dpi=250)\n", + " plt.close()\n", " \n", " fig, ax = plt.subplots()\n", " fig.subplots_adjust(right=1.)\n", @@ -856,9 +950,8 @@ " for key in formats:\n", " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1)\n", " ax.plot([-1], [0], color='k', label='original', linewidth=1)\n", - " for n in range(1, 4):\n", + " for n in range(1, n_moments_use):\n", " ax.scatter([-1], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", - " for n in range(1, 4):\n", " n_factor = 0.05 * (n - 2)\n", " if n>1:\n", " ax_n = ax.twinx()\n", @@ -869,13 +962,12 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", + " data_arr = np.log(nz_stats[f][n])#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " print(np.shape(in_x+n_factor), np.shape(mean))\n", " ax_n.scatter(np.exp(in_x+n_factor), mean, marker=shapes[n], s=marksize, alpha=2. * a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", @@ -891,7 +983,7 @@ " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'.png', dpi=250)\n", + " fig.savefig(loc+'_clean.png', dpi=250)\n", " plt.close()" ] }, @@ -922,17 +1014,21 @@ "for dataset_key in dataset_keys:\n", " dataset_info[dataset_key] = {}\n", " if dataset_key == 'mg':\n", - " datafilename = 'bpz_euclid_test_10_2.probs'\n", + " datafilename = 'bpz_euclid_test_10_3.probs'\n", " z_low = 0.01\n", " z_high = 3.51\n", " nc_needed = 3\n", " plotname = 'brighter'\n", + " skip_rows = 1\n", + " skip_cols = 1\n", " elif dataset_key == 'ss':\n", " datafilename = 'test_magscat_trainingfile_probs.out'\n", " z_low = 0.005\n", " z_high = 2.11\n", " nc_needed = 5\n", " plotname = 'fainter'\n", + " skip_rows = 1\n", + " skip_cols = 1\n", " dataset_info[dataset_key]['filename'] = datafilename \n", " \n", " dataset_info[dataset_key]['z_lim'] = (z_low, z_high)\n", @@ -967,14 +1063,17 @@ "styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'}\n", "stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'}\n", "\n", + "iqr_min = [3.5]\n", + "iqr_max = [delta]\n", + "modes_max = [0]\n", "pz_max = [1.]\n", "nz_max = [1.]\n", "hist_max = [1.]\n", "dist_min = [0.]\n", "dist_max = [0.]\n", - "moment_max = [[]] * (n_moments_use - 1)\n", - "mean_max = -10.*np.ones(n_moments_use + 1)\n", - "mean_min = 10.*np.ones(n_moments_use + 1)\n", + "moment_max = [[]] * (n_moments_use)\n", + "mean_max = -10.*np.ones(n_moments_use)\n", + "mean_min = 10.*np.ones(n_moments_use)\n", "kld_min = [1.]\n", "kld_max = [1.]" ] @@ -1010,7 +1109,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true }, "outputs": [], "source": [ @@ -1022,7 +1122,7 @@ " dataset_start = timeit.default_timer()\n", " print('started '+name)\n", " \n", - " pdfs = setup_dataset(name)\n", + " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", " for s in range(len(sizes)):\n", " size=sizes[s]\n", @@ -1036,20 +1136,20 @@ " \n", " n_gals_use = size\n", " \n", - " randos = all_randos[n][s]#np.random.choice(size, n_plot, replace=False)\n", + " randos = all_randos[n][s]\n", " \n", " for i in instantiations:\n", " \n", " original = 'original'+str(i)\n", " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# plot = plot_examples(size, name, bonus=original)\n", + " plot = plot_examples(size, name, bonus=original)\n", " \n", " z_grid = dataset_info[name]['in_z_grid']\n", " N_comps = dataset_info[name]['N_GMM']\n", " \n", " postfit = 'post-fit'+str(i)\n", " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# plot = plot_examples(size, name, bonus=postfit)\n", + " plot = plot_examples(size, name, bonus=postfit)\n", " \n", " for n_floats_use in floats:\n", " \n", @@ -1059,26 +1159,26 @@ " (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, \n", " z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, n_moments_use, i=i)\n", - "# for f in formats:\n", - "# fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", - "# plot = plot_individual_moment(size, name, n_floats_use, i=i)\n", - " save_pz_metrics(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", - " save_pz_metrics(name, size, n_floats_use, pz_moments, 'pz_moments')\n", + " for f in formats:\n", + " fname = str(n_floats_use)+f+str(i)\n", + " plot = plot_examples(size, name, bonus=fname)\n", + " plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + " plot = plot_individual_moment(size, name, n_floats_use, i=i)\n", + " save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", + " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", " \n", " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, i=i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", + " plot = plot_estimators(size, name, n_floats_use, i=i)\n", " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", - " save_pz_metrics(name, size, n_floats_use, nz_moments, 'nz_moments')\n", + " save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", " print('finished '+str(size)+name+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", " \n", - "# plot = plot_pz_metrics(name, size)\n", + " plot = plot_pz_metrics(name, size)\n", " \n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)\n", + " plot = plot_nz_klds(name, size)\n", + " plot = plot_nz_moments(name, size)\n", " \n", " print('finished '+str(size)+name+' in '+str(timeit.default_timer() - size_start))\n", " \n", @@ -1108,12 +1208,11 @@ " for i in instantiations:\n", " \n", " plot = plot_examples(size, name, bonus='original'+str(i))\n", - " \n", " plot = plot_examples(size, name, bonus='post-fit'+str(i))\n", " \n", " for n_floats_use in floats:\n", " \n", - " for f in formats:\n", + " for f in formatsfain:\n", " fname = str(n_floats_use)+f+str(i)\n", " plot = plot_examples(size, name, bonus=fname)\n", " plot = plot_individual_kld(size, name, n_floats_use, i)\n", From 49e386ef9528cb8e11e9010c3816eb94ab565cc7 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 24 Aug 2017 16:56:15 -0700 Subject: [PATCH 09/96] improved quantile interpolation --- docs/notebooks/demo.ipynb | 4 +-- qp/pdf.py | 51 +++++++++++++++++++++++++++------------ qp/utils.py | 8 +++--- 3 files changed, 42 insertions(+), 21 deletions(-) diff --git a/docs/notebooks/demo.ipynb b/docs/notebooks/demo.ipynb index b7f50d26..1457f042 100644 --- a/docs/notebooks/demo.ipynb +++ b/docs/notebooks/demo.ipynb @@ -170,7 +170,7 @@ }, "outputs": [], "source": [ - "print P.approximate([0.314], using='quantiles')" + "print P.approximate(np.array([0.314]), using='quantiles')" ] }, { @@ -227,7 +227,7 @@ "outputs": [], "source": [ "print P.scheme\n", - "print P.approximate([0.314], using='quantiles', scheme='nearest')\n", + "print P.approximate(np.array([0.314]), using='quantiles', scheme='nearest')\n", "print P.scheme" ] }, diff --git a/qp/pdf.py b/qp/pdf.py index 6a2a76ad..30e20902 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -39,8 +39,8 @@ def __init__(self, truth=None, quantiles=None, histogram=None, Array of length nsamples containing sampled values limits: tuple, float, optional limits past which PDF is considered to be 0. - scheme: string, optional - name of interpolation scheme to use. + scheme: string or int, optional + name of interpolation scheme to use, or order of spline interpolation. vb: boolean report on progress to stdout? @@ -532,19 +532,42 @@ def interpolate(self, using=None, vb=True): if self.quantiles is None: self.quantiles = self.quantize(vb=vb) + if type(self.scheme) != int: + order = 3 + else: + order = self.scheme + (x, y) = qp.utils.evaluate_quantiles(self.quantiles, vb=vb) - (x, y) = qp.utils.normalize_quantiles(self.quantiles[0], (x, y), vb=vb) - self.interpolator = spi.interp1d(x, y, kind=self.scheme, bounds_error=False, fill_value=default_eps) + x = qp.utils.normalize_quantiles(self.quantiles[0], (x, y), vb=vb)[0] + # cdf_interpolator = spi.interp1d(self.quantiles[1], self.quantiles[0]) + # self.interpolator = spi.interp1d(x, y, kind=len(x), bounds_error=False, fill_value=default_eps) + minz, maxz = x[0], x[-1] + z = np.insert(self.quantiles[1], 0, minz) + z = np.append(z, maxz) + q = np.insert(self.quantiles[0], 0, 0.) + q = np.append(q, 1.) + b = spi.make_interp_spline(z, q, k=order).derivative()#, k=len(quantiles[0])) + # if vb: + # print(tck) + + #still not enforcing integration at ends + def quantile_interpolator(xf): + yf = np.ones(len(xf)) * default_eps + subset = ((xf>=minz) == (xf<=maxz)) + yf[subset] = b(xf[subset]) + return(yf) + self.interpolator = quantile_interpolator + if vb: - print 'Created a `'+self.scheme+'` interpolator for the '+using+' parametrization.' - return self.interpolator + print 'Created a k=`'+str(order)+'`B-spline interpolator for the '+using+' parametrization.' if using == 'histogram': # First find the histogram if none exists: if self.histogram is None: self.histogram = self.histogramize(vb=vb) - extra_y = np.insert(self.histogram[1], [0, -1], (default_eps, default_eps)) + extra_y = np.insert(self.histogram[1], 0, default_eps) + extra_y = np.append(extra_y, default_eps) def histogram_interpolator(xf): nx = len(xf) @@ -561,8 +584,6 @@ def histogram_interpolator(xf): if vb: print 'Created a piecewise constant interpolator for the '+using+' parametrization.' - return self.interpolator - if using == 'samples': # First sample if not already done: if self.samples is None: @@ -581,18 +602,16 @@ def samples_interpolator(xf): # self.interpolator = spi.interp1d(x, y, kind=self.scheme, bounds_error=False, fill_value=default_eps) # if vb: print('interpolator support between '+str(min(x))+' and '+str(max(x))+' with extrapolation of '+str(default_eps)) - return self.interpolator - if using == 'gridded': if self.gridded is None: print 'Interpolation from a gridded parametrization requires a previous gridded parametrization.' return (x, y) = self.gridded - self.interpolator = spi.interp1d(x, y, kind=self.scheme, fill_value="extrapolate") + self.interpolator = spi.interp1d(x, y, kind=self.scheme, fill_value="extrapolate") - if vb: - print 'Created a `'+self.scheme+'` interpolator for the '+using+' parametrization.' + if vb: + print 'Created a `'+self.scheme+'` interpolator for the '+using+' parametrization.' return self.interpolator @@ -606,9 +625,9 @@ def approximate(self, points, using=None, scheme=None, vb=True): the value(s) at which to evaluate the interpolated function using: string, optional approximation parametrization - scheme: string, optional + scheme: int or string, optional interpolation scheme, from the [`scipy.interpolate.interp1d` - options](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html). + options](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html) or order of spline interpolation. If passed as `None`, the internal `self.scheme` attribute is used - this defaults to `linear` in the constructor. Otherwise, this attribute is reset to the one chosen. diff --git a/qp/utils.py b/qp/utils.py index 499f06a1..359c0dcd 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -58,7 +58,7 @@ def choice(pop, weights): assert len(pop) == len(weights) cdf_vals = cdf(weights) x = np.random.random() - index = bisect.bisect(cdf_vals,x) + index = bisect.bisect(cdf_vals, x) output = pop[index] return output @@ -188,8 +188,10 @@ def normalize_quantiles(q, (x, y), vb=True): nq = (q[1:] + q[:-1]) / 2. xmin = x[0] - 2 * nq[0] / y[0] xmax = x[-1] + 2 * (1 - nq[-1]) / y[-1] - x = np.insert(x, [0, -1], (xmin, xmax)) - y = np.insert(y, [0, -1], (epsilon, epsilon)) + x = np.insert(x, 0, xmin) + x = np.append(x, xmax) + y = np.insert(y, 0, epsilon) + y = np.append(y, epsilon) return(x, y) def evaluate_quantiles((qs, xs), vb=True): From b4c4cbaf225806d812b68844b924c6967afcbe8c Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 24 Aug 2017 17:03:39 -0700 Subject: [PATCH 10/96] made sampling much faster --- qp/composite.py | 5 ++--- qp/utils.py | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/qp/composite.py b/qp/composite.py index 383ec637..ae72bc72 100644 --- a/qp/composite.py +++ b/qp/composite.py @@ -85,10 +85,9 @@ def rvs(self, size): groups = [0]*self.n_components for item in range(size): groups[qp.utils.choice(self.component_range, self.coefficients)] += 1 - samples = [] * size + samples = [] for c in self.component_range: - for n in range(groups[c]): - samples.append(self.functions[c].rvs()) + samples.append(self.functions[c].rvs(groups[c])) return np.array(samples) def ppf(self, cdfs, ivals=None, vb=True): diff --git a/qp/utils.py b/qp/utils.py index 359c0dcd..d00f2f15 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -48,17 +48,15 @@ def choice(pop, weights): pop: ndarray or list, float or int or str possible classes to assign to sample weights: ndarray, float - array of relative probabilities for classes + array of normalized probabilities for classes Returns ------- output: float or int or str the label on the class for the sample """ - assert len(pop) == len(weights) - cdf_vals = cdf(weights) x = np.random.random() - index = bisect.bisect(cdf_vals, x) + index = bisect.bisect(weights, x) output = pop[index] return output From 5b8eb4f045f7931d642a863b82e050db2139daa0 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 24 Aug 2017 18:11:54 -0700 Subject: [PATCH 11/96] faster sampling and quantization --- docs/notebooks/demo.ipynb | 18 +++++++++++++++- qp/composite.py | 13 ++++++----- qp/pdf.py | 23 ++++++++++++-------- qp/utils.py | 45 +-------------------------------------- 4 files changed, 38 insertions(+), 61 deletions(-) diff --git a/docs/notebooks/demo.ipynb b/docs/notebooks/demo.ipynb index 1457f042..6c57d7f0 100644 --- a/docs/notebooks/demo.ipynb +++ b/docs/notebooks/demo.ipynb @@ -563,7 +563,7 @@ "outputs": [], "source": [ "Cs = qp.PDF(truth=C_dist, limits = composite_lims)\n", - "Cs.sample(N=20, vb=False)\n", + "Cs.sample(N=20, using='truth', vb=False)\n", "Cs.plot()" ] }, @@ -590,6 +590,22 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "a = np.array([1, 2, 6, 4, 2, 3, 2])\n", + "u, counts = np.unique(a, return_counts=True)\n", + "dummy = []\n", + "for i in range(len(u)):\n", + " dummy.append(np.ones(counts[i])*u[i])\n", + "print(dummy)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/qp/composite.py b/qp/composite.py index ae72bc72..f381755c 100644 --- a/qp/composite.py +++ b/qp/composite.py @@ -82,13 +82,12 @@ def rvs(self, size): xs: numpy.ndarray, float samples from the PDF """ - groups = [0]*self.n_components - for item in range(size): - groups[qp.utils.choice(self.component_range, self.coefficients)] += 1 - samples = [] - for c in self.component_range: - samples.append(self.functions[c].rvs(groups[c])) - return np.array(samples) + groups = np.random.choice(self.component_range, size, p=self.coefficients) + u, counts = np.unique(groups, return_counts=True) + samples = np.empty(0) + for i in range(len(u)): + samples = np.append(samples, self.functions[u[i]].rvs(counts[i])) + return np.array(samples).flatten() def ppf(self, cdfs, ivals=None, vb=True): """ diff --git a/qp/pdf.py b/qp/pdf.py index 30e20902..3f214743 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -222,12 +222,17 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): if self.truth is not None: if isinstance(self.truth, qp.composite): + if type(self.scheme) != int: + order = 3 + else: + order = self.scheme + extrapoints = np.concatenate((np.array([0.]), quantpoints, np.array([1.]))) min_delta = np.min(extrapoints[1:] - extrapoints[:-1]) grid = np.linspace(limits[0], limits[-1], N) icdf = self.truth.cdf(grid) low_extended = 0 - while icdf[0] > quantpoints[0] and low_extended < 5: + while icdf[0] > quantpoints[0]:# and low_extended < 5: low_extended += 1 limits = (limits[0] - 1., limits[-1]) grid = np.linspace(limits[0], limits[-1], N) @@ -235,7 +240,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): if vb: print('lower limits extended '+str(low_extended)+' times') high_extended = 0 - while icdf[-1] < quantpoints[-1] and high_extended < 5: + while icdf[-1] < quantpoints[-1]:# and high_extended < 5: high_extended += 1 limits = (limits[0], limits[-1] + 1.) grid = np.linspace(limits[0], limits[-1], N) @@ -244,21 +249,21 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): print('upper_limits extended '+str(high_extended)+' times') new_deltas = icdf[1:] - icdf[:-1] expanded = 0 - while np.max(new_deltas) >= 2. * min_delta and expanded < 10: + while np.max(new_deltas) >= min_delta: expanded += 1 - where_wrong = np.where(new_deltas >= 2. * min_delta)[0] + where_wrong = np.where(new_deltas >= min_delta)[0] flipped = np.flip(where_wrong, axis=0) for i in flipped: - delta_i = new_deltas[i] / (N + 1) - subgrid = np.linspace(grid[i] + delta_i, grid[i+1] - delta_i, 10) + delta_i = new_deltas[i] / (order + 1) + subgrid = np.linspace(grid[i] + delta_i, grid[i+1] - delta_i, order) grid = np.insert(grid, i+1, subgrid) icdf = np.insert(icdf, i+1, self.truth.cdf(subgrid)) new_deltas = icdf[1:] - icdf[:-1] if vb: print('grid expanded '+str(expanded)+' times') - locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) - - quantiles = self.truth.ppf(quantpoints, ivals=grid[locs]) + # locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) + b = spi.make_interp_spline(icdf, grid, k=order) + quantiles = b(quantpoints)#self.truth.ppf(quantpoints, ivals=grid[locs]) else: quantiles = self.truth.ppf(quantpoints) else: diff --git a/qp/utils.py b/qp/utils.py index d00f2f15..58d6feaa 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -8,7 +8,7 @@ import scipy as sp from scipy import stats as sps import sys -import bisect +# import bisect global epsilon epsilon = sys.float_info.epsilon @@ -17,49 +17,6 @@ global lims lims = (epsilon, 1.) -def cdf(weights): - """ - Creates a normalized CDF from an arbitrary discrete distribution - - Parameters - ---------- - weights: ndarray, float - array of relative probabilities for classes - - Returns - ------- - result: ndarray, float - discrete CDF - """ - tot = sum(weights) - result = [] - cumsum = 0. - for w in weights: - cumsum += w - result.append(cumsum / tot) - return np.array(result) - -def choice(pop, weights): - """ - Samples classes from a discrete CDF - - Parameters - ---------- - pop: ndarray or list, float or int or str - possible classes to assign to sample - weights: ndarray, float - array of normalized probabilities for classes - - Returns - ------- - output: float or int or str - the label on the class for the sample - """ - x = np.random.random() - index = bisect.bisect(weights, x) - output = pop[index] - return output - def safelog(arr, threshold=epsilon): """ Takes the natural logarithm of an array that might contain zeroes. From b3d82df958efc1fadbc26365fea074cbbe7af0c6 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 24 Aug 2017 18:14:25 -0700 Subject: [PATCH 12/96] removing detritus --- docs/notebooks/demo.ipynb | 16 ---------------- qp/composite.py | 4 +--- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/docs/notebooks/demo.ipynb b/docs/notebooks/demo.ipynb index 6c57d7f0..90340958 100644 --- a/docs/notebooks/demo.ipynb +++ b/docs/notebooks/demo.ipynb @@ -590,22 +590,6 @@ "outputs": [], "source": [] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "a = np.array([1, 2, 6, 4, 2, 3, 2])\n", - "u, counts = np.unique(a, return_counts=True)\n", - "dummy = []\n", - "for i in range(len(u)):\n", - " dummy.append(np.ones(counts[i])*u[i])\n", - "print(dummy)" - ] - }, { "cell_type": "code", "execution_count": null, diff --git a/qp/composite.py b/qp/composite.py index f381755c..85bfbd13 100644 --- a/qp/composite.py +++ b/qp/composite.py @@ -89,7 +89,7 @@ def rvs(self, size): samples = np.append(samples, self.functions[u[i]].rvs(counts[i])) return np.array(samples).flatten() - def ppf(self, cdfs, ivals=None, vb=True): + def ppf(self, cdfs, ivals=None): """ Evaluates the composite PPF at locations @@ -99,8 +99,6 @@ def ppf(self, cdfs, ivals=None, vb=True): value(s) at which to find quantiles ivals: float or numpy.ndarray, float initial guesses for quantiles - vb: boolean - print progress to stdout? Returns ------- From e418e4c69667c4ad68aceeeeb8921895ed6283f7 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 10:03:31 -0700 Subject: [PATCH 13/96] periodic backup with new quantization --- .../research/analysis.ipynb | 28 +++++++---- qp/ensemble.py | 2 +- qp/pdf.py | 48 +++++++++++++------ 3 files changed, 53 insertions(+), 25 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 4b373f3a..8cb95ca1 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -78,13 +78,13 @@ "outputs": [], "source": [ "def setup_dataset(dataset_key, skip_rows, skip_cols):\n", - " \n", + " start = timeit.default_timer()\n", " with open(dataset_info[dataset_key]['filename'], 'rb') as data_file:\n", " lines = (line.split(None) for line in data_file)\n", " for r in range(skip_rows):\n", " lines.next()\n", " pdfs = np.array([[float(line[k]) for k in range(skip_cols, len(line))] for line in lines])\n", - " \n", + " print('read in data file in '+str(timeit.default_timer()-start))\n", " return(pdfs)" ] }, @@ -98,6 +98,8 @@ "source": [ "def make_instantiation(dataset_key, n_gals_use, pdfs, bonus=None):\n", " \n", + " start = timeit.default_timer()\n", + " \n", " n_gals_tot = len(pdfs)\n", " full_gal_range = range(n_gals_tot)\n", " subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)\n", @@ -112,11 +114,17 @@ " iqr_lo = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.25)]\n", " iqr_hi = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.75)]\n", " iqrs.append(iqr_hi - iqr_lo)\n", + " modality = np.array(modality)\n", + " \n", + " dataset_info[dataset_key]['N_GMM'] = int(np.median(modality))\n", + " print('n_gmm for '+dataset_info[dataset_key]['name']+' = '+str(dataset_info[dataset_key]['N_GMM']))\n", " \n", " # using the same grid for output as the native format, but doesn't need to be so\n", " dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid']\n", " dataset_info[dataset_key]['metric_z_grid'] = dataset_info[dataset_key]['z_grid']\n", " \n", + " print('preprocessed data in '+str(timeit.default_timer()-start))\n", + " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", @@ -313,6 +321,7 @@ " print('making the approximate ensembles')\n", " Eo = {}\n", " for f in formats:\n", + " start = timeit.default_timer()\n", " Eo[f] = qp.Ensemble(E.n_pdfs, truth=E.truth, \n", " quantiles=inits[f]['quantiles'], \n", " histogram=inits[f]['histogram'],\n", @@ -326,6 +335,7 @@ " info['z_grid'] = z_grid\n", " info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1]\n", " hickle.dump(info, filename)\n", + " print('made '+f+' ensemble in '+str(timeit.default_timer()-start))\n", " print('made the approximate ensembles')\n", " \n", " print('calculating the individual metrics')\n", @@ -500,10 +510,11 @@ " stack_start = timeit.default_timer()\n", " stacked_pdfs, stacks = {}, {}\n", " for key in formats:\n", + " start = timeit.default_timer()\n", " stacked_pdfs[key] = qp.PDF(gridded=E[key].stack(z_grid, using=key, \n", " vb=False)[key])\n", " stacks[key] = stacked_pdfs[key].evaluate(z_grid, using='gridded', norm=True, vb=False)[1]\n", - " \n", + " print('stacked '+key+ 'in '+str(timeit.default_timer()-start))\n", " stacked_pdfs['truth'] = qp.PDF(gridded=E0.stack(z_grid, using='truth', \n", " vb=False)['truth'])\n", " \n", @@ -1017,7 +1028,7 @@ " datafilename = 'bpz_euclid_test_10_3.probs'\n", " z_low = 0.01\n", " z_high = 3.51\n", - " nc_needed = 3\n", + "# nc_needed = 3\n", " plotname = 'brighter'\n", " skip_rows = 1\n", " skip_cols = 1\n", @@ -1025,7 +1036,7 @@ " datafilename = 'test_magscat_trainingfile_probs.out'\n", " z_low = 0.005\n", " z_high = 2.11\n", - " nc_needed = 5\n", + "# nc_needed = 5\n", " plotname = 'fainter'\n", " skip_rows = 1\n", " skip_cols = 1\n", @@ -1038,8 +1049,7 @@ " dataset_info[dataset_key]['z_grid'] = z_grid\n", " dataset_info[dataset_key]['delta_z'] = delta_z\n", "\n", - " dataset_info[dataset_key]['N_GMM'] = nc_needed\n", - " \n", + "# dataset_info[dataset_key]['N_GMM'] = nc_needed\n", " dataset_info[dataset_key]['name'] = plotname" ] }, @@ -1110,7 +1120,7 @@ "execution_count": null, "metadata": { "collapsed": false, - "scrolled": true + "scrolled": false }, "outputs": [], "source": [ @@ -1212,7 +1222,7 @@ " \n", " for n_floats_use in floats:\n", " \n", - " for f in formatsfain:\n", + " for f in formats:\n", " fname = str(n_floats_use)+f+str(i)\n", " plot = plot_examples(size, name, bonus=fname)\n", " plot = plot_individual_kld(size, name, n_floats_use, i)\n", diff --git a/qp/ensemble.py b/qp/ensemble.py index 793e060c..fd291d32 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -190,7 +190,7 @@ def quantize_helper(i): # with open(self.logfilename, 'wb') as logfile: # logfile.write('quantizing pdf '+str(i)+'\n') return self.pdfs[i].quantize(quants=quants, - N=N, limits=None, vb=False) + N=N, limits=None, vb=vb) self.quantiles = self.pool.map(quantize_helper, self.pdf_range) self.quantiles = np.swapaxes(np.array(self.quantiles), 0, 1) diff --git a/qp/pdf.py b/qp/pdf.py index 3f214743..56e2a30c 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -231,22 +231,27 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): min_delta = np.min(extrapoints[1:] - extrapoints[:-1]) grid = np.linspace(limits[0], limits[-1], N) icdf = self.truth.cdf(grid) + unit_ext = 1. / order low_extended = 0 while icdf[0] > quantpoints[0]:# and low_extended < 5: low_extended += 1 + subgrid = np.linspace(limits[0] - 1., limits[0] - unit_ext, order) + subcdf = self.truth.cdf(subgrid) + grid = np.concatenate((subgrid, grid)) + icdf = np.concatenate((subcdf, icdf)) limits = (limits[0] - 1., limits[-1]) - grid = np.linspace(limits[0], limits[-1], N) - icdf = self.truth.cdf(grid) - if vb: - print('lower limits extended '+str(low_extended)+' times') + if vb: + print('lower limits extended '+str(low_extended)+' times') high_extended = 0 while icdf[-1] < quantpoints[-1]:# and high_extended < 5: high_extended += 1 + subgrid = np.linspace(limits[-1] + unit_ext, limits[-1] + 1., order) + subcdf = self.truth.cdf(subgrid) + grid = np.concatenate((grid, subgrid)) + icdf = np.concatenate((icdf, subcdf)) limits = (limits[0], limits[-1] + 1.) - grid = np.linspace(limits[0], limits[-1], N) - icdf = self.truth.cdf(grid) - if vb: - print('upper_limits extended '+str(high_extended)+' times') + if vb: + print('upper_limits extended '+str(high_extended)+' times') new_deltas = icdf[1:] - icdf[:-1] expanded = 0 while np.max(new_deltas) >= min_delta: @@ -254,14 +259,27 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): where_wrong = np.where(new_deltas >= min_delta)[0] flipped = np.flip(where_wrong, axis=0) for i in flipped: - delta_i = new_deltas[i] / (order + 1) + delta_i = new_deltas[i] / (order + 1.) subgrid = np.linspace(grid[i] + delta_i, grid[i+1] - delta_i, order) - grid = np.insert(grid, i+1, subgrid) - icdf = np.insert(icdf, i+1, self.truth.cdf(subgrid)) + grid = np.insert(grid, i, subgrid) + if vb: + if np.allclose(grid, np.sort(grid)): + print('yay, grid was sorted!') + else: + print('oh noes, bad grid at '+str(i)+'! '+str(grid)) + subcdf = self.truth.cdf(subgrid) + icdf = np.insert(icdf, i, subcdf) + if vb: + if np.allclose(icdf, np.sort(icdf)): + print('yay, cdf was sorted!') + else: + print('oh noes, bad cdf at '+str(i)+'! '+str(icdf)) new_deltas = icdf[1:] - icdf[:-1] - if vb: - print('grid expanded '+str(expanded)+' times') + if vb: + print('grid expanded '+str(expanded)+' times') # locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) + # if vb: + # print(icdf, grid) b = spi.make_interp_spline(icdf, grid, k=order) quantiles = b(quantpoints)#self.truth.ppf(quantpoints, ivals=grid[locs]) else: @@ -270,11 +288,11 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): print('New quantiles can only be computed from a truth distribution in this version.') return - if vb: - print("Resulting "+str(len(quantiles))+" quantiles: "+str(quantiles)) # integrals = self.truth.cdf(quantiles) # assert np.isclose(integrals, quantpoints) self.quantiles = (quantpoints, quantiles) + if vb: + print("Resulting "+str(len(quantiles))+" quantiles: "+str(self.quantiles)) self.limits = (min(limits[0], np.min(quantiles)), max(limits[-1], np.max(quantiles))) self.last = 'quantiles' return self.quantiles From f8545a1f93a637212d329fb26c627fd0849bb8b8 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 11:29:32 -0700 Subject: [PATCH 14/96] eliminated PDF.interpolator due to pickling error (also unnecessary) --- qp/pdf.py | 73 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 56e2a30c..d7be4d86 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -89,9 +89,6 @@ def __init__(self, truth=None, quantiles=None, histogram=None, # first one: self.last = self.first - # We'll make an interpolator if and when we need it: - self.interpolator = None - return def evaluate(self, loc, using=None, norm=False, vb=True): @@ -229,11 +226,12 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): extrapoints = np.concatenate((np.array([0.]), quantpoints, np.array([1.]))) min_delta = np.min(extrapoints[1:] - extrapoints[:-1]) - grid = np.linspace(limits[0], limits[-1], N) + + grid = np.linspace(limits[0], limits[-1], N + 1) icdf = self.truth.cdf(grid) - unit_ext = 1. / order + unit_ext = 1. / (order + 1.) low_extended = 0 - while icdf[0] > quantpoints[0]:# and low_extended < 5: + while icdf[0] >= quantpoints[0]: low_extended += 1 subgrid = np.linspace(limits[0] - 1., limits[0] - unit_ext, order) subcdf = self.truth.cdf(subgrid) @@ -243,7 +241,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): if vb: print('lower limits extended '+str(low_extended)+' times') high_extended = 0 - while icdf[-1] < quantpoints[-1]:# and high_extended < 5: + while icdf[-1] <= quantpoints[-1]: high_extended += 1 subgrid = np.linspace(limits[-1] + unit_ext, limits[-1] + 1., order) subcdf = self.truth.cdf(subgrid) @@ -261,27 +259,30 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): for i in flipped: delta_i = new_deltas[i] / (order + 1.) subgrid = np.linspace(grid[i] + delta_i, grid[i+1] - delta_i, order) - grid = np.insert(grid, i, subgrid) - if vb: - if np.allclose(grid, np.sort(grid)): - print('yay, grid was sorted!') - else: - print('oh noes, bad grid at '+str(i)+'! '+str(grid)) + grid = np.sort(np.insert(grid, i, subgrid)) + # if vb: + # if np.allclose(grid, np.sort(grid)): + # print('yay, grid was sorted!') + # else: + # print('oh noes, bad grid at '+str(i)+'! '+str(grid)) subcdf = self.truth.cdf(subgrid) - icdf = np.insert(icdf, i, subcdf) - if vb: - if np.allclose(icdf, np.sort(icdf)): - print('yay, cdf was sorted!') - else: - print('oh noes, bad cdf at '+str(i)+'! '+str(icdf)) + icdf = np.sort(np.insert(icdf, i, subcdf)) + # if vb: + # if np.allclose(icdf, np.sort(icdf)): + # print('yay, cdf was sorted!') + # else: + # print('oh noes, bad cdf at '+str(i)+'! '+str(icdf)) new_deltas = icdf[1:] - icdf[:-1] if vb: print('grid expanded '+str(expanded)+' times') # locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) # if vb: # print(icdf, grid) - b = spi.make_interp_spline(icdf, grid, k=order) + # if vb: print('about to interpolate the CDF: '+str(icdf)+', '+str(grid)) + b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order) + # if vb: print('made the interpolator') quantiles = b(quantpoints)#self.truth.ppf(quantpoints, ivals=grid[locs]) + # if vb: print('found the quantiles') else: quantiles = self.truth.ppf(quantpoints) else: @@ -531,17 +532,16 @@ def interpolate(self, using=None, vb=True): Returns ------- - self.interpolator + interpolator an interpolator object Notes ----- - The `self.interpolator` object is a function that is used by the + The `interpolator` object is a function that is used by the `approximate` method. It employs [`scipy.interpolate.interp1d`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html) - to carry out the interpolation, using the internal - `self.scheme` attribute to choose the interpolation scheme. - TO DO: There's got to be a better to do quantile interpolation! Maybe use inverse CDF? + to carry out the interpolation for the gridded format, using the internal + `self.scheme` attribute to choose the interpolation scheme. For quantile interpolation, it uses a `scipy.interpolate.InterpolatedUnivariateSpline` object, with self.scheme being the integer order of the spline. """ if using is None: using = self.last @@ -563,23 +563,24 @@ def interpolate(self, using=None, vb=True): (x, y) = qp.utils.evaluate_quantiles(self.quantiles, vb=vb) x = qp.utils.normalize_quantiles(self.quantiles[0], (x, y), vb=vb)[0] # cdf_interpolator = spi.interp1d(self.quantiles[1], self.quantiles[0]) - # self.interpolator = spi.interp1d(x, y, kind=len(x), bounds_error=False, fill_value=default_eps) + # interpolator = spi.interp1d(x, y, kind=len(x), bounds_error=False, fill_value=default_eps) minz, maxz = x[0], x[-1] z = np.insert(self.quantiles[1], 0, minz) z = np.append(z, maxz) q = np.insert(self.quantiles[0], 0, 0.) q = np.append(q, 1.) - b = spi.make_interp_spline(z, q, k=order).derivative()#, k=len(quantiles[0])) + # b = spi.InterpolatedUnivariateSpline(z, q, k=order).derivative()#, k=len(quantiles[0])) # if vb: # print(tck) #still not enforcing integration at ends def quantile_interpolator(xf): + b = spi.InterpolatedUnivariateSpline(z, q, k=order).derivative() yf = np.ones(len(xf)) * default_eps - subset = ((xf>=minz) == (xf<=maxz)) + subset = ((xf>z[0]) == (xf Date: Fri, 25 Aug 2017 15:40:11 -0700 Subject: [PATCH 15/96] cleaning up --- docs/notebooks/demo.ipynb | 705 +++++++++++++++++++++++++++++++++++--- 1 file changed, 650 insertions(+), 55 deletions(-) diff --git a/docs/notebooks/demo.ipynb b/docs/notebooks/demo.ipynb index 90340958..bcb396b2 100644 --- a/docs/notebooks/demo.ipynb +++ b/docs/notebooks/demo.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -46,12 +46,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: initializing a PDF object without inputs\n" + ] + } + ], "source": [ "# ! cat qp/pdf.py\n", "P = qp.PDF()" @@ -68,11 +76,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Plotted truth.\n" + ] + }, + { + "data": { + "image/png": "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\nMtHipZde4uyzzwZg69atPPPMM44TmaLi8gyqKZCuqhtVNRMYA/TIsU0P4PhDDuOAa8QOqYsdVeXu\nu+/ml19+AeCCCy7I1ovPmJM588wzs13qe+ONN5g3b57DRKaouCxQVYHNvvaW4Lpct1HVo8CvwFnB\n12qJyNciskBErsrtG4jIPSKSKiKpGRkZRZveFJn3338/2/QJw4cP94azMSY/evXqRefOnb327bff\nzq+//uowkSkK0dpJYhtwvqo2Bh4FRotI+ZwbqepwVU1W1WR7jiYybdy4MVvvqwcffJBrrrnGYSIT\njUSE9957j0qVKgGwadMmBg4c6DiVKSyXBWor4B+7plpwXa7biEgJoAKwS1UPq+ouAFVdDmwALg55\nYlOkDh8+zM0338z+/fsBqFOnDn/7298cpzLRqkqVKrz99u/9pT744ANGjRrlMJEpLJcFahlQW0Rq\niUhJoBcwMcc2E4Hbgss9gbmqqiKSFOxkgYhcANQGNoYptykigwYNIjU1FQj02hs1apQ3a6oxp+PG\nG2+kb9++Xrt///7ekFkm+jgrUMF7SgOAGcB3wFhVTRORISLSPbjZCOAsEUkncCnveFf0VsBqEVlJ\noPNEf1XdHd6fwBTGmDFjGDZsmNceOnQoV1xxhcNEprh46623qFOnDgAHDhygZ8+e7Nu3z3Eqczok\nVqZNTk5O1uNH68atZcuW0apVKw4dOgTADTfcwCeffGLPPJkis2bNGpo2bcrBgwcB6NKlC59//jnx\n8fGOkxkAEVmuqsmn2i5aO0mYKLVp0ya6d+/uFafatWszYsQIK06mSDVo0IDhw4d77SlTpjBo0CCH\niczpsAJlwmb37t107dqV7du3A4HnV6ZMmUKFChUcJzPFUd++fXnyyd8HqHn99dezPS9lIp8VKBMW\n+/bto3PnznzzzTdAoFPEp59+alO4m5B68cUXuf766732I488wvvvv+8wkSkIK1Am5H777Te6d+/u\nTd8OgYdz27Rp4y6UiQlxcXGMGjWKP/zhD966u+++m48++shhKpNfVqBMSP3yyy906NCB+fPne+uG\nDRvGH//4R3ehTEw544wzmDJlCo0bNwYCo+b36dOH9957z3EycypWoEzIbN++nauvvpovv/zSW/fy\nyy9z//33O0xlYlHFihWZMWMG9eoFxqM+Pv7jK6+8Qqz0ZI5GVqBMSHz99ddcccUVrFy50lv3+uuv\n89hjjzlMZWJZUlISCxYsoEmTJt66xx57jHvvvZfMzEyHyUxerECZIjdmzBhatmzJli1bgMB9gPff\nf9/GRjPOVa5cmblz53LVVb+PL/3uu+/SoUMHtm3b5jCZyY0VKFNkDhw4wN13303v3r05cOAAAOXL\nl2fatGnccccdjtMZE1ChQgVmzpxJnz59vHULFizgsssuY8aMGQ6TmZysQJkisXDhQho1apTtxvOF\nF17I4sWL6dChg8NkxpwoMTGRUaNG8eKLL3oPiWdkZJCSksJ9991ns/JGCCtQplAyMjK49957ad26\nNevXr/fW9+rVixUrVlC3bl2H6YzJm4jw9NNPM3v2bM4991xv/dtvv039+vX55JNPrAOFY1agzGn5\n7bffePnll7nooouyDSlTvnx5RowYwejRoylf/oQpuoyJOG3btmXVqlX06PH7hN5btmzhpptuolWr\nVtl6oZrwsgJlCuSXX35h6NCh1KpViyeeeCLbpZBu3brx7bffcuedd9rYeiaqnH322UyYMIGPP/4Y\n/+Sm//nPf2jRooX3LJ+dUYWXFSiTLytXruSBBx6gWrVqPP7442RkZHiv1alTh8mTJ/P5559TtWpV\nhymNOX0iwk033cT333/Po48+SokSJbzXZs2axdVXX02jRo0YPny4TScfJjbdhsnTunXrmDBhAh99\n9BGrV68+4fXq1avz9NNP069fPxISEhwkNCZ01q9fz/PPP8+HH35IVlZWttcSExO59tpr6dmzJykp\nKZQpU8ZRyuiU3+k2rEAZz86dO1m0aBGzZ89m5syZfP/997lu16BBAx566CFuvfVWSpYsGeaUxoTX\n+vXr+b//+z9GjRrlPT7hl5iYSKtWrejQoQNt2rThsssuy3b2ZU5kBSoHK1C/U1V++ukn0tLSWLNm\nDStWrCA1NZV169bluU/p0qW5/vrr6devH23atLF7TCbm7Nmzh5EjRzJy5MhsI6TkVKZMGZKTk2nS\npAmNGzemfv36XHLJJZxxxhlhTBvZoqJAiUgK8DoQD7ynqn/L8Xop4APgcmAXcLOq/jf42lNAP+AY\nMFBVT/qEnRWogIULF9K9e/d8XUMvXbo0KSkpXHfddfTo0cN65RkTtHr1asaPH8/48eNJS0s75fYi\nQtu2bZk9e3YY0kW+/BYoZ+ehIhIPDAPaA1uAZSIyUVW/9W3WD9ijqheJSC/gJeBmEakH9ALqA+cB\ns0XkYlU9Ft6fIvqcd955eRanhIQEkpOTueqqq2jfvj0tW7YkMTExzAmNiXwNGzakYcOG/OUvf2HT\npk3MmjWLOXPmsGjRIjZt2nTC9qpK2bJlHSSNbi4vlDYF0lV1I4CIjAF6AP4C1QP4c3B5HPCmBK4t\n9QDGqOph4AcRSQ++31dhyh61atWqRWJiIiVLlqR+/frUr1+fRo0a0aRJExo1akTp0qVdRzQmqpx/\n/vn069ePfv36AbB582ZWrFjB8uXLWbNmDWlpaaSnp3sjqZv8c1mgqgKbfe0tQLO8tlHVoyLyK3BW\ncP3iHPue0L9ZRO4B7oHA/0QG4uPj+fHHH0lKSrL7SMaEQPXq1alevXq2B38PHTrE4cOHHaaKTsX6\nOShVHa6qyaqa7H/4LtadffbZVpyMCaPExEQqVKjgOkbUcVmgtgLVfe1qwXW5biMiJYAKBDpL5Gdf\nY4wxUcxlgVoG1BaRWiJSkkCnh4k5tpkI3BZc7gnM1UC3w4lALxEpJSK1gNrA0jDlNsYYEwbO7kEF\n7ykNAGYQ6Gb+vqqmicgQIFVVJwIjgFHBThC7CRQxgtuNJdCh4ijwgPXgM8aY4sUe1DXGGBNW+X0O\nqlh3kjDGGBO9rEAZY4yJSFagjDHGRKSYuQclIhnAj65z+FQGdroOEaHss8mbfTZ5s8/m5CLp86mh\nqqd8ODVmClSkEZHU/NwkjEX22eTNPpu82WdzctH4+dglPmOMMRHJCpQxxpiIZAXKneGuA0Qw+2zy\nZp9N3uyzObmo+3zsHpQxxpiIZGdQxhhjIpIVKGOMMRHJClQEEJFBIqIiUtl1lkghIkNFZK2IrBaR\nCSJS0XUm10QkRUTWiUi6iDzpOk+kEJHqIjJPRL4VkTQRech1pkgjIvEi8rWITHadpSCsQDkmItWB\nDsAm11kizCyggao2BL4HnnKcxykRiQeGAZ2AekBvEbE5xAOOAoNUtR7QHHjAPpsTPAR85zpEQVmB\ncu/vwOOA9VbxUdWZqno02FxMYFLKWNYUSFfVjaqaCYwBepxin5igqttUdUVweR+BP8RV3aaKHCJS\nDegCvOc6S0FZgXJIRHoAW1V1lessEe5OYJrrEI5VBTb72luwP8InEJGaQGNgidskEeU1AgfBWa6D\nFJSzCQtjhYjMBs7N5aXBwNMELu/FpJN9Nqr6eXCbwQQu4XwYzmwm+ohIWWA88LCq7nWdJxKISFfg\nZ1VdLiJtXOcpKCtQIaaq7XJbLyKXArWAVSICgUtYK0SkqapuD2NEZ/L6bI4TkduBrsA1ag/sbQWq\n+9rVgusMICIJBIrTh6r6qes8EaQF0F1EOgOJQHkR+beq9nWcK1/sQd0IISL/BZJVNVJGG3ZKRFKA\nV4HWqprhOo9rIlKCQGeRawgUpmXALaqa5jRYBJDAEd5IYLeqPuw6T6QKnkH9SVW7us6SX3YPykSq\nN4FywCwRWSkib7sO5FKww8gAYAaBTgBjrTh5WgB/BNoG/19ZGTxjMFHOzqCMMcZEJDuDMsYYE5Gs\nQBljjIlIVqCMMcZEJCtQxhhjIpIVKGOMMRHJCpQxxpiIZAXKGGNMRLICZYwxJiJZgTImwonI48EJ\nLXN+DXGdzZhQspEkjIlwIlIOKONb9SegD3CVqqa7SWVM6FmBMiaKiMgTwECgraquc53HmFCy6TaM\niRIi8hTwAHC1qn7vOo8xoWYFypgoICLPAP2BNnZZz8QKK1DGRDgReQ64i8DcWBtc5zEmXKxAGRPB\ngmdOA4HuwG8icm7wpV9U9ZC7ZMaEnnWSMCZCBWeK/QUon8vL7VR1TpgjGRNWVqCMMcZEJHtQ1xhj\nTESyAmWMMSYiWYEyxhgTkaxAGWOMiUhWoIwxxkQkK1DGGGMikhUoY4wxEckKlDHGmIj0/wGM2Afd\nuNkyLgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "dist = sps.norm(loc=0, scale=1)\n", "print(type(dist))\n", @@ -92,11 +119,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -3.24126734007 and 3.85273149065 using samples\n", + "Plotted samples\n" + ] + }, + { + "data": { + "image/png": "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\nwoUL6dChA927d+fdd98t8f8xKiqKHj16FAwbVVhCQgL33Xcfzz33XIn7KReqWqYvIALo6vuKLOv2\nrr569OihxhT2wGcPaKsnWumjSx91HaXcJCcnn/C41ROtSvyavmj6Ce2LPi78dToej0dXbV2l7Tu1\n1zZt2ujEiRN16dKlBev37dtX8P24ceN0/vz5qqo6aNAgvfvuu1VV9ZlnntFGjRrp7t279fjx49qk\nSRNNT0/Xbdu2KaBfffWVqqredNNN+sQTTxRsv2rVKk1LS9MBAwbokSNHVFX10Ucf1QceeEDT09O1\nXbt26vF4VFX1wIEDJ2V/5ZVXdNKkSaqqesMNN+hVV12leXl5um7dOm3durWqqi5ZskQvv/zygm1e\nfPFFfeihh1RV9fjx49qjRw/dunWrLlmyRGvUqKFbt25VVT1l9mPHjmlcXJympKSoqup1112nTz/9\n9AmvqfD7lpubq4MGDdIffvhBVVWbN2+uaWlpqqqnfO35z7Fx40b1eDw6evToE15DvsKvLT09XZs3\nb64//fTTSa9ZVfX777/XDh06qKrq/fffr40bN9auXbtq165ddeHChSftu+hnUlUV71myEn9vl6kX\nn4hcjLd793e+r30i8pKINCjPomlMRVNVlm5dCsDQdnYLXXkQERrWbcicRXN47NnHiI2N5eqrr+bV\nV18FYMmSJfTu3ZvOnTvz+eefs27duoJti5tyIyIiomDKDeCkKTe++uqrE56/8JQbCQkJvPbaa/z8\n888nTLnx7rvvluqU2BVXXEFISAjx8fH8+uuvxbb55JNPeP3110lISKB3797s27evYKDcXr160bLl\nf/uXFZc9JSWFli1b0q6d9+j9hhtu4MsvvzzpeebOnUv37t3p1q0b69atIzk5+aQ2p3rtGzZsoGXL\nlrRt2xYRYdy4cad8zcuWLaNbt25ccsklTJs2jU6dOhXbTosMj3f77bezZs0a1qxZw5Ah5XuqvKwn\nR58DvsB7w+5hoD/we+A7ERmgxUzDYUwgEhE+vP5Dlm1fRpeGXVzHqTBlHV+vaPuybl8rohYHjh2g\nS68ujLp0FJ07d+a1115jzJgx/Pa3vw2aKTcKZyj6C7nw8r/97W8n/VJeunQpUVEnjohfUvZT2bZt\nG08++SSrVq2iTp063HjjjSe8b4WzFPfa16xZU6rngROvNZ3O999/f0bjPZ6Jst4H1QyYrt7RH9JV\n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\nQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "np.random.seed(42)\n", "\n", @@ -116,12 +163,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating 10 quantiles: [ 0.09090909 0.18181818 0.27272727 0.36363636 0.45454545 0.54545455\n", + " 0.63636364 0.72727273 0.81818182 0.90909091]\n", + "Resulting 10 quantiles: (array([ 0.09090909, 0.18181818, 0.27272727, 0.36363636, 0.45454545,\n", + " 0.54545455, 0.63636364, 0.72727273, 0.81818182, 0.90909091]), array([-1.33517774, -0.90845787, -0.60458535, -0.3487557 , -0.11418529,\n", + " 0.11418529, 0.3487557 , 0.60458535, 0.90845787, 1.33517774]))\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -1.33517773612 and 1.33517773612 using quantiles\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -5.0 and 5.0 using quantiles\n", + "Plotted quantiles.\n" + ] + }, + { + "data": { + "image/png": "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\nPQWV3H/y1qP+vH/nd4Pgxp5vyJw5c0hLS+OHP/whAG63mz/96U88//zzlJSUHPUJ/oILLmDu3LkA\n3HDDDQwfPpz+/ftz/yN3Vcf06tWLO+64g6FDhzJgwADWrFnDt99+yxNPPMGf/vQnzr50BJ9++il3\n3nlnraOgpUuXcvG1ZzNs2DDGjx/Pzp076/0exowZwy233MLIkSPp06cPn376KZ5KD7fffjuvvfYa\ngwcP5rXXXuPw4cNcd911jBw5kiFDhvDvOf4r58899xwTJ07krLPOYty4ccydO5czzzyT888/n9Mv\nOJnrr78en8+fEF955RUGDBjAySefzC233FJrfy666CKGDRtG//79mTlzJgAzZsygrKyMwYMHc9VV\nVwHw4osvMnLkSAYPHswvf/vfVFX5s8Rf//pX+vTpw8iRI/nss88a/Dfs3LkzJ5xwAps3bz7q3Nix\nY5k6dWp1P2pyBe55WoJKLJagTMz4qvwjJycmSKxcuZJhw4YdcaxNmzb06tWLgoKCetvefffdLFmy\nhBUrVvDFkk9ZsWJF9blOnTqxbNkybrjhBh544AF69erF9ddfz//+7//y0ZuLOeOMM2p9zsrKSv7n\nf/6Hpx58haVLl3Lddddx2223Nfh9eL1eFi1axJ///Gd++9vfkpKcwl133VU9ypg8eTJ33303Z511\nFosWLeKTTz7hd/93K4cPHwZg2bJlzJo1i3nz5gGwaNEiHn74Yea98xUbNmzgrbfeYseOHdxyyy3M\nmTOH/Px8Fi9ezN///vej+vLss8+ydOlSlixZwkMPPcTevXu59957SU9PJz8/n5deeonVq1fz2muv\n8dlnn5Gfn4/b5eall15i586d3HHHHXz22WcsWLCAVatWNfi9b9y4kY0bN3LiiSfWen7o0KGsWbOm\n+vEvf/nL6kt8a79dSccTksg+1vYgSyS23YaJmeANapdb+OU3PeqNber5aHr99deZOXMmXq+X7dt2\nsmrVKgYOHAjAJZdcAsCwYcN46623wn7OtWvX8s033zDlJ98nKU2oqqqiS5cuDbYLfb1vv/221pgP\nPviA2bNnV4/ayisq2LJlCwDnnHMOHTp0qI4dOXIkxx9/PLtWerjiiitYsGABycnJjBkzhmBpxlVX\nXcX8+fO56KKLjnidhx56iLfffhuArVu3sn79ejp27HhEzMcff8zSpUsZMWIEACUHS+l1UhcWLlx4\n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\nytEAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "quantiles = P.quantize(N=10)\n", "Q = qp.PDF(quantiles=quantiles, limits=demo_limits)\n", @@ -139,11 +235,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating histogram: [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]\n", + "Result: (array([-5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5.]), array([ 3.13846083e-05, 1.31822755e-03, 2.14002462e-02,\n", + " 1.35905200e-01, 3.41344942e-01, 3.41344942e-01,\n", + " 1.35905200e-01, 2.14002462e-02, 1.31822755e-03,\n", + " 3.13846083e-05]))\n", + "Created a piecewise constant interpolator for the histogram parametrization.\n", + "interpolating between -5.0 and 5.0 using histogram\n", + "Plotted histogram.\n", + "None\n" + ] + }, + { + "data": { + "image/png": "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\ne5gkwdOtA6gAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "histogram = P.histogramize(N=10, binrange=demo_limits)\n", "H = qp.PDF(histogram=histogram, limits=demo_limits)\n", @@ -164,11 +286,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between 0.314 and 0.314 using quantiles\n", + "(array([ 0.314]), array([ 0.37975203]))\n" + ] + } + ], "source": [ "print P.approximate(np.array([0.314]), using='quantiles')" ] @@ -182,11 +325,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between 0.0 and 1.0 using quantiles\n", + "0.341662845305\n" + ] + } + ], "source": [ "print P.integrate([0., 1.], using='quantiles')" ] @@ -200,12 +364,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -3.0 and 3.0 using quantiles\n" + ] + } + ], "source": [ "grid = np.linspace(-3., 3., 100)\n", "gridded = P.approximate(grid, using='quantiles')" @@ -220,11 +404,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "linear\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between 0.314 and 0.314 using quantiles\n", + "(array([ 0.314]), array([ 0.37975203]))\n", + "nearest\n" + ] + } + ], "source": [ "print P.scheme\n", "print P.approximate(np.array([0.314]), using='quantiles', scheme='nearest')\n", @@ -242,11 +449,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plotted gridded.\n", + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -2.16209247146 and 1.90700529705 using samples\n", + "Plotted samples\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "grid = np.linspace(-3., 3., 20)\n", "gridded = P.evaluate(grid, using='truth', vb=False)\n", @@ -265,34 +493,64 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n" + ] + } + ], "source": [ "print G.truth" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "samples approximation, linear interpolation\n" + ] + } + ], "source": [ "print G.last,'approximation, ', G.scheme, 'interpolation'" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Created a `linear` interpolator for the gridded parametrization.\n", + "interpolating between -3.5 and 3.5 using gridded\n", + "(array([-3.5 , -2.72222222, -1.94444444, -1.16666667, -0.38888889,\n", + " 0.38888889, 1.16666667, 1.94444444, 2.72222222, 3.5 ]), array([ 2.22044605e-16, 1.01276268e-02, 6.23293197e-02,\n", + " 2.03331828e-01, 3.67719426e-01, 3.67719426e-01,\n", + " 2.03331828e-01, 6.23293197e-02, 1.01276268e-02,\n", + " 2.22044605e-16]))\n" + ] + } + ], "source": [ "# 10-point grid for a coarse approximation:\n", "coarse_grid = np.linspace(-3.5, 3.5, 10)\n", @@ -311,11 +569,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "weights, means, stds = (array([ 0.27117763, 0.10166441, 0.28211746, 0.13060918, 0.21443132]), array([ 0.68162999, -1.58398141, -0.07572552, 1.50491781, -0.76975602]), array([ 0.3518439 , 0.56695242, 0.30258794, 0.56609536, 0.34376096]))\n", + "0.271177632455$\\cdot\\mathcal{N}($0.681629992864,0.351843902926)\\n0.101664411606$\\cdot\\mathcal{N}($-1.58398141195,0.566952416627)\\n0.282117456745$\\cdot\\mathcal{N}($-0.0757255185768,0.302587938283)\\n0.130609179256$\\cdot\\mathcal{N}($1.50491781334,0.566095357936)\\n0.214431319938$\\cdot\\mathcal{N}($-0.769756015258,0.343760957417)\\n\n", + "Plotted truth.\n", + "Plotted mixture model.\n", + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -3.01951215582 and 3.19310756784 using samples\n", + "Plotted samples\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0VNXax/HvnklCSCWFHmoglEAMGBGkdwQFgiAioIAI\nioh6ReS9FspFsKCoCEoRkSJFmhQFpEmXGkMnoKGGkhDS++z3j4GRIBCCSU7K81kra82cc2bmNzDJ\nM3ufffZWWmuEEEKI/MZkdAAhhBDiTqRACSGEyJekQAkhhMiXpEAJIYTIl6RACSGEyJekQAkhhMiX\npEAJIYTIl6RACSGEyJekQAkhhMiX7IwOkNO8vb115cqVjY4hhBDiLvbv3x+ptS6Z1XGFrkBVrlyZ\nffv2GR1DCCHEXSilztzPcdLFJ4QQIl+SAiWEECJfkgIlhBAiXyp056DuJC0tjfPnz5OcnGx0FCFw\ndHTEx8cHe3t7o6MIka8ViQJ1/vx5XF1dqVy5Mkopo+OIIkxrTVRUFOfPn6dKlSpGxxEiXysSXXzJ\nycl4eXlJcRKGU0rh5eUlrXkh7kORKFCAFCeRb8hnUYj7U2QKlBAFwdatW+ncuTPvvfee0VGEMJwU\nqDwQFRVFYGAggYGBlClThvLly9vup6am5tjrbNiwAXd3dwIDA6lVqxYffPBBpu316tXDz8+P5s2b\n8/PPP9se9+6772bK9M477+RYJpE9P/74I6tWrWLz5s1GRxHCcEVikITRvLy8CAkJAWD06NG4uLgw\nfPjwTMdordFaYzL9u+8MLVu2ZMWKFcTHxxMQEMATTzyRaTvAgQMHCA4OZs6cOTRv3hyAt956i9df\nf/1fvbb49yZPnkz16tWpVasWWmuWLFlCrVq1qFOnjtHRhMhzRa4FpZTKtZ/sOnXqFLVr16Z37974\n+/tz7tw5SpQoYdu/cOFCBg4cCMDly5fp1q0bQUFBNGjQgN27d9/zuV1cXKhfvz6nT5/+x7769evz\nzjvv8NVXX2U7s8gdGzZsYO7cuWitGTZsGG3btmXSpEk8/fTT/Oc//0FrbXREIfJckStQ+c3x48d5\n4403OHr0KOXLl7/rccOGDWPEiBHs27ePxYsX2wrX3Vy9epU9e/bg7+9/x/3169fn+PHjtvuffPKJ\nrYtvw4YND/ZmxAN75513eO655/jxxx9t25577jk8PDwoU6YMKSkpBqYTwhjSxWcwX19fgoKCsjxu\nw4YNnDhxwnY/OjqapKQkihcvnum4zZs3U69ePUwmE++99x41atTg3Llz/3i+27+RSxefcVJTU6lU\nqRJ//fWXrUsWwNvbm7CwMLy8vAxMJ4RxilyBym9dJc7OzrbbJpMpU75br5XRWrNnzx4cHBzu+Xy3\nnmu6l4MHD1KrVq0HSCxymoODA4sXLyYtLe0fs0t4eXkRFxfHmjVr6NChQ6YuYCEKO+niy0dMJhMe\nHh6EhYVhsVhYvny5bV+bNm2YMmWK7f7NQRcPIiQkhPHjx/PKK6/8q7wiZ6xZs4a4uLi7Tn3Uo0cP\nevXqxcqVK/M4mRDGkgKVz3z00Ue0b9+exx57DB8fH9v2KVOmsGPHDgICAqhduzYzZszI1vPe7Pqr\nUaMGw4YNY+rUqbYRfMI4p06d4oknnqBatWpkZGTc8ZjOnTvj6upKZGRkHqcTwlgqv3V5/VtBQUH6\n9gULjx07Jt1ZIl+5+ZlcuXIlffr0oUuXLsydO/eOxyYmJmIymXB0dMzjlELkDqXUfq11liffi9w5\nKCHyk86dO3PlyhViYmLueoyTkxNgHRgTExND5cqV8yidEMaSLj4hDJKSkkJCQgKOjo6ULl36nscu\nXbqUUqVK8fbbb+dROiGMJwVKCIP8/PPPeHh48Oqrr2Z57EMPPUR6ejq7d+/OdyNRhcgtUqCEMMhv\nv/1GWlrafV3n5Ovry86dOwkLC5PZ0EWRIeeghDDIhx9+SJcuXahUqVKWxyqlaNSoEWC9Jk6KlCgK\npAUlhEEcHR1p2bIlVatWva/jDx06RPPmzXnqqadyOZkQ+YOhBUop1UEpdUIpdUopNfIexz2llNJK\nqaznBMqnlFL06dPHdj89PZ2SJUvaprZZuXIlH3744T2fY/bs2Vy8eNGwjPercuXKWV6zc7djKleu\nTN26dQkICKBdu3ZcunQp0/a6detSu3Zt3n33XdtMG+Hh4RQvXtw2l2BOL2OSGxITE2nTpg0LFiy4\n78d4eXmxdetWfv31V9LS0nIxnRD5g2EFSillBqYAjwO1gV5Kqdp3OM4VeA34PW8T5ixnZ2cOHz5M\nUlISAL/++mumyWE7d+7MyJF3rdHAgxWo9PT0HMuYVzZv3kxoaChBQUGMHz8+0/ZDhw6xZ88e/vzz\nTwYPHmzb5+vrS0hIiO0nqymhjJacnMzGjRvvONv83ZQrV45PPvmEFStWSBefKBKMbEE1AE5prf/U\nWqcCC4Eudzjuf8BHQPId9j2Qm8tj7N+/H4BBgwahlGLQoEEA7N+//x9LaDz88MMopZg+fToA06dP\nRynFww8/fN+v27FjR9asWQPAggUL6NWrl23f7NmzGTp0KABdunRhzpw5AEybNo3evXuzZMkS9u3b\nR+/evQkMDCQpKSlTK2Tfvn20aNECsK451bdvXxo3bkzfvn3JyMjgrbfe4pFHHiEgIIBp06Y9UMZr\n167RtWtXAgICaNiwIaGhoYB1QcZ27drh7+/PwIEDM40ymzdvHg0aNCAwMJDBgwffdbaEO2nWrBmn\nTp36x3YXFxe++eYbVqxYwbVr1+77+fITJycnRowYccfWaWpqKmvXruWVV16he/fudO/enQEDBrB4\n8WJeeuklWrdujZ2dnD4WhZ+RBao8cOs02+dvbLNRStUHKmit19zriZRSg5RS+5RS+65evZrzSXPI\nM888w8KFC0lOTiY0NJRHH330jsdNnz6dsWPHsm3bNj799FMmT55M9+7dCQoKYv78+YSEhPxjFvPb\nHT16lA0bNrBgwQK+/fZb3N3d2bt3L3v37mXGjBn89ddf2c44atQo6tWrR2hoKOPHj+e5554DYMyY\nMTRp0oQjR44QHBzM2bNnAetsCYsWLWLHjh2EhIRgNpuZP3/+ff97rV69mrp1695xn5ubG1WqVCEs\nLAyA06dP27r3CsIcg46Ojnz00UcEBgbatqWnpzNx4kTKlCnD448/ztSpU1m6dClLly7lu+++o2fP\nnnh7e9OkSROZeV4UCfn2a5hSygR8BvTL6lit9XRgOlinOrqP4zPdnz59uq1lBNbW0u3H3Gxt3TRo\n0CBbi+t+BQQEEB4ezoIFC+jYseNdjytdujRjx46lZcuWLF++HE9Pz2y9Dli7DG8WsfXr1xMaGsqS\nJUsAiImJISwsjCpVqmQr4/bt21m6dCkArVq1IioqitjYWLZu3cqyZcsA6NSpEx4eHgBs3LiR/fv3\n88gjjwCQlJREqVKlsszesmVLzGYzAQEBjBs37q7H3fp/dLOLryBISEggNjaWI0eO2Nbr2rhnI8Pf\nHk7IFut78HzSk6SwJJJOJMEtH8WUlBR27NjBjh07aNOmTbbPDwpRkBhZoC4AFW6573Nj202uQB1g\ny42utjLASqVUZ6115sn2CpDOnTszfPhwtmzZQlRU1F2PO3ToEF5eXvc852RnZ4fFYgEyL80BmZfx\n0FozefJk2rdvn6MZs6K15vnnn2fChAnZetzmzZvx9va+5zFxcXGEh4fj5+d3z2mC8qPo6Giio6NZ\nuXIlH3zwAes2rePl3S+TWCnRdox7E3dKNCuBt503rd1b43DWgaVLlnL48GHbMZ07d2bWrFn069fP\ngHchRO4zsotvL1BdKVVFKeUAPAPY1hPQWsdorb211pW11pWB3UCBLk4AAwYMYNSoUXftugLYs2cP\nv/zyCwcPHmTixIm27jhXV1fi4uJsx1WuXNnWsrvZsrmT9u3b8/XXX9tGfp08eZKEhIRsZ2zatKmt\ni27Lli14e3vj5uZGs2bN+OGHHwD45ZdfiI6OBqB169YsWbKEK1euANZzWGfOnLnr696v+Ph4hgwZ\nQteuXW2ttYLE3t4eBwcHGjduzPr16wl+Ipi4A3FYUiwUcyzGuPHjeL3x65R1LUtkeiSLohZxts5Z\n1m5fy9y5c20taq01/fv3Z+rUqQa/IyFyh2EFSmudDgwF1gHHgMVa6yNKqbFKqc5G5cptPj4+DBs2\n7K77U1JSePHFF5k1axblypXj008/ZcCAAWit6devHy+99JJtkMSoUaN47bXXCAoKwmw23/U5Bw4c\nSO3atalfvz516tRh8ODB9xzdd7eMo0ePZv/+/QQEBDBy5Ei+//57wHpuauvWrfj7+7Ns2TIqVqwI\nQO3atRk3bhzt2rUjICCAtm3bEhERcb//VP/QsmVL6tSpQ4MGDahYseI9B3vkZ6VLl6ZMmTLMjJhJ\n9ze6k5SUROTSSOx+s2Pvnr2883/vMKzxMLa8uIWP2n+EWzE3fvvrNzrN6YR3A28OHTpEjRo1bM/3\nyiuv2AbVCFGYyHIb9/DFji94rfFrORVNCNLS0khPTyfkWAh9NvUhLTKNc5+co6JPRTZu3Ei1atX+\n8Zgr8Vd499d32Xh6IwA9avXgk+BP0Onadh7O0dGRHTt2UL9+/Tx9P0I8iPtdbkNmkriHL3d9aXQE\nUchERUVxNOwoCakJaIvmyoIreJbwZPPmzXcsTgClXEoxres03mv1HvYme3489iN+z/nh5+eHr68v\nYD0HGRwcLIsaikJFCpQQeSg5JRl7D3tQELMthrTzaSxcuDDL6Y6UUvSr348fn/2RBj4N2PDxBo4f\nP86PK3/E3d0dgLNnz9q6g4UoDKRACZGH7N3sUfYKnaGJXhfN+PHjadu27X0/vm6Zuix4ZgHlPcuT\nnpHOqN9H0eLDFrb9q1atYtGiRbmQXIi8JwVKiDySnpHOtWTrzBeWRAvNHmvGW2+99UDPlZKSQtWH\nqxJ6LpTmtZozZMgQ275hw4b9q8sDhMgvpEAJkUdOXTgFCiwpFsiAGTNmYDI92K9gsWLFqOBcgfMT\nz1MzuSYTJkygQrMKlH6uNFHxUbzxxhs5nF6IvJdvZ5IQojBJSU0h1S4VhSIjLgN3d3eqV6/+r55z\n8uTJeHt7U7FiRTIsGZR7qhxXU6/iUN6BRXMW8crvr9x1Oi0hCgJpQeWhDz74AH9/fwICAggMDOT3\n33NvgvYWLVpw+3B7YZwLly6ABSypFuy1PW5ubv/6OevXr0/FihXRWmNSJpY8vwSneCfsPe0pP7Q8\nQz8bKgMmRIEmBSqP7Nq1i9WrV3PgwAFCQ0PZsGEDFSpUyPqBosBLSkri2pVrpF5KJS0qjYoVK+bY\nchnvvvsulStX5vDhw/i4+7Co1yLif49H2Smi6kcxdv7YHHkdIYxQ5Lr4/rfpfxy7cuy+j3924bNZ\nHlOrVC3ea/XePY+JiIjA29ubYsWKAdjmmhs7diyrVq0iKSmJxx57jGnTpqGUokWLFtSrV49t27aR\nkJDAnDlzmDBhAocOHaJnz56MGzeO8PBwOnTowMMPP8yBAwfw9/dnzpw5ODk5ZXrt9evXM2rUKFJS\nUvD19eW7777DxcWFkSNHsnLlSuzs7GjXrh0TJ068738Xcf/OXzxvu+1UzAk3N7ccW3jy/PnznD17\nll9++cW6mGON2vQs15N5G+bh0caDORfn8PDRh3mitkwqKwqeIlegAM7HnOdC3IWsDwR+P591N1xy\netZLVbVr146xY8fi5+dHmzZt6NmzJ82bN2fo0KG8//77APTt25fVq1fz5JNPAuDg4MC+ffv44osv\n6NKlC/v378fT0xNfX1/bSfATJ07w7bff0rhxYwYMGMDUqVMZPny47XUjIyMZN24cGzZswNnZmY8+\n+ojPPvuMV155heXLl3P8+HGUUly/fv2+/j1E9iQkJJBoTsShnANpkWk4Ozvn6GKDAwcO5NFHH7V9\nZgDef+99vvf9nmii8WjjwfCfh+Nfxp8qnv+cvV6I/KzIFaj3Wr2XZWvnJt+Jvpwefv8rnt6Li4sL\n+/fvZ9u2bWzevJmePXvy4Ycf4urqyscff0xiYiLXrl3D39/f9semc2frlIR169bF39+fsmXLAlC1\nalXOnTtHiRIlqFChAo0bNwagT58+fPnll5kK1O7duzl69KjtmNTUVBo1aoS7uzuOjo688MILPPHE\nE7JsQy6JiIggIzUDszJjr+zx8vLK0edv0qQJTZo0ybTN29ubESNG8O6772LvZY9LPRdeXfUqK/qu\nwM5U5H7lRQEmn9Y8ZDabadGiBS1atKBu3bpMmzaN0NBQ9u3bR4UKFRg9enSmZTNudgeaTCbb7Zv3\nb072evu38dvva61p27YtCxYs+EeePXv2sHHjRpYsWcJXX33Fpk2bcuy9CkhMTLS1TC2JFvz9/bNc\naPJBHD58mM8//5xGjRrxwgsvADB06FA++eQTri69ir23PYFegVKcRIEjgyTyyIkTJ2yrvwKEhITY\nZqT29vYmPj7etqBgdpw9e5Zdu3YB8MMPP/zj23TDhg3ZsWOHben0hIQETp48SXx8PDExMXTs2JFJ\nkybxxx9/POhbE3cRcSkCs4sZTNb1uezt7XPldY4ePcq3337Ll19+aRu15+7uzquvvopO0VyYfIGV\nk1ba1g4ToqCQr1R5JD4+nldffZXr169jZ2dHtWrVmD59OiVKlKBOnTqUKVPGtvJsdtSoUYMpU6Yw\nYMAAateuzcsvv5xpf8mSJZk9eza9evUiJSUFgHHjxuHq6kqXLl1ITk5Ga81nn32WI+9TWCUnJxOT\nFIO9lz0mJxMJVxK4fPky5cuXz/HX6tKlC08++SQ9evRAa21rRb/22mtMmjSJhIQEDh87zBtz3iDN\nI40pnafk6HkwIXKLLLdxDzl5Dio3hIeH88QTT2RaZVXkD2fPniU6IxpTcRM6TpMel0716tVxdXUF\nHvwzmV3Dhw/n008/xVTcRNV3q1KjfA3eqfsOw18dTqNGjZg4cSIWi4XQ0FACAwNzPY8QIMttCGGY\n9PR0Iq9FYnI0gYYKpSoQGBiIi4tLrr7uunXr6N27N7GxsbZtr7/+OmazGUuShTNfnGFMwBjmfTuP\nnTt32i7kHjduHEFBQUyZMiVX8wmRXVKgCrCbF2iK/CUyMhLlqEABaeDm4obJZMr1brUJEybwww8/\nZJqA1sfHh+7duwOQdiWNr778ijETxvDG6DdYvnw5YJ14NiMjg40bN95zpWUh8poUKCFykNaaK1eu\nYHKy/mqZUk2EhIQQHR2d66/99ddf07hx439MFDts2DDb7cXbFtPyu5acrX4WDw8PwDoFV3h4OMuW\nLcPOTk5Li/xDCpQQOej69eukWdIwOZjAAhmJGWitc2V4+e1q1arFtm3bqFmzJgsXLmTMmDFcuHCB\nRo0a2boXk84mkZ6azsGLBwmNCLU9tlKlSmRkZPDDDz9w9OjRXM8qxP2QAnUPwxoNy/ogIW5xa+vJ\nQTlQp04datSokek6ttx0sxtx2rRpjB49mkOHDqGUYsSIEQDoNE3i/kQAvj/4fabHjh8/nt69e9tm\nNhHCaFKg7uG1xq8ZHUEUIMnJycTFxWF2MgNQ0rUkJpMJV1fXPB/WPWLECAYNGsTatWsBePvttyld\nujQAF9dfRKFYc3wNVxOu2h4zcOBAvL29MZlMtksShDCSFKg8kpdLbUDOLLcxe/Zshg4des9jwsPD\n+eGHH/7V69yv+3lPn3/+OYmJidl63i1bttxxqqctW7bg7u5OYGAgtWrVYsyYMZm216tXjxo1atCs\nWTNWr15NZGQkKJg6cSpt6rXhsaDHqFWr1gOvmvtvPP7440ybNo3PP/8csM7r2L9/fwDSo9NxuepC\nmiWNhaELbY8pW7Ysly5dYvHixXnW4hPiXqRA5YHCvNTGgxSo3Bwp9iAF6l6aNm1KSEgI+/btY968\neRw4cMC2/eDBg5w4cYIvv/ySoUOHsmbNGtDWaY0GvziYefPmsWjRIj7++OMcy/NvDBw40HY77Cfr\nrCbLjyzPtGaU2WwmNjaWDRs25Hk+IW5XJAuU70TfLH/+u/6/mY6//f6tP1m501Ib5cqVA6zLbTzy\nyCPUqVOHQYMG2f5YtGjRgjfeeIOgoCBq1arF3r176datG9WrV+fdd98FrMWhZs2a9O7dm1q1atG9\ne/c7/nFev349jRo1on79+vTo0YP4+HgARo4cSe3atQkICMg0weyd9OvXj2HDhvHYY49RtWpV27RM\nI0eOZNu2bQQGBjJp0iQyMjJ46623eOSRRwgICGDatGmAtdXRtGlTOnfuTO3ate+ZfePGjdSrV4+6\ndesyYMCAO3Y3vfzyywQFBeHv78+oUaMA+PLLL7l48SItW7akZcuW93zva9eupWbNmtSvX59ly5Zl\n+X/o7OzMww8/bJsy6laBgYG8+eabLFy4EMzWP/Kurq74+fnh4+OTb2Zt8PX1pW3btgAknkzE0eLI\nmetnCIkIsR2TnJyMj48P7du358qVK0ZFFQIoogUqr7Vr145z587h5+fHkCFD+O2332z7hg4dyt69\nezl8+DBJSUmsXr3atu/mchsvvfQSXbp0YcqUKRw+fJjZs2cTFRUFWOf4GzJkCMeOHcPNzY2pU6dm\neu1bl9s4cOAAQUFBfPbZZ0RFRbF8+XKOHDlCaGiorejdS0REBNu3b2f16tWMHDkSgA8//NDWynjj\njTf49ttvcXd3Z+/evezdu5cZM2bw119/AXDgwAG++OILTp48edfsycnJ9OvXj0WLFnHo0CHS09P5\n+uuv/5Hlgw8+YN++fYSGhvLbb78RGhrKsGHDKFeuHJs3b2bz5s13fe/Jycm8+OKLrFq1iv3793Pp\n0qUs33tUVBS7d+/G39//jvsrVqxI+JlwipUthtnJzOeff06zZs1o1aoV69aty/L588qgQYOsNzTE\nH7QW6xVHV9j2Ozo60qRJE5ydneUaO2G4InnRQ3anL7r9+Ow+/m5LbfTr14/NmzcXmOU2unbtislk\nonbt2ly+fPmOx6xfv57Q0FBbCysmJoawsDAcHBxo0KABVar8vSbRnbK3bduWKlWq4OfnB8Dzzz/P\nlClTeP311zO9zuLFi5k+fTrp6elERERw9OhRAgICMh1zt/d+/PhxqlSpQvXq1W2vPX369Du+n23b\ntlGvXj1MJhMjR47E39+fLVu2ZDomJSXF1jLLSMjAzmRH7969GTlyJJ6enln+u+alLl26ULp0aS5f\nvsylrZfwediHS/GZC/SMGTMytfiFMEqRLFBGuH2pje+//55nnnmGIUOGFJjlNm7NcLc5HLXWTJ48\nmfbt22favmXLFpydne+Z9X67wv766y8mTpzI3r178fDwoF+/fpn+3W7Ncqf3HhIS8o9j76Zp06aZ\nWrV3EhUVxYkTJ6hcqTJOGU5kJGeQYkrJlyPh7O3t6dOnD59++impF1MJCA1g2vBpmY65OaHt9evX\ncXR0xNHR0YioQkgXX16401IblSpVsv1RLcjLbbi6uhIXF2e73759e77++mvS0tIAOHnyJAkJCfed\nvUaNGoSHh9vyzp07l+bNm2d6XGxsLM7Ozri7u3P58mV++eWXO+a523uvWbMm4eHhnD5tbQnfqXjf\nL601u3bt4ttvv+XpZ5/Gy8sLNzc3nJ2dKVmy5AM/b256/vnnbbd/WfwL169fJyU9czF94403KFmy\npAyWEIaSFlQeuNdSGy+++GKBXm4jICAAs9nMQw89RL9+/XjttdcIDw+nfv36aK0pWbIkK1asuONj\n75Td0dGR7777jh49epCens4jjzzCSy+9lOlxDz30EPXq1aNmzZqZugnBeo6lQ4cOtnNRd3rvfn5+\nTJ8+nU6dOuHk5ETTpk0zFdn7cbPrLz4+HhcXF0a8P4ImTzYhzT4Ne3t7XFxc8u20QXXr1qV+/foc\nOHCAlLQUnv7uaSLtI9kxeAfF7a0zXjg6OpKens727dtltWVhGFluowAryMttFOTstwoPDycyMhKH\nMg4oOwXXoYxXmSxbT0Z/JidPnmybo6/mWzVp27Qt/23xX8q4lgGsLd+IiAgeeeQRnJycDMspCidZ\nbkOIXJaRkcG1a9dQDspanCyQEp9CUlKS0dGy1KtXL9sKv8c/Oc4rfq/YihOAn58fzZs3l+IkDCUF\nqgAryMttFOTsN8XExGCxWDAXt05t5OHkQcmSJW2jLfMzb2/vTF138+fP56/ov0jNSLVtmzFjBm3b\nts31WU+EuJsiU6AKW1emMN61a9cAMBW3/hqVcCpBpUqVbC2Tu8kvn8U+ffrYbs+/Op8237Zh99nd\ntm0HDx5kw4YNbN682Yh4QhSNAuXo6EhUVFS++cMgCr709HRiYmJQ9tbuPW3RZCRlZPk4rTVRUVH5\nYuh2x44dcXd3ByD6tHW9qnVhf19UHBwczNtvv22blUOIvFYkBkmkpaVx/vz5O14rI8SDiIuL49q1\na5gcTZiKm9CpmrIeZTGbzVk+1tHRER8fnyxbWnnhhRdeYNasWTiUdcDnPz54OXmx66VdmE1Zvw8h\nHtT9DpLIn+Ngc5i9vX2mGQyE+LeaN2/O1q1b8Rnug0NpB94LfI+2ddoaHSvbnn32WWbNmkVqRCqW\n6xaiiOJgxEGCylv/dvzxxx9s3LiR4OBg+R0Sea5IdPEJkZPOnTvH1q1bMTmbMDmZcHVwpXfL3kbH\neiAtWrSwDeqIO2S9FmzT6b9nFPnwww9588035YJdYQgpUEJk06JFiwCwJFhImZ7C8r7LsTcb3133\nIMxmM8888wwACUetM37cWqAaNWrEQw89lC/OmYmix9ACpZTqoJQ6oZQ6pZQaeYf9LymlDimlQpRS\n25VStY3IKcStbhYogP8b+X9U8SjYXV+9evUCIPmvZCzJFsKiwjh3/RwAw4YNIyQkhL59+xoZURRR\nhhUopZQZmAI8DtQGet2hAP2gta6rtQ4EPgYebD4eIXLI4cOH2bdvH3YedlR8pyLxteONjvSvBQUF\nUbVqVciAxOM31uT6c6Ntv8ViISwsLFcXmhTiToxsQTUATmmt/9RapwILgS63HqC1jr3lrjNQuIYc\nigJnwICrEr9OAAAgAElEQVQBAJhdzLiYXbiSUvAX9VNK8fTTTwOQeMxaoLb9tc22/+GHH8bPz4+j\nR48akk8UXUYWqPLAuVvun7+xLROl1CtKqdNYW1DD8iibEP9w5coVbl7CkHIuhf+r/n9MfHyiwaly\nhq1AHU3k+vzrTGz39/u6uW7WoUOHDMkmiq58P0hCaz1Fa+0LvA3ccdlXpdQgpdQ+pdS+q1ev5m1A\nUWRER0ejtUbZKxxdHencuXOBHRxxu8DAQKpXr44l2cK1kGtsWv/3QIkJEyZw8eJFevcumCMVRcFl\nZIG6AFS45b7PjW13sxDoeqcdWuvpWusgrXVQfl2DRxRsSUlJLFy4EACXIBfKv1OeH479YHCqnKOU\nomfPngCY3c1M2j6JybsmA+Dr61sg5hcUhY+RBWovUF0pVUUp5QA8A6y89QClVPVb7nYCwhDCABMm\nTGD8+PEAONd1Rps1pVxKGZwqZ90sUKZiJiLKR7AxzDpQIi0tjZ49exIQEEBGRtbTOQmRUwwrUFrr\ndGAosA44BizWWh9RSo1VSnW+cdhQpdQRpVQI8B/g+bs8nRC5RmvNt99+S2pqKiYnE8WrFsfOZEer\nqq2Mjpaj/P39qVmzJmlX0jj38Tn6OluHltvb27N7924OHTrEyZMnDU4pihJDz0FprX/WWvtprX21\n1h/c2Pa+1nrljduvaa39tdaBWuuWWusjRuYVRZNSynatkFNtJ5RZ0bBCQ0oUL2FwspyllKJ79+4A\npF1NY+nSpbZ9//3vf5k5cyalShWuVqPI3/L9IAkhjGaxWNi40drd5VzHGYB21dsZGSnX3CxQZhcz\nW8xb6LvI2ooaPHgwL7zwAl5eXkbGE0WMFCgh7iEyMhIfHx9CQkJQDgonPycUirbVCt7EsPcjICDA\nNpqvWK1i7Dy3k8vxl4mOjmb27Nl88803RkcURYgUKCHu4eeffyYiIgIApxpOKHtFYLnAQjdA4qab\n3Xw6XZMUZl26fsufW7h+/Tr9+/dnzJgxBicURYkUKCHuoVWrVlSoYL0awrmutXuvffX2RkbKdTe7\n+W7OKvFr2K9UqlSJhx56iEaNGpGSkmJkPFGEFIn1oIR4UBkZGZw7dw5M4FTTCSi8559uqlevHlWq\nVOHssbMA7AjfQZoljZCQEIOTiaJGWlBC3MWOHTvo06eP9Y4FfA/48nGHj6lUopKxwXKZUoqnnnqK\njNgMUs6nkKpT2X1uN2Cd7uncuXNZPIMQOUMKlBB3sWjRIrZv326737NjT56q85SBifJOt27dgL+7\n+TaEbWDmzJmULl2aUaNGGRlNFCFSoIS4i5o1a1pvKCj1TCns69iTYSkaMyk8+uijlCtXjsSj1gK1\n9vhaatSoAcDx48eNjCaKEClQQtyF2WwGwN7bHtdAV2Yfno1JFY1fGZPJRHBwMCkXUkiPS+da6jXc\nq7hz4sQJtm3blvUTCJEDisZvmxDZtHPnTqZNmwZYZ1V42fFlpnWdhlLK4GR5p1u3bqAhdlssabvS\n8Hb1xs/Pz1a4hchtUqCEuIMPP/yQgwcP2u4/3e1papSsYWCivNesWTO8vLy4vvk655ad48zRM0ye\nPJmgoCCWL19udDxRBEiBEuIOLl++DIB9aXuq/7c6G69uzOIRhY+dnR1dulgXuVb2iilrpnD2yln2\n799vW7hRiNwkBUqIOyhXrhxgnXsvwyOD41eK5sCA4OBgAEo9W4pdJXbhFeTFZ599Ro8ePQxOJooC\nuVBXiNv8+eefrF27Fvh7cti21Qvn3HtZadOmDS4uLsTujCXhcALNpjfjsS6PGR1LFBHSghLiNn37\n9iU5ORmzu5liPsUoblecxhUbGx3LEI6OjnTs2JGksCTi98ezcc1GfvrpJ0aPHk18fLzR8UQhJwVK\niFtorW1T+jj7W1tPTas0xdHe0chYhrrZzWd2N7PgyALemfwOY8aM4cgRWZ5N5C7p4hPiFmlpadjb\n2wPg5G+de6+NbxsjIxmuY8eOODg44PSwEylBKZSOLk0b1QattdHRRCEnLSghbrFlyxZiYmJQjori\nvsUxKRMtq7Y0Opah3NzcaN26NQlHEgCI9Yhl7bq1NGzY0OBkorCTAiXELd566y3gxtpPZkVQ+SA8\nnTwNTmW8bt26kXY5jbTINJJIYsfpHTLlkch1UqCEuMFisXD06FHg7/NPhXXl3Ozq3LkzJpPJ1ooK\n/k8wzZo1MziVKOykQAlxw++//056ejoAplMmutbqSptqRfv8002lSpWicePGJBy2FiiXABciIyOJ\njIw0OJkozKRACXHDrdP3dKrbiU87fUrFEhUNTJS/BAcHk3ImhfTYdOw87NgXvg9vb2+jY4lCLNsF\nSilVTClVRSlVWylVMjdCCZHXtNbMnTsXgOJ+xWnYsaGMUrtNcHAwaEg8Yl2CY/2p9QYnEoXdfRUo\npZSrUuplpdRWIAY4BRwGLimlziqlZiilHsnNoELkpiNHjnDp0iUASnYvyYQ/J3Do8iGDU+UvlStX\nJjAw0NbNN3PjTIYPH25wKlGYZVmglFL/AcKBAcCvQBcgEPADGgGjsV5P9atSaq1SqnpuhRUit9za\nvVftVDXebPImdUrXMTBR/hQcHEzS6STSY9OJvxjP1h1bjY4kCrH7uVC3IdBca334Lvv3ALOUUi9j\nLWLNgbAcyidEnri1QA3sOpBeDXsZmCb/Cg4OZtSoUZz94CwOdg58vfBroyOJQizLFpTW+umbxUkp\nNVopVeUuxyVrradqrWfmdEghclN4eLht7SfPNp641XUjLSPN4FT5U506dahWrRpYIDU1lSSVZHQk\nUYhld5DE+8B2pVS1WzfeGDhRtC+3FwXWzdaT2dVMifYleGvDW6Rb0g1OlT8ppWxz85UdVJb3Tr3H\nmm1rDE4lCqsHGWb+A7BZKeV7y7YSwIaciSRE3rpZoJxqWefea1yxMcXtixsZKV+7WaBSL6USsy2G\njb8WvcUcRd7I7mSxGvgEiMRapJprrf+6sU/laDIh8sDly5fZvn07AE61rQWqlW8rIyPle48++ihl\ny5YlYmUEALqqDMcXueOBLtTVWn8EfA38ppSqfHNzDmUSIs+sXLkSrTXKTuFSwwWQApUVk8lE165d\nrXcURNpHEpkgM0qInJfdAmVrJWmtJwDTgS3AHQdOCJHf3ezeK169ONpOU6d0HUq7lDY4Vf53s5vP\nu7s3O0vtZPmh5Vk8Qojsy26BehtIuHlHaz0OmAWsyslQQuSFmJgYNmywnjq92b3X2re1kZEKjBYt\nWlCiRAmSTlpH8c3bPc/gRKIwylaB0lp/orVOuG3bWOALIC4ngwmR29asWUNamnU4uWsdV0C69+6X\nvb09nTt3JvF4IpY0C+fTz3Mp7pLRsUQhkyOTxWqtx2mtS+TEcwmRV5YtWwaAQ3kHlIuijEsZ/Ev5\nG5yq4OjWrRs6RZN03NqKWhu21uBEorC5n6mO7vv8krKq8O8iCZH7EhMT+eWXXwAwO5nxMnnR0rcl\nSslg1PvVrl07nJyciP8jHoClB5canEgUNvfTgtqllPpWKdXobgcopTxuTHV0FOtcfULka+vXrycx\n0Tord1JYErVDa/N+q/cNTlWwFC9enPbt25N4zNrNdzT6qHTziRx1PwWqJnANWKOUilRKrVNKfaeU\n+loptVApFQpcAfoAr2utv8rNwELkhJvde8pOUb1mddq0aYOD2cHgVAVPjx490Kl/d/P9cvIXgxOJ\nwuR+5uK7rrV+CygPvAQcwzpzRBUgHfgeqKe1bqy1XpebYYXICampqaxcuRIAlyAXHAY5kFRD5pR7\nEJ06dcJsNtu6+ZaHynBzkXPueyYJrXUSsEQptQprqwrghNY6+UFfXCnVAesIQDMwU2v94W37/wMM\nxFoIrwIDtNZnHvT1hADYvHkzMTExALhoF+qVqYe3k6wM+yDc3Nzo0KEDP//6M5Y0C2ejzpKYmoiT\ng5PR0UQhkK1RfEqptsA54MCNnyil1EylVKnsvrBSygxMAR4HagO9lFK1bzvsIBCktQ4AlgAfZ/d1\nhLjdkiVLbLcjfo/g8MeHCfYPNjBRwdahQwd0qubCZxcovqy4FCeRY7I7zPwr4DegOlAaePbG7QPZ\nGe13QwPglNb6T611KrCQ2wZYaK03a60Tb9zdDfhk8zWEyCQ9Pd02e4Sdhx1O3k488ogsBv1vNGvW\nDIC0yDR279rN2XNnDU4kCovsFqiKwP/dKCqRWuuftNbNgc1Yu+qyozzW1thN529su5sXgDuegVVK\nDVJK7VNK7bt69Wo2Y4iiZOvWrURFRQFQrnM5yrxdhsYvNDY4VcFWt25d3N3dAfDs5EnHRR05H3Pe\n4FSiMMhugTrEnYvIOCDXLsFXSvUBgrDOpP4PWuvpWusgrXVQyZIlcyuGKARs3XsKnGpau6IaVm1o\nYKKCTynFRx99BICdux0Z1zKIToo2OJUoDLJboH4AvrptLSiAkkB2P5EXgFsv6vW5sS0TpVQb4B2g\ns9Y6JZuvIYRNRkaGrXuvWMVipNqlYk4wU92rusHJCr4uXbqglOLKwiuc+PAEJZEviuLfy26B+gzw\nB44ppZYqpd5VSr0PzADezOZz7QWqK6WqKKUcgGeAlbceoJSqB0zDWpyuZPP5hchk586dXLpkvZDU\n82FPAOwv2GMy5ciMX0Xazp070VqDBbTWLFi2gJjkGKNjiQIuuwsWlgQCb/npCdTAugzHKKVUNyAU\nCNVar77XE2mt05VSQ4F1WIeZz9JaH1FKjQX2aa1XYu3ScwF+vDEFzVmtdedsZhYCgB9//NF22/Nh\nT5JIYsjjQwxMVHgEBATYbrs3deer+K9wCHHglYavGJhKFHRK63+3zqBSqhhQh8yFq65Rk8cGBQXp\nffv2GfHSIh+zWCz4+PgQERGBfSl7KrxVAY/iHux+eTd2pux+TxO3s1gs7Nixg2bNmlG8ZnHKvlCW\nKu5V2PDiBqOjiXxIKbVfax2U1XH/+jfzxnmh/Td+hMiXduzYQUSEdYnyUg2sl+15xHqQmpyKnZMU\nqH/LZDLRtGlTmjVrxtYdW8lIyOAv/uLE1RPUKFnD6HiigJLOd1EkLF682Hbb6xEvAA4uPUixYsWM\nilTorF69mrCwMMiAhEPWZeNWn7hnT78Q9yQFShR6GRkZtuHlpuImkpySMGszvZv3xmw2G5yu8HBw\ncLC1UuNDrHPz/XT4J/7taQRRdEnfhij0tm/fbhu95+3qzZ4hezgZdZIGFRoYnKxwefTRR/niiy+Y\nM2cO+w/sJz0unQtc4NDlQwSUCcj6CYS4jbSgRKF3a/feU089xaa1m9AXtW25d5Ez3N3dGTZsGAMG\nDAANCX/c6OY7Jt184sFIgRKFWnp6uq17z+xq5lTdU7w05SUaNmxIZGSkwekKn/3793PkyBGUUn93\n8x39iQxLhsHJREEkBUoUaps3b+bKFes13mVqlCE6Ixr3Ou5UqlSJsmXLGpyu8Nm/fz9Tp06lVKlS\npJxJIe1aGlFJURy/etzoaKIAkgIlCrWFCxfabvdo0oPdQ3bz+4TfOXnypIGpCq/GjRvToUMHWrdu\nDcCVH67gsdID/9L+BicTBdG/vlA3v5ELdcVNKSkplC5d2ro4oRl2bt+JX3U/PD09uTEzicgl0dHR\nlC5d2nae79SpU/j63j6Fpyiq7vdCXWlBiUJr3bp1tpVzq3Sowpshb9J0cFO8vb05dOiQwekKr6Sk\nJA4ePEijRo0AcKrlRL+l/dh0epPByURBIwVKFFoLFiyw3S7duDSX4y9z4dwF4uLi5Nt8Lpo6dSqt\nW7e2tVLtS9tzMf0il+IuGZxMFDRyHZQolOLj41m50jo5vtndzFX7qziYHdizcA9nT53FyUmWJc8t\nLVu2xN7enlKlSlG8eHFid8YSuz2Wuk/WNTqaKGCkBSUKpRUrVpCYmAiAb3tfNJo2vm2oUaUGbdu2\nNThd4RYYGEh0dDSLFy+mc+fO6FSNTtfMmz+P2ORYo+OJAkQKlCiU5s+fb7vtFuQGwOm1p+nTpw/h\n4eEGpSoaTCYTzs7OpKWl8eSTTwLgUNaBH00/MnjFYIPTiYJECpQodC5fvsz69esB6x/Ga+oa7o7u\nbJm7hfnz5+Ps7GxwwsJvxYoVeHh4sGbNGry8vEi7loZ21ew5v4fzMeeNjicKCClQotBZuHAhFosF\ngJqdawLQoVoHJn8+mREjRlCypCxHntuqVatGQkIC27dv5+mnn0anaBIPW7tcfzr2k8HpREEhBUoU\nOvPmzbPeMAHVrTe71enGCy+8wEcffWRYrqLE39+f1atXc+jQIfr27QtA3P44AJYdXiYznIv7IgVK\nFCrHjx/n5oXarjVcidfxVCpRib2r9jJ//nzbdVEidyml6NSpE+7u7jz66KNUrVqVpLAk0uPSCb8e\nTkhEiNERRQEgBUoUKnPmzLHdbl2zNUueXcL7Ld/nvffeo0+fPly9etXAdEXLuXPnCA4Opl27dvTp\n0wcsEL/fOoHsj4d/NDidKAikQIlCIyMjI1OB6t+vP/XK1SPQK5DWrVtTr149uUA3D3l6erJ27Vo2\nbdrE448/DkDcXms336pjq0hMTTQynigApECJQmPjxo1cuHABgHIdyrHLYRd/XvuTEiVKsGjRIg4c\nOCBz8OUhZ2dnJkyYwNKlSwkMDKRp06akXUkj+UwyiWmJrA1ba3REkc9JgRKFxuzZs223/Rr5sfjw\nYs7HnOe3334jKirKuGBF2Ouvv05wcDCOjo7069cPgLg91lbUr2G/GphMFAQy1ZEoFK5fv87y5ctt\n97/o+gUlKpbA094T71repKenc/XqVTw8PAxMWTTNnj2blStXMmXKFJycnIj/I5702HQGzB1gdDSR\nz0kLShQKixYtIjk5GYCHGj5EQEAAFUtU5M/Tf+Lo6EjdunWlOBlk+vTpLF++nC1btvDUU0+hUzRJ\nx5OY8/0cGW4u7kkKlCgUZs6cCYB9KXvin4rnzZ/fRGtNQEAAkZGRrFq1yuCERdfAgQPp168ftWrV\nsnXzYYal55bSaXYnUjNSDc0n8i/p4hMFXkhIiO3aJ8/mnmg0TvZOKKVISEjA2dkZHx8fg1MWXQMG\nDGDAAGt3nsVioWrVqvz555+YfE3ExMQQERdBpRKVDE4p8iNpQYkCb8aMGQCYiptwDXIF4Pn6z3Pp\n0iU8PDxo1aqVdCUZLCYmhm+++Ya5c+cycOBAACK+icC83CzFSdyVFChRoCUmJtpmLndr5IbFZKFp\n5aZU86rG6tWrSUtLw9nZWYaXG2z37t28/PLLjB07lueeew6z2Ywl0cK2rds4eOQg1xKvGR1R5ENS\noESBtmTJEmJiYlD2Cs8WngAMDLJ+Q+/fvz9bt27l3XffNTKiANq0acNDDz1Ep06dKFGiBE888QQA\nLvVd6LmmJ1N2TzE4ociP5ByUKNCmT58OgOsjrlAc6pauS+NKjQEwm800bdrUyHjiBrPZzMGDB20t\n2RdffJGffvqJ1EupZJgyWHJ4CW80eQMXBxeDk4r8RFpQosD6448/2LFjB5igRIsSALz86MsopViw\nYAGPPfYYP/4oc77lF0opoqKiGDNmDOXKlcPHx4fUi6kk/ZlEfGo8yw4vMzqiyGekQIkC6+uvvwbA\npZ4Ldh52+Hr60ra6dTn3pUuXsmvXLi5dumRkRHGbcePGMXr0aD799FMGD7aurhu73boM/PcHv8ei\nLUbGE/mMFChRIMXExNjWfTK7mbFTdgxuMBiTsn6kR4wYwVtvvUVwcLCRMcVtXn/9dXx8fAgMDGTg\nwIHY29uTcCSBtOg0wqPD+e2v34yOKPIROQclCqQ5c+aQkJAAQIWrFVj34jpKOv+9Um6DBg1o0KCB\nUfHEXVSqVInw8HDMZjMATz31FAsXLiR2Zyxenbz4/sD3tKza0uCUIr+QFpQocLTWTJ06FUxQrFIx\nhgwZQjm3ctib7QHrhaEfffQRsbGxBicVd2I2m4mIiKB///60aNECgLjf47CkWtgWvo3jV48bG1Dk\nG1KgRIGzfv16jh8/jkugC+WHlueUzynbvrCwML777jvGjh1rYEKRlSlTpjB79mxmz56Nv78/liQL\ncb9bZzmfsXeGwelEfiFdfKLAmTRpEgBJYUlUjatK82rNbfvc3Nx4//33SU1Nxc3NzaiIIgtvv/02\nv/76K6+//joxMTEMHjyYmG0xuD3mRmxyLBZtsZ1PFEWXKmxTwAQFBemb87KJwufo0aP4+/sD1mHL\np06domrVqganEg9Ca41SisTERCpWrEhUVBRmNzMLZi6gR48eRscTuUgptV9rHZTVcYZ+RVFKdVBK\nnVBKnVJKjbzD/mZKqQNKqXSlVHcjMor85fPPPwczlOpTitbPt85UnFasWMHw4cNlaHkBoZTi0qVL\ndO/e3bYUSkZsBpMmTSI8OpyY5BiDEwqjGVaglFJmYArwOFAb6KWUqn3bYWeBfsAPeZtO5EeRkZHM\nnTsX1wauuDzkQnJQsu26GYvFwvvvv8+nn37KihUrDE4q7ldGRga7du3i1KlTtpF9R+2O0ubbNsza\nN8vgdMJoRragGgCntNZ/aq1TgYVAl1sP0FqHa61DAbl6TzB58mRS0lPwaG39tv3fNv+1naewWCy8\n9NJLNGrUiP79+xsZU2RD+fLlmTVrFmvXrqV3794AJJ9Nxj3SnY41OhqcThjNsHNQN7rsOmitB964\n3xd4VGs99A7HzgZWa62X3OW5BgGDACpWrPjwmTNnci23MEZcXByVKlXCUteC15NelLUvy7Zh22SW\n8kLkjz/+IDAwELB2/x09epSaNWsanErkhgJxDiqnaK2na62DtNZBJUuWzPoBosCZPn061xOvU6Kl\ndc69MR3H2IrTzz//zPPPP8+JEyeMjCj+pblz59pua60Z9cUo3l77NnEpcQamEkYyskBdACrcct/n\nxjYhMklJSeGzzz7Dvak7Zhcz5c3laVWtFQCpqam8+uqrzJkzh59//tngpOLfGDJkCK6urrb729nO\nksNLmL1/tnGhhKGMLFB7gepKqSpKKQfgGWClgXlEPjVnzhwuRV+iRDNr6+l/T/7P1npycHDg888/\n58knn2To0H/0DosCpGrVqpw6dcq2RMq1ddZFDGfum0l0UrSR0YRBDCtQWut0YCiwDjgGLNZaH1FK\njVVKdQZQSj2ilDoP9ACmKaWOGJVXGCM1NZUPPvgA9+bumIqbKK/L2y7MjY2NRWvNk08+ycqVK7G3\ntzc4rfi3SpUqxdtvvw1A8l/JJJ9MJj41nul7phucTBjB0HNQWuuftdZ+WmtfrfUHN7a9r7VeeeP2\nXq21j9baWWvtpbX2NzKvyHuzZ8/mzLkzuNSzLmQ3IXgCYO32a9WqFe3atUMGxRQujz/+ODfPJUf+\nHAnAnINzuBx/2chYwgCFYpCEKJxSUlIYN24cWOD8Z+dpbWlN42rW1XI3btzIgQMHOH36tExpVMiY\nTCZmzpwJQOqFVJIOJ5GcnsxXu74yOJnIa1KgRL41a9Yszl85DybwdvNm0iuTbPs6duzIunXrWLx4\nsW0WAlF4PPnkkzz66KMARP4SCRZYFLqI01GnDU4m8pIUKJEvJSQk8L///Q+vJ7zwedOH50Y8h7Oz\nM5s2bWLEiBFYLBbatm1LUFCWl1KIAkgpxZgxYwBIu5JG7J5YMnQGH2/92OBkIi9JgRL50qRJk4iI\niCD1Yir2Tvb079WfM2fO0LVrVz755BN++EFmvyrs2rVrR5MmTQCIXh+NKcPEtjPbuBh70eBkIq9I\ngRL5zpUrV/j4Y+s35dhdsbxd/m38y/tTsWJFXnvtNXr16sWzzz5rcEqR25RSts9BRlwGF+dc5J0q\n73DlzysGJxN5RZbbEPnOq6++yrQl03Cs4IhPog/fzviWkydP8vzzzwPWefdMJvluVVR0796dpUuX\nAtbr3ry8vFi7bS0BvgEGJxMPqkhNdSQKj2PHjvHNN9/g+bgnJZ8uSb0B9WjXrh39+/dn06ZNAFKc\nipjx48fbZjpPN6dj7mpmwJoBJKQmGJxM5Db5TRf5htaaYcOGYVfBDufazqh0xcQBE3nsscfo1auX\nbYYBUbT4+fnx0ksvAWBJtmBXzI6u/l2xWGSRg8JOCpTIN5YtW8aGDRvw7OQJQFO3ppQtUZYVK1Yw\nd+5cmSmiCBszZgyenp6gIfyLcGLXxdKlYxfmzZtndDSRi+QclMgXEhMTqVWrFlHuUZR+rjTpcenE\nfRNH2NEwvLy8jI4n8oFp06bZWlJ2dnbYV7XHvY47h6cfls9IASPnoESBMnr0aM6eP4vH49aLbu0O\n2vHJ+E/kD4+wGThwIPXr1wfAYm+hzPNlcGrkxOHYwwYnE7lFCpQw3P79+5k4cSJujdxwKOmAp8mT\nPxb+wQsvvGB0NJGPmM1mvvrqK5RSWJIsXFtvne187MaxzFswj8LWGySkQAmDpaWl8cILL6CKKzza\nWVtPHzzxAS5OLgYnE/lRo0aNeOWVVwCI2R5DRlQG4dfDeXXGq0yePNngdCKnSYEShvrwww/5448/\ncH3UFbOTGT8nP9pWb2t0LJGPjR8/ngoVKkAGXFlqvWi3RJsSMsNEISQFShhm06ZNjBo1CoCYLTE0\nz2jOl09/aVuMUIg7cXV1Zdq0aQAkhSURHxKPycFEdB3rooYZGRlGxhM5SEbxCUNcv36dMmXKkJKa\ngtnFTMOAhvz222+2CzKFyMqLL77IzJkzMbuZqTCiAqZiJlomt+TizousWrVKPkv5mIziE/nam2++\nSUpKCm6N3KgwogL9Pugnf1BEtkyaNIlq1aqREZvBtbXWARMbUzayduNa5s6da3A6kROkQIk8df36\ndZ5//nlmzZoFQMqFFEo7l6ZCuQoGJxMFjYuLC/Pnz8dsNhO7M5aU8ykUcyzGy2+/TN++fY2OJ3KA\nFCiRZ+Lj42nSpAlz5syxbevRtAdbX91K++rtDUwmCqoGDRrwwQcfgAUuz73Myf+dpHmd5pjNZjZs\n2CbESvcAAA8RSURBVMDp07LAYUEmBUrkmdjYWMLDwwFwa+xG9RerM2nyJBzsHIwNJgq0ESNG0KVL\nF9KvpaNTNANeHEC/T/vR/vH2dOvWjfj4eKMjigckBUrkuri4ONavX0+3bt1ISEjAoZwDXk94keGX\nwaFrh4yOJwo4pRTff/891apVA8C1uyvb9DYqt62Mp6cnqampBicUD8rO6ACicIuLi+Pxxx9n586d\naK1RjorSfUqj7BTPPvQsLau2NDqiKATc3d1ZsWIFjz32GNe3XCfhWAIVYiuwbNsyPDw8iIuLw9XV\n1eiYIpukBSVyVUZGBmFhYdZpaExQ+v/bu/fgqKo8gePfX3e6A0mTMCQZMDQiEpBSdEiZCmEpSsWJ\nC8ggKqthmdl1WMEBJdECXcT1UUrJII5AkGIHBWsYBXZw1KVEyhlgXCiWbMQBlETJAAOERwwGTUIe\nnaRz9o9+kJAHiKHvTfL7VKVy+/S5t399cju/vveec+4v+uJKcjE0cSjP3P6M1eGpLuSmm27i3Xff\npf54PZV7KiksKOTen9/L1j9tJSUlhY0bN1odovqeNEGpq6K8vJyioiJeeuklSksDo/0T70skZmgM\nCTEJrJ68mh6uHhZHqbqazMxMVq1aBUDMTTEcyzhGzsYcSktLefbZZ/V0Xyejp/hUhysrK2P8+PEU\nFhZSVRW462mf8X2IGxlHtDOa1feuZkBv7Vauro4ZM2Zw9uxZXlz1Ig6XA/+NfoZNGMaWFVtwu7VD\nTmeiR1Cqw33zzTccPHgwnJwSJiXQe2xvnOJk6cSljLhmhMURqq5uwYIFzP2XuZR9WAZAbUYtv8z5\nJYcPH2bixImcOHHC4gjV5dAEpTrMkSNHOHHiBAsWLKCmpgYAcQn9ftIPl8PFyntW6ngnFTELFy7k\nkdGPUPVFFY6eDo4OO0rGbRls2bKF+++/X2/P0QnoKT7VIfbu3cu4ceOora2lqqqKqD5RNPoamXbf\nNJY+tZTD3x5m5ICRVoepuhERYfGvFxOzKIY1JWtw93Pj/5kf9zo3s2bN0kmJOwFNUKpD7Nixg7Ky\nwOkU6SH0z+lPX0df3pz/Ju4oNwkevTOuijwR4YUFL9BjZQ9Wfb2Knik96X1fbx7Lfgy/309BQQFP\nPvkk/fv3tzpU1QpNUOqKGWNYt24dRUVFLFq0CHd/N3Wn6nDUOxgVP4qEQQnUN9bjRi9MK2vNf3Q+\nCR8k8HLBy3hGeEBg5syZALz//vt8+eWXxMTEWBylupgmKHVFjDFkZmayfcd2eqb0pO+MvsQMiaHm\nv2p4e/Hb3Hb7bTgdOju5so8Zk2eQ9OMk5m6fS9UXVeHyiooKPvnkEyZMmGBhdKo1mqC6meW7l5Mz\nOgeAqRunsiFrQ7OytuqGHgPU1NRwbOsx9jbsxTvPi/vHgSMkqRfumnsXY8eObbZuaL284jwANmRt\naPY6UzdObVY+5rdj8MZ7yRiQQV5xHvkn88kelU1ecR4ZAzLC6+XuycXlcJGanEphaSFx0XF4472c\nLD9Jha+C6bdOJ3dPLsm9kgGYMnwKuXty8bg9VNdVk+ZNo7C0kOq6ahppxOP24GvwUd9YD4DL4aK+\nsR6Xw4W/0U8jjc3KPW4PcdFxnK68cCdXB45wvR8q9DpX6ofG0vT1HcH+VKHthdqqabt43B7O150P\n13U6nCTFJlFSWUKaN419p/cBkJqcCsC+0/uIjorG1+Bj1shZrP1sLb4GH0mxSQDhv2Xo965HdoX3\nFSC8L+QV51FYWsiB7AMMe20Yqcmp4f0aIGd0Tnh/nPwPk8kYlsGCvy/grQNv0fehvlTsruDuu+/m\nhhtuICsri+eff57c/80lrziv1c9HW5+X9rQWi7o0vWFhNzP41cEcmXek2XLTsrbqhh6HmEaDOC5c\nZE4nnddnvU76qvQW22y6HtDitULPt1VfKSC8X13O860tX7zfrXhnBcvOLKO6qJqSN0rC5VlZWeTf\nmt/mum19XtpzqVi6G71hoeoQu47torKykmXLljUrN37D+c/Pk7g3EYAN8zaQEKsdIVTnMXvqbABG\nmkDvUmdvJ4n3J/LervfCdUpKSlpdV0WGJigFgK/Bx/4z+1m/f32z8ul/mE5SvySeeOKJZuXmLcPK\nSSvJ25AXyTCV6jCha6QfvPEBO3fuJGVqCnEZcXgf94brXJd2HQC7du3ScVMW0GtQ3VRFbQUAi/9n\nMQAjVoygzh+Yp+xv2//Ghxs/hAeh8qtKGpwNLdb/6vOv6NFD59JTXcOYMWPYPGwzC/+4kN1luyE6\nUN7/8UD38ymrpxD7m1jGp46H2EAnIR1HdfVpgupGjp47CsDk30+moLQAgNWfrgagzl+HfCeUF5Wz\ncPtCGs41cP2D1/P1W18DMHjwYAwXvkFqclJdzdCkoaz71TpqfDUMXzEcgIbvGojqHYXnJx4ANpdu\nxh3rJiUlhSFZQ7hl6C3M/9l8+vTpQ1VdFTGuGE1cHUgTVDdy5GzgwuwXX3+BGAGB8r+UE39HPMee\nO0ZjTcseX1OmTOHhhx8mMzOTIa8NiXTISkVcz+ie4eVNkzYxdedUzr13jihvFP5yP+5MN0ePHqUh\nqoEDOw+w5KElDB8+HP9UP363nz49+pDcO5m+vfqSFJtEYmxieHsnvtM5AL8PSxOUiIwDlgNO4E1j\nzK8vej4aWAfcCpQBDxpjjkU6zs4qPz+f9evXU1RUxKFDhzh+6jgDFw7kzBtnqP17LYNeHkTZR2XE\n3xEfTk4Oh4OhQ4cye/ZslvmWsWnTJovfhVLWSU9Ph51watsp1qxZw7Zt2zjIQRD4duu3+M/7AThY\ncJCBDQNxup2U1pZSWlIKrfSveGXnKxF+B52bZQlKRJzASiATOAl8KiKbjTGFTar9G/CtMSZFRLKA\nxcCDkY+2cyoqKmL58uUtymuKalqUTZs2jQceeICxY8fi8QROZyx7dVmLekp1RzExMcyZM4c5c+Yw\n+NXBLHllCWvXrqWiogKf04ff7+f488eRaCEqLgqnx4mz14WfH935IwBu7nszW4u2WvxuOg/LxkGJ\nyCjgBWPMPwYfPw1gjFnUpM7HwTp7RCSKwHeSJNNO0DoO6oL8/HxGjrwwQes1M66h59Ce7ayhlIoE\nHQd1eeOgrDzF1x8obvL4JHDxdNfhOsaYBhEpBxKAb5pWEpGZwEyAa6+99mrFa2vLdy8nd09ui/Lr\nl1xvQTRKqfZczmD07FHZ3X7GiS7RScIYsxpYDYEjKIvDsUTO6JzL2pk7aiaJtkbWt7ZNnUlCdYSO\nnkkC2p4Vor11dSaJyLFyoO4poOl9v73BslbrBE/xxRPoLKGUUqqLszJBfQoMEZFBIuIGsoDNF9XZ\nDPxrcHkKsKO9609KKaW6DstO8QWvKT0GfEygm/laY0yBiLwI7DXGbAbWAL8XkcPAOQJJTCmlVDdg\n6TUoY8xHwEcXlT3XZLkW+KdIx6WUUsp6OlmsUkopW9IEpZRSypY0QSmllLIlTVBKKaVsqUsM1FWX\nL3tUdng53Zveoqytuu3VC22naZ2mdUPLecWt39yw6foAyb2S8cZ7yRiQQV5xHvkn88kelU1ecR4Z\nAzLC9XL35OJyuEhNTqWwtJC46Di88V5Olp+kwlfB9Funk7snl+ReyQBMGT6F3D25eNwequuqSfOm\nUVhaSHVdNY004nF78DX4qG+sB8DlcFHfWI/L4cLf6KeRxmblHreHuOg4TleeDsfkwBGu90OFXudK\n/dBYmr6+I/hdNrS9UFs1bReP28P5uvPhuk6Hk6TYJEoqS0jzprHv9D4AUpNTAdh3eh/RUdH4GnzM\nGjmLtZ+txdfgIyk2CSD8twz9hub7SmhfyCvOo7C0MBxzaPut7YMXa688tL9e7uegPZcTi2rJsrn4\nrhYROQsctzqOJhK5aGom1YK2Ufu0fdqn7XNpdmujgcaYpEtV6nIJym5EZO/lTIrYnWkbtU/bp33a\nPpfWWdtIr0EppZSyJU1QSimlbEkT1NW32uoAOgFto/Zp+7RP2+fSOmUb6TUopZRStqRHUEoppWxJ\nE5RSSilb0gQVQSIyV0SMiCRaHYudiMgSEflKRD4XkfdFpLfVMdmFiIwTkUMiclhE5lsdj52IyAAR\n+YuIFIpIgYh07/ujt0FEnCKyT0Q+tDqW70sTVISIyADgLuCE1bHY0J+B4caYW4Ai4GmL47EFEXEC\nK4HxwI3AVBG50dqobKUBmGuMuRHIAB7V9mlVDvCl1UFcCU1QkbMUeArQXikXMcb8yRjTEHyYB3it\njMdG0oHDxpijxpg6YCNwj8Ux2YYx5owx5q/B5UoC/4T7WxuVvYiIF7gbeNPqWK6EJqgIEJF7gFPG\nmANWx9IJTAe2Wh2ETfQHips8Pon+A26ViFwHpAL/Z20ktrOMwBfjjpkgMsJ0stgOIiLbgH6tPPUM\nsIDA6b1uq732Mcb8d7DOMwRO27wTydhU5yYiHuCPwOPGmAqr47ELEZkIlBpjPhOR262O50poguog\nxpiftlYuIjcDg4ADIgKB01d/FZF0Y0xJBEO0VFvtEyIiDwETgTuNDs4LOQUMaPLYGyxTQSLiIpCc\n3jHGvGd1PDYzGpgkIhOAHkCciLxtjPm5xXFdNh2oG2EicgxIM8bYaWZhS4nIOOA14DZjzFmr47EL\nEYki0GnkTgKJ6VPgn40xBZYGZhMS+Mb3O+CcMeZxq+Oxs+AR1DxjzESrY/k+9BqUsoPXgV7An0Vk\nv4j8p9UB2UGw48hjwMcEOgD8QZNTM6OBXwBjg/vN/uDRguoi9AhKKaWULekRlFJKKVvSBKWUUsqW\nNEEppZSyJU1QSimlbEkTlFJKKVvSBKWUUsqWNEEppZSyJU1QSimlbEkTlFI2JCJPBW9uefHPi1bH\nplSk6EwSStmQiPQCYpsUzQOmAWOMMYetiUqpyNIEpZTNici/A9nAWGPMIavjUSpS9HYbStmYiDwN\nPArcYYwpsjoepSJJE5RSNiUi/wH8CrhdT+up7kgTlFI2JCLPAQ8TuEfWEavjUcoKmqCUspngkVM2\nMAmoEpF+wae+M8bUWheZUpGlnSSUspHgXWK/A+JaefqnxpjtEQ5JKctoglJKKWVLOlBXKaWULWmC\nUkopZUuaoJRSStmSJiillFK2pAlKKaWULWmCUkopZUuaoJRSStmSJiillFK29P8Sz6fFKDC3KQAA\nAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "MM = qp.PDF(truth=dist, limits=demo_limits)\n", "MM.sample(1000, vb=False)\n", @@ -343,12 +625,63 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": false, "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plotted truth.\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -1.33517773612 and 1.33517773612 using quantiles\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -5.0 and 5.0 using quantiles\n", + "Plotted quantiles.\n", + "Created a piecewise constant interpolator for the histogram parametrization.\n", + "interpolating between -5.0 and 5.0 using histogram\n", + "Plotted histogram.\n", + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -3.24126734007 and 3.85273149065 using samples\n", + "Plotted samples\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "P.plot()" ] @@ -366,30 +699,124 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false, "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -1.0 and 1.0 using quantiles\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -2.0 and 2.0 using quantiles\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", + " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", + " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", + " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", + "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", + " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", + " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", + " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", + " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", + " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", + " 2.13041618e-01, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -3.0 and 3.0 using quantiles\n", + "almost normalized integrals\n", + "Quantile approximation: KLD over 1,2,3 sigma ranges = 5.72728575949e-07 0.00104477047064 0.823602377965\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Created a piecewise constant interpolator for the histogram parametrization.\n", + "interpolating between -1.0 and 1.0 using histogram\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Created a piecewise constant interpolator for the histogram parametrization.\n", + "interpolating between -2.0 and 2.0 using histogram\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Created a piecewise constant interpolator for the histogram parametrization.\n", + "interpolating between -3.0 and 3.0 using histogram\n", + "almost normalized integrals\n", + "Histogram approximation: KLD over 1,2,3 sigma ranges = 0.0126476532244 0.0316792675565 0.039069809229\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -1.0 and 1.0 using samples\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -2.0 and 2.0 using samples\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -3.0 and 3.0 using samples\n", + "almost normalized integrals\n", + "Sampled approximation: KLD over 1,2,3 sigma ranges = 0.000488367018414 0.000868735970797 0.00164264584551\n" + ] + } + ], "source": [ - "qD1 = qp.utils.calculate_kl_divergence(P, Q, limits=(-5.,5.), vb=True)\n", + "qD1 = qp.utils.calculate_kl_divergence(P, Q, limits=(-1.,1.), vb=True)\n", "qD2 = qp.utils.calculate_kl_divergence(P, Q, limits=(-2.,2.), vb=True)\n", "qD3 = qp.utils.calculate_kl_divergence(P, Q, limits=(-3.,3.), vb=True)\n", - "\n", - "hD1 = qp.utils.calculate_kl_divergence(P, H, limits=(-5.,5.), vb=True)\n", + "print 'Quantile approximation: KLD over 1,2,3 sigma ranges = ', qD1, qD2, qD3\n", + "hD1 = qp.utils.calculate_kl_divergence(P, H, limits=(-1.,1.), vb=True)\n", "hD2 = qp.utils.calculate_kl_divergence(P, H, limits=(-2.,2.), vb=True)\n", "hD3 = qp.utils.calculate_kl_divergence(P, H, limits=(-3.,3.), vb=True)\n", - "\n", - "sD1 = qp.utils.calculate_kl_divergence(P, S, limits=(-5.,5.), vb=True)\n", + "print 'Histogram approximation: KLD over 1,2,3 sigma ranges = ', hD1, hD2, hD3\n", + "sD1 = qp.utils.calculate_kl_divergence(P, S, limits=(-1.,1.), vb=True)\n", "sD2 = qp.utils.calculate_kl_divergence(P, S, limits=(-2.,2.), vb=True)\n", "sD3 = qp.utils.calculate_kl_divergence(P, S, limits=(-3.,3.), vb=True)\n", - "\n", - "print 'Quantile approximation: KLD over 1,2,3 sigma ranges = ', qD1, qD2, qD3\n", - "print 'Histogram approximation: KLD over 1,2,3 sigma ranges = ', hD1, hD2, hD3\n", "print 'Sampled approximation: KLD over 1,2,3 sigma ranges = ', sD1, sD2, sD3" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -399,12 +826,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quantile approximation: RMSE over 1,2,3 sigma ranges = 8.76696935119e-06 0.00735593470055 0.0156579107283\n", + "Histogram approximation: RMSE over 1,2,3 sigma ranges = 0.0488819635353 0.0519114190368 0.0432314864067\n", + "Sampled approximation: RMSE over 1,2,3 sigma ranges = 0.00935357803579 0.00914820587188 0.00789788533054\n" + ] + } + ], "source": [ "qRMSE1 = qp.utils.calculate_rmse(P, Q, limits=(-1.,1.), vb=False)\n", "qRMSE2 = qp.utils.calculate_rmse(P, Q, limits=(-2.,2.), vb=False)\n", @@ -439,11 +876,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "moments: [0, 1, 2]\n", + "truth: [0.99999942657298901, -7.4335975666335382e-08, 0.9999845566522696]\n", + "quantiles: [0.99931086997490981, -4.495750993704917e-14, 0.9229360084972551]\n", + "histogram: [0.99999968615391743, 0.0049984307694804723, 1.1666587530881889]\n", + "samples: [0.99999999829380781, 0.01933204721606448, 1.0187788937770361]\n" + ] + } + ], "source": [ "pdfs = [P, Q, H, S]\n", "which_moments = range(3)\n", @@ -486,11 +935,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plotted truth.\n" + ] + }, + { + "data": { + "image/png": "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\nevXq0bRpUxo2bEh8fLzrck0hWUBFgdDmnxtvvBERcViNiZSkpCR+//vf89BDDwEwZswYRo4caX/f\nk8jKyuK/y12ZAAAV7klEQVTLL79k5syZzJw5k0WLFpGTk3sM6RMlJibSokUL+vTpQ//+/WnXrp0F\nVhSx86B8bsmSJbRq1QoINAtt3bqVc845x3FVJlIyMzOpV68eWVlZAHz66af06VNqBuY/JVVl9uzZ\nvPHGG0yYMCEiHUmqV6/OiBEjuOWWW2jatGkEqjSFkd/zoCygfO6mm27yupfbSZ2xafTo0Tz//PMA\nXHjhhcybN69U70UdOXKEt956izFjxrB69eqTrhMXF0fDhg2pX78+9evXp0aNGmRnZ3Ps2DGysrJY\nt24dq1at4ocffshzO7169eL222+nf//+pfr9diG/AYWqlopb27ZtNdrs3LlTk5KSFFBAv/76a9cl\nmWKwdetWLVu2rPd3/uCDD1yX5MShQ4f0pZde0vr163vvReitcePGescdd+jkyZN1z549+XrO3bt3\n6wcffKC//vWv9eyzzz7p83bo0EG/+uqrYn51JhSQofn43nYeHCV1i8aAeuqpp7z/RG3bttWcnBzX\nJZlictddd3l/66ZNm+rRo0ddl1RicnJydOLEiXruueeeEB4VK1bU3/zmNzp79uwif/6zs7M1PT1d\nBw0apHFxcSdsa8CAAbpq1aoIvSpzKhZQUR5QR44c0Tp16nj/ecaNG+e6JFOMdu3apZUqVfL+3q+9\n9prrkkrEihUr9JJLLjkhLKpXr65PP/207tu3r1i2u2nTJr399ts1MTExbLuJiYn6xBNP6OHDh4tl\nuybAAirKA2rChAnef5qzzjpLDx065LokU8wef/xx729ep04dPXjwoOuSis3hw4f14Ycf1jJlyoQF\nRNWqVXXMmDH6888/l0gdGzdu1GuvvVZFJKyOFi1a6Lx580qkhtLIAirKA6pLly7ef5aHH37YdTmm\nBOzfv1/POuss7+/+7LPPui6pWGRkZGiLFi3CAiEuLk5vueUW3bVrl5OaFi1apCkpKWE1xcfH6xNP\nPKHHjh1zUlMss4CK4oBasGCB95+kTJky+v3337suyZSQ559/PmxvYseOHa5LipgjR47ogw8+qPHx\n8WFB0KlTJ128eLHr8vTo0aP67LPParly5cLq6969u27bts11eTHFAiqKA2rIkCHef46rr77adTmm\nBB0+fDiss0Cs/P3Xrl2r7dq1C/viL1eunP7973/33R7K+vXrtXPnzmG1VqtWTT/99FPXpcUMC6go\nDahvv/027D/GkiVLXJdkSti0adPCPgPR/MWYk5Ojr7/+upYvXz7sNXXr1k3XrVvnurw8HT16VB96\n6KGwY1Miok899ZT1po0AC6goDahrrrnG+w8xcOBA1+UYR66++mrvc9CgQYMS6zQQSXv37tXhw4eH\nBVNCQoI+88wzmp2d7bq8fJk5c6bWqlUr7DVcccUVxda7sLSwgIrCgFq7dm3Y+RnWi6j02rFjh1at\nWtX7LNx9992uSyqQjIwMPe+888K+2Js0aaILFy50XVqBbd++Xbt27Rr2Wpo3b64bNmxwXVrUym9A\n2eU2fOSvf/2rNwBm7969adeuneOKjCtnnXUWzz77rDf/3HPPMX/+fIcV5Y+q8o9//IOOHTuyfv16\nb/mNN97IwoULadOmjcPqCqdmzZpMnz6d3//+996y5cuX0759e+bMmeOwslIgPykWCze/70Ft2bJF\nExISvF9oX375peuSjGM5OTl68cUXe5+JunXr6s6dO12XlafMzEwdOHDgCSNBvP32265Li5g333wz\n7OTesmXL6jvvvOO6rKiDNfFFV0Ddeuut3oe+S5curssxPrF+/XqtUqWK99no3bu373q9qarOmjVL\n69atGxZObdq00bVr17ouLeL+97//abVq1cJe6xNPPGGdJwrAAiqKAmrt2rVhZ9RHc68tE3kff/xx\n2Jfhgw8+6Lokz9GjR/XRRx894dym22+/PaZHP1m3bp02bdo07DX/5je/KVVjKBZFVAQU0AdYDawD\n7jvJ/WWBd4P3zwMaBJc3AA4Ci4O3l063LT8H1NChQ70P+UUXXWS/xMwJHnzwwbAvw0mTJrkuSTds\n2KCdOnU6YaiiiRMnui6tROzevVu7d+8e9vr79eun+/fvd12a7/k+oIB4YD1wLpAILAGSc61zy/Hw\nAYYD7+ovAfVtQbbn14CaPXt22Afceu6Zkzl27FjYoKpJSUmalpbmpJacnBx94403wga3Pf7javPm\nzU5qcuXw4cNhp4ZA4MoD27dvd12ar0VDQHUE0kLm7wfuz7VOGtAxOF0G2AVIrARUTk5O2BnrV111\nleuSjI/t3LlTGzRoEHaAvqRDavPmzdqnT5+wL+T4+Hh98sknfXlsrCTk5OTo/fffH/aenHvuuTF5\n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\n5JJL+PTTT8nJyXFYadFYQJ1GZmYmd911F40bN+aTTz7xljds2JAZM2bwxBNPEBdnb6MxpuSdddZZ\njB07lm+//Zbhw4eHjVaTnp5Ov379SE5OZuzYsWGX94gW9s2ah507d/LYY49x7rnn8txzz3mXywC4\n7bbbWLp0adhIxMYY40rTpk155513WLFiBSNHjgz70bx69Wpuu+02zjnnHK655hrS09PJzs52WG3+\n2QULc1m8eDH//Oc/efvtt8NCCaB9+/b87W9/o0uXLsVVpjHGFNmGDRt44YUXeO2119i3b98J959z\nzjkMHjyYIUOG0LVrVxISEkq0Pruibi6nCqgNGzbw7rvvkpqaytKlS0+4v0mTJjz11FMMHjzYBnw1\nxkSN/fv3M27cOF555ZWTfrcBVK1alV69etG7d2969+5NgwYNir0uC6hcQgPq4MGD/O9//+Ozzz4j\nPT09zz/chRdeyO23386wYcMoU6ZMSZZrjDERtXjxYsaNG8f48ePZuXNnnus1aNCATp060bFjRzp0\n6ECLFi0iPti1BVQuDRs21L59+zJ//nyWLl2a53VWkpKSGDx4MKNHj6Z9+/a2x2SMiSnZ2dnMmjWL\nDz/8kA8//JBt27adcv0yZcrQrFkzWrVqRXJyMk2aNKFJkyacd955hQ6uqAgoEekD/AOIB15V1b/k\nur8s8B+gLZAJDFPVTcH77gduBLKB0aqaximISJ4vNCEhgUsvvZThw4czcODAsHMLjDEmVqkq3377\nLenp6aSnp/Pll196I+OcTlxcHNdffz2vvfZagbeb34By1m4lIvHAWKA3sA1YICKTVXVFyGo3AntU\ntZGIDAf+CgwTkWRgONAcqAVMF5HGqprvrinNmjXz2ly7detmoWSMKXVEhBYtWtCiRQvuvPNOjh49\nypIlS5g9ezZff/01CxcuZP369Sd9bE5ODpUqVSrW+lweWGkHrFPVDQAikgoMAkIDahDwaHD6feAF\nCbS5DQJSVfUwsFFE1gWfb05eG6tcuTJ333037dq1IyUlhapVq0b8BRljTDRLSEggJSWFlJQURo8e\nDcC+fftYunQpS5cuZdWqVaxevZrVq1ezZcuWYh89x2VA1Qa2hsxvA9rntY6qHhORvUC14PK5uR5b\nO/cGRORm4GaAevXq8cADD0SseGOMKQ0qVapEly5dTji9Jisrq9gHqI3pE3VV9WVVTVHVlBo1argu\nxxhjYsYZZ5xB+fLli3UbLgPqO6BuyHyd4LKTriMiZYDKBDpL5OexxhhjopjLgFoAnC8iDUUkkUCn\nh8m51pkMjApODwU+18A+5WRguIiUFZGGwPnA/BKq2xhjTAlwdgwqeEzpNiCNQDfz11V1uYg8BmSo\n6mTgNeCtYCeI3QRCjOB6Ewh0qDgG3FqQHnzGGGP8r9ScqJvfsfiMMcYUr/yeBxXTnSSMMcZELwso\nY4wxvmQBZYwxxpdKzTEoEdkJbHZdRy7VgV2ui/Ape2/yZu9N3uy9yZuf3pv6qnrak1NLTUD5kYhk\n5OdAYWlk703e7L3Jm703eYvG98aa+IwxxviSBZQxxhhfsoBy62XXBfiYvTd5s/cmb/be5C3q3hs7\nBmWMMcaXbA/KGGOML1lAGWOM8SULKJ8QkbtEREWkuuta/EBExojIKhFZKiIfiUgV1zW5JiJ9RGS1\niKwTkftc1+MXIlJXRGaKyAoRWS4it7uuyW9EJF5EvhGRT1zXUhAWUD4gInWBS4AtrmvxkXTgV6ra\nElgD3O+4HqdEJB4YC/QFkoERIpLstirfOAbcparJQAfgVntvTnA7sNJ1EQVlAeUP/wfcA1iPlSBV\n/UxVjwVn5xK4KGVp1g5Yp6obVPUIkAoMclyTL6jqD6q6KDi9n8AXcW23VfmHiNQB+gOvuq6loCyg\nHBORQcB3qrrEdS0+9mvgU9dFOFYb2Boyvw37Ej6BiDQAWgPz3FbiK38n8AM4x3UhBeXsgoWliYhM\nB84+yV0PAH8i0LxX6pzqfVHVScF1HiDQhDO+JGsz0UdEKgAfAHeo6j7X9fiBiAwAflTVhSJyset6\nCsoCqgSoaq+TLReRFkBDYImIQKAZa5GItFPV7SVYohN5vS/Hicj1wACgp9oJe98BdUPm6wSXGUBE\nEgiE03hV/dB1PT7SGRgoIv2AJKCSiPxXVUc6ritf7ERdHxGRTUCKqvplxGFnRKQP8BzQTVV3uq7H\nNREpQ6CzSE8CwbQAuFpVlzstzAck8OtuHLBbVe9wXY9fBfeg/qiqA1zXkl92DMr41QtARSBdRBaL\nyEuuC3Ip2GHkNiCNQCeACRZOns7AtUCP4GdlcXCPwUQ524MyxhjjS7YHZYwxxpcsoIwxxviSBZQx\nxhhfsoAyxhjjSxZQxhhjfMkCyhhjjC9ZQBljjPElCyhjjDG+ZAFljM+JyD3Bi1nmvj3mujZjipON\nJGGMz4lIRaB8yKI/AtcAF6nqOjdVGVP8LKCMiSIici8wGuihqqtd12NMcbLLbRgTJUTkfuBWoLuq\nrnFdjzHFzQLKmCggIg8CvwUutmY9U1pYQBnjcyLyMHATgWtjrXddjzElxQLKGB8L7jmNBgYCB0Tk\n7OBdP6nqIXeVGVP8rJOEMT4VvFLsT0Clk9zdS1VnlHBJxpQoCyhjjDG+ZCfqGmOM8SULKGOMMb5k\nAWWMMcaXLKCMMcb4kgWUMcYYX7KAMsYY40sWUMYYY3zJAsoYY4wv/X+GxZ5XvUvA4AAAAABJRU5E\nrkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "component_1 = {}\n", "component_1['function'] = sps.norm(loc=-2., scale=1.)\n", @@ -516,11 +983,70 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plotted truth.\n", + "evaluated quantile PDF: (array([-3.37678933, -3.05088205, -2.81665882, -2.62185957, -2.44868659,\n", + " -2.28827364, -2.13508458, -1.98505957, -1.83470064, -1.68045643,\n", + " -1.51808391, -1.34164958, -1.14140787, -0.89790598, -0.55899915,\n", + " 0.08643063, 0.96385277, 1.64354229, 2.70782468]), array([ 0.12154769, 0.18312058, 0.22849345, 0.2628069 , 0.28833481,\n", + " 0.30588958, 0.31597703, 0.31885079, 0.31458291, 0.30308131,\n", + " 0.28407468, 0.25706671, 0.2212335 , 0.17522438, 0.11727291,\n", + " 0.05381861, 0.05473215, 0.09731259, 0.02904975]))\n", + "complete evaluated quantile PDF: (array([-4.35622065, -3.37678933, -3.05088205, -2.81665882, -2.62185957,\n", + " -2.44868659, -2.28827364, -2.13508458, -1.98505957, -1.83470064,\n", + " -1.68045643, -1.51808391, -1.34164958, -1.14140787, -0.89790598,\n", + " -0.55899915, 0.08643063, 0.96385277, 1.64354229, 2.70782468,\n", + " 6.805884 ]), array([ 2.22044605e-16, 1.21547694e-01, 1.83120581e-01,\n", + " 2.28493451e-01, 2.62806902e-01, 2.88334809e-01,\n", + " 3.05889584e-01, 3.15977031e-01, 3.18850786e-01,\n", + " 3.14582914e-01, 3.03081311e-01, 2.84074680e-01,\n", + " 2.57066712e-01, 2.21233504e-01, 1.75224382e-01,\n", + " 1.17272913e-01, 5.38186122e-02, 5.47321478e-02,\n", + " 9.73125942e-02, 2.90497550e-02, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -3.57267559149 and 3.52743654764 using quantiles\n", + "evaluated quantile PDF: (array([-3.37678933, -3.05088205, -2.81665882, -2.62185957, -2.44868659,\n", + " -2.28827364, -2.13508458, -1.98505957, -1.83470064, -1.68045643,\n", + " -1.51808391, -1.34164958, -1.14140787, -0.89790598, -0.55899915,\n", + " 0.08643063, 0.96385277, 1.64354229, 2.70782468]), array([ 0.12154769, 0.18312058, 0.22849345, 0.2628069 , 0.28833481,\n", + " 0.30588958, 0.31597703, 0.31885079, 0.31458291, 0.30308131,\n", + " 0.28407468, 0.25706671, 0.2212335 , 0.17522438, 0.11727291,\n", + " 0.05381861, 0.05473215, 0.09731259, 0.02904975]))\n", + "complete evaluated quantile PDF: (array([-4.35622065, -3.37678933, -3.05088205, -2.81665882, -2.62185957,\n", + " -2.44868659, -2.28827364, -2.13508458, -1.98505957, -1.83470064,\n", + " -1.68045643, -1.51808391, -1.34164958, -1.14140787, -0.89790598,\n", + " -0.55899915, 0.08643063, 0.96385277, 1.64354229, 2.70782468,\n", + " 6.805884 ]), array([ 2.22044605e-16, 1.21547694e-01, 1.83120581e-01,\n", + " 2.28493451e-01, 2.62806902e-01, 2.88334809e-01,\n", + " 3.05889584e-01, 3.15977031e-01, 3.18850786e-01,\n", + " 3.14582914e-01, 3.03081311e-01, 2.84074680e-01,\n", + " 2.57066712e-01, 2.21233504e-01, 1.75224382e-01,\n", + " 1.17272913e-01, 5.38186122e-02, 5.47321478e-02,\n", + " 9.73125942e-02, 2.90497550e-02, 2.22044605e-16]))\n", + "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", + "interpolating between -5.18108347809 and 6.43371375339e+14 using quantiles\n", + "Plotted quantiles.\n" + ] + }, + { + "data": { + "image/png": "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\nYdiwYUydOpWysjJ69+7NQw89xNatW/nud7/L/PnzKS0tZf78+bz33ntceOGFlJWVMWDAAO655x4g\nd9dx9tlnc/rpp3PGGWewZMkSTjvtND7zmc/Qp08fJk2axI4dOwC44447OOGEEzj++OOZOnVqvfWM\nGTOGQYMG0a9fP+bOnQvAtGnT2LJlC6WlpUyYMAGAX/7yl5SVlVFaWsp//Md/sH177t/sP/vZz+jd\nuzdlZWU88sgje/1veNRRR3Hcccfx4osvfmjb8OHDmThxYm0dTS3znSTMrOVYuXIlgwYNqrPu0EMP\npaioiKqqqj3uO3PmTMrLy1mxYgVLly5lxYoVtduOPPJInnzySS6++GJmz55NUVERkyZN4utf/zqV\nlZV88pOfrPeY27Zt4ytf+QoLFy6koqKCCy+8sEGz6NbU1LBs2TJ+9KMf8b3vfY+OHTsyY8aM2ruM\nsWPHMnPmTE4//XSWLVvGAw88wGWXXcZ7770H5CZKXLhwIUuXLgVg2bJl/PjHP2bVqlU899xz3H33\n3bzyyitMnTqV+++/n8rKSpYvX17v4Le33norFRUVlJeXc/3117Np0yauueYaDjzwQCorK7n99ttZ\nvXo18+fP55FHHqGyspL27dtz++23s3HjRq666ioeeeQRHn74YVatWrXXa1+/fj3r16/nYx/7WL3b\nd52+5LLLLqt9xPf000/v9fiN4dHMzVqxy545pkm3F9KCBQuYO3cuNTU1bNy4kVWrVtG/f38Azjnn\nHAAGDRrE3Xff3eBjrl27lmeeeYYRI0YAsH37do4++ui97pd/vhdeeKHeNn/6059YvHhx7V3b+++/\nz0svvQTAiBEjOOKII2rblpWVceyxxwIwfvx4Hn74YTp06MCwYcPo3r07ABMmTODBBx9kzJgxdc5z\n/fXX1w6mu2HDBtatW0e3bt3qtPnLX/5CRUUFJ510EgBbtmzhqKOO4oknnqhzjrFjx/Lss8/Wez3z\n58/n4YcfplOnTtx888116s+363Bxs2bN4txzz6237f5yQJlZwZSUlHyoc8K7777L3/72N/r06cMz\nzzxT+3gL/neajeeff57Zs2ezfPlyunbtygUXXFBnCo5OnToBuUeGjXmvExH069ePxx57rFHX0ZDz\nRQR33XUXffr0qbP+iSeeqDO1CPChWYgbOivxkiVLuO+++3jsscc46KCDGDZsWJ3fl/xazj//fH74\n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\nM40wA1tlALQAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "Cq = qp.PDF(truth=C_dist, limits = composite_lims)\n", "Cq.quantize(N=20, limits=composite_lims, vb=False)\n", @@ -536,11 +1062,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating histogram: [-5. -4.5 -4. -3.5 -3. -2.5 -2. -1.5 -1. -0.5 0. 0.5 1. 1.5 2.\n", + " 2.5 3. 3.5 4. 4.5 5. ]\n", + "Result: (array([-5. , -4.5, -4. , -3.5, -3. , -2.5, -2. , -1.5, -1. , -0.5, 0. ,\n", + " 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ]), array([ 0.00778614, 0.02650052, 0.0705866 , 0.14715564, 0.24013706,\n", + " 0.30676535, 0.30683452, 0.24058333, 0.14910206, 0.07721173,\n", + " 0.04414717, 0.04457502, 0.061824 , 0.07701047, 0.07673381,\n", + " 0.06003894, 0.03678931, 0.01764668, 0.00662513, 0.00194653]))\n", + "Plotted truth.\n", + "Created a piecewise constant interpolator for the histogram parametrization.\n", + "interpolating between -5.0 and 5.0 using histogram\n", + "Plotted histogram.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "Ch = qp.PDF(truth=C_dist, limits = composite_lims)\n", "Ch.histogramize(N=20, binrange=composite_lims, vb=True)\n", @@ -556,11 +1110,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plotted truth.\n", + "Created a KDE interpolator for the samples parametrization.\n", + "interpolating between -3.38245992495 and 3.17142634776 using samples\n", + "Plotted samples\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "Cs = qp.PDF(truth=C_dist, limits = composite_lims)\n", "Cs.sample(N=20, using='truth', vb=False)\n", @@ -569,11 +1144,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "Evaluating the true distribution.\n", + "almost normalized integrals\n", + "(0.0, 0.0, 0.0)\n" + ] + } + ], "source": [ "qD = qp.utils.calculate_kl_divergence(C, Cq, limits=composite_lims, dx=0.001, vb=True)\n", "hD = qp.utils.calculate_kl_divergence(C, Ch, limits=composite_lims, dx=0.001, vb=True)\n", From a64231b5e6efdb0fcf4eab099e10e91254f7230b Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 15:40:25 -0700 Subject: [PATCH 16/96] cleaning up --- docs/notebooks/demo.ipynb | 683 +++----------------------------------- 1 file changed, 47 insertions(+), 636 deletions(-) diff --git a/docs/notebooks/demo.ipynb b/docs/notebooks/demo.ipynb index bcb396b2..3fb88db3 100644 --- a/docs/notebooks/demo.ipynb +++ b/docs/notebooks/demo.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": false }, @@ -46,20 +46,12 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Warning: initializing a PDF object without inputs\n" - ] - } - ], + "outputs": [], "source": [ "# ! cat qp/pdf.py\n", "P = qp.PDF()" @@ -76,30 +68,11 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Plotted truth.\n" - ] - }, - { - "data": { - "image/png": "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\nMtHipZde4uyzzwZg69atPPPMM44TmaLi8gyqKZCuqhtVNRMYA/TIsU0P4PhDDuOAa8QOqYsdVeXu\nu+/ml19+AeCCCy7I1ovPmJM588wzs13qe+ONN5g3b57DRKaouCxQVYHNvvaW4Lpct1HVo8CvwFnB\n12qJyNciskBErsrtG4jIPSKSKiKpGRkZRZveFJn3338/2/QJw4cP94azMSY/evXqRefOnb327bff\nzq+//uowkSkK0dpJYhtwvqo2Bh4FRotI+ZwbqepwVU1W1WR7jiYybdy4MVvvqwcffJBrrrnGYSIT\njUSE9957j0qVKgGwadMmBg4c6DiVKSyXBWor4B+7plpwXa7biEgJoAKwS1UPq+ouAFVdDmwALg55\nYlOkDh8+zM0338z+/fsBqFOnDn/7298cpzLRqkqVKrz99u/9pT744ANGjRrlMJEpLJcFahlQW0Rq\niUhJoBcwMcc2E4Hbgss9gbmqqiKSFOxkgYhcANQGNoYptykigwYNIjU1FQj02hs1apQ3a6oxp+PG\nG2+kb9++Xrt///7ekFkm+jgrUMF7SgOAGcB3wFhVTRORISLSPbjZCOAsEUkncCnveFf0VsBqEVlJ\noPNEf1XdHd6fwBTGmDFjGDZsmNceOnQoV1xxhcNEprh46623qFOnDgAHDhygZ8+e7Nu3z3Eqczok\nVqZNTk5O1uNH68atZcuW0apVKw4dOgTADTfcwCeffGLPPJkis2bNGpo2bcrBgwcB6NKlC59//jnx\n8fGOkxkAEVmuqsmn2i5aO0mYKLVp0ya6d+/uFafatWszYsQIK06mSDVo0IDhw4d77SlTpjBo0CCH\niczpsAJlwmb37t107dqV7du3A4HnV6ZMmUKFChUcJzPFUd++fXnyyd8HqHn99dezPS9lIp8VKBMW\n+/bto3PnznzzzTdAoFPEp59+alO4m5B68cUXuf766732I488wvvvv+8wkSkIK1Am5H777Te6d+/u\nTd8OgYdz27Rp4y6UiQlxcXGMGjWKP/zhD966u+++m48++shhKpNfVqBMSP3yyy906NCB+fPne+uG\nDRvGH//4R3ehTEw544wzmDJlCo0bNwYCo+b36dOH9957z3EycypWoEzIbN++nauvvpovv/zSW/fy\nyy9z//33O0xlYlHFihWZMWMG9eoFxqM+Pv7jK6+8Qqz0ZI5GVqBMSHz99ddcccUVrFy50lv3+uuv\n89hjjzlMZWJZUlISCxYsoEmTJt66xx57jHvvvZfMzEyHyUxerECZIjdmzBhatmzJli1bgMB9gPff\nf9/GRjPOVa5cmblz53LVVb+PL/3uu+/SoUMHtm3b5jCZyY0VKFNkDhw4wN13303v3r05cOAAAOXL\nl2fatGnccccdjtMZE1ChQgVmzpxJnz59vHULFizgsssuY8aMGQ6TmZysQJkisXDhQho1apTtxvOF\nF17I4sWL6dChg8NkxpwoMTGRUaNG8eKLL3oPiWdkZJCSksJ9991ns/JGCCtQplAyMjK49957ad26\nNevXr/fW9+rVixUrVlC3bl2H6YzJm4jw9NNPM3v2bM4991xv/dtvv039+vX55JNPrAOFY1agzGn5\n7bffePnll7nooouyDSlTvnx5RowYwejRoylf/oQpuoyJOG3btmXVqlX06PH7hN5btmzhpptuolWr\nVtl6oZrwsgJlCuSXX35h6NCh1KpViyeeeCLbpZBu3brx7bffcuedd9rYeiaqnH322UyYMIGPP/4Y\n/+Sm//nPf2jRooX3LJ+dUYWXFSiTLytXruSBBx6gWrVqPP7442RkZHiv1alTh8mTJ/P5559TtWpV\nhymNOX0iwk033cT333/Po48+SokSJbzXZs2axdVXX02jRo0YPny4TScfJjbdhsnTunXrmDBhAh99\n9BGrV68+4fXq1avz9NNP069fPxISEhwkNCZ01q9fz/PPP8+HH35IVlZWttcSExO59tpr6dmzJykp\nKZQpU8ZRyuiU3+k2rEAZz86dO1m0aBGzZ89m5syZfP/997lu16BBAx566CFuvfVWSpYsGeaUxoTX\n+vXr+b//+z9GjRrlPT7hl5iYSKtWrejQoQNt2rThsssuy3b2ZU5kBSoHK1C/U1V++ukn0tLSWLNm\nDStWrCA1NZV169bluU/p0qW5/vrr6devH23atLF7TCbm7Nmzh5EjRzJy5MhsI6TkVKZMGZKTk2nS\npAmNGzemfv36XHLJJZxxxhlhTBvZoqJAiUgK8DoQD7ynqn/L8Xop4APgcmAXcLOq/jf42lNAP+AY\nMFBVT/qEnRWogIULF9K9e/d8XUMvXbo0KSkpXHfddfTo0cN65RkTtHr1asaPH8/48eNJS0s75fYi\nQtu2bZk9e3YY0kW+/BYoZ+ehIhIPDAPaA1uAZSIyUVW/9W3WD9ijqheJSC/gJeBmEakH9ALqA+cB\ns0XkYlU9Ft6fIvqcd955eRanhIQEkpOTueqqq2jfvj0tW7YkMTExzAmNiXwNGzakYcOG/OUvf2HT\npk3MmjWLOXPmsGjRIjZt2nTC9qpK2bJlHSSNbi4vlDYF0lV1I4CIjAF6AP4C1QP4c3B5HPCmBK4t\n9QDGqOph4AcRSQ++31dhyh61atWqRWJiIiVLlqR+/frUr1+fRo0a0aRJExo1akTp0qVdRzQmqpx/\n/vn069ePfv36AbB582ZWrFjB8uXLWbNmDWlpaaSnp3sjqZv8c1mgqgKbfe0tQLO8tlHVoyLyK3BW\ncP3iHPue0L9ZRO4B7oHA/0QG4uPj+fHHH0lKSrL7SMaEQPXq1alevXq2B38PHTrE4cOHHaaKTsX6\nOShVHa6qyaqa7H/4LtadffbZVpyMCaPExEQqVKjgOkbUcVmgtgLVfe1qwXW5biMiJYAKBDpL5Gdf\nY4wxUcxlgVoG1BaRWiJSkkCnh4k5tpkI3BZc7gnM1UC3w4lALxEpJSK1gNrA0jDlNsYYEwbO7kEF\n7ykNAGYQ6Gb+vqqmicgQIFVVJwIjgFHBThC7CRQxgtuNJdCh4ijwgPXgM8aY4sUe1DXGGBNW+X0O\nqlh3kjDGGBO9rEAZY4yJSFagjDHGRKSYuQclIhnAj65z+FQGdroOEaHss8mbfTZ5s8/m5CLp86mh\nqqd8ODVmClSkEZHU/NwkjEX22eTNPpu82WdzctH4+dglPmOMMRHJCpQxxpiIZAXKneGuA0Qw+2zy\nZp9N3uyzObmo+3zsHpQxxpiIZGdQxhhjIpIVKGOMMRHJClQEEJFBIqIiUtl1lkghIkNFZK2IrBaR\nCSJS0XUm10QkRUTWiUi6iDzpOk+kEJHqIjJPRL4VkTQRech1pkgjIvEi8rWITHadpSCsQDkmItWB\nDsAm11kizCyggao2BL4HnnKcxykRiQeGAZ2AekBvEbE5xAOOAoNUtR7QHHjAPpsTPAR85zpEQVmB\ncu/vwOOA9VbxUdWZqno02FxMYFLKWNYUSFfVjaqaCYwBepxin5igqttUdUVweR+BP8RV3aaKHCJS\nDegCvOc6S0FZgXJIRHoAW1V1lessEe5OYJrrEI5VBTb72luwP8InEJGaQGNgidskEeU1AgfBWa6D\nFJSzCQtjhYjMBs7N5aXBwNMELu/FpJN9Nqr6eXCbwQQu4XwYzmwm+ohIWWA88LCq7nWdJxKISFfg\nZ1VdLiJtXOcpKCtQIaaq7XJbLyKXArWAVSICgUtYK0SkqapuD2NEZ/L6bI4TkduBrsA1ag/sbQWq\n+9rVgusMICIJBIrTh6r6qes8EaQF0F1EOgOJQHkR+beq9nWcK1/sQd0IISL/BZJVNVJGG3ZKRFKA\nV4HWqprhOo9rIlKCQGeRawgUpmXALaqa5jRYBJDAEd5IYLeqPuw6T6QKnkH9SVW7us6SX3YPykSq\nN4FywCwRWSkib7sO5FKww8gAYAaBTgBjrTh5WgB/BNoG/19ZGTxjMFHOzqCMMcZEJDuDMsYYE5Gs\nQBljjIlIVqCMMcZEJCtQxhhjIpIVKGOMMRHJCpQxxpiIZAXKGGNMRLICZYwxJiJZgTImwonI48EJ\nLXN+DXGdzZhQspEkjIlwIlIOKONb9SegD3CVqqa7SWVM6FmBMiaKiMgTwECgraquc53HmFCy6TaM\niRIi8hTwAHC1qn7vOo8xoWYFypgoICLPAP2BNnZZz8QKK1DGRDgReQ64i8DcWBtc5zEmXKxAGRPB\ngmdOA4HuwG8icm7wpV9U9ZC7ZMaEnnWSMCZCBWeK/QUon8vL7VR1TpgjGRNWVqCMMcZEJHtQ1xhj\nTESyAmWMMSYiWYEyxhgTkaxAGWOMiUhWoIwxxkQkK1DGGGMikhUoY4wxEckKlDHGmIj0/wGM2Afd\nuNkyLgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "dist = sps.norm(loc=0, scale=1)\n", "print(type(dist))\n", @@ -119,31 +92,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -3.24126734007 and 3.85273149065 using samples\n", - "Plotted samples\n" - ] - }, - { - "data": { - "image/png": "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\nwoUL6dChA927d+fdd98t8f8xKiqKHj16FAwbVVhCQgL33Xcfzz33XIn7KReqWqYvIALo6vuKLOv2\nrr569OihxhT2wGcPaKsnWumjSx91HaXcJCcnn/C41ROtSvyavmj6Ce2LPi78dToej0dXbV2l7Tu1\n1zZt2ujEiRN16dKlBev37dtX8P24ceN0/vz5qqo6aNAgvfvuu1VV9ZlnntFGjRrp7t279fjx49qk\nSRNNT0/Xbdu2KaBfffWVqqredNNN+sQTTxRsv2rVKk1LS9MBAwbokSNHVFX10Ucf1QceeEDT09O1\nXbt26vF4VFX1wIEDJ2V/5ZVXdNKkSaqqesMNN+hVV12leXl5um7dOm3durWqqi5ZskQvv/zygm1e\nfPFFfeihh1RV9fjx49qjRw/dunWrLlmyRGvUqKFbt25VVT1l9mPHjmlcXJympKSoqup1112nTz/9\n9AmvqfD7lpubq4MGDdIffvhBVVWbN2+uaWlpqqqnfO35z7Fx40b1eDw6evToE15DvsKvLT09XZs3\nb64//fTTSa9ZVfX777/XDh06qKrq/fffr40bN9auXbtq165ddeHChSftu+hnUlUV71myEn9vl6kX\nn4hcjLd793e+r30i8pKINCjPomlMRVNVlm5dCsDQdnYLXXkQERrWbcicRXN47NnHiI2N5eqrr+bV\nV18FYMmSJfTu3ZvOnTvz+eefs27duoJti5tyIyIiomDKDeCkKTe++uqrE56/8JQbCQkJvPbaa/z8\n888nTLnx7rvvluqU2BVXXEFISAjx8fH8+uuvxbb55JNPeP3110lISKB3797s27evYKDcXr160bLl\nf/uXFZc9JSWFli1b0q6d9+j9hhtu4MsvvzzpeebOnUv37t3p1q0b69atIzk5+aQ2p3rtGzZsoGXL\nlrRt2xYRYdy4cad8zcuWLaNbt25ccsklTJs2jU6dOhXbTosMj3f77bezZs0a1qxZw5Ah5XuqvKwn\nR58DvsB7w+5hoD/we+A7ERmgxUzDYUwgEhE+vP5Dlm1fRpeGXVzHqTBlHV+vaPuybl8rohYHjh2g\nS68ujLp0FJ07d+a1115jzJgx/Pa3vw2aKTcKZyj6C7nw8r/97W8n/VJeunQpUVEnjohfUvZT2bZt\nG08++SSrVq2iTp063HjjjSe8b4WzFPfa16xZU6rngROvNZ3O999/f0bjPZ6Jst4H1QyYrt7RH9JV\n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\nQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "np.random.seed(42)\n", "\n", @@ -163,61 +116,12 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Calculating 10 quantiles: [ 0.09090909 0.18181818 0.27272727 0.36363636 0.45454545 0.54545455\n", - " 0.63636364 0.72727273 0.81818182 0.90909091]\n", - "Resulting 10 quantiles: (array([ 0.09090909, 0.18181818, 0.27272727, 0.36363636, 0.45454545,\n", - " 0.54545455, 0.63636364, 0.72727273, 0.81818182, 0.90909091]), array([-1.33517774, -0.90845787, -0.60458535, -0.3487557 , -0.11418529,\n", - " 0.11418529, 0.3487557 , 0.60458535, 0.90845787, 1.33517774]))\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -1.33517773612 and 1.33517773612 using quantiles\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -5.0 and 5.0 using quantiles\n", - "Plotted quantiles.\n" - ] - }, - { - "data": { - "image/png": "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\nPQWV3H/y1qP+vH/nd4Pgxp5vyJw5c0hLS+OHP/whAG63mz/96U88//zzlJSUHPUJ/oILLmDu3LkA\n3HDDDQwfPpz+/ftz/yN3Vcf06tWLO+64g6FDhzJgwADWrFnDt99+yxNPPMGf/vQnzr50BJ9++il3\n3nlnraOgpUuXcvG1ZzNs2DDGjx/Pzp076/0exowZwy233MLIkSPp06cPn376KZ5KD7fffjuvvfYa\ngwcP5rXXXuPw4cNcd911jBw5kiFDhvDvOf4r58899xwTJ07krLPOYty4ccydO5czzzyT888/n9Mv\nOJnrr78en8+fEF955RUGDBjAySefzC233FJrfy666CKGDRtG//79mTlzJgAzZsygrKyMwYMHc9VV\nVwHw4osvMnLkSAYPHswvf/vfVFX5s8Rf//pX+vTpw8iRI/nss88a/Dfs3LkzJ5xwAps3bz7q3Nix\nY5k6dWp1P2pyBe55WoJKLJagTMz4qvwjJycmSKxcuZJhw4YdcaxNmzb06tWLgoKCetvefffdLFmy\nhBUrVvDFkk9ZsWJF9blOnTqxbNkybrjhBh544AF69erF9ddfz//+7//y0ZuLOeOMM2p9zsrKSv7n\nf/6Hpx58haVLl3Lddddx2223Nfh9eL1eFi1axJ///Gd++9vfkpKcwl133VU9ypg8eTJ33303Z511\nFosWLeKTTz7hd/93K4cPHwZg2bJlzJo1i3nz5gGwaNEiHn74Yea98xUbNmzgrbfeYseOHdxyyy3M\nmTOH/Px8Fi9ezN///vej+vLss8+ydOlSlixZwkMPPcTevXu59957SU9PJz8/n5deeonVq1fz2muv\n8dlnn5Gfn4/b5eall15i586d3HHHHXz22WcsWLCAVatWNfi9b9y4kY0bN3LiiSfWen7o0KGsWbOm\n+vEvf/nL6kt8a79dSccTksg+1vYgSyS23YaJmeANapdb+OU3PeqNber5aHr99deZOXMmXq+X7dt2\nsmrVKgYOHAjAJZdcAsCwYcN46623wn7OtWvX8s033zDlJ98nKU2oqqqiS5cuDbYLfb1vv/221pgP\nPviA2bNnV4/ayisq2LJlCwDnnHMOHTp0qI4dOXIkxx9/PLtWerjiiitYsGABycnJjBkzhmBpxlVX\nXcX8+fO56KKLjnidhx56iLfffhuArVu3sn79ejp27HhEzMcff8zSpUsZMWIEACUHS+l1UhcWLlx4\n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\nytEAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "quantiles = P.quantize(N=10)\n", "Q = qp.PDF(quantiles=quantiles, limits=demo_limits)\n", @@ -235,37 +139,11 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Calculating histogram: [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]\n", - "Result: (array([-5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5.]), array([ 3.13846083e-05, 1.31822755e-03, 2.14002462e-02,\n", - " 1.35905200e-01, 3.41344942e-01, 3.41344942e-01,\n", - " 1.35905200e-01, 2.14002462e-02, 1.31822755e-03,\n", - " 3.13846083e-05]))\n", - "Created a piecewise constant interpolator for the histogram parametrization.\n", - "interpolating between -5.0 and 5.0 using histogram\n", - "Plotted histogram.\n", - "None\n" - ] - }, - { - "data": { - "image/png": "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\ne5gkwdOtA6gAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "histogram = P.histogramize(N=10, binrange=demo_limits)\n", "H = qp.PDF(histogram=histogram, limits=demo_limits)\n", @@ -286,32 +164,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between 0.314 and 0.314 using quantiles\n", - "(array([ 0.314]), array([ 0.37975203]))\n" - ] - } - ], + "outputs": [], "source": [ "print P.approximate(np.array([0.314]), using='quantiles')" ] @@ -325,32 +182,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between 0.0 and 1.0 using quantiles\n", - "0.341662845305\n" - ] - } - ], + "outputs": [], "source": [ "print P.integrate([0., 1.], using='quantiles')" ] @@ -364,32 +200,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -3.0 and 3.0 using quantiles\n" - ] - } - ], + "outputs": [], "source": [ "grid = np.linspace(-3., 3., 100)\n", "gridded = P.approximate(grid, using='quantiles')" @@ -404,34 +220,11 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "linear\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between 0.314 and 0.314 using quantiles\n", - "(array([ 0.314]), array([ 0.37975203]))\n", - "nearest\n" - ] - } - ], + "outputs": [], "source": [ "print P.scheme\n", "print P.approximate(np.array([0.314]), using='quantiles', scheme='nearest')\n", @@ -449,32 +242,11 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Plotted gridded.\n", - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -2.16209247146 and 1.90700529705 using samples\n", - "Plotted samples\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "grid = np.linspace(-3., 3., 20)\n", "gridded = P.evaluate(grid, using='truth', vb=False)\n", @@ -493,64 +265,34 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "None\n" - ] - } - ], + "outputs": [], "source": [ "print G.truth" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "samples approximation, linear interpolation\n" - ] - } - ], + "outputs": [], "source": [ "print G.last,'approximation, ', G.scheme, 'interpolation'" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Created a `linear` interpolator for the gridded parametrization.\n", - "interpolating between -3.5 and 3.5 using gridded\n", - "(array([-3.5 , -2.72222222, -1.94444444, -1.16666667, -0.38888889,\n", - " 0.38888889, 1.16666667, 1.94444444, 2.72222222, 3.5 ]), array([ 2.22044605e-16, 1.01276268e-02, 6.23293197e-02,\n", - " 2.03331828e-01, 3.67719426e-01, 3.67719426e-01,\n", - " 2.03331828e-01, 6.23293197e-02, 1.01276268e-02,\n", - " 2.22044605e-16]))\n" - ] - } - ], + "outputs": [], "source": [ "# 10-point grid for a coarse approximation:\n", "coarse_grid = np.linspace(-3.5, 3.5, 10)\n", @@ -569,35 +311,11 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "weights, means, stds = (array([ 0.27117763, 0.10166441, 0.28211746, 0.13060918, 0.21443132]), array([ 0.68162999, -1.58398141, -0.07572552, 1.50491781, -0.76975602]), array([ 0.3518439 , 0.56695242, 0.30258794, 0.56609536, 0.34376096]))\n", - "0.271177632455$\\cdot\\mathcal{N}($0.681629992864,0.351843902926)\\n0.101664411606$\\cdot\\mathcal{N}($-1.58398141195,0.566952416627)\\n0.282117456745$\\cdot\\mathcal{N}($-0.0757255185768,0.302587938283)\\n0.130609179256$\\cdot\\mathcal{N}($1.50491781334,0.566095357936)\\n0.214431319938$\\cdot\\mathcal{N}($-0.769756015258,0.343760957417)\\n\n", - "Plotted truth.\n", - "Plotted mixture model.\n", - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -3.01951215582 and 3.19310756784 using samples\n", - "Plotted samples\n" - ] - }, - { - "data": { - "image/png": "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\nAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "MM = qp.PDF(truth=dist, limits=demo_limits)\n", "MM.sample(1000, vb=False)\n", @@ -625,63 +343,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Plotted truth.\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -1.33517773612 and 1.33517773612 using quantiles\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -5.0 and 5.0 using quantiles\n", - "Plotted quantiles.\n", - "Created a piecewise constant interpolator for the histogram parametrization.\n", - "interpolating between -5.0 and 5.0 using histogram\n", - "Plotted histogram.\n", - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -3.24126734007 and 3.85273149065 using samples\n", - "Plotted samples\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "P.plot()" ] @@ -699,100 +366,12 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -1.0 and 1.0 using quantiles\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -2.0 and 2.0 using quantiles\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "evaluated quantile PDF: (array([ -1.12181780e+00, -7.56521608e-01, -4.76670521e-01,\n", - " -2.31470495e-01, -1.38777878e-16, 2.31470495e-01,\n", - " 4.76670521e-01, 7.56521608e-01, 1.12181780e+00]), array([ 0.21304162, 0.29916851, 0.3553501 , 0.38755568, 0.39807705,\n", - " 0.38755568, 0.3553501 , 0.29916851, 0.21304162]))\n", - "complete evaluated quantile PDF: (array([ -2.18861747e+00, -1.12181780e+00, -7.56521608e-01,\n", - " -4.76670521e-01, -2.31470495e-01, -1.38777878e-16,\n", - " 2.31470495e-01, 4.76670521e-01, 7.56521608e-01,\n", - " 1.12181780e+00, 2.18861747e+00]), array([ 2.22044605e-16, 2.13041618e-01, 2.99168514e-01,\n", - " 3.55350095e-01, 3.87555678e-01, 3.98077053e-01,\n", - " 3.87555678e-01, 3.55350095e-01, 2.99168514e-01,\n", - " 2.13041618e-01, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -3.0 and 3.0 using quantiles\n", - "almost normalized integrals\n", - "Quantile approximation: KLD over 1,2,3 sigma ranges = 5.72728575949e-07 0.00104477047064 0.823602377965\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Created a piecewise constant interpolator for the histogram parametrization.\n", - "interpolating between -1.0 and 1.0 using histogram\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Created a piecewise constant interpolator for the histogram parametrization.\n", - "interpolating between -2.0 and 2.0 using histogram\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Created a piecewise constant interpolator for the histogram parametrization.\n", - "interpolating between -3.0 and 3.0 using histogram\n", - "almost normalized integrals\n", - "Histogram approximation: KLD over 1,2,3 sigma ranges = 0.0126476532244 0.0316792675565 0.039069809229\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -1.0 and 1.0 using samples\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -2.0 and 2.0 using samples\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -3.0 and 3.0 using samples\n", - "almost normalized integrals\n", - "Sampled approximation: KLD over 1,2,3 sigma ranges = 0.000488367018414 0.000868735970797 0.00164264584551\n" - ] - } - ], + "outputs": [], "source": [ "qD1 = qp.utils.calculate_kl_divergence(P, Q, limits=(-1.,1.), vb=True)\n", "qD2 = qp.utils.calculate_kl_divergence(P, Q, limits=(-2.,2.), vb=True)\n", @@ -826,22 +405,12 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Quantile approximation: RMSE over 1,2,3 sigma ranges = 8.76696935119e-06 0.00735593470055 0.0156579107283\n", - "Histogram approximation: RMSE over 1,2,3 sigma ranges = 0.0488819635353 0.0519114190368 0.0432314864067\n", - "Sampled approximation: RMSE over 1,2,3 sigma ranges = 0.00935357803579 0.00914820587188 0.00789788533054\n" - ] - } - ], + "outputs": [], "source": [ "qRMSE1 = qp.utils.calculate_rmse(P, Q, limits=(-1.,1.), vb=False)\n", "qRMSE2 = qp.utils.calculate_rmse(P, Q, limits=(-2.,2.), vb=False)\n", @@ -876,23 +445,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "moments: [0, 1, 2]\n", - "truth: [0.99999942657298901, -7.4335975666335382e-08, 0.9999845566522696]\n", - "quantiles: [0.99931086997490981, -4.495750993704917e-14, 0.9229360084972551]\n", - "histogram: [0.99999968615391743, 0.0049984307694804723, 1.1666587530881889]\n", - "samples: [0.99999999829380781, 0.01933204721606448, 1.0187788937770361]\n" - ] - } - ], + "outputs": [], "source": [ "pdfs = [P, Q, H, S]\n", "which_moments = range(3)\n", @@ -935,29 +492,11 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Plotted truth.\n" - ] - }, - { - "data": { - "image/png": "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\nevXq0bRpUxo2bEh8fLzrck0hWUBFgdDmnxtvvBERcViNiZSkpCR+//vf89BDDwEwZswYRo4caX/f\nk8jKyuK/y12ZAAAV7klEQVTLL79k5syZzJw5k0WLFpGTk3sM6RMlJibSokUL+vTpQ//+/WnXrp0F\nVhSx86B8bsmSJbRq1QoINAtt3bqVc845x3FVJlIyMzOpV68eWVlZAHz66af06VNqBuY/JVVl9uzZ\nvPHGG0yYMCEiHUmqV6/OiBEjuOWWW2jatGkEqjSFkd/zoCygfO6mm27yupfbSZ2xafTo0Tz//PMA\nXHjhhcybN69U70UdOXKEt956izFjxrB69eqTrhMXF0fDhg2pX78+9evXp0aNGmRnZ3Ps2DGysrJY\nt24dq1at4ocffshzO7169eL222+nf//+pfr9diG/AYWqlopb27ZtNdrs3LlTk5KSFFBAv/76a9cl\nmWKwdetWLVu2rPd3/uCDD1yX5MShQ4f0pZde0vr163vvReitcePGescdd+jkyZN1z549+XrO3bt3\n6wcffKC//vWv9eyzzz7p83bo0EG/+uqrYn51JhSQofn43nYeHCV1i8aAeuqpp7z/RG3bttWcnBzX\nJZlictddd3l/66ZNm+rRo0ddl1RicnJydOLEiXruueeeEB4VK1bU3/zmNzp79uwif/6zs7M1PT1d\nBw0apHFxcSdsa8CAAbpq1aoIvSpzKhZQUR5QR44c0Tp16nj/ecaNG+e6JFOMdu3apZUqVfL+3q+9\n9prrkkrEihUr9JJLLjkhLKpXr65PP/207tu3r1i2u2nTJr399ts1MTExbLuJiYn6xBNP6OHDh4tl\nuybAAirKA2rChAnef5qzzjpLDx065LokU8wef/xx729ep04dPXjwoOuSis3hw4f14Ycf1jJlyoQF\nRNWqVXXMmDH6888/l0gdGzdu1GuvvVZFJKyOFi1a6Lx580qkhtLIAirKA6pLly7ef5aHH37YdTmm\nBOzfv1/POuss7+/+7LPPui6pWGRkZGiLFi3CAiEuLk5vueUW3bVrl5OaFi1apCkpKWE1xcfH6xNP\nPKHHjh1zUlMss4CK4oBasGCB95+kTJky+v3337suyZSQ559/PmxvYseOHa5LipgjR47ogw8+qPHx\n8WFB0KlTJ128eLHr8vTo0aP67LPParly5cLq6969u27bts11eTHFAiqKA2rIkCHef46rr77adTmm\nBB0+fDiss0Cs/P3Xrl2r7dq1C/viL1eunP7973/33R7K+vXrtXPnzmG1VqtWTT/99FPXpcUMC6go\nDahvv/027D/GkiVLXJdkSti0adPCPgPR/MWYk5Ojr7/+upYvXz7sNXXr1k3XrVvnurw8HT16VB96\n6KGwY1Miok899ZT1po0AC6goDahrrrnG+w8xcOBA1+UYR66++mrvc9CgQYMS6zQQSXv37tXhw4eH\nBVNCQoI+88wzmp2d7bq8fJk5c6bWqlUr7DVcccUVxda7sLSwgIrCgFq7dm3Y+RnWi6j02rFjh1at\nWtX7LNx9992uSyqQjIwMPe+888K+2Js0aaILFy50XVqBbd++Xbt27Rr2Wpo3b64bNmxwXVrUym9A\n2eU2fOSvf/2rNwBm7969adeuneOKjCtnnXUWzz77rDf/3HPPMX/+fIcV5Y+q8o9//IOOHTuyfv16\nb/mNN97IwoULadOmjcPqCqdmzZpMnz6d3//+996y5cuX0759e+bMmeOwslIgPykWCze/70Ft2bJF\nExISvF9oX375peuSjGM5OTl68cUXe5+JunXr6s6dO12XlafMzEwdOHDgCSNBvP32265Li5g333wz\n7OTesmXL6jvvvOO6rKiDNfFFV0Ddeuut3oe+S5curssxPrF+/XqtUqWK99no3bu373q9qarOmjVL\n69atGxZObdq00bVr17ouLeL+97//abVq1cJe6xNPPGGdJwrAAiqKAmrt2rVhZ9RHc68tE3kff/xx\n2Jfhgw8+6Lokz9GjR/XRRx894dym22+/PaZHP1m3bp02bdo07DX/5je/KVVjKBZFVAQU0AdYDawD\n7jvJ/WWBd4P3zwMaBJc3AA4Ci4O3l063LT8H1NChQ70P+UUXXWS/xMwJHnzwwbAvw0mTJrkuSTds\n2KCdOnU6YaiiiRMnui6tROzevVu7d+8e9vr79eun+/fvd12a7/k+oIB4YD1wLpAILAGSc61zy/Hw\nAYYD7+ovAfVtQbbn14CaPXt22Afceu6Zkzl27FjYoKpJSUmalpbmpJacnBx94403wga3Pf7javPm\nzU5qcuXw4cNhp4ZA4MoD27dvd12ar0VDQHUE0kLm7wfuz7VOGtAxOF0G2AVIrARUTk5O2BnrV111\nleuSjI/t3LlTGzRoEHaAvqRDavPmzdqnT5+wL+T4+Hh98sknfXlsrCTk5OTo/fffH/aenHvuuTF5\n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\n5JJL+PTTT8nJyXFYadFYQJ1GZmYmd911F40bN+aTTz7xljds2JAZM2bwxBNPEBdnb6MxpuSdddZZ\njB07lm+//Zbhw4eHjVaTnp5Ov379SE5OZuzYsWGX94gW9s2ah507d/LYY49x7rnn8txzz3mXywC4\n7bbbWLp0adhIxMYY40rTpk155513WLFiBSNHjgz70bx69Wpuu+02zjnnHK655hrS09PJzs52WG3+\n2QULc1m8eDH//Oc/efvtt8NCCaB9+/b87W9/o0uXLsVVpjHGFNmGDRt44YUXeO2119i3b98J959z\nzjkMHjyYIUOG0LVrVxISEkq0Pruibi6nCqgNGzbw7rvvkpqaytKlS0+4v0mTJjz11FMMHjzYBnw1\nxkSN/fv3M27cOF555ZWTfrcBVK1alV69etG7d2969+5NgwYNir0uC6hcQgPq4MGD/O9//+Ozzz4j\nPT09zz/chRdeyO23386wYcMoU6ZMSZZrjDERtXjxYsaNG8f48ePZuXNnnus1aNCATp060bFjRzp0\n6ECLFi0iPti1BVQuDRs21L59+zJ//nyWLl2a53VWkpKSGDx4MKNHj6Z9+/a2x2SMiSnZ2dnMmjWL\nDz/8kA8//JBt27adcv0yZcrQrFkzWrVqRXJyMk2aNKFJkyacd955hQ6uqAgoEekD/AOIB15V1b/k\nur8s8B+gLZAJDFPVTcH77gduBLKB0aqaximISJ4vNCEhgUsvvZThw4czcODAsHMLjDEmVqkq3377\nLenp6aSnp/Pll196I+OcTlxcHNdffz2vvfZagbeb34By1m4lIvHAWKA3sA1YICKTVXVFyGo3AntU\ntZGIDAf+CgwTkWRgONAcqAVMF5HGqprvrinNmjXz2ly7detmoWSMKXVEhBYtWtCiRQvuvPNOjh49\nypIlS5g9ezZff/01CxcuZP369Sd9bE5ODpUqVSrW+lweWGkHrFPVDQAikgoMAkIDahDwaHD6feAF\nCbS5DQJSVfUwsFFE1gWfb05eG6tcuTJ333037dq1IyUlhapVq0b8BRljTDRLSEggJSWFlJQURo8e\nDcC+fftYunQpS5cuZdWqVaxevZrVq1ezZcuWYh89x2VA1Qa2hsxvA9rntY6qHhORvUC14PK5uR5b\nO/cGRORm4GaAevXq8cADD0SseGOMKQ0qVapEly5dTji9Jisrq9gHqI3pE3VV9WVVTVHVlBo1argu\nxxhjYsYZZ5xB+fLli3UbLgPqO6BuyHyd4LKTriMiZYDKBDpL5OexxhhjopjLgFoAnC8iDUUkkUCn\nh8m51pkMjApODwU+18A+5WRguIiUFZGGwPnA/BKq2xhjTAlwdgwqeEzpNiCNQDfz11V1uYg8BmSo\n6mTgNeCtYCeI3QRCjOB6Ewh0qDgG3FqQHnzGGGP8r9ScqJvfsfiMMcYUr/yeBxXTnSSMMcZELwso\nY4wxvmQBZYwxxpdKzTEoEdkJbHZdRy7VgV2ui/Ape2/yZu9N3uy9yZuf3pv6qnrak1NLTUD5kYhk\n5OdAYWlk703e7L3Jm703eYvG98aa+IwxxviSBZQxxhhfsoBy62XXBfiYvTd5s/cmb/be5C3q3hs7\nBmWMMcaXbA/KGGOML1lAGWOM8SULKJ8QkbtEREWkuuta/EBExojIKhFZKiIfiUgV1zW5JiJ9RGS1\niKwTkftc1+MXIlJXRGaKyAoRWS4it7uuyW9EJF5EvhGRT1zXUhAWUD4gInWBS4AtrmvxkXTgV6ra\nElgD3O+4HqdEJB4YC/QFkoERIpLstirfOAbcparJQAfgVntvTnA7sNJ1EQVlAeUP/wfcA1iPlSBV\n/UxVjwVn5xK4KGVp1g5Yp6obVPUIkAoMclyTL6jqD6q6KDi9n8AXcW23VfmHiNQB+gOvuq6loCyg\nHBORQcB3qrrEdS0+9mvgU9dFOFYb2Boyvw37Ej6BiDQAWgPz3FbiK38n8AM4x3UhBeXsgoWliYhM\nB84+yV0PAH8i0LxX6pzqfVHVScF1HiDQhDO+JGsz0UdEKgAfAHeo6j7X9fiBiAwAflTVhSJyset6\nCsoCqgSoaq+TLReRFkBDYImIQKAZa5GItFPV7SVYohN5vS/Hicj1wACgp9oJe98BdUPm6wSXGUBE\nEgiE03hV/dB1PT7SGRgoIv2AJKCSiPxXVUc6ritf7ERdHxGRTUCKqvplxGFnRKQP8BzQTVV3uq7H\nNREpQ6CzSE8CwbQAuFpVlzstzAck8OtuHLBbVe9wXY9fBfeg/qiqA1zXkl92DMr41QtARSBdRBaL\nyEuuC3Ip2GHkNiCNQCeACRZOns7AtUCP4GdlcXCPwUQ524MyxhjjS7YHZYwxxpcsoIwxxviSBZQx\nxhhfsoAyxhjjSxZQxhhjfMkCyhhjjC9ZQBljjPElCyhjjDG+ZAFljM+JyD3Bi1nmvj3mujZjipON\nJGGMz4lIRaB8yKI/AtcAF6nqOjdVGVP8LKCMiSIici8wGuihqqtd12NMcbLLbRgTJUTkfuBWoLuq\nrnFdjzHFzQLKmCggIg8CvwUutmY9U1pYQBnjcyLyMHATgWtjrXddjzElxQLKGB8L7jmNBgYCB0Tk\n7OBdP6nqIXeVGVP8rJOEMT4VvFLsT0Clk9zdS1VnlHBJxpQoCyhjjDG+ZCfqGmOM8SULKGOMMb5k\nAWWMMcaXLKCMMcb4kgWUMcYYX7KAMsYY40sWUMYYY3zJAsoYY4wv/X+GxZ5XvUvA4AAAAABJRU5E\nrkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "component_1 = {}\n", "component_1['function'] = sps.norm(loc=-2., scale=1.)\n", @@ -983,70 +522,11 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Plotted truth.\n", - "evaluated quantile PDF: (array([-3.37678933, -3.05088205, -2.81665882, -2.62185957, -2.44868659,\n", - " -2.28827364, -2.13508458, -1.98505957, -1.83470064, -1.68045643,\n", - " -1.51808391, -1.34164958, -1.14140787, -0.89790598, -0.55899915,\n", - " 0.08643063, 0.96385277, 1.64354229, 2.70782468]), array([ 0.12154769, 0.18312058, 0.22849345, 0.2628069 , 0.28833481,\n", - " 0.30588958, 0.31597703, 0.31885079, 0.31458291, 0.30308131,\n", - " 0.28407468, 0.25706671, 0.2212335 , 0.17522438, 0.11727291,\n", - " 0.05381861, 0.05473215, 0.09731259, 0.02904975]))\n", - "complete evaluated quantile PDF: (array([-4.35622065, -3.37678933, -3.05088205, -2.81665882, -2.62185957,\n", - " -2.44868659, -2.28827364, -2.13508458, -1.98505957, -1.83470064,\n", - " -1.68045643, -1.51808391, -1.34164958, -1.14140787, -0.89790598,\n", - " -0.55899915, 0.08643063, 0.96385277, 1.64354229, 2.70782468,\n", - " 6.805884 ]), array([ 2.22044605e-16, 1.21547694e-01, 1.83120581e-01,\n", - " 2.28493451e-01, 2.62806902e-01, 2.88334809e-01,\n", - " 3.05889584e-01, 3.15977031e-01, 3.18850786e-01,\n", - " 3.14582914e-01, 3.03081311e-01, 2.84074680e-01,\n", - " 2.57066712e-01, 2.21233504e-01, 1.75224382e-01,\n", - " 1.17272913e-01, 5.38186122e-02, 5.47321478e-02,\n", - " 9.73125942e-02, 2.90497550e-02, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -3.57267559149 and 3.52743654764 using quantiles\n", - "evaluated quantile PDF: (array([-3.37678933, -3.05088205, -2.81665882, -2.62185957, -2.44868659,\n", - " -2.28827364, -2.13508458, -1.98505957, -1.83470064, -1.68045643,\n", - " -1.51808391, -1.34164958, -1.14140787, -0.89790598, -0.55899915,\n", - " 0.08643063, 0.96385277, 1.64354229, 2.70782468]), array([ 0.12154769, 0.18312058, 0.22849345, 0.2628069 , 0.28833481,\n", - " 0.30588958, 0.31597703, 0.31885079, 0.31458291, 0.30308131,\n", - " 0.28407468, 0.25706671, 0.2212335 , 0.17522438, 0.11727291,\n", - " 0.05381861, 0.05473215, 0.09731259, 0.02904975]))\n", - "complete evaluated quantile PDF: (array([-4.35622065, -3.37678933, -3.05088205, -2.81665882, -2.62185957,\n", - " -2.44868659, -2.28827364, -2.13508458, -1.98505957, -1.83470064,\n", - " -1.68045643, -1.51808391, -1.34164958, -1.14140787, -0.89790598,\n", - " -0.55899915, 0.08643063, 0.96385277, 1.64354229, 2.70782468,\n", - " 6.805884 ]), array([ 2.22044605e-16, 1.21547694e-01, 1.83120581e-01,\n", - " 2.28493451e-01, 2.62806902e-01, 2.88334809e-01,\n", - " 3.05889584e-01, 3.15977031e-01, 3.18850786e-01,\n", - " 3.14582914e-01, 3.03081311e-01, 2.84074680e-01,\n", - " 2.57066712e-01, 2.21233504e-01, 1.75224382e-01,\n", - " 1.17272913e-01, 5.38186122e-02, 5.47321478e-02,\n", - " 9.73125942e-02, 2.90497550e-02, 2.22044605e-16]))\n", - "Created a k=`5`B-spline interpolator for the quantiles parametrization.\n", - "interpolating between -5.18108347809 and 6.43371375339e+14 using quantiles\n", - "Plotted quantiles.\n" - ] - }, - { - "data": { - "image/png": "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\nYdiwYUydOpWysjJ69+7NQw89xNatW/nud7/L/PnzKS0tZf78+bz33ntceOGFlJWVMWDAAO655x4g\nd9dx9tlnc/rpp3PGGWewZMkSTjvtND7zmc/Qp08fJk2axI4dOwC44447OOGEEzj++OOZOnVqvfWM\nGTOGQYMG0a9fP+bOnQvAtGnT2LJlC6WlpUyYMAGAX/7yl5SVlVFaWsp//Md/sH177t/sP/vZz+jd\nuzdlZWU88sgje/1veNRRR3Hcccfx4osvfmjb8OHDmThxYm0dTS3znSTMrOVYuXIlgwYNqrPu0EMP\npaioiKqqqj3uO3PmTMrLy1mxYgVLly5lxYoVtduOPPJInnzySS6++GJmz55NUVERkyZN4utf/zqV\nlZV88pOfrPeY27Zt4ytf+QoLFy6koqKCCy+8sEGz6NbU1LBs2TJ+9KMf8b3vfY+OHTsyY8aM2ruM\nsWPHMnPmTE4//XSWLVvGAw88wGWXXcZ7770H5CZKXLhwIUuXLgVg2bJl/PjHP2bVqlU899xz3H33\n3bzyyitMnTqV+++/n8rKSpYvX17v4Le33norFRUVlJeXc/3117Np0yauueYaDjzwQCorK7n99ttZ\nvXo18+fP55FHHqGyspL27dtz++23s3HjRq666ioeeeQRHn74YVatWrXXa1+/fj3r16/nYx/7WL3b\nd52+5LLLLqt9xPf000/v9fiN4dHMzVqxy545pkm3F9KCBQuYO3cuNTU1bNy4kVWrVtG/f38Azjnn\nHAAGDRrE3Xff3eBjrl27lmeeeYYRI0YAsH37do4++ui97pd/vhdeeKHeNn/6059YvHhx7V3b+++/\nz0svvQTAiBEjOOKII2rblpWVceyxxwIwfvx4Hn74YTp06MCwYcPo3r07ABMmTODBBx9kzJgxdc5z\n/fXX1w6mu2HDBtatW0e3bt3qtPnLX/5CRUUFJ510EgBbtmzhqKOO4oknnqhzjrFjx/Lss8/Wez3z\n58/n4YcfplOnTtx888116s+363Bxs2bN4txzz6237f5yQJlZwZSUlHyoc8K7777L3/72N/r06cMz\nzzxT+3gL/neajeeff57Zs2ezfPlyunbtygUXXFBnCo5OnToBuUeGjXmvExH069ePxx57rFHX0ZDz\nRQR33XUXffr0qbP+iSeeqDO1CPChWYgbOivxkiVLuO+++3jsscc46KCDGDZsWJ3fl/xazj//fH74\n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\nM40wA1tlALQAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "Cq = qp.PDF(truth=C_dist, limits = composite_lims)\n", "Cq.quantize(N=20, limits=composite_lims, vb=False)\n", @@ -1062,39 +542,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Calculating histogram: [-5. -4.5 -4. -3.5 -3. -2.5 -2. -1.5 -1. -0.5 0. 0.5 1. 1.5 2.\n", - " 2.5 3. 3.5 4. 4.5 5. ]\n", - "Result: (array([-5. , -4.5, -4. , -3.5, -3. , -2.5, -2. , -1.5, -1. , -0.5, 0. ,\n", - " 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ]), array([ 0.00778614, 0.02650052, 0.0705866 , 0.14715564, 0.24013706,\n", - " 0.30676535, 0.30683452, 0.24058333, 0.14910206, 0.07721173,\n", - " 0.04414717, 0.04457502, 0.061824 , 0.07701047, 0.07673381,\n", - " 0.06003894, 0.03678931, 0.01764668, 0.00662513, 0.00194653]))\n", - "Plotted truth.\n", - "Created a piecewise constant interpolator for the histogram parametrization.\n", - "interpolating between -5.0 and 5.0 using histogram\n", - "Plotted histogram.\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "Ch = qp.PDF(truth=C_dist, limits = composite_lims)\n", "Ch.histogramize(N=20, binrange=composite_lims, vb=True)\n", @@ -1110,32 +562,11 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Plotted truth.\n", - "Created a KDE interpolator for the samples parametrization.\n", - "interpolating between -3.38245992495 and 3.17142634776 using samples\n", - "Plotted samples\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4FFXbwOHfSYcQQu8QCD2BkIRQpQskBKVILwqCIPIh\nvthebOiLoCiKCCICigKidKRKqEE6CS1A6IQqUhJqQuqe748N4y4kpOwmk03OfV17sTM7c+bZkOyz\nc+bMc4SUEkVRFEXJa+z0DkBRFEVR0qISlKIoipInqQSlKIqi5EkqQSmKoih5kkpQiqIoSp6kEpSi\nKIqSJ6kEpSiKouRJKkEpiqIoeZJKUIqiKEqe5KB3ALmlVKlSsmrVqnqHoSiKUuAdOHDglpSydEbb\nFZgEVbVqVcLDw/UOQ1EUpcATQlzMzHaqi09RFEXJk1SCUhRFUfIklaAURVGUPKnAXINSlIIgKSmJ\nK1euEB8fr3coioKLiwuVKlXC0dExW/urBKUo+ciVK1dwc3OjatWqCCH0DkcpwKSUREdHc+XKFapV\nq5atNlQXn6LkI/Hx8ZQsWVIlJ0V3QghKlixp0dm8SlBKnnLt2jUiIiJ4+PCh3qHYLJWclLzC0t9F\nlaAU3cXHx/P777/Tvn17KlSoQIMGDShSpAh169alb9++bN68We8QFUXRgUpQiq7mz59PhQoV6N+/\nP1u2bNHWGwwGTp48yeLFi+nQoQNvvfUWiYmJOkaqZEZ0dDS+vr74+vpSrlw5KlasqC1b8/9v8+bN\nuLu74+vrS926dZk4caLZej8/P2rVqkXr1q1Zv369tt+HH35oFtMHH3xgtZgU61ODJBTdTJkyhbfe\nestsnZ2dHVWqVOHixYtIKc223bFjB4sWLcLT0zO3Q1UyqWTJkhw+fBiATz75hCJFivD222+bbSOl\nREqJnZ1l34/btm3LH3/8wYMHD/Dx8eG5554zWw9w8OBBunfvzvz582ndujUA77zzDv/5z38sOraS\nO9QZlJLrpJSMGzfOLDlVqVKFTz/9lIsXLxIVFcX9+/fZu3cvnTt31rYJCwvDz8+PsLAwPcK2OUKI\nHHtk1dmzZ/Hy8mLAgAF4e3tz+fJlihUrpr2+aNEiXnnlFQCuX7/OCy+8QEBAAI0bN2bv3r1PbbtI\nkSL4+/tz7ty5J17z9/fngw8+4LvvvstyzIr+VIJScpWUkjFjxvDpp59q61q2bElERAQffvghlSpV\nAsDV1ZUmTZqwZs0apkyZot1Hce/ePXr06MHNmzd1iV/JvpMnTzJmzBgiIyOpWLFiutuNHj2ad999\nl/DwcJYsWaIlrvTcvHmT/fv34+3tnebr/v7+nDx5UluePHmy1sWnrm/mbaqLT8lVP//8M99++622\n3KlTJ5YtW0bhwoXT3F4IwZgxY2jZsiUdOnTgzp07XL58mb59+xISEoKDg/oVthXVq1cnICAgw+02\nb97MqVOntOXbt2/z8OFDChUqZLbdtm3b8PPzw87Ojo8++ojatWtz+fLlJ9oz7SoG1cVnS9Rft5Jr\nLl68aPbB0KNHD3777TecnJwy3DcgIIBff/1Vu86wdetWPvjgA7744osci9fWPf7BrDdXV1ftuZ2d\nnVl8pvfKSCnZv39/hr8XpteanubQoUPUrVs3GxErelNdfEquMBgMDBkyhPv37wNQs2ZN5s+fn6nk\n9Ejnzp35+OOPteUvv/yS5cuXWz1WJefZ2dlRvHhxzpw5g8FgYOXKldpr7du3Z8aMGdryo0EX2XH4\n8GE+++wz/u///s+ieBV9qASl5IoZM2awdetWwPjhNH/+/HS79Z5m3LhxBAcHa8uvvvoqd+7csVqc\nSu754osvCAwMpHnz5tq1RzD+ruzatQsfHx+8vLyYM2dOltp91PVXu3ZtRo8ezffff6+N4FNszKMh\nn/n90bBhQ6no49SpU7JQoUISkIB87733LGovOjpaVq5cWWvv7bfftlKkti8yMjJb+03dOdXKkSiK\nUVq/k0C4zMTntq5nUEKIICHEKSHEWSHE2DReHyGEOCqEOCyE2CmE8DJ57b3U/U4JIQJzN3IlK0aP\nHq2VLvLx8THrpsuOEiVKMHnyZG152rRpaQ4xVjJv2p5peoegKE/QLUEJIeyBGUAnwAvoZ5qAUv0m\npawvpfQFvgSmpO7rBfQFvIEg4PvU9pQ8ZufOnYSEhADGrr158+bh7Oxscbu9e/emadOmACQmJjJ2\n7BPfbxRFsXF6nkE1Bs5KKc9LKROBRUBX0w2klPdMFl0xdumQut0iKWWClDIKOJvanpLHfPTRR9rz\ngQMH4uvra5V2hRB888032vKyZcvYuXOnVdpWFCVv0DNBVQRMb1q4krrOjBDi/4QQ5zCeQY3Oyr6K\nvrZu3UpoaCgA9vb2jBs3zqrtN23alH79+mnLb775JgaDwarHUBRFP3l+FJ+UcoaUsjrwX+DDrOwr\nhBguhAgXQoSrygO5S0ppdvb08ssvU716dasf5/PPP9e6DMPCwlixYoXVj6Eoij70TFBXgcomy5VS\n16VnEdAtK/tKKWdLKQOklAGlS5e2MFwlK0JCQti9ezcAjo6OfPhhlr5bZJqHhwdvvPGGtvz111/n\nyHEURcl9eiaoMKCmEKKaEMIJ46CH1aYbCCFqmix2Bs6kPl8N9BVCOAshqgE1gf25ELOSCTK1GOwj\nw4YNw8PDI8eON2bMGO2G371792qJUdHHxIkT8fb2xsfHB19fX/bt25djx2rTpg3h4eE51r6iL91K\nHUkpk4UQo4AQwB6YK6U8LoQYj3GM/GpglBCiPZAE3AYGpe57XAixBIgEkoH/k1Km6PJGlCeEhoZq\nFcednZ15//33c/R45cqVY8CAAfz888+A8SyqefPmOXpMJW179uxh7dq1HDx4EGdnZ27duqXm8VKy\nTddafFLK9cD6x9aNM3n+xhM7/fvaRGBizkWnZJdpmZqXX375qZWrreXNN9/UEtTKlSs5d+5cjlzz\nsiWfbv2UEzdOZHr7/ov6Z7hN3TJ1+ajdR+m+fu3aNUqVKqVdFyxVqhQA48ePZ82aNTx8+JDmzZsz\na9YshBC0adMGPz8/duzYQWxsLPPnz+fzzz/n6NGj9OnThwkTJnDhwgWCgoJo2LAhBw8exNvbO81K\nJBs3buTjjz8mISGB6tWr8/PPP1OkSBHGjh3L6tWrcXBwoGPHjnz11VeZ/pko+lLFYhWrunLlilkB\nz1GjRuXKcevVq0dgYCAhISFIKfn222+ZNk3dfHrl7hWu3n/apd1/7buScVdcfHL8U1/v2LEj48eP\np1atWrRv354+ffrQunVrRo0apXX7vvjii6xdu5bnn38eACcnJ8LDw/n222/p2rUrBw4coESJElSv\nXp0xY8YAcOrUKX766SeeeeYZhgwZwvfff282EeKtW7eYMGECmzdvxtXVlS+++IIpU6bwf//3f6xc\nuZKTJ08ihFBlsWyMSlCKVc2ePZuUFGNva5s2bdKdoycnvPnmm9pNwXPnzuV///sfxYsXz7Xj5zUf\ntfvoqWc7pqp/VZ1zb1tejaNIkSIcOHCAHTt2sG3bNvr06cOkSZNwc3Pjyy+/JC4ujpiYGLy9vbUE\n1aVLFwDq16+Pt7c35cuXB8DT01Ob2LBy5co888wzgPF+umnTppklqL179xIZGaltk5iYSLNmzXB3\nd8fFxYWhQ4fy3HPPadXwFdugEpRiNYmJicyePVtbzu0K0h06dKB+/focPXqU2NhYZs2apSpM6MDe\n3p42bdrQpk0b6tevz6xZs4iIiCA8PJzKlSvzySefmE2v8ag70M7OzqzKiJ2dHcnJyQBPzOL7+LKU\nkg4dOvD7778/Ec/+/fvZsmULy5Yt47vvvtOKFit5X56/D0qxHStWrOD69esAVKhQga5du2awh3UJ\nIXjzzTe15ZkzZ6obd3PZqVOnOHPmjLZ8+PBhateuDRivRz148IBly5Zlud1Lly6xZ88eAH777Tda\ntGhh9nrTpk3ZtWsXZ8+eBSA2NpbTp0/z4MED7t69S3BwMN988w1HjhzJ7ltTdKDOoBSr+e6777Tn\nI0aM0KZpz039+vXjrbfeIiYmhkuXLrF161bat2+f63EUVA8ePOD111/nzp07ODg4UKNGDWbPnk2x\nYsWoV68e5cqVo1GjRllut3bt2syYMYMhQ4bg5eXFa6+9ZvZ66dKl+eWXX+jXrx8JCQkATJgwATc3\nN7p27Up8fDxSSqZMmWKV96nkksyUPM8PDzXdRs46fPiwNv2Fo6OjvHbtmm6xjB49Woulf//+usWh\nh+xOt+E52dPKkVhPVFSU9Pb21jsMJZtsdroNJf+YNWuW9rxHjx6UK1dOt1hefvll7fmKFSvUyC1F\nsVEqQSkWS0xMZPHixdryiBEjdIwGfH198fPzAyA+Pp5FixbpGo9imapVq3Ls2DG9w1B0oK5BKRZb\nv349MTExgLE2XsuWLa3W9q3YW1y8c5Erd6+QmGKsSFDEqQgexT3wKOaBq5Nrmvu9/PLLHDp0CDAO\nOdc7aSqKknUqQSkWW7BggfZ84MCB2Nll/8TcIA2kGFJwtHdk/an1vL7m9XS3tRN2NCjXgP888x9a\nVDUf1dW/f3/efvttEhMTCQsL49ixY9SrVy/bcSmKkvtUF59ikdu3b7N27VpteeDAgdlu61z0Odr9\n2I6VkSsBCKgYQBGnItQvW5/g2sH0rNeTnvV60r56e2qWrIm9sOfQtUPY2xknU7505xLbo7YjpaRk\nyZJmw9wflUFS0ja62eiMN1KUXKbOoBSLLF26VCsGGhAQQJ06dbK0f1JKElfuXqFaiWpULlaZuKQ4\ntpzdQu/6vSlTpAyHXj+EnUj7e1RsYix7Lu2hYcWGAMw9MJcFhxaw6sVV1CtbjyFDhrB06VLAeJY3\nadIkXYa+24I3nkm37KWi6EadQSkWMe3ee/HFF7O0b+SNSLr92o3BywaTkJyAk70Ti/st5vuu32vb\npJecAFydXGlfoz1O9sapNjyLe9K7fm/qlTV25ZX0LknFSsZCtTdv3tTKICk5Kzen2wDrTLnxyy+/\nZFg38sKFC/z2228WHSezMvOepk6dSlxcXJbaDQ0NTbPcU2hoKO7u7vj6+lK3bl3+97//ma338/Oj\ndu3atGrVyqzH5JNPPqFixYr4+vri6+tr9cot6gxKybaoqCh27twJGMvb9O3bN1P7GaSB7/d+z/Q9\n00k2JFPFvQp/3/+basWrUa14tWzH85L/S9rz49eP8+LSFyk/sjzXJ18n+XYyixcvVrXYclh+nm7j\nUYLq3z/jqu+PJCcn4+CQMx+zU6dOZeDAgU9Udc+uli1bsnbtWmJjY/H19dVqJT5aD8bKIN26daNQ\noUI8++yzgHE+NtO6iNakzqCUbFu4cKH2PDAwkDJlymS4z734ewxfOZxvdn1DsiGZF/1eZN2gdRYl\nprTEJ8dTsnBJYhxjqPhGRZyrOrNq1SqzGnAFQfWvqmf4eH/j+2bbP75s+shIWtNtVKhQATBOudGo\nUSPq1avH8OHDMd6vaTxbGDNmDAEBAdStW5ewsDBeeOEFatasqc3EfOHCBerUqcOAAQOoW7cuPXv2\nTPPsYePGjTRr1gx/f3969erFgwcPABg7dixeXl74+Phk+GE6ePBgRo8eTfPmzfH09NRKM40dO5Yd\nO3bg6+vLN998Q0pKCu+88w6NGjXCx8dHuxcwNDSUli1b0qVLF7y8vJ4a+5YtW/Dz86N+/foMGTJE\nq4Jh6rXXXiMgIABvb28+/vhjAKZNm8bff/9N27Ztadu27VPf+4YNG6hTpw7+/v6sWLEiw/9DV1dX\nGjZsqJWNMuXr68u4cePMqsbkJJWglGyRUvLrr79qy5np3ou6HUX3hd3Zdn4b7i7u/NzjZz559hMK\nO1nnG6CphhUbsm7QOlpXa429qz3lh5fH4Gngzz//tPqxlH917NiRy5cvU6tWLUaOHMn27du110aN\nGqWNqHz48KFZV9GjKTdGjBhB165dmTFjBseOHeOXX34hOjoaMNb5GzlyJCdOnKBo0aJ8//33Zsc2\nnXLj4MGDBAQEMGXKFKKjo1m5ciXHjx8nIiJCS3pPc+3aNXbu3MnatWu1bqtJkybRsmVLDh8+zJgx\nY/jpp59wd3cnLCyMsLAw5syZQ1RUFAAHDx7k22+/5fTp0+nGHh8fz+DBg1m8eDFHjx4lOTmZmTNn\nPhHLxIkTCQ8PJyIigu3btxMREcHo0aOpUKEC27ZtY9u2bem+9/j4eIYNG8aaNWs4cOAA//zzT4bv\nPTo6mr1796Y7E4G/vz8nT57Ulr/55huti8/a3eiqi0/JloiICE6dOgUYp1h4NGVCeiJvRDJ42WCi\n46KpU7oOM7vOpEqxKjkaY7FCxZjdfTadP+vMWZezlOlfhu82f0f37t1z9Lh5SVan0Hh8+6zun950\nG4MHD2bbtm02M+VGt27dsLOzw8vLSyuA/LiNGzcSERGhnWHdvXuXM2fO4OTkROPGjalW7d9egbRi\n79ChA9WqVaNWrVoADBo0iBkzZvCf//zH7DhLlixh9uzZJCcnc+3aNSIjI/Hx8THbJr33fvLkSapV\nq0bNmjW1Y5vOOGBqx44d+Pn5YWdnx9ixY/H29iY0NPSJ7R6d+T6Sk118KkEp2WJakbpLly5P7Qf/\n+97f9FvUjweJD2jh0YLvu36f7g221uZg58CXz39J6zGtKRlckiiPKBYeWMiAhgNy5fgF0ePTbcyb\nN4++ffsycuRIm5lywzSGxz+QTddPnz6dwMBAs/WhoaG4upr/fmcUe3qioqL46quvCAsLo3jx4gwe\nPDjNbur03vvhw4czdRwwv9b0NIcOHaJu3bqZbtcSqotPyZbly5drz3v06PHUbcu7ladP/T4E1wpm\ndvfZuZacHvHx8aH8tfJEr4tG2Ak+3vYxq0+sztUYCoq0ptvw8PDQPlRtecoNNzc37t+/ry0HBgYy\nc+ZMkpKSADh9+jSxsbGZjr127dpcuHBBi3fBggW0bt3abL979+7h6uqKu7s7169fN+uiNo0nvfde\np04dLly4wLlzxjPhtJJ3VkRERPDpp5/m2lxv6gxKybLIyEhOnDgBQOHChQkKCkpzu5M3T+Jk74Rn\nCU/ea/MeBmnQbqrNTUII+vTpYxw6K6BkUEmSDcm5HkdB8LTpNoYNG2bTU274+Phgb29PgwYNGDx4\nMG+88QYXLlzA398fKSWlS5fmjz/+yHTsLi4u/Pzzz/Tq1Yvk5GQaNWr0REmuBg0a4OfnR506dcy6\nCQGGDx9OUFCQdi0qrfdeq1YtZs+eTefOnSlcuDAtW7Y0S7KZ8ajrLy4ujjJlyjBt2jRtBF+Oy0zJ\n8/zwUNNtWM/48eO16Sx69uyZ5jbxSfHymR+ekY1mNJLnY87ncoRPioyM1GJ2regq7927J6WUMjE5\nUefIrCu7023kdbY85YYtx24NaroNJVeZds/07NkzzW2cHZyZEjyFJpWbUMGtQm6Flq66detSv359\nAGKvxrJmzRrWn1rP8/Of5278XZ2jUxQlLaqLT8mSM2fOEBERAYCLiwvBwcFmryelJLHv8j5aVG1B\n48qNaVy5sR5hpqlPnz4cPXoUgMVLFiNSBIkpicTExeDu4q5zdMrT2PKUG7Ycu97UGZSSJaaDIwID\nA3FzczN7/cu/vmTQskH8FP5TboeWoV69emnPN23cxDeB37DqxVVUK2Hdm4T1JtMZdaYouc3S30Vd\nE5QQIkgIcUoIcVYI8UQRJyHEm0KISCFEhBBiixDCw+S1FCHE4dSHGpKVS57Wvbf+1HrmHpiLg50D\nDco3yO3QMlSrVi1teOzDhw+J2BOBm7MbCckJfLDxA/Zc2qNzhJZzcXEhOjpaJSlFd1JKoqOjcXFx\nyXYbunXxCSHsgRlAB+AKECaEWC2ljDTZ7BAQIKWME0K8BnwJ9El97aGU0jdXgy7gLly4wIEDBwBw\ndHQ0u+HxXPQ5xm4wfsd4r817BFQM0CXGjHTr1k0bgfjHH3/QtWtXlh1bxqKIRYSeD2XdoHUUK1RM\n5yizr1KlSly5coWbN2/qHYqi4OLiQqVKlbK9v57XoBoDZ6WU5wGEEIuAroCWoKSU20y23wtkf7Ih\nxWKmdbw6dOhAsWLGD/KE5AReX/M6sUmxdK7dmUF+g/QKMUPdunXj888/B2DNmjUkJyfTx6cPKyNX\ncujvQ3y06SOmPT8t0zdS5jWOjo5mFQwUxZbp2cVXEbhssnwldV16hgKmhdRchBDhQoi9Qohuae0g\nhBieuk24+kZpudWr/+1JNS0X9NWOrzh16xQexTz4LPCzPP3hHhAQoBUvjY6OZteuXTjYOTAleAqu\njq6sP71emzBRURR92cQgCSHEQCAAmGyy2kNKGQD0B6YKIZ4otSylnC2lDJBSBpQuXTqXos2fYmJi\ntKk1hBBaDbWdF3Yy98Bc7IU933T+hiJORfQMM0N2dnZ06/bv95lHN1ZWKVaFce3GATBh2wRuxqov\nNIqiNz0T1FWgsslypdR1ZoQQ7YEPgC5SSq0WvZTyauq/54FQwC8ngy3o/vzzT1JSUgBo0qQJZcuW\n5W78Xd7d8C4Ao5uPzpMDI9LyeIJ6NKCgR70etKrairvxd/lk8yc6RacoyiN6JqgwoKYQopoQwgno\nC5iNxhNC+AGzMCanGybriwshnFOflwKeweTalWJ9pt17jypPX757GSEE/hX8GdFkRHq75jmtW7fG\n3d1439OFCxe0+7qEEEzsOBFXR1c2nNnAhtMb9AxTUQo83RKUlDIZGAWEACeAJVLK40KI8UKIR3M3\nTAaKAEsfG05eFwgXQhwBtgGTHhv9p1hRYmKiWZHKR9179crWY8PgDXz73Lc42NnOPd9OTk507txZ\nWzatn1ahaAXebWU8K/xkyyfcT8ha3TJFUaxH12tQUsr1UspaUsrqUsqJqevGSSlXpz5vL6UsK6X0\nTX10SV2/W0pZX0rZIPXfvHdXaD6yfft2rcBktWrV8KjpwZywOSSmJOLm7EaFovqXMsqqtK5DPdLf\ntz/+Ffx5xuMZVVRWUXRkO197Fd083r23OGIxk7ZP4sSNE0zpnL3K0HoLCgrCycmJxMREDh8+zMWL\nF/HwMN4HbifsWNBrAS6O2b/BUFEUy9nEKD5FP1JK1qxZoy136dKFIQFDmNBhAkMDhuoYmWXc3NzM\npgxYt26d2euPktPJmycZv3W8qsygKDpQCUp5qqNHj3Lx4kUA3N3dqRdQDzthR78G/fAu661zdJYx\nrYSR1kyiiSmJDFk+hN+P/E7kDXWJU1Fym0pQylOZdu8FDAwgaH4QqyJX6RiR9ZgOlNi6desTs6E6\n2TvxVfBXhLwcYvPJWFFskUpQylM9SlDCRXDD80a+mjvJw8NDmyMqISGBLVu2PLFN8yrNqVKsCgBX\n7z5xm56iKDlIJSglXdevXycsLAyAEs+WINYQS8OKDelSt0sGe9qOjLr5wFhrcMjyIQT9EsT1B9dz\nKzRFKfBUglLStWGD8UZVhxIOuLc03tj6YZsP83Stvawy7eZbu3ZtmoMhnB2ccbR3JC4pjqm7puZm\neIpSoKkEpaTr0ci2Ep1LgD108+qGT3kfnaOyrqZNm1KiRAkArl27xqFDh9LcbmyrsdgLe5YdW8a5\n6HO5GaKiFFgqQSlpSkpKYuPGjThXdaaITxGc7Z15u+Xbeodldfb29mbT1qfXzVetRDV6+/TGIA18\nvfPr3ApPUQo0laCUNO3Zs4e7d+9SMrgkAMMaDaO8W3mdo8oZmbkOBfB6s9dxcXAh5EwIh68dzo3Q\nFKVAUwlKSdP69espXLcwLtVccExx5JVGr+gdUo4JDAzE3t4egLCwMP755580tytbpCyD/QcD8OVf\nX+ZWeIpSYKkEpaRp3bp1JN9PJj4qns7lOuPm7KZ3SDmmWLFitGzZUlt+vKqEqVcbv0pR56Lsu7yP\nPZf25EZ4ilJgqQSlPOHSpUscO3aMxCuJ3PrxFh+/8LHeIeU4026+9evXp7tdUZei2tnk1F1TVQkk\nRclBKkEpT1i7fi3FOxbH3s2eNm3aUNStqN4h5TjTgRKbNm0iMTEx3W0H+Q+isntlmlZuqqqdK0oO\nUtXMlScs3bOU4h2KU9irMJ08OukdTq6oU6cOVatW5cKFC9y/f5/du3fTpk2bNLct4lSEzUM329Qc\nWIpii9QZlGImPj6e/cv2c3XGVaLXRpvdyJqfCSHMzqKe1s0H4GDngJSSTWc3EX41PKfDU5QCSSUo\nxczW0K3ExcWRcCGByqIyNWvW1DukXJOVBAWw5OgSRvwxghl7ZuRkWIpSYKk+CkWTmJLI2MNjKfVC\nKaLXRtOpU8Ho3nukbdu2ODs7k5CQwPHjx80mMUzLc3We4078Hfo36J+LUSpKwaHOoBTNqshVxDrE\n4uLpgkySBS5BFS5cmLZt22rLf/7551O3d3Vy5dXGr+Lm7IZBGnI6PEUpcFSCUgBIMaQwfed0AO5s\nvYOLswutW7fWOarcl9VuPoCNZzYS/EswYVfCciosRSmQVIJSAFh3ah1XY6+SFJ3Eg8MPaNOmDYUK\nFdI7rFxneta4ZcsW4uPjM9wn8kYkZ6LPMGOvuhalKNakEpSCQRqYuW8mYDx7wkCB6957pEaNGtrA\nkLi4OP76668M9xnkP4jCjoXZcWEHx68fz+kQFaXAUAlKYeu5rZy+dZqUuyncP3AfKLgJCrLezVe8\nUHH6+vQF4If9P+RYXIpS0OiaoIQQQUKIU0KIs0KIsWm8/qYQIlIIESGE2CKE8DB5bZAQ4kzqY1Du\nRp6/zNo/C4DbobchBapXr16ghpc/LjvXoYYEDMHRzpENpzcQdTsqp0JTlAJFtwQlhLAHZgCdAC+g\nnxDC67HNDgEBUkofYBnwZeq+JYCPgSZAY+BjIUTx3Io9Pwm/Gs7Bvw/iaHDk/n7j2VNQUJDOUemr\nVatWFC5cGIAzZ85w9uzZDPcp71aebl7dMEgDc8Lm5HSIilIg6HkG1Rg4K6U8L6VMBBYBXU03kFJu\nk1LGpS7uBSqlPg8ENkkpY6SUt4FNQMH+VM2mg1cPIhDIoxKZaCx8WpC79wBcXFxo166dtpzRcPNH\nhjcejkBlihs8AAAgAElEQVSw8vhKbjy4kVPhKUqBoWeCqghcNlm+krouPUOBR58UWd1XScfwxsNZ\nELyAsyuMZwnOzs7p1qArSEyTdGYTlGcJTzrU7EBiSiLzD83PqdAUpcCwiUESQoiBQAAwOYv7DRdC\nhAshwm/evJkzwdmwmLgYAI7tOoYhznijaatWrXB1ddUzrDzBNEFt27aNhw8fZmq/YY2GAcaBJ2oq\nDkWxjJ4J6ipQ2WS5Uuo6M0KI9sAHQBcpZUJW9pVSzpZSBkgpA0qXLm21wPODW7G3aDG7BSP+GMH6\nP/8dCFDQu/ceqVatGnXq1AGMBXS3b9+eqf38K/gzp/sc/njxD4QQORmiouR7eiaoMKCmEKKaEMIJ\n6AusNt1ACOEHzMKYnEw79UOAjkKI4qmDIzqmrlMyKdmQTJc6XXC0c2TL5i3a+oI+QMKUabLO7Gg+\ngHbV2+Fk70RiSqKaL0pRLKBbgpJSJgOjMCaWE8ASKeVxIcR4IUSX1M0mA0WApUKIw0KI1an7xgCf\nYkxyYcD41HVKJpVzK8ekoEn0KNqD+/eNo/c8PDy0swbFfLh5Zq9DPbLi+ArazmnL+lOZT2yKopjT\ntZq5lHI9sP6xdeNMnrd/yr5zgbk5F13+tfvSboo4FsGnvA8hIf+eeHbq1El1S5lo2bIlrq6uxMbG\ncvbsWc6cOZPp+8MSUxJxdXLFxcElh6NUlPzLJgZJKNZjkAb+t/l/dF/Yne1R29mwYYP2mureM+fs\n7Jyt4eYAPev1ZMPLG+hYs2NOhKYoBYJKUAXMrou7OBtzlnJFyuHp5Mnhw4cBcHR0NPswVoyyM9wc\njDPu2gk74hLj2Hpua06Epij5nkpQBcwvB34BYKDfQLZs+ndwRIsWLXBzc9MpqrzLNEGFhoYSFxf3\nlK3NJSQn8OxPzzJ85XBV/khRskElqAIk6nYUoVGhONk70ad+H9W9lwlVq1albt26gHG4eWhoaKb3\ndXZwpo1nGyRS+2KgKErmqQRVgCw4tACArnW7UtSpKBs3btReU/c/pS+73XwALzd8GYDlx5ZzN/6u\nVeNSlPxOJagC4n7CfZYfWw4Y5y8KCwvj9u3bAFSsWJF69erpGV6e1rlzZ+35unXrslQholapWrTw\naMHD5IcsjlicE+EpSr6lElQBseL4Ch4kPqBJpSbULVPX7EwgKChIDS9/ihYtWlCkSBEAoqKiOHXq\nVJb2H9xwMADzD81XN+4qShaoBFUAGKRB6957yf8lAHX9KQucnJzo0KGDtpyVqhIArau1xrOEJ9fu\nX2PjmY0Z76AoCqASVIGQmJxIYM1AvMp40b5Ge27evEl4eDgA9vb2tG+f7v3QSqrHu/mywk7YMdh/\nMABzD6h7yxUls1SCKgBcHF14p9U7rH5xNQ52DmzcuFG7jtK0aVOKFSumc4R5n+lAiR07dnDv3r0s\n7d/dqzvuLu4c+vsQR64dsXZ4ipIvZTlBCSGcUwu8egkhVInwPO7a/WtsO7cNgzRo15lMu6hM680p\n6atQoQK+vr4AJCUlsWXLlgz2MFfYqTC96/emcaXGSNQ0HIqSGZlKUEIINyHEa0KIv4C7wFngGPCP\nEOKSEGKOEKJRTgaqZM+vh37llZWvMGHbBABSUlLMrj+pBJV5lnTzAbzd8m1+7/s7vuV9rRmWouRb\nGSYoIcSbwAVgCMap1bsCvkAtoBnwCcais5uEEBuEEJmrpqnkimGNhvF+m/fp7tUdgLCwMGJijIXf\ny5cvT4MGDfQMz6aYJvP169dneUJCBztjbeabsTfZc2mPVWNTlPwoM9XMmwKtpZTH0nl9PzBXCPEa\nxiTWGjhjpfgUCxUrVIyhAUO1ZdPuPVW9PGuaNGlCiRIliImJ4dq1axw5ckTr9susqJgoOv3SCTdn\nN3a+uhNnB+ccilZRbF+GZ1BSyt6PkpMQ4hMhRLV0touXUn4vpfzR2kEq2fPRpo9YdmwZCckJ2jrT\n+59U9Yissbe3NxuSn51uvqrFq/KS30t81+U7nOydrBmeouQ7WR0kMQ7YKYSoYboydeBEW+uFpVjq\n5M2T/HbkNz7d+ql2c+j169fNhpeb3tujZI5pN192EpQQgvfbvk+Tyk3U2auiZCA7w8x/A7YJIaqb\nrCsGbLZOSIo1LDy8EIDu3t1xdXIFMJuc8JlnnsHd3V2X2GxZUFAQdnbGP5u9e/dy8+bNbLUTFRPF\n/7b8j4N/H7RmeIqSr2Q1QUmM07B/hzFJmXb3qa+DecSDxAesilwFwIAGA7T1ani55UqWLEmzZs0A\nkFJmuXjsIysiVzD/0Hx+PvCzNcNTlHwlWzfqSim/AGYC24UQVR+ttlJMioVWR64mNimWxpUaU7OU\ncVBlcnLyE9O7K9nz/PPPa8/XrFmTrTYGNBiAvbAn5HQI1+5fs1ZoipKvZDVBaWdJUsrPgdlAKJDm\nwAkl90kp+e3IbwD09+2vrd+3bx937twBjNXL69evr0t8+YFpggoJCSExMTHLbZRzK0dQrSBSZIrW\nHasoirmsJqj/ArGPFqSUE4C5QPa+RipWd/jaYU7cPEGJQiXoWKOjtl4NL7eeunXr4unpCcD9+/fZ\nvn17ttoZ5D8IgEURi4hPirdafIqSX2QpQUkpJ0spYx9bNx74FrhvzcCU7Hl09tSzXk+ze2xMR5yp\n7j3LCCF47rnntOW1a9dmqx3/Cv54l/Xm9sPbrD2ZvTYUJT+zSrFYKeUEKaWqOKqzu/F3WXfKmIj6\nNuirrb98+TJHjhgLlDo6Oqrh5Vbw+HWorFaVAGOiG+RnPIuaf2h+ttpQlPwsM6WOMn19SRhVtiwk\nJbtcHFyY2GEiQwOG4lHMQ1tvevbUpk0b3Nzc9AgvX2nVqhVFixYFjJMYRkZGZqud5+o8R4lCJTh+\n4zgHrh6wZoiKYvMycwa1RwjxkxCiWXobCCGKp5Y6isRYqy9ThBBBQohTQoizQoixabzeSghxUAiR\nLITo+dhrKUKIw6mP1Zk9Zn7m7OBMd+/uvN/mfbP1pl1Qpl1TSvY5OTkRGBioLWd3NJ+zg7N2tjvv\n0DyrxKYo+UVmElQdIAZYJ4S4JYQIEUL8LISYKYRYJISIAG4AA4H/SCm/y8yBhRD2wAygE+AF9BNC\neD222SVgMMabgx/3UErpm/rokpljFkRxcXFmU0OYVuRWLGOa7LOboMA45Lx/g/6MbjbaGmEpSr6R\nYbFYKeUd4B0hxDigM9AC8AAKAbeAeUDIU4rJpqcxcFZKeR5ACLEI49mX1lcipbyQ+pohi20rqbZu\n3Up8vHGEWN26dalevXoGeyiZFRwcjJ2dHQaDgT179nDr1i1KlSqV5XbKuZXj0w6f5kCEimLbMj1I\nQkr5UEq5DONQ809S/31FSvl1NpITQEXgssnyldR1meUihAgXQuwVQnRLawMhxPDUbcKzW5LG1qnu\nvZxTqlQps6oS2R3N92j/8KvhjN0w1qy4r6IUZFkaxSeE6IAxqRxMfUQLIX4UQpTJieAy4CGlDAD6\nA1Mfqw0IgJRytpQyQEoZULp0wZv89/EPTZWgrK9r138vuf7xxx8WtTV+63hWRq5U9fkUJVVWh5l/\nB2wHagJlMSaHmsDBrIz2S3UVMB3xVyl1XaZIKa+m/nseYzULvyweP987cuQIV68af6TFihWjefPm\nOkeU/3Tr9u/Je0hICLGxsU/ZOn1CCD7r+Bnbh22nWZV0xyMpSoGS1QRVBXhPSnleSnlLSrlKStka\n2IbxZt2sCANqCiGqCSGcgL5ApkbjpY4adE59Xgp4BpNrV4qR6dlTp06dcHDIzPyUSlbUrFkTb29v\nAOLj483qHWZVvbL1KOdWDoDElKyXT1KU/CarCeooaV8nmgC0y0pDUspkYBQQApwAlkgpjwshxgsh\nugAIIRoJIa4AvYBZQojjqbvXBcKFEEcwJsdJUkqVoB6juvdyR/fu3bXnlnbznbl1hoFLBvLWurcs\nDUtRbJ7Iyt3rQoj/AEOBblLKcybrWwC/Synz7E26AQEB8tFkfQXB9evXKV++PFJK7OzsuHnzJiVK\nlNA7rHzpwIEDBAQEAMau1Bs3buDo6Jittv65/w+t57RGSknosFAqFK1gzVAVJU8QQhxIHUPwVFk9\ng5oCeAMnhBDLhRAfpg4/nwOor3x5iGn5nRYtWqjklIP8/f2pUqUKAHfu3Ml28VhQVc4VxVRWE1Rp\noAPwHhAH9AE+BGoAH6feuPu+EEL1J+ls1apV2nPTC/mK9QkhzH7GK1eutKg90yrnD5MeWtSWotiy\nrFYzj5ZSbkm99+lFKWV9wA1oivHs6ibGyhC/Wj9UJbMePHjApk2btGXTodBKzjC9DrVq1SoMhuzf\nW+5X3g+fcj7cib/D6hOqipdScFlczVxKmSClPCCl/ElK+bqUsqWqbK6vkJAQEhKMN3vWr19fm7tI\nyTktWrSgZMmSAFy9ehVLrncKIbSzqF8O/qKqnCsFllWm21DyFtORZKp7L3c4ODiYTcFhaTdfcO1g\nSruW5vSt0+y+tNvS8BTFJqkElc8kJSWZTa+hElTuMe3mW758uUVnPk72TgzwHQDAvIOqyrlSMKkE\nlc/s2LGD27dvA1C5cmX8/FSBjdzSsWNHihQpAsCZM2e0SSKzq59PP5zsndh/ZT/34u9ZI0RFsSkq\nQeUzpt17Xbt2RQihYzQFi4uLi9mAlMWLF1vUXinXUszpPocdw3dQ1KWopeEpis1RCSofkVKq4eU6\n6927t/Z8yZIlFg9waFG1BW7ObkgpSUpJsjQ8RbEpKkHlI4cPH+bSpUuAsaJBq1atdI6o4AkMDNSm\ngj9//jwHD1pemXx71HaC5wWra1FKgaMSVD5iOnKsc+fO2S63o2Sfs7Oz2Zmrpd18AAaDgdsPb1PY\nsbDFbSmKLVEJKh9ZtmyZ9lx17+nH2t18rT1bs33Ydvr79rc0NEWxKSpB5RPHjx/nxIkTABQuXJjg\n4GCdIyq4OnTogLu7OwAXL14kLCzMovbshB3ODs4kG5LZHpX9On+KYmtUgsonli5dqj3v3LkzhQur\n7iC9ODk5md0TZY1uPikl3X/tzpDlQzhw9YDF7SmKLVAJKp8wTVC9evXSMRIFoE+fPtrzpUuXWlSb\nD4zlj1pVNQ56mRs+16K2FMVWqASVD0RGRhIZaZyvsVChQqp7Lw949tlnKV68OACXL19m927LyxW9\n5P8SjnaOhJwJ4eKdixa3pyh5nUpQ+YDp4Ijg4GBcXV11jEYBcHR0NDuTXbBggcVtli1SlufrPo9E\n8vOBny1uT1HyOpWg8gHVvZc3vfTSS9rzxYsXEx8fb3GbrwS8AsCyo8u4/fC2xe0pSl6mEpSNO3ny\nJMeOHQOMpXY6d+6sc0TKI82bN9emOrl79y5r1qyxuM3apWvTsmpLHiY/5Lcjv1ncnqLkZSpB2TjT\ns6fg4GCtWKmiPyGE2VnU/PnzrdLusEbDjO0dnE9CcoJV2lSUvEglKBunuvfythdffFF7/ueff3Lj\nxg2L22xepTneZby5FXeLFcdXWNyeouRVKkHZsOPHj3P06FFAde/lVZ6enrRo0QKAlJQUfv/9d4vb\nFEIwrPEwapSoQcnCJS1uT1HyKpWgbNjChQu1588//zxubm46RqOkJye6+YJrBfPny3/SsWZHq7Sn\nKHmRrglKCBEkhDglhDgrhBibxuuthBAHhRDJQoiej702SAhxJvUxKPeizhsMBoNZgho4cKCO0ShP\n06tXL5ydnQE4ePCgNqjFEvZ29tgJO2ITY1l5fKXF9f4UJS/SLUEJIeyBGUAnwAvoJ4TwemyzS8Bg\n4LfH9i0BfAw0ARoDHwshiud0zHnJrl27tKk1SpQoQVBQkM4RKekpVqyY2USG8+ZZZ9oMKSVdF3Tl\n7T/fJuyKZfX+FCUv0vMMqjFwVkp5XkqZCCwCuppuIKW8IKWMAB6vExMIbJJSxkgpbwObgAL1Cf3r\nr79qz3v37o2Tk5OO0SgZGTTo35P8X375hYQEy0ffCSF4rclrzOgyg4BKARa3pyh5jZ4JqiJw2WT5\nSuq6nN7X5iUkJLBkyRJtWXXv5X2BgYFUqVIFgFu3brF8+XKrtNujXg+CagVhJ9TlZCX/yde/1UKI\n4UKIcCFE+M2bN/UOx2r+/PNP7ty5A0DVqlVp3ry5zhEpGbG3t2f48OHa8syZM63W9v2E+0zbPY3/\nbviv1dpUlLxAzwR1FahsslwpdZ3V9pVSzpZSBkgpA0qXLp3tQPMa0+69AQMGIITQMRols4YOHYqD\ngwMAO3futMpgCYCE5AR+2P8Dy44t49TNU1ZpU1HyAj0TVBhQUwhRTQjhBPQFVmdy3xCgoxCieOrg\niI6p6/K9O3fusHbtWm15wIABOkajZEW5cuXM5omaNWuWVdot5VqK3vWNs/h+v+97q7SpKHmBbglK\nSpkMjMKYWE4AS6SUx4UQ44UQXQCEEI2EEFeAXsAsIcTx1H1jgE8xJrkwYHzqunxv6dKl2gV2f39/\n6tatq3NESla89tpr2vP58+fz4MEDq7Q7vNFwHO0cWXdyHeeiz1mlTUXRm67XoKSU66WUtaSU1aWU\nE1PXjZNSrk59HialrCSldJVSlpRSepvsO1dKWSP1UWDmHvjpp5+056ZldBTb0KZNG2rVqgXAvXv3\nWLRokVXarVC0Aj3r90Qi1VmUkm/k60ES+c3Ro0fZt28fYJxWXI3esz1CCEaMGKEtz5w502o32Y5o\nPAIHOwdWn1hN1O0oq7SpKHpSCcqG/Pjjj9rz7t27U6pUKR2jUbJr0KBBuLi4AMbKEjt37rRKu5Xc\nK/GC9wsYpIHv96qzKMX2qQRlI+Lj481mZX3llVd0jEaxRIkSJcy6Z7/44gurtf1ak9ewF/asilyl\nzqIUm6cSlI1YuXIlt28bZ1CtVq0a7dq10zkixRJvv/22dnvAunXrrDbkvEqxKvSo14MUmULI6QIx\nsFXJx1SCshGm3XtDhw7Fzk7919myWrVqmQ05/+qrr6zW9uvNXue3Pr8xosmIjDdWlDxMFJQqyAEB\nATI8PFzvMLLl3Llz1KhRAwA7OzsuXbpExYoFprJTvrVv3z6aNm0KgIODA1FRUVSqVMmqx7jz8A7F\nChWzapuKYikhxAEpZYYFJB1yIxjFMqZDy4ODg1VyyieaNGlCq1at+Ouvv0hOTmbq1KlWPZOatH0S\n8w7OY1n/ZXiX9c54BxuQlJREeHg4u3bt4vz581y8eJGLFy9y584dHBwccHBwwMnJiSpVqlCnTh3q\n1KlDgwYNaNSokVbFQ7Ed6n8sj0tISGDu3Lnashockb+8++67/PXXX4CxssQHH3xA8eLWmTkmxZBC\n08pNcXZwtkp7eomOjmbRokWsXbuWnTt3Zurm5hMnThAS8u81uOLFixMYGEhwcDBdunTB3d09J0NW\nrEVKWSAeDRs2lLZo3rx5EpCArFixokxMTNQ7JMWKDAaDrFevnvZ//Mknn1it7aSUJKu1ldtSUlLk\nunXrZM+ePaWTk5P287HGw9XVVb766qsyIiJC77dZYAHhMhOf2+oaVB4mpSQgIICDBw8C8Nlnn/He\ne+/pHJVibQsWLNCmhS9SpAjnz5/HmsWNr9y9wvJjyxndfHSeLyyckpLC4sWLmThxIpGRkWlu4+Hh\nQdu2bfH19cXDw4MqVapQunRpUlJSSE5OJi4ujnPnznHy5EkiIyPZtm0bV6+mXYe6bdu2fPrppzzz\nzDM5+baUx2T2GpTuZza59bDFM6gdO3Zo3/pcXFzkrVu39A5JyQHJycnS29tb+79+4403rNd2SrJs\n8UML6TnZU244tcFq7VqbwWCQCxculDVr1kzzrKdx48ZyxowZ8vz589lq+/Dhw3LixInSy8srzfaf\nf/55dUaVi8jkGZTuiSO3HraYoHr27Kn9Ab3yyit6h6PkoFWrVmn/105OTjIqKspqbc8/OF96TvaU\n7X5sJxOSE6zWrrWEhYXJZs2aPZE0ihQpIt988015/Phxqx3LYDDI0NBQ2atXL+ng4GB2PCGEHDFi\nhLxz547VjqekTSUoG09QFy5ckHZ2dtofj/p2l78ZDAb5zDPPaP/fL774otXaTkxOlO1/ai89J3vK\nueFzrdaupW7duiWHDBkihRBmicLd3V2OGzcux3sMzp07JwcMGPDE8cuXLy+XL1+eo8cu6FSCsvEE\n9c4772h/MO3atdM7HCUXmHbpCiHkkSNHrNb25rObpedkT+k33U/ejrtttXazw2AwyCVLlsgyZcqY\nJQZHR0f57rvv5voZzOHDh2VQUNATZ3Ddu3eXN2/ezNVYCgqVoGw4QT148EAWK1ZM+0NZvXq13iEp\nueS5557T/t+DgoKkwWCwSrsGg0EOWDxAek72lJ9u/dQqbWbHtWvXZPfu3Z9IBs8995w8ffq0bnE9\nSpply5Y1i6tChQpyy5YtusWVX6kEZcMJaurUqdofSPXq1WVKSoreISm5JCIiwqzLacmSJVZr+/j1\n47L65Oqy1te15JlbZ6zWbmatXLlSlixZ0iwBVKxYMU99AYuJiZGvvPLKE9emxo4dq27xsCKVoGw0\nQT18+FBWqFBB++OYPn263iEpuWzEiBHa/3/ZsmVlTEyM1dp+P+R96TnZU7605CWrnZ1l5P79+098\n6ANy2LBheXZAwtq1a2WpUqXM4m3ZsqW8du2a3qHlCypB2WiC+v7777U/iHLlysm4uDi9Q1Jy2Z07\nd8y+pFhzBGd0bLT0m+4n60ypkytnUeHh4bJGjRpmH/SVKlWSmzZtyvFjW+rvv/+W7du3f6LLb/fu\n3XqHZvNUgrLBBJWYmCirVKmi/TF8/fXXeoek6GTFihVmH4yhoaFWa3vrua0yKibKau2lJSUlRX79\n9dfS0dHR7H307t3bqmeEOS0lJUV+9tlnZiNqHR0d5cyZM/UOzaapBGWDCeqnn37S/ghKlSolHzx4\noHdIio5MBxPUrFkzR86mz946a/U2b9y4IYODg5+4p2nevHm51q1obRs3bpQlSpQwe0+jRo2SSUm2\nW05KTypB2ViCSkpKktWrV9d++T///HO9Q1J0dvXqVVm0aNEc6epLTkmWr/3xmqz1dS158sZJq7W7\ndetWWb58ebMP8oYNG8ozZ3J/UIa1RUVFST8/P7P3FhgYmGevo+VlmU1Qata7PGLRokWcO3cOMFZe\nHjlypM4RKXqrUKGC2fQbP/74o9nElZawt7OnjGsZ+vr0pULRCha3l5yczLhx43j22We5du2atv6t\nt95i9+7d2nxmtqxq1ars2rWL3r17a+tCQkJo1qwZ58+f1zGyfCwzWSw/PPLyGVRCQoLZ2ZM1K1or\nts1gMMgBAwaYlUHav3+/1dpO63lWRUVFyRYtWpidWZQqVUquW7fOGmHmOSkpKXLcuHFm77dMmTJy\n3759eodmM1BdfLaToEzveypevLhNXURWcl5sbKz08fHRfkeqVKli1QoHh/4+JLsv6C4v37mcpf0M\nBoNcsGCBWTckqZVPrl69arX48qqFCxdKZ2dn7X0XKlRI/vHHH3qHZRNsIkEBQcAp4CwwNo3XnYHF\nqa/vA6qmrq8KPAQOpz5+yOhYeTVBxcTEmF18VSP3lLScOXNGuru7a78nzZo1k3fv3rVK26NWj5Ke\nkz3lwMUDM30mFRMTI/v06WOWmOzt7eWECRNkcnKyVeKyBTt37jS7+VgIoe5dzIQ8n6AAe+Ac4Ak4\nAUcAr8e2Gfko+QB9gcXy3wR1LCvHy6sJ6u2339Z+uatVqybj4+P1DknJo9asWWOWEJo2bWqVC/Q3\nH9yUAd8FSM/JnnLh4YUZbr9ixQpZrlw5s1iqV68u9+7da3EstujUqVPS09PT7OfxzjvvqAowT2EL\nCaoZEGKy/B7w3mPbhADNUp87ALcAkV8SVFRUlNlsoYsXL9Y7JCWPmzZtmtkHYZMmTaySpNaeWCs9\nJ3vKelPrpXuP1PXr12WvXr2eqAgxdOhQef/+fYtjsGU3btyQTZs2Nfu59O3bV33hTIctJKiewI8m\nyy8C3z22zTGgksnyOaBUaoKKBQ4B24GW6RxjOBAOhFepUsXKP2LL9evXz+yDxlbvEVFy1/Tp058Y\nxn3hwgWL2x29ZrT0nOwpuy3oJhOT/607l5CQIKdMmWLWxUhqpZOVK1dafNz8IjY2Vnbr1s3sZ9S6\ndWt1TTkN+T1BOQMlU9c1BC4DRZ92vLx2BrV9+3azX+SdO3fqHZJiQ2bMmGH2++Pu7i4XLVpkUZt3\nH97VZt+d/NdkaTAY5OrVq2WtWrWeOGt6+eWX1QdvGpKTk+XIkSPNflZeXl7y4sWLeoeWp9hCgsp2\nF18abYUCAU87Xl5KUA8fPjT7o+/Ro4feISk2aNasWdLe3t7sw3Dw4MEWjfDbf3m/rPFVDVl9cnXp\n08nnicRUo0YNGRISYsV3kf8YDAb5xRdfmP3cypcvLw8dOqR3aHlGZhOUnjfqhgE1hRDVhBBOGAdB\nrH5sm9XAoNTnPYGtUkophCgthLAHEEJ4AjUBm7lTbuLEiZw+fRoANzc3pk6dqnNEii0aPnw4O3bs\noFq1atq6X375BQ8PD9544w0uXryYpfbOnTvHtt+2YQgzIJHcaXQH4SwAcHd35+uvv+b48eN07NjR\nqu8jvxFC8O6777Jw4UIcHR0BuHbtGi1btmTjxo06R2djMpPFcuoBBAOnMXbdfZC6bjzQJfW5C7AU\n4zDz/YBn6voewHGMQ8wPAs9ndKy8cgZ19OhR6eDgoH2zmjFjht4hKTbu7t27ZjfzPnrY29vLwMBA\nOWHCBBkaGipjYmJkXFycTEpKkgkJCfLYsWNy8eLF8sMPPzQv4SOQZV8qK13ru0oXFxc5atQoeePG\nDb3fpk3aunWr2bU7e3t7OWfOHL3D0h15vYsvtx95IUElJyebjfRp3ry5GoqqWM3y5ctlgwYNnkhU\n2XkUL15cfvTRR/LGjRs5Xvk8vzt69KisXLmy2c937NixBfpvP7MJStXiy0XTp09n7969ADg6OjJn\nzqHXJGUAABIWSURBVBzs7NR/gWIdL7zwAocOHeLPP/+kTZs2Wd7fycmJ5557jp9//plLly4xfvx4\ntv2zjcCfA1l2bJn1Ay4g6tWrx969e/Hz89PWTZo0ib59+/Lw4UMdI8v7HPQOoKA4cOAA7777rrb8\n/vvv4+XlpWNESn4khCAoKIigoCDOnz/Pzp072blzJ7t27eLSpUskJSWRmJiIlBIPDw+8vb3x8vKi\nYcOGBAcHU7RoUbP27LCjZsmaNK/SXKd3lD9UqFCBv/76i379+rF27VoAli5dSlRUFH/88QcVK1bU\nOcK8SRjPtvK/gIAAGR4ersux7927h7+/v1at3N/fn927d+Ps7KxLPIpiMBgyffaemJKIk70TKYYU\nrj+4bpXq5wVVSkoKY8aMYfr06dq68uXLs2rVKho1aqRjZLlLCHFAShmQ0XaqfymHSSkZPny4lpzc\n3NxYvHixSk6KrrLStexk70RCcgKj1oyi12+9+Pve3zkYWf5mb2/PtGnTmDFjBvb29oBxhF+rVq1Y\nuHChztHlPSpB5bAff/yRxYsXa8uzZ8/OF3PjKAWLlJKYuBj+efAPg5YNIjouWu+QbNrIkSMJCQmh\nePHiAMTHxzNw4EBGjx5NYmKiztHlHSpB5aAdO3YwatQobXn48OH07dtXx4gUJXtcHF2Y030OtUvV\n5nzMeQYuGaiSlIWeffZZ9u3bR506dbR106dPp127dmaTPhZkKkHlkFOnTtG1a1ft21C9evXUDbmK\nTSvqUpR5veZRvUR1Tt86rZKUFdSsWZN9+/bxwgsvaOt27dqFn58fmzdv1jGyvEElqBxw/fp1OnXq\nxO3btwEoW7Ysq1evplChQjpHpiiWKe1amoV9FlKjRA1O3zpN30V9uXr3qt5h2bSiRYuybNkyJk2a\npF0bvH79Oh07duT9998nKSlJ5wj1oxKUlcXGxvL8888TFRUFQOHChVm7dq1ZORpFsWWPklSd0nU4\nH3OeXr/34tTNU3qHZdOEEPz3v/9l48aNlClTBjBe9/v8889p1aoV58/bTCU3q1IJyoru3btHp06d\nCAsLA4wjpRYtWkRAQIajKRXFppRyLcXvfX6nSaUmXH9wna93fq13SHlKfFI8F25fIOxKGFvObWHl\n8ZX8fuR3FhxawK3YW+nu9+yzz3LkyBE6dOigrdu7dy8+Pj788MMPFJTbgh5R90FZSUxMDJ06dWL/\n/v3auhkzZjBy5MgcO6ai6C0hOYFJ2ycxqtkoShYuSWxiLIUcC2EnCs533/Ar4dyJv0P7Gu0B6PVb\nLw7+fTDd7Zf1X4ZfBb90XwfjfWqTJ0/mgw8+ICUlRVvfoUMHfvrpJypXrmyd4HWS2fugVCUJK7h5\n8yYdOnTgyJEj2ropU6ao5KTke84Oznz87McAJKUkMWzlMAo5FGLOC3PyXZKSUnLp7iXCLodxI/YG\nI5sa/74n75jMP/f/0RKUu4s7jnaOlClShjKuZShWqBhuzm64OLjgaOdIicIlMjyWnZ0d//3vf2nX\nrh2DBg3ixIkTAGzatAkvLy/Gjx/P66+/joND/v4Iz9/vLhccO3aMbt26aTfiAsycOZMRI0boGJWi\n5L7zMec5fes0g/0HYyfstO4oIYTOkWVfTFwMOy/uZNfFXey+uJu/7xtvUnayd2JowFCcHZwJrh3M\nmegzpBhSsLez55vO3+Dq5GqVBN2oUSMOHjzIRx99xNdff42UkgcPHvDmm28yb948fvjhB5o2bWrx\ncfIq1cVngaVLl/Lyyy8TGxsLGL/1zJ07l0GDBmWwp6LkT7dib1G8UHHs7ewJORPC0qNL+eTZT6jk\nXknv0DLtfMx51p5cS+j5UCL+iUDy72dkMZdiNKrUiMaVGtPHpw+uTq65FteuXbsYPnw4kZGRZusH\nDBjAxIkT8fDwyLVY/r+9+w+uqrzzOP7+EmKYQIBpQ4fdANaw/FQqYgwEuhRbXKHrUEEWskHoD3eB\nGSVAxVrkx6w4zFbDoEbp6BaZRbesdAcQFroVAsrvUjZYEFygSYFAXGoTFouELAn57h/3kg0JgRtI\nck7g85q5M/ec85zzfO9zk3xzznnO89ysWC/xKUHdgIqKCubNm8eLL75Yva5t27a88847jB49ulHq\nEGnJ3J2R/zyS35X+joTWCXz3vu8ydeBUOrTpEHRodXxx8Qt2HN9BWkoayW2TWbF/BfM2zQMiZ0pp\nKWl8/atfZ8idQ+j7lb6BXrq8ePEiL7/8Ms8///wVI6EnJCSQnZ3N7Nmzq0enCLNYE1Tg8zQ116ux\n5oPat29fnTl3unfv7h9//HGjHF/kVvGHc3/w7H/P9tScVE/NSfX+uf190fZF/tkXwU5+WFVV5Yc/\nO+zFnxe7u/uHv//QU3NS/d3977q7+6d/+tTnbpzrmws2+/n/PR9kqPU6fvy4jx49us48Xu3bt/c5\nc+Z4SUlJ0CFeE5qwsHET1IULF/y5557zuLi4K34gRo4c6WfOnLmpYze2V3a8ctX3se5TU+a/Zt5w\n3bGqXceNxB9LPLXfX16+2Trqq+96MTRVfWGz/9P9PmHlhOpE1Xtxb5+5fqZvP7bdKy9VNksMxZ8X\n+6qDq/zpDU/7oJ8O8tScVM/ZluPu7uUV5f74ysf9V0d+1SyxNOZ3tm3bNk9PT6+TqNq1a+fPPPOM\nnzhxotHqakxKUI2UoCorK33ZsmV1ZsRs06aN5+TkeGVl8/yCNURqTupV38e6TyzrG3qchuxzI/HH\ncuza7y8v32wd9dV3vRiaqr6w2ntqr099b6p3z+le3f7bjm1zd/eS8yV+pqzx/tH76NOPfHn+cp+x\nfoYPfXNodX2XXwN/OtBzd+U2Wn0N0djfWVVVla9cudJ79+5dJ1G1atXKx4wZ4x988IFXVVU1ar03\nI9YEpV589aisrGTt2rXMnz+/zk3JoUOHsnTpUnr06BFQdCItT1pKGmkpaZw8e5I1n6xhx4kdZHTL\nAODNPW+yLH8Z+U/l06FNB3ae2ElpWSnJbZNJTkwmMT6RhNaRKWoqLlVwoeICFy9dpM9X+gDws70/\n4/zF88wYMgOAH274ISfOnqiuOykhifQu6QzqOoghdw6hZ3LPFt27sCYzY9y4cTz22GOsWrWKF154\ngYMHDwKR56lWr17N6tWr6dmzJ5MmTWLixIl069Yt4KhjowRVS2lpKW+99RZLliyhqKjoim2dOnVi\nwYIFTJ48WVO1i9ygrh27kj04m+zB2dXrzlw4Q69Ovao7Uby9723yCq89WGrXDl358O8/BGD78e0U\nlhZWJ6iHezxMSVkJ9/3ZfQxIGUCPL/cgrlVc03ygkIiLi2PcuHGMHTuW9evXk5uby+bNm6u3Hz16\nlLlz5zJv3jyGDh3KmDFjePTRR0OdrJSggLKyMjZs2MDKlSvZsGED5eXlV2xPSkpi1qxZzJw5k6Sk\npICiFLl1Lfr2osg9h6j0runc0foOSs+XUlJWQnllOeWV5RhGfFw8Ca0T6NL+/7uuf3/A9ymrKMPd\nI+PafePZID5GKLRq1YpRo0YxatQoDh06xGuvvcaKFSs4d+4cELmts3XrVrZu3cr06dO5//77GTFi\nBMOHDycjIyNUk6nelgnK3SkoKCAvL49NmzaxcePG6meZakpOTmby5MnMmDGDTp06BRCpyO2j5iW3\nJ9KeaNC+D3Z/sLHDuSXcfffdvPHGGyxevJj33nuP5cuXk5eXR1VVVXWZ/Px88vPzWbhwIYmJiWRk\nZJCRkcHgwYMZOHAgX/rS9Ue+aCq3TYI6d+4cL730Env37mXPnj2cPHmy3rIDBgxg2rRpZGZm0qZN\nm2aMUkSk8SUmJpKVlUVWVhanT59m7dq1rFmzhi1btlwxnUdZWRmbN2++4tJgt27d6N+/P/feey99\n+/alV69e9OzZk7Ztm/4h5UATlJmNAF4F4oCl7v6TWtsTgLeB+4FSYLy7H49umw08AVwCst39/WvV\ndfToUZ59tv7T/l69epGZmcn48ePp06fPjX8oEZEQ69y5M1OmTGHKlCmcPXuWLVu2sGnTJvLy8igo\nKKhTvqioiKKiItatW3fF+pSUFCZMmHDFgAWNLbAEZWZxwBLgIeAUsNfM1rl7zS5zTwD/4+5/YWaZ\nwIvAeDPrC2QCdwN/DuSZWU93v0SM2rVrx7Bhwxg+fDgPPfQQffr0uWV69YiIxKJjx46MGTOmekbf\noqIidu3axe7du9m1axcHDhyonhW8tuLi4qveGmlMgQ11ZGYZwD+4+8PR5dkA7v6PNcq8Hy2z28xa\nA6eBTsCPa5atWa6++hITEz0rK4sHHniA9PR07rnnHuLj45vq4wVm0r9NYueJnUGHIc1oYJeBQYcg\nDbDn1B4KZxVev2AIVFRUcPjwYfbv38+BAwc4cuQIR44cobCwkMrKSnJzc5k2bVqDj9sSpttIAWre\nCDoF1P5Nqy7j7pVm9jnw5ej6X9faN6V2BWY2GZgMkeuoS5cubbTgg/DqzlfJ3Z0bdBgSMntO7blu\nmZSklBY1YGtLdOrzUxSfK46pbPdF3a9bJjsjm+lDpt9sWDclPj6efv360a9fvyvWV1RUcOzYsaYf\n9y+Wp3mb4gWMJXLf6fLyROD1WmUOAl1qLBcCycDrwOM11r8FjL1WfY01Fl9LoJEkrn8sjSQhQdF3\nFvtIEkE+bVoM1JwWskt03VXLRC/xdSDSWSKWfUVEpAULMkHtBXqY2V1mdgeRTg/rapVZB1yeXGks\nsCWafdcBmWaWYGZ3AT2A3yAiIreMwO5BeeSe0lPA+0S6mS9z90NmtoDI6d86Ipfu3jGzAuAMkSRG\ntNwvgE+ASuBJb0APPhERCb9An4Ny918Cv6y1bn6N9+XA39Sz70JgYZMGKCIigdGIpyIiEkpKUCIi\nEkpKUCIiEkpKUCIiEkq3zWjmt5PsjOyrvo91n5rSu6TfcN2xql3HjcQfSzyxvL9ZVztWU9XVFMeT\npqfvLHaBjcXX3Mzsj8CJ6xZsXslASdBBhJTapn5qm/qpbeoXpra5092vO8nebZOgwsjM/tNjGDDx\ndqS2qZ/apn5qm/q1xLbRPSgREQklJSgREQklJahg/VPQAYSY2qZ+apv6qW3q1+LaRvegREQklHQG\nJSIioaQEJSIioaQEFRJm9rSZuZklBx1LGJhZjpkdNrMDZrbGzDoGHVPQzGyEmR0xswIz+3HQ8YSF\nmXU1sw/M7BMzO2Rmwc6THkJmFmdmH5nZ+qBjaQglqBAws67AXwFFQccSIpuAe9z9a8BRYHbA8QTK\nzOKAJcBIoC/wt2bWN9ioQqMSeNrd+wKDgCfVNnVMB/4r6CAaSgkqHF4GfgSox0qUu29098ro4q+B\nLkHGEwLpQIG7/97dLwLvAt8JOKZQcPf/dvd90ffniPwhTgk2qvAwsy7AXwNLg46loZSgAmZm3wGK\n3X1/0LGE2A+A/wg6iIClACdrLJ9Cf4TrMLOvAvcBe4KNJFReIfIPcFXQgTSUBottBmaWB3S+yqY5\nwHNELu/ddq7VLu6+NlpmDpFLOD9vztik5TGzdsAqYIa7/ynoeMLAzB4BPnP3fDMbFnQ8DaUE1Qzc\nffjV1ptZP+AuYL+ZQeQy1j4zS3f3080YYiDqa5fLzOx7wCPAt1wP7BUDXWssd4muE8DM4okkp5+7\n++qg4wmRIcAoM/s20AZob2b/4u6PBxxXTPSgboiY2XEgzd3DMuJwYMxsBLAY+Ia7/zHoeIJmZq2J\ndBb5FpHEtBfIcvdDgQYWAhb57245cMbdZwQdT1hFz6BmufsjQccSK92DkrB6HUgCNpnZb83sjaAD\nClK0w8hTwPtEOgH8Qsmp2hBgIvDN6M/Kb6NnDNLC6QxKRERCSWdQIiISSkpQIiISSkpQIiISSkpQ\nIiISSkpQIiISSkpQIiISSkpQIiISSkpQIiISSkpQIiFnZj+KTmZZ+7Ug6NhEmpJGkhAJOTNLAtrW\nWDULmAD8pbsXBBOVSNNTghJpQczsWSAb+Ka7Hwk6HpGmpOk2RFoIM5sNPAk86O5Hg45HpKkpQYm0\nAGY2F5gKDNNlPbldKEGJhJyZzQf+jsjcWIVBxyPSXJSgREIseuaUDYwCzptZ5+ims+5eHlxkIk1P\nnSREQio6U+xZoP1VNg93983NHJJIs1KCEhGRUNKDuiIiEkpKUCIiEkpKUCIiEkpKUCIiEkpKUCIi\nEkpKUCIiEkpKUCIiEkpKUCIiEkr/B7PWAjwe95nXAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "Cs = qp.PDF(truth=C_dist, limits = composite_lims)\n", "Cs.sample(N=20, using='truth', vb=False)\n", @@ -1144,31 +575,11 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "Evaluating the true distribution.\n", - "almost normalized integrals\n", - "(0.0, 0.0, 0.0)\n" - ] - } - ], + "outputs": [], "source": [ "qD = qp.utils.calculate_kl_divergence(C, Cq, limits=composite_lims, dx=0.001, vb=True)\n", "hD = qp.utils.calculate_kl_divergence(C, Ch, limits=composite_lims, dx=0.001, vb=True)\n", From ca90f0ee8608b5cd79aae46599fa4178d7d8400a Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 15:46:34 -0700 Subject: [PATCH 17/96] fixed some bugs for quantile interpolation --- qp/pdf.py | 54 +++++++++++++++++++++++++++++++++-------------------- qp/utils.py | 41 +++++++++++++++++++++++++++------------- 2 files changed, 62 insertions(+), 33 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index d7be4d86..67d30b63 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -220,7 +220,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): if self.truth is not None: if isinstance(self.truth, qp.composite): if type(self.scheme) != int: - order = 3 + order = min(5, N-1) else: order = self.scheme @@ -273,16 +273,19 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): # else: # print('oh noes, bad cdf at '+str(i)+'! '+str(icdf)) new_deltas = icdf[1:] - icdf[:-1] - if vb: - print('grid expanded '+str(expanded)+' times') + if vb: + print('grid expanded '+str(expanded)+' times') # locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) - # if vb: - # print(icdf, grid) + u, i = np.unique(icdf, return_index=True) + icdf = u + grid = grid[i] + if vb: + print('icdf, grid = '+str(icdf)+', '+str(grid)) # if vb: print('about to interpolate the CDF: '+str(icdf)+', '+str(grid)) - b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order) + b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order, ext=1) # if vb: print('made the interpolator') quantiles = b(quantpoints)#self.truth.ppf(quantpoints, ivals=grid[locs]) - # if vb: print('found the quantiles') + if vb: print('output quantiles = '+str(quantiles)) else: quantiles = self.truth.ppf(quantpoints) else: @@ -416,7 +419,7 @@ def gmm(x, *args): stdevs = np.sqrt(estimator.covariances_[:, 0, 0]) if vb: - print(weights, means, stdevs) + print('weights, means, stds = '+str((weights, means, stdevs))) components = [] for i in comp_range: @@ -430,7 +433,7 @@ def gmm(x, *args): if vb: statement = '' for c in comp_range: - statement += str(weights[c])+r'$\cdot\mathcal{N}($'+str(means[c])+r','+str(stdevs[c])+r')\n' + statement += str(weights[c])+'$\cdot\mathcal{N}($'+str(means[c])+r','+str(stdevs[c])+r')\n' print(statement) self.mix_mod = qp.composite(components) return self.mix_mod @@ -490,7 +493,7 @@ def sample(self, N=1000, infty=default_infty, using=None, vb=True): self.quantiles = self.quantize(vb=vb) (x, y) = qp.utils.evaluate_quantiles(self.quantiles, vb=vb) - (endpoints, weights) = qp.utils.normalize_quantiles(self.quantiles[0], (x, y), vb=vb) + (endpoints, weights) = qp.utils.normalize_quantiles(self.quantiles, (x, y), vb=vb) # endpoints = np.insert(self.quantiles[1], [0, -1], self.limits) # weights = qp.utils.evaluate_quantiles(self.quantiles)[1]# self.evaluate((endpoints[1:]+endpoints[:-1])/2.) # interpolator = self.interpolate(using='quantiles', vb=False) @@ -556,30 +559,41 @@ def interpolate(self, using=None, vb=True): self.quantiles = self.quantize(vb=vb) if type(self.scheme) != int: - order = 3 + order = min(5, len(self.quantiles[0])) else: order = self.scheme (x, y) = qp.utils.evaluate_quantiles(self.quantiles, vb=vb) - x = qp.utils.normalize_quantiles(self.quantiles[0], (x, y), vb=vb)[0] + if vb: print('evaluated quantile PDF: '+str((x, y))) + evalled = qp.utils.normalize_quantiles(self.quantiles, (x, y), vb=vb) + if vb: print('complete evaluated quantile PDF: '+str(evalled)) # cdf_interpolator = spi.interp1d(self.quantiles[1], self.quantiles[0]) # interpolator = spi.interp1d(x, y, kind=len(x), bounds_error=False, fill_value=default_eps) + (x, y) = evalled minz, maxz = x[0], x[-1] z = np.insert(self.quantiles[1], 0, minz) z = np.append(z, maxz) q = np.insert(self.quantiles[0], 0, 0.) q = np.append(q, 1.) - # b = spi.InterpolatedUnivariateSpline(z, q, k=order).derivative()#, k=len(quantiles[0])) + if vb: + if not np.all(np.unique(z)==z): + print('z='+str(z)) + if not np.all(np.unique(q)==q): + print('q='+str(q)) + # assert(np.all(q[1:]-q[:-1] == np.array([b.integral(z[i], z[i+1])) for i in range(0, len(z)-1)])) + # u, i = np.unique(z, return_index=True) + # z = u + # q = q[i] + quantile_interpolator = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative()#, k=len(quantiles[0])) # if vb: # print(tck) #still not enforcing integration at ends - def quantile_interpolator(xf): - b = spi.InterpolatedUnivariateSpline(z, q, k=order).derivative() - yf = np.ones(len(xf)) * default_eps - subset = ((xf>z[0]) == (xfz[0]) == (xf0.) + if not np.all(dx>0.): + print('broken delta quantile values: '+str(xs)) + assert(np.all(dx>0.)) mx = (xs[1:] + xs[:-1]) / 2. y = dq / dx # print(np.dot(y, dx)) @@ -291,7 +305,7 @@ def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): TO DO: change this to calculate_kld """ # Make a grid from the limits and resolution - grid = np.arange(limits[0], limits[1], dx) + grid = np.arange(limits[0], limits[1]+dx, dx) # Evaluate the functions on the grid and normalize pe = p.evaluate(grid, vb=vb, norm=True) pn = pe[1] @@ -308,7 +322,8 @@ def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): # logq = safelog(qn) # Calculate the KLD from q to p Dpq = np.dot(pn * logquotient, np.ones(len(grid)) * dx) - assert(Dpq >= 0.) + if Dpq < 0.: + return(Dpq, pn, qn, dx) return Dpq def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): From 99b178a63efea6ffaa85e89136f4277622c371fd Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 17:55:41 -0700 Subject: [PATCH 18/96] apparently interpolation fails when numbers are tiny --- qp/pdf.py | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 67d30b63..f1e3f923 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -220,7 +220,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): if self.truth is not None: if isinstance(self.truth, qp.composite): if type(self.scheme) != int: - order = min(5, N-1) + order = 5 else: order = self.scheme @@ -260,28 +260,18 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): delta_i = new_deltas[i] / (order + 1.) subgrid = np.linspace(grid[i] + delta_i, grid[i+1] - delta_i, order) grid = np.sort(np.insert(grid, i, subgrid)) - # if vb: - # if np.allclose(grid, np.sort(grid)): - # print('yay, grid was sorted!') - # else: - # print('oh noes, bad grid at '+str(i)+'! '+str(grid)) subcdf = self.truth.cdf(subgrid) icdf = np.sort(np.insert(icdf, i, subcdf)) - # if vb: - # if np.allclose(icdf, np.sort(icdf)): - # print('yay, cdf was sorted!') - # else: - # print('oh noes, bad cdf at '+str(i)+'! '+str(icdf)) new_deltas = icdf[1:] - icdf[:-1] if vb: print('grid expanded '+str(expanded)+' times') # locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) - u, i = np.unique(icdf, return_index=True) - icdf = u - grid = grid[i] - if vb: - print('icdf, grid = '+str(icdf)+', '+str(grid)) - # if vb: print('about to interpolate the CDF: '+str(icdf)+', '+str(grid)) + i = np.min(np.where(icdf > default_eps**(1./order))) + f = np.max(np.where(1.-icdf > default_eps**(1./order))) + icdf = icdf[i:f+1] + grid = grid[i:f+1] + + if vb: print('about to interpolate the CDF: '+str((icdf, grid))) b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order, ext=1) # if vb: print('made the interpolator') quantiles = b(quantpoints)#self.truth.ppf(quantpoints, ivals=grid[locs]) From 2eec8e1ba6753937c23cad0e91150a4fe219768a Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 18:22:05 -0700 Subject: [PATCH 19/96] everything works now! --- .../research/analysis.ipynb | 6 +++--- qp/pdf.py | 19 ++++++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 8cb95ca1..12fcfc91 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -222,7 +222,7 @@ " \n", " start = timeit.default_timer()\n", " print('making the initial ensemble of '+str(N_pdfs)+' PDFs')\n", - " E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=True)\n", + " E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=False)\n", " print('made the initial ensemble of '+str(N_pdfs)+' PDFs in '+str(timeit.default_timer() - start)) \n", " \n", " #fit GMMs to gridded pdfs based on samples (faster than fitting to gridded)\n", @@ -307,7 +307,7 @@ " \n", " qstart = timeit.default_timer()\n", " print('performing quantization')\n", - " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=True)\n", + " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False)\n", " print('finished quantization at '+str(timeit.default_timer() - qstart))\n", " hstart = timeit.default_timer()\n", " print('performing histogramization')\n", @@ -514,7 +514,7 @@ " stacked_pdfs[key] = qp.PDF(gridded=E[key].stack(z_grid, using=key, \n", " vb=False)[key])\n", " stacks[key] = stacked_pdfs[key].evaluate(z_grid, using='gridded', norm=True, vb=False)[1]\n", - " print('stacked '+key+ 'in '+str(timeit.default_timer()-start))\n", + " print('stacked '+key+ ' in '+str(timeit.default_timer()-start))\n", " stacked_pdfs['truth'] = qp.PDF(gridded=E0.stack(z_grid, using='truth', \n", " vb=False)['truth'])\n", " \n", diff --git a/qp/pdf.py b/qp/pdf.py index f1e3f923..f503be0e 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -272,9 +272,14 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): grid = grid[i:f+1] if vb: print('about to interpolate the CDF: '+str((icdf, grid))) - b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order, ext=1) # if vb: print('made the interpolator') - quantiles = b(quantpoints)#self.truth.ppf(quantpoints, ivals=grid[locs]) + #quantiles self.truth.ppf(quantpoints, ivals=grid[locs]) + quantiles = np.flip(quantpoints, axis=0) + while not np.array_equal(quantiles, np.sort(quantiles)): + b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order, ext=1) + quantiles = b(quantpoints) + order -= 1 + if vb: print('order is '+str(order)) if vb: print('output quantiles = '+str(quantiles)) else: quantiles = self.truth.ppf(quantpoints) @@ -565,11 +570,11 @@ def interpolate(self, using=None, vb=True): z = np.append(z, maxz) q = np.insert(self.quantiles[0], 0, 0.) q = np.append(q, 1.) - if vb: - if not np.all(np.unique(z)==z): - print('z='+str(z)) - if not np.all(np.unique(q)==q): - print('q='+str(q)) + # if vb: + # if not np.all(np.unique(z)==z): + # print('z='+str(z)) + # if not np.all(np.unique(q)==q): + # print('q='+str(q)) # assert(np.all(q[1:]-q[:-1] == np.array([b.integral(z[i], z[i+1])) for i in range(0, len(z)-1)])) # u, i = np.unique(z, return_index=True) # z = u From bf113e2790e38df25c99a8bccd36ead72a0044dd Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 19:21:40 -0700 Subject: [PATCH 20/96] trying to make better plots --- .../research/analysis.ipynb | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 12fcfc91..e6743ae5 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -47,8 +47,17 @@ "import timeit\n", "import bisect\n", "\n", - "import matplotlib\n", + "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", + "mpl.rcParams['text.usetex'] = True\n", + "mpl.rcParams['mathtext.rm'] = 'serif'\n", + "mpl.rcParams['font.family'] = 'serif'\n", + "mpl.rcParams['font.serif'] = 'Times New Roman'\n", + "mpl.rcParams['axes.titlesize'] = 16\n", + "mpl.rcParams['axes.labelsize'] = 14\n", + "mpl.rcParams['savefig.dpi'] = 250\n", + "mpl.rcParams['savefig.format'] = 'pdf'\n", + "mpl.rcParams['savefig.bbox'] = 'tight'\n", "\n", "#comment out for NERSC\n", "%matplotlib inline\n", @@ -162,14 +171,14 @@ " data = (z_grid, pdfs[randos[i]])\n", " data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data))\n", " pz_max.append(np.max(data))\n", - " plt.plot(data[0], data[1], label=dataset_info[dataset_key]['name']+' #'+str(randos[i]))\n", + " plt.plot(data[0], data[1], label=dataset_info[dataset_key]['name']+' \\#'+str(randos[i]), color=color_cycle[i])\n", " plt.xlabel(r'$z$', fontsize=14)\n", " plt.ylabel(r'$p(z)$', fontsize=14)\n", " plt.xlim(min(z_grid), max(z_grid))\n", " plt.ylim(0., max(pz_max))\n", " plt.title(dataset_info[dataset_key]['name']+' data', fontsize=16)\n", " plt.legend()\n", - " plt.savefig(loc+'.png', dpi=250)\n", + " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()\n", " \n", " if 'modes' in info.keys():\n", @@ -180,7 +189,7 @@ " plt.xlabel('modes')\n", " plt.ylabel('frequency')\n", " plt.title(dataset_info[dataset_key]['name']+' modality distribution', fontsize=16)\n", - " plt.savefig(loc+'modality.png', dpi=250)\n", + " plt.savefig(loc+'modality.pdf', dpi=250)\n", " plt.close()\n", " \n", " if 'iqrs' in info.keys():\n", @@ -193,7 +202,7 @@ " plt.xlabel('IQR')\n", " plt.ylabel('frequency')\n", " plt.title(dataset_info[dataset_key]['name']+' IQR distribution', fontsize=16)\n", - " plt.savefig(loc+'iqrs.png', dpi=250)\n", + " plt.savefig(loc+'iqrs.pdf', dpi=250)\n", " plt.close()" ] }, @@ -406,7 +415,7 @@ " for key in pz_klds.keys():\n", " logdata = qp.utils.safelog(pz_klds[key])\n", " kld_hist = plt.hist(logdata, color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k',\n", - " label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=3)\n", + " label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", " hist_max.append(max(kld_hist[0]))\n", " dist_min.append(min(logdata))\n", " dist_max.append(max(logdata))\n", @@ -416,7 +425,7 @@ "# plt.xlim(min(dist_min), max(dist_max))\n", "# plt.ylim(0., max(hist_max))\n", " plt.title(dataset_info[dataset_key]['name']+r' data $p(KLD)$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - " plt.savefig(loc+'.png', dpi=250)\n", + " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()" ] }, @@ -450,16 +459,16 @@ " ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a)\n", " for key in formats:\n", " ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - " linestyle=stepstyles[key], ls=stepstyles[key])\n", + " linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", " ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", - " ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a)\n", + " ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", " ax.legend()\n", " ax.set_ylabel('frequency', fontsize=14)\n", " ax.set_xlabel(moment_names[n], fontsize=14)\n", " ax.set_xlim(min(plot_bins), max(plot_bins))\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.tight_layout()\n", - " plt.savefig(loc+'.png', dpi=250)\n", + " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()\n", " \n", " plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", @@ -472,16 +481,16 @@ " plot_bins = np.linspace(ends[0], ends[-1], 20)\n", " for key in formats:\n", " ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - " linestyle=stepstyles[key], ls=stepstyles[key])\n", + " linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", " ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", - " ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a)\n", + " ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", " ax.legend()\n", " ax.set_ylabel('frequency', fontsize=14)\n", " ax.set_xlabel(r'$\\Delta$ '+moment_names[n], fontsize=14)\n", " ax.set_xlim(min(plot_bins), max(plot_bins))\n", " plt.tight_layout()\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - " plt.savefig(loc+'_delta.png', dpi=250)\n", + " plt.savefig(loc+'_delta.pdf', dpi=250)\n", " plt.close()" ] }, @@ -574,7 +583,7 @@ " klds = info['klds']\n", " \n", " plt.figure()\n", - " plt.plot(z_grid, stacks['truth'], color='black', lw=4, alpha=0.3, label='truth')\n", + " plt.plot(z_grid, stacks['truth'], color='black', lw=3, alpha=0.3, label='truth')\n", " nz_max.append(max(stacks['truth']))\n", " for key in formats:\n", " nz_max.append(max(stacks[key]))\n", @@ -585,7 +594,7 @@ "# plt.ylim(0., max(nz_max))\n", " plt.legend()\n", " plt.title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ with $N_{f}='+str(n_floats_use)+r'$', fontsize=16)\n", - " plt.savefig(loc+'.png', dpi=250)\n", + " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()" ] }, @@ -723,7 +732,7 @@ " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_all.png', dpi=250)\n", + " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()\n", " \n", " fig, ax = plt.subplots()\n", @@ -764,7 +773,7 @@ " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_clean.png', dpi=250)\n", + " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()" ] }, @@ -863,7 +872,7 @@ " plt.ylabel(r'KLD', fontsize=14)\n", " plt.legend(loc='upper right')\n", " plt.title(r'$\\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_info[dataset_key]['name']+' mock catalog', fontsize=16)\n", - " plt.savefig(loc+'.png', dpi=250)\n", + " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()\n", "\n", " plt.figure(figsize=(5, 5))\n", @@ -890,7 +899,7 @@ " plt.ylabel(r'KLD', fontsize=14)\n", " plt.legend(loc='upper right')\n", " plt.title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ KLD', fontsize=16)\n", - " plt.savefig(loc+'_clean.png', dpi=250)\n", + " plt.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()" ] }, @@ -952,7 +961,7 @@ " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_all.png', dpi=250)\n", + " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()\n", " \n", " fig, ax = plt.subplots()\n", @@ -994,7 +1003,7 @@ " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_clean.png', dpi=250)\n", + " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()" ] }, @@ -1062,7 +1071,8 @@ "outputs": [], "source": [ "high_res = 300\n", - "n_plot = 5\n", + "color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256.\n", + "n_plot = len(color_cycle)\n", "n_moments_use = 4\n", "moment_names = ['integral', 'mean', 'variance', 'kurtosis']\n", "moment_shapes = ['o', '*', '+', 'x']\n", @@ -1164,7 +1174,7 @@ " for n_floats_use in floats:\n", " \n", " float_start = timeit.default_timer()\n", - " print('started '+str(size)+name+str(n_floats_use)+'#'+str(i))\n", + " print('started '+str(size)+name+str(n_floats_use)+'\\#'+str(i))\n", " \n", " (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, \n", " z_grid,#dataset_info[name]['metric_z_grid'], \n", @@ -1242,15 +1252,6 @@ }, "source": [] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, From d5e2fdc638debd8c71f5999ad8c52e9a99e9170b Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 25 Aug 2017 20:26:34 -0700 Subject: [PATCH 21/96] fixing up plots --- .../research/analysis.ipynb | 74 ++++++++++++------- 1 file changed, 47 insertions(+), 27 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index e6743ae5..c2195d5e 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -47,6 +47,21 @@ "import timeit\n", "import bisect\n", "\n", + "import qp\n", + "from qp.utils import calculate_kl_divergence as make_kld\n", + "\n", + "# np.random.seed(seed=42)\n", + "# random.seed(a=42)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "mpl.rcParams['text.usetex'] = True\n", @@ -60,13 +75,7 @@ "mpl.rcParams['savefig.bbox'] = 'tight'\n", "\n", "#comment out for NERSC\n", - "%matplotlib inline\n", - "\n", - "import qp\n", - "from qp.utils import calculate_kl_divergence as make_kld\n", - "\n", - "# np.random.seed(seed=42)\n", - "# random.seed(a=42)" + "%matplotlib inline" ] }, { @@ -125,7 +134,7 @@ " iqrs.append(iqr_hi - iqr_lo)\n", " modality = np.array(modality)\n", " \n", - " dataset_info[dataset_key]['N_GMM'] = int(np.median(modality))\n", + " dataset_info[dataset_key]['N_GMM'] = int(np.median(modality))+1\n", " print('n_gmm for '+dataset_info[dataset_key]['name']+' = '+str(dataset_info[dataset_key]['N_GMM']))\n", " \n", " # using the same grid for output as the native format, but doesn't need to be so\n", @@ -176,7 +185,7 @@ " plt.ylabel(r'$p(z)$', fontsize=14)\n", " plt.xlim(min(z_grid), max(z_grid))\n", " plt.ylim(0., max(pz_max))\n", - " plt.title(dataset_info[dataset_key]['name']+' data', fontsize=16)\n", + " plt.title(dataset_info[dataset_key]['name']+' data examples', fontsize=16)\n", " plt.legend()\n", " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()\n", @@ -188,7 +197,7 @@ " ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', bins=range(max(modes_max)+1))\n", " plt.xlabel('modes')\n", " plt.ylabel('frequency')\n", - " plt.title(dataset_info[dataset_key]['name']+' modality distribution', fontsize=16)\n", + " plt.title(dataset_info[dataset_key]['name']+' data modality distribution ('+str(dataset_info[dataset_key]['N_GMM'])+')', fontsize=16)\n", " plt.savefig(loc+'modality.pdf', dpi=250)\n", " plt.close()\n", " \n", @@ -201,7 +210,7 @@ " ax = plt.hist(iqrs, bins=plot_bins, color='k', alpha=1./n_plot, histtype='stepfilled')\n", " plt.xlabel('IQR')\n", " plt.ylabel('frequency')\n", - " plt.title(dataset_info[dataset_key]['name']+' IQR distribution', fontsize=16)\n", + " plt.title(dataset_info[dataset_key]['name']+' data IQR distribution', fontsize=16)\n", " plt.savefig(loc+'iqrs.pdf', dpi=250)\n", " plt.close()" ] @@ -468,6 +477,7 @@ " ax.set_xlim(min(plot_bins), max(plot_bins))\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.tight_layout()\n", + " plt.subplots_adjust(top=0.95)\n", " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()\n", " \n", @@ -489,6 +499,7 @@ " ax.set_xlabel(r'$\\Delta$ '+moment_names[n], fontsize=14)\n", " ax.set_xlim(min(plot_bins), max(plot_bins))\n", " plt.tight_layout()\n", + " plt.subplots_adjust(top=0.95)\n", " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.savefig(loc+'_delta.pdf', dpi=250)\n", " plt.close()" @@ -698,7 +709,7 @@ " sp.set_visible(False)\n", "\n", " shapes = moment_shapes\n", - " marksize = 50\n", + " marksize = 10\n", " a = 1./len(formats)\n", " \n", " fig, ax = plt.subplots()\n", @@ -720,7 +731,7 @@ " f_factor = 0.05 * (s - 1)\n", " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats\n", " for i in data_arr:\n", - " ax_n.scatter(np.exp(in_x+n_factor), i, marker=shapes[n], s=marksize, color=colors[f], alpha=a)\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", " moment_max[n-1].append(max(i))\n", " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", " ax_n.set_ylim(0., max(moment_max[n-1]))\n", @@ -740,7 +751,7 @@ " ax_n = ax\n", "\n", " for key in formats:\n", - " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1)\n", + " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key])\n", " for n in range(1, n_moments_use):\n", " ax.scatter([-1], [0], color='k', alpha=1., marker=shapes[n], s=marksize, label=moment_names[n])\n", " n_factor = 0.05 * (n - 2)\n", @@ -759,7 +770,7 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.scatter(np.exp(in_x+n_factor), mean, marker=shapes[n], s=marksize, alpha=2. * a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=2. * a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", " mean_min[n] = min(mean_min[n], np.min(y_minus))\n", @@ -921,7 +932,7 @@ " in_x = np.log(flat_floats)\n", " a = 1./len(formats)\n", " shapes = moment_shapes\n", - " marksize = 50\n", + " marksize = 10\n", " \n", " def make_patch_spines_invisible(ax):\n", " ax.set_frame_on(True)\n", @@ -948,9 +959,9 @@ " f_factor = 0.05 * (s - 1)\n", " data_arr = data_arr = np.log(nz_stats[f][n])\n", " for i in data_arr:\n", - " ax_n.scatter(np.exp(in_x+n_factor), i, marker=shapes[n], s=marksize, color=colors[f], alpha=a)\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", " moment_max[n-1].append(max(i))\n", - " ax_n.scatter(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), marker=shapes[n], s=marksize, alpha=a, color='k')\n", + " ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k')\n", " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", " ax.set_xscale('log')\n", @@ -968,7 +979,7 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1)\n", + " ax.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", " ax.plot([-1], [0], color='k', label='original', linewidth=1)\n", " for n in range(1, n_moments_use):\n", " ax.scatter([-1], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", @@ -988,11 +999,11 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.scatter(np.exp(in_x+n_factor), mean, marker=shapes[n], s=marksize, alpha=2. * a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", " mean_min[n] = min(mean_min[n], np.min(y_minus))\n", - " ax_n.scatter(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), marker=shapes[n], s=marksize, alpha=a, color='k')\n", + " ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k')\n", " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", " ax.set_xscale('log')\n", @@ -1037,7 +1048,7 @@ " datafilename = 'bpz_euclid_test_10_3.probs'\n", " z_low = 0.01\n", " z_high = 3.51\n", - "# nc_needed = 3\n", + " nc_needed = 3\n", " plotname = 'brighter'\n", " skip_rows = 1\n", " skip_cols = 1\n", @@ -1045,7 +1056,7 @@ " datafilename = 'test_magscat_trainingfile_probs.out'\n", " z_low = 0.005\n", " z_high = 2.11\n", - "# nc_needed = 5\n", + " nc_needed = 5\n", " plotname = 'fainter'\n", " skip_rows = 1\n", " skip_cols = 1\n", @@ -1058,7 +1069,7 @@ " dataset_info[dataset_key]['z_grid'] = z_grid\n", " dataset_info[dataset_key]['delta_z'] = delta_z\n", "\n", - "# dataset_info[dataset_key]['N_GMM'] = nc_needed\n", + " dataset_info[dataset_key]['N_GMM'] = nc_needed# will be overwritten later\n", " dataset_info[dataset_key]['name'] = plotname" ] }, @@ -1072,7 +1083,7 @@ "source": [ "high_res = 300\n", "color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256.\n", - "n_plot = len(color_cycle)\n", + "n_plot = 5#len(color_cycle)\n", "n_moments_use = 4\n", "moment_names = ['integral', 'mean', 'variance', 'kurtosis']\n", "moment_shapes = ['o', '*', '+', 'x']\n", @@ -1108,8 +1119,8 @@ "source": [ "#change all for NERSC\n", "\n", - "floats = [3]#[3, 10, 30, 100]\n", - "sizes = [10]#[100]#[100, 1000, 10000]\n", + "floats = [3, 10, 30, 100]\n", + "sizes = [100]#[100, 1000, 1000]\n", "names = dataset_info.keys()\n", "instantiations = range(0, 1)#range(0, 10)\n", "\n", @@ -1252,6 +1263,15 @@ }, "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, From 64595a267123664ac5c37fadbad69aac2486b151 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Mon, 28 Aug 2017 16:35:49 -0700 Subject: [PATCH 22/96] added try/except for quantization --- qp/pdf.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index f503be0e..6a2a756a 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -271,15 +271,22 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): icdf = icdf[i:f+1] grid = grid[i:f+1] - if vb: print('about to interpolate the CDF: '+str((icdf, grid))) + # if vb: print('about to interpolate the CDF: '+str((icdf, grid))) # if vb: print('made the interpolator') #quantiles self.truth.ppf(quantpoints, ivals=grid[locs]) quantiles = np.flip(quantpoints, axis=0) - while not np.array_equal(quantiles, np.sort(quantiles)): - b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order, ext=1) - quantiles = b(quantpoints) - order -= 1 - if vb: print('order is '+str(order)) + try: + while (order>0) and (not np.array_equal(quantiles, np.sort(quantiles))): + if vb: print('order is '+str(order)) + b = spi.InterpolatedUnivariateSpline(icdf, grid, k=order, ext=1) + quantiles = b(quantpoints) + order -= 1 + assert(not np.any(np.isnan(quantiles))) + except AssertionError: + if vb: print('splines failed, defaulting to optimization for '+str((icdf, grid))) + locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) + quantiles = self.truth.ppf(quantpoints, ivals=grid[locs]) + assert(not np.any(np.isnan(quantiles))) if vb: print('output quantiles = '+str(quantiles)) else: quantiles = self.truth.ppf(quantpoints) @@ -579,6 +586,7 @@ def interpolate(self, using=None, vb=True): # u, i = np.unique(z, return_index=True) # z = u # q = q[i] + quantile_interpolator = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative()#, k=len(quantiles[0])) # if vb: # print(tck) @@ -690,7 +698,10 @@ def approximate(self, points, using=None, scheme=None, vb=True): # Now make the interpolation, using the current scheme: interpolator = self.interpolate(using=using, vb=vb) if vb: print('interpolating between '+str(min(points))+' and '+str(max(points))+' using '+using) - interpolated = interpolator(points) + try: + interpolated = interpolator(points) + except: + print('error in '+using+' interpolation of '+str(points)) interpolated = qp.utils.normalize_gridded((points, interpolated), vb=vb) # interpolated[interpolated<0.] = 0. From 0ba12276f649713b65a11f3f6d84f00686dc7ebd Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Mon, 28 Aug 2017 16:36:15 -0700 Subject: [PATCH 23/96] fiddling with plots --- .../research/analysis.ipynb | 146 +++++++++++------- 1 file changed, 92 insertions(+), 54 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index c2195d5e..8f9ae459 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -144,7 +144,7 @@ " print('preprocessed data in '+str(timeit.default_timer()-start))\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", + " loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['randos'] = randos\n", @@ -168,7 +168,7 @@ "def plot_examples(n_gals_use, dataset_key, bonus=None):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", + " loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus)\n", " with open(loc+'.hkl', 'r') as filename:\n", " info = hickle.load(filename)\n", " randos = info['randos']\n", @@ -266,7 +266,7 @@ " print('made the final ensemble in '+str(timeit.default_timer() - start))\n", " \n", " path = os.path.join(dataset_key, str(N_pdfs))\n", - " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", + " loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['randos'] = randos\n", @@ -285,7 +285,7 @@ " print('calculated '+str(n_moments_use)+' moments of original PDFs in '+str(timeit.default_timer() - start))\n", " \n", " path = os.path.join(dataset_key, str(N_pdfs))\n", - " loc = os.path.join(path, 'pz_moments_'+bonus+dataset_key+str(N_pdfs))\n", + " loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['truth'] = moments\n", @@ -306,11 +306,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ - "def analyze_individual(E, z_grid, N_floats, dataset_key, N_moments=4, i=None):\n", + "def analyze_individual(E, z_grid, N_floats, dataset_key, N_moments=4, i=None, bonus=None):\n", " zlim = (min(z_grid), max(z_grid))\n", " z_range = zlim[-1] - zlim[0]\n", " delta_z = z_range / len(z_grid)\n", @@ -325,7 +325,7 @@ " \n", " qstart = timeit.default_timer()\n", " print('performing quantization')\n", - " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False)\n", + " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=True)\n", " print('finished quantization at '+str(timeit.default_timer() - qstart))\n", " hstart = timeit.default_timer()\n", " print('performing histogramization')\n", @@ -345,8 +345,8 @@ " histogram=inits[f]['histogram'],\n", " samples=inits[f]['samples'], \n", " limits=dataset_info[dataset_key]['z_lim'])\n", - " bonus = str(N_floats)+f+str(i)\n", - " loc = os.path.join(path, dataset_key+str(n_gals_use)+'pzs_'+bonus)\n", + " fbonus = str(N_floats)+f+str(i)\n", + " loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+fbonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['randos'] = randos\n", @@ -358,7 +358,7 @@ " \n", " print('calculating the individual metrics')\n", " metric_start = timeit.default_timer()\n", - " inloc = os.path.join(path, 'pz_moments_post-fit'+str(i)+dataset_key+str(n_gals_use))\n", + " inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus)\n", " with open(inloc+'.hkl', 'r') as infilename:\n", " pz_moments = hickle.load(infilename)\n", " klds, metrics, kld_moments = {}, {}, {}\n", @@ -385,7 +385,7 @@ " print('finished with '+key+' in '+str(timeit.default_timer() - key_start))\n", " print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", - " loc = os.path.join(path, str(N_floats)+'kld_hist'+str(n_gals_use)+dataset_key+str(i))\n", + " loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['z_grid'] = z_grid\n", @@ -393,7 +393,7 @@ " info['pz_klds'] = klds\n", " hickle.dump(info, filename)\n", "\n", - " outloc = os.path.join(path, str(N_floats)+'pz_moments'+str(n_gals_use)+dataset_key+str(i))\n", + " outloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(outloc+'.hkl', 'w') as outfilename:\n", " hickle.dump(pz_moments, outfilename)\n", " \n", @@ -412,7 +412,7 @@ " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", " a = 1./len(formats)\n", - " loc = os.path.join(path, str(N_floats)+'kld_hist'+str(n_gals_use)+dataset_key+str(i))\n", + " loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(loc+'.hkl', 'r') as filename:\n", " info = hickle.load(filename)\n", " z_grid = info['z_grid']\n", @@ -450,7 +450,7 @@ " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", " a = 1./len(formats) \n", - " loc = os.path.join(path, str(N_floats)+'pz_moments'+str(n_gals_use)+dataset_key+str(i))\n", + " loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(loc+'.hkl', 'r') as filename:\n", " moments = hickle.load(filename)\n", " delta_moments = {}\n", @@ -563,7 +563,7 @@ " print('calculated the metrics in '+str(timeit.default_timer() - metric_start))\n", " \n", " path = os.path.join(dataset_key, str(E0.n_pdfs))\n", - " loc = os.path.join(path, str(n_floats_use)+'nz_comp'+str(n_gals_use)+dataset_key+str(i))\n", + " loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", " info['z_grid'] = z_grid\n", @@ -579,14 +579,14 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "def plot_estimators(n_gals_use, dataset_key, n_floats_use, i=None):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, str(n_floats_use)+'nz_comp'+str(n_gals_use)+dataset_key+str(i))\n", + " loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i))\n", " with open(loc+'.hkl', 'r') as filename:\n", " info = hickle.load(filename)\n", " z_grid = info['z_grid']\n", @@ -729,15 +729,15 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats\n", + " data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", " moment_max[n-1].append(max(i))\n", - " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", + " ax_n.set_ylabel(r'$\\log['+moment_names[n]+r']$', fontsize=14)\n", " ax_n.set_ylim(0., max(moment_max[n-1]))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", - " ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())\n", + " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", @@ -774,11 +774,11 @@ " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", " mean_min[n] = min(mean_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", + " ax_n.set_ylabel(r'$\\log['+moment_names[n]+r']$', fontsize=14)\n", " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", - " ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())\n", + " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", @@ -796,7 +796,7 @@ }, "outputs": [], "source": [ - "#similar plot with moments of pz moment distributions?" + "#similar plot with moments of individual pz moment distributions?" ] }, { @@ -883,7 +883,7 @@ " plt.ylabel(r'KLD', fontsize=14)\n", " plt.legend(loc='upper right')\n", " plt.title(r'$\\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_info[dataset_key]['name']+' mock catalog', fontsize=16)\n", - " plt.savefig(loc+'.pdf', dpi=250)\n", + " plt.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()\n", "\n", " plt.figure(figsize=(5, 5))\n", @@ -966,7 +966,7 @@ " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", - " ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())\n", + " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", @@ -1008,7 +1008,7 @@ " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", - " ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())\n", + " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", @@ -1083,7 +1083,7 @@ "source": [ "high_res = 300\n", "color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256.\n", - "n_plot = 5#len(color_cycle)\n", + "n_plot = len(color_cycle)\n", "n_moments_use = 4\n", "moment_names = ['integral', 'mean', 'variance', 'kurtosis']\n", "moment_shapes = ['o', '*', '+', 'x']\n", @@ -1120,9 +1120,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [100]#[100, 1000, 1000]\n", + "sizes = [10]#, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 1)#range(0, 10)\n", + "instantiations = range(0, 1)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1141,7 +1141,7 @@ "execution_count": null, "metadata": { "collapsed": false, - "scrolled": false + "scrolled": true }, "outputs": [], "source": [ @@ -1171,45 +1171,45 @@ " \n", " for i in instantiations:\n", " \n", - " original = 'original'+str(i)\n", + " original = '_original'+str(i)\n", " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - " plot = plot_examples(size, name, bonus=original)\n", + "# plot = plot_examples(size, name, bonus=original)\n", " \n", " z_grid = dataset_info[name]['in_z_grid']\n", " N_comps = dataset_info[name]['N_GMM']\n", " \n", - " postfit = 'post-fit'+str(i)\n", + " postfit = '_postfit'+str(i)\n", " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - " plot = plot_examples(size, name, bonus=postfit)\n", + "# plot = plot_examples(size, name, bonus=postfit)\n", " \n", " for n_floats_use in floats:\n", " \n", " float_start = timeit.default_timer()\n", - " print('started '+str(size)+name+str(n_floats_use)+'\\#'+str(i))\n", + " print('started '+str(size)+name+str(n_floats_use)+'#'+str(i))\n", " \n", " (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, \n", " z_grid,#dataset_info[name]['metric_z_grid'], \n", - " n_floats_use, name, n_moments_use, i=i)\n", + " n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " for f in formats:\n", " fname = str(n_floats_use)+f+str(i)\n", - " plot = plot_examples(size, name, bonus=fname)\n", - " plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", - " plot = plot_individual_moment(size, name, n_floats_use, i=i)\n", + "# plot = plot_examples(size, name, bonus=fname)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + "# plot = plot_individual_moment(size, name, n_floats_use, i=i)\n", " save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", " \n", " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, i=i)\n", - " plot = plot_estimators(size, name, n_floats_use, i=i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", " save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", " print('finished '+str(size)+name+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", " \n", - " plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_metrics(name, size)\n", " \n", - " plot = plot_nz_klds(name, size)\n", - " plot = plot_nz_moments(name, size)\n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)\n", " \n", " print('finished '+str(size)+name+' in '+str(timeit.default_timer() - size_start))\n", " \n", @@ -1235,20 +1235,20 @@ "\n", "for name in names:\n", " for size in sizes:\n", - " path = os.path.join(name, str(size))\n", - " for i in instantiations:\n", + "# path = os.path.join(name, str(size))\n", + "# for i in instantiations:\n", " \n", - " plot = plot_examples(size, name, bonus='original'+str(i))\n", - " plot = plot_examples(size, name, bonus='post-fit'+str(i))\n", + "# plot = plot_examples(size, name, bonus='_original'+str(i))\n", + "# plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", " \n", - " for n_floats_use in floats:\n", + "# for n_floats_use in floats:\n", " \n", - " for f in formats:\n", - " fname = str(n_floats_use)+f+str(i)\n", - " plot = plot_examples(size, name, bonus=fname)\n", - " plot = plot_individual_kld(size, name, n_floats_use, i)\n", - " plot = plot_individual_moment(size, name, n_floats_use, i)\n", - " plot = plot_estimators(size, name, n_floats_use, i)\n", + "# for f in formats:\n", + "# fname = str(n_floats_use)+f+str(i)\n", + "# plot = plot_examples(size, name, bonus=fname)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", + "# plot = plot_individual_moment(size, name, n_floats_use, i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i)\n", " \n", " plot = plot_pz_metrics(name, size)\n", " \n", @@ -1272,6 +1272,44 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dataset_key = 'mg'\n", + "n_gals_use = 10\n", + "c\n", + "path = os.path.join(dataset_key, str(n_gals_use))\n", + "loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", + "with open(loc+'.hkl', 'r') as pz_file:\n", + " pz_stats = hickle.load(pz_file)\n", + " \n", + "print(pz_stats)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dataset_key = 'ss'\n", + "n_gals_use = 10\n", + "\n", + "path = os.path.join(dataset_key, str(n_gals_use))\n", + "loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", + "with open(loc+'.hkl', 'r') as pz_file:\n", + " pz_stats = hickle.load(pz_file)\n", + " \n", + "print(pz_stats)" + ] + }, { "cell_type": "code", "execution_count": null, From 4948b24356e6754742d0e27dc37f24f642353d3c Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Mon, 28 Aug 2017 18:38:17 -0700 Subject: [PATCH 24/96] fiddling with plots --- .../research/analysis.ipynb | 215 ++++++++---------- 1 file changed, 95 insertions(+), 120 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 8f9ae459..1e0fbc62 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -197,7 +197,7 @@ " ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', bins=range(max(modes_max)+1))\n", " plt.xlabel('modes')\n", " plt.ylabel('frequency')\n", - " plt.title(dataset_info[dataset_key]['name']+' data modality distribution ('+str(dataset_info[dataset_key]['N_GMM'])+')', fontsize=16)\n", + " plt.title(dataset_info[dataset_key]['name']+' data modality distribution (median='+str(dataset_info[dataset_key]['N_GMM'])+')', fontsize=16)\n", " plt.savefig(loc+'modality.pdf', dpi=250)\n", " plt.close()\n", " \n", @@ -236,8 +236,6 @@ " zlim = (min(z_grid), max(z_grid))\n", " N_pdfs = len(in_pdfs)\n", " \n", - "# plot_examples(N_pdfs, z_grid, pdfs)\n", - " \n", " start = timeit.default_timer()\n", " print('making the initial ensemble of '+str(N_pdfs)+' PDFs')\n", " E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=False)\n", @@ -325,7 +323,7 @@ " \n", " qstart = timeit.default_timer()\n", " print('performing quantization')\n", - " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=True)\n", + " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False)\n", " print('finished quantization at '+str(timeit.default_timer() - qstart))\n", " hstart = timeit.default_timer()\n", " print('performing histogramization')\n", @@ -716,10 +714,10 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key])\n", " for n in range(1, n_moments_use):\n", - " n_factor = 0.05 * (n - 2)\n", - " ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " ax.scatter([-1], [0], color='k', alpha=1., marker=shapes[n], s=marksize, label=moment_names[n])\n", + " n_factor = 0.1 * (n - 2)\n", " if n>1:\n", " ax_n = ax.twinx()\n", " if n>2:\n", @@ -730,11 +728,17 @@ " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", " data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", - " for i in data_arr:\n", - " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", - " moment_max[n-1].append(max(i))\n", - " ax_n.set_ylabel(r'$\\log['+moment_names[n]+r']$', fontsize=14)\n", - " ax_n.set_ylim(0., max(moment_max[n-1]))\n", + " mean = np.mean(data_arr, axis=0).flatten()\n", + " std = np.std(data_arr, axis=0).flatten()\n", + " y_plus = mean + std\n", + " y_minus = mean - std\n", + " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=2. * a, color=colors[f])\n", + " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", + " pz_mean_max[n] = max(pz_mean_max[n], np.max(y_plus))\n", + " pz_mean_min[n] = min(pz_mean_min[n], np.min(y_minus))\n", + " ax_n.set_ylabel(r'$\\log[\\mathrm{'+moment_names[n]+r'}]$', fontsize=14)\n", + " ax_n.set_ylim((pz_mean_min[n]-1., pz_mean_max[n]+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", @@ -743,18 +747,17 @@ " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_all.pdf', dpi=250)\n", + " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", " \n", " fig, ax = plt.subplots()\n", " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", - "\n", " for key in formats:\n", - " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key])\n", + " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-1], [0], color='k', alpha=1., marker=shapes[n], s=marksize, label=moment_names[n])\n", - " n_factor = 0.05 * (n - 2)\n", + " n_factor = 0.1 * (n - 2)\n", + " ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", " if n>1:\n", " ax_n = ax.twinx()\n", " if n>2:\n", @@ -765,17 +768,11 @@ " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", " data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", - " mean = np.mean(data_arr, axis=0).flatten()\n", - " std = np.std(data_arr, axis=0).flatten()\n", - " y_plus = mean + std\n", - " y_minus = mean - std\n", - " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=2. * a, color=colors[f])\n", - " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", - " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", - " mean_min[n] = min(mean_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'$\\log['+moment_names[n]+r']$', fontsize=14)\n", - " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", + " for i in data_arr:\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", + "# pz_moment_max[n-1].append(max(i))\n", + " ax_n.set_ylabel(r'$\\log[\\mathrm{'+moment_names[n]+r'}]$', fontsize=14)\n", + " ax_n.set_ylim(pz_mean_min[n]-1., pz_mean_max[n]+1.)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", @@ -784,7 +781,7 @@ " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_clean.pdf', dpi=250)\n", + " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" ] }, @@ -918,7 +915,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -938,16 +935,18 @@ " ax.set_frame_on(True)\n", " ax.patch.set_visible(False)\n", " for sp in ax.spines.values():\n", - " sp.set_visible(False)\n", + " sp.set_visible(False) \n", " \n", " fig, ax = plt.subplots()\n", " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + "# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)\n", " for n in range(1, n_moments_use):\n", - " n_factor = 0.05 * (n - 2)\n", - " ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " ax.scatter([-10], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", + " n_factor = 0.1 * (n - 2)\n", + " truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)\n", " if n>1:\n", " ax_n = ax.twinx()\n", " if n>2:\n", @@ -957,33 +956,50 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = data_arr = np.log(nz_stats[f][n])\n", - " for i in data_arr:\n", - " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", - " moment_max[n-1].append(max(i))\n", - " ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k')\n", - " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", - " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", + " data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", + " mean = np.mean(data_arr, axis=0).flatten()\n", + " std = np.std(data_arr, axis=0).flatten()\n", + " y_plus = mean + std\n", + " y_minus = mean - std\n", + " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f])\n", + " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", + " nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", + " nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", + "# data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1))\n", + "# mean = np.mean(data_arr, axis=0).flatten()\n", + "# std = np.std(data_arr, axis=0).flatten()\n", + "# y_plus = mean + std\n", + "# y_minus = mean - std\n", + "# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + "# ax_n.plot(np.exp(in_x+n_factor), mean, linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k', linewidth=0.5)\n", + "# ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color='k')\n", + "# nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", + "# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", + "# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", + " ax_n.set_ylabel(r'$\\Delta\\mathrm{'+moment_names[n]+r'}$', fontsize=14)\n", + " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='lower left')\n", + " ax.legend(loc='upper right')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_all.pdf', dpi=250)\n", + " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", - " \n", + " \n", " fig, ax = plt.subplots()\n", " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", - " ax.plot([-1], [0], color='k', label='original', linewidth=1)\n", + " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + "# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-1], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", - " n_factor = 0.05 * (n - 2)\n", + " n_factor = 0.1 * (n - 2)\n", + " ax.scatter([-10], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)\n", " if n>1:\n", " ax_n = ax.twinx()\n", " if n>2:\n", @@ -993,28 +1009,25 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.log(nz_stats[f][n])#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", - " mean = np.mean(data_arr, axis=0).flatten()\n", - " std = np.std(data_arr, axis=0).flatten()\n", - " y_plus = mean + std\n", - " y_minus = mean - std\n", - " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f])\n", - " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", - " mean_max[n] = max(mean_max[n], np.max(y_plus))\n", - " mean_min[n] = min(mean_min[n], np.min(y_minus))\n", - " ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k')\n", - " ax_n.set_ylabel(moment_names[n], fontsize=14)\n", - " ax_n.set_ylim((mean_min[n]-1., mean_max[n]+1.))\n", + " data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth\n", + " for i in data_arr:\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", + "# nz_moment_max[n-1].append(max(i))\n", + " data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1))\n", + "# for i in data_arr:\n", + "# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a)\n", + "# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", + " ax_n.set_ylabel(r'$\\Delta\\mathrm{'+moment_names[n]+r'}$', fontsize=14)\n", + " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='lower left')\n", + " ax.legend(loc='upper right')\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_clean.pdf', dpi=250)\n", + " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" ] }, @@ -1102,11 +1115,12 @@ "hist_max = [1.]\n", "dist_min = [0.]\n", "dist_max = [0.]\n", - "moment_max = [[]] * (n_moments_use)\n", - "mean_max = -10.*np.ones(n_moments_use)\n", - "mean_min = 10.*np.ones(n_moments_use)\n", + "pz_mean_max = -10.*np.ones(n_moments_use)\n", + "pz_mean_min = 10.*np.ones(n_moments_use)\n", "kld_min = [1.]\n", - "kld_max = [1.]" + "kld_max = [1.]\n", + "nz_mean_max = -10.*np.ones(n_moments_use)\n", + "nz_mean_min = 10.*np.ones(n_moments_use)" ] }, { @@ -1120,9 +1134,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [10]#, 100, 1000]\n", + "sizes = [10, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 1)#0)\n", + "instantiations = range(0, 10)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1140,8 +1154,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, - "scrolled": true + "collapsed": true }, "outputs": [], "source": [ @@ -1235,20 +1248,20 @@ "\n", "for name in names:\n", " for size in sizes:\n", - "# path = os.path.join(name, str(size))\n", - "# for i in instantiations:\n", + " path = os.path.join(name, str(size))\n", + " for i in instantiations:\n", " \n", - "# plot = plot_examples(size, name, bonus='_original'+str(i))\n", - "# plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", + " plot = plot_examples(size, name, bonus='_original'+str(i))\n", + " plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", " \n", - "# for n_floats_use in floats:\n", + " for n_floats_use in floats:\n", " \n", - "# for f in formats:\n", - "# fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", - "# plot = plot_individual_moment(size, name, n_floats_use, i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i)\n", + " for f in formats:\n", + " fname = str(n_floats_use)+f+str(i)\n", + " plot = plot_examples(size, name, bonus=fname)\n", + " plot = plot_individual_kld(size, name, n_floats_use, i)\n", + " plot = plot_individual_moment(size, name, n_floats_use, i)\n", + " plot = plot_estimators(size, name, n_floats_use, i)\n", " \n", " plot = plot_pz_metrics(name, size)\n", " \n", @@ -1272,44 +1285,6 @@ "outputs": [], "source": [] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "dataset_key = 'mg'\n", - "n_gals_use = 10\n", - "c\n", - "path = os.path.join(dataset_key, str(n_gals_use))\n", - "loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", - "with open(loc+'.hkl', 'r') as pz_file:\n", - " pz_stats = hickle.load(pz_file)\n", - " \n", - "print(pz_stats)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "dataset_key = 'ss'\n", - "n_gals_use = 10\n", - "\n", - "path = os.path.join(dataset_key, str(n_gals_use))\n", - "loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", - "with open(loc+'.hkl', 'r') as pz_file:\n", - " pz_stats = hickle.load(pz_file)\n", - " \n", - "print(pz_stats)" - ] - }, { "cell_type": "code", "execution_count": null, From d1861909017470662330615b1caad8cfbc72e394 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Mon, 28 Aug 2017 19:13:36 -0700 Subject: [PATCH 25/96] added actual requirements --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5de357de..7f62c5a0 100644 --- a/setup.py +++ b/setup.py @@ -19,5 +19,5 @@ "Operating System :: OS Independent", "Programming Language :: Python", ], - install_requires=["matplotlib", "numpy", "scipy"] + install_requires=["matplotlib", "numpy", "pathos", "scipy", "sklearn"] ) From 8ed47c281e0235f57eff7ff8b4cc3f4af578f776 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 10:37:26 -0700 Subject: [PATCH 26/96] changing some print statements to be more useful --- .../research/analysis.ipynb | 86 +- .../research/analysis.py | 964 ++++++++++++++++++ 2 files changed, 1004 insertions(+), 46 deletions(-) create mode 100644 docs/desc-0000-qp-photo-z_approximation/research/analysis.py diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 1e0fbc62..ae1a69ea 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -135,7 +135,7 @@ " modality = np.array(modality)\n", " \n", " dataset_info[dataset_key]['N_GMM'] = int(np.median(modality))+1\n", - " print('n_gmm for '+dataset_info[dataset_key]['name']+' = '+str(dataset_info[dataset_key]['N_GMM']))\n", + "# print('n_gmm for '+dataset_info[dataset_key]['name']+' = '+str(dataset_info[dataset_key]['N_GMM']))\n", " \n", " # using the same grid for output as the native format, but doesn't need to be so\n", " dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid']\n", @@ -237,29 +237,29 @@ " N_pdfs = len(in_pdfs)\n", " \n", " start = timeit.default_timer()\n", - " print('making the initial ensemble of '+str(N_pdfs)+' PDFs')\n", + "# print('making the initial ensemble of '+str(N_pdfs)+' PDFs')\n", " E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=False)\n", " print('made the initial ensemble of '+str(N_pdfs)+' PDFs in '+str(timeit.default_timer() - start)) \n", " \n", " #fit GMMs to gridded pdfs based on samples (faster than fitting to gridded)\n", " start = timeit.default_timer()\n", - " print('sampling for the GMM fit')\n", + "# print('sampling for the GMM fit')\n", " samparr = E0.sample(high_res, vb=False)\n", " print('took '+str(high_res)+' samples in '+str(timeit.default_timer() - start))\n", " \n", " start = timeit.default_timer()\n", - " print('making a new ensemble from samples')\n", + "# print('making a new ensemble from samples')\n", " Ei = qp.Ensemble(N_pdfs, samples=samparr, limits=dataset_info[dataset_key]['z_lim'], vb=False)\n", " print('made a new ensemble from samples in '+str(timeit.default_timer() - start))\n", " \n", " start = timeit.default_timer()\n", - " print('fitting the GMM to samples')\n", + "# print('fitting the GMM to samples')\n", " GMMs = Ei.mix_mod_fit(comps=N_comps, vb=False)\n", " print('fit the GMM to samples in '+str(timeit.default_timer() - start))\n", " \n", " #set the GMMS as the truth\n", " start = timeit.default_timer()\n", - " print('making the final ensemble')\n", + "# print('making the final ensemble')\n", " Ef = qp.Ensemble(N_pdfs, truth=GMMs, limits=dataset_info[dataset_key]['z_lim'], vb=False)\n", " print('made the final ensemble in '+str(timeit.default_timer() - start))\n", " \n", @@ -273,7 +273,7 @@ " hickle.dump(info, filename)\n", " \n", " start = timeit.default_timer()\n", - " print('calculating '+str(n_moments_use)+' moments of original PDFs')\n", + "# print('calculating '+str(n_moments_use)+' moments of original PDFs')\n", " in_moments, vals = [], []\n", " for n in range(n_moments_use):\n", " in_moments.append(Ef.moment(n, using='truth', limits=zlim, \n", @@ -322,22 +322,23 @@ " inits[f][ff] = None\n", " \n", " qstart = timeit.default_timer()\n", - " print('performing quantization')\n", + "# print('performing quantization')\n", " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False)\n", - " print('finished quantization at '+str(timeit.default_timer() - qstart))\n", + " print('finished quantization in '+str(timeit.default_timer() - qstart))\n", " hstart = timeit.default_timer()\n", - " print('performing histogramization')\n", + "# print('performing histogramization')\n", " inits['histogram']['histogram'] = Eh.histogramize(N=N_floats, binrange=zlim, vb=False)\n", - " print('finished histogramization at '+str(timeit.default_timer() - hstart))\n", + " print('finished histogramization in '+str(timeit.default_timer() - hstart))\n", " sstart = timeit.default_timer()\n", - " print('performing sampling')\n", + "# print('performing sampling')\n", " inits['samples']['samples'] = Es.sample(samps=N_floats, vb=False)\n", - " print('finished sampling at '+str(timeit.default_timer() - sstart))\n", + " print('finished sampling in '+str(timeit.default_timer() - sstart))\n", " \n", - " print('making the approximate ensembles')\n", + "# print('making the approximate ensembles')\n", + "# start = timeit.default_timer()\n", " Eo = {}\n", " for f in formats:\n", - " start = timeit.default_timer()\n", + " fstart = timeit.default_timer()\n", " Eo[f] = qp.Ensemble(E.n_pdfs, truth=E.truth, \n", " quantiles=inits[f]['quantiles'], \n", " histogram=inits[f]['histogram'],\n", @@ -351,10 +352,10 @@ " info['z_grid'] = z_grid\n", " info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1]\n", " hickle.dump(info, filename)\n", - " print('made '+f+' ensemble in '+str(timeit.default_timer()-start))\n", - " print('made the approximate ensembles')\n", + " print('made '+f+' ensemble in '+str(timeit.default_timer()-fstart))\n", + "# print('made all approximate ensembles in '+str(timeit.default_timer() - start))\n", " \n", - " print('calculating the individual metrics')\n", + "# print('calculating the individual metrics')\n", " metric_start = timeit.default_timer()\n", " inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus)\n", " with open(inloc+'.hkl', 'r') as infilename:\n", @@ -363,7 +364,7 @@ " \n", " for key in Eo.keys():\n", " key_start = timeit.default_timer()\n", - " print('starting '+key)\n", + "# print('starting '+key)\n", " klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z)\n", " samp_metric = qp.PDF(samples=klds[key])\n", " gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], \n", @@ -380,8 +381,8 @@ " vb=False))\n", " pz_moments[key].append(Eo[key].moment(n, using=key, limits=zlim, \n", " dx=delta_z, vb=False))\n", - " print('finished with '+key+' in '+str(timeit.default_timer() - key_start))\n", - " print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", + " print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start))\n", + "# print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", " loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", @@ -524,8 +525,8 @@ " z_range = zlim[-1] - zlim[0]\n", " delta_z = z_range / len(z_grid)\n", " \n", - " print('stacking the ensembles')\n", - " stack_start = timeit.default_timer()\n", + "# print('stacking the ensembles')\n", + "# stack_start = timeit.default_timer()\n", " stacked_pdfs, stacks = {}, {}\n", " for key in formats:\n", " start = timeit.default_timer()\n", @@ -533,13 +534,14 @@ " vb=False)[key])\n", " stacks[key] = stacked_pdfs[key].evaluate(z_grid, using='gridded', norm=True, vb=False)[1]\n", " print('stacked '+key+ ' in '+str(timeit.default_timer()-start))\n", + " stack_start = timeit.default_timer()\n", " stacked_pdfs['truth'] = qp.PDF(gridded=E0.stack(z_grid, using='truth', \n", " vb=False)['truth'])\n", " \n", " stacks['truth'] = stacked_pdfs['truth'].evaluate(z_grid, using='gridded', norm=True, vb=False)[1]\n", - " print('stacked the ensembles in '+str(timeit.default_timer() - stack_start))\n", + " print('stacked truth in '+str(timeit.default_timer() - stack_start))\n", " \n", - " print('calculating the metrics')\n", + "# print('calculating the metrics')\n", " metric_start = timeit.default_timer()\n", " klds, moments = {}, {}\n", " moments['truth'] = []\n", @@ -548,7 +550,9 @@ " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", + " print('calculated the true moments in '+str(timeit.default_timer() - metric_start))\n", " for key in formats:\n", + " metric_start = timeit.default_timer()\n", " klds[key] = qp.utils.calculate_kl_divergence(stacked_pdfs['truth'],\n", " stacked_pdfs[key], \n", " limits=zlim, dx=delta_z)\n", @@ -558,7 +562,7 @@ " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", - " print('calculated the metrics in '+str(timeit.default_timer() - metric_start))\n", + " print('calculated the '+key+' stacked kld and moments in '+str(timeit.default_timer() - metric_start))\n", " \n", " path = os.path.join(dataset_key, str(E0.n_pdfs))\n", " loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i))\n", @@ -1134,9 +1138,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [10, 100, 1000]\n", + "sizes = [10]#, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 10)\n", + "instantiations = range(0, 1)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1172,7 +1176,7 @@ " size=sizes[s]\n", " \n", " size_start = timeit.default_timer()\n", - " print('started '+str(size)+name)\n", + " print('started '+name+str(size))\n", " \n", " path = os.path.join(name, str(size))\n", " if not os.path.exists(path):\n", @@ -1183,6 +1187,8 @@ " randos = all_randos[n][s]\n", " \n", " for i in instantiations:\n", + " i_start = timeit.default_timer()\n", + " print('started '+name+str(size)+' #'+str(i))\n", " \n", " original = '_original'+str(i)\n", " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", @@ -1198,7 +1204,7 @@ " for n_floats_use in floats:\n", " \n", " float_start = timeit.default_timer()\n", - " print('started '+str(size)+name+str(n_floats_use)+'#'+str(i))\n", + " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", " (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, \n", " z_grid,#dataset_info[name]['metric_z_grid'], \n", @@ -1217,16 +1223,16 @@ " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", " save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", - " print('finished '+str(size)+name+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - " \n", + " print('FINISHED '++name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + " print('FINISHED '++name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", "# plot = plot_pz_metrics(name, size)\n", " \n", "# plot = plot_nz_klds(name, size)\n", "# plot = plot_nz_moments(name, size)\n", " \n", - " print('finished '+str(size)+name+' in '+str(timeit.default_timer() - size_start))\n", + " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - " print('finished '+name+' in '+str(timeit.default_timer() - dataset_start))" + " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))" ] }, { @@ -1300,18 +1306,6 @@ "display_name": "Python 2", "language": "python", "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" } }, "nbformat": 4, diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.py b/docs/desc-0000-qp-photo-z_approximation/research/analysis.py new file mode 100644 index 00000000..8e5a3606 --- /dev/null +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.py @@ -0,0 +1,964 @@ + +#comment out for NERSC +# %load_ext autoreload + +#comment out for NERSC +# %autoreload 2 + +from __future__ import print_function + +import hickle +import numpy as np +import random +import cProfile +import pstats +import StringIO +import sys +import os +import timeit +import bisect + +import qp +from qp.utils import calculate_kl_divergence as make_kld + +# np.random.seed(seed=42) +# random.seed(a=42) + +import matplotlib as mpl +import matplotlib.pyplot as plt +mpl.rcParams['text.usetex'] = True +mpl.rcParams['mathtext.rm'] = 'serif' +mpl.rcParams['font.family'] = 'serif' +mpl.rcParams['font.serif'] = 'Times New Roman' +mpl.rcParams['axes.titlesize'] = 16 +mpl.rcParams['axes.labelsize'] = 14 +mpl.rcParams['savefig.dpi'] = 250 +mpl.rcParams['savefig.format'] = 'pdf' +mpl.rcParams['savefig.bbox'] = 'tight' + +#comment out for NERSC +# %matplotlib inline + +def setup_dataset(dataset_key, skip_rows, skip_cols): + start = timeit.default_timer() + with open(dataset_info[dataset_key]['filename'], 'rb') as data_file: + lines = (line.split(None) for line in data_file) + for r in range(skip_rows): + lines.next() + pdfs = np.array([[float(line[k]) for k in range(skip_cols, len(line))] for line in lines]) + print('read in data file in '+str(timeit.default_timer()-start)) + return(pdfs) + +def make_instantiation(dataset_key, n_gals_use, pdfs, bonus=None): + + start = timeit.default_timer() + + n_gals_tot = len(pdfs) + full_gal_range = range(n_gals_tot) + subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use) + pdfs_use = pdfs[subset] + + modality = [] + dpdfs = pdfs_use[:,1:] - pdfs_use[:,:-1] + iqrs = [] + for i in range(n_gals_use): + modality.append(len(np.where(np.diff(np.signbit(dpdfs[i])))[0])) + cdf = np.cumsum(qp.utils.normalize_integral((dataset_info[dataset_key]['z_grid'], pdfs_use[i]), vb=False)[1]) + iqr_lo = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.25)] + iqr_hi = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.75)] + iqrs.append(iqr_hi - iqr_lo) + modality = np.array(modality) + + dataset_info[dataset_key]['N_GMM'] = int(np.median(modality))+1 +# print('n_gmm for '+dataset_info[dataset_key]['name']+' = '+str(dataset_info[dataset_key]['N_GMM'])) + + # using the same grid for output as the native format, but doesn't need to be so + dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid'] + dataset_info[dataset_key]['metric_z_grid'] = dataset_info[dataset_key]['z_grid'] + + print('preprocessed data in '+str(timeit.default_timer()-start)) + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus) + with open(loc+'.hkl', 'w') as filename: + info = {} + info['randos'] = randos + info['z_grid'] = dataset_info[dataset_key]['in_z_grid'] + info['pdfs'] = pdfs_use + info['modes'] = modality + info['iqrs'] = iqrs + hickle.dump(info, filename) + + return(pdfs_use) + +def plot_examples(n_gals_use, dataset_key, bonus=None): + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus) + with open(loc+'.hkl', 'r') as filename: + info = hickle.load(filename) + randos = info['randos'] + z_grid = info['z_grid'] + pdfs = info['pdfs'] + + plt.figure() + for i in range(n_plot): + data = (z_grid, pdfs[randos[i]]) + data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data)) + pz_max.append(np.max(data)) + plt.plot(data[0], data[1], label=dataset_info[dataset_key]['name']+' \#'+str(randos[i]), color=color_cycle[i]) + plt.xlabel(r'$z$', fontsize=14) + plt.ylabel(r'$p(z)$', fontsize=14) + plt.xlim(min(z_grid), max(z_grid)) + plt.ylim(0., max(pz_max)) + plt.title(dataset_info[dataset_key]['name']+' data examples', fontsize=16) + plt.legend() + plt.savefig(loc+'.pdf', dpi=250) + plt.close() + + if 'modes' in info.keys(): + modes = info['modes'] + modes_max.append(np.max(modes)) + plt.figure() + ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', bins=range(max(modes_max)+1)) + plt.xlabel('modes') + plt.ylabel('frequency') + plt.title(dataset_info[dataset_key]['name']+' data modality distribution (median='+str(dataset_info[dataset_key]['N_GMM'])+')', fontsize=16) + plt.savefig(loc+'modality.pdf', dpi=250) + plt.close() + + if 'iqrs' in info.keys(): + iqrs = info['iqrs'] + iqr_min.append(min(iqrs)) + iqr_max.append(max(iqrs)) + plot_bins = np.linspace(min(iqr_min), max(iqr_max), 20) + plt.figure() + ax = plt.hist(iqrs, bins=plot_bins, color='k', alpha=1./n_plot, histtype='stepfilled') + plt.xlabel('IQR') + plt.ylabel('frequency') + plt.title(dataset_info[dataset_key]['name']+' data IQR distribution', fontsize=16) + plt.savefig(loc+'iqrs.pdf', dpi=250) + plt.close() + +def setup_from_grid(dataset_key, in_pdfs, z_grid, N_comps, high_res=1000, bonus=None): + + #read in the data, happens to be gridded + zlim = (min(z_grid), max(z_grid)) + N_pdfs = len(in_pdfs) + + start = timeit.default_timer() +# print('making the initial ensemble of '+str(N_pdfs)+' PDFs') + E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=False) + print('made the initial ensemble of '+str(N_pdfs)+' PDFs in '+str(timeit.default_timer() - start)) + + #fit GMMs to gridded pdfs based on samples (faster than fitting to gridded) + start = timeit.default_timer() +# print('sampling for the GMM fit') + samparr = E0.sample(high_res, vb=False) + print('took '+str(high_res)+' samples in '+str(timeit.default_timer() - start)) + + start = timeit.default_timer() +# print('making a new ensemble from samples') + Ei = qp.Ensemble(N_pdfs, samples=samparr, limits=dataset_info[dataset_key]['z_lim'], vb=False) + print('made a new ensemble from samples in '+str(timeit.default_timer() - start)) + + start = timeit.default_timer() +# print('fitting the GMM to samples') + GMMs = Ei.mix_mod_fit(comps=N_comps, vb=False) + print('fit the GMM to samples in '+str(timeit.default_timer() - start)) + + #set the GMMS as the truth + start = timeit.default_timer() +# print('making the final ensemble') + Ef = qp.Ensemble(N_pdfs, truth=GMMs, limits=dataset_info[dataset_key]['z_lim'], vb=False) + print('made the final ensemble in '+str(timeit.default_timer() - start)) + + path = os.path.join(dataset_key, str(N_pdfs)) + loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus) + with open(loc+'.hkl', 'w') as filename: + info = {} + info['randos'] = randos + info['z_grid'] = z_grid + info['pdfs'] = Ef.evaluate(z_grid, using='truth', norm=True, vb=False)[1] + hickle.dump(info, filename) + + start = timeit.default_timer() +# print('calculating '+str(n_moments_use)+' moments of original PDFs') + in_moments, vals = [], [] + for n in range(n_moments_use): + in_moments.append(Ef.moment(n, using='truth', limits=zlim, + dx=delta_z, vb=False)) + vals.append(n) + moments = np.array(in_moments) + print('calculated '+str(n_moments_use)+' moments of original PDFs in '+str(timeit.default_timer() - start)) + + path = os.path.join(dataset_key, str(N_pdfs)) + loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus) + with open(loc+'.hkl', 'w') as filename: + info = {} + info['truth'] = moments + info['orders'] = vals + hickle.dump(info, filename) + + return(Ef) + +def analyze_individual(E, z_grid, N_floats, dataset_key, N_moments=4, i=None, bonus=None): + zlim = (min(z_grid), max(z_grid)) + z_range = zlim[-1] - zlim[0] + delta_z = z_range / len(z_grid) + path = os.path.join(dataset_key, str(n_gals_use)) + + Eq, Eh, Es = E, E, E + inits = {} + for f in formats: + inits[f] = {} + for ff in formats: + inits[f][ff] = None + + qstart = timeit.default_timer() +# print('performing quantization') + inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False) + print('finished quantization in '+str(timeit.default_timer() - qstart)) + hstart = timeit.default_timer() +# print('performing histogramization') + inits['histogram']['histogram'] = Eh.histogramize(N=N_floats, binrange=zlim, vb=False) + print('finished histogramization in '+str(timeit.default_timer() - hstart)) + sstart = timeit.default_timer() +# print('performing sampling') + inits['samples']['samples'] = Es.sample(samps=N_floats, vb=False) + print('finished sampling in '+str(timeit.default_timer() - sstart)) + +# print('making the approximate ensembles') +# start = timeit.default_timer() + Eo = {} + for f in formats: + fstart = timeit.default_timer() + Eo[f] = qp.Ensemble(E.n_pdfs, truth=E.truth, + quantiles=inits[f]['quantiles'], + histogram=inits[f]['histogram'], + samples=inits[f]['samples'], + limits=dataset_info[dataset_key]['z_lim']) + fbonus = str(N_floats)+f+str(i) + loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+fbonus) + with open(loc+'.hkl', 'w') as filename: + info = {} + info['randos'] = randos + info['z_grid'] = z_grid + info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1] + hickle.dump(info, filename) + print('made '+f+' ensemble in '+str(timeit.default_timer()-fstart)) +# print('made all approximate ensembles in '+str(timeit.default_timer() - start)) + +# print('calculating the individual metrics') + metric_start = timeit.default_timer() + inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus) + with open(inloc+'.hkl', 'r') as infilename: + pz_moments = hickle.load(infilename) + klds, metrics, kld_moments = {}, {}, {} + + for key in Eo.keys(): + key_start = timeit.default_timer() +# print('starting '+key) + klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z) + samp_metric = qp.PDF(samples=klds[key]) + gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], + using='samples', vb=False) + metrics[key] = qp.PDF(truth=gmm_metric) + + + pz_moments[key], kld_moments[key] = [], [] + for n in range(N_moments): + kld_moments[key].append(qp.utils.calculate_moment(metrics[key], n, + using='truth', + limits=zlim, + dx=delta_z, + vb=False)) + pz_moments[key].append(Eo[key].moment(n, using=key, limits=zlim, + dx=delta_z, vb=False)) + print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start)) +# print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start)) + + loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) + with open(loc+'.hkl', 'w') as filename: + info = {} + info['z_grid'] = z_grid + info['N_floats'] = N_floats + info['pz_klds'] = klds + hickle.dump(info, filename) + + outloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) + with open(outloc+'.hkl', 'w') as outfilename: + hickle.dump(pz_moments, outfilename) + + return(Eo, klds, kld_moments, pz_moments) + +def plot_individual_kld(n_gals_use, dataset_key, N_floats, i): + + path = os.path.join(dataset_key, str(n_gals_use)) + a = 1./len(formats) + loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) + with open(loc+'.hkl', 'r') as filename: + info = hickle.load(filename) + z_grid = info['z_grid'] + N_floats = info['N_floats'] + pz_klds = info['pz_klds'] + + plt.figure() + plot_bins = np.linspace(-3., 3., 20) + for key in pz_klds.keys(): + logdata = qp.utils.safelog(pz_klds[key]) + kld_hist = plt.hist(logdata, color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', + label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2) + hist_max.append(max(kld_hist[0])) + dist_min.append(min(logdata)) + dist_max.append(max(logdata)) + plt.legend() + plt.ylabel('frequency', fontsize=14) + plt.xlabel(r'$\log[KLD]$', fontsize=14) +# plt.xlim(min(dist_min), max(dist_max)) +# plt.ylim(0., max(hist_max)) + plt.title(dataset_info[dataset_key]['name']+r' data $p(KLD)$ with $N_{f}='+str(N_floats)+r'$', fontsize=16) + plt.savefig(loc+'.pdf', dpi=250) + plt.close() + +def plot_individual_moment(n_gals_use, dataset_key, N_floats, i): + + path = os.path.join(dataset_key, str(n_gals_use)) + a = 1./len(formats) + loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) + with open(loc+'.hkl', 'r') as filename: + moments = hickle.load(filename) + delta_moments = {} + + plt.figure(figsize=(5, 5 * (n_moments_use-1))) + for n in range(1, n_moments_use): + ax = plt.subplot(n_moments_use, 1, n) + ends = (min(moments['truth'][n]), max(moments['truth'][n])) + for key in formats: + ends = (min(ends[0], min(moments[key][n])), max(ends[-1], max(moments[key][n]))) + plot_bins = np.linspace(ends[0], ends[-1], 20) + ax.hist([-100], color='k', alpha=a, histtype='stepfilled', edgecolor='k', label='truth', + linestyle='-', ls='-') + ax.hist(moments['truth'][n], bins=plot_bins, color='k', alpha=a, histtype='stepfilled', normed=True) + ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a) + for key in formats: + ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, + linestyle=stepstyles[key], ls=stepstyles[key], lw=2) + ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True) + ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2) + ax.legend() + ax.set_ylabel('frequency', fontsize=14) + ax.set_xlabel(moment_names[n], fontsize=14) + ax.set_xlim(min(plot_bins), max(plot_bins)) + plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16) + plt.tight_layout() + plt.subplots_adjust(top=0.95) + plt.savefig(loc+'.pdf', dpi=250) + plt.close() + + plt.figure(figsize=(5, 5 * (n_moments_use-1))) + for n in range(1, n_moments_use): + ax = plt.subplot(n_moments_use, 1, n) + ends = (100., -100.) + for key in formats: + delta_moments[key] = moments[key] - moments['truth'] + ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n]))) + plot_bins = np.linspace(ends[0], ends[-1], 20) + for key in formats: + ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, + linestyle=stepstyles[key], ls=stepstyles[key], lw=2) + ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True) + ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2) + ax.legend() + ax.set_ylabel('frequency', fontsize=14) + ax.set_xlabel(r'$\Delta$ '+moment_names[n], fontsize=14) + ax.set_xlim(min(plot_bins), max(plot_bins)) + plt.tight_layout() + plt.subplots_adjust(top=0.95) + plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16) + plt.savefig(loc+'_delta.pdf', dpi=250) + plt.close() + +def analyze_stacked(E0, E, z_grid, n_floats_use, dataset_key, i=None): + + zlim = (min(z_grid), max(z_grid)) + z_range = zlim[-1] - zlim[0] + delta_z = z_range / len(z_grid) + +# print('stacking the ensembles') +# stack_start = timeit.default_timer() + stacked_pdfs, stacks = {}, {} + for key in formats: + start = timeit.default_timer() + stacked_pdfs[key] = qp.PDF(gridded=E[key].stack(z_grid, using=key, + vb=False)[key]) + stacks[key] = stacked_pdfs[key].evaluate(z_grid, using='gridded', norm=True, vb=False)[1] + print('stacked '+key+ ' in '+str(timeit.default_timer()-start)) + stack_start = timeit.default_timer() + stacked_pdfs['truth'] = qp.PDF(gridded=E0.stack(z_grid, using='truth', + vb=False)['truth']) + + stacks['truth'] = stacked_pdfs['truth'].evaluate(z_grid, using='gridded', norm=True, vb=False)[1] + print('stacked truth in '+str(timeit.default_timer() - stack_start)) + +# print('calculating the metrics') + metric_start = timeit.default_timer() + klds, moments = {}, {} + moments['truth'] = [] + for n in range(n_moments_use): + moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, + limits=zlim, + dx=delta_z, + vb=False)) + print('calculated the true moments in '+str(timeit.default_timer() - metric_start)) + for key in formats: + metric_start = timeit.default_timer() + klds[key] = qp.utils.calculate_kl_divergence(stacked_pdfs['truth'], + stacked_pdfs[key], + limits=zlim, dx=delta_z) + moments[key] = [] + for n in range(n_moments_use): + moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n, + limits=zlim, + dx=delta_z, + vb=False)) + print('calculated the '+key+' stacked kld and moments in '+str(timeit.default_timer() - metric_start)) + + path = os.path.join(dataset_key, str(E0.n_pdfs)) + loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i)) + with open(loc+'.hkl', 'w') as filename: + info = {} + info['z_grid'] = z_grid + info['stacks'] = stacks + info['klds'] = klds + info['moments'] = moments + hickle.dump(info, filename) + + return(stacked_pdfs, klds, moments) + +def plot_estimators(n_gals_use, dataset_key, n_floats_use, i=None): + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i)) + with open(loc+'.hkl', 'r') as filename: + info = hickle.load(filename) + z_grid = info['z_grid'] + stacks = info['stacks'] + klds = info['klds'] + + plt.figure() + plt.plot(z_grid, stacks['truth'], color='black', lw=3, alpha=0.3, label='truth') + nz_max.append(max(stacks['truth'])) + for key in formats: + nz_max.append(max(stacks[key])) + plt.plot(z_grid, stacks[key], label=key+r' KLD='+str(klds[key]), color=colors[key], linestyle=styles[key]) + plt.xlabel(r'$z$', fontsize=14) + plt.ylabel(r'$\hat{n}(z)$', fontsize=14) + plt.xlim(min(z_grid), max(z_grid)) +# plt.ylim(0., max(nz_max)) + plt.legend() + plt.title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ with $N_{f}='+str(n_floats_use)+r'$', fontsize=16) + plt.savefig(loc+'.pdf', dpi=250) + plt.close() + +def save_moments(dataset_key, n_gals_use, N_f, stat, stat_name): + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key) + + if os.path.exists(loc+'.hkl'): + with open(loc+'.hkl', 'r') as stat_file: + #read in content of list/dict + stats = hickle.load(stat_file) + else: + stats = {} + stats['N_f'] = [] + for f in stat.keys(): + stats[f] = [] + for m in range(n_moments_use): + stats[f].append([]) + + if N_f not in stats['N_f']: + stats['N_f'].append(N_f) + for f in stat.keys(): + for m in range(n_moments_use): + stats[f][m].append([]) + + where_N_f = stats['N_f'].index(N_f) + + for f in stat.keys(): + for m in range(n_moments_use): + stats[f][m][where_N_f].append(stat[f][m]) + + with open(loc+'.hkl', 'w') as stat_file: + hickle.dump(stats, stat_file) + +def plot_pz_metrics(dataset_key, n_gals_use): + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, 'pz_kld_moments'+str(n_gals_use)+dataset_key) + with open(loc+'.hkl', 'r') as pz_file: + pz_stats = hickle.load(pz_file) +# if len(instantiations) == 10: +# for f in formats: +# for n in range(n_moments_use): +# if not np.shape(pz_stats[f][n]) == (4, 10): +# for s in range(len(pz_stats[f][n])): +# pz_stats[f][n][s] = np.array(np.array(pz_stats[f][n][s])[:10]).flatten() + + flat_floats = np.array(pz_stats['N_f']).flatten() + in_x = np.log(flat_floats) + + def make_patch_spines_invisible(ax): + ax.set_frame_on(True) + ax.patch.set_visible(False) + for sp in ax.spines.values(): + sp.set_visible(False) + + shapes = moment_shapes + marksize = 10 + a = 1./len(formats) + + fig, ax = plt.subplots() + fig.subplots_adjust(right=1.) + ax_n = ax + for key in formats: + ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key]) + for n in range(1, n_moments_use): + ax.scatter([-1], [0], color='k', alpha=1., marker=shapes[n], s=marksize, label=moment_names[n]) + n_factor = 0.1 * (n - 2) + if n>1: + ax_n = ax.twinx() + if n>2: + ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) + make_patch_spines_invisible(ax_n) + ax_n.spines["right"].set_visible(True) + for s in range(len(formats)): + f = formats[s] + f_factor = 0.05 * (s - 1) + data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats + mean = np.mean(data_arr, axis=0).flatten() + std = np.std(data_arr, axis=0).flatten() + y_plus = mean + std + y_minus = mean - std + y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) + ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=2. * a, color=colors[f]) + ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f]) + pz_mean_max[n] = max(pz_mean_max[n], np.max(y_plus)) + pz_mean_min[n] = min(pz_mean_min[n], np.min(y_minus)) + ax_n.set_ylabel(r'$\log[\mathrm{'+moment_names[n]+r'}]$', fontsize=14) + ax_n.set_ylim((pz_mean_min[n]-1., pz_mean_max[n]+1.)) + ax.set_xscale('log') + ax.set_xticks(flat_floats) + ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) + ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) + ax.set_xlabel('number of parameters', fontsize=14) + ax.set_title(dataset_info[dataset_key]['name']+r' data $\log[KLD]$ moments', fontsize=16) + ax.legend(loc='lower left') + fig.tight_layout() + fig.savefig(loc+'_clean.pdf', dpi=250) + plt.close() + + fig, ax = plt.subplots() + fig.subplots_adjust(right=1.) + ax_n = ax + for key in formats: + ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1) + for n in range(1, n_moments_use): + n_factor = 0.1 * (n - 2) + ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n)) + if n>1: + ax_n = ax.twinx() + if n>2: + ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) + make_patch_spines_invisible(ax_n) + ax_n.spines["right"].set_visible(True) + for s in range(len(formats)): + f = formats[s] + f_factor = 0.05 * (s - 1) + data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats + for i in data_arr: + ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a) +# pz_moment_max[n-1].append(max(i)) + ax_n.set_ylabel(r'$\log[\mathrm{'+moment_names[n]+r'}]$', fontsize=14) + ax_n.set_ylim(pz_mean_min[n]-1., pz_mean_max[n]+1.) + ax.set_xscale('log') + ax.set_xticks(flat_floats) + ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) + ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) + ax.set_xlabel('number of parameters', fontsize=14) + ax.set_title(dataset_info[dataset_key]['name']+r' data $\log[KLD]$ moments', fontsize=16) + ax.legend(loc='lower left') + fig.tight_layout() + fig.savefig(loc+'_all.pdf', dpi=250) + plt.close() + +#similar plot with moments of individual pz moment distributions? + +def save_nz_metrics(dataset_key, n_gals_use, N_f, nz_klds, stat_name): + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key) + if os.path.exists(loc+'.hkl'): + with open(loc+'.hkl', 'r') as nz_file: + #read in content of list/dict + nz_stats = hickle.load(nz_file) + else: + nz_stats = {} + nz_stats['N_f'] = [] + for f in formats: + nz_stats[f] = [] + + if N_f not in nz_stats['N_f']: + nz_stats['N_f'].append(N_f) + for f in formats: + nz_stats[f].append([]) + + where_N_f = nz_stats['N_f'].index(N_f) + + for f in formats: + nz_stats[f][where_N_f].append(nz_klds[f]) + + with open(loc+'.hkl', 'w') as nz_file: + hickle.dump(nz_stats, nz_file) + +def plot_nz_klds(dataset_key, n_gals_use): + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, 'nz_klds'+str(n_gals_use)+dataset_key) + with open(loc+'.hkl', 'r') as nz_file: + nz_stats = hickle.load(nz_file) + if len(instantiations) == 10: + for f in formats: + if not np.shape(nz_stats[f]) == (4, 10): + for s in range(len(floats)): + nz_stats[f][s] = np.array(np.array(nz_stats[f][s])[:10]).flatten() + + flat_floats = np.array(nz_stats['N_f']).flatten() + + plt.figure(figsize=(5, 5)) + for f in formats: + data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f + n_i = len(data_arr) + a = 1./len(formats)#1./n_i + plt.plot([10. * max(flat_floats), 10. * max(flat_floats)], [1., 10.], color=colors[f], alpha=a, label=f, linestyle=styles[f]) + for i in data_arr: + plt.plot(flat_floats, i, color=colors[f], alpha=a, linestyle=styles[f]) + kld_min.append(min(i)) + kld_max.append(max(i)) + plt.semilogy() + plt.semilogx() + plt.xticks(flat_floats, [str(ff) for ff in flat_floats]) + plt.ylim(min(kld_min) / 10., 10. * max(kld_max)) + plt.xlim(min(flat_floats) / 3., max(flat_floats) * 3.) + plt.xlabel(r'number of parameters', fontsize=14) + plt.ylabel(r'KLD', fontsize=14) + plt.legend(loc='upper right') + plt.title(r'$\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_info[dataset_key]['name']+' mock catalog', fontsize=16) + plt.savefig(loc+'_all.pdf', dpi=250) + plt.close() + + plt.figure(figsize=(5, 5)) + a = 1./len(formats) + for f in formats: + data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f + plt.plot([10. * max(flat_floats), 10. * max(flat_floats)], [1., 10.], color=colors[f], label=f, linestyle=styles[f]) + kld_min.append(np.min(data_arr)) + kld_max.append(np.max(data_arr)) + mean = np.mean(data_arr, axis=0) + std = np.std(data_arr, axis=0) + x_cor = np.array([flat_floats[:-1], flat_floats[:-1], flat_floats[1:], flat_floats[1:]]) + y_plus = mean + std + y_minus = mean - std + y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) + plt.plot(flat_floats, mean, color=colors[f], linestyle=styles[f]) + plt.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.) + plt.semilogy() + plt.semilogx() + plt.xticks(flat_floats, [str(ff) for ff in flat_floats]) + plt.ylim(min(kld_min) / 10., 10. * max(kld_max)) + plt.xlim(min(flat_floats), max(flat_floats)) + plt.xlabel(r'number of parameters', fontsize=14) + plt.ylabel(r'KLD', fontsize=14) + plt.legend(loc='upper right') + plt.title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ KLD', fontsize=16) + plt.savefig(loc+'_clean.pdf', dpi=250) + plt.close() + +def plot_nz_moments(dataset_key, n_gals_use): + + path = os.path.join(dataset_key, str(n_gals_use)) + loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key) + with open(loc+'.hkl', 'r') as nz_file: + nz_stats = hickle.load(nz_file) + flat_floats = np.array(nz_stats['N_f']).flatten() + in_x = np.log(flat_floats) + a = 1./len(formats) + shapes = moment_shapes + marksize = 10 + + def make_patch_spines_invisible(ax): + ax.set_frame_on(True) + ax.patch.set_visible(False) + for sp in ax.spines.values(): + sp.set_visible(False) + + fig, ax = plt.subplots() + fig.subplots_adjust(right=1.) + ax_n = ax + for key in formats: + ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1) +# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.) + for n in range(1, n_moments_use): + ax.scatter([-10], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n]) + n_factor = 0.1 * (n - 2) + truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1) + if n>1: + ax_n = ax.twinx() + if n>2: + ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) + make_patch_spines_invisible(ax_n) + ax_n.spines["right"].set_visible(True) + for s in range(len(formats)): + f = formats[s] + f_factor = 0.05 * (s - 1) + data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats + mean = np.mean(data_arr, axis=0).flatten() + std = np.std(data_arr, axis=0).flatten() + y_plus = mean + std + y_minus = mean - std + y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) + ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f]) + ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f]) + nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus)) + nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus)) +# data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)) +# mean = np.mean(data_arr, axis=0).flatten() +# std = np.std(data_arr, axis=0).flatten() +# y_plus = mean + std +# y_minus = mean - std +# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) +# ax_n.plot(np.exp(in_x+n_factor), mean, linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k', linewidth=0.5) +# ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color='k') +# nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus)) +# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus)) +# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k') + ax_n.set_ylabel(r'$\Delta\mathrm{'+moment_names[n]+r'}$', fontsize=14) + ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1)) + ax.set_xscale('log') + ax.set_xticks(flat_floats) + ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) + ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) + ax.set_xlabel('number of parameters', fontsize=14) + ax.set_title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ moments', fontsize=16) + ax.legend(loc='upper right') + fig.tight_layout() + fig.savefig(loc+'_clean.pdf', dpi=250) + plt.close() + + fig, ax = plt.subplots() + fig.subplots_adjust(right=1.) + ax_n = ax + for key in formats: + ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1) +# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.) + for n in range(1, n_moments_use): + n_factor = 0.1 * (n - 2) + ax.scatter([-10], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n)) + truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1) + if n>1: + ax_n = ax.twinx() + if n>2: + ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) + make_patch_spines_invisible(ax_n) + ax_n.spines["right"].set_visible(True) + for s in range(len(formats)): + f = formats[s] + f_factor = 0.05 * (s - 1) + data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth + for i in data_arr: + ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a) +# nz_moment_max[n-1].append(max(i)) + data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)) +# for i in data_arr: +# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a) +# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k') + ax_n.set_ylabel(r'$\Delta\mathrm{'+moment_names[n]+r'}$', fontsize=14) + ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1)) + ax.set_xscale('log') + ax.set_xticks(flat_floats) + ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) + ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) + ax.set_xlabel('number of parameters', fontsize=14) + ax.set_title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ moments', fontsize=16) + ax.legend(loc='upper right') + fig.tight_layout() + fig.savefig(loc+'_all.pdf', dpi=250) + plt.close() + +dataset_info = {} +delta = 0.01 + +dataset_keys = ['mg', 'ss'] + +for dataset_key in dataset_keys: + dataset_info[dataset_key] = {} + if dataset_key == 'mg': + datafilename = 'bpz_euclid_test_10_3.probs' + z_low = 0.01 + z_high = 3.51 + nc_needed = 3 + plotname = 'brighter' + skip_rows = 1 + skip_cols = 1 + elif dataset_key == 'ss': + datafilename = 'test_magscat_trainingfile_probs.out' + z_low = 0.005 + z_high = 2.11 + nc_needed = 5 + plotname = 'fainter' + skip_rows = 1 + skip_cols = 1 + dataset_info[dataset_key]['filename'] = datafilename + + dataset_info[dataset_key]['z_lim'] = (z_low, z_high) + z_grid = np.arange(z_low, z_high, delta, dtype='float')#np.arange(z_low, z_high + delta, delta, dtype='float') + z_range = z_high - z_low + delta_z = z_range / len(z_grid) + dataset_info[dataset_key]['z_grid'] = z_grid + dataset_info[dataset_key]['delta_z'] = delta_z + + dataset_info[dataset_key]['N_GMM'] = nc_needed# will be overwritten later + dataset_info[dataset_key]['name'] = plotname + +high_res = 300 +color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256. +n_plot = len(color_cycle) +n_moments_use = 4 +moment_names = ['integral', 'mean', 'variance', 'kurtosis'] +moment_shapes = ['o', '*', '+', 'x'] + +#make this a more clever structure, i.e. a dict +formats = ['quantiles', 'histogram', 'samples'] +colors = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen'} +styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'} +stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'} + +iqr_min = [3.5] +iqr_max = [delta] +modes_max = [0] +pz_max = [1.] +nz_max = [1.] +hist_max = [1.] +dist_min = [0.] +dist_max = [0.] +pz_mean_max = -10.*np.ones(n_moments_use) +pz_mean_min = 10.*np.ones(n_moments_use) +kld_min = [1.] +kld_max = [1.] +nz_mean_max = -10.*np.ones(n_moments_use) +nz_mean_min = 10.*np.ones(n_moments_use) + +#change all for NERSC + +floats = [3, 10, 30, 100] +sizes = [100]#, 1000] +names = dataset_info.keys() +instantiations = range(0, 10) + +all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names] + +# the "pipeline" + +for n in range(len(names)): + name = names[n] + + dataset_start = timeit.default_timer() + print('started '+name) + + pdfs = setup_dataset(name, skip_rows, skip_cols) + + for s in range(len(sizes)): + size=sizes[s] + + size_start = timeit.default_timer() + print('started '+name+str(size)) + + path = os.path.join(name, str(size)) + if not os.path.exists(path): + os.makedirs(path) + + n_gals_use = size + + randos = all_randos[n][s] + + for i in instantiations: + i_start = timeit.default_timer() + print('started '+name+str(size)+' #'+str(i)) + + original = '_original'+str(i) + pdfs_use = make_instantiation(name, size, pdfs, bonus=original) +# plot = plot_examples(size, name, bonus=original) + + z_grid = dataset_info[name]['in_z_grid'] + N_comps = dataset_info[name]['N_GMM'] + + postfit = '_postfit'+str(i) + catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit) +# plot = plot_examples(size, name, bonus=postfit) + + for n_floats_use in floats: + + float_start = timeit.default_timer() + print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)) + + (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, + z_grid,#dataset_info[name]['metric_z_grid'], + n_floats_use, name, n_moments_use, i=i, bonus=postfit) + for f in formats: + fname = str(n_floats_use)+f+str(i) +# plot = plot_examples(size, name, bonus=fname) +# plot = plot_individual_kld(size, name, n_floats_use, i=i) +# plot = plot_individual_moment(size, name, n_floats_use, i=i) + save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments') + save_moments(name, size, n_floats_use, pz_moments, 'pz_moments') + + (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], + n_floats_use, name, i=i) +# plot = plot_estimators(size, name, n_floats_use, i=i) + save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds') + save_moments(name, size, n_floats_use, nz_moments, 'nz_moments') + + print('FINISHED '++name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start)) + print('FINISHED '++name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start)) +# plot = plot_pz_metrics(name, size) + +# plot = plot_nz_klds(name, size) +# plot = plot_nz_moments(name, size) + + print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start)) + + print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start)) + +#comment out for NERSC +# for name in names: +# for size in sizes: +# path = os.path.join(name, str(size)) +# for i in instantiations: +# +# plot = plot_examples(size, name, bonus='_original'+str(i)) +# plot = plot_examples(size, name, bonus='_postfit'+str(i)) +# +# for n_floats_use in floats: +# +# for f in formats: +# fname = str(n_floats_use)+f+str(i) +# plot = plot_examples(size, name, bonus=fname) +# plot = plot_individual_kld(size, name, n_floats_use, i) +# plot = plot_individual_moment(size, name, n_floats_use, i) +# plot = plot_estimators(size, name, n_floats_use, i) +# +# plot = plot_pz_metrics(name, size) +# +# plot = plot_nz_klds(name, size) +# plot = plot_nz_moments(name, size) From fb201ded1ec4b32ac59a281ab12b3f9a25009eb4 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 15:53:14 -0700 Subject: [PATCH 27/96] debugging kld --- qp/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qp/utils.py b/qp/utils.py index da1ac476..e2b22b94 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -323,7 +323,7 @@ def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): # Calculate the KLD from q to p Dpq = np.dot(pn * logquotient, np.ones(len(grid)) * dx) if Dpq < 0.: - return(Dpq, pn, qn, dx) + print('broken KLD: '+str((Dpq, pn, qn, dx))) return Dpq def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): From 4542fdd3eea08411d6d641625c4aaf892182f81d Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 15:58:21 -0700 Subject: [PATCH 28/96] debugging kld --- qp/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/qp/utils.py b/qp/utils.py index e2b22b94..a629d697 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -324,6 +324,7 @@ def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): Dpq = np.dot(pn * logquotient, np.ones(len(grid)) * dx) if Dpq < 0.: print('broken KLD: '+str((Dpq, pn, qn, dx))) + Dpq = epsilon return Dpq def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): From 53a72468fc2c1b9695fc37cf4d9ba3623a52eeef Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 15:59:43 -0700 Subject: [PATCH 29/96] removing spurious file --- .../research/analysis.py | 964 ------------------ 1 file changed, 964 deletions(-) delete mode 100644 docs/desc-0000-qp-photo-z_approximation/research/analysis.py diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.py b/docs/desc-0000-qp-photo-z_approximation/research/analysis.py deleted file mode 100644 index 8e5a3606..00000000 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.py +++ /dev/null @@ -1,964 +0,0 @@ - -#comment out for NERSC -# %load_ext autoreload - -#comment out for NERSC -# %autoreload 2 - -from __future__ import print_function - -import hickle -import numpy as np -import random -import cProfile -import pstats -import StringIO -import sys -import os -import timeit -import bisect - -import qp -from qp.utils import calculate_kl_divergence as make_kld - -# np.random.seed(seed=42) -# random.seed(a=42) - -import matplotlib as mpl -import matplotlib.pyplot as plt -mpl.rcParams['text.usetex'] = True -mpl.rcParams['mathtext.rm'] = 'serif' -mpl.rcParams['font.family'] = 'serif' -mpl.rcParams['font.serif'] = 'Times New Roman' -mpl.rcParams['axes.titlesize'] = 16 -mpl.rcParams['axes.labelsize'] = 14 -mpl.rcParams['savefig.dpi'] = 250 -mpl.rcParams['savefig.format'] = 'pdf' -mpl.rcParams['savefig.bbox'] = 'tight' - -#comment out for NERSC -# %matplotlib inline - -def setup_dataset(dataset_key, skip_rows, skip_cols): - start = timeit.default_timer() - with open(dataset_info[dataset_key]['filename'], 'rb') as data_file: - lines = (line.split(None) for line in data_file) - for r in range(skip_rows): - lines.next() - pdfs = np.array([[float(line[k]) for k in range(skip_cols, len(line))] for line in lines]) - print('read in data file in '+str(timeit.default_timer()-start)) - return(pdfs) - -def make_instantiation(dataset_key, n_gals_use, pdfs, bonus=None): - - start = timeit.default_timer() - - n_gals_tot = len(pdfs) - full_gal_range = range(n_gals_tot) - subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use) - pdfs_use = pdfs[subset] - - modality = [] - dpdfs = pdfs_use[:,1:] - pdfs_use[:,:-1] - iqrs = [] - for i in range(n_gals_use): - modality.append(len(np.where(np.diff(np.signbit(dpdfs[i])))[0])) - cdf = np.cumsum(qp.utils.normalize_integral((dataset_info[dataset_key]['z_grid'], pdfs_use[i]), vb=False)[1]) - iqr_lo = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.25)] - iqr_hi = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.75)] - iqrs.append(iqr_hi - iqr_lo) - modality = np.array(modality) - - dataset_info[dataset_key]['N_GMM'] = int(np.median(modality))+1 -# print('n_gmm for '+dataset_info[dataset_key]['name']+' = '+str(dataset_info[dataset_key]['N_GMM'])) - - # using the same grid for output as the native format, but doesn't need to be so - dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid'] - dataset_info[dataset_key]['metric_z_grid'] = dataset_info[dataset_key]['z_grid'] - - print('preprocessed data in '+str(timeit.default_timer()-start)) - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus) - with open(loc+'.hkl', 'w') as filename: - info = {} - info['randos'] = randos - info['z_grid'] = dataset_info[dataset_key]['in_z_grid'] - info['pdfs'] = pdfs_use - info['modes'] = modality - info['iqrs'] = iqrs - hickle.dump(info, filename) - - return(pdfs_use) - -def plot_examples(n_gals_use, dataset_key, bonus=None): - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus) - with open(loc+'.hkl', 'r') as filename: - info = hickle.load(filename) - randos = info['randos'] - z_grid = info['z_grid'] - pdfs = info['pdfs'] - - plt.figure() - for i in range(n_plot): - data = (z_grid, pdfs[randos[i]]) - data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data)) - pz_max.append(np.max(data)) - plt.plot(data[0], data[1], label=dataset_info[dataset_key]['name']+' \#'+str(randos[i]), color=color_cycle[i]) - plt.xlabel(r'$z$', fontsize=14) - plt.ylabel(r'$p(z)$', fontsize=14) - plt.xlim(min(z_grid), max(z_grid)) - plt.ylim(0., max(pz_max)) - plt.title(dataset_info[dataset_key]['name']+' data examples', fontsize=16) - plt.legend() - plt.savefig(loc+'.pdf', dpi=250) - plt.close() - - if 'modes' in info.keys(): - modes = info['modes'] - modes_max.append(np.max(modes)) - plt.figure() - ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', bins=range(max(modes_max)+1)) - plt.xlabel('modes') - plt.ylabel('frequency') - plt.title(dataset_info[dataset_key]['name']+' data modality distribution (median='+str(dataset_info[dataset_key]['N_GMM'])+')', fontsize=16) - plt.savefig(loc+'modality.pdf', dpi=250) - plt.close() - - if 'iqrs' in info.keys(): - iqrs = info['iqrs'] - iqr_min.append(min(iqrs)) - iqr_max.append(max(iqrs)) - plot_bins = np.linspace(min(iqr_min), max(iqr_max), 20) - plt.figure() - ax = plt.hist(iqrs, bins=plot_bins, color='k', alpha=1./n_plot, histtype='stepfilled') - plt.xlabel('IQR') - plt.ylabel('frequency') - plt.title(dataset_info[dataset_key]['name']+' data IQR distribution', fontsize=16) - plt.savefig(loc+'iqrs.pdf', dpi=250) - plt.close() - -def setup_from_grid(dataset_key, in_pdfs, z_grid, N_comps, high_res=1000, bonus=None): - - #read in the data, happens to be gridded - zlim = (min(z_grid), max(z_grid)) - N_pdfs = len(in_pdfs) - - start = timeit.default_timer() -# print('making the initial ensemble of '+str(N_pdfs)+' PDFs') - E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=False) - print('made the initial ensemble of '+str(N_pdfs)+' PDFs in '+str(timeit.default_timer() - start)) - - #fit GMMs to gridded pdfs based on samples (faster than fitting to gridded) - start = timeit.default_timer() -# print('sampling for the GMM fit') - samparr = E0.sample(high_res, vb=False) - print('took '+str(high_res)+' samples in '+str(timeit.default_timer() - start)) - - start = timeit.default_timer() -# print('making a new ensemble from samples') - Ei = qp.Ensemble(N_pdfs, samples=samparr, limits=dataset_info[dataset_key]['z_lim'], vb=False) - print('made a new ensemble from samples in '+str(timeit.default_timer() - start)) - - start = timeit.default_timer() -# print('fitting the GMM to samples') - GMMs = Ei.mix_mod_fit(comps=N_comps, vb=False) - print('fit the GMM to samples in '+str(timeit.default_timer() - start)) - - #set the GMMS as the truth - start = timeit.default_timer() -# print('making the final ensemble') - Ef = qp.Ensemble(N_pdfs, truth=GMMs, limits=dataset_info[dataset_key]['z_lim'], vb=False) - print('made the final ensemble in '+str(timeit.default_timer() - start)) - - path = os.path.join(dataset_key, str(N_pdfs)) - loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus) - with open(loc+'.hkl', 'w') as filename: - info = {} - info['randos'] = randos - info['z_grid'] = z_grid - info['pdfs'] = Ef.evaluate(z_grid, using='truth', norm=True, vb=False)[1] - hickle.dump(info, filename) - - start = timeit.default_timer() -# print('calculating '+str(n_moments_use)+' moments of original PDFs') - in_moments, vals = [], [] - for n in range(n_moments_use): - in_moments.append(Ef.moment(n, using='truth', limits=zlim, - dx=delta_z, vb=False)) - vals.append(n) - moments = np.array(in_moments) - print('calculated '+str(n_moments_use)+' moments of original PDFs in '+str(timeit.default_timer() - start)) - - path = os.path.join(dataset_key, str(N_pdfs)) - loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus) - with open(loc+'.hkl', 'w') as filename: - info = {} - info['truth'] = moments - info['orders'] = vals - hickle.dump(info, filename) - - return(Ef) - -def analyze_individual(E, z_grid, N_floats, dataset_key, N_moments=4, i=None, bonus=None): - zlim = (min(z_grid), max(z_grid)) - z_range = zlim[-1] - zlim[0] - delta_z = z_range / len(z_grid) - path = os.path.join(dataset_key, str(n_gals_use)) - - Eq, Eh, Es = E, E, E - inits = {} - for f in formats: - inits[f] = {} - for ff in formats: - inits[f][ff] = None - - qstart = timeit.default_timer() -# print('performing quantization') - inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False) - print('finished quantization in '+str(timeit.default_timer() - qstart)) - hstart = timeit.default_timer() -# print('performing histogramization') - inits['histogram']['histogram'] = Eh.histogramize(N=N_floats, binrange=zlim, vb=False) - print('finished histogramization in '+str(timeit.default_timer() - hstart)) - sstart = timeit.default_timer() -# print('performing sampling') - inits['samples']['samples'] = Es.sample(samps=N_floats, vb=False) - print('finished sampling in '+str(timeit.default_timer() - sstart)) - -# print('making the approximate ensembles') -# start = timeit.default_timer() - Eo = {} - for f in formats: - fstart = timeit.default_timer() - Eo[f] = qp.Ensemble(E.n_pdfs, truth=E.truth, - quantiles=inits[f]['quantiles'], - histogram=inits[f]['histogram'], - samples=inits[f]['samples'], - limits=dataset_info[dataset_key]['z_lim']) - fbonus = str(N_floats)+f+str(i) - loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+fbonus) - with open(loc+'.hkl', 'w') as filename: - info = {} - info['randos'] = randos - info['z_grid'] = z_grid - info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1] - hickle.dump(info, filename) - print('made '+f+' ensemble in '+str(timeit.default_timer()-fstart)) -# print('made all approximate ensembles in '+str(timeit.default_timer() - start)) - -# print('calculating the individual metrics') - metric_start = timeit.default_timer() - inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus) - with open(inloc+'.hkl', 'r') as infilename: - pz_moments = hickle.load(infilename) - klds, metrics, kld_moments = {}, {}, {} - - for key in Eo.keys(): - key_start = timeit.default_timer() -# print('starting '+key) - klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z) - samp_metric = qp.PDF(samples=klds[key]) - gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], - using='samples', vb=False) - metrics[key] = qp.PDF(truth=gmm_metric) - - - pz_moments[key], kld_moments[key] = [], [] - for n in range(N_moments): - kld_moments[key].append(qp.utils.calculate_moment(metrics[key], n, - using='truth', - limits=zlim, - dx=delta_z, - vb=False)) - pz_moments[key].append(Eo[key].moment(n, using=key, limits=zlim, - dx=delta_z, vb=False)) - print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start)) -# print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start)) - - loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) - with open(loc+'.hkl', 'w') as filename: - info = {} - info['z_grid'] = z_grid - info['N_floats'] = N_floats - info['pz_klds'] = klds - hickle.dump(info, filename) - - outloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) - with open(outloc+'.hkl', 'w') as outfilename: - hickle.dump(pz_moments, outfilename) - - return(Eo, klds, kld_moments, pz_moments) - -def plot_individual_kld(n_gals_use, dataset_key, N_floats, i): - - path = os.path.join(dataset_key, str(n_gals_use)) - a = 1./len(formats) - loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) - with open(loc+'.hkl', 'r') as filename: - info = hickle.load(filename) - z_grid = info['z_grid'] - N_floats = info['N_floats'] - pz_klds = info['pz_klds'] - - plt.figure() - plot_bins = np.linspace(-3., 3., 20) - for key in pz_klds.keys(): - logdata = qp.utils.safelog(pz_klds[key]) - kld_hist = plt.hist(logdata, color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', - label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2) - hist_max.append(max(kld_hist[0])) - dist_min.append(min(logdata)) - dist_max.append(max(logdata)) - plt.legend() - plt.ylabel('frequency', fontsize=14) - plt.xlabel(r'$\log[KLD]$', fontsize=14) -# plt.xlim(min(dist_min), max(dist_max)) -# plt.ylim(0., max(hist_max)) - plt.title(dataset_info[dataset_key]['name']+r' data $p(KLD)$ with $N_{f}='+str(N_floats)+r'$', fontsize=16) - plt.savefig(loc+'.pdf', dpi=250) - plt.close() - -def plot_individual_moment(n_gals_use, dataset_key, N_floats, i): - - path = os.path.join(dataset_key, str(n_gals_use)) - a = 1./len(formats) - loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) - with open(loc+'.hkl', 'r') as filename: - moments = hickle.load(filename) - delta_moments = {} - - plt.figure(figsize=(5, 5 * (n_moments_use-1))) - for n in range(1, n_moments_use): - ax = plt.subplot(n_moments_use, 1, n) - ends = (min(moments['truth'][n]), max(moments['truth'][n])) - for key in formats: - ends = (min(ends[0], min(moments[key][n])), max(ends[-1], max(moments[key][n]))) - plot_bins = np.linspace(ends[0], ends[-1], 20) - ax.hist([-100], color='k', alpha=a, histtype='stepfilled', edgecolor='k', label='truth', - linestyle='-', ls='-') - ax.hist(moments['truth'][n], bins=plot_bins, color='k', alpha=a, histtype='stepfilled', normed=True) - ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a) - for key in formats: - ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, - linestyle=stepstyles[key], ls=stepstyles[key], lw=2) - ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True) - ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2) - ax.legend() - ax.set_ylabel('frequency', fontsize=14) - ax.set_xlabel(moment_names[n], fontsize=14) - ax.set_xlim(min(plot_bins), max(plot_bins)) - plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16) - plt.tight_layout() - plt.subplots_adjust(top=0.95) - plt.savefig(loc+'.pdf', dpi=250) - plt.close() - - plt.figure(figsize=(5, 5 * (n_moments_use-1))) - for n in range(1, n_moments_use): - ax = plt.subplot(n_moments_use, 1, n) - ends = (100., -100.) - for key in formats: - delta_moments[key] = moments[key] - moments['truth'] - ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n]))) - plot_bins = np.linspace(ends[0], ends[-1], 20) - for key in formats: - ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, - linestyle=stepstyles[key], ls=stepstyles[key], lw=2) - ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True) - ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2) - ax.legend() - ax.set_ylabel('frequency', fontsize=14) - ax.set_xlabel(r'$\Delta$ '+moment_names[n], fontsize=14) - ax.set_xlim(min(plot_bins), max(plot_bins)) - plt.tight_layout() - plt.subplots_adjust(top=0.95) - plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16) - plt.savefig(loc+'_delta.pdf', dpi=250) - plt.close() - -def analyze_stacked(E0, E, z_grid, n_floats_use, dataset_key, i=None): - - zlim = (min(z_grid), max(z_grid)) - z_range = zlim[-1] - zlim[0] - delta_z = z_range / len(z_grid) - -# print('stacking the ensembles') -# stack_start = timeit.default_timer() - stacked_pdfs, stacks = {}, {} - for key in formats: - start = timeit.default_timer() - stacked_pdfs[key] = qp.PDF(gridded=E[key].stack(z_grid, using=key, - vb=False)[key]) - stacks[key] = stacked_pdfs[key].evaluate(z_grid, using='gridded', norm=True, vb=False)[1] - print('stacked '+key+ ' in '+str(timeit.default_timer()-start)) - stack_start = timeit.default_timer() - stacked_pdfs['truth'] = qp.PDF(gridded=E0.stack(z_grid, using='truth', - vb=False)['truth']) - - stacks['truth'] = stacked_pdfs['truth'].evaluate(z_grid, using='gridded', norm=True, vb=False)[1] - print('stacked truth in '+str(timeit.default_timer() - stack_start)) - -# print('calculating the metrics') - metric_start = timeit.default_timer() - klds, moments = {}, {} - moments['truth'] = [] - for n in range(n_moments_use): - moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, - limits=zlim, - dx=delta_z, - vb=False)) - print('calculated the true moments in '+str(timeit.default_timer() - metric_start)) - for key in formats: - metric_start = timeit.default_timer() - klds[key] = qp.utils.calculate_kl_divergence(stacked_pdfs['truth'], - stacked_pdfs[key], - limits=zlim, dx=delta_z) - moments[key] = [] - for n in range(n_moments_use): - moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n, - limits=zlim, - dx=delta_z, - vb=False)) - print('calculated the '+key+' stacked kld and moments in '+str(timeit.default_timer() - metric_start)) - - path = os.path.join(dataset_key, str(E0.n_pdfs)) - loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i)) - with open(loc+'.hkl', 'w') as filename: - info = {} - info['z_grid'] = z_grid - info['stacks'] = stacks - info['klds'] = klds - info['moments'] = moments - hickle.dump(info, filename) - - return(stacked_pdfs, klds, moments) - -def plot_estimators(n_gals_use, dataset_key, n_floats_use, i=None): - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i)) - with open(loc+'.hkl', 'r') as filename: - info = hickle.load(filename) - z_grid = info['z_grid'] - stacks = info['stacks'] - klds = info['klds'] - - plt.figure() - plt.plot(z_grid, stacks['truth'], color='black', lw=3, alpha=0.3, label='truth') - nz_max.append(max(stacks['truth'])) - for key in formats: - nz_max.append(max(stacks[key])) - plt.plot(z_grid, stacks[key], label=key+r' KLD='+str(klds[key]), color=colors[key], linestyle=styles[key]) - plt.xlabel(r'$z$', fontsize=14) - plt.ylabel(r'$\hat{n}(z)$', fontsize=14) - plt.xlim(min(z_grid), max(z_grid)) -# plt.ylim(0., max(nz_max)) - plt.legend() - plt.title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ with $N_{f}='+str(n_floats_use)+r'$', fontsize=16) - plt.savefig(loc+'.pdf', dpi=250) - plt.close() - -def save_moments(dataset_key, n_gals_use, N_f, stat, stat_name): - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key) - - if os.path.exists(loc+'.hkl'): - with open(loc+'.hkl', 'r') as stat_file: - #read in content of list/dict - stats = hickle.load(stat_file) - else: - stats = {} - stats['N_f'] = [] - for f in stat.keys(): - stats[f] = [] - for m in range(n_moments_use): - stats[f].append([]) - - if N_f not in stats['N_f']: - stats['N_f'].append(N_f) - for f in stat.keys(): - for m in range(n_moments_use): - stats[f][m].append([]) - - where_N_f = stats['N_f'].index(N_f) - - for f in stat.keys(): - for m in range(n_moments_use): - stats[f][m][where_N_f].append(stat[f][m]) - - with open(loc+'.hkl', 'w') as stat_file: - hickle.dump(stats, stat_file) - -def plot_pz_metrics(dataset_key, n_gals_use): - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, 'pz_kld_moments'+str(n_gals_use)+dataset_key) - with open(loc+'.hkl', 'r') as pz_file: - pz_stats = hickle.load(pz_file) -# if len(instantiations) == 10: -# for f in formats: -# for n in range(n_moments_use): -# if not np.shape(pz_stats[f][n]) == (4, 10): -# for s in range(len(pz_stats[f][n])): -# pz_stats[f][n][s] = np.array(np.array(pz_stats[f][n][s])[:10]).flatten() - - flat_floats = np.array(pz_stats['N_f']).flatten() - in_x = np.log(flat_floats) - - def make_patch_spines_invisible(ax): - ax.set_frame_on(True) - ax.patch.set_visible(False) - for sp in ax.spines.values(): - sp.set_visible(False) - - shapes = moment_shapes - marksize = 10 - a = 1./len(formats) - - fig, ax = plt.subplots() - fig.subplots_adjust(right=1.) - ax_n = ax - for key in formats: - ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key]) - for n in range(1, n_moments_use): - ax.scatter([-1], [0], color='k', alpha=1., marker=shapes[n], s=marksize, label=moment_names[n]) - n_factor = 0.1 * (n - 2) - if n>1: - ax_n = ax.twinx() - if n>2: - ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) - make_patch_spines_invisible(ax_n) - ax_n.spines["right"].set_visible(True) - for s in range(len(formats)): - f = formats[s] - f_factor = 0.05 * (s - 1) - data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats - mean = np.mean(data_arr, axis=0).flatten() - std = np.std(data_arr, axis=0).flatten() - y_plus = mean + std - y_minus = mean - std - y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) - ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=2. * a, color=colors[f]) - ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f]) - pz_mean_max[n] = max(pz_mean_max[n], np.max(y_plus)) - pz_mean_min[n] = min(pz_mean_min[n], np.min(y_minus)) - ax_n.set_ylabel(r'$\log[\mathrm{'+moment_names[n]+r'}]$', fontsize=14) - ax_n.set_ylim((pz_mean_min[n]-1., pz_mean_max[n]+1.)) - ax.set_xscale('log') - ax.set_xticks(flat_floats) - ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) - ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) - ax.set_xlabel('number of parameters', fontsize=14) - ax.set_title(dataset_info[dataset_key]['name']+r' data $\log[KLD]$ moments', fontsize=16) - ax.legend(loc='lower left') - fig.tight_layout() - fig.savefig(loc+'_clean.pdf', dpi=250) - plt.close() - - fig, ax = plt.subplots() - fig.subplots_adjust(right=1.) - ax_n = ax - for key in formats: - ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1) - for n in range(1, n_moments_use): - n_factor = 0.1 * (n - 2) - ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n)) - if n>1: - ax_n = ax.twinx() - if n>2: - ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) - make_patch_spines_invisible(ax_n) - ax_n.spines["right"].set_visible(True) - for s in range(len(formats)): - f = formats[s] - f_factor = 0.05 * (s - 1) - data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats - for i in data_arr: - ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a) -# pz_moment_max[n-1].append(max(i)) - ax_n.set_ylabel(r'$\log[\mathrm{'+moment_names[n]+r'}]$', fontsize=14) - ax_n.set_ylim(pz_mean_min[n]-1., pz_mean_max[n]+1.) - ax.set_xscale('log') - ax.set_xticks(flat_floats) - ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) - ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) - ax.set_xlabel('number of parameters', fontsize=14) - ax.set_title(dataset_info[dataset_key]['name']+r' data $\log[KLD]$ moments', fontsize=16) - ax.legend(loc='lower left') - fig.tight_layout() - fig.savefig(loc+'_all.pdf', dpi=250) - plt.close() - -#similar plot with moments of individual pz moment distributions? - -def save_nz_metrics(dataset_key, n_gals_use, N_f, nz_klds, stat_name): - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key) - if os.path.exists(loc+'.hkl'): - with open(loc+'.hkl', 'r') as nz_file: - #read in content of list/dict - nz_stats = hickle.load(nz_file) - else: - nz_stats = {} - nz_stats['N_f'] = [] - for f in formats: - nz_stats[f] = [] - - if N_f not in nz_stats['N_f']: - nz_stats['N_f'].append(N_f) - for f in formats: - nz_stats[f].append([]) - - where_N_f = nz_stats['N_f'].index(N_f) - - for f in formats: - nz_stats[f][where_N_f].append(nz_klds[f]) - - with open(loc+'.hkl', 'w') as nz_file: - hickle.dump(nz_stats, nz_file) - -def plot_nz_klds(dataset_key, n_gals_use): - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, 'nz_klds'+str(n_gals_use)+dataset_key) - with open(loc+'.hkl', 'r') as nz_file: - nz_stats = hickle.load(nz_file) - if len(instantiations) == 10: - for f in formats: - if not np.shape(nz_stats[f]) == (4, 10): - for s in range(len(floats)): - nz_stats[f][s] = np.array(np.array(nz_stats[f][s])[:10]).flatten() - - flat_floats = np.array(nz_stats['N_f']).flatten() - - plt.figure(figsize=(5, 5)) - for f in formats: - data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f - n_i = len(data_arr) - a = 1./len(formats)#1./n_i - plt.plot([10. * max(flat_floats), 10. * max(flat_floats)], [1., 10.], color=colors[f], alpha=a, label=f, linestyle=styles[f]) - for i in data_arr: - plt.plot(flat_floats, i, color=colors[f], alpha=a, linestyle=styles[f]) - kld_min.append(min(i)) - kld_max.append(max(i)) - plt.semilogy() - plt.semilogx() - plt.xticks(flat_floats, [str(ff) for ff in flat_floats]) - plt.ylim(min(kld_min) / 10., 10. * max(kld_max)) - plt.xlim(min(flat_floats) / 3., max(flat_floats) * 3.) - plt.xlabel(r'number of parameters', fontsize=14) - plt.ylabel(r'KLD', fontsize=14) - plt.legend(loc='upper right') - plt.title(r'$\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_info[dataset_key]['name']+' mock catalog', fontsize=16) - plt.savefig(loc+'_all.pdf', dpi=250) - plt.close() - - plt.figure(figsize=(5, 5)) - a = 1./len(formats) - for f in formats: - data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f - plt.plot([10. * max(flat_floats), 10. * max(flat_floats)], [1., 10.], color=colors[f], label=f, linestyle=styles[f]) - kld_min.append(np.min(data_arr)) - kld_max.append(np.max(data_arr)) - mean = np.mean(data_arr, axis=0) - std = np.std(data_arr, axis=0) - x_cor = np.array([flat_floats[:-1], flat_floats[:-1], flat_floats[1:], flat_floats[1:]]) - y_plus = mean + std - y_minus = mean - std - y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) - plt.plot(flat_floats, mean, color=colors[f], linestyle=styles[f]) - plt.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.) - plt.semilogy() - plt.semilogx() - plt.xticks(flat_floats, [str(ff) for ff in flat_floats]) - plt.ylim(min(kld_min) / 10., 10. * max(kld_max)) - plt.xlim(min(flat_floats), max(flat_floats)) - plt.xlabel(r'number of parameters', fontsize=14) - plt.ylabel(r'KLD', fontsize=14) - plt.legend(loc='upper right') - plt.title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ KLD', fontsize=16) - plt.savefig(loc+'_clean.pdf', dpi=250) - plt.close() - -def plot_nz_moments(dataset_key, n_gals_use): - - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key) - with open(loc+'.hkl', 'r') as nz_file: - nz_stats = hickle.load(nz_file) - flat_floats = np.array(nz_stats['N_f']).flatten() - in_x = np.log(flat_floats) - a = 1./len(formats) - shapes = moment_shapes - marksize = 10 - - def make_patch_spines_invisible(ax): - ax.set_frame_on(True) - ax.patch.set_visible(False) - for sp in ax.spines.values(): - sp.set_visible(False) - - fig, ax = plt.subplots() - fig.subplots_adjust(right=1.) - ax_n = ax - for key in formats: - ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1) -# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.) - for n in range(1, n_moments_use): - ax.scatter([-10], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n]) - n_factor = 0.1 * (n - 2) - truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1) - if n>1: - ax_n = ax.twinx() - if n>2: - ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) - make_patch_spines_invisible(ax_n) - ax_n.spines["right"].set_visible(True) - for s in range(len(formats)): - f = formats[s] - f_factor = 0.05 * (s - 1) - data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats - mean = np.mean(data_arr, axis=0).flatten() - std = np.std(data_arr, axis=0).flatten() - y_plus = mean + std - y_minus = mean - std - y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) - ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f]) - ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f]) - nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus)) - nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus)) -# data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)) -# mean = np.mean(data_arr, axis=0).flatten() -# std = np.std(data_arr, axis=0).flatten() -# y_plus = mean + std -# y_minus = mean - std -# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) -# ax_n.plot(np.exp(in_x+n_factor), mean, linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k', linewidth=0.5) -# ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color='k') -# nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus)) -# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus)) -# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k') - ax_n.set_ylabel(r'$\Delta\mathrm{'+moment_names[n]+r'}$', fontsize=14) - ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1)) - ax.set_xscale('log') - ax.set_xticks(flat_floats) - ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) - ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) - ax.set_xlabel('number of parameters', fontsize=14) - ax.set_title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ moments', fontsize=16) - ax.legend(loc='upper right') - fig.tight_layout() - fig.savefig(loc+'_clean.pdf', dpi=250) - plt.close() - - fig, ax = plt.subplots() - fig.subplots_adjust(right=1.) - ax_n = ax - for key in formats: - ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1) -# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.) - for n in range(1, n_moments_use): - n_factor = 0.1 * (n - 2) - ax.scatter([-10], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n)) - truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1) - if n>1: - ax_n = ax.twinx() - if n>2: - ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) - make_patch_spines_invisible(ax_n) - ax_n.spines["right"].set_visible(True) - for s in range(len(formats)): - f = formats[s] - f_factor = 0.05 * (s - 1) - data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth - for i in data_arr: - ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a) -# nz_moment_max[n-1].append(max(i)) - data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)) -# for i in data_arr: -# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a) -# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k') - ax_n.set_ylabel(r'$\Delta\mathrm{'+moment_names[n]+r'}$', fontsize=14) - ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1)) - ax.set_xscale('log') - ax.set_xticks(flat_floats) - ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) - ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) - ax.set_xlabel('number of parameters', fontsize=14) - ax.set_title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ moments', fontsize=16) - ax.legend(loc='upper right') - fig.tight_layout() - fig.savefig(loc+'_all.pdf', dpi=250) - plt.close() - -dataset_info = {} -delta = 0.01 - -dataset_keys = ['mg', 'ss'] - -for dataset_key in dataset_keys: - dataset_info[dataset_key] = {} - if dataset_key == 'mg': - datafilename = 'bpz_euclid_test_10_3.probs' - z_low = 0.01 - z_high = 3.51 - nc_needed = 3 - plotname = 'brighter' - skip_rows = 1 - skip_cols = 1 - elif dataset_key == 'ss': - datafilename = 'test_magscat_trainingfile_probs.out' - z_low = 0.005 - z_high = 2.11 - nc_needed = 5 - plotname = 'fainter' - skip_rows = 1 - skip_cols = 1 - dataset_info[dataset_key]['filename'] = datafilename - - dataset_info[dataset_key]['z_lim'] = (z_low, z_high) - z_grid = np.arange(z_low, z_high, delta, dtype='float')#np.arange(z_low, z_high + delta, delta, dtype='float') - z_range = z_high - z_low - delta_z = z_range / len(z_grid) - dataset_info[dataset_key]['z_grid'] = z_grid - dataset_info[dataset_key]['delta_z'] = delta_z - - dataset_info[dataset_key]['N_GMM'] = nc_needed# will be overwritten later - dataset_info[dataset_key]['name'] = plotname - -high_res = 300 -color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256. -n_plot = len(color_cycle) -n_moments_use = 4 -moment_names = ['integral', 'mean', 'variance', 'kurtosis'] -moment_shapes = ['o', '*', '+', 'x'] - -#make this a more clever structure, i.e. a dict -formats = ['quantiles', 'histogram', 'samples'] -colors = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen'} -styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'} -stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'} - -iqr_min = [3.5] -iqr_max = [delta] -modes_max = [0] -pz_max = [1.] -nz_max = [1.] -hist_max = [1.] -dist_min = [0.] -dist_max = [0.] -pz_mean_max = -10.*np.ones(n_moments_use) -pz_mean_min = 10.*np.ones(n_moments_use) -kld_min = [1.] -kld_max = [1.] -nz_mean_max = -10.*np.ones(n_moments_use) -nz_mean_min = 10.*np.ones(n_moments_use) - -#change all for NERSC - -floats = [3, 10, 30, 100] -sizes = [100]#, 1000] -names = dataset_info.keys() -instantiations = range(0, 10) - -all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names] - -# the "pipeline" - -for n in range(len(names)): - name = names[n] - - dataset_start = timeit.default_timer() - print('started '+name) - - pdfs = setup_dataset(name, skip_rows, skip_cols) - - for s in range(len(sizes)): - size=sizes[s] - - size_start = timeit.default_timer() - print('started '+name+str(size)) - - path = os.path.join(name, str(size)) - if not os.path.exists(path): - os.makedirs(path) - - n_gals_use = size - - randos = all_randos[n][s] - - for i in instantiations: - i_start = timeit.default_timer() - print('started '+name+str(size)+' #'+str(i)) - - original = '_original'+str(i) - pdfs_use = make_instantiation(name, size, pdfs, bonus=original) -# plot = plot_examples(size, name, bonus=original) - - z_grid = dataset_info[name]['in_z_grid'] - N_comps = dataset_info[name]['N_GMM'] - - postfit = '_postfit'+str(i) - catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit) -# plot = plot_examples(size, name, bonus=postfit) - - for n_floats_use in floats: - - float_start = timeit.default_timer() - print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)) - - (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, - z_grid,#dataset_info[name]['metric_z_grid'], - n_floats_use, name, n_moments_use, i=i, bonus=postfit) - for f in formats: - fname = str(n_floats_use)+f+str(i) -# plot = plot_examples(size, name, bonus=fname) -# plot = plot_individual_kld(size, name, n_floats_use, i=i) -# plot = plot_individual_moment(size, name, n_floats_use, i=i) - save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments') - save_moments(name, size, n_floats_use, pz_moments, 'pz_moments') - - (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], - n_floats_use, name, i=i) -# plot = plot_estimators(size, name, n_floats_use, i=i) - save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds') - save_moments(name, size, n_floats_use, nz_moments, 'nz_moments') - - print('FINISHED '++name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start)) - print('FINISHED '++name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start)) -# plot = plot_pz_metrics(name, size) - -# plot = plot_nz_klds(name, size) -# plot = plot_nz_moments(name, size) - - print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start)) - - print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start)) - -#comment out for NERSC -# for name in names: -# for size in sizes: -# path = os.path.join(name, str(size)) -# for i in instantiations: -# -# plot = plot_examples(size, name, bonus='_original'+str(i)) -# plot = plot_examples(size, name, bonus='_postfit'+str(i)) -# -# for n_floats_use in floats: -# -# for f in formats: -# fname = str(n_floats_use)+f+str(i) -# plot = plot_examples(size, name, bonus=fname) -# plot = plot_individual_kld(size, name, n_floats_use, i) -# plot = plot_individual_moment(size, name, n_floats_use, i) -# plot = plot_estimators(size, name, n_floats_use, i) -# -# plot = plot_pz_metrics(name, size) -# -# plot = plot_nz_klds(name, size) -# plot = plot_nz_moments(name, size) From 9defbe0e8db6dd8661643735b4b9ea680e1e7342 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 16:58:38 -0700 Subject: [PATCH 30/96] fixed bug in kld grid --- qp/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qp/utils.py b/qp/utils.py index a629d697..8119a8d3 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -303,9 +303,10 @@ def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): Notes ----- TO DO: change this to calculate_kld + TO DO: have this take number of points not dx! """ # Make a grid from the limits and resolution - grid = np.arange(limits[0], limits[1]+dx, dx) + grid = np.arange(limits[0], limits[1], dx) # Evaluate the functions on the grid and normalize pe = p.evaluate(grid, vb=vb, norm=True) pn = pe[1] From 82a3792561594d42f479d5071b334142e34f3bc0 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 17:13:34 -0700 Subject: [PATCH 31/96] periodic backup --- .../authors.csv | 8 +- .../main.bib | 138 ++++++++++++++++++ .../main.tex | 117 +++++++++------ .../research/analysis.ipynb | 48 ++++-- qp/ensemble.py | 2 +- 5 files changed, 249 insertions(+), 64 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/authors.csv b/docs/desc-0000-qp-photo-z_approximation/authors.csv index 4724c89a..5966aab1 100644 --- a/docs/desc-0000-qp-photo-z_approximation/authors.csv +++ b/docs/desc-0000-qp-photo-z_approximation/authors.csv @@ -31,7 +31,7 @@ Lastname,Firstname,Authorname,AuthorType,Affiliation,Contribution,Email Malz,Alex,A.I.~Malz,Contact,"Center for Cosmology and Particle Physics, New York University, 726 Broadway, New York, 10003","Initiated project, led development work.",aimalz@nyu.edu Marshall,Phil,P.J.~Marshall,Contributor,"SLAC National Accelerator Laboratory, Menlo Park, CA 94025, USA","Advised on statistics, and project design and management.",dr.phil.marshall@gmail.com -Schmidt,Samuel,S.J.~Schmidt,Contributor,"Dept. of Physics, University of California, One Shields Ave., Davis, CA, 95616","Provided the lower quality data mock catalog.",sschmidt@physics.usdavis.edu -Graham,Melissa,M.L.~Graham,Contributor,"Department of Astronomy, University of Washington, Box 351580 U.W., Seattle, WA 98195-1580","Provided the higher quality data mock catalog.",mlg3k@uw.edu -DeRose,Joe,J.~DeRose,Contributor,"Stanford University","Contributed to the production of the lower quality data mock catalog.",jderose@stanford.edu -Wechsler,Risa,R.~Wechsler,Contributor,"Stanford University","Contributed to the production of the lower quality data mock catalog.",rwechsler@stanford.edu +Schmidt,Samuel,S.J.~Schmidt,Contributor,"Dept. of Physics, University of California, One Shields Ave., Davis, CA, 95616","Produced the PDFs for the fainter mock catalog.",sschmidt@physics.usdavis.edu +Graham,Melissa,M.L.~Graham,Contributor,"Department of Astronomy, University of Washington, Box 351580 U.W., Seattle, WA 98195-1580","Produced the photometry and PDFs for the brighter mock catalog.",mlg3k@uw.edu +DeRose,Joe,J.~DeRose,Contributor,"Stanford University","Produced the photometry for the fainter mock catalog.",jderose@stanford.edu +Wechsler,Risa,R.~Wechsler,Contributor,"Stanford University","Produced the photometry for the fainter mock catalog.",rwechsler@stanford.edu diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index e45d1444..de0c4f4a 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -212,4 +212,142 @@ @misc{mckerns_pathos:_2010 urldate = {2017-08-23}, author = {McKerns, Michael and Aivazis, Michael}, year = {2010}, +} + +@article{graham_photometric_2017, + title = {Photometric {Redshifts} with the {LSST}: {Evaluating} {Survey} {Observing} {Strategies}}, + shorttitle = {Photometric {Redshifts} with the {LSST}}, + url = {http://arxiv.org/abs/1706.09507}, + urldate = {2017-08-23}, + journal = {arXiv:1706.09507 [astro-ph]}, + author = {Graham, Melissa L. and Connolly, Andrew J. and Ivezić, Željko and Schmidt, Samuel J. and Jones, R. Lynne and Jurić, Mario and Daniel, Scott F. and Yoachim, Peter}, + month = jun, + year = {2017}, + note = {arXiv: 1706.09507}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Astrophysics of Galaxies}, +} + +@article{laycock_x-ray_2017, + title = {The {X}-{Ray} {Binary} {Population} of the {Nearby} {Dwarf} {Starburst} {Galaxy} {IC} 10: {Variable} and {Transient} {X}-{Ray} {Sources}}, + volume = {836}, + issn = {0004-637X}, + shorttitle = {The {X}-{Ray} {Binary} {Population} of the {Nearby} {Dwarf} {Starburst} {Galaxy} {IC} 10}, + url = {http://stacks.iop.org/0004-637X/836/i=1/a=50}, + doi = {10.3847/1538-4357/836/1/50}, + language = {en}, + number = {1}, + urldate = {2017-08-29}, + journal = {The Astrophysical Journal}, + author = {Laycock, Silas and Cappallo, Rigel and Williams, Benjamin F. and Prestwich, Andrea and Binder, Breanna and Christodoulou, Dimitris M.}, + year = {2017}, + pages = {50} +} + +@article{pizzocaro_results_2016, + title = {Results from {DROXO}: {IV}. {EXTraS} discovery of an {X}-ray flare from the {Class} {I} protostar candidate {ISO}-{Oph} 85}, + volume = {587}, + issn = {0004-6361, 1432-0746}, + shorttitle = {Results from {DROXO}}, + url = {http://www.aanda.org/10.1051/0004-6361/201526562}, + doi = {10.1051/0004-6361/201526562}, + urldate = {2017-08-29}, + journal = {Astronomy \& Astrophysics}, + author = {Pizzocaro, D. and Stelzer, B. and Paladini, R. and Tiengo, A. and Lisini, G. and Novara, G. and Vianello, G. and Belfiore, A. and Marelli, M. and Salvetti, D. and Pillitteri, I. and Sciortino, S. and D’Agostino, D. and Haberl, F. and Watson, M. and Wilms, J. and Salvaterra, R. and De Luca, A.}, + month = mar, + year = {2016}, + pages = {A36}, +} + +@article{sun_star_2015, + title = {{THE} {STAR} {CLUSTER} {MASS}–{GALACTOCENTRIC} {RADIUS} {RELATION}: {IMPLICATIONS} {FOR} {CLUSTER} {FORMATION}}, + volume = {816}, + issn = {1538-4357}, + shorttitle = {{THE} {STAR} {CLUSTER} {MASS}–{GALACTOCENTRIC} {RADIUS} {RELATION}}, + url = {http://stacks.iop.org/0004-637X/816/i=1/a=9?key=crossref.0be3aa415b148a5dd4f07aa1471f52f1}, + doi = {10.3847/0004-637X/816/1/9}, + number = {1}, + urldate = {2017-08-29}, + journal = {The Astrophysical Journal}, + author = {Sun, Weijia and Grijs, Richard de and Fan, Zhou and Cameron, Ewan}, + month = dec, + year = {2015}, + pages = {9}, +} + +@article{de_vicente_dnf_2016, + title = {{DNF} – {Galaxy} photometric redshift by {Directional} {Neighbourhood} {Fitting}}, + volume = {459}, + issn = {0035-8711}, + url = {https://academic.oup.com/mnras/article/459/3/3078/2595234/DNF-Galaxy-photometric-redshift-by-Directional}, + doi = {10.1093/mnras/stw857}, + number = {3}, + urldate = {2017-08-29}, + journal = {Monthly Notices of the Royal Astronomical Society}, + author = {De Vicente, J. and Sánchez, E. and Sevilla-Noarbe, I.}, + month = jul, + year = {2016}, + pages = {3078--3088}, +} + +@article{sadeh_annz2:_2016, + title = {{ANNz}2: {Photometric} {Redshift} and {Probability} {Distribution} {Function} {Estimation} using {Machine} {Learning}}, + volume = {128}, + issn = {1538-3873}, + shorttitle = {{ANNz}2}, + url = {http://stacks.iop.org/1538-3873/128/i=968/a=104502}, + doi = {10.1088/1538-3873/128/968/104502}, + language = {en}, + number = {968}, + urldate = {2017-08-29}, + journal = {Publications of the Astronomical Society of the Pacific}, + author = {Sadeh, I. and Abdalla, F. B. and Lahav, O.}, + year = {2016}, + pages = {104502} +} + +@article{cavuoti_metaphor:_2017, + title = {{METAPHOR}: a machine-learning-based method for the probability density estimation of photometric redshifts}, + volume = {465}, + issn = {0035-8711}, + shorttitle = {{METAPHOR}}, + url = {https://academic.oup.com/mnras/article/465/2/1959/2525980/METAPHOR-a-machine-learning-based-method-for-the}, + doi = {10.1093/mnras/stw2930}, + number = {2}, + urldate = {2017-08-29}, + journal = {Monthly Notices of the Royal Astronomical Society}, + author = {Cavuoti, S. and Amaro, V. and Brescia, M. and Vellucci, C. and Tortora, C. and Longo, G.}, + month = feb, + year = {2017}, + pages = {1959--1973}, +} + +@article{carrasco_kind_somz:_2014, + title = {{SOMz}: photometric redshift {PDFs} with self-organizing maps and random atlas}, + volume = {438}, + issn = {0035-8711}, + shorttitle = {{SOMz}}, + url = {https://academic.oup.com/mnras/article/438/4/3409/1108443/SOMz-photometric-redshift-PDFs-with-self}, + doi = {10.1093/mnras/stt2456}, + number = {4}, + urldate = {2017-08-29}, + journal = {Monthly Notices of the Royal Astronomical Society}, + author = {Carrasco Kind, Matias and Brunner, Robert J.}, + month = mar, + year = {2014}, + pages = {3409--3421}, +} + +@article{mountrichas_measuring_2013, + title = {Measuring the dark matter halo mass of {X}-ray {AGN} at z ∼ 1 using photometric redshifts}, + volume = {430}, + issn = {0035-8711}, + url = {https://academic.oup.com/mnras/article/430/1/661/986786/Measuring-the-dark-matter-halo-mass-of-X-ray-AGN}, + doi = {10.1093/mnras/sts666}, + number = {1}, + urldate = {2017-08-29}, + journal = {Monthly Notices of the Royal Astronomical Society}, + author = {Mountrichas, G. and Georgakakis, A. and Finoguenov, A. and Erfanianfar, G. and Cooper, M. C. and Coil, A. L. and Laird, E. S. and Nandra, K. and Newman, J. A.}, + month = mar, + year = {2013}, + pages = {661--675}, } \ No newline at end of file diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 5853372b..01118b6b 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -16,10 +16,10 @@ \newcommand{\qp}{\texttt{qp}} \newcommand{\pz}{photo-$z$ PDF} \newcommand{\Pz}{Photo-$z$ PDF} -\newcommand{\mgdata}{deep\xspace} -\newcommand{\Mgdata}{Deep\xspace} -\newcommand{\ssdata}{shallow\xspace} -\newcommand{\Ssdata}{Shallow\xspace} +\newcommand{\mgdata}{bright\xspace} +\newcommand{\Mgdata}{Bright\xspace} +\newcommand{\ssdata}{faint\xspace} +\newcommand{\Ssdata}{Faint\xspace} \begin{document} @@ -83,9 +83,10 @@ \section{Introduction} requirements on \pz\ accuracy: different science cases will need different accuracy metrics. In this paper, we address the question of \textit{how} these choices should be -made in general, by providing the publicly available \qp\ Python package to -enable each survey to optimize their \pz\ approximation via mathematically -motivated and science-driven metrics. +made in general, by providing the publicly available \qp\ Python +package\footnote{\url{https://github.com/aimalz/qp}} to enable each survey to +optimize their \pz\ approximation via mathematically motivated and +science-driven metrics. We demonstrate this approach on two sets of realistic mock data. In Section~\ref{sec:methods}, we outline how \qp\ can be used to optimize the @@ -112,16 +113,23 @@ \section{Methods} approximation of \pz s. A \texttt{qp.PDF} object can carry a number of different parametrizations, each associated with a representation. +Conversions between parametrizations are facilitated by the +\texttt{numpy}\footnote{\url{http://www.numpy.org/}}, \texttt{scipy} +\footnote{\url{https://www.scipy.org/}}, and +\texttt{scikit-learn}\footnote{\url{http://scikit-learn.org}} tools. The currently supported parametrizations are described in Section~\ref{sec:approx}. The \qp\ package also provides a few built-in metrics of the accuracy of a representation of a \pz\ relative to a given parametrization that has been designated as "true." +Built-in plots are made using +\texttt{matplotlib}\footnote{\url{https://matplotlib.org/}}. The currently implemented metrics are described in Section~\ref{sec:metric}. Large-scale tests can be conducted using the \texttt{qp.Ensemble} class that provides a wrapper for parallelized operations over collections of \texttt{qp.PDF} objects; parallelization is facilitated by the \texttt{pathos} -package. \citep{mckerns_building_2012, mckerns_pathos:_2010} +package\footnote{\url{http://trac.mystic.cacr.caltech.edu/project/pathos/wiki.ht +ml}}. \citep{mckerns_building_2012, mckerns_pathos:_2010} \subsection{Approximation Methods} \label{sec:approx} @@ -158,10 +166,11 @@ \subsection{Approximation Methods} evaluations and mixture models, are used solely for internal manipulations within \qp. -We have not yet included the \texttt{SparsePz} sparse basis representation of -\citet{carrasco_kind_sparse_2014}, which uses a mixture model of $N_{f}$ -members of a library of $\sim10^{4}$ functions and has impressive compression -properties. +We have not yet included the +\texttt{SparsePz}\footnote{\url{https://github.com/mgckind/SparsePz}} sparse +basis representation of \citet{carrasco_kind_sparse_2014}, which uses a mixture +model of $N_{f}$ members of a library of $\sim10^{4}$ functions and has +impressive compression properties. We omit this format because decomposition with \texttt{SparsePZ} does not enforce that the stored parametrization be a probability distribution in the mathematical sense of nonnegativity and integration to unity. @@ -200,7 +209,8 @@ \subsubsection{Regular Binning} \label{sec:bins} By far the most popular format for approximating and storing \pz s is that of a -piecewise constant step function, also called a histogram binning. +piecewise constant step function, also called a histogram binning. +\citep{carrasco_kind_somz:_2014, sadeh_annz2:_2016, cavuoti_metaphor:_2017} It is the only format that has been used for public release of \pz\ catalogs \citep{tanaka_photometric_2017, sheldon_photometric_2012}; it is unclear whether this is a consequence or cause of the fact that it is the most common @@ -239,10 +249,12 @@ \subsubsection{Regular Binning} \subsubsection{Random Samples} \label{sec:samples} -Samples are the native output format of many machine learning algorithms -dependent on random choices, such as random forests. +Samples are the native output format of many machine learning algorithms due to +the discrete nature of training sets. \citep{de_vicente_dnf_2016} Such approaches typically produce large numbers of samples, far more than can realistically be stored by any survey, so a subsample is commonly stored. +Samples are easy to use in standard science applications developed for redshift +point estimates, so they have an established presence in the literature. The parameters of the samples format are the $N_{f}$ samples $\vec{c}=(z_{1}, z_{2}, \dots, z_{N_{f}-1}, z_{N_{f}})$, where $C=N_{f}$ is an implicit @@ -270,9 +282,13 @@ \subsubsection{Random Samples} \subsubsection{Regular Quantiles} \label{sec:quantiles} -One parametrization that has not previously been investigated is that of -quantiles, which are defined in terms of the cumulative distribution function -(CDF). +One parametrization that has not previously been investigated in the context of +photometric redshifts is that of quantiles, which are defined in terms of the +cumulative distribution function (CDF). +The quantile format for expressing a PDF, however, has appeared in the +astronomy literature. \citep{sun_star_2015, pizzocaro_results_2016, +laycock_x-ray_2017} + Under the quantile format, a \pz\ catalog shares $N_{f}$ ordered CDFs $\vec{C}=(q_{1}, q_{2}, \dots, q_{N_{f}-1}, q_{N_{f}})$. Each galaxy's catalog entry is the vector of redshifts $\vec{c}=(z_{1}, z_{2}, @@ -308,8 +324,8 @@ \subsubsection{Regular Quantiles} \subsection{Comparison Metrics} \label{sec:metric} -In this work, out aim is to probe how closely \pz s reconstructed from limited -set of stored parameters approximates the "true" PDF. +In this work, our aim is to probe how closely \pz s reconstructed from limited +set of stored parameters approximate their "true" representation. This is done without reference to a galaxy's true redshift; there is, in fact, no notion of a true redshift in our analysis. (For a demonstration of how one might approach the distinct problem of @@ -320,7 +336,7 @@ \subsection{Comparison Metrics} (KLD), which is defined as \begin{align} \label{eq:kld} - KLD[P(z) || \hat{P}(z)] &= \int_{-\infty}^{\infty}\ P(z)\ + \mathrm{KLD}[P(z) || \hat{P}(z)] &= \int_{-\infty}^{\infty}\ P(z)\ \log\left[\frac{P(z)}{\hat{P}(z)}\right]\ dz\\ &\approx \delta_{ff}\sum_{z=z_{1}}^{z_{N_{ff}}}\ P(z)\ \log\left[\frac{P(z)}{\hat{P}(z)}\right], @@ -429,12 +445,12 @@ \subsection{\Mgdata data mock catalog} \includegraphics[width=0.9\columnwidth]{figures/graham_pzs.png} \caption{Example \pz s from the mock LSST data of Graham, et al.\ (in preparation). - The high-quality mock photometry yields largely narrow, unimodal \pz s. + The \mgdata mock photometry yields largely narrow, unimodal \pz s. \label{fig:graham_pzs}} \end{figure} As the figure shows, the \pz s from this dataset tend to be unimodal and -sharply peaked, as if coming from "higher quality" photometric data due to the +sharply peaked, as if coming from brighter photometric data due to the conservative cuts in photometric magnitudes of this dataset. We produce "true" \pz s for the analysis by fitting a three-component Gaussian mixture model to each \pz\ in the catalog. @@ -470,7 +486,7 @@ \subsection{\Ssdata mock catalog} \caption{Example \pz s from the mock LSST data of deRose, et al.\ (in preparation). This sample contains a higher proportion of broad and/or multimodal \pz s, as -if from lower quality data. +if from the \ssdata data. \label{fig:schmidt_pzs}} \end{figure} @@ -504,6 +520,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} Figure~\ref{fig:stacked} shows an example of $\hat{n}(z)$ estimated from \pz s reconstructed from just $N_{f}=10$ parameters under each of our three approximation formats, evaluated on the same fine grid as the input \pz s. +The strong features in the curve are due to the very small sample size of $100$ +galaxies. As expected, the stacked histogram is quite coarse because of the step function interpolation. The samples and quantiles can be interpolated such that the stacked $n(z)$ @@ -514,7 +532,7 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \begin{figure} \includegraphics[width=0.9\columnwidth]{figures/stacked.png} \caption{An example of the stacked estimator of the redshift distribution, -for a subsample of $N_{g}=100$ galaxies drawn from the higher-quality data mock +for a subsample of $N_{g}=100$ galaxies drawn from the \mgdata data mock catalog and with just $N_{f}=10$ parameters used for each \pz. The most striking characteristic of $\hat{n}(z)$ with a relatively small number of parameters on a small number of galaxies is the coarseness of the @@ -547,7 +565,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} performance between formats and absolute $\hat{n}(z)$ KLDs as a function of $N_{f}$. -For the higher quality data mock catalog, the histogram format not only has a + +For the \mgdata data mock catalog, the histogram format not only has a consistently higher $\hat{n}(z)$ KLD but one that does not improve with increasing $N_{f}$. This poor performance independent of resource allocation is actually expected @@ -564,7 +583,7 @@ \subsection{Stacked $\hat{n}(z)$ estimator} the quantile parameters $\vec{c}^{q}$ from the true $p(z)$ and for reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{q}$. -In the lower quality data mock catalog, the histogram format does improve with +In the \ssdata data mock catalog, the histogram format does improve with increasing $N_{f}$, however, it takes a whopping $N_{f}=100$ stored parameters before the histogram format can supercede the KLD of the samples and quantile formats at a mere $N_{f}=3$ stored parameters, where the histogram format takes @@ -573,7 +592,7 @@ \subsection{Stacked $\hat{n}(z)$ estimator} histogram format is expected to capture more structure with more bins, consistent with the aforementioned improvement. The samples format's asymptote is surprisingly achieved at a lower KLD for the -low-quality data mock catalog than for the high-quality data mock catalog. +\ssdata data mock catalog than for the \mgdata data mock catalog. The variance between instantiations of the quantile format increases at high $N_{f}$, a possible indication of room for improvement with the procedures for deriving the quantile parameters $\vec{c}^{q}$ from the true $p(z)$ and for @@ -586,12 +605,12 @@ \subsection{Stacked $\hat{n}(z)$ estimator} function of number of stored parameters, for the three different approximation schemes: quantiles (purple dashed line), samples (green dash-dotted line), and histogram (orange dotted line). - Top panel: The mock catalog of higher-quality data of -Section~\ref{sec:graham} favors the quantiles format and strongly disfavors the -histogram format, with quantiles being slightly more favorable than samples. + Top panel: The mock catalog of \mgdata data of Section~\ref{sec:graham} +favors the quantiles format and strongly disfavors the histogram format, with +quantiles being slightly more favorable than samples. Bottom panel: The histogram format is not well-suited to the mock catalog of -lower-quality data of Section~\ref{sec:schmidt}, while the quantiles and -samples formats perform comparably well. +\ssdata data of Section~\ref{sec:schmidt}, while the quantiles and samples +formats perform comparably well. \label{fig:kld}} \end{figure} @@ -623,9 +642,9 @@ \subsection{Individual \pz s} \begin{figure} \includegraphics[width=0.9\columnwidth]{figures/individual.png} \caption{The distribution of log-KLD values for $N_{g}=100$ \pz s from the -low-quality dataset with $N_{f}=10$ over the quantiles (purple with dashed -border), samples (green with dash-dotted border), and histogram (orange with -dotted border) formats. +\ssdata dataset with $N_{f}=10$ over the quantiles (purple with dashed border), +samples (green with dash-dotted border), and histogram (orange with dotted +border) formats. For the individual \pz s, the samples format has far better KLDs than the histogram or quantile formats, which are comparable to one another. \label{fig:individual}} @@ -654,10 +673,10 @@ \subsection{Individual \pz s} The moments and their error regions are offset about $N_{f}$ to improve readability. Top panel: The samples format consistently minimizes the moments of the -log-KLD distribution of the higher quality data mock catalog at low $N_{f}$, -and the moments are similar across formats at the highest $N_{f}=100$. - Bottom panel: The lower quality data mock catalog exhibits no clear pattern -at low $N_{f}$ but the moments of all formats decrease at high $N_{f}$ with the +log-KLD distribution of the \mgdata data mock catalog at low $N_{f}$, and the +moments are similar across formats at the highest $N_{f}=100$. + Bottom panel: The\ssdata data mock catalog exhibits no clear pattern at low +$N_{f}$ but the moments of all formats decrease at high $N_{f}$ with the histogram format achieving the lowest moments in that regime. \label{fig:moments}} \end{figure} @@ -682,12 +701,12 @@ \section{Conclusions \& Future Directions} \item A larger number of available parameters in which to store a \pz\ catalog does not necessarily imply a significant reduction in loss of information. - \item The histogram format has a high rate of loss of information over high- -and low-quality data mock catalogs and across a wide range of number of stored -parameters, particularly under an aggregate function of individual + \item The histogram format has a high rate of loss of information over +brighter and fainter data mock catalogs and across a wide range of number of +stored parameters, particularly under an aggregate function of individual reconstructed \pz\ approximations. - \item The samples format is an excellent option for storage of high-quality -\pz\ catalogs, balancing loss of information for both individual \pz\ s and a + \item The samples format is an excellent option for storage of brighter \pz\ +catalogs, balancing loss of information for both individual \pz\ s and a catalog-wide metric. \item The quantile format is a promising option for minimizing loss of information in \pz\ storage, competitive with samples for an estimator of the @@ -701,6 +720,14 @@ \section{Conclusions \& Future Directions} We do not advocate for a one-size-fits-all solution to the problem and emphasize that the optimal choice must depend on the requirements of the science metric(s) and characteristics of the underlying \pz\ catalog. + +Though we discussed the previous use of each format in science calculations, we +do not endorse the preference of any format on the basis of existing +infrastructure for its use. +Rather, we hope that the community will continue to develop analysis methods +that best make use of the information in \pz s and then choose parametrizations +that most effectively serve the needs of those intended practices. + We invite the community to contribute additional formats and metrics to the publicly available \qp\ Python package developed for this project. \qp\ is a tool that can be used to optimize the choice of stored parametrization of a diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index ae1a69ea..b68ee568 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -485,7 +485,7 @@ " ax = plt.subplot(n_moments_use, 1, n)\n", " ends = (100., -100.)\n", " for key in formats:\n", - " delta_moments[key] = moments[key] - moments['truth']\n", + " delta_moments[key] = (moments[key] - moments['truth']) / moments['truth']\n", " ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n])))\n", " plot_bins = np.linspace(ends[0], ends[-1], 20)\n", " for key in formats:\n", @@ -495,11 +495,11 @@ " ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", " ax.legend()\n", " ax.set_ylabel('frequency', fontsize=14)\n", - " ax.set_xlabel(r'$\\Delta$ '+moment_names[n], fontsize=14)\n", + " ax.set_xlabel(r'fractional error on '+moment_names[n], fontsize=14)\n", " ax.set_xlim(min(plot_bins), max(plot_bins))\n", " plt.tight_layout()\n", " plt.subplots_adjust(top=0.95)\n", - " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment differences with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment fractional errors with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.savefig(loc+'_delta.pdf', dpi=250)\n", " plt.close()" ] @@ -731,6 +731,7 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", + "# print('pz metrics data shape '+str(pz_stats[f][n]))\n", " data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", @@ -771,6 +772,7 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", + "# print('pz metrics data shape '+str(pz_stats[f][n]))\n", " data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", @@ -867,6 +869,7 @@ " \n", " plt.figure(figsize=(5, 5))\n", " for f in formats:\n", + "# print('nz klds data shape '+str(nz_stats[f][n]))\n", " data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f\n", " n_i = len(data_arr)\n", " a = 1./len(formats)#1./n_i\n", @@ -890,6 +893,7 @@ " plt.figure(figsize=(5, 5))\n", " a = 1./len(formats)\n", " for f in formats:\n", + "# print('nz klds data shape '+str(nz_stats[f][n]))\n", " data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f\n", " plt.plot([10. * max(flat_floats), 10. * max(flat_floats)], [1., 10.], color=colors[f], label=f, linestyle=styles[f])\n", " kld_min.append(np.min(data_arr))\n", @@ -960,7 +964,8 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", + "# print('nz moments data shape '+str(nz_stats[f][n]))\n", + " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", @@ -981,7 +986,7 @@ "# nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", "# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", "# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", - " ax_n.set_ylabel(r'$\\Delta\\mathrm{'+moment_names[n]+r'}$', fontsize=14)\n", + " ax_n.set_ylabel(r'fractional error on '+moment_names[n], fontsize=14)\n", " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -1013,7 +1018,8 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth\n", + "# print('nz moments data shape '+str(nz_stats[f][n]))\n", + " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", "# nz_moment_max[n-1].append(max(i))\n", @@ -1021,7 +1027,7 @@ "# for i in data_arr:\n", "# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a)\n", "# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", - " ax_n.set_ylabel(r'$\\Delta\\mathrm{'+moment_names[n]+r'}$', fontsize=14)\n", + " ax_n.set_ylabel(r'fractional error on '+moment_names[n], fontsize=14)\n", " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -1140,7 +1146,7 @@ "floats = [3, 10, 30, 100]\n", "sizes = [10]#, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 1)#0)\n", + "instantiations = range(0, 2)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1158,12 +1164,13 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false, + "scrolled": true }, "outputs": [], "source": [ "# the \"pipeline\"\n", - "\n", + "global_start = timeit.default_timer()\n", "for n in range(len(names)):\n", " name = names[n]\n", " \n", @@ -1223,8 +1230,8 @@ " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", " save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", - " print('FINISHED '++name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - " print('FINISHED '++name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", "# plot = plot_pz_metrics(name, size)\n", " \n", "# plot = plot_nz_klds(name, size)\n", @@ -1232,7 +1239,8 @@ " \n", " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))" + " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1246,7 +1254,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true }, "outputs": [], "source": [ @@ -1306,6 +1314,18 @@ "display_name": "Python 2", "language": "python", "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" } }, "nbformat": 4, diff --git a/qp/ensemble.py b/qp/ensemble.py index fd291d32..dfe57a04 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -329,7 +329,7 @@ def moment(self, N, using=None, limits=None, dx=0.01, vb=False): using: string which parametrization to use limits: tuple of floats, optional - endpoints of integration interval in which to calculate KLD + endpoints of integration interval in which to calculate moment dx: float resolution of integration grid vb: boolean From 39d25237b713660910b2686ba97255804d174c34 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:01:45 -0700 Subject: [PATCH 32/96] improving default plot --- qp/pdf.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 6a2a756a..2fd5ab81 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -3,10 +3,21 @@ import scipy.stats as sps import scipy.interpolate as spi import scipy.optimize as spo -import matplotlib.pyplot as plt import sklearn as skl from sklearn import mixture +import matplotlib as mpl +import matplotlib.pyplot as plt +mpl.rcParams['text.usetex'] = True +mpl.rcParams['mathtext.rm'] = 'serif' +mpl.rcParams['font.family'] = 'serif' +mpl.rcParams['font.serif'] = 'Times New Roman' +mpl.rcParams['axes.titlesize'] = 16 +mpl.rcParams['axes.labelsize'] = 16 +mpl.rcParams['savefig.dpi'] = 250 +mpl.rcParams['savefig.format'] = 'pdf' +mpl.rcParams['savefig.bbox'] = 'tight' + import qp from qp.utils import infty as default_infty from qp.utils import epsilon as default_eps @@ -707,7 +718,7 @@ def approximate(self, points, using=None, scheme=None, vb=True): return interpolated#(points, interpolated) - def plot(self, limits=None, loc='plot.png', vb=True): + def plot(self, limits=None, loc='plot.pdf', vb=True): """ Plots the PDF, in various ways. @@ -752,7 +763,7 @@ def plot(self, limits=None, loc='plot.png', vb=True): x = np.linspace(min_x, max_x, 100) extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] y = self.truth.pdf(x) - plt.plot(x, y, color=colors['truth'], linestyle=styles['truth'], lw=3.0, alpha=1.0, label='True PDF') + plt.plot(x, y, color=colors['truth'], linestyle=styles['truth'], lw=3.0, alpha=0.5, label='True PDF') if vb: print 'Plotted truth.' @@ -773,7 +784,8 @@ def plot(self, limits=None, loc='plot.png', vb=True): max_x = max(max(x), extrema[-1]) x = np.linspace(min_x, max_x, 100) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') - plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') + plt.plot(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', ms=20, label='Quantiles') + # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') plt.plot(grid, qinterpolated, color=colors['quantiles'], lw=2.0, alpha=1.0, linestyle=styles['quantiles'], label='Quantile Interpolated PDF') extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] if vb: @@ -783,8 +795,9 @@ def plot(self, limits=None, loc='plot.png', vb=True): min_x = self.histogram[0][0] max_x = self.histogram[0][-1] x = np.linspace(min_x, max_x, 100) - plt.hlines(self.histogram[1], self.histogram[0][:-1], - self.histogram[0][1:], color=colors['histogram'], linestyle=styles['histogram'], lw=1.0, alpha=1., label='Histogram') + # plt.vlines(self.histogram[0], self.histogram[0][:-1], + # self.histogram[0][1:], color=colors['histogram'], linestyle=styles['histogram'], lw=1.0, alpha=1., label='histogram bin ends') + plt.plot(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', ms=20, label='Histogram Bin Ends') (grid, hinterpolated) = self.approximate(x, vb=vb, using='histogram') plt.plot(grid, hinterpolated, color=colors['histogram'], lw=2.0, alpha=1.0, @@ -808,7 +821,7 @@ def plot(self, limits=None, loc='plot.png', vb=True): min_x = min(self.samples) max_x = max(self.samples) x = np.linspace(min_x, max_x, 100) - plt.plot(self.samples, np.zeros(np.shape(self.samples)), color= colors['samples'], marker='+', ms=20, label='Samples') + plt.plot(self.samples, np.zeros(np.shape(self.samples)), color= colors['samples'], marker='|', ms=20, label='Samples') (grid, sinterpolated) = self.approximate(x, vb=vb, using='samples') plt.plot(grid, sinterpolated, color=colors['samples'], lw=2.0, @@ -819,9 +832,9 @@ def plot(self, limits=None, loc='plot.png', vb=True): print('Plotted samples') plt.xlim(extrema[0], extrema[-1]) - plt.legend() - plt.xlabel(r'$z$', fontsize=14) - plt.ylabel(r'$p(z)$', fontsize=14) + plt.legend(fontsize='large') + plt.xlabel(r'$z$', fontsize=16) + plt.ylabel(r'$p(z)$', fontsize=16) plt.tight_layout() plt.savefig(loc, dpi=250) From 5256277460b84d8e6e700bfcc5b2f197e06cce09 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:03:04 -0700 Subject: [PATCH 33/96] improving default plot --- qp/pdf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 2fd5ab81..2693a9ab 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -784,7 +784,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): max_x = max(max(x), extrema[-1]) x = np.linspace(min_x, max_x, 100) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') - plt.plot(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', ms=20, label='Quantiles') + plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', ms=20, label='Quantiles') # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') plt.plot(grid, qinterpolated, color=colors['quantiles'], lw=2.0, alpha=1.0, linestyle=styles['quantiles'], label='Quantile Interpolated PDF') extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] @@ -797,7 +797,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): x = np.linspace(min_x, max_x, 100) # plt.vlines(self.histogram[0], self.histogram[0][:-1], # self.histogram[0][1:], color=colors['histogram'], linestyle=styles['histogram'], lw=1.0, alpha=1., label='histogram bin ends') - plt.plot(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', ms=20, label='Histogram Bin Ends') + plt.scatter(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', ms=20, label='Histogram Bin Ends') (grid, hinterpolated) = self.approximate(x, vb=vb, using='histogram') plt.plot(grid, hinterpolated, color=colors['histogram'], lw=2.0, alpha=1.0, @@ -821,7 +821,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): min_x = min(self.samples) max_x = max(self.samples) x = np.linspace(min_x, max_x, 100) - plt.plot(self.samples, np.zeros(np.shape(self.samples)), color= colors['samples'], marker='|', ms=20, label='Samples') + plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color= colors['samples'], marker='|', ms=20, label='Samples') (grid, sinterpolated) = self.approximate(x, vb=vb, using='samples') plt.plot(grid, sinterpolated, color=colors['samples'], lw=2.0, From 88e25748bfd728b29654015dfd53df9c7c1612e9 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:04:34 -0700 Subject: [PATCH 34/96] improving default plot --- qp/pdf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 2693a9ab..44bd9a7b 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -784,7 +784,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): max_x = max(max(x), extrema[-1]) x = np.linspace(min_x, max_x, 100) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') - plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', ms=20, label='Quantiles') + plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', markersize=20, label='Quantiles') # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') plt.plot(grid, qinterpolated, color=colors['quantiles'], lw=2.0, alpha=1.0, linestyle=styles['quantiles'], label='Quantile Interpolated PDF') extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] @@ -797,7 +797,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): x = np.linspace(min_x, max_x, 100) # plt.vlines(self.histogram[0], self.histogram[0][:-1], # self.histogram[0][1:], color=colors['histogram'], linestyle=styles['histogram'], lw=1.0, alpha=1., label='histogram bin ends') - plt.scatter(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', ms=20, label='Histogram Bin Ends') + plt.scatter(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', markersize=20, label='Histogram Bin Ends') (grid, hinterpolated) = self.approximate(x, vb=vb, using='histogram') plt.plot(grid, hinterpolated, color=colors['histogram'], lw=2.0, alpha=1.0, @@ -821,7 +821,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): min_x = min(self.samples) max_x = max(self.samples) x = np.linspace(min_x, max_x, 100) - plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color= colors['samples'], marker='|', ms=20, label='Samples') + plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color=colors['samples'], marker='|', markersize=20, label='Samples') (grid, sinterpolated) = self.approximate(x, vb=vb, using='samples') plt.plot(grid, sinterpolated, color=colors['samples'], lw=2.0, From 10b42819b8a5340ff1b8054c458df802e7db5230 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:05:58 -0700 Subject: [PATCH 35/96] improving default plot --- qp/pdf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 44bd9a7b..d82eadc3 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -784,7 +784,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): max_x = max(max(x), extrema[-1]) x = np.linspace(min_x, max_x, 100) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') - plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', markersize=20, label='Quantiles') + plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', s=20, label='Quantiles') # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') plt.plot(grid, qinterpolated, color=colors['quantiles'], lw=2.0, alpha=1.0, linestyle=styles['quantiles'], label='Quantile Interpolated PDF') extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] @@ -797,7 +797,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): x = np.linspace(min_x, max_x, 100) # plt.vlines(self.histogram[0], self.histogram[0][:-1], # self.histogram[0][1:], color=colors['histogram'], linestyle=styles['histogram'], lw=1.0, alpha=1., label='histogram bin ends') - plt.scatter(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', markersize=20, label='Histogram Bin Ends') + plt.scatter(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', s=20, label='Histogram Bin Ends') (grid, hinterpolated) = self.approximate(x, vb=vb, using='histogram') plt.plot(grid, hinterpolated, color=colors['histogram'], lw=2.0, alpha=1.0, @@ -821,7 +821,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): min_x = min(self.samples) max_x = max(self.samples) x = np.linspace(min_x, max_x, 100) - plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color=colors['samples'], marker='|', markersize=20, label='Samples') + plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color=colors['samples'], marker='|', s=20, label='Samples') (grid, sinterpolated) = self.approximate(x, vb=vb, using='samples') plt.plot(grid, sinterpolated, color=colors['samples'], lw=2.0, From 49d02291c17b908edb8a05137faf31db975a1152 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:09:48 -0700 Subject: [PATCH 36/96] improving default plot --- qp/pdf.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index d82eadc3..7df6e33d 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -763,7 +763,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): x = np.linspace(min_x, max_x, 100) extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] y = self.truth.pdf(x) - plt.plot(x, y, color=colors['truth'], linestyle=styles['truth'], lw=3.0, alpha=0.5, label='True PDF') + plt.plot(x, y, color=colors['truth'], linestyle=styles['truth'], lw=5.0, alpha=0.25, label='True PDF') if vb: print 'Plotted truth.' @@ -784,7 +784,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): max_x = max(max(x), extrema[-1]) x = np.linspace(min_x, max_x, 100) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') - plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', s=20, label='Quantiles') + plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', s=100, label='Quantiles', alpha=0.75) # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') plt.plot(grid, qinterpolated, color=colors['quantiles'], lw=2.0, alpha=1.0, linestyle=styles['quantiles'], label='Quantile Interpolated PDF') extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] @@ -797,7 +797,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): x = np.linspace(min_x, max_x, 100) # plt.vlines(self.histogram[0], self.histogram[0][:-1], # self.histogram[0][1:], color=colors['histogram'], linestyle=styles['histogram'], lw=1.0, alpha=1., label='histogram bin ends') - plt.scatter(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', s=20, label='Histogram Bin Ends') + plt.scatter(self.histogram[0], np.zeros(np.shape(self.histogram[0])), color=colors['histogram'], marker='|', s=100, label='Histogram Bin Ends', alpha=0.75) (grid, hinterpolated) = self.approximate(x, vb=vb, using='histogram') plt.plot(grid, hinterpolated, color=colors['histogram'], lw=2.0, alpha=1.0, @@ -821,7 +821,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): min_x = min(self.samples) max_x = max(self.samples) x = np.linspace(min_x, max_x, 100) - plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color=colors['samples'], marker='|', s=20, label='Samples') + plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color=colors['samples'], marker='|', s=100, label='Samples', alpha=0.75) (grid, sinterpolated) = self.approximate(x, vb=vb, using='samples') plt.plot(grid, sinterpolated, color=colors['samples'], lw=2.0, From 01c91201f0834e262f2c85f4b47100d01b97d603 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:14:41 -0700 Subject: [PATCH 37/96] improving default plot --- qp/pdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qp/pdf.py b/qp/pdf.py index 7df6e33d..10ac4597 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -784,7 +784,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): max_x = max(max(x), extrema[-1]) x = np.linspace(min_x, max_x, 100) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') - plt.scatter(z, np.zeros(np.shape(z)), color=colors['quantiles'], marker='|', s=100, label='Quantiles', alpha=0.75) + plt.scatter(self.quantiles[1], np.zeros(np.shape(self.quantiles[1])), color=colors['quantiles'], marker='|', s=100, label='Quantiles', alpha=0.75) # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') plt.plot(grid, qinterpolated, color=colors['quantiles'], lw=2.0, alpha=1.0, linestyle=styles['quantiles'], label='Quantile Interpolated PDF') extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] From 60d647fc9f004938cf673fc1e972b65bbca73f7a Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:18:10 -0700 Subject: [PATCH 38/96] improved demo plot --- demo_pz.pdf | Bin 0 -> 141915 bytes .../figures/demo_pz.png | Bin 136576 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 demo_pz.pdf delete mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.png diff --git a/demo_pz.pdf b/demo_pz.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7e010b9b3c5a9a148a66a5efbcebcedf8cf95537 GIT binary patch literal 141915 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

Fg){80@SvHez#q=GO#Wp~Xf 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 literal 0 HcmV?d00001 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.png b/docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.png deleted file mode 100644 index d04ba035337068c9d76b8e0abc10e8bbdb00ef7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136576 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�Tco7eF@rqF7ZnhoU>tDkPY(@EkxD;M#Lgzy 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 Di}dbg From 0314ee7d00280da127081e6bb93779e06da359a9 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:20:49 -0700 Subject: [PATCH 39/96] fixed mistake in location of figure --- .../figures/demo_pz.pdf | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename demo_pz.pdf => docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.pdf (100%) diff --git a/demo_pz.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.pdf similarity index 100% rename from demo_pz.pdf rename to docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.pdf From 3b12e5e93da2e83cf432fbae74fba52400e84dfd Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 18:21:30 -0700 Subject: [PATCH 40/96] new figure --- docs/desc-0000-qp-photo-z_approximation/main.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 01118b6b..52b72d4e 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -186,11 +186,11 @@ \subsection{Approximation Methods} The various \qp\ formats are illustrated in Figure~\ref{fig:qp} on a multimodal \pz\ with stored parameters. \begin{figure} - \includegraphics[width=0.9\columnwidth]{figures/demo_pz.png} + \includegraphics[width=0.9\columnwidth]{figures/demo_pz.pdf} \caption{\qp\ approximation of a continuous 1-dimensional PDF (solid black line) using the step function (orange dotted line), samples (green dash-dotted line), and quantile formats (purple dashed line) with the same number of stored -parameters ($N_{f}=20$ in this case). +parameters ($N_{f}=7$ in this case). \label{fig:qp}} \end{figure} From de546d7b1399e98d37f2c14c7d861aecbfff0e90 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 19:30:41 -0700 Subject: [PATCH 41/96] fixed formatting error --- docs/notebooks/kld.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/notebooks/kld.ipynb b/docs/notebooks/kld.ipynb index 49aa0908..c72212c3 100644 --- a/docs/notebooks/kld.ipynb +++ b/docs/notebooks/kld.ipynb @@ -241,7 +241,7 @@ "source": [ "x = widths\n", "y = np.log(widths*(2.0/np.pi))\n", - "plt.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label='log($2\\sigma/\\pi}$)')\n", + "plt.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label=r'log($2\\sigma/\\pi}$)')\n", "\n", "plt.plot(widths, D, color='black', linestyle='-', lw=2.0, alpha=1.0, label='Offset=0.0')\n", "plt.xscale('log')\n", From 0d86e3b74b2f1775fb654f830dd77f2a2e757ee4 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 20:12:01 -0700 Subject: [PATCH 42/96] fixed typo --- docs/notebooks/kld.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/notebooks/kld.ipynb b/docs/notebooks/kld.ipynb index c72212c3..9d626c8c 100644 --- a/docs/notebooks/kld.ipynb +++ b/docs/notebooks/kld.ipynb @@ -241,7 +241,7 @@ "source": [ "x = widths\n", "y = np.log(widths*(2.0/np.pi))\n", - "plt.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label=r'log($2\\sigma/\\pi}$)')\n", + "plt.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label=r'$\\log(2\\sigma/\\pi)$')\n", "\n", "plt.plot(widths, D, color='black', linestyle='-', lw=2.0, alpha=1.0, label='Offset=0.0')\n", "plt.xscale('log')\n", From 4c19c3b5c207cecfa53d4c9c59ba71092264d169 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 29 Aug 2017 20:53:07 -0700 Subject: [PATCH 43/96] periodic update --- .../research/analysis.ipynb | 271 ++++++++++++------ 1 file changed, 187 insertions(+), 84 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index b68ee568..c2914a58 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -360,7 +360,7 @@ " inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus)\n", " with open(inloc+'.hkl', 'r') as infilename:\n", " pz_moments = hickle.load(infilename)\n", - " klds, metrics, kld_moments = {}, {}, {}\n", + " pz_moment_deltas, klds, metrics, kld_moments = {}, {}, {}, {}\n", " \n", " for key in Eo.keys():\n", " key_start = timeit.default_timer()\n", @@ -371,16 +371,18 @@ " using='samples', vb=False)\n", " metrics[key] = qp.PDF(truth=gmm_metric)\n", " \n", - " \n", - " pz_moments[key], kld_moments[key] = [], []\n", + " pz_moment_deltas[key], pz_moments[key], kld_moments[key] = [], [], []\n", " for n in range(N_moments):\n", " kld_moments[key].append(qp.utils.calculate_moment(metrics[key], n,\n", " using='truth', \n", " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", - " pz_moments[key].append(Eo[key].moment(n, using=key, limits=zlim, \n", - " dx=delta_z, vb=False))\n", + " new_moment = Eo[key].moment(n, using=key, limits=zlim, \n", + " dx=delta_z, vb=False)\n", + " pz_moments[key].append(new_moment)\n", + " delta_moment = (new_moment - pz_moments['truth'][n]) / pz_moments['truth'][n]\n", + " pz_moment_deltas[key].append(np.sum(np.abs(delta_moment) < 0.01))#TO DO change to just keeping delta moment and cutting in plot\n", " print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start))\n", "# print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", @@ -396,7 +398,7 @@ " with open(outloc+'.hkl', 'w') as outfilename:\n", " hickle.dump(pz_moments, outfilename)\n", " \n", - " return(Eo, klds, kld_moments, pz_moments)" + " return(Eo, klds, kld_moments, pz_moments, pz_moment_deltas)" ] }, { @@ -445,63 +447,71 @@ }, "outputs": [], "source": [ - "def plot_individual_moment(n_gals_use, dataset_key, N_floats, i):\n", + "# def plot_individual_moment(n_gals_use, dataset_key, N_floats, i):\n", " \n", - " path = os.path.join(dataset_key, str(n_gals_use))\n", - " a = 1./len(formats) \n", - " loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", - " with open(loc+'.hkl', 'r') as filename:\n", - " moments = hickle.load(filename)\n", - " delta_moments = {}\n", + "# path = os.path.join(dataset_key, str(n_gals_use))\n", + "# a = 1./len(formats) \n", + "# loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", + "# with open(loc+'.hkl', 'r') as filename:\n", + "# moments = hickle.load(filename)\n", + "# delta_moments = {}\n", " \n", - " plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", - " for n in range(1, n_moments_use):\n", - " ax = plt.subplot(n_moments_use, 1, n)\n", - " ends = (min(moments['truth'][n]), max(moments['truth'][n]))\n", - " for key in formats:\n", - " ends = (min(ends[0], min(moments[key][n])), max(ends[-1], max(moments[key][n])))\n", - " plot_bins = np.linspace(ends[0], ends[-1], 20)\n", - " ax.hist([-100], color='k', alpha=a, histtype='stepfilled', edgecolor='k', label='truth', \n", - " linestyle='-', ls='-')\n", - " ax.hist(moments['truth'][n], bins=plot_bins, color='k', alpha=a, histtype='stepfilled', normed=True)\n", - " ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a)\n", - " for key in formats:\n", - " ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - " linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", - " ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", - " ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", - " ax.legend()\n", - " ax.set_ylabel('frequency', fontsize=14)\n", - " ax.set_xlabel(moment_names[n], fontsize=14)\n", - " ax.set_xlim(min(plot_bins), max(plot_bins))\n", - " plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - " plt.tight_layout()\n", - " plt.subplots_adjust(top=0.95)\n", - " plt.savefig(loc+'.pdf', dpi=250)\n", - " plt.close()\n", + "# plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", + "# for n in range(1, n_moments_use):\n", + "# ax = plt.subplot(n_moments_use, 1, n)\n", + "# ends = (min(moments['truth'][n]), max(moments['truth'][n]))\n", + "# for key in formats:\n", + "# ends = (min(ends[0], min(moments[key][n])), max(ends[-1], max(moments[key][n])))\n", + "# plot_bins = np.linspace(ends[0], ends[-1], 20)\n", + "# ax.hist([-100], color='k', alpha=a, histtype='stepfilled', edgecolor='k', label='truth', \n", + "# linestyle='-', ls='-')\n", + "# ax.hist(moments['truth'][n], bins=plot_bins, color='k', alpha=a, histtype='stepfilled', normed=True)\n", + "# ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a)\n", + "# for key in formats:\n", + "# ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", + "# linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", + "# ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", + "# ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", + "# ax.legend()\n", + "# ax.set_ylabel('frequency', fontsize=14)\n", + "# ax.set_xlabel(moment_names[n], fontsize=14)\n", + "# ax.set_xlim(min(plot_bins), max(plot_bins))\n", + "# plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + "# plt.tight_layout()\n", + "# plt.subplots_adjust(top=0.95)\n", + "# plt.savefig(loc+'.pdf', dpi=250)\n", + "# plt.close()\n", " \n", - " plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", - " for n in range(1, n_moments_use):\n", - " ax = plt.subplot(n_moments_use, 1, n)\n", - " ends = (100., -100.)\n", - " for key in formats:\n", - " delta_moments[key] = (moments[key] - moments['truth']) / moments['truth']\n", - " ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n])))\n", - " plot_bins = np.linspace(ends[0], ends[-1], 20)\n", - " for key in formats:\n", - " ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - " linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", - " ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", - " ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", - " ax.legend()\n", - " ax.set_ylabel('frequency', fontsize=14)\n", - " ax.set_xlabel(r'fractional error on '+moment_names[n], fontsize=14)\n", - " ax.set_xlim(min(plot_bins), max(plot_bins))\n", - " plt.tight_layout()\n", - " plt.subplots_adjust(top=0.95)\n", - " plt.suptitle(dataset_info[dataset_key]['name']+r' data moment fractional errors with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - " plt.savefig(loc+'_delta.pdf', dpi=250)\n", - " plt.close()" + "# ngood = {}\n", + "# normarr = np.ones(n_gals_use)\n", + "# for key in formats:\n", + "# ngood[key] = np.zeros(n_moments_use)\n", + "# plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", + "# for n in range(1, n_moments_use):\n", + "# ax = plt.subplot(n_moments_use, 1, n)\n", + "# ends = (100., -100.)\n", + "# for key in formats:\n", + "# delta_moments[key] = (moments[key] - moments['truth']) / moments['truth']\n", + "# ngood[key][n] = np.sum(normarr[np.abs(delta_moments[key][n]) < 0.01]) / float(n_gals_use)\n", + "# ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n])))\n", + "# plot_bins = np.linspace(ends[0], ends[-1], 20)\n", + "# for key in formats:\n", + "# ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", + "# linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", + "# ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", + "# ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", + "# ax.legend()\n", + "# ax.set_ylabel('frequency', fontsize=14)\n", + "# ax.set_xlabel(r'fractional error on '+moment_names[n], fontsize=14)\n", + "# ax.set_xlim(min(plot_bins), max(plot_bins))\n", + "# plt.tight_layout()\n", + "# plt.subplots_adjust(top=0.95)\n", + "# plt.suptitle(dataset_info[dataset_key]['name']+r' data moment fractional errors with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + "# plt.savefig(loc+'_delta.pdf', dpi=250)\n", + "# plt.close()\n", + " \n", + "# #TO DO: move this calculation and saving out of this plot, then eliminate the plot!\n", + "# save_moments(dataset_key, n_gals_use, N_floats, ngood, 'pz_moment_deltas')" ] }, { @@ -799,7 +809,100 @@ }, "outputs": [], "source": [ - "#similar plot with moments of individual pz moment distributions?" + "def plot_pz_delta_moments(name, size):\n", + " n_gals_use = size\n", + " \n", + " # should look like nz_moments\n", + " path = os.path.join(dataset_key, str(n_gals_use))\n", + " loc = os.path.join(path, 'pz_moment_deltas'+str(n_gals_use)+dataset_key)\n", + " with open(loc+'.hkl', 'r') as pz_file:\n", + " pz_stats = hickle.load(pz_file)\n", + " flat_floats = np.array(pz_stats['N_f']).flatten()\n", + " in_x = np.log(flat_floats)\n", + " a = 1./len(formats)\n", + " shapes = moment_shapes\n", + " marksize = 10\n", + " \n", + " def make_patch_spines_invisible(ax):\n", + " ax.set_frame_on(True)\n", + " ax.patch.set_visible(False)\n", + " for sp in ax.spines.values():\n", + " sp.set_visible(False) \n", + " \n", + " fig, ax = plt.subplots()\n", + " fig.subplots_adjust(right=1.)\n", + " ax_n = ax\n", + " for key in formats:\n", + " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " for n in range(1, n_moments_use):\n", + " ax.scatter([-10], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", + " n_factor = 0.1 * (n - 2)\n", + " if n>1:\n", + " ax_n = ax.twinx()\n", + " if n>2:\n", + " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", + " make_patch_spines_invisible(ax_n)\n", + " ax_n.spines[\"right\"].set_visible(True)\n", + " for s in range(len(formats)):\n", + " f = formats[s]\n", + " f_factor = 0.05 * (s - 1)\n", + " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1) / float(size)#go from n_floats*instantiations to instantiations*n_floats\n", + " mean = np.mean(data_arr, axis=0).flatten()\n", + " std = np.std(data_arr, axis=0).flatten()\n", + " y_plus = mean + std\n", + " y_minus = mean - std\n", + " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f])\n", + " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", + " n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", + " n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", + " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', fontsize=14)\n", + " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", + " ax.set_xscale('log')\n", + " ax.set_xticks(flat_floats)\n", + " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", + " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", + " ax.set_xlabel('number of parameters', fontsize=14)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", + " ax.legend(loc='upper right')\n", + " fig.tight_layout()\n", + " fig.savefig(loc+'_clean.pdf', dpi=250)\n", + " plt.close()\n", + " \n", + " fig, ax = plt.subplots()\n", + " fig.subplots_adjust(right=1.)\n", + " ax_n = ax\n", + " for key in formats:\n", + " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " for n in range(1, n_moments_use):\n", + " n_factor = 0.1 * (n - 2)\n", + " ax.scatter([-10], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " if n>1:\n", + " ax_n = ax.twinx()\n", + " if n>2:\n", + " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", + " make_patch_spines_invisible(ax_n)\n", + " ax_n.spines[\"right\"].set_visible(True)\n", + " for s in range(len(formats)):\n", + " f = formats[s]\n", + " f_factor = 0.05 * (s - 1)\n", + " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1) / float(size)\n", + " for i in data_arr:\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", + " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', fontsize=14)\n", + " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", + " ax.set_xscale('log')\n", + " ax.set_xticks(flat_floats)\n", + " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", + " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", + " ax.set_xlabel('number of parameters', fontsize=14)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", + " ax.legend(loc='upper right')\n", + " fig.tight_layout()\n", + " fig.savefig(loc+'_all.pdf', dpi=250)\n", + " plt.close()\n", + " \n", + " #np.sum(np.abs(delta_moment) < 0.01) TO DO: do this along with division" ] }, { @@ -1109,7 +1212,7 @@ "n_plot = len(color_cycle)\n", "n_moments_use = 4\n", "moment_names = ['integral', 'mean', 'variance', 'kurtosis']\n", - "moment_shapes = ['o', '*', '+', 'x']\n", + "moment_shapes = ['o', '*', 'P', 'X']\n", "\n", "#make this a more clever structure, i.e. a dict\n", "formats = ['quantiles', 'histogram', 'samples']\n", @@ -1130,7 +1233,9 @@ "kld_min = [1.]\n", "kld_max = [1.]\n", "nz_mean_max = -10.*np.ones(n_moments_use)\n", - "nz_mean_min = 10.*np.ones(n_moments_use)" + "nz_mean_min = 10.*np.ones(n_moments_use)\n", + "n_delta_max = -10.*np.ones(n_moments_use)\n", + "n_delta_min = 10.*np.ones(n_moments_use)" ] }, { @@ -1146,7 +1251,7 @@ "floats = [3, 10, 30, 100]\n", "sizes = [10]#, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 2)#0)\n", + "instantiations = range(2, 3)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1213,16 +1318,17 @@ " float_start = timeit.default_timer()\n", " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - " (ensembles, pz_klds, metric_moments, pz_moments) = analyze_individual(catalog, \n", + " (ensembles, pz_klds, metric_moments, pz_moments, pz_moment_deltas) = analyze_individual(catalog, \n", " z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + " \n", " for f in formats:\n", " fname = str(n_floats_use)+f+str(i)\n", "# plot = plot_examples(size, name, bonus=fname)\n", "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", - "# plot = plot_individual_moment(size, name, n_floats_use, i=i)\n", " save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", + " save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", " \n", " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", " n_floats_use, name, i=i)\n", @@ -1233,7 +1339,7 @@ " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", "# plot = plot_pz_metrics(name, size)\n", - " \n", + "# plot = plot_pz_delta_moments(name, size) \n", "# plot = plot_nz_klds(name, size)\n", "# plot = plot_nz_moments(name, size)\n", " \n", @@ -1254,7 +1360,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -1262,23 +1368,20 @@ "\n", "for name in names:\n", " for size in sizes:\n", - " path = os.path.join(name, str(size))\n", - " for i in instantiations:\n", - " \n", - " plot = plot_examples(size, name, bonus='_original'+str(i))\n", - " plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", - " \n", - " for n_floats_use in floats:\n", - " \n", - " for f in formats:\n", - " fname = str(n_floats_use)+f+str(i)\n", - " plot = plot_examples(size, name, bonus=fname)\n", - " plot = plot_individual_kld(size, name, n_floats_use, i)\n", - " plot = plot_individual_moment(size, name, n_floats_use, i)\n", - " plot = plot_estimators(size, name, n_floats_use, i)\n", - " \n", + "# path = os.path.join(name, str(size))\n", + "# for j in range(max(instantiations)):\n", + "# i = instantiations[j]\n", + "# plot = plot_examples(size, name, bonus='_original'+str(i))\n", + "# plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", + "# for n in range(len(floats)):\n", + "# n_floats_use = floats[n]\n", + "# for f in formats:\n", + "# fname = str(n_floats_use)+f+str(i)\n", + "# plot = plot_examples(size, name, bonus=fname)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i)\n", " plot = plot_pz_metrics(name, size)\n", - " \n", + " plot = plot_pz_delta_moments(name, size)\n", " plot = plot_nz_klds(name, size)\n", " plot = plot_nz_moments(name, size)" ] From 64a6e1ca0b242153576c8b5b633c707ac5a5ee31 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 30 Aug 2017 11:30:18 -0700 Subject: [PATCH 44/96] still fiddling with plots --- .../research/analysis.ipynb | 91 +++++++++++++------ 1 file changed, 61 insertions(+), 30 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index c2914a58..ac09cdbb 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -730,10 +730,15 @@ " for key in formats:\n", " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key])\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-1], [0], color='k', alpha=1., marker=shapes[n], s=marksize, label=moment_names[n])\n", + " ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", " n_factor = 0.1 * (n - 2)\n", " if n>1:\n", " ax_n = ax.twinx()\n", + " rot_ang = 270\n", + " label_space = 15.\n", + " else:\n", + " rot_ang = 90\n", + " label_space = 0.\n", " if n>2:\n", " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", " make_patch_spines_invisible(ax_n)\n", @@ -748,11 +753,11 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=2. * a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " pz_mean_max[n] = max(pz_mean_max[n], np.max(y_plus))\n", " pz_mean_min[n] = min(pz_mean_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'$\\log[\\mathrm{'+moment_names[n]+r'}]$', fontsize=14)\n", + " ax_n.set_ylabel(r'$\\log[\\mathrm{'+moment_names[n]+r'}]$', rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((pz_mean_min[n]-1., pz_mean_max[n]+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -772,9 +777,14 @@ " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", " for n in range(1, n_moments_use):\n", " n_factor = 0.1 * (n - 2)\n", - " ax.scatter([-1], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", " if n>1:\n", " ax_n = ax.twinx()\n", + " rot_ang = 270\n", + " label_space = 15.\n", + " else:\n", + " rot_ang = 90\n", + " label_space = 0.\n", " if n>2:\n", " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", " make_patch_spines_invisible(ax_n)\n", @@ -787,7 +797,7 @@ " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", "# pz_moment_max[n-1].append(max(i))\n", - " ax_n.set_ylabel(r'$\\log[\\mathrm{'+moment_names[n]+r'}]$', fontsize=14)\n", + " ax_n.set_ylabel(r'$\\log[\\mathrm{'+moment_names[n]+r'}]$', rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim(pz_mean_min[n]-1., pz_mean_max[n]+1.)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -835,10 +845,15 @@ " for key in formats:\n", " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-10], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", " n_factor = 0.1 * (n - 2)\n", " if n>1:\n", " ax_n = ax.twinx()\n", + " rot_ang = 270\n", + " label_space = 15.\n", + " else:\n", + " rot_ang = 90\n", + " label_space = 0.\n", " if n>2:\n", " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", " make_patch_spines_invisible(ax_n)\n", @@ -852,11 +867,11 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", " n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', fontsize=14)\n", + " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -876,9 +891,14 @@ " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", " for n in range(1, n_moments_use):\n", " n_factor = 0.1 * (n - 2)\n", - " ax.scatter([-10], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", " if n>1:\n", " ax_n = ax.twinx()\n", + " rot_ang = 270\n", + " label_space = 15.\n", + " else:\n", + " rot_ang = 90\n", + " label_space = 0.\n", " if n>2:\n", " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", " make_patch_spines_invisible(ax_n)\n", @@ -889,7 +909,7 @@ " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1) / float(size)\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", - " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', fontsize=14)\n", + " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -1055,11 +1075,16 @@ " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", "# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-10], [0], color='k', alpha=0.5, marker=shapes[n], s=marksize, label=moment_names[n])\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", " n_factor = 0.1 * (n - 2)\n", " truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)\n", " if n>1:\n", " ax_n = ax.twinx()\n", + " rot_ang = 270\n", + " label_space = 15.\n", + " else:\n", + " rot_ang = 90\n", + " label_space = 0.\n", " if n>2:\n", " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", " make_patch_spines_invisible(ax_n)\n", @@ -1074,7 +1099,7 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=2. * a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", " nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", @@ -1089,7 +1114,7 @@ "# nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", "# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", "# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", - " ax_n.set_ylabel(r'fractional error on '+moment_names[n], fontsize=14)\n", + " ax_n.set_ylabel(r'fractional error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -1110,10 +1135,15 @@ "# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)\n", " for n in range(1, n_moments_use):\n", " n_factor = 0.1 * (n - 2)\n", - " ax.scatter([-10], [0], color='k', marker=shapes[n], s=marksize, label='moment '+str(n))\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", " truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)\n", " if n>1:\n", " ax_n = ax.twinx()\n", + " rot_ang = 270\n", + " label_space = 15.\n", + " else:\n", + " rot_ang = 90\n", + " label_space = 0.\n", " if n>2:\n", " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", " make_patch_spines_invisible(ax_n)\n", @@ -1130,7 +1160,7 @@ "# for i in data_arr:\n", "# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a)\n", "# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", - " ax_n.set_ylabel(r'fractional error on '+moment_names[n], fontsize=14)\n", + " ax_n.set_ylabel(r'fractional error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -1249,9 +1279,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [10]#, 100, 1000]\n", - "names = dataset_info.keys()\n", - "instantiations = range(2, 3)#0)\n", + "sizes = [100]#, 100, 1000]\n", + "names = ['ss']#dataset_info.keys()\n", + "instantiations = range(0, 1)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1368,18 +1398,19 @@ "\n", "for name in names:\n", " for size in sizes:\n", - "# path = os.path.join(name, str(size))\n", - "# for j in range(max(instantiations)):\n", - "# i = instantiations[j]\n", - "# plot = plot_examples(size, name, bonus='_original'+str(i))\n", - "# plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", - "# for n in range(len(floats)):\n", - "# n_floats_use = floats[n]\n", - "# for f in formats:\n", - "# fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i)\n", + " path = os.path.join(name, str(size))\n", + " for j in range(max(instantiations)):\n", + " i = instantiations[j]\n", + " plot = plot_examples(size, name, bonus='_original'+str(i))\n", + " plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", + " for n in range(len(floats)):\n", + " n_floats_use = floats[n]\n", + " for f in formats:\n", + " fname = str(n_floats_use)+f+str(i)\n", + " plot = plot_examples(size, name, bonus=fname)\n", + " plot = plot_individual_kld(size, name, n_floats_use, i)\n", + " plot = plot_estimators(size, name, n_floats_use, i)\n", + " print('plotted instantiation '+str(j))\n", " plot = plot_pz_metrics(name, size)\n", " plot = plot_pz_delta_moments(name, size)\n", " plot = plot_nz_klds(name, size)\n", From 58e22b5043e6726729ba8d4677fb8f55289b04a9 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 30 Aug 2017 14:08:59 -0700 Subject: [PATCH 45/96] improved quantile interpolation again --- .../figures/demo_pz.pdf | Bin 141915 -> 141914 bytes .../research/data_exploration.ipynb | 47 ++++++++--------- docs/notebooks/demo.ipynb | 8 +-- qp/pdf.py | 48 +++++++++++++----- 4 files changed, 64 insertions(+), 39 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.pdf index 7e010b9b3c5a9a148a66a5efbcebcedf8cf95537..4ac08a52777dd4f0572b09f3c3335a7f14bd92a3 100644 GIT binary patch delta 3068 zcmZWm2UJsO6V-_HUZn)1G{JRw2}vM9k!FwoyqWLbIdk7gKkslqZ#9pgsljh3D0RtO zP{=Lnyfn9D+{m+AQ;N#|)|r)gb>rVLxD)<<__LykE?olV4y|S2(n)n5rDWGcu~u&<|Xd*B8L~<)tJQKLp@@tku5W-5o$YMHQq)W znX%#E+eE~07tUA7Ep3EQX78ruFz+ZeO5w$g>O)cZ#2H(#IPL|xZb{W&Sjk%Ig1BIj zH<#&co*MN_cU<3@C2rujVDWaf>?ng2*u{mb_binMQbV=Br`@!#I70ev_%i;K4?LP8 z9##X7pF~oAailjsG8Tn4mv5WqT!sNCH?y+-K4saDEI1#=K5@|EhIDAW&CxqKX)cBL z-zZzIGMDSk+ zme3U4C3GRrw4ZUnKhPKHWW{~{2Y0q3iCdggaMZ~!um5GISET#2U$okEeY@6DbBDy= z7@o`~I!?v^4R5vut&(lL3la@URCTgn$Ixz%9FtzfU^`iY6LCYbZDLgtG>Iy$5G5yf zP7}+<(wOX2;sTq=iAlu#DfvZo2hXry456GQxL7RU`Y`8tY8SH!JBw|?vYCy^Y-}TT zmf5fynd}TgexLjpx?OhyP1kPrGYoj@7Zp&$A-j-RT!&vsXTH59JHMp=lr!dOGCTZw z{$&2&08brw$6>wWjH>aA;4pS^C&h)uwfGNs55E}Pzdi8c{6uow=54MuWJ81|!5W%B z?5Sf-nlDN;((i~1j=3ocT+4MG!>uf$(Lo;K+?RsWvw3%K8Y2fvdvQ+uWD{arb zdI#bxLf+}tSJ1@Qbhc6$7w=GxI~d7>CE1EOR%phrhlplHP0_C&ou6MBeUf`ak+dNF zJI^~aFYD^*i&albW^Z~mykVbB1TO$RgwBs>Ed7F^hrCmyk6dJ}rKz_Zz039ea*`BY zIaU%$V`P52%*F4jLptt>yQ(n$u`g~YI#OuRpgKnkJ)~xSubI(&T_#ILtn$xS@7bg3 z;>Pvs{Vw4e1HKoJ=bPwyoVS6ff~_@+s0Q~_oT>~(WiHDw2s)@XdVc3wK{$Fd#>FxmBM7c9ee9;BPdeCAYV4M9DPB;(<_%XC zJe%c_QA&=;wxjbEiMfR_%wzPgp&DfaTLw-vmX%N=35Xk4+S%o8ys8LI>H7rnjt*LwoOxX)cl92< zx_yS8>E(bVZOY_b)O{>Vn_@KMDb>WJTSGA-w2O|4ncnsW7`$2RzF$9y>W?CgLvAH% z`;5&{_@wunDYuQ>xv-@21`Ne7)9*p@%}%vuz(Q@Y8>%oP<-O z@0lFfSNo+OA2xb`n(zLbFYmR~NVk>FX3WM*pMA#HNZrH!O~s?gyz-*pilZZ@fD(3-N;jbd!k|d?#rC+ zbHb(4w^jq`tLV7l#ku8F!)G?G^Xgn)(sOrDw6L-TMg|8uH3X-=4BFzWV2b$_O>coA zpV!k|U8FC*3eVt~hhN8hEoB{_%(A5^${s`*+)5)!^H)Z+CI;TFyw|U{X4dSPmLa5x zI%K2n87zjL#+dOUHB3&`dyC8^c@w3s7z+$`VFd7}xKauqqPz0u_O;xVFGsZaoNA%0 zy%V(`JMNJl6qp4G^k07v6evvB7eaiZ*f9g?4@jS}+k66-O?6F=ju%SOsn19KH=~$c z_Bq`9?`qP+DXs3WD@d5ev)$L^o%-Sx`iI9m$$dJuY})J( z8hatj9bYe-ywe~iV|&;b8p$YQ+RM;>@aBg81{1cf>(Wo4URy9N)1i?3d7^<{X-)=@=fM*su%{rRx$q#1v8e9Ki?{v9!_us8)~F5 z1M*%P?XQ^<(*BCKF$0#rbO%x6>qtsGt`bKc(O-r8g%{9<;e2?AJT1 zN>6gE)jd|DAK_wYPb;3DDRj6l#*icSnQLb1+r`=Rq>O+}9p^pxBu(1?iis9gheqj* zYMkpxT%npHZoKV1bqPGXsfZoEbX$w54X)wgtR4TnR@w{$kGKaIofc ziB+|55nal5VTn6ypqD4a7xibe3fw3Cu>_b@Vq2?tn$`Z&*Jw?u4gJ9W%34zZb@9_e z^tjmIhyFU+YOm24et3{^Z}^PDX4LiELshx6mAQ?r2izMh(pxbt&b10vHPNkMNAfHE zO*dZkn7k_Z<)rfQvnAzUc2dGNM|#wHo_FJ>8AO~$=(pJky^Spi>FrICSb>(sC-Edv zlA~{pHD7VbekwID4<04O6)c6n#Bw=CH6 z8(CM$d3&9n-t%1I`&OAIDeT)oWJ2rcxq1An_abP)wK^v0x}r#oult^2pOcMgMEp1~=e0)tnVg493m`zjw2A~rd8l`>>! zUaH(Gq0dxkUur+gegl<``S9TDmZjFthVC}<`!R=e89v%G*yTa_O~sk$MXo+Wt9s|U z_>I%3g+~)10X$n{0nV+|1QVM6AKA8LON9fPXIf>_j_D$C--n$v$swY1b3IQOy2?9U>kq@L|A4u(QcpwF;6HQgQz!%m|2Kt0U^?U=C6EGHMj50=rYnI?kTZ8*Y$eX8o-)XjT&oO{ z|r4hsGn*&FxZbZ06-w%oW1|c1>k@dieujoH2?`{ z|2u>9|Fr-BsRi9DxNE{*L2Wn+wpS1i1&}{+p)k}QO8{-o5ByP%F`h1@HsjX>z^ z*_cDtf$kB60w@5r*Fh~5N_&qU=N=Na*Hr+egMdr^XbqIJ2^>M@*8rLFYVoV6oUy|2 F{|}$)S=0ak delta 2984 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 iLU4UJG@d%fML>6Vo^ diff --git a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb index a9be1d20..d4b31112 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb @@ -192,24 +192,24 @@ }, "outputs": [], "source": [ - "colors = ['red','green','blue','cyan','magenta','yellow']\n", - "n_plot = len(colors)\n", - "\n", - "# if dataset_key == 'mg':\n", - "# indices = [1, 3, 14, 16, 19, 21]\n", - "# elif dataset_key == 'ss':\n", - "n_gals_tot = len(pdfs)\n", - "full_gal_range = range(n_gals_tot)\n", - "indices = np.random.choice(full_gal_range, n_plot)\n", - "\n", - "for i in range(n_plot):\n", - " plt.plot(dataset_info[dataset_key]['z_grid'], pdfs[indices[i]], \n", - " color=colors[i], label=dataset_key+'#'+str(indices[i]))\n", - "plt.xlabel(r'$z$', fontsize=16)\n", - "plt.ylabel(r'$p(z)$', fontsize=16)\n", - "plt.title(dataset_key+' mock catalog')\n", - "plt.legend()\n", - "plt.savefig('pz_placeholder_'+dataset_key+'.png', dpi=250)" + "# colors = ['red','green','blue','cyan','magenta','yellow']\n", + "# n_plot = len(colors)\n", + "\n", + "# # if dataset_key == 'mg':\n", + "# # indices = [1, 3, 14, 16, 19, 21]\n", + "# # elif dataset_key == 'ss':\n", + "# n_gals_tot = len(pdfs)\n", + "# full_gal_range = range(n_gals_tot)\n", + "# indices = np.random.choice(full_gal_range, n_plot)\n", + "\n", + "# for i in range(n_plot):\n", + "# plt.plot(dataset_info[dataset_key]['z_grid'], pdfs[indices[i]], \n", + "# color=colors[i], label=dataset_key+' #'+str(indices[i]))\n", + "# plt.xlabel(r'$z$', fontsize=16)\n", + "# plt.ylabel(r'$p(z)$', fontsize=16)\n", + "# plt.title(dataset_key+' mock catalog')\n", + "# plt.legend()\n", + "# plt.savefig('pz_placeholder_'+dataset_key+'.pdf', dpi=250)" ] }, { @@ -312,7 +312,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true }, "outputs": [], "source": [ @@ -332,7 +333,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The `qp.composite` object can be used as the `qp.PDF.truth` to initialize a new `qp.PDF` object that doesn't have any information about the gridded or sample approximations but has a qualitatively similar shape and is thus \"realistically complex\" enough to draw conclusions about real data. Now we can approximate it any way we like! Consider this example for $N_f=20$ parameters." + "The `qp.composite` object can be used as the `qp.PDF.truth` to initialize a new `qp.PDF` object that doesn't have any information about the gridded or sample approximations but has a qualitatively similar shape and is thus \"realistically complex\" enough to draw conclusions about real data. Now we can approximate it any way we like! Consider this example for $N_f=7$ parameters." ] }, { @@ -340,16 +341,16 @@ "execution_count": null, "metadata": { "collapsed": false, - "scrolled": false + "scrolled": true }, "outputs": [], "source": [ - "N_f = 20\n", + "N_f = 7\n", "M = qp.PDF(truth=G.mix_mod, limits=dataset_info[dataset_key]['z_lim'])\n", "M.quantize(N=N_f, vb=False)\n", "M.histogramize(N=N_f, binrange=dataset_info[dataset_key]['z_lim'], vb=False)\n", "M.sample(N=N_f, using='truth', vb=False)\n", - "M.plot(loc=dataset_key+'_example_pz.png', vb=True)" + "M.plot(loc=dataset_key+'_example_pz.pdf', vb=True)" ] }, { diff --git a/docs/notebooks/demo.ipynb b/docs/notebooks/demo.ipynb index 3fb88db3..61a2ae2d 100644 --- a/docs/notebooks/demo.ipynb +++ b/docs/notebooks/demo.ipynb @@ -388,13 +388,13 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { "collapsed": true }, - "outputs": [], - "source": [] + "source": [ + "Holy smokes, does the quantile approximation blow everything else out of the water, thanks to using spline interpolation." + ] }, { "cell_type": "markdown", diff --git a/qp/pdf.py b/qp/pdf.py index 10ac4597..816f80b4 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -558,6 +558,7 @@ def interpolate(self, using=None, vb=True): [`scipy.interpolate.interp1d`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html) to carry out the interpolation for the gridded format, using the internal `self.scheme` attribute to choose the interpolation scheme. For quantile interpolation, it uses a `scipy.interpolate.InterpolatedUnivariateSpline` object, with self.scheme being the integer order of the spline. + TO DO: store the interpolators separately with using tags """ if using is None: using = self.last @@ -578,14 +579,15 @@ def interpolate(self, using=None, vb=True): (x, y) = qp.utils.evaluate_quantiles(self.quantiles, vb=vb) if vb: print('evaluated quantile PDF: '+str((x, y))) - evalled = qp.utils.normalize_quantiles(self.quantiles, (x, y), vb=vb) - if vb: print('complete evaluated quantile PDF: '+str(evalled)) + (x, y) = qp.utils.normalize_quantiles(self.quantiles, (x, y), vb=vb) + if vb: print('complete evaluated quantile PDF: '+str((x, y))) + tan_lo = y[1] / (x[1] - x[0]) + tan_hi = y[-2] / (x[-1] - x[-2]) # cdf_interpolator = spi.interp1d(self.quantiles[1], self.quantiles[0]) # interpolator = spi.interp1d(x, y, kind=len(x), bounds_error=False, fill_value=default_eps) - (x, y) = evalled - minz, maxz = x[0], x[-1] - z = np.insert(self.quantiles[1], 0, minz) - z = np.append(z, maxz) + # limits = (min(x), max(x)) + z = np.insert(self.quantiles[1], 0, min(x)) + z = np.append(z, max(x)) q = np.insert(self.quantiles[0], 0, 0.) q = np.append(q, 1.) # if vb: @@ -597,8 +599,29 @@ def interpolate(self, using=None, vb=True): # u, i = np.unique(z, return_index=True) # z = u # q = q[i] + inside = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative() - quantile_interpolator = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative()#, k=len(quantiles[0])) + def quantile_interpolator(xf): + yf = np.zeros(np.shape(xf)) + + in_inds = ((xf >= self.quantiles[1][0]) & (xf <= self.quantiles[1][-1])).nonzero()[0] + lo_inds = ((xf < self.quantiles[1][0]) & (xf >= z[0])).nonzero()[0] + hi_inds = ((xf > self.quantiles[1][-1]) & (xf <= z[-1])).nonzero()[0] + # if vb: + # print('divided into '+str((lo_inds, in_inds, hi_inds))) + + yf[in_inds] = inside(xf[in_inds]) + # if vb: + # print('evaluated '+str((x, y))) + + yf[lo_inds] = tan_lo * (xf[lo_inds] - z[0])# yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) + # if vb: + # print('evaluated '+str((x, y))) + + yf[hi_inds] = tan_hi * (z[-1] - xf[hi_inds])# yf[in_inds[-1]] * (xf[hi_inds] - z[-1]) / (xf[in_inds[-1]] - z[-1]) + # if vb: + # print('evaluated '+str((x, y))) + return(yf) # if vb: # print(tck) @@ -708,11 +731,12 @@ def approximate(self, points, using=None, scheme=None, vb=True): # Now make the interpolation, using the current scheme: interpolator = self.interpolate(using=using, vb=vb) - if vb: print('interpolating between '+str(min(points))+' and '+str(max(points))+' using '+using) - try: - interpolated = interpolator(points) - except: - print('error in '+using+' interpolation of '+str(points)) + # if vb: print('interpolating over '+str(points)+' using '+using) + # try: + points.sort() + interpolated = interpolator(points) + # except: + # print('error in '+using+' interpolation of '+str(points)) interpolated = qp.utils.normalize_gridded((points, interpolated), vb=vb) # interpolated[interpolated<0.] = 0. From 1dc09a23ae051f4507a3e1ee15face8d24f6e71a Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 30 Aug 2017 14:18:25 -0700 Subject: [PATCH 46/96] more references --- docs/desc-0000-qp-photo-z_approximation/main.bib | 13 +++++++++++++ docs/desc-0000-qp-photo-z_approximation/main.tex | 7 ++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index de0c4f4a..bea52203 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -350,4 +350,17 @@ @article{mountrichas_measuring_2013 month = mar, year = {2013}, pages = {661--675}, +} + +@article{pedregosa_scikit-learn:_2011, + title = {Scikit-learn: {Machine} learning in {Python}}, + volume = {12}, + shorttitle = {Scikit-learn}, + url = {http://www.jmlr.org/papers/v12/pedregosa11a.html}, + number = {Oct}, + urldate = {2017-08-30}, + journal = {Journal of Machine Learning Research}, + author = {Pedregosa, Fabian and Varoquaux, Gaël and Gramfort, Alexandre and Michel, Vincent and Thirion, Bertrand and Grisel, Olivier and Blondel, Mathieu and Prettenhofer, Peter and Weiss, Ron and Dubourg, Vincent and {others}}, + year = {2011}, + pages = {2825--2830}, } \ No newline at end of file diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 52b72d4e..ca392a05 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -116,7 +116,8 @@ \section{Methods} Conversions between parametrizations are facilitated by the \texttt{numpy}\footnote{\url{http://www.numpy.org/}}, \texttt{scipy} \footnote{\url{https://www.scipy.org/}}, and -\texttt{scikit-learn}\footnote{\url{http://scikit-learn.org}} tools. +\texttt{scikit-learn}\footnote{\url{http://scikit-learn.org}} +\citep{pedregosa_scikit-learn:_2011} tools. The currently supported parametrizations are described in Section~\ref{sec:approx}. The \qp\ package also provides a few built-in metrics of the accuracy of a @@ -128,8 +129,8 @@ \section{Methods} Large-scale tests can be conducted using the \texttt{qp.Ensemble} class that provides a wrapper for parallelized operations over collections of \texttt{qp.PDF} objects; parallelization is facilitated by the \texttt{pathos} -package\footnote{\url{http://trac.mystic.cacr.caltech.edu/project/pathos/wiki.ht -ml}}. \citep{mckerns_building_2012, mckerns_pathos:_2010} +\footnote{\url{http://trac.mystic.cacr.caltech.edu/project/pathos/wiki.html}} +\citep{mckerns_building_2012, mckerns_pathos:_2010} package. \subsection{Approximation Methods} \label{sec:approx} From 18ec89d983a828258ffc41208fb2921da09ee647 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 30 Aug 2017 14:18:35 -0700 Subject: [PATCH 47/96] note to self --- qp/ensemble.py | 1 + 1 file changed, 1 insertion(+) diff --git a/qp/ensemble.py b/qp/ensemble.py index dfe57a04..989a1a59 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -484,6 +484,7 @@ def stack(self, loc, using, vb=True): Notes ----- Stacking refers to taking the sum of PDFs evaluated on a shared grid and normalizing it such that it integrates to unity. This is equivalent to calculating an average probability (based on the PDFs in the ensemble) over the grid. This probably should be done in a script and not by qp! The right way to do it would be to call qp.Ensemble.evaluate() and sum those outputs appropriately. + TO DO: make this do something more efficient for mixmod, grid, histogram, samples """ loc_range = max(loc) - min(loc) delta = loc_range / len(loc) From 86e8d97f4f1b27d3e42b0c50e07ae35799acff8c Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 30 Aug 2017 16:58:44 -0700 Subject: [PATCH 48/96] changes to appendix --- .../figures/kld_precision.png | Bin 66859 -> 0 bytes .../figures/kld_tension.png | Bin 80002 -> 0 bytes .../figures/precision.pdf | Bin 0 -> 200098 bytes .../figures/tension.pdf | Bin 0 -> 170534 bytes .../main.tex | 191 +++++++++++------- 5 files changed, 114 insertions(+), 77 deletions(-) delete mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/kld_precision.png delete mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/kld_tension.png create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/precision.pdf create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/tension.pdf diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/kld_precision.png b/docs/desc-0000-qp-photo-z_approximation/figures/kld_precision.png deleted file mode 100644 index 8d47ba36b700d2aca7c9cf555c94dc86553ead0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66859 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]QU@=797iG82kQ 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 fF!}#)5$C@xXTgo5uP&$38@PSB<%_$n0VnzsA3 ztIn#ML`G1Unx2LUillTEzoZ$89-j{1TF(rMiwmDt!PUkPpH@KELD$0C7@t-~*Vxb= zpW)L$4xfhy%FxQ-%aHAVZBUWcGc(k8z-Rqy^SQyn!O+eMpZQCKqLs0;)|WSQz*qlt zB`Eyq-q6JXpH|HB(=GphW`Y0AV)&Z)v_dWpBJvKp4u<$l|2U90(KRr&GR9~5$Gxz% zl>{!nrvBxgiGi7hjh=~-j*X3-jv1eUg`I|xg^87k zo`H^u{VQ`mD=TXU`%i04C|Wr~duvBK{m;&QbxQ8vP+!gbOzX3R&p7t@?0`U@(9WoOQ)kPa7aNTv}4 zdHQ2jM@YCX(ThdTg{wkrd*$*`XVG1laQJW$BVW&9d-E+TQepJx(;*?`y&UC05O69! zTvRZQT+8+*b}?02gcdk*TsTirdBXKD#TdVYh!Q7G&X(*|p_sI@8(a|Q0oACFv{-`3 zQX#km%j16h5G=m$OX z)9x(uBPsGkdj~p4X@x15_yO1e^;5!56AG$P{&ISW2OPudn+;y6l|7w*I^B84nSIQb z5&@W4`vhMQ7N}CALHh{b=MI#-c}+N|MnxSWU}tvnO(i}`vDLjSA5KvJ<;kx(5MRo| zuF|KBE`ZSSOW&m`*8F!PIjigg`=Ct;Lh0_}0e(*zKk<=3raz1`lveTNryS|0#Mbo{ z!Wl{lb7fZtkaG*)|H4k@GijqxxY_+IA9YZabc7ac6q^zq4C?&9mV9nApE1=znWzn$ zKNW=tGD6ST291iB5&d)fI$)f-lDy4d=?5lYq4S|iLPX3GD$MCy#n05#4$e z-oaT;$54Mgso9~$BX!epcLY{L!gj@D9)o%6B5pTg<>#hj!Dpurh=05kKK1bEpu{zE zk^@hTpr;8-?~%^r@m`g30Ii!50RjblepuSuN~|fF`Ki0O#QS>k{Cs+8rre4Jm*G5m z9CQSo-i!x$(O-f-7lR}~hN+tDPhD!Fr+A|3RNw7xs$nc7+)xFiDONNL)zSq;NZock zO1{}*=ehg+AZ1#NA)ci6JHA0>!I9L^rBeYqnbaStCG_}B;=uJd7;9s39h-+?ly#JE zMkxO8wWya$1;q6TC%_}AIdWX?3I%Z$1S?5;Q%ooFC5eAl6&g_Hy+z3hP)L6AHu55( z4%|VW%8r$afu7oV2&WW}hHuO(B=6KzXhyO>dAQj*I#d_*wyrgCyxP4vu_h+*_F?1g zXe_CyWM`NmWcjG<$YEVQ3AUmt>s|c%xutuhk#|X9`i)AN2c7!9Z#_1)!dQfi_5m+E z_XIExt}L|HerV~s%p?t+iK`ubvqls4uoqtt*A!H(wN?kw3C1Z^he}tuhEBv_GFIHQ z1doDn`^cAJzH-Kk1`&&{7UX~oFcqp9$}FxQ)2J@jpP(y;KL4PW%hO-~WLEn(!LpA@ zsnabT2rPPy>D?ph^bVhb>A=?9W$+^DELU&};xTD`WqPgL5sBECb#S5(6NUh+Z>p+% zaO|Y@6t!lpBUcxVE_Smz&O~*^Ea2R*`|)-tqXT!yRx%OrwQ}<9h>@)GU!nP&OL7O+{x+9ZEYIG%;EKM zwrk#O#A~dGVxOn|A3-;bm;_M9487u5E_@g<-XUljbLqk;*@y9}PO&`axwy z$m=j1lEb4zQ~h`XeR%SS#&dpb=+wgaCR9C)-krrvhvQ~zAdM=_@Wab}0M>vvL=7{# zSKXXUj8L4chs$PpVDk9yg@zUWRIIx#LRm*@y;aI%a}4Bg!RTOjafZX@dA6mObGnOr z+-@LyaDxYpWmvhs*HM-zUmlbi_0%koODBzlM25A4x}uG}#7yvaW+Dm$skGEU6bVx=~D}ZzOI{KL4#Q_qw z1AjeZd5wHin3uQksJglGl>GRc?8E;R2J5Z#QF!a1jVx<^!VBct%WJxS>o{9{2Mmmg zBmxMp|8{IRe^~0sltQQN_S`HS(EMQUq9SAbx%`O({9(~b+PTQst7@)WuHjeGDO zzYRUhE02^ixq3F~qYwQ&W)yRmb4kav?TsPmL9CQ5_RTxlBWRbjy+(%KNCja)7E%8= zOkpfQd8EFT2H?!#fzgtWf-V(x7o7wyEa+)v6|g{BLb@z=UdT#`P}RcYK^d`HQk{-S zAT+cKeNxB>4)xdLmmD@=>AfQ zFYduW$IkLE%cK9IeP5tDKI_*{DI*&`8!HPwD;qsND>EZL8`I~YXa0-*@0o>_6`zHP z%q;Bq|95=(VWwmKi~sBA%Z8qgp7E3GFtYrO@YlnqmoLp{ zCVxHso6(n!=`-Tj_|ku6`PZI}>F@l1BmN)x|Hj^R`J)uykueH#CD!oZHt!btazlP}%p zpr>d41pXtiurqvR{Wq(xEWWb+H>sB{MYVNW}*9M{nepQ{I9Ps z{TKeXQ_Kv1=YO%UioSGT_~PdO%~U_>>?d0_#Q${hm+J}| z+UtMuXljPfqG-PeJO4j4n)ArS->4kMIO)XsU z$px$}Z5+SIwA3ewwzK;FdEEFs+?eX~Ss8z3{b|hiPrhFX{SO)cTg|^U{zJUKjvfEu z;0*W-tnBn`|BCdV#{*XOeNcDoU2|XnyFdW0puQe{*w_F+;oy8fe%3l8fr$FA;_m|(viSJ5 z;VfdrD-ExA%|Pmz?g4S{b!Y>^7)1bN`2gUJXpaCQ)$5RjU<|@#!Pr#+t?)}T0WSeC zosHq^piS`B1JFUJH#M?BRM)h$wAA=oq%WPOQwd?H0-PhDQTl)_Vw~=Rv4F3>K+6Cw z`F&hRz{aCy8G_orN2|`PclY7!f`I*iWkF!9OlNfPElFozgaqKm&iY;fBI5|K@@8B; z?M+$<@ZOFE5Ci)-;pAP>z5${4u%H){oZMChJUEW5XAD{Cv*-g@TrF-vgG)mN5R?A& zCKwZ0!|lL52n$jLn9NW1DufLZ6E6eqlLhyFmR^&L+}qWcJcglXe?jo_#xkj%P{o*7 z-B1U*(!`dVvyL1W#O6De^>9A)zR;t#vedHT`f<<#+B?3wy$)`#4DMvf8Int>qV;@% zA%lGEKZbM)w7Ippxrw|9;DZCG1J6i#|1ws`h12N`3v@9i1Mbm=bBY6iDudVAjsQ(} z3p}@iu?q&)$kycN*@g%I8Y<)a!-u_h6jTSQK43AM=M;|FpZeWD+xi0J3IN^ahX6dp zX5+`pK`J6s^XS=`1s7hy$6fQs)h%9XUS1n`XKH*beCO~`4D=R z{1{ZrM{)`DyEGD|{}@4e{Rbn}1(2UnP(XVAn0EzIC!B3Upo`Dg96pVa(g$Q#2YBrT z@&uS3xKfRC&?+UY&$q#@s|!Ap=44fYyu*ws@cRnrvr#kRnXq|-s6&?;B_~UF~rk?Dd z9}B(kn!0zDf&ftIc=!mzvU8{wPa#Bcd4YYv0dlo2OnBmx-TQ!c8`54(qxR8wkpdVg zD+17dH#>|^@AU0%bo{Pr9Ban!yr|@gF&Io{xK_~O^Dw)&gX}-aRprSpa}_6F4H`g` z-{>KSmyX_XKIng_rt%Su_3uwf{76>!OSi~QF)-VC)d}JNaI58vYknhwAhEo#0Jf`l zqvKPR802a_czfgVlW8yZrrGpEa&mICv1yL(^Nx@ip6sj!T;fT}%EQq-)9jS-`Vjl@ z7S5VI)3B7f0PVf*vMld7$34!S@rM-O06YaLqmNb+@B~=mFB^Zj+r=yC+$el=MPZ%A z0XNC7sR2~yss{R~e>Z2CWsJFbLmi)o7ye@m$5IYoZnwc3^tMB_74)pXcccUAbs3oY zK)a3b0v@y~qy640X7z_mONZrH$GV!4xb^y*FTM1ukagXXrAE@X}f@u zRsA*JMF{}MgHPY>eNHk#y^Rt(J=cGvjcQm@TXe!-k$2uCHuA6Z4~WrpzC7G}pTjzC z6P$r${Y>J)|ATB4Jq$7neIs(o1BBQ0QtJwmokoqvM=oC?f-rn(3+N~3t^mfCl~($R z6^ZPDEN@iuiV|M7yDf41$tc}NSReJy4_7Xx355h4h~y=Mr1)uu0_^Jogv zxcGrD?CBG8<@S3Jw>ExP8Sr_ygS2>|U1=k4URL!>)3CJsQ6Am6mPn2k68V(-&`2x4 zk3d(O_XGFILA&g|a2nu(xqk`J;NIk^t^Kvcwh1kXR~>D$t@d@P72qOpPx}n|QcDw; znXc2_Q`SA=>3yvi;KFc!!xH9F%MzEBq0_zVDL1}p0oxcl(K{Y)v+Z#)`F*6%9rjsy zqi5jFc*mYrC|W($o!)JAd39t8uWh1@@NMdKHGKNRiT7dq*1MLs^W(_-JpOnB48nz0 z+1u$yr~BA*4Jgn$^g@Rl{$`uU+Y|`k1rG(0eosgiD2K)<7G^0AA!LvhY3! z33$PLCQAv@n#eFWko4l6Lh!ZAI%0if0q^QnB-d*H803sw@34OdSexX zbZH?Ia;q-Ztn-9zmf|wj?bl5#Q8Vb8=ECW?1dkjVmDI8`Qc?W<#U$I&Mmx=J2zn++nE#W|)8LH^Z~iBCc7 z;Z^{~lc}q{FM*vZL1L(26{K+Dtg~8R5;32<)&t^NsBLSSn zzS7o^&%!;Yrk}%malF6bk>t#QM@%^R#|dKJ;2$z1xp}wp0VBX+rrav_6I+iWGf`87 z4upc=j-l|1$zCdrI|{rHi}-NqWA^3?u%4m=_S=CGV6TglLWb7Hj0xvSoh@P!svNzoN%o@| zXy?7ek=cx+?fUEXwoe!`?}zw3f>~q$L!aj^1L-ZX&0Du2!;i@QnX) zrI6ly8V?kRKFZ6hK~K5wR3BUPKr>^&6d|7JDup+{f~|alZfN*^h+JjI%z?hFO3=IY z2nW0WB0K*?U?eSeNuvn*h%`h1RVVFzc#9^$gFm4%lHe`$$|l`@8w(GE_0UBKFH+NS zs4}B%8NZMjs0U@w6=aHFq{@TA-s*+#>E?6z%b=-1ZQQx{paZ{7;TxPO#DjM6!PL>f0In&-=Xm>CbP*O#lGtlZGscB+CJ2H%U=^R@8fDg-|N6aVM-vog z*v@(!bd%`9-3;r0-_S1$!$6xzBs8A5xgWED-qKq;UK$=$M|^r`!Dk+}k=rXKdK)9b zRB;|vu53woU+)W?co}s*vp3^8KVbHop-9om|7}^8Mp_*#&p|`n+?M(vsKp=NLQ3g0 zgWZLG0_2La&6FuLw=}7rV!+4pH2|5>Z2P8U&T`L2e{}-kuJF}oug5tR;Q=lbk&0$Xv^H&rKn!CFTc^Z1K$0s#40%x-5o~(1#RUdx`O(`B zIypX2L(ik4iz@Tj)EGf+Wy{g71EWQfRc{qnwwZ8Ir}wfeqKu{vEq3|j_xIAvHmL@U zf(!GjyXk(`pi}UvMQ2xUR;LQZ#f_}Y~5D(X7Q?Biz zUQtBtfkg5wWb1VcyjNLQD(|=4ntW2uFx%@Sfsf{^COS&O3(#@G$6EQZiB+#GV>2v` zARHV5@Dp?P22SynaARvEJ=>$p_)H+D>pK7MUU!cQtBH!ji=gQF6n;B-{UlG9zR^s< zeb!gc5zW7$bWXG(z4IplNqx$Dl>3qHjQNa3{pp26?ULt z!WmH#**ugB*=DG+yHGZ%v{LN|H=htk#-_Go>zr2m5s}!36t!QVXX+d9i1@VSywZ@t zw)w3Hv~{Dm+zKIP==46^?@G3O2O3ISU%gSBSa-L^EvVVm_0pXAlN8j$tLxeDQmr*{ z7PfyAZCbBI**bCXje3{4JS4A1Y6QD)oRKET2Si*gCWFq*$p;hW5;XT}>j+ZQcztQN{b>>mOT{~;-efO6{KuQ6 zs-O8DH(-0#wDrQR4o4fL1kR1NLL+5Rn7GcmmMwszcxS-jWE_!@+Ah|bP1!)X;g!d5 z28Z90K*KBj{V{M<`}TI~4;72B4ODJUa=Rg>^HNs%m2`H-Y}oa=3CiCt!7T7a{f`($ z)|qCXYp1N)n>q|;L$8XgMe+RuO%4oOXipuz_7P!WK;p;kruT-q+}(o-JWCwAN0rgx z8@uQ1XnZV84+-8kv2xE{1R}7|Ru4Ct?t%u+M;Tdc9G?8G7Xx45x!OkcOjC;iDY1`^-m8rNi%6)VbpUWuz_wf!XYw*CSyx6X`JB^kS^aYC%7(d$gC?XtnZb*r799k1x`% z-7`AN6HgbMP0>#Y9?b9-0_M%s<#HV#kj#!449r#=H3Mmw<7mBk(d=%ys--1m;y_9V zKp*bE0fh)Ih90D`CeY@8#&j2{W_UwLZK*jp{vn^Oh?(qfmm@Ymo*cTp1KpCQ%sQbN zbU)&EBqu3a0DlWjRs)DLVS-gIJ;nDbk0nVj4zAX=PG%Y+rkNq-cRB>E1E^jGWc0%* z`E?$>NR(g7f z-$R>tS)ll1+1xt&PBvo)L9A+PR~6JEhh}tl)O`n+T|-E z#`h~n>r;P_;z{r_=4U8hjSqmsgaNSQA7oZ`%ovV zi3;Ppb2MUv7(X9Bm~CvQ+fUZ2qVw#{FAyR1ROJCO!EB)MGI`WV_$(`{ep>1bhel;&YS`*j~ z7gx`ksJq%V!QfQ~BpXt+SzqkdI>j%1A*Y0ywse5`0G3?)3NqB(tExZvJy5Wm93g|>$yoi(m0 z_93FqC^Jbwde;=To$+!pB!P55pbWWan*E(({M_W>EjJoYmz^C_(OvhZp)_y{yLIKc zwu($*6)dB3vr6S6`efM-Z~aLm%MxKsaIS~!(9fb7MOntF(zU0>sPpQ4-2aN>++zD2E_Ehblb;qS$;KliPE8fOMrr;0@b#GUh!1qb}u-*D9)gg zP1FS1w(xximzpj_=y3eUzfxz6nuf&!k4|^VdKTIYmV%c`twkihmvhF;G1YVRNpAOP za1UVK%S*{=wL>Mf(%pDw#~8R~ur?bkepv7cMotx>Rg<}HpX3CM^M&}y=&;=70CBrc zc(IBM@iveFPZt)%QDkBK=%KR*a4HLfp;ifEhD9@^MOrU{gr6p>EFexhQ1{iJuy9yZ_H z0s$|g5aY<%<=AsNkHil3lY)TX!9qXUQf*}bqo4k71eLh7<97ykR<>kkM+=l+49Y1P zHpKhx%alssBO8cn#H$5~>u>usKnW&U$q-3>L|6VA?%N>n!ws=;?OMcF?nC5L<(Yw* zdJYjKI{Pe?EKK4qSVHaSWR|d4W`>7h=?Ose7JHBaK-!vF!*a}YT}0dQt)+1EEawGR zmK&@piAjC#md$+MQ+pZ1nncm67M zwz{nY9k{#DKN4zjg)Wpn+apYQhD+1V-22G6n^D53Sq;K-F!Ax0JvUm)4@d|}Zy>wM zu0F(pm2J<|%wpRuoCztYzRSY^^=e!!@1$Nhj_BY+p;~x~bM}Cb6ym)(!6UN~dhdJk z0=2{Ds6iw)a5E(pTSrG3`LPl`_LxMEIHFm@P*N#wKUWG)%-#o!iJSla=f2#u;x&bi zNx_JB8Ku~xDEVzGwk>P2?G140Ksemct5OyS&MJKLP&m8oyUQlzw}K&Co^2p#lBe!YWpuQbc>-J4&FF&V3! z5XOa5vLDo%&HJc zPKZfFmO*-LL0jhT`oqPZk-^n$?PTNl#_WT`gejSf{cZsf-Pr8M^je5P{TgZ6JzKOq z>-kU;_~{bmz{Yu{QpumLZNK1oiLgKo&X8m6;+*gYx#l>e8h7sukrAZYG2~#^BG;*XIx-#n8dbAUs6QdC}&|U}M;~)Hs%scZC%5wT!2n8z} zeZkink`;38u_b94Z}Y-b0(j8HMkfj709O)ej-?WM&7geSmqm$e@kiD}G0j#?qm65mU@e$m1%ngT?5p&OpLxsLs>`*P zls+MS!DZeTUiJWdCC(B|thG39L8xi#PrN<_pss(*5^s`=1oB0d&hI*y>L`Y7rgD~r z3Nb0;btVVt?PLS2pm{A11tN*uAGNlCm}(ecH_<$FFFX-cW7Qnt_5b~%KiRZgbqp+Z zyTvkVHDVT0X6~e7l8Iq%SiSHdH(MFQ0$G>|XM3y82}g$pDi{0P3;}^PDW2K`!CY-T z^!B%SFP?rmy_YVMA43SIaPZ9M!EikwuHw&wv(ubY#1J5f^Y8Qs%gB+j2Y3yen^Vw` z{ax|~9+)3OyK^U{+7V$?ByaQt#5Phz({yg4qfqIuDv8ofdd}UJ|4l zYg;iFDsW_)R>95Wa(bPlHp!p%mr;2Q8UsI|KO*bpLQ3jqs#CvgtC_HEe6RrMSjfU# z_gD=mv}5#h*!`}Bpgr*F;_XP>`Oze!q~y(yc?us=w!iCkG}++1ZKR6lOm=FpG17#n#9iN0>wDk)>1$QrRHG3LDH2w4!!V?5(~G%Nq>&(-}xf754X!(SJ*bFv`YFRn z!#oEAVEflmg;Z---L_UJ~*#otFo> z#_PU|mN-CrI-Y6q)*@phD!Y<$z2t=Fm2A>$8bQ(KJ z6Yo&1cDHv!=y#={rlzSOy&+ec`B(N#5I+i}nL^q`D_W(57-Pi=c z91T2nS;Yd@-*in*#|9$J{l(5XJk}oDP)NazzXXjxqU)3(OAf%=Vf!|s6PmTN`y_5| z$UV!V;a~d3Sc%altb6T)7Q5rvuk3BZZ`EtTMATAZXr`K;HOB#$sk?QJGA74kc0?p< zP7@Aq>$2e4aA|Z^bk*OfXXxC63)a6SH0IOXJm!S&U05q_jP{7o58k{Sq+Iz$g2K-9nG ziU!cx69}~;0&qWISZ~=zC_zf+1qh-h1bmj6}$Aq+a zX`N$nKK`v4UjR4m`zwcgMAVI|nXZ|9MDGCEy}RQMt>HW21K!yQx2{x6a8Jchcd>UL zT0;oSk<+Y|<8YnP(aew5o&si;w08QU>o8ad?Z%<{&9<7V!N<9*uA?-ls-rp z$=@i%ND&+z@-)L9;lMEC=Cc|U7%pBcW{q|<-ZozPXMA9}2l0E&k_xgxMEdWs{^u$$ zF!h6|p4Z5t2pRN=V_Nf&v))d!w45IEfh`( zhaQe$Nm@b08La1tFCceUEc_|Y*UEES?o8mYi{G|O^0wzsYm5%cEG8^hz>wI(=oGLT z5AtPmI`Rr&Nfm~#I+moFH`Hw$@^u$+Bp8A`v5fb7M?)m~*q@SlR9Z6vzdz3}f-}C2 zfl)}6ax)IgKRm*$FPvkSwJJ=QDyBZw5+VBA%Tr{E5U@m+_j~qtSy`N`d|t0c11VR< zYVbB?nL%e-quA*`OBc>QgNngvk{#X7OX5lyB^0ZOV4NB%qaIKh6rOykPp@0nj5Jc* zWH=8m0edkLtNF1JTs~O$ZYGF3M&ahLw3BczdD& zXyHO*m@ART)LRb6Q8)}pFV6KY@>~e~J=GLxW8Lq`! zW{=z6MEEm*U}4W8^rE|_az05)SU_IWB%W)>%S-n)QEFsv%QB(afQOjmgg>mjC_0Eo zxGK7FTw+2L-d3OzL{)k_?l2poDoWATjIj+1siY%Q18rQHB(NNS3LSb2bQb(e_7`Cr zA4{&j?S7u;R+{n>a8z;{8D+Of@)ioNa$Z+ZhHW$V2k~n2uYo5Fni;e=xARi1YyEX& zBT-NjsTnJJn$~_**0Uf;&!{Ijc{h=2Rqs$Rv=v>LRQt&*#Qs9!R=B(6 z&MQHd1l!|%qqVYRy6ml({mV`q88Z7|q=mTFaC^&6wLzkb5lN&5lXQm5bN0zL>=17X z*_~syq{SD}cFkj?J58IRQ3Ib&BR_mht~!(scA}jG-f${9h<%GCIaXt7d{^^&z~h@v zRRMLbRvk6B*SzE%r#R5g>LXf}j%my58TL@2P6?_Rw%El6vY43vFtzC^dGWB@+s(O8 zTK>jkO)WnTUi|mCPB?yK-Ct-NTlG^Qc;XIyTPeWBF=ss4fiyG2&SCIgd)h&Wm)}$= zu^WP1a~Ba4Z=w;eU}t|U)-`6xap5+-MCcENjH1CfiJOBnpzKV$&twE^T!RH zo<69)c3E>XFg>4b=TAGc5)S$+il1!N_2~x0_CN5Yq*n{$@g5}OG35h1 zlidkHp}tsN>+<>~T!Ki-Z2=278;?9em(BGUpNv4a)Yrbfo+ybS@me{iic5-VFNkLRT#qzs^Jr+*4d55PFPeqtQe|6{GWI)o0qQ_s)OH}t z5mLggOh@NIO(xh&N^SwW-qXuaaN6P)6CpIB}K_j`lr+ZK2pADW2 z-Jf6Y)F2^#$@W!LHuOTWjUa?k1X;){@RCuF0%4_Mz(*9^kAP@=N9x;QwM`(0%(+d0 z%#=P+|3^PQ0e%dY-hRV)`rZv+ z|DxXr=gFxzXDEocQzzNcmvefC*H0Cg#|iyCjYksd?Boc*k)kFsMBt`jq3syIx`@{Z zk%~8tkybJwmy0RsxkHJrDypEn`JxRilzBb;#e(3NTG^_nB+ErZq)7}hr+9c->T|bj z?m1fAEEn0{n7cXmT3`y3c66g0ZEL^5Huf%Q{1GQ_4v4qLOq}#c{^hPBlO2$$Jed#1 znQ!t`d>51@WTnD6#KA*F0mlqu@AKi3eoBOwQR|s^;S;up_6|3S5%YSIB5B~)T#T7E z^f;s;H}-&-kKQ;pF3gEpDW))Q9h=L+o8~qfU>5~0JwU>kcv z7uw3)n&VKZzfW_O8?MY3u_C8tmI6IoQ)GHo3v$Zdo0GsyXZDHwFDRV6xrah0Z%D01 zY%9oophUX)gvCVk8UvytyPOYe0q+%$s!~y$82fawIh)4@%{j)@d!_-rd658|H`gtlugdFuGEz=-pZ%Xl{YAi`}bTr zCt9rs8ctx53P1l-v~o>}$mpo21gbgfSj8UR#0C6w`&WGV z2)1-XY%l`P8gsCD!HIh>N${nq?GFQdB7d8+Ghg3FIwHU^wqzWno>xgZ|%SB7o0 zK65=H3D1H6!cCJF6(3vUqIlOHb*!yezA-;KL6*nB#OiR-xObH+*_~k&$&M8lrXCNV z-5sTfN%&FwB*f<^$?%gfYj!6VO=tzBN(IW7F6qHb$qDM`;3udW;{r*<}uiaA_@ zVwU`$N0POnl*~!I^S6$P?CRpl70?`Aoi<@@bIucq$NhGMBg*(1n~daUCHSo zdC78?zJ;c7o9Qs+<@f6?p$Vb}<=W#{exW0rf7(<>MUV;yFVJxRzKvy$(!l69F-az( zc3#E6vU0_H^A5LRnH$t0!Fct%@=%=QfS{k(tONMUCPYBZsXy)~hTBXt4So_AgUz32 zG7y{;i)XFib{U@ZH%mh50=b|ewL>!sZuD2up*kJ!C9}6GK4Fj@b!CF(rCw~fIeOb; zh0MLY6(J@!h`gh%JhfQxqS#>vy|cW6e$dw5j$c(VCcqva75L=^tS%|suepV>4^9s@ z+X9ZLTm4C6?N4zOl193{2|re{wcAivqIEZ!vT>w6i-ybg>=j8^?^hUjdSd?uzVXLF zHL-V?)XEu8M4l1VD}&L%y6zGR{z!aA9inw##g#f&Pk(vifgw}@eXt($3fCtS-^wWj zs~2JkX>6hH*TI-8&Uaqbq;ei7H<@tIl`B^dHqqaVOLch}85UaCLeDW0mH|T+MUM9X zdTZ98M_G)|L^?5b3GdgU+yL=|i#)W9tILH`v00tUNE;-a5p!NQ0l`(bX+nPVq@!8y zqtQ}X`DY$*uWCI7T+@UDI?cSws#qtTtu=cvFa4P{Gk-=8dsOBB|`F@{0 za*$5y1KrkuLmhGao)q1lqYZ!Gp8@eIC;>^iVyq3u&wDCD2RdG3Tz7?aBq^%8GPtv$ zR3KLvyX%&HKL`o9aMwJftb|d9zAIj?JG?#N(9b{_(OZoLB|1-VEZf(*#@Z~v94fxr z3{^%608fqt{!Awoql^ru7n9-u0+xZ5MAI}}nZt2h=Ti4q5O3~4{TO!~Vp&G!&ODYC zq6DfA)Tv|kArFILJ-MuxG>og4GUbdrQHPrub zKjV_?sTU5!LY_!&I@GDIKysCc1ins_LOF}WjuxQH87jYEkoG&^&J#D3J+5OGuEfmRyxhz2gCR+%0vcMC+*iriO#dsk@= zTU&nler(#GQef}m)bepscSr_eI3U*HOAqU$@$~%(j&YctpwKs_Ku4$}_23K_ zPW0B6{Lyuk$z@Q}2suCA(EWSxfPErpt>%;Nx4GMlm${-_kVXAmdFqjB0E#WdUxI+h z-}j;VD-Nnm!Nf}9++C{CuT`Qp=m%r98_DF86I`K==r0bP zs34fSF}`n=?JV=mEGkuT`@A2yvB*purj>66fmjP^PQLyzMM1!=dRZka7xx3l$}z$_HQ0xJkcFXSR4e~ehN?4fBn zz3q=&AlU2Fh*)(n4}#k&xI6A6!LDQAc^gpsP@9Ow8{;sXx>i)`Kou)7A|RKIfa7j$ zgbBDc$?Y!f*416v-OHH=i~KeX@}lGpw>8}%exnEBGCr#AX;>wkh3s|M8B5|v7hN8D zXt6BV${NPkv;0aMF4(zt@AX+ZKdrKEwfz#=vkT~YKzng_LGx-3JgOoj76uB+S*e|8 zVN$~yDCjhE$HZ-)uo?ecn%n!NmlA$K?1X8DVgJ?`SFG~KNJGq3P1gi?m}yuyDQKvU z04StqdD~#^#e6*clF=>v?KHRpd$-4SXnc5Bb*`V%ww?4JyGL8Jqs|E45g*$M_Ikne zokU9UKgKwrLAl+7nF#91P#n-X^w;&yxUgIE8D?CIpg5w_Rx&H{VkB*HPG?uDZ?^Oo!hHVSd;~wp&sx(E4;)> zK<*C8l};4k1{_nvgQ^JAq>~9M0jxk@h84Ou z#s^J8w@4dIyk$kfKO@*l@VjDn=g;2Op_3RO2P<-kHx5iR9gdLgUwj5r!9$q~_rE{3 zq3#(0bY&Ulh_b^#c|LIGf{ z2(N=zy};U7--Dn{)^f{|fvR402hn<0=RM#-2=wwQelR{!U0p=%aUO`j&-wRRAgCr55OPu=oX!J5>8QX&u=fS$o7N{uWLuM z8sN~T9PrrJ50J7E9W&|jT@_ru=3ay zA%;&5vbz`pgW+f6_rFoamY_1tQd%x^z#=2lUCfIFZ-+pmqVK4BJ7yyN#SDXJkL|+l zy_whHqoR39`Z6_yUh=*_h#!_^&(wG5zR_@mz>$+(ijxvB{79*m0F!j`jW&K&-%X+J zWrV68aIvdSgf6koAW1Jw!=k(S)xt_F&BTs2AO^P{Iv)Cnu>oLp`*__u&h}tZm2R;^ zR-t69U+N~-e0lu&9SVe~MXE1z$+^0?K|8lb2u>UrC9Q&Xd#fXcm`z)8rp-tOD3wQw zSV3$I*sMT8*0x+X2CPKm_qExHdgwR7jQ`^6oq`1mnnc}=-nMPqwr$(CZQHhO+qSLV zwvE2s|I9?pxpCq=WYj8UX4S)5E2=8%^Fh~oC7EZVO#+j8Fz?e7sj5~f3=3+olJkLF zm1 zg_iRPL%yrNl4qB5=U3g!82Mr=S#Fq#7BX>EkM$9+Sd1)tt}4HSSZ9x#f4!}`;!s{S z;p2v@;D7JYxkUbHiqAjO@XY9+gZcrn$T7dUQPbvGTxEGi?=sPctDD!lW-y!7m*x)M zVx&dpLY>15pfafmX{v(If=hSrzol0wUR>D3*}U-#Wa~0~E8%F(wA<-9yU!ePZFPL*-t{~!wxw1Elq z_?TXLxCgPrv zRv~ai3|{N$8To2U564Ez4xoeLHd@Mie8gsaQL?~)^IF?Hl1xl_>L4r&uvfMUPop=b zSIVxtxB!RIc-*M9_On0VorohFEf#s`jLRM}U204n)GR-v)5M@a@I+rVm!aGQU*M_x z9`Gjpo((Mc`JoYgI4a+B9CioL|IXyd@_1~59q~$IZ~Zne>}-+*T7i696lm2nR#RF! z(znNelUkCnBF$xjrgm^{6EgxW4aLk{07a98rsxv*ATt#R2OjVy!DH{ofF%gCsZ2A& z^{xlrsC=WzkVHfbNW==jy~fj+RhAlakTNoFcL}NKCKO*z;yc>P$vNKW&_=Dne&9hd z>Nz8A3DK$ZURYQrDRlb*lVfSgH%#y!mmVJ|C82=a_SDech(e=N&sF1QFieUl)u(J{ z>6-u(Y?s_|;*`1s%9G{p%3R;cI{hKW?{}o^!&trg1nfsdk5S?O8s`6dHjCo*@Y=JR z?m1W0bMQ^n#{C{$DfBg>SQ~aXxt$OS3UJY@v#!{rG}^3TvB%sAu_FD(RUj9*{2`ir zXZ8a$$lBQlhEH`56*kIU`GH!?!9->j1w1cS4`u`YmpkQZ^0zMp(!4t??hK+k3Ucr( z?sE>V#G9CuJeHSuHf461prWW(3%u9E09V?x$EWtujZ$qETg3s;MapEWj!N$HsN9%8 zEKr^f4kI~ES>u9%oJXj`EaaEt!&7x!33$cxmB}OL(%-Nh8WubS%+5NM=WTG6h3k#n z&=0(o1Bjun)`BVY&E}ULd<|*=+DQUlGfe{ys`H_T{ur0n%+Jim(y63)8KPvIJEPm3 zR@TMW<|Cm&V zE&A{=lAQAsDIX-xnBSlQne+7%k5}H(7x2K6GiJ<_)l*ISp(izUZXbF2zIZW?RJ5WX z7i$rxsDsalKuiPdjl8`NrklbW`SB-)=0X(~3W3S*7 zQb>MpmIr1q%e1#xHx*BUxs)Ppp`Xy}B1KnxSxETm3apdMU6l|F?!k00xKSOwb~IdRbT zEwe9qQt`u{_W0d=w!q|iBkW%WU~w3M2@RRo?K?koaLdJ9r)acD^Er+TNP_SP?0urN zT&$qB;yq?pMG%wFUG&acuPr!6oiw-JAJIFvDBJdumwJJdpl7~K_;$VF*vZzx;3d-x$%i|Ar4&>9 zN0(K`(p0DX5k>kA8t)AoCTq`y#h=J_G#q$Y+re*3TR-=Zd>CdhNPatQf82A^^dj!r zm|;So_^q3+({7=DWumC*J+)93NncUxVF|_?uWU1`PnV8`?1)zl<9KG*2dOJ z=;Bbc(2#aJdv}U=RoaVs9#+05@XROH)_XWXrhRAK*u%pgE_xhuhvwpI^;kP4WY(;@ zNqYtP81G&oDCd@Px(3#S&JdG0tnBh7lx18&c9#2Ccu6;fn54lppWr@r15Uqzo**RA z1)wGI<$db8&IL7UgaIV1cC|ux>2Zv=Y1GwIWJe6o+zI{T)?%^-zNr zo-mU6C>Vb)ldrZLSxdefi>Vs>fVj0~TctaL;qC+ztJY$cO;)d(8=~VlWO=M)>uw-` z%Ng+$Q*_#)P6_tx%Y-vgs=d8+M{UV@g~cHX{PFz(ypQyVnM4E>+wX{u?%iBN=K|do zVBg;Ced7Jb^JM<3KoOeGEpmMK7F(&{xU$2&!-(7t)2DcDRn~jsqvxwl86eJ5>|*5& zZpi`*YxO#!rEMHJnG3f@;g-_aU6pvxM-J;*)*N!V;g+P08bv8w4!_tQEp&$1Zt2v zcQDW~wl#AlTuL)x_3qe!vk$>I1$~4a992+=gQ<~aIY3H}WRF@a&ajl{93aEA^N2`5 z7_MT~r~6$*{LbJLF~YEgR54*MfgF=XI7v5@m^K!-hM5s|X=Aj1gdL`UuVLPbdQp>> zTT#+2nu3({iRwGv^3H=Y!9qk*RYBK;>Q?;qqC1`;GEKX3lzmy5Z^Is~eN;6t3pc%E z;!0F26zc{%v-Q*3iZWV(D-SCG25!#%%JW@XR}ulnref1z01k@R@a+f&vH(>lftC}a z&9B83X-E08k?k!IK09lKyKgnVFR*$b%xPkW6rrkVjV(o&p;(Am7Si&gz-J}p{_Xo}I^MlF5F9boxE%*C17Wv^ zqVeF3jGZZ196GH-Rvgm_ee*GZr1fWmXqCCg`!;VVXp2@b6<;u+d&;b>vr%6jrn$ZF zdJMVDO$+KKrmI!sSCZ~$bABXq=%aAQOwrg>Vx_#}5@SGpobVNkqD6lHNfy+cqS9|9 zs-%d)Q$4>H46~`jizhSZhlI- z#v2J@PszGVF5@&ZwzjoXj%ADnUG87ujAk)aFNC)B;t!EHH-wm`6tqhI@ zdK6pC@qQHV^XLs@oEubmy4bzB8)l-mtPetkzr*2EvVxv|QW>us;Y70Pk7N|Ak;WDG zh`9Su0iYZ(x>KA-yFr335vyUUtaE{*Y{QBTivC_#FjU3tgEB}wR>B?Kkr{Hh8XDEN z!DQjMGF(A=b^$bJ%s?D%0-wCs--tnzf{kharUA{P z_O)c^8_ZhYjd9~^Nj_vIo$%;E4QK$ zFCq_gy=4e>>LM+N{{6+yr2wPAQmGK;w6n67nj9tEnpJP&n_KT5E@`sT^Ek~+y9B5` zgoy8mzl{@MIh~6pH%wK>ZqCW0fAws0YU^TU6WkZ`jyko%D}?BrqmQoe0{(5azzsyE zCQXMlB~7fBCcaVbi^lJWY0UyAL~*b(SbJ;;Wq{s@0xP903U`#j>pUbpOB&$nhH> zkM9r9?4Y6YQo7JLR-N9_F&+R{crHg(%`2`GzfIhh($i2qiJJ4tLJ=BtIth8TlYn?q z#u4|MVVAcr--d!bt;6i4)xa*HAm25hPO3>)Six=v=7=2iwD8v&U??8R<%U<5XvPqG zY$8%uh)xuhc#MC5ShuO+0&mrQPi(BQF)nmyN_lQvzSNbjOknc}8Zekxo4T5N_XqKx z4#UB>M09>@b!#Y4`GAdlmp{G&$9$XB{QXuu~PZKu}>Q$j>`t}I=AerX!ozUEOs@5&@n ziIHdo4nDPk0g@us92%$&NEQy%B9QMH5CYiW+D|Jw@WS}zYMGSo&3T!jLJAmVRC3Y+ zk?%e|<&wN}wO-EHBVaYVEyN<#XxX(_;!clq&JD_bKz9Hi@?)H#9KV@KM^AOZq78tcyC?%4gNj>yE+rosq#Df)d$WHUOi z&Zyd|^2+^b2@GsSTVWM$?D4q9LpDd3M0ZUKH^K+hV2A%mzR^>>H zR=WIE*&xVK+b2bo_u4_|EZ2)oINNb?x--*o>!GnPJeM- z(Y|T{UY@M^*Hy7+on_U=QG3(DE+!{2?e%)ACpX^S84kp@j>q`UGW+ z%LSUT2<twaQijK^5NK5Fq%vZ7wB1XJFdE{QMkPjpLe({Hw&RJ3)_8O zLs`|w_{)c!meIZCl4RX^tjpU+IX(v-NM0X~y39CB#UdEf9LMd)hp)~xyx`VtC$9Ev zpVqpl5Zo*g1m>kUC?e}2B}CIyuYXS6%`*|AL0fAB|#sGM(#Kn#o;h}e^w?5LF>S7U*lAYJ@P`Aif^^_ z*9%C6fhn3BA#;J;v(>}YQJVx+dj*dP+QkA}V~`oIe%YxX**W+M;MCCS$TZ&*V_qS~#U92U!2ccK-4TfFjE8a%WB-FC~kDAcCtm$5|t>tuEDFkYm5S7sunLl}5^a z*Qvk6dq=*3+J2D^+_TEDM0i?(_G$z|+i*6E8+dcRjjA$zh!2;lK~?}dM5&;_@U19} zo(o47CwUA38YfWO#Ql7N^-MHrt%t)AE}+fbLBc?B!r)ryHwC>N<^b_;CC%ahW~l(d zDWS2%w4U>L7k9epHPzpy?Hy}z`-HCed|3(8Hv^V$^$iXsbtpxCfXWp0s=(t8Xr^p| zQ0a7B2=r2}!%5f!1cmBnLq9BSO%h<+H52cfKO=i4WTcTD_pU@V4A`No59$uY6|mJC z&@7QX-4K|y+&?qAXIvvX7h-)4Ys1!3B`>iz3JPxFwI7d=D+lC}7`EBC2$mIf{q!#4$Cj6F+%EvX1y93MKghHpdk5$S;%PPOV4X`irY$tJ zY0!&Y@XP6(J=)xcr{EbXR@&-BvQDUY=ZOdD5^Ku?j<f7bld!0S_wHe;l`AECRBH3PS?h~|BW=gMkZmya3$OqRga-hfthu_ zsoJ$yzAjtM=3x5#_UTe3YAn_3@1m7>R#T`VbF(mv6dNNmR4QoS=7RjL4YN9HN-c}9~DL=X`B$dJ&ERyx-P@u#S&VWrZU(3@tdJBjlF%)YdeQ~0BcT{(~ezZd~(%ehMFbvk=&brx^`dnbz=KcCc*m&0aV_f;$H`6wQ zL>-Ss0)y2Kk51EF`LyTQHbF7*$itMT%i;DEigK6@Q^0bQ$NS&C3{~a!InoH=cMW*X zeBs-$*)5LbVu}?K3Yj!`jAWT2%P&QF^~W^UMkg2|FO~v9BEFo`@%pyvQ}`S_-#q0x z)tJPM%B>ep8dRU32h}=u6VTy9$lwsZD0qV(dOV=zgu=|f1l|mN%;?A~ zbRF=moGOE>Rgz;gT>(nTag1TR!o)r)O+vZa@qUL646ppOEn(e;Op*m7Cy^HLTjO2hD~!@{ zTQk9}DiqRYR-{{`7045RodlQN4cwlyP-eZUv1c}kdo-RnM2W^7dkVSdZAa!Y=@G1gp!OK6oz`C$#n1O z#K|ssPgAcM6i@YHL`H!)szz-{=O9as9DCk{-!w}YmBdTZ!buuHGU>0CYt3ac7FUYA zG%x74Rc|?RndZjAObV&Qv8hN)(IaWYr_$KZdHl6;+iH zC?CxXe<$Z%2$pCPJSb{Lqtu;PbRObPc`YnkvVx}VMuF9Rmj2yjRccP7^4|_oo#O2? z2?jOHQa})=t);sJRbc-hmQ>{vGo3CcnUJ03i>|7cSjkRFdXO5=n(Nk&;rmu4`UxVB zGauVcJdf%R&c8`;)rIh20_P*TlmH4OltlG_M zvQ*7;m%fSF=V&?qqJ7@XpUpix!Dc`Ky^4Y!6k>Sz_BF(jRg*~a*(;*+md8ou@pPjQ zT;(uPObUeipqDR3v<3GQ)xBK0)Z^$|vSVAo%* z$n!A-2X-j^d28S|vx&~=1rtg9od=>;PT(?P#gpNp>E~*GzhBMX7VaNzoliv0a7lZ; z46E#HJKyqZreQ0L@&XIm;D&ou-0y`}C4Pip*8NmOH3oT6(Vl)+8opbTocTdP{UP)8blS6L9(KWYz*bF3q_o8e<+%*6+ zoiy{dhVpnF$T+^_NHDXQM1qdZSlE(ELt|M)0Nl|Ja{?r2YCLRt)ThR24$~~9X~e95 zhF=R#dHG{XZ^u$1MyuV05RZqF$fz*ohFN0!TzD&fFW7yor2j;=Q2Q)y>9Qb|VrO%0 zFj*48p4mEv@XNTuiC|s8Xp9>oXbPJ%aMYRm0A(uTF?yo=?m*dMy9pR-$Je!E~6<5Kl=pU&tz8U7~(ZRL(dVsT2|LiwUT!TXQ{jh*L<q66L`qqA>ja})wRt0iXN?oXc`QpzRd$GG2=wHN zJ!~JIb|B9 z8ElZAN_}R(+`YhMVR%yKuB3v zvKE6j15Gx&joDjteivCf=*kbMBfwRgV}>*}G57 zghLv;L;Bt_r?rI$aI>)}Ea|Y;_NkpX(}Z;Yk)Yq#`0ZUEc+wL-tql?BW1BZhy6RhJ zrZOX6Y)dJgNtiU{pquw=-s8H_9VFK*>2C8wv-V=C39nEQz-)(pw^Cl~fn7z$a2_Pw z+Y@42B%zNLZrl@g%05gmw!Os^wcxphIfon4v&!F61o}$%;$w+a_$R{~EIv$e3%jVo z2Ak79HhRUbe-JlAp_5lWtXpr^Gj$CPE!1|Dx|zA;|>)U5dtoI z`fPY*D+O$0kC^891C;xbvo?>GfyceXW{$G64cj41B-ymmn>-6jmNz#VY>l7>CBhWEF5ThYvg@^E%{MySd3 z6RW<_hjHilv{K<^jeWyc9$sKStx_`5U%2{$DPH9`-UKyr1ce^;LItJh*68at`T344 zI~Gz#ydeq2`pvTh#G&`#Ae`WoJR#z~wJGFZFJ-||c1@mj$}6=iV86lV0f-cikU5-f zYirS$Z!@}Vz=I0f6Y&mknbs_!?Dp;>$v_RwQacoH{PPZEI!2$qtJD(cRRHgT`zih& z#yc3Co*`ti1o7GhN|ED<%@X5>867V2&7615wp~%FIod%J$xs4b%R@2WcPy-w^Co>k z_KWW^mO`K?ED}feO8~@(dyncq^z*9H+khq2u7MH|bxa9)1*00^xC>ihEDqjfG302G z)h_%4XUS#SllFbgq?l86(ODeg0K=|NNz4a1`i<$TcqzVIb562O234U9RELBI&v4Q> ztvpZWMnCwD5YMb=$fdt^mTV7hv&lQeY`SAUvAY3nZ-Gc}%g??KVAk4!>i`5%g$e!; zoEk97l(IG;BW5$LwW9yo$j@i?1z!5a<-+_{j z8s!mqje~)l8?MnS`7%}qlh-btutlyiVI<;z*g}uJS0*&)A%tLgxt#`4HX zFS4IxdXTQil zn>>XHa?x76N=ty)BUl!FW_Ac=hF5rxnGPaZH_n%*Ny?bASr91hD<59CL+I=?xpmdM z5LLewjOTt(lpFN4C_*a{p(vBKV%-<%SBDwr8aKTo;q8NnJ2epiB61^1#a2n=2OH-@ zU_e=4QHrgp<5=v`TxD)8gs@#C0AdWc2l#m_q_a||5B9IS7bFKvZQuc_TZR1}=WE9? z@HWI6R;imTobBTBa*5-F%ub-W1_x&4H8o*L0;}6WKFy_!a?@qdpR^6FkUX$N44l79 z6f`=>`&5p8K(4Q8f@*$26!RdN%1LVzovaN0(%CC_)4S8nRr6HtC>3XuSP<0|#b~^} z+E^Y5q-?~Xxmt>lz#5N^fpT(T|w25z(bHqxGnhmC}Nr=eq+CFF)~snXE#R!4jq z+X>PL>hZV_i^xnMHniVjEuXgE_dUG!DVMD(IpraQ9jtyt3XQ3lOn|a+z$yqGhB0j{ zi^lQf{hsK)Vdpc5@0(>Aq>fTB_tl51QRI(Q;WUk3U6(+I(B?G9mOKN^Iuof85L#n0 z6;1C*im2@;zHttbg^01=@5K8Eaq?j}bR_2P*cSb1JHJ4GVhD32GdA~1rFPH!xm$jI zhu)}t-Rx53L)B$3oaLy7H-3fgk@r2Zb7MK6+C=b4%_Z6Yyy0RSY_Tgo;Z3Dar9@U}>=vaR zBwKa@$o{O$Lm_8IhcWIx4F8DA-b`A>cr-YfB$o#}_0#_Nb1jjd90bByjEN5fal3Gk zl2Lg^%!OE@?o76a(qN)LDQNCMpBkb=l^+I~65kYwMOJha=Gc8!E26E$O35WQkj0?q2nG|S8Jq;t3}?>OxMv#Vk_qhV6o5^h-;cT zBC=F-)J%^7$R#X3Fan5yL*{OG*1!MLmk}Q!x=`kI%2IJBX%UXwHpfNRv94>*ngl2nahPbitlzr`}}7IDdDrU!)Dn%OQ&GmJWq3@i99~*(I=%p1Let zegXTkDW%#<@e>(F=E7{38BaEuJl5%AvC3pKA?w|LLA$xB^f;eWMQ6NyZE*_Ttq3Vq zXO0<4q-hYG+GnX5t+lw>p3hPfer3&5+_KZVME4P$R)!zC41HIt__P%?gKdfG$v<>w z?wTxXVyK&RfASSe2x4yOW!4fI>5%>;)qNo&lpVc`iQh-;v1P0$JchP2?YEg@s#djZ zE?b%cREQ?$S!RXrmQo>k!G%f(Wui1c zOz1uf=|O9v6?Vk_21fjK*=eLYX`&;}HIAa|Q1SdSCXRfcSj%{`TdY4m#LeEw33?R!B!vOKz+FMxN^QQ?|2*4j|XX$y4>Nzij=eNVTU8^3E%VqKMt z>77C5c(DY`sUI}ytPNhIdFw)0b; zj1lkL7o#ILql>MWeH&0@>>bBH9NDc((x~f@lSASbl@QqQo7>lITp5$SC7bHb2!TjU z6%Nn{4vQmg5iXDnu9DcOiLWm_CAzRt^{l&k`bE!Rv^igHo>0>NhI>#O1flIdk-urX zqMhUF*tkhbN3dm%2i3yNG_+S@gxtEkK82b)$RU9y4aP%|NKX~pP=+D*t|ARy%3Kaj zo4V=fbd=G*bGEG|=p_nvHhg!;u9ek8%to?RvJur-C-xWyNRhE)mz zp1V1dVD^RZtHw|YhqMqW=nkldzbA*=3aN_hT*zoo3HIi}>+QziTm1=Mh-{j^!0_bvqM@q=&n~k+`%wvciBR?(S?Zu?C|I{9NY)LC`G+2_K zcGR&>OFar~!P0j9%U^Br;;ylpTR=N1fPDW`l7ugsSqHeN!K}MVerw46GUAnih%!UA z)9b@DxA!=(i71~AoVs~*g}9e1yKeZiJvakU7ru2aytwRE^HV-Y`>`m>R>rH_BiEdr zX&5KARc06@Y3ktuI3^WXDSnoq&b9;(*q^_|;ra((WL}bKvM=AMPHrJHOcG$>b^eJu zn4V>JYVD|lBdx9aefjZ)U?G`wf_@MD_)bDkISJQUll@d`e)IQIy+wT(LS4k4)$P3S zWA#woq5&I0gyrW42}GD(Mm~r!%f*d)r{X$V7!k$5?d`oY7Blb^4z0-T*?0_AkX=6p`qZf znx7i|y{?;DR{kh>IeU8ZW7kA67x1Yb582jH zLgJTo3tMk(X5X%uejW73*IRT?8#uCzUsiBdq9ULLD45=j>Dt(b49}1!3CNmp;|4tg`2F#8IPB* z$0uFP46VzI!B^6!cC|P72JU&JKsrm<& zSa4-`zm>2S@?qDf{PCy6JG?o+8CH)h=;)no;6#%EuOjyp>B4Z2L7-}DPWGPK^)H8P8+ z6(S_S)TU)o!1kF^-6ajNMD-@|_p+1r-eQK+-*6JTlwOXd>^E2Sf&=RpB@Ne=HCN$lFQ7Ht`^5dHp6#8 z!fkQ2N%g@JaJY*tP0_KE*{C~d+CtBvj<*wZYz+*=7!M0RE&~iV|1L6IOtQMSp=^QW ztZS=8krPDyWrduq|LFWgA~^bCYX%JPb&imFmZ%-$-#@6gIN;TM9dF@eAf8UY1;n8a z09lTQ9Rw^;7jH8(r^mr#;Wo6w3o+ks~Om15#;@`1M|M zw^<%kCO=IpDZ{tK!O(`fQ(Vz;RT;~{R{M9adVt}#?C&pC5YU`!no!q@NHyJ`xHs-- zgfVOhH%MUWl6rkUUC2MDC0xNK{7<5(5c;@bODT`WpfB(mVl7rea}3%5E+>QxLVm`& zz+YKiwDEZ|f_YAmRh@plFDB^k{oX|?;%IULYY`J(WywjW7hvgXqq^7-yY$64Da2{m z6cn@ExO`j!j+1AtfC$~}P@Y3!!IG@%piPi!cn2R_k;5WX3jVJd+;{rZ^mMv@?3ZJZ|#G6zeL6!xKA>vmD0&8CC)1&}p@w%z{SyORJMAzV$3CawKd>~eB`&3ZY23L2cU~RSqG30 z+T8W91upo{I`D81WO?DWKO~#L5hXiyJAu0aszt?oM<05<9u1U$CW>(>YQ&yh#>>9LB>_*7H(4f6aV$SAt9C>Z_aL>J_1#=UI*U{Zj|3x)d z$Tk?{P=3xy&ImQDk2*W7(IrRK3BWqL8MwdT#~7vXqD4hq^0C`8o_(Pw*VOfFCuqBq zFH}t1@Fu@oU_$t(`c{kHA585NitjLArUR(|Wd<59^-mQL1{ps>IlQ=d9E*RR`O(|@ zgGRTg(i*#?!6+KKfB=`q`q`8IQ&SY5zJ|PJC#`jw>S@4&YLVktYQQ^DoRCC$vPJ@b z?>#mRR*sj6Ym2$QY7EahB_KAc;HBiJWy_f4pYM|7Yr(8DxSxvtFKV?vd#wP9Re+QX zF!K-Um89w#=8!7a;1;o?CmQ<#I@1f`lq!DkSVu_UOD$14JP9s?&OPk{6H5H1oM3$9 z$k?;TG5Haai0&6KK#L+?g&HBRaOVEQGk+!^DAY%@%Dq5By-@9%v3fvapcicSYUhsU z#Mh`wd7WY>%_34=BqnVVYrvZAv)}T7LR(g$wh3M^M`jz#L;R{iTH3WnK(cTMI@R-W zdKD=sSB667C%+^9=mB9kCm!NhD!m78;>ZwWdP5-|xGx>IOCP6CQ@)6&S4{e*Qu=_n zmGoyy0Wu~%3?Y1%=IUi-w4ANz7{xF^WQ@$2jqyWcGyrn`(KF`#ihctx+w(5qbb|#b zvbVE7mP^K@sIFy?Dk4TYd+yo3KuFFR2fkt)= zcr&!!e|;qh@#TOR$mz{o{BvLRi$m}pV;uPpDD`p8z)Emo^2i$;5dj~5lhYwlFS37| zR<(XYbs`5`6x?&)(~4*9FZWzvI0Wu;=mMT4RJeY0Zw!+LLT6?hoC9Ux%*#(lph-h* zeo46E0xyA4XPLmSt#uOv$lL5z6%4K)m8sWIH7jd@mN+{i6#Fmr(ke8SKdKiKmeF%a znTp>hvG#KC##jiP-LOaNPH~>(09!R6Bl!cf&tla(zligrXE7w2O?iZ)A;37Dp7Hi( z>KnrQzeSx0?wLPdGL~0%Az}L4!z2Nnz@6DfBrIh)#9qwYtA{i}v0A7{GmEQnZ#wA^ z$-Y2^wogS`<};-%5U}om>%iIPj>LV{c<*zvPPZ6ZRa!w~fjO-=10RgBc>lf?zu&{q z<-fAPQA3^i;9fxZIzyhU-CZ9KP3sjLa(?AUh@p8uXzlBcT`M50w1}^K_ejJsQh`Bm zLfGZJd_Pyg-5j6S4D9Laj|d)1bqBkJ#o1^`L!ndDD+n%b!jwNjBwlCDhG3Fm5X^kh zK?4MT!)kl3(wkt&^ui7O#zhx`VF@ON_xd%Rf8i^`w6c5A4-;$5-vgLS^O8AtPfRWF z0{%5Pd!0FEO!}FYgsqii=3#M&dzEqBI7%?as!W+#_mbxj&%YL5+-C8X7bz7BoNZS% z4;AbyuaN|5+^rfR@N_9W$~P8Ima7ln;6bF!h@T`-v&HqVvh%0n5q* zoo6P^(dNXOmvLf1YG$NKZhu2R1?HX3asi;^EwyF_oaE$}a@SIz6{Zd%OM99(aKg4iJP|I7)8?2a;%3#?ar9=wl$3}>YD-K?&>pB!7XN1E|GLUUnd^1^fAjE zLpuV>*a`dJ9p}@Ze^9diemB{|PO&R!fS8C$MU)`dKa2BMphHDFus zQ2XV6ZT zzUMjh>5^Nc8a(1IoZuaQIju&^9hi~aa0rUmM-e+I2X^I`@ zjmQvOY}v?Q$I?=or?I%R8-y7i@Y}dPFo7esAkxnGDTVU5z%4biwBnj>Bp{m`9M|$%{0yQeLBAZ!8ZklumGBe;UAt_`ODQw~xBU7sVJtPw zWx?lSvKE`fY^JDRSr0T#*klN;sh1HYwl)|&hDq!I(K>xwC z%X;fr;NG)cD-Hy_wm7e5l&egB7{-3~p0AckyVjx^TeEU^sE%TR((o8l?hx94g&>y5 zKI6&i30B%iBYKRAq1zG)=>ut5Su1lZjdxi^-#!wy33Y;>NY}mD$i`Rf4oxB%G{41C^$L;&!NNW$I zh9Zr5yY)cn76|LYg|_%LeWyLDjDUrYUNiJ)>w<>RWJ{v)Heps9;X^=xAOK-E3$Jr= zk?%J0$o2{mtR>;uyfxL7allGJ`p(IQ{Ob|vK=n4ZQFAO63+*Ee(U;h(-S_{3IR1xk z{U4yKpn;RgKSu0-@niotWfq@K$;Hsw!~QQ?_8)qd;lEh2|BF4#@DF~g2uY`AVeD+~ zg#RB%vf^L#tAUfVkhy{5-vYM3eJmXRJNthyWm*5*1ucA5#=i(*roTAhf3ReZzrbGB zzl7kw09v+xWZb`H|2zGM6lP&z`H%eT^G_K6wqc@Yf&9nF{r}59JFZ{zuQh zXAXMC|AH$2Gw@HrKlxYjSK)sY{f|TcQO?ee&-7RRqvXHaGX1yVe`Ws<`9GZcA3Oij ze|DMK{*s6P%6|s=Z@~2I|K%hr6Fw{ZUjp%8GBMj9n*Qgk|Caqz z=HI)2>3>GzKVahj-E033PMPC>o00HC3}+Iw;^OLR%GmI@?_kH8QhXf19=t;nP+5SE;CPw9sW)gC zKm?h4#!uTwumGe?D?sPVNX@Cv-i6%(43Gd!s}6Hy3$(s(atr4G#y=ZQJ}Cj5f-~^q zn_1(F9~lF{PY(`Y1mwf4qeqS38l?H#>Q6*QM$qrVh%WM#EhK%wW>COnlEVybUTsVO zvZo_>WEpE69D;Kh-7J3_8EHb~FGE|PcoYS|^j|z5>%8d9W_5*?&`HoMPk%*@!fXhZ zX$j`YpI>)l)g1U(5T;9S8n1n9PsUis~;jIMWVuRq!A0M@g#c-#%Hjz+2s;9VVo zN5j8)K@9~x8#My80dZ((Xta5(0pgJX4h&2OKkB;LONmcv1$Kfk_X2BM3WJDyf%ZU0 z(5(Rjy$L)z(mTNbwSRB^>fVwA{}LAeMbL|5eFVh-su6gZfaeyLE`av^H~!cS%nRT_ zonRImq>ks~^L`QlN&g7$sW~TZ{@Zh>N9S{xg6eDs@W#~G43MGTu@1l={&o=bb?^Q7 z&5!51cG*uOMW)xU!LzL`acW#?z-gi+w&@C1Hzw{#?NaLp!C0ViTd#IZA>eR6KDL456}KX zLQkuKmjYvObUWZ(fDD3oSKC4H*~|?A;gQe>vtL-i0*YtTW+`>-P7Hn{ysB`r{t*og z5#&e*&IBNi0G))n@xcHdAE;XZret2=Y9mAd15$eaAwkS@{rmL*>BZ6)7t(lDewh9M zrVjDd=Y;{Ny;ZiLo`(9s4C7fV8JYZ=D}WPgJAMe@{u-}{4nXOPy{U3=JAv*e5E4$| z^WUrvLaOS#bh`n+(!?MlTun*2;}4Nz5fahR;t&L9_eQ-T1fbW&M!pzcM;V5JeVO14 z%&!2-q3PtN58j5&Kh1-08l8Q`zx-$rD#%RZ%RD-1AvBngkIAS02##cO1?5y3hTJqU zGrk)k1vlLHbAK86*Rcf&XI5V(rTH_ofN-u07>_P29nQiy^d5{}A)LX<5d=2|MO8;c zEfzxdX$tS%^5S1TLk8cdyg3142iHYq6&BtL(R>*N%ZGxbR!3|WLJF>pPX0v&*?qW$&(j?4c&rS;eUzpo z9sVOKQ#QnzLfFM8WsMr;IMnm;ppP61TzzGaJ#pNa2fygwiN_)D1&$C0&Y=4UBb*t= zLG)>TAPR8shq9puR~`@t$|rjYBY4jJ$R&;t1x7~rh#=70#6Wh5zQYN$QScChqxOgc z?G-#1cp%UZf8+&sKXPUKANkrpxt}ls9oA1{k$XgeR&(B;#+Uyp-BYw8(6z_?5S5u2 z8vxtB5(Igw;#NP80oM7Uzb5E%!a4!Dv)WcQRs!+%6T{Wi$L}Og@p53>l7oB)203!WRHk{DPn!Cchy>{g*lZ$;9RUWR}Sh`o=CHgX=s$K?K#? z_{-A~RPlcLOF2e{FgSb!;iKs4dR4*&=35|--|Vr5FE}x^v)H>ZHM81#3SJkAa0Fe? z@iI9U|JoBT1y%8|d#*vxGq4AqZ^JArh2f8;q2l9?j<wPn)v95`4Lafi-NrnaQHPc!DsFp?!MK|0eU0gd(Hc` zz2pgepLwQYw6efC-wK~S_YgvM=_r7*|MxQP9abD-1~3wy&Q+_OJbU$*BZxUEmq3G!fTO@{vyXt z2?O1(4{a)tnasQRMJ-z$kBbobu-7WxpHFR!kxIBa-=Qqbf%ClCE!20#Q7@c`h3z+? z)743FB|Wgxyv|WHCaFo->=ll1OT|C2{^7Km#N2J6k|h;3DvrZ=JINu8Le_$ZPiS(A z2AO&CTiw4MOi09Y26&!%GTFc5j7;ISlg5T-iC?co8VHZ99%Xm(vl{d6E?kVk@ z?;-YQ{~hhFB~<{^nPRH7CyoA;hK<$Y_on13{5jN)qbNsmu*$l992D0cEPl__Lq_g5 zKa31}8*|Ss7x__NhYp<-aB&|xyQz_zm8@T>y#jqmcMaQT+2d(E+C68kg10jYE7l_L zr>K9pilRQ16T^UMRenl->v-h`CGHX}{2b#xIcd~V?#R?8IXCJtXKC&?5e|=uArdJC z8cMrnM~;t_1^VbAMe5AmlUw+NgP&JR1Yg%Y374#f2~kt44&lrvYxXjS2LC! zvTSMu1d@B#TT=>as^P}hl$@S|-1dP8VC_TXwuD`Q*yS zgJ-$<^SwezFC!4Fx|YBpE0IzEeq_{2>$G`BYXkk0OtvJCQulU8ZOx=76oOdAMqa4b zQgth%F~{*fkml{tQ*K*&&*!bg{sjeGfM)=GgL#q1#ZD39MCAr2!yL7?pmD0Vw=^uZ z&DJ8eTuKL<5Ob1Xrd~3=pBV9hhP&DKy1PQ8_Zvo~zy;*8yemo%pQJO(Kvk}(mwOwF z;pHfRVE+5P8MyFZuE2eSo~;#4 zl%AzhgJ-NDPdZ1Cnpj17Js}+}r}(taQFE(#eJyY9!&%(PW%08{WacG#to7!Vt@vuZ zXqU?flEhWd6L*T2sg;?5!(ev3*Mq9bOj|MZcTgpcgEq+(N8_ze*G`iIY4Xc6nLnH` zWK^68#PeRDU1l%Z(FrdDAMR?TvtP^g1#|PK0$I4%AISZ4Azv|6+yFaePUQ3)x2?2P@9jHNz{};>P1F6E+|u~<11a4=Gb)GeeOMS)$rVtBwv-1Qd()j# zO@Q8|R|O`Wi1cHbqn<#^8J=fSo?|E;wi#uYB$W;d%MV3mK3R~fN;OI_6}Q`fK-p^x zMIeGtl-WxX=#tR1~%OC%V&t(T~3!E&0qD9g-aT_YL-c|WoA;J9EsU%a8y?yo+ zGv*o7t;m=VOZo}bSvm)cW2J)a7#x;>)+n5%&8WDE=5^I$aSyeK$c3?zH z;-A)KrR`Na%B((p0$|u+cw?73cN??l8Cm5K2i&tfXp$6Jx=t@(B3=wd;u~RW>#*e} zUpxsb)5EfZB{R*Ath8Mh<*L7-=gOa3fo}*X!91ioUQT$oF#|EW>+-k z+P}~Nbkn8@<=ija{%9K%DP=ytMPQeRmX~;s3cQ@`uzh!39F#hnr)#L&N76{ zgbJ4Y*=ORMw&}OFyMzY48f%pn0#zDMmpbxwo`x{5xqPOPR#_}v|GZf}n{hi~Uq;mR zSH+`BV`g9Pc~L3IrlPzlXj7UIyEwx;wn|W;@Tk*eT7FFUG*QGr_nX7k1WRVD)o3{a-Mu6 zbS9TFp{0F#+#+dhwe(*%%-acHt@YjFP0frbxU=(*FSZ5d?R5Rw&uxyRCc)zQ7i+~l z$%;hB2ob$(5->PpVQ`*B8chl9^UoDHW^Wx=3u^CANY@cVAHx!`r^=g{!HZQNofvw) z-8bx!AZy=Sjh(toP6&1tmeR#^s}tFFArbl(#qgM`u>+WQo(+rEwDO~w3o7N6j`WW_ zHL72CyxiNJG(zPY*qL&Qc#G2HBzP7ox#p2@l?-Z0r5wYq|wiiiFztI0A zP%<(phz)Tem2@_Yr97UZ!TY6oGBt2 z`&ngtEQ%x6sALVKcrDPk$rx&@$4Xe;Jj@qb;d8boHdd7CuG`Gky0<4PQ zEKa>GWDt&$lz5#5-*cJM6M8-t@qqH(kAe>9F$)>qAdGk3M2q6+EKe#`z?W`ku#B(6iaTRqv zdYl9rFYY|@tSz5)Az3^~v++Nyi9QOGn^K{%xXi>qW{)svX7;e2N8c0s`~c7*O6rGf zTH`Ll54E)$Y$u$bS4=P|H*ZY7^T2Vwf6x(-7LpAgS*r27l9cAH-(PlN`7R?l%h(gWO%X~&)CT~-w1}E zTTYp)0jemRg1^=(Of9K0fkWj?!)oGyX%$XVD?)IRLEMye&AA)pR(Sj$?o*zHJh`KfjRBC~*7Maoo~A|( z4Qk-hLgd7hK`N#6E{wVdC3sm;DXRBQT+Ia?XaWkuf@;i(dCUSzK-_Lel@}w+o!3k5 za5z*|yHt=2>)MloK0DS6W%AETk8e_gZ zNe@=5!Q$NA)uhI`va376tI|ffQRmCM_$s?*zPV7ImjTRF%YJBE3%hQt9rcetJOpH{ z6*6-?*1zf`C*w-!%0sTSbrGAF=}337`!rC>3YKuVam1QwmH%98lt+CPq!%{!&LKsg z8oy@5mg0y#r^l0(F41TZ9!ngPg5&dp7U@n{K=0y$Mv}X!OU2`$c+RW0ExA6(! znFpyAAO(l31JoeavR1Dar66m2h+fK5vN!z&J|QNKdu3o2%|UjNLfs9xT0h%Fgv|SA zWO`iy-3_{;8-`0LyUmoHZ-yT+c8*L5Ul_w?n5RnZBbRD~BKBqenA6}~p2SAMceo&* z>AVk1ZoG+#(?RZ;KFq~Y^m8Nnlz`LcY+R@t2)CF`=)%-V7-Cl7(yX#Q?ea$!&4J*` z=ew>ZHyoyv%3?g>mh3FQj|WSJ^qBKEaq%8y0VgLQvK31HM|SR(5Nkn>rL2_qX#}Sq@Er|>qC%1n z9!Gnn1u$7y^mLnM?8&voIA_DV_4ZkomT;~wAZ4HO{&y?Zyb>@22luAZ=M9tQ6Oodw;R4maOsR;rKOWUWM%x$Zwm@qe@b}+sT2;`s0 zox!J+6Vbf|{Xhy0kqn(0V?pwua_9^n(fc5oAwTrR_S_FGEXqrmWM+A_HG`c<0#>1jK!}Y)+YoU` zdM05b@;&xz1_)6)_T(ZM=2aDov>An2H73U(xnMtK<92dX&Y{@LGpSQmuh!+u6gzB> z*!pI|8(`jsD5DZsQtE>US<}@ZaN&zD`37?fjHiD>Z}kz|D?YBNLq%Un-MNdmL`D?H6Gd;V8q0byW*}9aN2~ z{w<180cj(rvnGqjk60F}H9!c^WEb-QYaD|)neIF%1D13Hl11fvv=mv<4Zv5@6mE41 z2Bx^V!F{%dGWPAZ4)bH%H{L@n(2QqxajK8O+cabmnzsW;VrA$s<>*$Rl@S=UhjI(H z5a8&#&j6KdH4c~paMdNFwxYfp{hD%`!2qYF!dIWQ`856-lGGY>$PovX>y5mnPb#%C z-Az2^wpAN)@|P?+&r&$?;4u;d9~0t$^3Pvi+F-iQ0p<6BaP$ra;-!fDlWvw9iHq#4 z6BwxyqNr3es1G){!u$8FT>3R=Y31-{lo;~nUC)pX(ZzG>jy#!otqnvO#QV7cjoqyW z)+FS(7i%!p=^+ZwSUtCYF!rGa7bbK$eH*vp%ebu;QyI2n9I4cMrb;W_UPQr;7YwC( zlZCq1?=6m8C(l`U;+k)JC0F8T+b9UO9g#K4xr^79(XQIAYkuMMC%`4h^!oSHl{;aJ zZOy>nPes}e>3X#5jr1k}_t?)5rkt>MI{a!2S)T}WSCCu-8kgpQtT}%%6_{noj7H&k z5+dKInk<~>rkO>Gw5#U~C!%I2kt9?kZn+ij2!8{10M?2` z6?@#_LdF?lUCMl8gfuq%C`+US>uoMu{`DkjTZ1MgLL>{8bwEa}9I zye(hX&(6!XmGyZYGG)=0L1Ya-p2c>e41OnYw@{&=-Zw?nt;2R zm!)KQ6ox%h85C1F@71DaPbE9F2Zc?A^=*4CuPwi?u4VJH@fVA<;}LZfv3#QU`8Ne_ z#Sp3&Ls6|8tqJ3~im|b;um{5)h>lM#v1zC(nqLf_+3DM;4po!Yyj5KZ*oy`^<@JLj z{uVt)GxYcDpS^gpFsRKYQ21_0@2f8+P$G2^Jpj zUB?RuAEdlxNu4AP;?4j8#po9NYF}Rd%WO_<0MF(Xu_8HsGl+P58{0P5|%b4;?6q4UM6?bR}J(aR5EI1ccMZg=gw>b zb=Pw{ueadFjlVh+Z*lw~Nx$%u(8?&{#+}EZW%AZ;p0;tjPo-wmE+u42o@)7Sdlhuc z7jCEch+EVHaNdzCp~3pNWgBu??^;RT83`Qgct0)z)Ky{^#mK2kand0Dm1dP;`}Xni zm5Xychc|;p@hpg3`$_1QS(ij{GpZ@DZ`paEc8@4Otc1v1P%mmVvI&stYE$sE94^tL zGL~3L$43Fy>@$`eOe+GUW?Z@8xCaXlBXq` z2^mKUXM>#rIq7exAap>Cp>kF6htR;PBboJzWdQh*d=PeCj>z=(cGm!<-)CNEwLG@% zR6rA3=%vyMjhS^>71{bu66@XanOwPA3?$Qb*?3#*LKgT2e1Xd`x5VFJQkuV=t|3qy zK;4X&n!74>OuQS@5i~d{jtsJebiSu*3xt@2#Eb8#V72*uzapybuxlwAkhv@W3R?mP zzir^8^!k@i!`6nFQ48yWJy6?<6xZUd?FCK0yA}7JH4bxZdsP#0cc;m^UT}xel~4=rFkuHMYz!@~diCV5(l%xb0f`(B# zl5g2uo|NjiW(SbGf4YRNDQ`4_13vi5Ft!N4(nAX*XC+i&5e!Ix#n0tLB1R!+KjH;#VH2tzq7?N7Ir$exBD3L z#c|!35r#Rx;+bp5s?QjITKA=IR_6Ugo!=n33%Zu4D~2I3#k56Ninq&CL{YCy{dH|E zYZ!Qi4=)^N<0J1m63W&Ny^!CQvL5R}zBp(o;=N>c?uS-%JE2OaUMN)gWt`)RGpA$b zov`9ea;60!Sf8vra#WC;GcY8;Pe`4f&kIej)u7u2=iJ{Y1n7yRO)jJ!Y2CzYUxT)l z6zL`sWm1@YOjh0!oW^1bn;hNC*!XXV!sJMvAUbRH(Y{T-fkr=NI2v-;^H^@6^3gSY zjre0Yp?&rspaG@OjTj;!C%e`4pKbucIK}>qk-rX9Ysq-RzAvl*za6S-;C~k*27Hk2CJGJ zZWLqF1WjFK3iu7%>_w5Nt8u1g3k2wJZpAGma%B%3eDoAqDzz|@dcvjx8J!mqLDCWv z0b)&Dt6ke|U@vwx6>8V6VJ^xTj3gRJo;kRpp*RBxlIvN{HYS8kwVe6={LuB)C{oWc zpTuhJwCD|fNlx^M4T*fc0$U#CvOYP+j&n=3qGb0>x_|oq?v7kKhFXXRq*en$LSO$< zSzwgyRq^7gD;&(*X@1*?pl6p^zUp-$TpHYkC=eI$Mxv{{ULfaGNoAU=h_G94W?~GR zO;@8Fo7e_JUYTXr{|1@9?A$gIE?DKK9#Nq}WHiUwYlK;PQv@Ggjc(CoONn0jr%vkf zPckUo8fAsfAY;YnTZ*{>&$Pj3mGA23yVpMMDY5$r={P1!+9R67V@|0gBS;1R>=#lbe_dqIVk+rRO&b#|-P;Ns`^x8Eo;?eaf8_9YB-!;h z{SfmDi~66B(BPyrHb+Z)`eLn(RjzGQ!xfZ0J~TnN|5hT4J=tuaGINgaS$s&UQh(2Zg3eI?3Tr5e8~et>Zb z^ZCiy*kvK|Oqu(H;!a~r!@dL#ott^z^284TO z$1AzMNc+;eGU9KLAD3DWb#~IbHw%r}26o9NDS=q5Sh6O+&|q!a0SrV`=xLhXT$}+B zqxZZO=1>B=Zv+~7yk9S+gqw^$!nb2TaXUrSbf~X)JLoG;lji^ zvGF^b{J0NZxj=;AStT?-=EjBik>DL)mV~v1eJG_f?nfyut#BR=1xCe+){D;?6IqDM z+-Mb{*-9x?Ij@%=xIoPG7~9CCrQvY3;J$WHh%aoA49Hhx%43RY8p2h@)reQ$uOKc$ z2eFaCS6NeK<1Wi6%{t2lZlw+R0Af37lwH{f@j5I~ind^EI>I~R11<$x93Z4_wdI|| zkog|vMWxE`n(jg8{_-PddswCW5oS^P-DK;mcKHZ;M;l5n9@<`pMd&%Hh%-zh4cs^ zr7x(9h^g;IVQMLMa>kln8x4rbPf1g!(?s?_;-QnxAE0>Xz~=k82(@sPc`fd(jle*v zM;*8jVJ0#`=LOuO+YP~ zrGs^x8BXE^MDX#LT1AFER=(QNXJu2cMk>X!&OwPlx8?bT@F3FQN>6R){^N4#y-1hH zMHH>)QqOXDksjVjxbXFYH0jdNnGFL|LP*H=iLQ=G|65JC*bJMyjW)`MpDn-)2z8dl zPG0`Lz)!nB+SNt-&^7QE7!5UlnUShZ_O$d>M*ES%?}Sv+o=c==BDkicXvp!c(PZ+p zq+Hw{xl}OrMj>N?wg(_R*%VEqV?OW&-7ytSYTb=ruxojWZrWxPqzI`_#5(&t^eKTY z`_$k({$Xf6^s`; z4|()0ZrV87s}V;LdZuG3o`^n?SY6$!0g#xKm7K~z!PGV!Uv;}yI zkA@-DGnZz}jbk4@oe0EV2ij8L4x@#2a-Qzk1G5Q#Bh4+wi};l-Rqa-(|Lds&==<5z zlkLv z#3PhggL}R<8%}z$#mt28ZE9vqtir78YPwZEGC5-b=7^ca0_}jrF-`ZBl1;}Y+{jL{ z+tk=%!KLP3^xvzm3WeFi5012k16pJmdV>`S-R2#c18PjwoT0LdD@g>$=UwTM{nDe7 z^tbScis((Mz8qhL44M_u40|i%PcpC2z?yRrUsItH17l)2s z%X)hD!Bb_p0Z9hRamSsmy=j7;Q``SmSJjJ5EndF$calqGA?D7%Oky4nO!F-JQT|R_ zXj@2mZRf~Oon{;lZ&euccvSEeQrHlte5AA^EP0XN`xRx~eO$tHd~ea(1SalR>BCI9 z8JcKn zv+jY-bnSBzb!Q0=>*hr|(3aC6-^I@8^jH$1a#JdW>Wt0{)kIl5^E;BKM0of13TF`I zXwAAgG-HT>+m!tpJsP_zI?Lfh->8WZRCQ1mWpO_o=vmOlXvmk{`qWg~G%2qm5v}(9 z?;_{%;C3bGX$86ne$IDvs8-{603j;13OIoVA(LKCXcwca>=8E^-O;YS>tz;Rm}7f1 z(C=}JiOGBbB2ksJ(R_4}o0C_UsnPOlM~cX!Nh^ppsod9R7%Cr| zV{80H5({gOn8_9jstXOhUOMK4Qc;S^mX)7vh>?Q|(>l!qzbe{X8fzXrh(iy1$E3pj zV7-N+2+6RgwZBna4D6y=>Ok)rT@C~YYD9Zp@D(z|te2(NPs43roSkAw5RXoYZBi$< zW(tEKRs4-!^qj4`U^gC3OmUx;bP8mW^XO4~-qbJJNSeqkq|sMEmT6EYce))CWof}? zFcRH4ZT!|MpkA8*HqfOm^~RN=0#$VrW*9c!mbTOKO|061{_>A{TXA>{c952a%`i3J zJVoU7W_!V>V5OuOla5D3y09RFRqi^3dk-UhS5T)pHhew%yG#?!Z=Bq$S9886ZVwsL zM=GL$n=g=IaZ~J5i}>NdJe^liR6!(z3QLTF;6V;qoeGWPRcJF~wP2&f{rXqeg0XE) z2E~|v+a{#Kl^=@`t*mjci{wR=#FZ8MD7OY%>cjGV3dq3`8Ng)>?+Cz1s54 zB-D}^2$iOghlie`!A~=r0f%A3N?`EyEW|( z9ezeOK!j0Piiy+trPp-lu3nJM%I?GN;5l^Sd1SH0qu5v%UzXUy$PvdR~y;gTJWS11m+|o{iJxX zvc_Gc=a4vXXS>}of6fLvw%*j_rc&2*bBeaw>$mw{0;zW5jz*p&ixBYDJo{Olz$k3w zva)(oI9yCnvDifyj{$wSnX9bTZ}3guu7g*UEZR+V75^bJ4rFM?nsUh(=8aP1Jgv4Z!MV3=6 zX#4%8iX;}D)+yZcYjVH$N>cxHI|8Y2>qAhlGRBngs8$f`TsS2I)v9Zb%fHwPQG_YS zAkm7G2mN%vE|OY|A6h-nyB6ul?WkUFgEEGj8kiI%nEX#j8xJig4uIUg?8x`sSvk|3 zZO%>yb>N4&`1Q2m85l0N)%;AF_Hn4&8R{{uXR03F=)O#}qN)tN1wBU?@XHu#DCZNn zLTQn($8A!+E4nBLlG@7!CVViGD%oTuWjhJ-0LT&ZQ}8eI+I5~iee1yqW9} zK$N;=IRv$0zwW$+smRy7;2sYb$+%jvJe3!%FOz~@Dcj^OeKwkTr@*o-_ZzeQ_RaaA zsuoI@&*pAe)8WLi*XyppgzQ2(v)1QbP9gZ8!i3UTv!jJ~Kp0485qwI5XrmP{iXRkp zT>0q!(7Lb`V;j%E7(5zb?3V(`hJ`f_Rw4rq7%0NA>Z<%%Hz_ILKnbFsTrg}L>(rk& zZ8F#oDewDRpIDQcYV6-(`0>mOzGzP^x8J08rTbJk&h(;muR=ms=zZAQY`1kZb|)^9 z+ho>NayAlP#ix`#V=w6!;(hBne#(#4ZMNH@C=yvLB zZCzIfqu|uBq9NkHE#iKQvv`!?;AB}PBp?C~{W>(f?{1soE@QKue;fc(yiCilTUZ%W zHyd*!uIZd!jwfG$mxP0>v+old#fV{Arqk=Y^l0lq^%I+$F+DFs1uQ&AFjgWjvuQie z&^Mn`U{OK8&mu@$-pb_Z2sOjPPD6W_CFuQR8h}_nK8vc)<2TZ#vNM2tJ~i+4K*$+2 z^9sqelxWDDHb$OiWtnvxKiprlc}l!L8Q=Was@viq#vBRil2p;H$eb zhH~E1oQdm2z#;R&xX(=!@?MfBdSx8Tem3-}eL%m?kO;)jptvu^hwVwZG;oiZxoZ!% z0_4{}VbH_t8O9t=+|P)@q-NGylIaE|{$AKDZ}P^sp+=|7e99W6a@MK$ilOZpKPBat zfyM!}_#OCO4z|EU=wU*O$fgx@1fK2{`O@Xkl*rTQto|JG0G*Cet+#m>)swfTj*sYi=cN(hFj7_f{&7{r`NkF8AH9mTK7 zPex7#6&`MHZIJ>!UE;+UPcOCTVci}!(ynIB*f#!UFYDn_m|I~KoMPc)&T2`Rn-y`F zGgtJl^IXE1bG!9AA$pQqPjzdmt%SnpYQI#upy#S&!M=h?ztaOb+>}glSjTJ~K3p{ros{%x>_f&k%}0+FM+gs* zCs)P?sDkE*Gj%M#K0j!v59N|(l z(*_BeWC4@K6~%vLh)2FeYCh_z0Ky=y6tJE50#q8!y@{OcRk98Tgs7XMObZ{ zB*cxexx^OEY?8{~{!eVAWt(A!*>y$|%=BegqlL`i^~1N@7(0$T$6gWl4sr1+EN^A# zEHCn;WhxuCRokMYYHWV$_F(Il^<745DubrGELMe|@`Q%|vSMWDJf9`@d~W((rwm!U z&^JCrTdWr^d;U)9%M~}(=SVbPJZqRKSx4CdgL&1QeA3gEjDRL2qQ5DQ?3OE)l!cH_c2C0vKM4=h!Jo-sINXS@!mxDIa? znHOTsiXz)Pn<8_Q)6jP*%x@ePA^#lffsQGEh3MyWKW2zu-2LpMY1oDgVN)pli(Nm* zf6tsVOL4h{%6I1@5~|}Bw$)AJt$oRt!<`s|3Ld+AY)%+2?PZpt(!1xVK~w$}gooSX zA1_vt%SMq^p4lZJou!3AH>U&SyU}NAbu(;Gq;QuP=P}r&mGvrLY63sDl@J>M)QB<% zgdB~7&Qn-$KjqPH%1%GA5KSjrVC}}DVs!u zgQVywPc?sBsJrYvA#=dqib=5uH*UfTs9A!xgx6_?mci{gE$qyj4<3(Bwr$SPBEykG z>fuW^(`jtD@3g$}sya(h=?^siu=}fiKXB#}TDxg+#`B2%4aYd+op2!Gsmxuy87yrf z&WYF}E66t&6^L@+yay~E$WO6S&YR=-zUlOok-{_v3qtFC_nuQRR{9rxvz{yWpng0U zAJ_8y2?Q=S>YLJJq$NLa{S|qnTd^#Chzw^{au;fi;>AEmc8B1f-{6Mye-63N_}d20 zU+8Q>QXC~HwKAm@24zFPd@zNa> zf#get4A~O7mwnjdOex5>b5jQX{A?_Sb4}jwEp>Na1H@_2{VO;65La$Ppg&7G`z0H@ zp_xHw@r+(rocl$ZFx-RX6x7M%FEn)zd}xY32fF?Plfadz_wyYLQ>DGPbjGS1MC*6_ zej1+3qpvEQTLNo|9@fzZ_lLeMf=#;4$u71LhMD0V?_n00rEb(s^r$Gz?_QHkC5K%a zBfx$~+F4p)dH2OEjUajjgESU8xX8Z}4E!_*cjj??W(_@@0i?1MoQvC=^Ut;!-=Z~7 zjA1ZwVGD1+8GIKlBs3&#urRHHlR7-jb1cDAg_(dd; za*tc-9Uwe*-cK%ImaPzhSjz&6EkH?>FSZR&8nB5?h6b+tr`K96tXFB5k6t-66Z_jJ z>?xf6THUL}8&wE%J5-a$d8t^pVATZ3+j1NQ&ZNZ zJQ(Ws09Y(Y3K;og)@PH@(Pcl~H>!^sueLNUwh95eVX4#YC9C8y;fE-o#$e{-&d)f^ zOS68C9TH_;2)iQXZLA}#*xGDouc&nD{ZU?87KH=xy@% z3ss=T_Cugp5TvCZOoT8fAf*=lToAz5%gyf;3$hmvE4C{$o2uC)b)U(*TrQoXID~3I zEP-iEEQ<%29U1I2(q^0-B1%h2aKMMODKv#w`S{XZ`KsRFDHV-=QRh%hZj!GOFj;cW z`Y=IVMvtwb!BBWr`kd!Pxo?N|UaM@p$!|1@&@0lji0qd#fOo>w)9$6}>3Wc4P1VpW z?K@CJyS!7D4S3FN0eb%XM6Rn!YdjI`eSP3lyI!w?eq_nuaw{>Czst=;CZz!+$}6cb zQ&hr5-(B5Pct2=CrXQk7ZZP73~6H^m*^1k zT3yDw?%tyOxO0X0(}Kv&CHD4$!=ga}{A>v6v)EZ~Kz_@^9X2CgJ({IBGS3Th?uR9m z?(sdj(#%z21B%D>o8(mNC2Bp`ln|P5UmC>3*F}aFM>s;6if%|^7+}X8xqiD>ZTKuqnWQA zg{_N7G&qk&2^9|XoC>QNCEh0J(nNTJRaDm#r(C8_KC^xFa`E=`-@nY{1zi zZaYc-xL7E1yskdlM#N4!4Y&OeRN{!c@LKctw+;oXj$D;1*J}CzUrsl0N+Hy2Z19V9)Hd4FXi%9i1 zUc~KIJAya(ZIBaWf4mUrhG|bf5C2n~`3vcDlxq9q9-Uy&nT|MOZH@#D^wcf1cBR@r z>w*5gk+)w!UwaGY(os^(2U8)=JSS{YUV~~9l9zMl1SqBtof1~A-1d|&)B5kc8*e?( z4im$y!aSd?FdT+qk%r!g)Xvw@5w5w-t%6B{JXVIF$v9mw&=AYx6M_vY9xRUeLpw|E zzfV*Nx2{Pt*#jff`Cl)|kxc?uzgK3qnA>znDP)6irdqEK=x|mVd&_tdrH%RK#Ic zDZ#We0sJv&>bTNi7tHs}jswGGQ4Pzzfx9zTXbBV8zX<`b)-FONA_7vvnW1~la+PH` zRMb(A;;%W=`}-E&R-kUnOb>f$zXpbyZ~V6sMhPbX^;^&-y&*p z<(UvZe{I(%{hk~jtBBdm1Iw<}3q>yAKn6X?o~C(UZHX`i1F58rh<`Ovou>G7gl%Ko z^xkb9%ChQo*s%LWaU?L-ccrJ?u&4tmwIPs9Xf^wmr#qJ70)J!P$b)s^!AlDDGOFp!x`tmE8qqDlw-}|2btUNAt*i z;@kR~k5M&csG}qp5m0YuoSuKLkR*$FBaS4*it<6m0YxDq(+n7@_66Qg_|p*{YZJb z-c4P!J!7{imY9#8FWY}6ye2Xgxq#>H((TY~B>RKrqLTsR%XXtjGok3jWaf(=URbA+ zsA^AAq%h)uo}V!t^bBPkLP9^?m-1`pxsr!g-~`h)D9qE=+>_my={s|TU^y4^#_{uO3XY|K5I7&3Q;It5Vqtrkt*jakKrP-2Tt zG4Jv^T=jR)UHASj+2BxHTO7Y+WHgL&x!^~ObmgiZVkMfOcj6_H%vqEM@5y_{wrmUXxU>Lg+ zftTk%*52*<@kxwLE=T+) zt*YHKgKRtlyu<&SPql^rVLiK)*hHz;xvxYM8jVw04sJFrmx;!hZ?-7 z^czpZydJ=ylfJqDe~?vjdbf^XQ+IqqE(eZa*URmLH%*xM>JV%|DLDnAWUMRPD`#)L zV+Ok&c(m&b0Ngj&sA344>1h)!8{IAS?-J>P<<|s%0Lu-goNP00`1)RA6tsQPT7?mRSGb- zx?qgJ_-rc*0b;iCh#p6f2{mm|&>l9lWKkRx!OgxJZ+HR$lB+e2foF%87r|d5=+}n< zN#)B6=*K%3!C;&1%y8!09@?Zfo8t<^UnNz3pxDz9AeEicn<^qr!E?!zdMUw)A#-K4 z2he`DDpETiwl5CIU`zv&ntpe%FTKyRa2VKy^+fyrvB9Pdz!N*EAhD+mnnulQx4vAk zz0}ao=3cem@;rN`Pm86^kW24BP8apGFd%CyOjsBj@;XpBE0X+G7O25g>5>8Xeh*As zU&_5mxc9FQXlUZ3WRz6P(phW(K?dwx0-ir|Gyh8BmH`DR_oTZw=7R^Q^s+gaaGAMW z9^6$7N^r$clBdn=FBdugWfRcxdiZYFgp$J?OS)8Xgqewu2rKCI-^-Mj}R!iXHx)txjCsK zv{Ov3drV=7Wdsg88y0^+)@BsRE=p8r!Tw{5K)9qarT2$;Qn)P~5r86Z;Ah>7?3nc; zXlo%Mc11-*IKOV0wtpolfEMp6f+I)wDuF44 zrd#(6OSc7Ox#^W%cYuTf>I&P>K{N^Te~0PogUWaG=BiMxeu<6B%a@(%*}X!BsC zVF-K%i(TBX>*k3@NxU#p6xqltmyu`t2NXQ52AyCcNl$`fOWew~y$nYIoZv~Kl$r-T zWFqlI1}3Q3@_y23xrS^7-n&?K{Fn=K@;A!-X}&s3Mr4JBQZv#F`lV<8=*{(jU@d~K zOyk;9gkpElXS^+UlYN@~*!DNe zbiR>zJudU4i!u$1&B_;m1M=UOyY`R>r&Y;f(;{<{>~I@r!Q~KPlde+V3J;h}D5rVU zHz7@1$SQril&%NPn{0WXm#{cW$ACG&ifrwyK_VU=&PFJ<*CpU`2?NGXcJk`btG26E?pIc2L~J`*Hogqj_GP26Rbml@iatvLjRFd`p$SPtN;b) z+Jv(wP9pPq!~QA^gvi*ySox~FL?>(0!SG|+Mh#Yp--VZVKe23Du%lf@pyy{8C6?Kd zSy`>0cA4R59tVB|G1&R2-c4mGz>z=C}H`ra1*$#qhOI%mneqW4=6ZZ!u4;h?T?-Ax7V8oMH=dgLA{Msl)kT&Q; zNQ;DdnM7aBgLx?*Q2cHeZ)a{KU@V)EzvQqriI>sxsbw!>kRlieVS8O;u5 zKJs<)WprMzzIuI1U2N@Sj*JRx&tw(NeaoA==t`3O;y0iP{dG3ni{s%G<+~}RxxM03 zOGi??Z5o5eyWGZCj_pjS1n!+#{{f4akRb_^oSLh2PeR7}4Sq+qY?S!|pV0Co;Q8sn z3Rwu}+>pB=IP`XviVV`DSa&n5UcCDkCy+nX>V%r31@5%qVZdySmO2F|2|d@@t0N^w z`S^>43{WKLKnmx2D@#>D}|?oi5J zj~Sdegd~0;x6ME$29h=^gr+bQvpIuW&3VR*mnV-%)`c@ej9G?HiL%ZNlgw0~Pfiwu zoNa@`a<3fTzt&lGvKtbf1W+>tXWdcYiD>==LOoCWeH~AbD!L)`z#k*IfgD1#n2$)l z;AAGxe2y4R1808A8YgY}tl3O4>08e|gGZuI+tCb;s~5GGypf zmYyVz027^u0X_IJHfj;K=Z=X4$-iMDREw2r{@}|>KQ9jBgYp-0{x%yfy2cX8?#nZ| zaZ13R_*Z2205HJ1GQTEve8Ssz-x*=lOkq3+^RpRVkHyk8Hw(0ty&e5m^`8vLfk^*M zCId>TwICLs%qqWFK zhov+hF_$NyM$;>H6-^x^uj?@JAoqv^2GM^~sVYlW?cT8XZ`w6wBKt-3#dwf+41oNTmdrw>(_t$&hFWlG8qL_epmW-{c5|1AvKTGq+X+Vx&jTKw{hl|d3A zy95;>XC&M56{A0`GFE4xx7Cla+y+ot9acP0^2Gs$?=OB$A$(F&nEQI8_Cv>dr6#TQ zJ5xSN$+R0b0(`?{=T9)47&6M2c08h>e?x=Nb3Cq>O>L1o0A(7j!h_TW70i-H^zK*(n1m#+bdG?Vdmgl@kU!S8W-b+?(qG5IR*+a~;_l{r?%k*n#J~s?r6PGEi=X8U;9k68vrwmd-T< zMAC!ADTP)EjDEM@A)Q%1Wjukc=Gh=gz6%Y#v{Z$3>;{l{*_0X7YI4OrGtesXUA*U% z^=Z4zU|LUn*!ec7>00OXL;U7+*4VWR1{Y$!Ekcw zY@br(p7#3@{EmRf-8$tx8lZ*%*V`0b*LlbMsQu9|{n;})J3AubH;q(lG3^!_1P|~^ zpxXt!kfb0AJ&4uQGnuXHdqL_`&|p#@{zRHc$i(Nk5^1hTftO#L`g&L^0TC=lmiEh$r$qC$C5mHNArOFy}_;hl@#d zm^23TddR-#HMHe9SraUklSvu!OU%68rKHO+B@n`$RhiErXf4sStG+Z;i=i#@8P}f^ zu)JcY$$#W8CL>DBu5X>MUz+m0EhkcGEVpZ^mq4JZ%Q0eQcxrhUuvha=9WB^*;U;8B zzZ!V}0o(-GbngQ?=z9iXXzO)z3ke8zsNuK&BGG{11(l#qpH~zPh-TsP_}r#-Fu4gp z^iUwZhWdMMs8vE@TC_FL9DaR9U4RHxji#(_|zQ!nM=?My^!o5!EyZzJ<=J$z18B{v$W#whu|#VbGvC&C3I-JzOGW@&5vaHI{Ue9Nu z<4@9wIN5dUhBu))Y8bfBg&20x7!(W#VZ-@4wtirN7 zp}l$Xg>HaHrE!(dLU{5!a3!A(S|Z_N6A3BC5-Qs!NbT0&6}q~1BOh$2TQ%#$2$WDn zz5GlYWJqU4N7?ADp0Ww*)AG}92;M6Cc5d^GQh*nG%}{6}9*{$7|GP0__VP~?UQ{j2 z`&O-9@8lpz?Yc2w4g>9l?^@{^^!4gPh^b<1lS3ix71C$YuXUVX=`vKN2v&EDwI`fn z-W`qg`%QPe$D4&=b#1=)NTC0a(f4jrAQoD7F(*k-Z&zn)Sdg0_mG1zhB^C2Z9-*HL zaTEPeVdGZTu0BB%6HXTmgA-`qEzL4|)G>9Ts%86bk~=0RzcQtrB(+X)fryBzU_3zsyRB=O4$PF>TgcxFEeFpX6gMX)tlyhf`5jg89*zn5_rQ!ThJ{ z|0hI*6lTB@jCFSgeyofxg~D;X*vMD|j>JX#uN&Q!O9sx|O!5ij`xX4M!liCWpK+ID zx@!{6ytIg0gF0@$B6hs{=OwjWPwZR^QDe&~3@D&K1+MvJgWj|!*Y$p73 zmY7XU_oOyEf^MiHg%vWbQc;k~XdNxsHBKXRsxKTv_T8u*n(UC1`xJp{=NvDrZwkIl zSyX}Uj+;x_-q@BC3#5pTjn`Kn*tu~kI*HUc0mG}S78RE4K}=tUo&dbwO($QK69ufo zqShTfd!*TTHky{M*?IaX`-EOf&jkfVf>qFG`IQq%x$oG)urhQJxV8TSL%qX)mnr9W zIUo^rUdW9VF@YVf;XMxW#xC#O%T25ZUASjD$FsQb%`Y8rqg;X;ePIQoy|^)G4Ab#} zlfhzmPe-vo8d*L4SRmda_6Do*L7upsQgXy~#K8(qFa_-M(cN($_=-zc+&Qlp_X;e^ z&=J;9H@}gBvN~^!RrAkHHb%|2z_1uOgDQn2jO@S%fhRLjvEd#Onv%b7q%y}D!(J*% z)^JM4rP18`1<2oFkROSpF%=;7d*Uw){DS8RWPjGye8+9CjxgByUG-Wy;ntuPmHHTUBQRVM;$hLq`NtNmi#Ga? zk@#hFnTW-9V>og7ybVAygwRW+SbY)m#!p5sRFRpyT3$Btc2=|^>XjW4eAXftLf`v~ zoS$nJRwNPktSw?1FSh;g(Nmot&xr%xfG2{npw_*yKg|LSZU=|!gE&B)`U}#Vx-N@r zBH+{x(n!B;cvZNBlregqO`?GYFKU+JJm&4sC1*t){B&-stSk4y5 z`n)I)hom7>)t>%!dp#}#;-3PxNKwCJALzU6y^kls9d7?t#ScMoy_C}1e$?Q6Frc3v zP`eCwxlsa)?cy@kJpAY&N^aPdG7nPtali9WKX?QdhyoY;pOg6O`qy}p{{%HYX(GSiT`+I5sd6*em!vzz3QxD5Cf!jQNi{{Hw0D<#K&hDo&N>L zVSZK$aZS7|8|qL}npTfyr*kFTaty9vtl^_}m?8@&ulxQtRSPRnZf*OTSicx0Uw=xn z8$V#ymNagtKazs@1g>hY+XHM^I(ca0m>9o${WumTa@UV|bsYmLYA(=(Bzg;Rv`)*_ zt^wA*O@$K6%^x$az#p)WeU**;T?^~;^X^mI0O>q&#gF?at?|zOlq{~%DVr-BRv_Pc zFb;jXW7RTMdwKy*NizeHXcLrro-1c^k4>igDWJ!7{BKDZ6H@t;H7XPiBW(ig(kRI* zZeph`lVU_14DS~d`SjU|H=Xsn10>c?23=IA5B`oYuQ!@;nZu%o;=0TOaKU_XOfEx# zI-@BzLm9D!TkKdK2ObvSiu4J23{WCrHdWZz@>fP^1K;wj_+LGsjvDh>FpOnKvjZQ9 zzv-ST`-fp1tNCCJAS>ApVNIQQD{7N7FQI$Em^n6VCn2~r`Yv|TQ=bp&o{VV<_@UW3 z3j3Gd^9jxhJTNPbT`2qJT(d)91*qBh1#0o~Kf_4Mp+>C3dxuI!W7SEd0qKkU0o7s! z+~-p(5Qz@d%OI0Krg{}o;R9i?Y0g!XAbe6EJ1e)B$iE%^&J2Vre24;j}EaH-aK?tUSgt5t}jTGI%u|N4POM}Lj6d5xZpRVYYIh0Vg;E_T-BSO6jTSOyl7 z6(yYMGP%({I-l1mX*LtqpBa_$)-Z{vdB8XiuXLLMYplvZA57a+E+!H6z+k{o_cmAk zlSr-fJ1R8okmrQ-9KSYA?#&W9Cc7O02einPCC|d#>aPI`zdRMYa#Y+C>O}9M0lY;e zO?D8zS}F)EWU1fOAVpQZOhs7?*L)`nBvI;lcl_zWXXcT_l2#3gc!S7rch18h+v{s! z$m3uwP%$7(@iL5@LMO`C0H1|?##OFt)TuT9W&o#af@v{FzwWHQEpZ=Cvgy(7=Fa6$ zpa0yo0)vh=}UBCtiaYFd$gF_}^Nya9f`>q`->}W@xe4=(WsC zu>3(h!fL9TM#j{|v4y?vbkCxM;!ewYpZ zs3tUuO47B?T_b|m`=HYd*?2NC7$u^9t3E=;5%V4CMifn23r25&(ujh<5-Wj_xhKhC zkBDxneA>$CP%_nSZNUhz+}nnITBLT9L38Bij{_W-CVQAoPw`XBW^exraWl-`)PJ4v zj@s3?17Txi3^QgTErfmq@Wb?sF?+0v@uIjZXhuSpbdF%lQzoIiYnlM>fCJzK2S}pv;Z~~R7fWajiAyq7l zu1P+%s;H(N7nPFH{?S&s{r$Ol>2bB(h3lg$M2kB^69(iZ?N}3y?$=X3DPG}C*5Wj! za5Fd6Pjis0K(h)yXj#<@9t}JfUv@_o?_Tl7VnS+yI(<7&q^F+G@!>gC8y{zFOx+{A zB|OZny|jFQhSz0%$S6dJ6ijR?VQeIx6IJLt@TPKy_ao+5JR3-y))L-;xColIGhV5& zKjjFP69@U!Rw5$9Zn$F8&fd?}v#T~%nDTKhmWXQ889^An8Ewm&AM{ieARfldNt?%g zeSys2mG@)4Tu5KiYYB~C#MegFx>9K1WMp%~M>%2^F#@y9V@jv@Ic$s13pkqzTj%^M z`F{Oo8>v&^UA)#QyG@S-Xdc5w6xJjhr;ZYyxpu?v=_*9B&hPz5FonyHgL>dN{*1?Au?RHJhC%4_B{{wH_%o0mSEU!V-gPM=oL6g!1E!pdGCp4W!a7R*;co z*m+1c!|fI8J(ne?(L=$x9;4_K{T4V>LZc9#>My{@^Sf#a(D0^kae6TZk7`_4oMLjI z1y#V?p=AI2Ljb$sFFuyVsk*CaDL%Z>OXX|x zu}LT4yVW!pbpBkV?P(GMF4v_6Fn#W!MBt+W{8;6T?Fc5y;`I*ohW-InjG-%#n}t-G z!4`=j){f~0CowvdZEkndR>&NC1Ve97b~!XI?6xobP%vJJ($z!|4f8!2q+*?ztUHeQBue5#yCVEUHuq81IVlQ`b+6k_d!}-c~JP>UpvBrrC+mV~97MB?Bc0~Kh1jRdEX%@fsvO#_C zyZ%O@t&R~ogQj)e##XAoGP)c9I!#(&na|mqS&7YenMU!J?U!n^nr3McqYy+a*XCU9 zgz*O~*9K-44nj!>g_dz`@hgU=WK+H3a(e&NZ*X$>$pz*9`iwUNG<+0N^KFw!7fxLZ z^u~y)V)hr%!V@MGljJvl2q=#SAUlmRW%rhdyg#P!|BN$t-l8LPRl6#0= zALy!_#&*ItL{753i5c9&v{4^Qm2*%!Q*8uytM3d2&?r4Sx?O9pLEc48` z9iww3po1l!Vm3zD09tqBqg#IE{8Icj_ve|bUgK+B`pvP+pv#uk`b$&c_UWgYN$LCz%(TE1d>6#H^Q|UQO|1E*q4#Zm-%EiB+H{I_dBu7Ywf#{) zw`n%yIX{K*-XUldsAeZJ2sEC>5|7TS#XXbWgk)WH0j}3Q5Rqi?7OS*ekmk|H=j;>1 zt0Mb9KK9`mtFOo^<>AwD;*XRXl9=?z_IbR^!)cSa?$PyJ-IJSyWc-*egx9#LORYy} zmjhtw$&i!z$@TIhYOhfQ@IyJg`_U=xbclssp6&b)$dSG&=R#9m%J5yj78uiR+g*=9 z`&v|f+(rLCL^fGaQF@RWevgDNnXL2Zvqc9CRp}Y}yEyEO+PjGGC-w8#cTc9=6q-#x#ZB6^xl(!PW5B1RWt59fBp+1zhb1b;8CT0Rx($UWww*qTjV zS)|ni@L|&<57xfYda((5sTe+T0_smE?yZ3Wd%{ zl{cG;eOYjd9obFbDoXx7Ti_ONu51ri27!AVvfbC_ibt8g;Uvhf=-tQHulLiGzqd=1 zl=W1HUT=fxkxNa87SV2Estj2@0S9@Ex*Wijv}5duj#Cd^B|nr>WLF4$`RsO(4WAKX zeo8~n{qqMt6pwA#Dhk!4mM*e4ZFICg*GF|LpXM*0;tJL(F6J1Q)ny%RVbi8f&RN(? zKQ@Az9ti#?$%eK`gw%2XjqxRfVt3btPff2L_poNrNrI1Nj%OTqKr2){G@M67XMQoF zPuF4jYd)lMA6MCc#6tNE$t#!=a}s?99YH=f`i%(C^m7OR1-p<38JUnYKEhMpgFwrI zK|l-iKE8weFMR`_z4?qf<*$}{dCoB%9;LAz0ms#U8qRGd7+ptZY!gDArHe>YaV2q^ zKe->n_bGZ?*(AeEhyD!!elfskan<|{9P0>-Odniw8Fg8E5Nv`Nua;10#Wv1Fq*%rE z?-r%QECZgACY{{Y7baHUl=C_61WO*zx;Pp7mt*`M1kZLK8Llw;pQ>{X0^mqB25_@)`S4#13h9b|MJ}@~|ZAu1Ew25Tn{Sy+_ zHJWJn-pmf3Q2NxZP9+{LlsEDeP1YGpqZ}ht)9s_sVN$zk#eTi<_TGuYH!+!o|o{B9-K51|w zX8X^Q*6g+hbaduKr0+VjAHDx9)_&Zne*>udfH0{E$jE>xo76zNnu8c>nl}(p8j(cl zjp&pMOxHp|#ToV*Wry55AR&=GY@P0(_V}%q zrs#fOrMdesG+S{FS{x+ON7D~6ruPB$ry|KKuSsmWZN9MjIXZ{4X+$|e6|xl;ufc$L z;rz$%wm$MU;EcO&bXy=GS}?dQrS|at{OWQtO_Bo>HuS;%tF}-l-chCjYY%IHg+o>$=7UVTILc(eTfU zIK=q>s*Yg#^5tS!GHsMrajBdW5)4?Qui0)eYP%e6k`PTE%nqq}Dy0L3FwM|I866kt zaKpi7VhT`d$ni$FZo`IMi>^OljBXTSsQxO6p$(T>5%%YIWhoB&`y7Md{9D*iN|i2Y zVyv{9j#K7VRns*PUbu{b!0#;9$eVlWg|XO?v;zga)IJthED#}^08q%REJ(A@Zj89rU6;T)N$|NV-8#HLX^|1ILS9NeS(U~d*=YD zh-W0Jh~JHr2>C?6ee%DGj~SEnf?j><;|Ct{d4~(gp=__^SY*Lf!_t4iTjJR29$R!* z7+m93&yITavWGgUb!}3Rnu^(3X`a#lRyoOTx@adqSO3PcJ!@U`7Nc|yoGD& zn86-*(Accc<_Pk8)1^meER@?9y3V7XQZRkmcmJ1uH$g8O*3?Mp;k7EHSCj0B0md3o zEvRWB9eo5Nx)aH1pIwb((R%qFRR8 z3}jV^H*1A=yo9-CiK)YS>}-KzBtT3gMYJ7F$ulHx*yZ<0#@ie1;?jkl%P0`$p%*c= zDct@#TlCzL66md-=I6I-04bFA+IpTFYzMZ*3+y6yK*gL~RoQG(Bhf>s)YnaqE?ZSz zy74uE4s?Do^BFL9@y3eG%IPbvyJ|$(NFbDskwGC&{q~1VSP$|bEoRc z?{CfntiGJj2Lmufz$Y*~IE=s&PPdd(5U!9$#D6;_fXsHGYSr~_#2olzJp>whMkYen@{M`eYwkIH- zVwBaP$A9d2g$01sbyT;C5*dA6c_)VxE_?BnkW>U{iCNVPK6`_?G9?={tmS1GxA~2X zhw5JW-#ugRuCJLDXCRk-PnHKvg}~pkv^x#wUb)j4HM~dVhqwlUV>_jSaeZ%(wWlv?q~`G$K+St~J&Cyyn2xnc*|lOrhj#H; zk~<=8Jq$~cJqjC?wym+aO=hUEWk#U8_~6@{Y8TZCET-mu3WYSzPPS>O^Jg|$CSzNv zhA_e-ELIKA$Qv+faIc%sbyvKAY!gnhMP$YckDg8cB?|OqDVnu-O*8vDrE8=#Y+e~V z5xVh%bl&NWWa)iVa>`AEi(iLFMU`PzphnWDq7iJ(;7~;Xhw%KrngkfN`hae1On?*xA2iz!?0oGr zsON>A%j}0(2*o`i`=(DfHrL7%`20;2n0}5!l@P|%Z~PCcVS_Q<0bmr>?ix`T3}w4# zbQLS3ChHtmjV0IYMkQ1ZY31+4IXG{_f$oj4Oz|Pb_)ppD@cpR|;}cWQ?&VVx zHaa*iK@4f^a6$9a1C*UlO3m#{@u9l5K)wwTv_KL>ZEskvc|cQi;LTqJzhX-mT>Ckc zc(w&i79`%}bLqt_Dp>Ika%Y|p2z%c6GU&)u9|W{#i3h-$w8&wziRvwIEb5j>3{!6P zMOja2a8t=vAN-uvV^Y7h&CD1v;K3Knwc)OL|@ON8ELam6sVon4z?Xqksi_u&OO;MSU`BpR&+ z*8{T0F+8FkPY*GVB`2QY^ow1$9+k{PV3QTq!>;!2+E9iF4qq|(CQd&n=+*jho%v~t zu7~rIP|QaP!3H*=pmOj50}Pk%w1L7L7aqGVdp)`r)R`_o@ElC$g15cG-BvXX;;9(! z7;BIuK)*^O)kvz;G23kAl*24fiu#tkr_0=W_Ou=vHxKb{DL>K@A`77+=_zt1_SFM zN6^f%QZ$nX_T65unN~f96wiJBi?YK(GqIw3A=SA9myF6bj3cb?Ely(uU}9<~3KEHo zj3Fr((lmrMtbT(+7;+Pt<#&?EwMwjJO?A)d>J{vq?rk837oMjs#w%^@7pgvxo2LqC z=5K~Y+hS?eZ)JIDJhu0N*dBTF{s?iuXk(DrVS(wH3w*k&`X!m=b{Nh2z2o8>L-Tmw z)E4R>KCfLTfrDV9uU_*^72`MOP1I^vcv8k=F@y$G%j1w8p=B7huO1*R%xHT5_2gLk zhqxG_Y%#ssK#^SzAP9!GQ)7z~QSe-tngn#d*aa?L9lGTLH*qE9Us2446=Z@K88&fEC4 zHelB31$Q1Xgx%9_u#wzXo#a?YRjX z+)(!}JA75(bNY`#l|!U^I)!Wr`bzh#wMcYn#F(m=nIlOPK2yC5o1Z8h>K%-tQ!oL} z<#iAv#l5l#k30`KWf*g0({rU;MIOuX#LtCKKk9ylttea>br_9f|~7aZfCgk_zG3!BQb+zQ?!Z zK#(D@{#DrfnsKT+6$ZPPb``6RHPKA1s>*pAi?1W0hO$Ys+&NlaT}*Nj&&zLIE@HSz z+;UTGo~DN&>-(wMi?x70fL7*QN3k!G&V>5+KPm|EMcXEocdbzFQKFK*WM;-s^QA~g z7!6{`B!8v@C^YjR9hU~(5s-49n(qus};$WP!&_z66{UcE!EUIr|( zk24WAWc|C|N@{VnwII_rTvzR^71hp5%7-Q+P@gQLaltf`umYnlXwTLbT`k(5JZ4ev z_O?*vnTnp%0TQb3C<+sC0hB;p8jcY}IdBl%fy64mnmo^s_-iWXcYfw;ma#}t`LobY z4NR;~DDN}&7%vM%+x`!eF@crw2k#OS`Crl(*PrBUUF~SYEy?G-*mfctr*ECXCEL3v zoJl(-U@{aE6diCbU_ zOB($<6bVx>1@ObvY1<6Lq%HBZ;Y=j>{f8~?K3taiqN9>mm`$x%0bYpTN0*o$_!`Go zPrclh@;wxrhS?lcYX?1|Si^d%wQMj=LO<|Nd8gT4I7zy&eJH)DMzFO@H^N3J?#?<> z4uQnI8oxrq#QQ@u-I}T@RK#{HH4;@UCo&QFOQE`wz7GJ+Q})w>bQjDeh(MJ=Z3g7g z_sKq$#VBfeDjiSvw}~fEPyg_~jw9SUFkmO(;$wSt$&z?KSk0N@1Y+UmJNP%C1lX#9 zNL2)=h2v*-iIDUn(se8x2I<+x2LR~$W@fjDXqOB@*iA+d9Ua^RPXla;tE0WJdTGti9m z+djlJ}QmBUaIj_lBk%cmbfY0=;@)CFUy z&MBqV8E+Bv6qG`0xGl2aV+m)i|8jffK10SxnkZDZ;%siKmo~Zr+OJ$J1QCuhMQwP_^6n{d+GMb}xJ|l+4gZlkKH}L6&AX zu-VS%IM*2RP3JBn<_YY!y$-!X>Maj4M$Q-^ ze3~1_0Pzr|jC;b>zY_hlM5%)^mA;NjKRJ$B!FctCIfX^rxBl$V`7lRUG-#N5 z8qI>gvM;z&aI-v(Nj}G2HA{29iO5wE`Pggf$9AO{Bc(R+qx{E)TD;$dEo}*yl2)Aw zdObU{Q^=RFg5w#Hw>a2{DW75iwpWeyAx*@6S9MNRZblsdG4TOd_nJliSqzhSEF3Y% z(dnH~RB{_EH=_zow8iv^`Kpfmy)K+KJCi=w&8OoK-kC*BYljZw%tA;?)+YgVs>Zn!B zq`098EpE=m<@tpe;9hUf&_wh$@Y-=Q`TLWCxJPzecO37M!6+ZhfcaqHj4@ zreMEds6gFX#iA_;+#s=WB%GNWpmoN+#(pfhRB5UZmcT=+2wIaFV9 z0?xciQmIk@P$CINGWw$6dCDo+zxrI5D=~eGsSiKWj(q)&>TO;Uxr}pb=otwPPxA~t zTA_oUZm({(`R4gRUB&V{jr%v3ACuS}??#|!BOJp1c~xb1W{-yf^aDRN76!jCh*6CgKI0J;6J7$$oM)QOjI3W=ToCYO z^tPWLBf-111spmpd0JPTqBtov+D}5%fg)!>>usk11!$~RZ(})_kylBh%3H8xq=19_ z?d_ki{^YZmB%$1incIiNMxbc(Z3QVG#r!YqTZ+jF<)rY}Z>&LF>GO1yM9`RiBDPBA zJcoZue z4o>*9%g?vErwc76)`^sJ2r~FXCgE|VU95k(C#!}RZ=C}clUF;<@=UG~A>_~*7^yhW z8r1UJ*YAQxc*C5r;RJzYSeugN$LIr=1b99OL!$!EntCb|3qanH-a~$=p`!vTkVfw#rVMIJ_@qrgAb z=_U^RFHD*KMWhD!RT(%s?lTKHN#K(BzHNw`6&A+r8|wBTCM?T2MBB1(5?FpvqB3@= zb;AMcO@9SEn1Xg11|RjjS!EsjJGS0(4z4fq@=#A_N?akpO97{f((9;bx$54tTC7EU z6c>@ol-bz0kLzB=baxbF9KZlLQQik%!2ZdWtlUm#rAZIwS4j=|lu3Rb(?w5j*^u3c zd9pZxA)lth)(n9;D0Jn-EWvciaAKa`z*(}tA5*O%!zF~H;UyX^3TGbO0Tw-UwK>bO;pg9yJHBmqlvBx6D6fk6;6jl85tg>J{oMwjt)DNyp1x)@AQ=<7bao4$y+6j^OiNW`LOZ49_p{$to#%8ENTBR4f(N8PIx5aX) z=k8U4C<$3?L*zW+bYU$9(AOQjP_hTP@6|O$;$rOs5TI%-dg<$92WJDaoelip1H%`3 zAk+)qvc(Rwc7n{6hRQc!LS_}=lD~O|U+>nw^>bLEwaT+^*b$z#UNVcwMJKFp@Mr{$ ze4ME19F+5Qofr2Zd`@D@CCJ-Z@_A7(7!tMjrC8$g}}S3m1Mjc=&*9pznt2W z+)ur>D)naL@q!51&~hKz!)gtMz32ema8c-RI*#$7q-u~Fz6MyCtND~?<0#B@K1VWf zYZw&%t$5sGv}DoZ>Z~0JP{K^T(jbcOaY`4u0xoE`IdEI2`apQZW^=HE3A)dOy<>D{ z%@Q^on-ff&JGO1xnM|CCZ9AFRn%K58v2EM7ZG6dd&hxJGy?@>xwYuu+s_yFAwbx$z z?tOP9^Vn`Ks5`zT?Y^tX_0+3evCaSSUy@MH<`?%h3M1&y)PUb>aH)#d#Zz)f3cM)V z8u1~-*TjlDU8!uFf>tcS>=+0!mLh*Ara68phZ^{4ZTza)pvhIV*FvUjeF6~x=LCAi z=G$2Jjh!&Wjf3+$-&8J~!=J2+XJ|7F8ViJ-riz>1o-KJmNYc}VY^@Oy_hlQYWYE-4 zEGPj46i66DD+7B6J40Q|FV0%e42FRXKo9t0xVZszg1YvGqSjUp06HNVMFx5Rosz4K zA%N~b&<{sFhkwK`kl{b5u%W%aovDq3wH<(g{c|8i7&;YG0|yg(00Zln2%wYJwRaFQ z(f#aaWc#!+wfnC~58&nf*9S)W|N5W-U}azcursg#*jO0=tZWNg7gZhuom;8_3r_Azsk-zw_0R5x) z8LY4N3;$1`{?q=8eL3^h_eK9+2#(K-{J%ld`aem*_&D|4%;ull8K?mY@0mbu%!+&5D`N+fFNE$tEaPWz z*+0YkU-9!AF|xD%D*>23efV_hGb&%xeyz;GP}orabNa6d{(F2fYS`w#<6=pEhk$qXj*sFHZP?nCvo~lJzb~(5}=B1OD34a0>C;jgRA+- zF@vdt#96|P@kd&DTL5S6vN$@_?iuOW*xF`8s&h=PETOo3>Q;>Z9?0wAN?m_9K&uQihyY~A!ffcW`m1jY{dNH`lZ$!kn;29cLDPwG z3O+b8iUIci`@sf?(+?=}UKT(XbpYy3=t4^RJ0>}ss1wLQ&j|jbmTM7?@f{I@ucIxQ zia!+@$5R@pf1ty=y$upFDJG&We`V&j1MksV<%0nRdZ`hF`%qOC*kRN{8i-a_76=lX zsPklE?}PnayYQoi5@_t5wC}MtJFl)9{`U#rYFFYtn>Uc(%?7Z*lXJa1@H;z5C%_mq zQXlE}HN~kT#u5g6*GJO3H{^%5)O%&L_v+pU)$vDAOj2zAp7u_hx6I>)ZB~48{>lbZ zr|s!3)Ht*nwvCbM$AqTiq&K4)x`DyI!5v@EpGbZiCn)t))%OQRU^pWLJ);T$5jc~W z(9DPbo$<^-jgrHTG+ zlG~`oDNt4$&m=sa2PXvN45QLjKw%8>h(4rLG@9K!pzd-CTf?)Le zC@Xi0ooGXl0{KA=PG1dm!s*B}fb%d_0bv;YR)!FjLstg!3tZw0hVRU}^j`#q8#W@H zK-dIwH-R0utD5;>vGr9+;-%RF5egz31luRK24{5bN0y#me1!I;z~W0qBsH;k0#m~$ z6pvx_FEN9$iMlF-=IA_ei!0ODv@RFQ>RL<(}tK)+X{#mB9&T~D$-6q|&9_tiz62`*OrHtZ3 zwdtMrY$8{+>wM9-G`)^w@G&|5$oiy%)Q<<0liO-b=gI)g-N^jtc9-&GM}Luf;+t|6 zUx8J9K^B>|>e2_HmC;RaG}`G%Cfg9qeJ`$o^^E}#7w|cD#vjPh^{G8m9O`tq$b$PU zV`{{zbf$Jh1`EA()N{@yj{R#(h^|{)vUdZ6bd=dmYmBZNY8szW75~UjCu0`3+x42S1Em0!sOvj1l-^r%-H&tMB)s_34->y6JQn!J zRyO_DTx31B**b4WLFuTJ`!cjod&Z}Oq&x2vf&#Ip=M4@IC$|{!WD`#{v^?&KUa6m5E z;`DNj-Bp7);;WMQ#W{`KsgR4`k|X^~Q#Q*u{EhTaXtvJ-XRyxD)ug&^Wb4ybyJ}hY z>13o(U~Yg6kRveBU2&v5umjIXRX_5BC$Ef}luCM!>eX~6xa_Ic1B_HkshT8Txqa&- z9iD)J;>`);41>dxYK``M%WPT|XTXBNwx^*lAIi8SEoRzF?yVJ2DiJUpJ&e%uZcE2x_(Caz-h9YhRI$w97(Mcr`cqVZl zzZjOQ7GQ0YDJrO7$VF|(A*}i%EtE%p0sTUbpI(S`tZ<(F`&+4@i(r+JUQ7VC8EI9-xGd6MGF-hoG{mhwb+AO z9u4Y4D^3ld28OBhZOS%0l^`EY1<&H?^a2Vy8k9}%uSsdvL=OtJoj@6NvF*$8Mx&+d zfh;d=l~%PUA0ousfTQIdQ8>sKEJ}DE8c`}3l)tM9@))c1p^M{;|5$IEQp^y|WO#UD zd(x3f)eGU~J)GyyuP*WG{y~EnF2Q;y!gkr4Ksb}P+8)5WS#eH%{`$5SozbiTLlaiH zfvhJ&d0byBypi1^UAKj{lfBs=6<+yzdk`tffR@L76tkvyZ*9QUsI^Hnw1HTbX_d7^ z|EsN>VPWi>?IKKU*e~brg0d?);`s4B#BW$1KkCRs`kXl?zG*&8(4}K>R#t8z&sSFZ@py09&YFu!G4Zo($r|3 zB&P%!lnwns^X|mVM&t3l1}f3F8`xzZt+DF5%GwI&^K>-K zVh_<@Tr&dAjbhI>9Zro4h3na(_L!INdGqY)@15yleuInXoxRQ3n%(3vhK)UucS7bN znRPaqn#>u*0nO|etS&1z0j!@TQTl$(j@K=)&GO7$tp2*R7sibSp^wf*J~zCe#}#$e zKQTjrP*A7`H@{*PbCDJ}i19(2T^t%EDvw`McvtswPK;T@9m6}m+-tiO)8NLZ?ugEz zzBRvJ_L~&64kNhobsPlnyeePDOx2~dQ$x!XV!nm!R&I7;li32x23Iwtm`7X za=XoMxCx42@&i0?YSoBxuhGXeV!iBVAf@rG-+5`%N%NrsoVxKWj>_h&;%S2>oBnL~ zq*H8|?|OazasMnSdB`hsMB_*SSn1; z?axU%7U22=?6z)s+6s@zZj1V(CUa%J8WO*>TTE-5L5-M@pZ zewUF8;s2a9y#SKrjY&*At5#M7PX3Ua@Gy}fORUdLb0QAV%Aqg1JfyT$=O`(zq5-ai zPr78*&=7D0mp+ex31GwFQfL*sDuUuxVdD&2shJGkAhMr5(`68#v(;cw_S(9bNYwqa zc`BNY4>N2c$PQ-MV{ik`>LK!G+K6B)bMM+uPS3JoxDOjY6rd?+h#Rxjy3evi!oy{b zTLK{DXzvizMDATu$!lbZDP1*_^+(;g7IbXO?bC{4U4hp1W-y&oi7>6H##^BDIua&a zsKOEVEOqMoQO0O*!%Nr3Blf*rOxttGr=(2$hT|onbW0I+*QI_k0PXXwRfHe}M})h9 zR-lth&cN{2T+q`88RTzig8^!oOf(BjpIhWFna*X3bYyEMFW$Acx?Zk4EF_&a-2@%u z1jWP+qDhXO4564}p@|V~W2XzlAs&I7JB9Fe-)#L%<~8%o(I`BE+&$EYoc@BT85Op}uE%yQSKCx`Wh;uq4Yo zCt*=Nim)0yu2O!YZg}U_Q}>*Vq;Z&2V0gA=^K@c6kj;D~l|ov*QG#92z}n;4 zbom{{jFeEss`3=$at0nvhLSP-Wb-{SChXjx3#a+g-aO-{kw`_*vmGM%i}Vecvub)MW{K%44aY+va$!7ngGsDYQND?6ta@xH$`Tq8%tw@pb6mJ zxS~o4>AX$@G^@^Nl3ip=mfOP8hws7d#44umF&q9+>B6_O)~<-LZB8fU99V#yEyf2K z&$9^d>JGaOY6(JdHLsW{d=Y`R^@%_5-R zr5ovmQSC*(K*DynCQq^<_`LR3cRY&)Y;ZwQh5Xb)XnXaTF-UpsudDB>mbh~!2`gr3 zKGw@H;yEVRYogcMHcZLVQ<&KCKxSlcN1&Qx6&b4Uq6>$8$dx?Z3?a)pqrFy!r*v=9 zTBneL_D;LEzW8)DT#3Od(>%%+Jfgc{8+JdBFwd(k#r|s|)~_E4a7gXtcE$s@4#8~J zQ?^!Ri*~WQaRIA{2KT^sg4?NpP~|rnPWxcE{UXZ#RFe|l!73!yQmc0gOi6!1H5vop zdoz}gycZk^Wweu+2W!31cE^djc{|FJ`i6^rqgyNa&{cZ|vOi!$8FJ+PvnyCm=@1e! z%eaOF#^Lmc+gzfnUF6F#ZBWxjDACbhOFC)WKO*& z?+OCg>y^iI&W6qsj`C@9329vT)@JscftQ3H*5v#HUduXog799(oQljCPA(W3_`!n0 zk%XzP&n7}I8);htFi(lw+j=?Qf4Zo{Txhea<9_(SisBn)$YeQhULt#bu zBKSHN*wwitgaE`P2DC`h`997gUkRCSWB7M@Puok-lm%;UXO7~9?zV*XK)0!KO;-c^ zjNA(H&TeWc{8w)M9MJ7!+nuNHL@DM{)qH@*S7T%AMHdfT)Iv+SLz}WjgHu9x-Gj}@ zeBTykb$g#d+@)sqA{S1y_(E<$G&(B0 z-(2z{xt#h;imPEIg#wZMDR4JV25=+x?Z8UZJPW98?Q^|}z<*=x`XH9T*#-re1_e8a z(^omcV$OuluG_p3>|4M{Z9PSPF)!SguynE{s^{ZVw62#n)q5`b2>&S_E0>L}Rq*Kx zKe+@6fHC)9mSJ68lH_cF=I9WS+k4fLz`ht_$b~o<8N(F&CUNsuGnMT!m4mvvdZ?OR zY$AD$>dm4yx?jcYM~Gp*^@^$rv1kbSu5~$)m%sE>j28)BovQQ!uv^w7($ZQ-yXxl8 znp1Bz=fP_k5sgCfoZme-231B^vF4dmIeboXh0j_~g+E|t!4!h!Q)d;~PFfWNbo@55 zxfd`BrB_o~)o6NG)k`-;Yrb1(qBYMc6J2;rI)m+d4>W~lo}=NwKrv>sOkZ)NEkhrq zuLEzEod2?{NScpt({tvnm+rr3)SYKn^T~q44eld4=&F*K6%9Zy#Zc>}Zs^H>Nwe^^sfcQ)iL=pzRRC|JlS}c3+qey&s&ck-PG-ihhI~0JxMiXq z%Q=2;1cH+dd&pNw2i8it!%dcH0RT`(XboF^$o*r1(@h?dn4l!Whqj ze4<29Q^%yRLfem*JHvVTBtNd)zfOfZOThKD{52WtzqcQkHz<;{IyliLO&7_INg;Z! zQ5J$mUH;(S5Jq81@3ETwij*t1+`hC{+PO-(0B3?Q>V^Jhye1pfppuW6L&oJn2r6jQ zDN0B9jEHn;?qJEVL%V+@uq4+0XraM^dIO9#?w@+~Sv8oZ&_<<_;i4-&;lswMdtO^EaJ<&)Dsh$pL&mzy*RUAgMhi?&C%1oLTY zJZ6Mk7v>+``bV?Rd(Q)ED|ybQBIfJVcElzwq4gtm>q8VU`cUEnp6h)wF;PWp>ObyX z=uFx4o)yCOIT>?rX#yzB(5=DXnwA%)IFHd#wm0)NdGi$g8KV*(MoJFf^*+m0R0M+E zL(g(X9b*rW4v;2T;BG0k442|9mqkR4k3O8n70=dK;!-Anb=gyap}mL`lMZDeivBUH zH8lDwyz1JaGK(13Umv9QoDJ?a?1P)#ztq=ityT(|YoKeYkvLavP$Su4Z+n7;@ z$Ma^KDN%pdtsbPrfN=Gt+B0uj3~}@O(8Fzl3_is7-&uq2!aCQ;*DSBDPkLlfou~W7 z+V>11c^HIs>;l%KsB=&$Gd`w)^+(Q4Dt=e8I+z#O1>aB8+V+zE=S4`Asw6JkcEw`j z=kGX$5NOI;fVS8cW6xq5tLjL_vd!!OIh$Yl1mL+qxHT&ndwRnvdtu)+WM_IsMV1c1 zq7ZBY;sPfVQ`O=g6|+@x_#}oCYNM-(eASuw-{aQ#b{XY21Hd>-0C_?4- z_fiJt6`rrB7%tx=v8^;W_HR*M()9a@R~aM|{-$>fkWv4IK$g=?l76{Q@4?2sUa4M@ zxI@q4mvYB9%^J-uVpKkuhvnQ~eG49kpvQ`w6aGW{y2oB!yRkKZx-;b4<*b7 zl*@s}`!>fr*6BAJaV;i|&bL*bmFn@47_?`As*f_v3~|^C&=p$32cKl-nvgy=JCBdJ zLVT3&-_wiP$_dn~p}AA|=Vd=aHp!O#O4RzzDHIF+BURX2p0eRtQ{##rjvFOo2?G)@ zDh}OguO)=0y@SxY=-N;>_~@LMBgLsG5Wca56ShkU)BK9mRpI}vorvQ~B&D9x7m|9) zQ?Rb9y*3|dYx!B@lGtJZ&z~0rvZW{W;Bg+*>4a`)nnQfB1CeMZz3$HEwY)PQ?y>A$n(+&q_tIjwNR}!g7Hl z{e`NvqoZHW-mm4BjoOxD%{1GLjC(9uKELMzpSq@=UaVYfDnGZ+V^DIHeP6k4?oMWy z=VMt&Bf!DU7_@t-50p^IN*Jwpv5{3&sJyv}UntqZ;uKr7mIovKe7*c{P4S*>RMrQ= z0IqsmBIoz}4?M5#A@S3 zK)g;;HG>qK81!5+Wyzri(3Xn=C3w8O=MnTz$zAcWE-cFNXC<5SJy0=}ppW5@Dkh#x zG2=ZbQ2hckSsyoZn9IGI;La|p`858F`9tayGYm2w0a5tJN-P`j^HWkZSW)amN|>nZ{*U8W_5);&MrUb~ zyZfHYzn0__W!XjQuVE4gdFJ4NOV9SX-O@l+%$~WBng{I2%>!~=2HS~{Ejh^#ncyc1$(h{_l zj{Lc;P>7M$D>Pdp#lAIlEwa9}(JvRUh|7Qj-H&9#mhM8T1ALa?TELkbNkinZMx?2= zj!ci{#E~E&JD6Gj*d_k0j16&FBPxCK&Bjd*4d+oe8_FRejphlN=!#K7n#HbUxBD+w z)Uhz=R0?xs)0_&98W_R-DbY8ncqM@!I8Si<<}TQK|#6T(V`QM541;oH&|KsKiO_ zt=YKFh0!>FhMsyQ=RSsX!c5N_`Q}7>R$1~m1xNwzwPSiM_4tLd1K`}j zLWe{?c5^JQ?}9XNObx(3K!jr*$Eh-Da$0ykjYC?TF-I42UkmNQw=a)^)5z+b`g8E! zZ>y`$7GctsVCaPVI%X;n<%T13GT4)SeK)eidE=C9bcloVK4=d0{C$0IV`SaUlFpQ5 z_Lrv~3ABm+xkZfEnUP*HL)yKfCcXYzj|K2Qz2ZeV<%3)5^V1EB;;q+Nga?gM0jEb|>79l%ermCmMLsKo4 z*AsF^H*Cl z?rZUQo3VkKA{#)f-S_WvFNIP?Is6H;W?KXWyP0P#1gPs$RX6QgHJo%flG}KtbeN32 zlts~Nf4l^?#C}pkZ@o2@S@Qj}ED8cr#D{1+T zP**36W)%zI#;mKB@=bZ>o8#{xw752tcA+#+O^GUJtWf>7Fg*1mQ)c@5`l!SoA3aeZ zPOaMgCsnZ7QFTCSCO|iov-w-y02v!R!YetkL|VAmEsu#=H6QYijRz$zru;Q7d1g%n zUF-)A%KciDnwpLyanGRBF3PgpYU?4UXyjyE&hzjI?l6KdiOZ^KyT^78X0g-DUTtK| zH)BZxvvoER>72@Sjf94zb+bq0fSx|e;IGFkcubUI(5?O(E#-t&U!PNk1}oobkh zmA$D}z{jtIrYws6ho=a^x&oz+xId$7&&s1+p8om-QQF#`@*@SKY(5 z?o8c_*8AIcnqYTUN)Cpf#k=-T29I-NOUqJvkH^gdBeBg6K<?J2<^fZL8Yrv;V;r4$)_tflcWu zbw0DH_iC>vSrik5+x}~0CYmB2ERsz}w=hOp*83PecUQP5*yh5c?$;V-L`)zo@z+nO zRknH^Z6Mo-uw7GDc>45}-fX&5-K(K0{;%o0kZW847s(tKdEp&Eq(V%_82I!c4JZ&JU@fnDvw54NXf^Yk%x1*DH|?>^ z-@j|fhvFJynBE6PW|>L@7CH9V4D|F)!_uLr3~5;pI>?sZlp7-6riGMv9K0xJa0*T% z=?OyN{Z~F~c{z(a3l|_*<5DQZ9rMZK@2-q@WXh>Oc-a}O=342Jtkk&VlWW6rc#0VC zvq1KQs*VzL%o%J;(f@YlJuXL&JnBO__rksB!VEb?_@*yqNh{Rvd$dC7FV|Q&TdkgC zDUV01N>5-_{IHO`GKZF+KLu^`&efA)>(N63z+u>&R|2$&kD^Q32`7za+n*jClp6R; zgC)s(q(l0ZmNO5K4AcclK@D!+eIKS%>RW6s{6-q-W2=D8S07YW<#>bZ4TT+f$y|3| ziO@kMkJi>&7k_d?<4_Fue4IQQw)~`a5Hv~lC#{GXL&bBOxynj`JmB#*L8MIWXPV|k)A>K=Fyeyq?YU8AAI8{Tv73we3Z`Yn=yvAiy z$ZclEE1=ReHPChDM|8myxH~;Li?D(W^&0(Rv|>A^_KHctY>2nLTQBc;{7_7XDrqX| z4u88jAlXdoQ_o~kbUt-zWjE5`DDYb}F{)Kaf5v$jYSiVPacW0yoylYV*Zo(A7ToW_ zPa_Zr;Cf8`RnB9rG!f?9GiqJg&V6{-dqISgSur|GBr{w+gEDTxkM%5mzqcoQV2tCt z63V|bsEAIVtU*ljvj;e3MZL^#SHvlvfpH%0Wi8mYQ8eC{6vgQoTT#zXP7U#TC57iHG8^hi} zJ031qCCCG<@swhl#Jho;DgzssHd9s#ePnW7rxO)3bX677z4VJ=l=z@Oae3H#zPS5F zf4Wv|U7+X;G<&BJ&F(xr;#apgO=ExR4C`{ElwS6oKKrbEQGW0Aa!d@HnVcklji{Vi zy|wHglem&1F$zM#1X*z^2j|09OVLqtY|_wXH{(Xf1bRU7VA%RQPrGDJ#NvYh8BK2u zu^4GZh_7Td{tQ4(VDOmb~ zq!89O9tw$8$kGFU&-zv&UE#NJ(o@>(pQ5^bMHJ&lh@)sl|16unG39V$0QP4!^={9+ z2W0;e7XMsztk63+#0f$+kK`6I`aV6nJq`Eu^O5f*iLH&ShpK|@Mh1J-OgF!Vc<1|3 z$*@?Xsk23#kl*Sv|Aw7=rloI6OUesLGJD0H?1?XkOPIeJ3^AIR#za6I(ne$%4Ey}v zY66jeOy43HkvZWc<1K*XsuDqZ7LHMA?C>F3CI~NW8z-$FUePyGXT+8G2E*|po3pUT zC>2utl9Cb&_Fi~qKe}ISM}6Cj{DQnHjgYw9WY29CBf+~amWj-1FuSgSPX!!M`J+PI z)Inb5I7laU{`|obE*rhki4%;8NsR{sk99rKKH_c#Kk&F(xv;$7%*$m%^nuK%3V84~}=Z0mNYb zQe+n3x)=Q#dpX#f0E@4ARUQR7N=oK*Ety%jcoZ|pUW`YhOqej@gNZzl2$=<`qK=|L zBsM9Ji>p#xmjp&k>z1drUTtCuA+bB^ImjA=v?;UV%tXrYO(@KUWCXK2kIX7a9@Gc` z_>ij5BR zZ!=t*(aRT-=Ag9L{7J>@38|u4&ajOZYQ$?i3Mm3F;NZUuUGa+&B3&xDcVKzX?{L$$ zC8nl$!HmEi6}?XI2*|jB?tc*{MSKKI48P&oz}9WF&sQ0(c8XEGdMSY3gb}q(KwR9l zy}7XBxo;hxXNu7Bo{WB=hIg38*D6*PaiUWJ`kE@(f#*zRAG|F|ts? z1|qiQKKI$YVFnrzxc#`=b35m?9VX!D9%obE;;@viwsJdN_yzj3rGN3m;pQjaw>O&! zis_}Fl%!|kiPiYzPSY*DtV;ah9K(lTX`QB+&Md{)Oyk$hEVu}X5V>f7xx&$@8bB8j zNYF+cGBSpH^`_-pa|u(yXr62pkDBKwedTm#6%^D4wgT8P*>7@SAt+^H$%gx3YZLg` zZme)^m%Y2S(Tya3PM%gAMLg=*ga@6uH_&4%E}xI$TbjlVR(P9lS-` zc)kls)dpnyuQMYayi9Q=Jr>#D+pS_X{q%eb&?XB;2x?Af2#>TUs7ZaJ8Jo1PCuYan z8r;lm$mpdbkv_L!SWb~{y&0A44b_bgk3za0lIF8V>})LH2mKWu=690Hyjv|tdIBv}7ERwCoJMaTMA$v0cUp^wH zhy!UCWQi6yG!}cUb{Z+1frzL|?e+phpyncwb@t{*)X51o+FA^)?k`B9r)9Y3b!)2y z(H>l`ej+j=3WT}cMG~baY-R`ZAVFp_nLHb@OHr8Y^QMm?!9d^iT4hDMd--XyxG>Gj z;cvvTx5Mu+lveFU3OkGKE5f@@Vt_`MJ3XteL;e? z#Q2QK7NcP}@Z`Z2zN$nihmF(trSoTLHB0m9ONr_wP5cUKA0*jO%#xhHsqt@d20I8` z0zz2uT%tuZl~=uwPLQ&&##9*8OVy{N%xinIUHO?Mx6Bdp2#t+iunNfY)MmQzEJ8|EjkiK;^yaM)fh1; z4AnIT!)HH7n(`KsIZ8H9bec6ikw!V(ZY%HaPP^Wq0VDkKGlOaY>uizuN{KY>^b3hq zuo4Mr?hycvzcLl{RBF>VIjKinWWBS`;b>|IV4g#us3fUnJotV z-ROww^n5sz-4g6C1Ugt5SSf-&#Nr9r1`PoCPVkzOq|Ts+B$R&JKpg|2S>@!*d?9FE z_^72JuNKwHjMe|8SPpyP+UX2AgPLPe$H*eVyfnjQrTPV}GTeS(dw0mL1iUg&YOVcO z^@w2FpF<=?W*pV4`yX{7`0@<=tX>Njn;d&N@IxE4DHklEV8hT&-^s5qU;3f9jFqXf zYOIc0lH^SZ#S@%r5!*+!%18z^`fr)_!u=EuSI1XZ=uT2fiU z#dj3m$b_7d$01g2c-ve@4Mm~%fKb|6Cx}o7TDlV{!Fy>F5$J?L53Ad2!yac0HWo>x~#ViiY zXCe4Hf;jQe3R2U*I^!p1zaDH55Z*(0M&nLURHVo303FoA{S* z2Ix-nO~5C`(g+{Zg6oJwg)^Oua5IF#NXYSV3jwv*AoXm&Dem*8KZ!v*~GvxNU4FyD~-94cE%$HHJ+Doftensv3p~H&V z+J#Zul!2P|w>yrgE^|*}R0vQ6KnC;%<&M3WiX#%fYZ(@;EbiAaI*{er@zevA%lx?1 zx7hX_>0WO<$a)(Hq&)?`aekR@j2n-ivf_eC-|N>KIqoYsk4bwd$}?P}60-r3K3PHWWt>wKnjbDt_*crEE2 zbPWn2eS=p;m)h2-Z}$S;cMV-s5~EPF^b_zHpQpp5&_ta*8%71@m8(=;M6*2sX{|3C z2ZH)-;RZ2uCV{JTB8rMT^D=@`pvBoCvO_jwWH8OEt{*XnGanOkKJ?_h7CfdCpx>(= zk>HLMrC9$c2;@2lz?hVlu1}!wu|~^zou!a=FWk4<=veLYU9CzuH+<*BW726-$=(PN z+9r9y!aX9;vQOo~q?*jxc+sQp@_pZN6$yU~bDujs;ZgOE)N?p_L_qJtP^)NvAtUOeB_EE&CiFSZmZbI zkBN5t9lnITuzR(n3)`q3H^HhbF#D_^Lz+xVBCQ#owLhm&)!(YD%`mOgwa%lhQdHHI z7IVv=E>wB3_^Zy1OiN%y5ashHh(kGwz4^{7*$@5>Yt*Rtf~H`ApB1o_ov_c|95=mF zzEsA=^8=;KpY~tZ2)D&4e;rrrp-2`?DN~9g(_OB6mOC@b7tc>v%T-F1R9T2`gScn{ zgbPo0fsqwPReBNzRa6Ld-4ZHQ7g?srKR0ueZcf*EP}6BRG48DfmJ1{oh-o}wZoUDg z4X$PY;wiWpR#xbdJX1AVe2cH=IH=szkt@{65pLZ2kaeOh$K`qcO2zfBUY4LX?V!JV z#Ul&6KDzCV(mNebO+fH{S_LA!~z)$I{IB>YS1g6|_;b8{CHO z*oao!xg%0@V-uN0xEdzXTLG^&No(9-z1CZSSJ!Zv{H)v+1AvP2IJBsB3Au zq7~4()7O_I6*qRj4Pltoq3Yi#!uP$h4HtGkL}+!;#}D;}A)^ruBdqlffhV4ud5_A8 zg_LI&_G#wVMs4H~n)`n%(aSkk&ef}9qct_w_tMuqtjzi*nZG-kqwTNVj2ksX_?wqC zhjb4zL_yYyXdXO&JYPP+8kH=yOuW;ITAvuEk+@VA_CXOvsW9 zsm0`0?hAfgMzb?)W652iX|K8leq(?8I}wDF>8AqyS~=ZNmGilA3Yr6E_F%U}qqBMCgSiL&T;9JzUhtmYO~$g(A|R)%d`(CR(+Adr23sDP0;aX$eHu+Y>UR3S^v?s?=q(Z2c1JFn#d-f@C6p&w&a(f}7x>q*g`EPMY>DDsTPg z1XSq)qJK|*FED@sFC9=%)+~;}%30ECej6J>{2i;SL*x@-DU@I&>)1r1{tT75Hdq6J zxMYr9nsm4nx_-(bdW;1tRP8AyhIKF{%vk;Ealcy{&tQ?qU|zeH{%j^83#G&fueP0S z&E3Fe@k8c&4NhTyAzL6wLglWDBlK9xsW60@^MYUw5yNr9DsrWS36$Pmz8V*Joudvs zEqH~p*In+^>>xUjhWiab{PHA0wMrX?Ac+bTxsb;jvHLVb2!Y zxDMDCpP|W`x@H}CdfZ}>`j^r4Tu`$zX&T;Oi0b@f+L0IgY>{`6vObPOPMNbo+r~+5 zzIaPSV3Qk!G(f9T%DF;4tJ6xXGnQ4bVsQi6<@+j|81`5?TRQaB=6ybZqeQ?y)|1_v z^9oYSL(5{;)j7=KxXx%+9X2E>g>DuWv)Py5@nMTVJQS0KhVtq{+;a?`HVA)vp0I(U z=`q-WtkTiA!t^q7TKYRaC9}cjdmf=p zQGL5AlO4_!LU9k(=Lb#oOABW{FSL@cp=eE#o`KcJe~9Ux99vyM-LGFElNPqy*K-2F zIv*zQb?wZCu-0u6I;a!Zd#3$tHjim`kuO4fe>xWg1HGlpTAsL#@4$R?w`pVA6B_Qx!_a zdn6Tti9ODugoWQamKu_?_FT2P<`zv=mbcVch}Uu8F<%0?JH+}j?2{m3Rj+vGT$!?? z!P>l{NT9Fk6kUqvdGE<;8@)7-X#b8rO@Sk{Km$q`xcKJQ-k`w zyS!(<_0r?Raf&&;#vO^I%I8U#4cSlSCyu}#>>7~J)m5u**+!;hlYJR7cpJ7rpWBGd z*0pf99)5=>Weo*3qZiMQDtfH+v;#$$>##k9x;RGtf2x~2T-%7TVaav_ah*`{$6oK* zVs>a~B;*hGQH}V)nHhcIR3Lf=!xLwM;RrQ9+!GbgJYQ{L8N-|t?WWO1U3RP^8$B2{ z$`9!>pTo*>J(myY?e+lKiwtHoz++Ph zOud4n@fAJs_rWvKj^%-$)LTbBmWYvHIaAlPB1KTpmoR@(8h%kt$UsBfZ_(guTl|yt z%V5k_>M3SS4Z8w01r~V$>7u%Qo@ZQTguP&}{Yvs?T7EQ9eaoetZ|LogY9huZYQ-@c zGpaON6?|1fMXx=I-!?&_A$LA0PaGJz4EY=V`YJlOXEpXud1plL6-3v`B-qRE~`KV%1c899Z31)gE}_J~PyLbYYUM9IdV--tKWyh^8SKS!vXxmxeL z6Z8lhg|<+cJ=+%%6=ZQqWi+zM=r=|bCBnlMri+g9bGW@BYPT@WP;vk6?lv)LGg;uJ z2*PSHBne5EXJv@Thg!8)fPj^XvWZLJVRU3$tOu&gdWKkMN=E$p|46&%=t#o%QSh-j zu{*YHYvN>L+qP|MVmlKX6HIK|ww+9{J>R|f-E+_GxqJ4HKGiSksd}HP(_Ph7)gN}c zsj3zF&EV2I(l_{l@0ZC2X_sm z9;jd5H+0VQ5!G0QDqY?0hCOXXnr~MQ23PZNPiJrb3*H%wAL|WPbIGCn`VEh7C0-vi zAOw*esY$NvWR_QFA9lhFIloh1@S3ZdA3C8wJC=2PG+3(L)5@}F-1dM!j;Pvl+y%Kd z8wKOoB4D7@JsHJ4v*Std?fG`wi|$|WVb2s~xs|L;u^-lDoL$n`waPrhqw~MxKkM5J z(77jBA`ra3GhkU2H9&l}n9-Cdk*aYw9-6g0nC+^JScgujS*sIvX4G^UdwKI}wbPPV zE9xtk_}w0@XJxms-~SNKq*f@m?ArfmNcTXqS}t(md7v@r$s7ZoS2RJC^P0~3NEf#B zy6oP+cc(6X*!Oh%T}?@D&~Hq6a34DhE3Fg#HuN%h7hf$&&3&E#{P{csjAAHp?%&@L z?{YdHIFWY&&!4ckl!Ns3O!7BgvN=r0e}71SPiNuJN=`pV=zh z?nUM9%nq-(ky;u~O8%I4LtkqP&vnBx$>x1H$eebe`>yQWMzD5P{A8uTg;q-b$Gs=d-%E*#|DopQ{ z@yb<*-iejI=isHt1TiF+6^gw5%eA{}vmP6cSRm$mhu4fgR!`qIJtCWB+pT1%R%+(( zwSK_x;+=79kE-Ey%>~i{F}V&NTncGdu^=(HN;T@{4*7)r3*ld`!aO1xRjwnNQdRwl zq8W7r$en)b6|`;YP{@lcQ#o}`j{Vz-8QqWHoc9&;P1#mLdiqFf_0d&f(^8N%Aqyoz7=}5E9Nc7<~y>axrKVtd{uJ|3{Ys@M@ZrN=-s4=ROz*e$1qqY+GESd8|VA zo550sZraQ3Ab*W@pXB~R3(_d8lgM!qAT~RPi-_ZUH zyt&gJ80teaiegaNmPtw=kA`lM*`I1=b*Vh^WiaLV)CUn_>6ug&M2B@*`z9)uVR^)fSHyD}c%X`m)lge|z-*_?pI+hU1Nt5fHK`38I%J>LZm zu+A0gvkw^c$dlU}3SR6H&4+>D&0rY7-qLw;N7=mNM-mCgJ zy)i1|{ky|==3gp~m81@#hIPlS4d0&4v!2XjV`nOdp|teYc>0Q zMDS|Zg>1sSq2(Qzq$B9`)%aPyaE}mD%kHXu9GK5IMaFRM$;I!1|25ulm?sRJ| zy24uzLpdG>lLSLL*@Wbg?D>y;hsy%x@S=+qV!yt%dN&#U`b~`o?c3As<8$LxA!$oU zpwu-5Ptp5%TYwwpJI0gHy|XZ15TE61lAeFlugV%g@#oUR$h%XJ-Yw268sA2FZO}MA z76XYrk8|Lb(5?Nz*%VZmY{qH)y8RL&@N@2GRM|VFvRb}yV$4B~ko8nS!nckE?jI&K zk|DFT2_yo)`1LdzQF~n`3=-bRyg)$RyO=57wxm?m$7F|?kor3Mr6H+c{00-XLz8p= zJ{6Z`ak2yv9NVVe1UU*8E?mkJ3${%3VZh$$ z_K#fHR2DiaD>qrauvqEujw*6L_n#O%Pfsrt%Qq80eImFsoPru)yOC{Us6ttKeU2A9 zqI&N1xNyl!I^nDHSq!R6TL-5A{dpxCtv$yLR;tuE35~+tJG53m;<94>xq{^cH3om{ zrnQ(4vNY^fy(EcH6!2vm$h3;o8?d(){qtemTj{H|yKSy7`82w88-aJ1YM{FT7VDU< z^wjvF8vauQpJ428&bIJ=)3%Wrdw>{eB@YHo`+&Qu@$((Q488u_$l9=V!TOtKAoJq7 zZOo{Ux21GHA5CN&je=4)GeL_lD928E(H~D)&?jnN=A+K_uLi|KQYp@N;XuXVk==0j z1q2jh4P8`$LhD$}&Qs_t*kx}|{mN{|^p*0us6Wz7X5h$n-%Vey<@8IJcD7_OA7l>3GcgA zWuliZXn=`$8oMOl4Z@4n=CCN^i@OG2AHXmrOh5A>anXh8Tc!>}$mlkvwUOOIiy3Bj3G#NFkC1ezl zBQGfCcmJvm!u72?TYK&|%Tlcw?m}`oXhbL0XF~z47=Uc)`$LY|gOtrV<3de}VKcmt z7gj#OI+9@rE6`uBYZk;L9Xi#~+2x+-5?!0qKjs|!wlPY;`&x;Sf=9#W8C1MCt*a^3tIhdSnTak2 zm)vElc*KycaQ#&vWRvqIsrTiQE0_>C69Rv_%1l0Gv1kP>hC*W3>bY*fJn|U>+Wn`! z?=V|05h+q2)l52X31AxDKI?g=^vx%8V4v2u$59`7-Ex6l_ql-AT8a@l zg5=@2GMzZ)Z132TU2%X{lbPosS30Trdx#l~+j9_9J~LE~5z-1#V@mV@ou4rQ0-~AE zlq6OwG`uG1O*b}0#u`b~LCjURhW^K8TnNX4_!AU%$%UfkK~A|$P-74Sof4#nw?;>{ zfx2IrX0Q`q@XCE-t-7v8A9Rb+uEho1>nSU`Tc7{&N%@EH6aJ$4_ks`C05|h5vmYF} zOCRG*q4d2L{&ZK-Om>fZJ14~6u$3qa_{O75)ye{ht zKi01y1CbEw;dox*X{5WQ;O+Ex#FnBZ`we1)`bhHnv!n?-rn0M00%TKQ!S|Ly! zwST2|*ri}&#iql<44QdhmqANL@qWod1-yyC&g*Xb!v0t(1{|(dPDkZRdlJLuVwT2O z_-WK0gBz~|6p_E&Z&63ElMQ_b{HV*fPX=0B*HYzJ1=ju z=(9HNuZ4Y2W8GUM*uO}pk~sCt@2=;yTtR&!*+t?V%DgR$4Ftag&9@S zvB{O|ss1qs&7W@CTSlA^sge4IIQUVxq3%09I{Ojw~U_O6~w)>|YdX;_BZMYwVnIU-0 z-6-!h%dgy1BkBlob6&Xfk`4{N;ex4F%S3{;Y}uyc~gg3;ibl`&8ozwvVzvDFq_zBim(r zYn;PaFBPq!sNpWadtQoRIOuHKVLCi5Lm%`D{Yg3rQ2>=3t(Z1ytX~UMIMN;3CT%WV z@E;{i-X$T{UDgQpKTmLGwA1bG>o|)f%t^K3Q+y|Cy0SwrAVH7 zL%*t3NixLf##rh+91-{V+u4UOjr0VcQYIP2pMD3X2zyLq$Za5KGi}AS|tI2B< z>4O=mq7lfo&(e~9T)B0korv6#GUs2Ck&oGJC-BLvSsEfa-%W-Xe@z#4yv23c^2 zZ9o9qFZ>{9M~GXh@}HqE6#}(sx*Q+p8%AY*o?Yzi=TPW*vD1C0qzwtSp2wpmyNEyi za!N|cyZL##pIwcsc@p@#3+S&l`LSZq{X~1VU3*@wOU^(#DgS@{#Pq&z&jiMyQvN-5Kb}?0WfIigP086R5k=RO0L$a1 z_K#xOmY+m3T1l~fSsuWAJ{SZS{i{z4Yho2b8+{O>Bo}!2M6*G|w$|QV~q8$b+oJvkTeS!ekXoh$kWCY6?;kN#fs zgbVFYI$y;28bs|jQ&~);_I$MO5MEkK(fzQgRJXWLQW6s6lS5=e~_X@=qo_KT@|IU~)ASXef z$$PW=aj1GAwWtJL$a<@mPB5gO3AYc*HO8!V>}6fR|GVG(v22cbbn?iyFKD2KQ|WIi z9$(70>z(I^KGZ+QIy@g^?!B1B<4J9Yhmt-ZP_ga7!dQ<91aTg4{UWOwkcYXhgUVBKt z5TDz>lc2upVNlhVT|;KhopW3@E~5d;Egv^dCD2k=Qaw0;X6{5pp3mx~blnbF%|J)@ zTZeww_<|@zuH_=Os&Ez3^WiCq7X7i(NOZCAo!thHUgh0B#BWK4+Ohtyzg0QB)MYwD z{KpM74HUN*9jAAA;>^^Qf0)EeV z$k;bSJIsk>9=Fy=oRRwK4QLpP^&&Ly0d%SREdKiWEQctbDS6iruzwp{*sjPT1!I3~ zwFKP3Q?9ZodW%`>+NfH2pFbXy`tOu#;FzYr|CFfAMVwLN^U;g$Umd+@&>Eu?gv)_Y zIc*#4nIw!T?v^?tFO%3jL57|s-1}}%;1dOw@moJUkkwk=K@Qrxk~M4D1p^cCSrVVM z%;-VbUCmv#+oT28tAz}XqXlJLJ49n!l!@y>?+N;ox+E%L-v)F7x}KSPk5mtVQ4`9{ z?@?PYpfobt)A#1#C$&=O?$Xw1p&rKHe(n|W+FTCJHP`ZJlE6}7Pj4UC%AsqKbAsy9%}9EFBgOt>Ec^Q%~G=7!W?)-&#D^H^7SqMH=%)IpG=pWe=d2t5>S`;(m@P6y2ozjNzK?w;i zADxOjO@*%Iz(Q0c-}s2#7D{J_Xg~n6;g@*It)Mbf~2VQDfP~cPPYCdio0x~GWYI-z7F>^;z!D= z54;40%+_A{kV=}D-=TwaoK9p{9bJ4(V7q@8FB&#-qIs=KXpI|c+9uwdaU^CKfBU`) zbBW>ks*9nqdLs|iOTN=6PGkVFX}g2SafCh#Jd5Q_v=DOMW~~i*0X# zG6$F#lDm~LM_-OtHMzmIM&pPwr@M!@fv_!33ylnPWA7=?co~1@J@a_Ck=;-0|O#DmBNG{%X-uS&+&E~>^K1s>W;^p`{J`qD* zPbq1DAwQEXC___g!ujtstMAq_y14#^tIb{b&0pe1B??$vUD}D7X0`5}Bs&i4Lkpkm z40+c9sR9DanwMg}rnpw#_LbTPWjYITEojDk32@Kg>sO}j{0H<@MR^S6;1xQ3M)n0Fx_C0HSf>zCz~ z6>=wt&fLPdX3mS;Oq-k7pzFLYd2haZ(sOsw09|yXCTm(*01UOt`;hD_iX0&*qJ|R_ z9Cli*(cED7cAPtfN+|iF4zZ>4?vCQ=HcIcI*t2&YLB- z6k^>BV!%`5-+B6P2GSb!m}#x2W5`W$8yal{MA??w7u3e*O0ZIjxJ)5I{zz)@M!dBi z7tEM}yYqov+2GohA1D*}D{P2Pl{{(ZI{_(Yr!wQhv7A;!{XXk6o0ly_%yA}*Vw_AN zhNyz0J!*S3sayy4Tip`Jn$PMfepHiVeI$sxQ+-ff1`5OmP+K zujv-(+Fw@X3gnf=lsYDaw9bC^Bq&q3^_*qy5PMKBLF^dK5a zA=vo(`X73Vd51{UATO^iV2Z7%pm2ASSw>6JgUB>>8by+QeB(!YlWE+=b0eT=oTw8x z4!jkd6}(kAX~AE0MjKH012q+Sp zMiGq`8k7shwqV?T$VAv4g_ba;>y-0L%Z){FJ2}Sn&)A*9RWOT@3wXdOtBUJXxyeXsUy((uI9 zOF1CdI%aS_^J@&D)>=BsXQhN51V^(~=SRq;v#m);cgoh|S%#%%C^B3r-E)!hVLB_x zzM9?=TN$MH%TQ8jZv10ClAL@?7JX1RF@kX&m%LB{$TYz=)D}?WKl*B%=*v!AyI=X1 z%@S!KMi?2LB=oBqF?ZAtZ_M{dk9f4UfW0NvfJBGG$M9Z$!i!;#HSDm(xJoa35aj7i zaIi#hAuQhUZZ zrkdUrTycXJNv8T916A= zeMSz%?FNL5`_2$Qc?hHt7?LPL@%X+B5+||qhw@7swQswzQ#vuWf4V|BNb8W|!?NZ5 z@6Df@rkFLd5)9+u%O$1cl^U(0-{~P0QAcOh;dc{mP&M|)dJXU}^i-LC{)v!NbLx(E zE=E0-*cShxVqg!(B;}*_^;K&6rFuQ4duMH$Wx~{TqL1& zmcWdvY&33=e{9zt@~rIJ!a6HK_q5BR$RZ?BZ>^=;Vi$6Q=Sf@CEVQ8rIjbU%^XN{l zPn#y#Q{@!>U`Enzh1?U8DYlDo@!VW^ikSoLHZn2AUIVI^G<9F;h~#%s(M0 zB0ie(UmHvvg)~*9yq7ew1|K-gM47L*_`hKyYImCL4by@M%}CYtZxJM)^@0VR1|IOY z>Q~T7ErfM4a#B}(C3&yy71pu!m{of#gUeAslqty+?35U~&*#SeLgZ_ei@sHJ->FF+ zfj8Dcj7?|}Wr;kMF#*$#7aV!w%M|7aAdSb)DExbBhC4WZ)K$!M>N#m8wX~cGva&6| z^d4p(Q-8diz=5mNw=xm|XB_Xgo7&n9B`>LbK{)S z+hGxhFs~}*5EYo6!u5Ea4xz1=P+etFr>s}Yw5Hg{cSAE$m^T5fDOFsld-PRgH1kkm z1?@92v7m)eBpudvHuT` z|20daZoZ$$lxeU5zNQ|NUi_zV==%rJ*I#PnaQOlVrM#} z6O73esKy85si&Puo&z6jIh-FCB-Fo;k|L${j6mflLZ4$tw=YHp%xjn4V%G`S z2v8-3sd#_qht%C(G0*;*g?L+ZX?SjaMtzfG)1lSoF_%RBL9!RxPf$#4=7+MNK`nAS zz>r%Nr>EqrxyG{_bQA}}_7&*-h7ON}0m*>sTQoW1(;|uA?Oetj#lPrE`bl-`u`qd4 zNKdd2hMCT}q5*Nz^i#2&DQu33Q{*dAaKzp*YZ>*29ofxFIQ$}KSkf=O6Lpet$1C*1 zz~j0sH5p|~d}LA%Hni3TX%Xq7l~IbsvU>GWkZ;8`VkZSC>o)36UxP^a{8+!Yutv=* z=i4)EiLrc-)~>QhVZ!mbz}LH>wjMWe!E8Uhr^*BzW)4UuK}OeSAOUxt^5jLK^H9pm zibl@1#zcd^I0j{wOp*b_)U$zeFes?;VtMCpct|_q%u%H(y4&FKZzW=l9eCbWBi*GP zlx`_aP}6dM2H{A{Vk(f87`c#O{1;5e<*zbugHQsD2cVQc_@iL+9|spFuv4*F0$?9x z`)^9iuzCC!csK~w(DW(PKDdk7m*xh%eXx$)!>>}1MumQ?I%~qYX*4V|SD3}Dz_KDS z7@-$I776{td+IvqqHO)X2K%rO#B3vjMm@qplg;-#N#l^dEEEftv|jmIiBv;QiycNA zbZsvF2YcNRBPcseA}eTu&DLan3GHo2Z*R{$V$BDw=Um%{80m=AdiWF6g2w(Tg?k#f zQc%0~P<}aT=iZzoQyI$vpIKl%8uK@AW2`!v$c4wSVsJ36ilB)1Ix}WIk zV|#&DfEy;u52ov!qR}h>kG&-&WOituIyTL^Wp`-UhCBE)0CFa>ZA?TQX}6}Cf{$nH z%(tFV4XGrb?Jf+_HuUWUISWc*grNTMU^9vQ&eSmlHmKG^kBEUm(v|R~iw<{q zIabVJCVWm4h2XJ5$Z7Z>h3;{IHnptL5vC%;7?_%bFwl8U|%GJTomFWbo`*nF6vFo z1}!xg9ID~d4v+K(p4%uaCcx=e8x@#KET{*@eYDcu2TS*ht@`pl;@thy%Iz@V0I$r2 zuUoF5Zdw3r812l&J)I`5uaEO6=kt?_PFYDxt1e)U?Q_1lhR z2J=PX%r&RsjB;oRsFvsZ;9pnJ{Ia}V{ULda=TPp3*#40k?B(r;SGBYlIRyYpWD4H(h*~ zP^lQmW5x2LOjsDTt@F~Ob4Cp(3RDUP-s3P&`)Z5k46E=vjmV4velM)vk08mA-z4)eClNUGD*TPL z$J~?K7x&Us!VaI(VyLsCKYTo19k{z2`z?ttvGn z-L~Jx;{zE{)b$X4W1KIEn}+urJ0Kb{H%o4mFzO{E3_MM!K$xn)U;8rjwOw|H-Us;& zQq>Z!)EL)nEKom0;(ahL;w_NoGm*=1_Er=T8#-z|eFN1x`Q7+em~~g3@Js@k>sDz9 z2s{SclE@CTf-J@>G$8cA62hsqw%e^52b`NZT0A?z&Q>-k<~n}UPhgEVe^kYQSs#kH zT=X_C$(4~IKKn4t?kwtAZKie)SDV8s&bRo55YHg8FvA|r1rN&|QPkuhVS(L~630^y z|1%l`EP`K+YTc;N{8G5)OKz9{LF8L>C;r03R5>JRiXMK%fg_;sbkA`ZR4gsaA5dxnt1_IOZ+a=XEe>yT@8-NNK<4;^YcwBaAOr6Sh|@_xm$QlC%m z#|8r3EzeC%DnHa$Ec88$ezz^ykwUd>q`i;dad$Ik8?!yXi+FSS`{lXpa#tWH3u!g9 z>;6Gyfb95)V6{NfCs+Q1|V#&6*SV*ypv%1#=xLMQq`9cgDKr zMWgOCwi>8&mV1tjciU3_BTq9TE|=2<#E<3caypS76zGg3Cwxl{B-5P4qj$z~?XNLo z&xNqm&?(6nnRWuc=`om_8R2I1%CVRayvNv)A3uz7X|=QAQowyk%%Mu&2e9vlg_AAT z$!{^J_A!*tgl6*gT;6itA(GvX?qH+1srG7XE9G%7VVXz>K8;1zhQFd@Mt>0v6vXUj zHY;GIx1@}dmKG{q2}!I}EXW~Yw@L7RwYj_5Ltm{bM*Py-`wMSZ)6Gz< zJ@VQpo3;1U+1h!dGKy`p2{ROOa7z-AU91)D7qd}C6Br@}*=LL}8fBm}Dp6?W0eQJ4 z)DgDT2~k!#NvXv(CM2~`-9Cb(KS$vLX&(0xZD^+e{_Xl)n@p@#lm@Fx-Gm-}g!c`W48OS2(?_Y>H42f7)(Y|9<8;V0%knY9F(gmJkDGnTpn8p?v5f58y&(BI_ub*! z=X^tkqUAlyYKH4u<;3#>UhZ0xzay*`<#W%UTs!Gb4K%yH`Y31~VnUCsM^QUB%Bv`n zG{)(J#CTKCFkSLaDV-!GVapJMqaat8BxBH>2RGt?W&=r~Sdv?6w7w?Y$qZDlA_tbz zMSkOMBSXsCnN84^tjurI__#}aEZGM|N&#q7evsxlP?X+sx2}3Rl%R3If4u}H8dfdsYRX6=Z(mF26_v@vN{fx+7j24jo5%XHzPiG1qDwtS#vq z5nMWVg_g+*SyitrdGLl3jhbp4Mn<&3Vr8un&KC6^)Np+Jz)l@TPMIgH;q088(&e3Q zZqHNx4np--AfPw2984Z4^)$%oJ-8ov_`V{?e~T~^;#J(B;uXL;XL&elQ_8GSz?;6T zQE&OT)Y|u8mv~4*Oe)f3E-KTK&?lXc(Tvwv^U#z1ylEE1hc? zGVjS!5FxicqVE1^QbVi6l5VNHn!S~0a0|wIxYbadl(f9z=FDE7sg-aAsfPF?Nw_+P zOuts@oB0_~TIKy&cN8`)*XTyqkFI%(#kfy6gYM2(lpSPVovARrhK;d$RoR{EXC25f zT@vrV3{n;G(so=c?&~M~hZqQz=%QF+mra$q45Sw`_d}%|n!2}c|4Jy}=z}z@56_Gn zcAtePtq%@;euvB*!Xc>{_4U)xW)b;wB{Bb`W_aCT^gSON0slE~x&Q&SdklVr?_%%5h}eJ$1BLq|txwD|KaF1w*4^n`gy z*(`k6PVdhEkC_kA3Q;E8<$tfLpCLYlh znQv0~E0oH)96ISM{$ldht?gh0IRpn-Qz7;Q!g4#9MY+5R*(7wfE9K)&cgP!&aytUe_?(P%iZT%?85TsibloLC@dKSW0(tZg4YV3t^*I8Ium*UH;T_-hq~yxoiM4l?By)4fCW{qy zaL7ZvK0eH7aO?5brHXAH|3)ej9NT}%Ms||a9S_BB)Gxhnu}Q5Y&1v8ke&-o378nER zI8?{sb1_GU<5HYWwpunV@$?!`be)@ujp+=7CJyX=16Rb7bJgQy*fq*MYSH5ReQWa@?%H>{id2a0pp`JsVnQVj*~SRTyoiCkT`h6BfckYSvcFA@csi6s$GmT;0RrWC08#InqA%njzx zW>bn6<|=Vh-h4K{>YYL6?q3I5##1=Z>+j4<1A)v-GmzDsMjFBCY4V*fg|_-HV=Ixt z`>!95npQGjm6WZHH38|Sr?VTXidB$r(SxaO+b^;=_b45u?^U9~!XZ*mJvfcwd@08v z6U8hh12=(H#Q+sV=e~{PStV z$g>N2TJxsSJKA%`33sHK*qtDBy3LDS5*C_H$EzD|_Got_ zxkttnggx1O_tg>{-=&B00S`@PCZM+;uk1|g?}Qr%goJubGHXm~r%XWUe~m1s++91v z(iuH+Pz-IX?C^<2Zz+oomT~R5oN}MPl=zk96;k|#nQl)$ATNjAa}VSRmnFZie-6QI z7FXO@V`Nw1wW`f=iz_RD25anhoO=1hv3w@P+Ut~)^H7MD;g6GM^L`@Xf%54Qw#o0@ z_{rENvqhG;Fd4e4wc(xgWF8>_5t{C_+!5J1*G9V$yKI3HGSxyQ6Uil8VG}>!PiG%| zDwIr#mXI3=(?LCXa<{syItA`3hqiD*@c~d>m$Cqi>Jl!{v_cFMGMO{h8Q#0{m&@UcIa;^S=TR%rA5TX6O zUGv-5BB>^@M8qwNZ?(T;-)G#s&gja&Ng>3bX-PiQpmvb2!=amxya3NXVS= z(atP=UO4?T3R^N|KS+^0lBa(A#^(r{eX zfhxqPSVGKvUN~bZiMM{dx;GcqSFlw@`6Fv&)<|FvBat7^3#b_C0wKT$v}jC|6>n0C z`pO3w*isiq3(k~QG29*!YS=P9W}s@IF9UU`h||>2Px{M>#ng!CJ?;dh{ycQa@>qp= zMQ`S=l#fPzSqL%RUm$a>E#oU>q*~iH8zi7+85xJhIk-S29xw_$Wuck2O$-gnW2~(W z$%3NcgNfbS?~=X;lS9R(h-Eig8T1Z+8J9+FLq)T3c8O7Ex%hYdihGtK`!N-|V2tb% zYU-@cm`4J>!w;b(Z@Z1=+5%m@7t>l1n=AUe%j4G9E%$B}Nza__Lo|Acz=kgK)?YON z#PxITjZ-!nMyna;{TT=vJi<~4!dj{~Ykb?$V&c@w3DzsPaQ+jN65o?WB8}gGqK(_j zn*7Xfb!M$Fr5w%A969o(=oA|-UZedY5^49&1^b$-3`(JAJV$|06kI5F7BWOzLPc2g z*y)t~cEaB3+{>vj6;SK@;kS^Y!7<4=^TbbVzxBSC&kXShxv)Gdg-U{~II@fXY|40G zRTsh0mhtfY8zce&T&W&}yI+sS7tOUPHRQUPKIrY|mz>YO(pswpc@B~Ocue1g)`M11 zyOIsWqK1fu3L^AdN$Jqv9#MSuddZTis4n)aP%)J2rt_UIaeT>~$wA?`Djnx0vcGes zl}}jbY+t-2NF?zmpt3;z(r^Gr4!P!`L&WN{+|T0C2-Me^if*8?b7X=J{|0g>pkZYP z@e=H4$}Ahv!v#55%k(hcAC7gZ?V48YLx+^afDP7S1?!dj7i1DLOK(A`ETLwyH3dc_ z-X3;;_|a=7&`vB$MPSo8=-w#IMBG#MiD<@tXQV}~o3tQP zEch_;Pj}}7)`g)Del}7Xt?L)F&EfP zfYP&?f}01&Qtgzg>M0DNc&!}T@YmP%gQ3jFVdkX@L_)ni4r*YDGQNckCpuOTT4leH znr#%E6e#$1*f7b=;AFcn6U6g-O_Y;qMa((g*r#sgq5DXi9muoD8ETX8bbIIU@!c(u`w$2@E8ZI*qOU##`F8##*cOjXD`M)5o|ErM9 z^8ZOlX89-D{!bzKKkD)SsgTU}-_`*rBm)uO|A@qFT>lZ0Ia#=X<$sDW5a9)CvH!&6 zf4DCvJ5UY=E|UFU83^yPv9bbKxq+fF&|zldVufR42jaYJK#Z3I2=)T!WB-p{3`Bo{ z?d#x|AQF+M>l2yjvXjBvjCS393Lkq%YSmg z#`;f&W`^Se*8LNaxq*r@Cl^pb{+Bag8z(1Fm}X-Kjsut*&VPOW<&Fu!4UF?I9y?H4 z<^Y!eyY>v6!u|I#u>oCdc3>XZ{vpP|eS@8e3z!RFnd_h649p2IpR7QHnC)NwfO%r! zW(IHp^T-ZdJ{vG58#gl?+rM^TuGoNM`;X=f+*WM=*5e7r->sdhd`}gpGKENgdVvviwJ1ZN)=BDy@X-=u{?zEemu^|C$ zQq=F^f480?uRp3EeWRPxJ)Z<_FMOXorwHMcAx)u#(dtm85Nyr|K!6406cy(+Fh3#`d;~km)4jAO zet8V@!s`50-^9w$+UN}>JhG7>xw1O6i&aYb;F=i)?XGAN;Q+$G{AkbQa1SKl0u;b$ z>|7d-_+#Tz$e%k9*-Q#$E7#3{H-MT9DWNr#8s;wW;?&{<42+ALEBH5m9?z%Ph!CK6 zpl=1%0D`5lPTWt2zz8bi6Izs}_fH>U{v-mm5Fp@n_u7Bkg_zw8tfkq_AOCY1=Zkac zOEWa2*A7GhN(~SY7@C6vVq&%n;vmxP@zvh@CGusz;;)H;K>t}f_}*4nTuqJLFy((D zdiUfG145D3^DF4>npYJ3#TXeR86R7D5&-gOe0$E+$ciWW3Hs%)AJ|j+t{?hUH}++I z`4yd%-q`%84_^Moy0;CEU`toE`9%muZEj9EvX}rV$`EncGgKM;>0D$gOo2JY@#Q4L zgCoKanO}`lJcAQp6Ek7s&r63tNVg$G0f#9+bo51C+Cxx@j5WK~hgl5b*5olmIKpRk z7V`ok10rDH3Xutt7a)kw!x|vHF*7uD^XDxM6vp5is3tEz zt_FxK%~3ujlp08KOhIhoXi+F)Z?WO6-~f_=vWFNx2!$zpBPE`Lh)7GY6bKnSP)-&$ zOBa;i4HFucgsD)X@We}4MTBq1H`NFwZ>yh#4kB-Fqa&_wQ=eI>Fq51nc9PI8ZEW5N*}Lbbv9S5b?Deo|mM)_=&uZu>m?8W{M%YL^7Z3!yLW`%|+7P@$w` zI(Vp-Bg*Nelqap5&y)Yzlj9$`*i+gd@c3!Xu)eM5%(QZ5cq@tg7j4?#Nm0EemB;Z@MAjvqgIz2`DvhCrABuES#0SgqfgO)~H zIhcir#F=yEqc%s9YFa{`dl3XDla;gsC#KZK7KcNb@jQ~4gy-Lc3Iw*Mn>!beFp91Tt1cCLbk`TLvZxH~U z1z^zVH{i^(|2k#H2O;eiJ_74ys}YH;^YBE5fghEtpmT)p(@zdgM`1{A@jt_jn%vx& zz%+w(iK;KY>Tz)cbqTGb@I)5g1TT+@5JjHr^V^7BVhLwO|L}V{0DRa9USq#`UyhBb}$VE^O8^UWf2&F3|DyTA{ZyQ2G|LXdS8VBB`QA1t46sIR?6iN z?S)o)Eh6xmiSvIDMFzWz4?7VS|GbDGOgSK;pAF7_FQW9CN%7|tM_#)#SAWQ7^v4bO zI*TTBIf@?w#%K3;ljw#1^D1c#;ggU<*@b!|>|v8dd1#UZRwdjLK|T5ZSPOo6Z^isNS&Gd8o`he%>kGC4s^9%@ z^#v=00h|fUckc)*FLDW{s*2;Pp@2l%{v{a3ccr;hDENMT+)^A0~tj~f4WqW*#`rWz0_5ovRUsPff zDmycXB{wu+Mc|R!16A4?V4KmEmCg)Pso%;JV^nC`{x1M2K-RxSuC1e@Fii&UCAZp- z4JD^Wqdt`__VX81nHx6m1HVP;yi1fzc`eP`c8whCT8^>SJJ7d;+4bs6guj$az}7K& zh!dvho4%JKYzXCo<>7&Z!39vGJ$j`6E$!{!)Zd(&Y_x^Z+H0>P)uiBdG8v8PU{Ltz zWz&;il5*}F(|A!EX?4DKf(?n$V6bt%d;d-g5j%-0j>boFC{+diO-{)a4X&l{ui47< zVv!9DS3oS0(+jOFgi=2^j43kHqg5sVABhH~C0s7Opw;X6A;MmmSGPXgo}zWGt|nJNccnzV51tS?Rb=OQ zKDmETlpY`OUc_5z472c8M8p^JylS%_A*lLZi(A3QQiQ{P-#oz#`mE(z^oTehrd)4S z%VZZXH7w=wsN8I-bRoj^m)Oj3i&Xr}U$Nx|WV&HKzD5?O+1z1!4 zH3H8WrZBFT5OYAVWlWV7Xht~IieBEGTb?)hZID<2lX#d-(0qYZjtjZ+H74})Pb^g< zv4&RhhbR8`=9nq8=yjjd-|X&^kW0uyhq)hdSLYw4z@boB%A?A6U<+@mBo(!LiWpyK3?1jSbzRZP2*mjUAfGsMTFM` zonKvaK}{m#je{jTg3Dp@>Mx>IF*nDRr$`?|P-+-GuB{FOzElcjlS}S}IUdiBhc2ePVxGx@U{5((egwh`* zl|K2k&n*%*$`%)aNe}!Cl`o5A+v$>t>wS@G+l$`QY$9U!b@5|Z(YsgAaI^`cejs%( zx1XP^(ptCxM>7B3b z$?rj9=LwFd!BjDt%|mNc+qQ?-n_flF&m`tDLnMCHU1(JuICa7C?4q*^Ij8dD#xaE} zeFMJ7i>u=B!7eqys(JNnwSbT(B)!nzigK8~U$)3)WuyK;vu0N{w<$=PHV1zia5OI`ybUE8OYp3dY?O^zLYr0 ze-LG+EFM`MB0#1_hj#DFZNYNvLHuODS#s5^JKE()4kdvBQx>m?&%~63RIeh?7+Qk4 zSgrQqbrutJ{4D?805)Iq$2Pu$k7Uz@=^$#qeJLEz2?gNcOHxJ_%IV84N$>fMOS3LP zVX{PeI?DG1q}Y2>s1prT21`|?pZn|+Fn{uilQ0xdbElx_u4n6j-0f-oYgm>L-!lF- zMPFgU)p0YkWmPE3cM!!o$4k?*a7(;^=7UDL)TxYxr9OR?D-bacgO?qyfIoesh{)q5 z**QVkP}UHF$cKG6T62W8!nO6Ywm!?om+o#;>_eZ2&y6}osrwtlLuVnkn2d{VSU%;H z)HO#YK2~f`tDbSY<r)0tEEKJA( z^fdgL7Z~LT0TYF>it{uQ&CAy z(JU)AKEWU!5t$d`RptRE|ROc*|qh(*!+83*tIGYBgmS;B|;{9B#Vj;emH zPJC9q7n=sq52GkXRX|1Us>bhvU4L=3RPGORMNE7fG?V{O*pn)+etT=Fe(WS%p)K4r zfAE9nLpK$2W=v9_nWTfGkZVD<{A*zzr=h+VOnZs)+cuNA&EHQYB@!x#v<~(K9p^gR zr;59<^Ci}%#MbtvTQNLJ;F=`jP;wP)X6=3EXMq zILyu}@3<0~b#Us}n{vezR~qXJ-$o)QTP>-sAYik|M6$d(Hk-4%fyWZ$tZPxiCAJ|I4R50KC+Ih3r&XeTaki++^%M75O1t>bGg!vxzmVA?b^02>-NJu z14e3srECW*OOY`D9fmM73iO=MXH>=Q8CB6vk55XGq|!gbfUUjZK~A=zABE@V53TaQ zm@Oi6!XkF>8<-Mgd;SQvx_?2mznC?EvIpPwBR-lsJRV>5C}-*B(Cq9D@a38^eL3at zjd-WUwoO{2H+wjndBG8IACJm=ou~Xj7g1l)9lQraY`3GyW5TmP7&z8Rqii5lZ;D>2fK2Ektd+L)FSpv1XdzKM1tnV@g00}0tX5twDR9~KO0JY=_=nB zm@5L8{B1sn1M}6Fm8${f<;BM3#=Zo$nHW_aj#|;@E94{E_zRfdHak5qHHhVNJLXb# zI^Cr2zew9AbxRa zu64p;ap70E8JIx32$6o)eGTS*%uT;<<$f4zvtgCPFJ>Dv16#pmlW%O;d0Qy$u*iX% zsDLl7;iG7k1T1b|reyiX8To`_*|y5(p?^Tfy@zg=-$ z(mU`5{gU)0D-~tdw#$r-B7XABo5i&S9JH?e3-2|SI>6S!J7hD1L2rR91@XxTk()TcnqG1gNGR)R+C8po?FlDHR#JLsl60~kcxCqasUqQ)gTbaDD zo*hg_B#HaP**yAvBldTchH-mOVE;E?^dq!kywUBq$Qsf&f_Rf9Xft%40bh(!=-f_K zsS0AvG|)Amv~MSUbWnjX$)clRu)`w$UTd@BQYhuG=@JG*HX_DLd+>AQQWcwn3ECc} zqskvyKa^ywSXgi6h-5}2FM`@U%US!}PN|WDlN12ZD~s|inckxUW2&X>#S0;s)QHD5 z&|l-rIKzvo%Bjrjb<@fSy8#p@(cTM(Iau_&6RbH!aJJq1dmHFQ)J;-7iseEer<R`BPG>uBx7}Nv(++Nh)Tvg zo3O8Dk@Z$(|v z4%UgY!?JHq`LV1wOP=hJ`robx77urr8P}}y>p@^x~4CgiReD!7SOc8SWve1*_ z+4@7dzjrnY{c|ug0-HdeKC(0vY?(VJ@Q4N9PmUk5+;NvO8x zwN{-_F?*hK9%GcF#=TDntyCt@u>HX}V7%M5>o6*tWaN|no3ol?=aV75sl&& z3zXdneJ}IjBxyAQdx^q~X!ypvq+{0I<%~;my-PG>>NI!pHvQKQxN-oGRB4jMO`=z_ z4sF<>Y(^DW=Z(|nc+&QgpfhVh=svrnA?eaDpH`h@NMb7MbJ~qtZ-daaQJ>KcW8R6+ z=N5AecOVbj%!wh;!onyp7mRYEp^;yQ8!7 zHF$m`kTJ5y@rd^_m8Ifcc@a0YzIT`@m>f@FmuK04H05d=htd7)V8`cV*H40GGoj+A z%0BKd3gcDl%En2XKv!24uUwBsYM1b+9N{;=0kce*P);lkRKD~nnIx>EpG6AKW&l~s z*}N@V}1rq|Ck zbcAa5552CH6>4>zSQxo?C0$m>XdZz+affUsu2$)8J30m<83+`e_(6eIX)|x~WGh0v z{AQ7HeQ|+>}0xihTHdZ=?3QAO`J#h#pDpXT}DRdSJi6O*%kxi z_H7OcI5r09f-&4S4P)MV|NE7l_AblcK@_?;udhD;@vhYLS_@*8`Oxw$keqfd(|7D@@eX$JL-(NT(b(Sg2eiwbKI6v@1bXy0G6UV z{%5fPakSCag&SXz6JFE`D0rh#jAgkZUiTFT!gtN5-t8WU>d6()Epxp+Az`Ns-Srf0C^qdtE6Zj#7(4I`}^M%(#mbnQe8*6RsTB?2cu z-1^fLUjDWSkSga5oiB?mAN#9E@;g&ah*XWgP4X}l&v>uLfm8_aW6-YL(3pS>6=kf#&uVwRuz zP9Z+T8*9wA-65VadTQn{7*n^ z+cVw8J4`%>OLCeh)4;TwL8|g=Ba-+lfBt4uq#TqwV)pxyl}ubwm*Z*yRNwZKL}-#*$8>59g6l7d9}`n~ zkoDwrD)BC(26^n=?4!bL2s4!0Wz!;aZm1}5oUljKY_fFe3F`@>vltZAq!%-4dG!@HvB*gY2eZ>n=NhkI`!hy0^AcnsoE~X> zLi#2Ih6CH1No=HC+2q9z5Qfd%aXiEJ>P&|dU(zW~=eHZA<*Rv8_8mo2*WU#I)>-dcg{3w{9{aB<@3DR0aXgdab>sem|!h0e2M_5zU0_aGx6f_?S$=7b!Q>9FL2|Z<&al90M<5OQ{!HcFD1f0zk4fw z@J$!?e3*VdWlI;O0l$dX{<52kXBkeF>7|OQx1=P(Bs_Zmw4(f|-;o`6cZJJ|B~QGK zCMIZyi59r~Y%1U0tVY(Py(~>2I&JI6JI>zfigI$qloxL02paXHeFdTWUQH(L*pqST z2g#-epCp{!@tD*)MG#C9WKRqbJn;sbO43_3)PITOyXs9F;XI#w!&`+9R3hcOi~^PS z3yYg8`VSAB)u%hFDSfS){J|{}tF!>)leooJ3jcYC+g(TSXS9COb>Qfr?6;=XgAb{6 zhHf7up4A}lURSF-1IPQj-QQMrsrJ9qr4J4k=&8S|K|UyRzZ1hoDrcwnb4=5kHDugM zM8yQMDln30Uhs!IaPn{ocKSGYv{&xrl$D(aRK(LS5dEGb@nHI*<&EY`e>B%3{Mx*9 z`OG2=PSsZG?nB6S8R|);NPfYX%$Cb3h_w!r^ObLqh30AgyDhmEw5+oAFZg?J->I*8 zG!#&ma78?8^-dZV=`z18V;6>7ntwBJ?tbyrvosc(`XI^0Y*%Wbc1y3kgifiMAuyRF z-8iz#Fh`y1Qzt*RU`%!)++LjCx!_d{4Zijz{M034>IyINb`Jrmgy-8un9MuWWio`i z$fIEmO_I2bX{7zE-v}`AwYcx!oU@d?;7na$3t23s2_kr3R)7f=o~N>FNJm!J*IoP} zT7_KH6n6S`OIh^~!S%l8y~@53lq1XfUMPS2pLDS8u^KGtL(Jj~)igkkXSiM)Vnb0n z8QwW%h#$SGVY|2RPTr$#G4H4wso-+dh{Wm;WAWY^Dyrw=W%^>^lasY;sX*bj<|4xi zin(Wts^F>CDJc)B7#ZG+Q995F^_4^a{&f8s>gd$o96|m~sakCD7lX^JrB-F!u6n3% zZD+UuQXM3I^jD+PdPu7SxltLt2`r&SR;+8`2iG^KcdgnPkUb>XQc0@ZcI*6Ih@|f|)!C z#Fpbp*gC?Av~SgnZ>BydCm=2*YlUe|(Klpa-}TV@-rc)h#1H$zlBOr9ZqtA=m*^xA zg?O?VE6XInZe%S*UaKMIv%?&!fO@b0>V(~)$Xk-l-MOtO+N`1im_XZ-3z6KK)Ab;H zm%RXzMUEZ9A2ZpVs#u<4B%==bKzy6pOpN*L*G$QWQu*$~IzMy5puxJI0)siu?w)_3 z5JuAdfFxI+dZJ0cyrv$q@H?rTxo4!EsuHMUXK6h3-MooYu8kE(2k*q6w(80>LM6qi zFFz2j>GlxFq0BCH(2!{DtZ@86Rcst@84Z(5hAw%XKpF2x+VtC|MMs6q6~D@smNK#L zezvH6L+x}Jzf{I_G7Y4q+WR~y7IlhHOpvTzbiNH&KG(VvU+B_xxpdd{)M6pck3P}t=$eZBY26#i(Bw&>6dlj~3*U+rsu&3vWanTpG; zEhS>g-s?Q?_XenifYk_TiiU^)^{ih6 z;$lfn^ub$JGZ;WoqE@{(A+`zjX4I^sAk z9h$G->rEBD2-EgW-Lqc^rroOYzQ;HxLtS!8)#rJyP2AUi2Q)Hv+n3ZzQEu~j`7BTs zrMfI*T76V@S2?+R?^ZgwA}sA4`o_pPK@K96Kg06^cfCx-4~FCEgm<*PUd_k4gpSch zb<#rQOS#q(^+n_NZb}sW!K9c#%aK>b^rUOLF5VR@mhf@oA87n#B1Q;S4np@fF92|R zBs+03NEy9^J8)6%2LAY#jSWA}nesJAeg~({y%2o$OH8sC95Bz)&6m53zyg%)m@)RftlZI0<7vWgd}5mAP~-b{=S$h zv_46fTgq{sxRdHxJcbbY=$BG52V@R{@MHD+f%~k&Au+U{V1!#@0`aQUN#h&<0XKQit73v{taYe6l$d&U556a&w4q4MGh`cH#P; z()1I;<8;L@?6^De?L*W1%944H4Sv=lU5!xR+=QcF!q1e^(h^zuT!)K!N?!}mbdoA0 zMt@#mK_{K?cn@m9?^C${b_uHb@Jf%@U{?0KkggJ!(k0y#ZCXrRq!aj-iAGe2Gv_@h zd{t;Rp2;2qH*7ka()vrl5FPOl1N>kv%2)p*4U5u9g#{@ntvSl=mS+f-D5rfIrd16t zXtkCT+#)|+F~Dtp3%iG|?qyKJy2+D-q3SSVYS-|?cd36hUUBigeu68D zy;&tLtD_vPo{*)8!oQ$X(Z_r-=c?IgcJqdT=W3S7*P#p3sHw08KNM9!gQw6a@+x-D zP|-xbvS4MkCcb0)4Vuo!OUI&wsSbB{IzY-|A0a=5ZlUffK({j@H7rtQs0lmJn6qcV zmvvv*%r7j&6_5IL5V1kJMbhQ>Ga84bo+_-=0a^Us%aZYPxQYyZgFBsNo~uFOR%SsN ztd?j_?%MjLFPw*LMmE2Q$rE@;3f&4T1xWGSzt~3O#BmvBv?)t%-W^pXvXb5{#bN#O zm`U0iT$B6$K6W;?tD7CqZ(%}2+;1^Yut!@N95clJ;5wy#Z4U_4-;!ij%R|H2l z1d>~ufbJAlj?k~T1G8IF#M*37*=qWSqr6_(m|Yr%*%jmZf3ZPfSVbLi2}VjI<=Hv; zqU0{a?-`s9if6(nZ9)0U52Y} z9dx%+nok^#!l=jR4Op)o^wFUUUMma7_WuPgj0kn$qwX#4vx`(7?9yq!POZosgHC<% z!rf#vaEuW>#LP_7s)1Sg>Q;0OcHkm-e>#*Pr7KCJc-?N-F~#*34CZtd$P9gv?Y`GOfnI;1%1mEUot-2^^WDBG4F~l z7|bbXERWTw7A;_(|5{MEs-hIAE)KsUPwXu15i~Pj z>i47M5~_}*s}|* zK4Wm=d7(4~2YDhAeZ;STtET7YE0T#Cw76Q0u@Uje?R8uc94xUVOgVB=s3PF*E#^gr zMELAQCggmoQmY%-J#@G=eB=zL_vT!?xP<`}woi9^ zJH&5H%cwEcI~Tzw({QQmh0tR#V1c%qBpIlNz%&AJhN9=N!5#0v1kW=}9VPKB=%z;f zL{GumYL((3h2=0$kW3>UqO~(>wq&lLF66AQ(!QdZDDAYLo#3sY#m-%Op+a;vz69>N zm#+HmRW%i$JZYxp0p+l%j(6`qKXCD!z!Uk%WzZZut`Tq)@YUxhZpX@7*=K-;F@xA| zGR;)g{RDdM&OMvKbn)N$n%(P}Y$=rWXEQhU)ky`h@1Z_&bl!Fs88(TWR^vwOo^tQ-WLZLIj_I!OX#lHi0<+FPa445%nu z?q5vN_9kojBr1>2$O+aRhkb(Ydso3Aix4x&juqD;h8WNeZ>k-RReRfx=@sMSk34-a zC(n$JPQ~Gh)ZR>G@|n+3jsV~EFknYEf`+V{>h$~XJ#$c~_~|sX)x%j_72grM#8b2ao2*ZgX*nnj@KB9Q5(2BbJHrCaXXB1xb zHleHgy?9;%OeP|y{j1X4YwjR9L0a5iH+hy5J7-;=>8`15(hDPCH=zP{oABs6DSHCE z+}w3@G{*!1Dv#i^k44n<8;4@%$CBMmgl*lcM-7^yP_u}5(ZEF*t$Ht{!a^^=aR^4JqU5Wb!#7Q;}BNPqW6Rm2bC0fljrpx%jFFL2#rwx$tvAAH7Ou=@+CUq2?fb(Dqx$50&naCfO*@YxH_Pr$oYbsxYeG6pX!i%V%Zs8>y zs>r00z>_xS`09AWtTy~u@LsZ&@U3gTMk5UHJd^xPUd;rT@5-TbY>JDiWzr2g^HPHexDcWiMkdOkqVnQ~c=UQ5DfDg4v8VNZ zyib-zS?KhxYpQdQ9m?FcrNykXMSW%S9to-%6RvI6x%vv}&ucil;+k(mfW}x_U;1BzKwK#(>2R;pxb} z6QfrmoBi?1$CU+I>qZe31*cv^_e}wY7Az%ApE~&v(HDurYF9jm1a!s?2Wit)X%$i) z26Hbg^hx0nK9tY??gZMU4)?+cl0G5?X9!z`_fX$qiM}(MQL5F(t_A^GjK_?fi#=MX zj|lTwrf**3aKgC(FSwg|!RR%O#kN%u&N~hkN;2G7d@Tr<=I z)&0i>d>9zRt!{%N7=7W!}<{%dT)9-S2D#HO+3&J-n?Gl5NTrXHM6&4*vYRhz9#qTOI&z8 z7&E&5x}9Zn?@Tu>%ikku-$UPL@2hn-rXs(q}32OJ4-=qsbC!kN?(5 zZEt|}KTdC&k6bptT_IhYKwc6o_ym%%6iuFw6r@6U^STga!+4c-*>e5LVEjt4POXu> z9T`NG0;9G=pCt3K9}3UP;+*g~{{cNesnBrh_}dx*2^Y&gk9Xqv72Dl6RXZ@SKx^kW z(hjYQdj=D5csv#Dq_o8v(`&EZ7g1wlvm#g7CachURi*Ucs zSV}d%d`k`GuXBF8igw|idtK^dzo)6NLRQfp>OY4SNX<<*mSDF1MN0@4 z#Nu(YbehgAdTzZ5 z{7z*-M*1hzTQnnSnC7A#3RPv+a|Wn+q9}1iJY_pq+1z*EYbeW^_i_AC>Bv4n4GKoV zBZKQtxp$!sBe9VkvI-DKD;NTMGR!Jm`FlQeDOO3qF=&CA#w`?XtpYw(rSfAB_gW|w zr4+G`X1jl=$nE+?@#52ksuDnSL#;8NvEBBM$=-p zaPENo1AMebtH96fPuA^C@748v37uNfrZ(Q4N=mlLq-uj)_*5=U-Z1SF{RJ**~rG&!!k4EevDyj3TzC{%LuoLoy~WT2`7f zT2)6K+R>&QbOtlKkFIO*9El-tmzJ&Ovqwn#Y#CirICn=K<;Px`bS&l=j`!3Z+o>qg zD5w?@G!lkJTB4sSkcc#YTxuID0~iR71au}fljdHPS|!1ZV->;I%(_deQP0;6)Q}e0 zz5XSFUrrJ7+(MMy;F8=LdCc9*aO{~5?4cO!3?A}C@tP%VU%m+zA${AAZdy7W=~v8o zH|@ruW&t7wlP&KV6#DzW6)AtTXkOiJJ1!q&1=7u_x~o9F#CD!gm zMc}+nr$i1q5M)e^8u5&6<+iSc7o9N^o>{N#Y}|8bk5Cq#Vdxf0h{@rFF`4SnDyL81 zjv>NR5BFW}6X$=WmO)%n(TViiygP5QZp*_%1nz`CQ&ypGR~WXK`vNPb)ZSGGp|JP- z`jr?(;i|Z4*QvC_6fS(bwp8=NO=`hi3t<8LppoC;s6(=6vUFGd*Ec6Ei&xm)dg?%R zC3+ogjuFIGX|$4IG?mm-zZHa*6-RI{#%55}w4-<*c5)i8rWR+{Vn_-i#)NoU#Bujf z&{%}+vr7h1aG(1wZFs zXi`~%8L>l;@_wrAw!o2f*6Sa>i^}@3S>RFqKD&dLneP6_yiezrFjTDTRPFQqSy4Z< z(XgnO-J#8)<8oI-0y>9!)IzoW26(dhojN&cq(MK;7khOTItg2f&zUkVt!uYm`y5{D z_r^zQeS#89b`#GGlzt_5!hJAc`i(i@g%?zkb!w^82dRl*(Z*8Y_Q5tzRGYEHjFOh; z0sIt>UBo_)k*98z3KN4z`VC2JUUQ9(hRb*5af1wm_qGC2{;CIS_Nup+%Q`ae0lCPD z*cskAuDB}M`S7zzUVf*>9VJ7I=)v1VXDp<`V!o5SZ_aL*zXJ8!)#70Ll(whK3hDOs zb*4yqN~yGImwS$-!EH%9jm6^`IUM@k)ye`mzYq7MG0L8oCrqNBfjixT*?*=QT1Mpl z+Q=hwSU`_`R>Kl%8!vEjAtObRESo|gOV>q&DBU&Gl$#sAQ6rv|Q@(6;`o>qxU`HkZ z_jie9dZKR+FGFQ>*lJYh8Lek6ajk#B%B=jR)9Y^lh4k08_7th_zQPw(>PvjOtNPXc zT6UI~{EZ3MwaxDAv)%bK2l7wf`(bpA(pPKRD-G>mDd+fcqb8IL8W9LbF;(Ho_-01k z;-G^YMLEG}=gPQ0--YtORVN^nfhh??7}Zr&O{8p4OZ^Sw`| zISo!RZtgol987g+n9ZB-Z}sPc-W3kxk#VzF)E%9rl)7P|-uY8!m6&0^+IDq5FjeNC zVW#*nvt4lBh$?8$ZyO;MTxH2-X&?8y+Z_1|m6V^79OmNN3rmAujM)C}17115V1>{W_(jokoDds+vE80%#HprX@(Nh0BJX^&BYD-( zkF~%Hd|Ut&Z<$w;UFBPqB`r+zj{K>1%wzGwo6O??Yj++D2$IS&1D@5#JZ7 z<-MgtCqa(_Be1OD?RCRn%+mU|Jy4O+2Q^J?l#5Clqpo=!8m+Oy@dfO!h8)|AHjS>@$^HvC zX37$CfgP!~L|UQX(r4L>>Lm#hn~t4SH4EK(&AQiABiqK9jKnuL?8Plh$#`d6xoN+Y zKmlpKy7r~*8~TjTbctf!If;p6fXz)n?qBS@!RlwJM-f4Tfla3*s2ty6gVEDWMgw$p zX8VHX406Q<5HD<i#xTMF43 ze4q)rXH0ZUU#QX}u>e7djr%bWD>R(WW!ej@is^U1RX9m5NGA>ov6*bOy;DR_OZ}2>309a-PW5lpr)yoBF8Q>~)_%EnzH%sKjFENJ`xQk) zj+ei2Y3Aw#O15t7?eB9Rp>}>1l(Ks+ik6bW7;Tc6Gr#^9WNBQ9?B(5#roVF)p$QTl zXWZANO{Cq$e(N5{-!5jE_w@7*1^>)22qBungrEKF@urdCD@sIlt|HbIf+YTAhfK+> zS#P@YB2n=6wFI|1#TdC-;Zli1H?8j^2LA~;7pFQdu4Y1NCD8Yp6CLnlq zGJmPGRzvp73}Z)0 zgQH}Ab(-(jKT|s#oe%vCe3csh!73#+MTZ+aCjc?Cp zPyCj{*qQCz{49Q(GSryDqH4iWbMs8EU)=#*jwcI~n^DSoJPkU+-lgc(9g%{e>T&PE zF)J}#V*>xPWTNrYhG*tGSQ~gdVAR(OmBb*w89ykdp0D~$orX;{_jOC(vqIxNHM2;? z-yK^xBkcSX6q_n0DO1KlFzMUJL-t`It6v-cdV?U>Wy;Ld16Y4gTo8qgiFr}nT=H2W z5vBY4$KaP><)2v1Ex(wq?TK_Re+8w)+rdyRZM*HeZA-lzv6Tzxw+xTFfNkUiYYVJ zSYQ(?n@n~s`i{KySPn{sK{G`P>uOd-4(}1OPB;qlQ|j3H+LDhTMeFQ1$=!eqiw(00EeFNjw|&c<_MPEx?wJ~W+0p`i zs&>cPh-Px9lxj||o587D=l>5BK_0b{oz&T6TjB6_H-v)>}^XQiB zFUst^`3|E>`jA?};{Dn#^XeW@cSBzNY`08lj^XfP$^dD6*Win) z$o##C1F)vK0YLllCw-w?HPQTsFEaHAxx{Sh=^XL_1xKPK=d`u^5GlcL=!#BEO^ybx z+~}jcR$*C;R2*Q{9AuHme8yMRZ8-OMXaS&#_7$Tohf)iE%haD)^=1+9VdN}`zC5V|D zf%UkHjYk?z+O-u$jKz+~v_~Vwa~pUdV;mn#b}L~f2I-Eu6{o8JnAxopUVU@>{{EV3 zBL+m@b)Cn{3I-ix(R6OWAq(dFg$p&}ZrUT#h|N8%WfJgB^Up1ftB>vUP;R?aiLi+3 zqw1L~2qTP)VLmnt>o^NW_9UYsS(j6{U8BCj4rF%6vduT6=l$~M$d=8}TE6(7g`s4NIBM{Sb3WQ!0?}q2Rx9Xb zT}0wDcxAQcR602MG}tpc$Uja_b(6Pa{o=>tulw&`@=$_UUd zYaNAuofUP}GI@#|n;#UvoiI7g`|E3cJyKbH3vhS8cqroT7ikiUc>wkQ?(p{BP(ic) zXa<-?xh!Re2bKUkQj|vG`NM zxaw^;kO}NBPjUdUz?&~EpYk^Obu55>@wbV$sRhcvl>g$MzOeI67xo5$nq(v(hnMp1 z4-1kTd@qGzhHJ~Tm2M$Vq5%XnIwow&C;BvLQJnVvUj~V1-ls9wGLpWAm8DySZ@@?O z11#m40J1zhpMWfWt38+u*0YfK%easLs)8H;y)n!FWfI{`W-aH&S~s8D`u;`+fA}YQ z_IepFi{2TX|7S>d7#>thkU55{jYDXPp+}5=Vc-& zq6eO(l$C1spBeBPYY}gIcM51QHSP+pdal%{T$5e2L^XEnt1UqHFa1f;Ck?jfQJuiT zijZ`ZtZ3>l=OULObj;8#xY8kU%)5?(u(^Xr)b{$aK+dyj$)ywLT%qr>f~}nKgMkt1 z_*CY0;-^D4lNKKmz@^lK{|V+q4+_a?#%YfhE7`jy6LM2}15_h;7!TfiAEK8xf$EP+ee95#!)Xib|iEW#_lQ>NV}5Y232 zq1FY~6*%pK+oULYTr>1j;mr;Q_@|4TQE*g|TO>(>w)v4F>oPy>V+7GMU8Tt#K z4DicIDU)0R&v*q*iB8`@Z4#gOj34rTH}y}UWKGuw8rz(>V_Tg}Y}>YN zb7I@Jt%=QvolKleCbn_%Jn#FR@4L>Q^P_s#s#UAjz3yIhUA?=j_foPgK?1J2J4S#U z+!wcpecmz++E6%e`1=S&h0?!=pc38ooI8Ogm-x%tK_y6pPzkF>by8!ZgS1fSO;mmp z7r#2!g_kf0P4!vXty;gNKlDe{Vm)n{!*sI}E7QdkoVV4|($O%?d}iQMqQD1(th>JW zGjO~e2=k3Ewi1_u4pM#ZMMM2Wol)rcoT{aEgU$ob`<(uQ2!S!sdB$`Vz8xe?hA7fS zfm!Ak=^+%tLXxLHBP6P)yr`li zSAgKa#ix9VIa%JkrXsw`st4*NwM#4%W-FZu#r?l+EQ#b#A>dGu<3EHSe^Ymg5|CCb zGE9TK|A?rITN%>Q=B}Y(xa?Am3^D=jkd|N4%h;BP%goGYyBKX1+6^KirR0TqWz2;vr*>_ zB>~)_QlRp1bGhqH6K=~xf`#~%GpM^^1T^t4%@BG#@BUC`7 zgste46X~*RNq{TYUfQ-nJ4uduw!Cfm8!UA1wu}=&!NLdR|*`xn?e9L-Z}2R?H+#eJ7WLhI#OL{ z;%RU#*O=yh-%Z2wsj_K1lHN0I6vMq+S=LsI21oiOTWYDT;fw?;;g{H}sj&o~vNpR8C2pa-<{iq)du zRf z`Z@K#Z{Y3k1y}@JCuH}Y)Ewk~tAIlLD{)jT8H9(2U|&J8)~*Q=q?%+CO`6|M5^v$c zC$LfH=zc%qG9hzI!i0r95Ey#PY_S@t`OuMfb@=rOuU5~{Qw4J^z1a5N^q2U32QIX} zwzgMh>&3FVR4N5#!05bvH~Yl+^rNT<{8_HMOS|%5F^tpY$x&jCFoqbU{?(J6FWqmw zDwKNn{6s5m@SjYfzoUUy3L6ej_ITIOvPcP7fMqTxnv}nq@NlWtAY_Q{ealba>*M@& zuWt#Mtj8`>y_v|nZNo4bD1>b-@#&L$=?Y!YM_|=+W@oWsBkQZzw@za2&f;%xZ8(yl z`hk=A!3THNo>4m&Q79?{p_Gl23#b{pktKQ>_t~7XBOsCv(w0JBj}%zKi7(9h9H=S! zIuCH?skd%uqscW|e=yF?4(x$aq8;zl>;FM8fST%5FCN&+5prD7EgRUQE$ z3hQ}6mE=Jox^OrUIGF1#Ilq`Rx{Rel)v1yt7E(u?CXFn`$fdU0W>foAb~Fjijbr}K z)ZHc2^tn*>$5tQiHKA$J#aKUEz&l!gnOg|*t}}0OL)226*o=P}J3aha=34~|H~{a5 zROJdHL8dXgOqYC7`P!Pwb=!dJ=1!?~+7d()mnH}JrHc7`@zvcYiPBNmjd$=&;KNP* zuecG7HRzowAHWNLX3cpvoUakN!F+)RZno6wQ+F^NYi`fnaCI#;0|eb-dsSnwL({TH z&5ucRP|c|~!ZJ=X&>*s%)(8$gxnWO3mbi<{fK*u1C{YB7b@3HYM4ZjEi~b|h@yHmJ zIxfe`;(EOvgl_h!R{RoJLlZ0XJQXe2z z52le{bzjzZ)R3w8_#0;kt5Kc5DG3KXrE=FKs5Xw-X%;GqSyQcuKZi?_!yXO;{i=xW zQyPePcsx`s!oFp5FWwrlHhUnsymVAlHO1h+N1hS3IqPZtQTLmJzF7K&OJ%gY1GvOuZJn@Ug zeRE6vS?iF3B|l` zP-**<@FddUJjEY^ZQ0+g(Muv zG{r|@T>9vp%}Ze>Ybjy=*r^~m5Byb6Ty4x^!1r&A!bvhAWd)6OyzFDH$*xXke;P_F zq|pnFT@p2GvRKX<`oC@+7=6B{;dZ`56-)?KCtBtn@_RJ+74m}Ri$fONP^Og*u3T6NvsB-4IU5lj&7;R*ut>%{C!TH%KBNmp#M^~Wi-hN?*X z3}2TiYhLVz=fhfFQ}$grT~!t)_AKtC(zFZcRg=Gp|O9f}p8 zz2TwCI-Yhy->2i#_O~g$-_!$$GD*Ghl+hvkm^sr5M*w|KNYobAB7CaDvD@_0e3v6g z+aIbb%#S>x4(Nr;nndR5^js$H3he6I5AvS!#tf~kebuRAWQD}oEth{G;|o@StWGx5 z7qS-n-oAfBVV9+M+$VavN&OWkbNiORGgKtckNK!;hoE!@TYaqnF)k3&4PSA9_}K&Yg~Xv_l4eO{ zt1&7fDC!1ziWTsLYj_yq$bDmo#WMNBQ2$O1PIiNu=~}iHBLN@Zg!KLG_SNT?4g#XL zO2KAn-URBRp#0D0BMxbI@gU7|>te|k!V&)lx100$9ZXc|)>syYSs7gR6pvgtheVyK zI|ILQ`OKb?aF)c)EoRZ~4}Y5c?g9)gEy#wvmE)&*<6N=hLcK}IWzRO__*NDt)Sq*@ z%PW;=BU=T(^mfr{hl^F?@FzIhA4m+L6arxcw8}!a`!H=gb27@$^O;6PGi^;2L7S16 zVk1Q_lA|6AApUZjd|;^-^tbs9xt6S9xp(92>6-hqfCWJ!3QEB^?DD?YtGp*_kb-vD z49a&;DRC-zR^k~k@*3neJc8-O!H+bA1GRN)iDYLB_Ydr~A9t`xSz!2>L4^*Vy4er< z5snO+GpYu>nk2#Cv_G@1b<%@il4D`kI$*M`-KqkY?%=;2a!n(HcFSzyPRfS$k%m!Z z%Q4wp;Q9&#u7|eKT_b7NI18CHl~Bhz3y%{j_Y}Fh4k8D)Z5eU@=sQV24)@Xw3cohc zIduWM;qSykUf4_tKA$1W?e?MqIF#0~pIN8ERgzI|`@_V1!H<-#tjz|xNQM1ppK zPPc>So|Ht+n*9Nu^=jEf^8GFuI#o(hje_T(8T$;^X7jRZ1Ey)lQn8dkRe?%*WN*wz zjza_dm^2&8=EM^Q=BpY6C#>@DE`Hj*(RgXSy_7;J|7Vt=h+e5@W}iU7DMJqZ41u>K zlE=%O{iIV*Lht3u{db@D=~r*e%Q%kYfJA4QM(C_(%nsoy8}LVd%`8_{E)?c>r(Y$1 z#u>ixc!}hkgKHuuzX@h=uX9NC-j^T#v0Qfde)1vXk-KHYartR`r*uipoUc~oJBB}1 zYLaQaS!WK zqJqHrs$-d3vR)ajFK!kKnb+aM^M~8F0s}c$Is$CT6IEyzbxc~6&X*r@aqVF<16Yrq&(7=bw>U+*sVUPIi z5h$4Gw#a)B*V3$B1U0|)h2+B(K! zFF;dOnN!bywKmM&Q60*Df0!A@-#!*Jm?xfc-mooO7GICFl4*X$s71$vo!CBUE``gA zHF>rWCp8SSV}}vr8#RyNgAQb3=9C{%KIP|Yjc;q>pk$iA`DK%EmXQ_0O*u`-8m}(q z82qfXW~`%vUaDF{6Qxt9C9+ER6vXTSTQ#|rfufn(;$#LFLWiaz-v# zMbDNpkn4uTfbfYU62^`+>q@rgM;am|LmCMBnVmlLf%Duv%)CR23uNLks7;7oYgtpP zUe_(%AKhBzT>G4tHOD9e6K6xy=804W0DihSv+J>+Yag*Qg-Vn!h0V(E-|0{0i3@Xr zq;B=(CUn89cgw!{VL>Z<2BC8a4pR6t!G8olb_k<#f08&;U3~&M zcMe1*8voj}q_}8|(@wHyCq2tM>I^sFW=SKB&thUGO;xCZ8cL%rbtR{*R-)~`-!FeI zX=1w-c;U2vcuM65E4J%Z60zeFFz2dcuV6YB%Z?Vo3!jSIcnB^`OpxD|@#oCg=?e;7_D}wr)mg|Is zDjDqi%-Vd(ira)~iRMszqwJ-ZkGNVX6>W2a4WC0$DZkUY#;1yA!$j2b7L3NGSFOBG zJoxt5)G^SXc72nvbc8qazzpKSQ~7#82JT$*-Ob!c#Lha}s!A_a^E9ybJ^PJeE>1X_ zu!K`#Xc5El@!4(zed(S&8!kzIHabcIbVoGfw1I^akDrG1c{rpib4}IacLraL!iSUr$^4oXcIp`fWwj^MJI>au zy!!bI>cTVGTUh+4WooVy;ll-j@^p>7Pq!kz>N9U?BHfdaeT8cZClV@TVg#oUe$Fp@ zC^74pZIq>&DGvwqjTT(q9Bqc~-8qYWcRaMuhIZ$_<*bU3D#b`@bI;c}#ruRM{Od4S zmxSFg6BDGbOR7&J1-IucVP}Q}42?JW2{{6<_ZMUIR+2k2`@kOv-}kl< z&f1$jWS!b-WO=sQ^v=N~k8-+Z&A8$;!yvq-^P_oh4&u|(XhPg}A(S;)qut`_--P2& z)u47&qIPt5H-0tWJa)-I{n#XkW|2l@+a{jCMzQIIJ(fuw{nKrQK1^cpg5_a4+)O?4 z5CMN?w^;T!!1q|$c$+Z%oabtsaeGxQ5jDS4LJoWOCYXTV#44({uSD1y`vo*sfZ?Se z9;P+tmG<7joAr-n!xDT-U84StY#f{nI9ou$LMjbTs*s~R|L?-3rECU)#OMe2DqegF zL{q}IZ4;C|J+xWlOYbvBM%0Q-{q@pDexJ-$n9pkecmAsnTBhpBXsG#)X!TP{Fa3=& ze(ALNW?Z^+{v3OOwD8n+id~4TzZ_LH2?duwr0^Ivp_UoJF_^x7r~LTtUrSW93aUAL z0lV#e@Oo@{YwJ-V56XKxgU;|fS@xo3FuZ$gt?%iPJ{2yM)Q8o(JV(loTcl?uL8jnd zyM_O?KhQFwO;7GUSErtLW{mynv_@>9{1!%tgQHKGbS`L}cx5Sq{0eU?5l=Y+&qWkG z@0_URg2Kf5TnJVT;3mSJw*})cBBl0M`3G{?;8$d`B-Mf=w} zSCE%w0y|P9rpytXBtgJvYZSDnRbk}l&xRDNUL{5f8n)QzWY_TQjGL1Yfqr`p9-DPX z!f5C0q&HmnxsSQwDD^I{SmIUX2<`Nc#3US|Jjm8*hrj@YSDU-m#Kd2Ga_ys)HV~+c z`STBJN9#cS&8Sf6;b#84q{9?huo`f0Zf_YKShG%Q@&P=XthM7flN zQ{9Uq31iwMDiLsJ5&6nP`6t==CxqB?7z{cePG!usk^VEZ zZ7{yhQruE38j%4OJFLTZovuFcW6MXSJ9D)KBUgcGcfs@{c+%>=PpIea#0Z_R4j_a2 zt8~SNk@SG#A}k*k&QRPgFutbk%t+;G1xB>e)+d`YO^`xAMH7D`L2o9ZJg^-Xi)BVkS}(T!ymF3YapOvBkR28>AV&SdZdkL9%_&z-VjT|$JB>wpEwSD-_zE`Cn&*xqi?Xr~a z8Jdy=j;pq%^Fcg>$|Laos>Obvpn?~rYjJukw>7<3@ZqRDnuEaz zbBSs%qBzXqQ{Z82kEm3iB&Ao#35gO}iU{Aj43kg+sbHuS1ryHz=F407N=Lm;y6jke8!hT~vm3lhgjhzG{q*Uav9DHN3L1GOEh;d(7@zXXZc z^W6#o=S<*_P3ot%}KhL#Ut;n+5dp^Y0+EGkHc;W+l_+Z@nOdEv6-gYqF~d5d&?+}_xw|8heGxZszs1BtMyLM-yc za_n(42>ck*A@fLC66DW{UI^aJiDRUm9Q6}Qg3l|b(W1oDLw!xc_x`7g4GD6$zy0&s zR4kZ_dXPs(bGi?=zi2VMhTP{ZI=cnQf$bJrg zUbBU**t}p%t(!ve)LoyNOyaqOIwY=I)+-H!UBjV8@V-GZ6K7w+h~afK)jR2kf@u(f zHYh>7JitM*J*qs!0#L{dG9_|PLpoyh0(ooJIZxMrl|sOC^fJcyJ?Sw@fkLKHRX3?< zmq0P({9!a5gAfM(EqSVyh4@qyh0Ldu?G_FcJBJY@^c2~=VBx>gq7;;vI8;j1x=)hc zS*Jy4J=EXR7Q=x5bVa^=?g?Ky*f3ZI{dTw7pTC`n({j5YcWEVPWB$mF(2HbyuD`$} z0l;+^zSfeE_e+^_H4RCXZfJ*sUr^B1GI_KwI}3V?9~%L3>8$H`<`)>7tqqbQNgs%M zgAv2+fZ^Z0(P2n=kV|C#HPdt1hDai!tjm@*^f+AHMX?xuygsl)3o14|UxeFOCwJ6A z&gfQ5A+1hO0OBwpK96TjKV=zTmau;Z{9KdCfziTN4!3_+2=ys+iIEYcx z^tP9|BX|?888VU%v^pAlF>$K!d^Z|&GuYsVFN{XKj3Q`)@?y@k9BWstP|tOG{&QuU zTEavWQye+K!Q>IOKEjPDNP}J2RO=;?JtXG3_vnykOCP)DslJZ!Cdm9~%GaqC7m!6siQTBO1>kh&!Yv`olxL3(%RIxl}mRJ&I9! z?Ra3OawI+8css5Pv2f7*wi@X>B*FtT%rGcn1CMrx>|*6?jtGZ5Q5ExBhS>0#co&6v z3rlq-r84go+b={WHOA7U(>gz*x+Ctd*A0`hSASDCO)&SsAE6x&M>wbgwI2R$2pw%Vu|>}OHL z#hw0+JH!e85H)cylPM`4o4_07j1Hwd(KTEh2z`C zd<-%aR5ABoHw%@%l?;0#R#>nCk6}&>mcsZFJ31@l7?&crx96yXDLvOJYPXihq|w$k2Gm*gouI919wzOSbDiXUS_P|#cSEnj*c1h z2nS#fl{-mv5JjVVVq}rDtB_CIyulFDPCbKyPG7DTH`FtSjX6TPLA17)C3iURRzDAo zuvzY7UR$U5zdtA*+*YziJul8-CwFOTGB=)4k6Sr;?#$2;Xkem6;bZQTmDvsw_BXd7 zgR|u8ZS;UXS7Xcf?Tx^K)zn_Q1XRWhxUM6ECY)o^{}BBlN(6QdRD(`bD%R_zzkw?j zY2S-64lm|<@LZ785ulS!5AIx72T$?+%QXs_`imvThFViTzBO>&D?=y!2Q7U{;&4iaib#=qB=eza-Te2YI{4pWwkb+KJ$Ecid$%(|beVF^l!86Q_R!Kx1f-Gu>zxBL zt6qrgTx5i@6Fe@+WTGBSI`erja6hcA)=J2wpH0U!zsgVHov2@qNwRftBOc?>;nBe2 zNR)2mvMR%6+)v>z07K`;`E8AO6rpp#0I_0xmd-J(ab1|AQ zxus|GCzZFn=+tR(1&Ke_xew#AtFo8_hU1D?0}AKQ{o|O38kioK<+1!pAfhFHZZ?yB z=zWiy8i1`Lp1PY6@L3AlLCEkZ2gaxDLXTpelz9{?_BCPfWQi-Y&MjvaEm8|Ir%b7x zAT6D5ne-}f#o+> zPNnzRI}QYG|LC`L@8Fb1qS(n%vHTG)52n=E`83U%ixI4i?Fg%a&i2%{w7=X4`vR=R z)q*_}cr{v5mt+5ss$%O&0F{ET+U9KJP%rKnirSRO>zOv}oq3+& zSE_`lFPNa$+!+m^s!YEQ!4CEV4#l}t1mqB8|GeTyB^?PZ`ij!wb%0+6lDd#S!1*uwU#O3djKr}Xo+IZ%l{PjolHQgaMe|Zy?k`Zxq}eqRGd? zsh2vn-@CJOB}}vAdw3xMf*AT`JMeY2@@YI5W+B?mJmV&pA=#+yMO#qWzK70Sqk+Y+ z+lz&~KEdv0QIaIVh@bIn~1Y)iRxSo>|!j%rW{w}P~Z;wUo`4!=M-rF8h7%n#i7k2P>&?HcD1b5Z`s=`w6X}=!JlSP z>$SV_CzERV)tY-Gx0F~gQ#Kff40^(5TZ_jC6_mdfH8kVTe}qX6LRrb2JjcoYbSb^q zb9&D7tdN-1Q%&CViwwF-7i?m=@xJLXL_uT|4{pPq z5)M-01?^kT;$d;A5tmu7yq1i}jIHarhzY_kL7boK?upS5sUF=?6QJEV*iLk7&so0? zUqM*bVc(3uRs4!o#d>+kRhU7`;5Qcc>qLiD{1y`&QSUc@k)qg~oP)3a2ierEu+b7B z5lUi{qX+?zkP)@q-%I|2GMH|jaxIFnVAohb-&?>&jv*3Kw#OG90FLloP|tfVtMdbA zzCZ$nm)fUm_+?B=Osx$zJ*>CZhrow}?5~uuj_x}Z-J8rO@MaKjuk5VG0Y_*B--Shd%zrLioO7F2`T)M7f(f)T( zYi4p}hyNR~#%+&a__N5^2AgYH>L~=;f`2XeGPthF_xOrh=P_|G7*n+^cj~7>EI1)! zFyo>k`Md9XK%wt;uz}4k2}(v1LeEk-h11i$O(GChfk~H5*gD4}g3MA%9czJ<&u; z6Rh&aOdRW^)aOnhGn>SI5PnSl)Vvj!4`P>GM6?{KleZi&P?yGbEcP30+Rni|chFGb z@NYd{XoK<0hT}H4IZ!-P4aQ6Yl4>~q6ck&fx!Xj%{8b~o!oZ0ygun@YdYsIC_v$h! zSTYgbfa!NF7MIlha~4!nU;pmgBX|fe9*rdy(QMogA%h=Yr82KZZok7{w@V6&8ZietG)6ScI>4qv_r8= zY;;?@>dvTm51NXT^ku1j0i{?d#$!URj=8ry5)zu6@~G_!M+;J9E_K8*1nHMgZC#_D=xRG^i00rLAcZ$E&pVqkh>M8!i`~|iX9gbij#W%9aivxbd48@CQz`uXd4gf>XxqGc6Md=Fi7iA(Qz)i|kef!6u2`AG%Ja*-qEujeso`O|1-Q(f_$|t&_G5 zyNXI52!==B;;d|CSyaoVZA4Lkwu=DUyjm>#AqOF8#tx{V+Y#*SF*#;w@wPj6|1<77 z;fq%hgJt)Y8k87IOq7=Dv-{k8|Jj14q=sVDKM&ak=}BMxGNpxxY8Tx+WXtz}RMC`3 zh?-RFeInrqPCG8#|IFyI`N@^s@7^#+Jvc3a6OV@~xVblZ#&`L~SzqoIbTEnyUw-0x zWOUDNE(AHvN15%5Bu(ipGm}^0&a7JsjeA`=b%Elf4O&m*{q?+k&aI_Z-MCprFZB)J zY49=;8g|W|Sv)j81)BN>bO~Y2I?tQ{!INqyzKNiFM)g>^#I}hCtZ_du<2U>J5On2! zIljuP;C10hlk{i54IEM>360utE?ff+zuib7HgjrX< z<5YMyP_cX9g3M{85I!2B=V*TKsKK*j^F4zEH)z{_FjE$^y>w*b<(w$^Wa};Qp2f_c z%=#f5d?*=z4E;bM*<^PwFioOPJI|1JY&h~$nqrWv>13cVD8$(WoLXVL2uQ?70TE7Z#N>JjY}}5H>840x8;drX8Lrw33pyS;;JJ!QYLZ zC_Z$J1gn#EKnunkB9Dgwr%`MFW2d;ndkCgw;w;XhCfpOcyKRCN`cT>(PGK{xOJ}v5 zn_Udq{ZETD?k9ETdZG6Vu{%{QHS0f;!oNI)^t|6-oBia4M8KP&E1x6+OhF8+K7Z@e zH4=`lOay+$X6;tE*FS*hPhbc}u4*cqD6g0Z+fL>C>=54^(0iKUA^3+Dui;GHhobS4D3+ZVWZ~D6E^PupFFC{yc^*`Epoi6<3 z`j^=Aau2<;>~!mKONBg=+JINe_Hf=?czVAfb&f>>Qm@@l&}GCSt9*CD`)WH;LL=$A zr)pTliEZOjPgi};3`|V^WK#HwIGJ|~b#NL+wyv;4*Q#--E~0Jsj2|3t!u!*8VWz>< z%SNt@TYPMXBoaBs%CH5?jLu4J0zTo$5B4Aa9 zl!6iToX}?j_Yv{4W`1bMS5}`o1xj)t+T`3g=Lcn&{`=)*Fd!W zjmK)uL>Bfvz^=w6T|hbJE$f?E6lR${PEhN8)B!^l8)InhGyUaLoUwhCBoZsSs}3n& z3>oVunDDnJ#~&Q{hdLX+v%fGT4QLiRh9=e(9S~nhX@3@a?Bk_{;xe&}x?SFD2cOI5+3S5>!&UrrCM1{7;Qu=2r~L+|#a>nbap) z+3RC8#1Mbj!DqI*3epp~*zd(Fk>jB6MbL4k_NH^n!5Ro1cHfrY18(Nw@rM5njOAoY z=5_@I!HVm%n@tk4&Do}Si*Tu|3Xi#(UWjqIne)6EDZ}mhA$^!Sj?iBgOFZUv6?k)8 z{QZl7E%iEwM2f@lTru_c{yK2m9oDx?Bo%mY53R{;7S+mMUK6>5_Z=D~=!XBXW#7tiJCrOn%jfjAF=CpST96fAYIw;GFYc7yL8 z1{mt%_(@@w_SdR(+RH|R6_21?(lAx5L5jRnz~i0oipoajJm#mK=#dON$uZ53#$qS; z&{JC!yH3pMar$PAJ}YX8fD9gsR!&4>;DDE&gI3O@EC}>>IT|_1?lU4)7iGAoV+Jcd zdaFS@g7CLOgLRNk6q7iQxgQMWNvYpj!^Qa}oqbGthMTT*om(u=7O60FoovO}*w#o3 zChPqn%TKedNzYwYsXF2|rI7VD&~COmIdB~=-G%#x8%7;^H=xT^Mqz?s)Yr(oA*UnI z*@GIKf~sZ1B@YkurzTEj zKOD5#o`E(1hNk+r8M(yOYKuxl+~La~uer;%U7;CzY!#c>RPgWe6%5J8VoiV2p4`Fj zU2Woa9q1eH zCifGWDCq(Q#{fCb@gR#Ss^M4z|1ha(7w8yrD^?+KrK8Y}YKmuFvl@Y(v`HxXjN+l# z!1B?zr2hIfgghjdub8`8J2}=*q~zDjJ31?&g6X*DrNpleE0=7M6{fLTs{z=l~pPq-|R$($jR9D8Qy|~sS*e~YmbbDf@hIwv=&8Q*9qkUHDbWp?js~Dw7P$b>4 z3ez9Lyr#f1#&@mJL^62Li6W#DRn5tZ$ftlycbL=zhF42q$k9+wFo~l>s8+E44H?8e zzYp(~udgAupXzzRN^w<<6LJW18Lt!>-61wh@5zu22C2G;%R9;Q=oBj16kdTAUPzav zxcP4aYTHX|!?(m)A|dS|O=pq^W!vOlV0^rW?tKdO(OC4THLbOYT#;;zx?^;ch7AU( zX5GcS6pL2)4FBMn+vI|`66BH@_t$?870&ykSI6m*0Ws&G?@lsR@}Bv$i@_$q^D+;hF2WW93F6=2#9AW7yle$gun}Nj6|@19mRAolX}x1N zhM!x1k+lkNZqnfF@IjZoCrr6}ZEuRsy_m*Fq_K8GM1a~USa!cSnm^y2AAkR1+a?_C zouR>jip_%)d7AJg07i^%9(lz|Pt*xo?ebHb7PZj|V{CO&<8lm#V60yyz4KK~P!z#p z9)Xp|Y}3)&M|o49Tgf&m+qk0V%{e|thqW2ir;%2tF!XhFz#!Chzb%?g3FCd}ockTq zh5QWCAu)Y@Q_&uw8F}E#ETPC8jHVHlD6|B@2D#5PxCyFy9B6*33j<*Ha((vY;hSuf z@Iwmb!kU11j~e*CDEPUfq+>wMZ5ENWxd*QokUL@j>7hwlw*VV2#}e|4P(-XXegF-G z0#Q*UHd>U1F@iv<1on7}r%w^!iFH4`53G0i6@yIe_-u$5fUo4Nh?#C8eE&ZTb*FJ zeRds$2BZs`-Qw11Fl}K^J3(5zgw5>PDxK!Or}dD+G(#ToO|#&P#Kk?keI!_wAnyie zuWseHz&`9e*P_vu#er_<#yN9>j|Jbo*MTl@-GPY_ZawZtS6vw`oZy2^y^6&Fr5Wes z)Y|GKTl{Wu{OH`5ZMVz;oTPXX8tdStQ_3i3g~AdupA(}*4g0un@s{juQLO@P%nH_p zB=vL`H9ZG{xknSNA*j;4p1Za|(1KqZ#DAW^?KZ%X9;fO^$nR>ukMe!_d<509ypr!N z%O9WX7Th!wPph!Vy0V-b2T!X1lCRc2PJ~jjtq>}-_cqQUTI8rE2D@B}#GD%n(hzg; z9>GP{A{~Shot?WOGmCnWBdjRkqb`d;+<_3Rof%eo?}|GLi&!onh7s4XmBiP3#+8%H zXeFwNISS-`N;TqTBZDx>bCvKQpqW{bl0ABWCU}koGn(y>tYIo!8yPYm%Q`$Y&xKhjYI90Y<9K?CYwP#+y=5QE!~#2Q&XfvEF5A>W z$>lQYWF_=QvRz~`ov6NZ+R<0`gxQVpD2!B-H9zFHbU?&=ZYV__lxBz1wdDr9yXvAL z*Vj~`S(6feScM2-f1=h#VxG#*m!RPMPmGtQ1*4to+YnF02&a`0PWTVQ;Dy4O8c@>? zu3`P^IG%jq?mQC+L^CfYVcDn*Z&E#{6!#`}$WP|2SqP{K zn(>h8(1@n3Jm2DmCsR%J2d*;QYv-=zRSJcpTL@1DEd{rgGpwgg$Gl^UKx`@UQ z=hT>QIrBds6u|we=t7XZ)74ZTw~81DmmH zsgEQs*qZe@JuVN7Hlz8SS7QE+QmsnFg;HsMu@U%y1;WFshW}&0DAYnnb3ffht^dT& z&4aB2k^Mw#AMdE#cVuUdVAMa>k(IeLsX5ZT%Mwfz`UC7*nkR}cPE2s%hs_#wQUSG5 zVoqjWm$Ig$5n-O4kaF@zV)_{pkSYl+la}#k|AxHen_~%{GrZ;_g(ziEHoVF$F_RBc zcY62hZYoFOH^CswsjJ`VRj&{Vgph#I_W3kxKG$~_FfP9@lsUmX-ivc;;k20eha_O@0 zKkj}z&hp(iv76&_3TO?dtKXmyF2%}Ai-kAn?-_|KXQT>Z5Gy_`+LuqncV7Z)?O4?^ z54^(t7VP#Bf72gT*qE8Io}s%_iTk9zO~wFk2T!tyjuZ1PQzr`Mw$htX@-I<&Od zA_eI3g}6|4Z8=46pLgG&I18XV0~NS~oooTNPXv~GF`lZXP%pfgyoR23vB!su>v2eQ zd!6BUgG_c=B)oa?!L&ak$7sYfkig3J$)VyG9Eg;UxwiVok!(sy_WU68j0q^c9f&h6 z{gTgQBE(UizNebM3A4!N=CD}A9Dh_TGjIC0>otZ|gXyUah1l$6W9kxg`o?L1uZG8GRsr?T!9A^TzTrD&GOZ zTcnHp#_fL-(8X6rl2k=b#2qK`0{^Oc=Tb}{O`{0f2HN?z%;O>B$7pd{F(5BL_#6JzR?xH}f3xL)pF8DiE_3 zZPon9(K~t^W5n>~{=}zhb%kuU=X_yL4OEoaF7%K`>v# z^n-Mh67cg)cZEl7US?7J2JO>QKH))r%f3p96ZsOzP1CEV@3&6_G3Sj5t_>UbE%hx#Tzj}5~rhjeNIhp?>vwg{2 z>;R50GC0_ozph_%zx=RsF#~`sK)8R_XZ;5cI~#zRiHYg|`@+J>3HYb6f2sa|8r=WY z|BoH#e{KKg%FfCJ;AH=&0Rf!MY+o2S0i3Kr00-L_FF=le`Cwz^f@A-}17za@Z~&PA zTwgH(nf}Y$7iXMY|JZ-&n7=pxvVF~A`IiT-FP^?)`sy?NJH`qG0=^pDKiB__jg9#$ z`mb4REL>jU|GxPSm4=NCdICOEb)Z|q-4*w{D# zY+r1$aeR5;_?q|ij{T$K{CbD~W&R7{KWnmnvCaAqLe{T!zZm?772W^Ij4vksH$DGJ zLorJmQ@~d~{F__G6mjiI^oSNH%%4GB|Aa|@S$9si$X|37K{@3L}+wqM)e-%Y^;$0%&*@L#ik8T)sJ zn4ztujVFLg*xuH`)y32aAZu@8>SRX^V3c$*w6Qc6v@`z#PS4E7z{Cc}DEJ@T{{Z{n zUGQ&I|FackOzq5FELgwdWc*L}izMcM=>D(xPv)|){*MG;Wo2gq!hLNon}2-&6QGN! zh^g@xhJPIVcguTZN4G($ENv|F$w;_Mj6#u#SS|ei{ktVl*4e#l1*r zz9f<6jq^{gcfa!%bB{eR^vrx3b0*um*8CR{dq^X0QFul$tj2u*RtoCa&;UG&vO+v) zBZ!8^YPyDoMnXl!QjLyn|7Q!SvUO07ZZ-ayXI?alGgPn+F^6M3tx0}RFt5P!FDwuf za1bufK%Fi+IuJE1tlUo|7l$Lr@ZimwDG)dr5KU?}`WNBOPVPt1K)C&+)z!uI%*>FH zktyPH;FE%zLUyE~0>V{hTp){zNbUdCMUHiHCjaJ^aXhua8f8 z*H02GEk$yR1$Z;kdcy~Fq|krMC!?M@IQcsP0SHFRod^bJpVHpG$0B|rN$gnxF{_fX3)Hiir_T$9~j8b9UD z{OQ}p@qk45!1pP7r1oHTgzT8!!Np>|s?F6AXgc&s2>$;7T|lD0F(E(NEWoY+4i;`M zHf|08*a-mkG__=Y*g)OO5&V}E_+W+v;pgM%;0Q2>!~yoRG6zHcAp5w0+`#}>XE(5) z&r`>r2pI?jm|2;+0!+XbR`$q`t3%9S^Z#H-1vp!I0`yoQ1qcMNJpB9LF9S%8nK{_o zdOZ&R>x};!>;J5xq7I$_A4WD-03$003joN%&JEy#{P6p8f&Yd6-?0C(Dub;4ruAe+ z8GCaFz{3^~^dWisI|Kl;``=YT_xGK73HW0V0JEY4q?*A1y2s+zXW?Kmh5QHn|9u7i zn(}`Y{=+K&pSAxlN|J82wto$v`_G7f4*=O&*?Rpw1X9j!u8^yt-~hQG_Wv5I1^&;C zRsfq>x!L{8E#nG;ToMs`3rL|e0@;~Z*#CA|xky@hg3XkzTum+iQ%rw5G#)OZt(84k z*}=u?L3<$cSXln)gj_#U8;HQTKo0M3AIJrA8D0N6=m!HBa^3zsZwY%-2eXHJ$;!bA z069B@ypSPh41_=qfDhy^ zgb>2^PauS?=VK07AygfoKnO`^ONU1c;pp;5mRTQIf}X4g;pp~{w6j5IIzGue8-%3k zQw(9~_~aniAQT<`I0!cO|7Gye#_@N49&^gZ`M~}O=K72N69f0({GXV3{v!8iV27}U zRJenOE!f=E)d6z)w&ssc;1j2bgX^D8*1w&9iPgWRvOV?wYcBiWUP}iDn}@|8JseLw z|B=D}xghaEG#~UJ5&!UTJ$n9Jjr*bOoE;o&&0Ji)Aj<+g7w+9mWU+Vd94f^boML=Y}YkD3bMqWp*;TvQ$rgp2AU zf^boLL=Z0Oj|jp=;}Jo)Xg(qc7p+GG;iCPBAY61F1s%dg_Ypz3nA?ILYo7-~#~$SB z<_u{M{%3nQIZKeUps352k6e*z(_9`g@; zcyPdT_#i%xPchG*{Soj%f&OfefDbbCv_k?u$k0DqB;bP%J?)Wz4>Dx> zhk@fCmG&S$|Eq?P|K{_B$(4E6+@A}=pEnDT{KH-vOt*NYH) zFz!t7!<}YaYqK&=lo%qq_DjqdZ6vAX=B&t7N-p;SB@L~+6-Aw{^FA$p_t|bFZ}MWl zWF(i|vmiG~Sh&B0o=f(*BB5NsXoV`&N)sjHEpzUNQYMYY>_HMTv*=f&#_*+W__&np zL4#W^$t4@wq1e?^U!Eh6N5Z3dw5jUaW-_F{!|{WFHhO!!d$T=_=ZTt*%9hQ>Y`o~g_c204j57db#!-ldVcOy zx9%mo98(QADG+ZN`WnXRpM;^MJ0HsJqJ95^c$DHLr5A}0%52x-z|!~Sc}5HZlDTQK zU2T;qB{P=XAY`-yGHM?*ceaVUwLZ=i>dK+Vv-8Ch z)eA7(pmY8xc3n#>b?SY&__c`-)avR-g5F%hO14nN9h0HNNx4d2ZS3NwdxoG{)bWtq z@(E56I;Pn?NBatv%F>FoM2!b3R7YHv5B2Fd9P|^WOLGS!++W=nHlKlHw5QTldRD2B zgdJ?eBeC^>{p*~1%($rUw&58pk*J7cEKq8>U}~|A(gVxjkGndxkA1&N%C5JQal^U1 zW$XIMom3zSrM`vA1qvl1+Re39#Mk4Y@8@%0X&K=-7S3%%EmA@Ibv_^Mf-ZrgCIr6* zRLi}}!ff@I`l2}Sc9KN$N`uIBmvhs5ld^Ahw)=>G9($DZ3rzX^*T%x>{L#9~h}8ob zuZZ`vtHy7f8YyvLE{xU`IFqj^=_u31z6|gBY7<)$5Qck}ta16NoqRcA%~A;TF8PM@ z?j%rbH5WCe!O=<9?@OAx{!VY7yKSVD0;@)F1%k7@3H-*iR?gViqQ(!I`q&bIb|;Ui zV5gkoS<{bj`9uk;qyF_Pa+3Jcvw4QzlB_!uX^K}fyjb`vYyN!to_W+8$iEXC4LgVQ zD%0=GEn@Fj5b9FDx!9|B13eoUCdiS6Q)hD>9nXc+7$wF)j=R}PpC~ji3n=aH+`h@_ zm~nP05lbKd#}E3SwWKP9lHnbb(0%wcyKfA&=@iq|C}qcjVKE_?^}XN?Eo{*+{?){( zKX#&$h~Ljcp?8>_$vQ4?e^JWU9({PG6$7f0(xv!vwiQCZ=T<)t-2vtIYXa$mrBLUc z?K&et$ER)lyCEK7SFx+Q&NH1&`WJK@FHOG1VP`4;PoYW0Ev(Jv{JB+JUIv9pD~KD* zbQ#XJ472z7k-yAf8#3dydq;_$@dmizZ|a3{u|slm=@o;Ruik;hsa^NTM* zAApFdCh!cbD<2TI%$zt~#lqP>7Xsw=oQcjf@a^Kwcl&5=4&G~%TJfn7h|}2eo(a5c z3Dvq%7uMO@#S&S4ccnQ)D_q%qdpMw9O3;T|KbNv4#9UU!&bM{lD?Qkp7%4IfGo5)oc}7Shj8o2;-5_A{5$7F%Q{O%2ph3U%3_ijyj$ z6eTiyhY4c%ub2Ht{waQ$U5PqO(+i?8ri;{WJN2t*ulpCG%H|?WlbM@L2t_DyyA_pP z5sz%~HQ#TO-o9k#)Xs;cqma;hAIj|2`fg&BRgJ0b(!_YXxk=@{NE_BJx^{*3ZmC&^ z6(<(W^~bLyoHLtv`#stu)9#}M{N|^#)h6rodC)JE60dII$r7?nL^{>L*y8O)g`RR> zeBko?vNoj4ZnZ`FU%XCetZJp!3r;#1a?5D`r7ebqEozmF{s_DW9GDiep&_T-jD4{xthQ`8fh_=z=1I0WAJ z`&|5+FW8nf+5T>6*g%^GJ@r`hr>7551_$Y27))$>%weYUUUVK#3)V`JhZiVf20h0) zZB}=5T!Cb9I)|_E-MsVp$aU$0`760Fv+$^}t$LNJ=E_`z-lUI*E-|Npa+JQ+WTtNX z*XLKy4|7V9f=X?&!xLkT?_oPeJLYYqFGPo5gBOi0E-Ok(+j+Wy-VyD9<8f*6A7)7e zyN9sk>N;$jR_3nwS^m%5`WS!xQnj+~M%a0CM&p02-R;7MGZ-gxuSEu8S6V#9X^MZ@ z6ZM_!*D-SB@NzdTlGF*!D?a}IkzhX;nXfc}0B>6F?d>=;PT9KPF{cR2^H(WcZZgSt ziIH5>s_&4_u11|?L|Qek$X2#MT-QZu$sOI}xuP$(55nser^SL>2b^{YUgR{vxH+w4 z!m<}%3mIt@JfHgIy!$*xJ*MMc*<21I4h@&QHi;o4-D|FuQgzR&I-C8Xw;IQ`)&3XZ zpoVTWk|^`;X`y}@P9(uK($TgdTb*;;bSQtZK7sduJ5?RlI>o7EE1Na6#EUI_6x{>o}402wh+3dvikf zGho>J@?&~IR6uYkukjd2>aCAmMBh<;`yhFdwX?r+V$5Knw*kmCv$5tBX9L)>g5Rr) zeL47nW7KIcKZ&B|)i8Y}?zgW?XU6VA`WJUM%-in}NZD&EFkG7BSE5f~dw*MK6s4QX zEh;SEmmDY5jLo1m$ApDP_WEWmOi#s;()3TP5vYCCHn&O7N$pw1NLm%Iiy{w_?1$bGsGQ$V!YOrrk+hX4H;Ila!6O#>#rr8f7IRhd%ZJmHvf#U#QyM z&CZoTi?c^1&&&)y)k+zaNa$>a9@@?JOJ$9PBXMcJ?PU*?ccj8R%UTtF#=Af3g$N9a zmV+}LJI|_tJ*C^Qex<1c0Y6k+_vK2X7Sm}gYUX$YkGVzzvzo56jwhLAQ*|;mxAWJ) z;V_B{zs6a9*eLYEVUoevbp86#`yGWIZe>0vKYAaz?Pz`nk;-K%Yvx2v9$>3un?5NVkni&R+5n*kAe zZqLRtv7`o4p2PMD!p8S;Zw zEui>?U~$L$Jy*2Uo0m;%+nTejm|$wCpv0F%XecaHV!mNq^gxS~uugY2^n0R*W-GJt zTYGP|M1e%{hF=weId0XXj%yk#@Ab$+&f49))OGk4h}3=%n1OTiiF=bpd=!k0m@Q`H z-@ED`wj}0dZ!8O@fCz}VBZ{1MzogunNhF8+6bI70S4#WGKH}1U)XtrDr_|*1^d4qaa!peecvrE`CM=M5h<*+ zXBtxo7$_jFRfXo^6;op*D5c%J-lzg3@tQ4Vn#3cQSDyR;wKk8fc=P!%etJR!B1o*Hhoix8Mg3{QA zgZ*jWt~c>&t|&uK`{=xBAefn8mg;8-<`_UPh<@P$atHV~rpTkdLS{C2N7k@TR^+d) ztFW88VGQ~yEo0{F>8}94`jXZW^|$`3ukoL;VdLTN!lXpPE~V-er#ncZ#cg$SF1Ra# z1bcDm(}T)mRh6P)8|+^38<}@$rsI!}RT|T|`x$u4ouT$+(3Y8h^|jAXr-yIyS^~Ps z?v|%sPS6?&!S0=9>D8scw!y-yu-V1S3B{uIo+wX*CeIXu!Bobuyc2ff*&{UFn+dPQ z-`h#n`WIW5P}`%u+c_coYW@-C4Aqknrng9?t#bc!;t82{2mTxDlL1|~@=k1z#>N)` zS`~F>ykosprjkr791R=d!OhffGTB|_kSl_4ZV0i}B!|=oh5TP&3p)P1@u_k|36flg z#t?U`k5fu*#&fHN1!mNTprJRaqx#Z!~}XDN3*L%+cr$sa0rEh<;Q{xtq>}AIcPJ#sUS$+(fLeZrq@+7 z=r?Sbn)++fxLp%%b4vYWt^=KE(X!8BYk&EcFmrAX7AlhDgTP_4erxidJc@}+g3YE=OXN_pOytNvFNn9f)F zuA}v70}pcNNNbg;6u{ugmYSDR&VKIFjN`hMD#j7N-qb#y9+|NT z%ip8_EgFlA;L9L`MuY6u{#wqJt@usG-PI`RI4u<;J0Xv7{(Ah$m^lx@UH_=%t~7B@ zdIjntf*eyiWBB9=2LG#`LGg_%z~Xnlh=$MbirAR0-??j1wQ9J4p&EppRRdI2@T4$) zRm8Cdn-(>Fipg)>EK&QA1xUVfU-W~k*+b8yJ8tGePZ^zOvQU2k-zGY-cn>5HGcnT| zSs`q;t^Jb1Vta#g$u!G2A&YB2;ThM@KHn1}i};~?Xncz@_pr4OTMrGhP#mKer=H8v zwO}dXury(e65-?gHT5`Zh&8d)Ug*K*QHM5HhMTOJm0RN_KnzvXWK%Ih;qmUVuobONU7ch(!M@mVZ`%RKA-**(S!^KOcSq)6fB2V z9~KeK$A#x73r;>QZiOOk)J1-v z6D~6mfIUG2U)%trn=Uo_hAL{W*PBakj_@BP>^vV*Ixm-(wOB@7l|uZF-Ub$lOgFA@ z<*m&1@p*C^?EyJ|AQ24%1%DE2QqJ?kWYVWV=@ef*XMGzuiOVd4;%oqnMA(ue3b`vO zJA-`;{$4ga>!H*njR2Ok_15>360dQ)ayzoAX<=&nIUmVg1RjIVO zjOJxet}YC!_X0_~VXhq$Kb=?j&+ba`}7M*10O`4K7 zdF*bo@?r{mp$KlO2p@^>TE}CL-yFb~5mFY%kNL5EJzR`V#~7BND_=Fho@u3In6FKT zozdJ|)RCyv^AEp9$RN`oarY|~tE<2E?OUETm|aY$!!k^ZaA7V|;q5epBByc#S0F@t zQe>o)hi3NjwZ9#z>B+E+)&b=ptTo_xuY4@H=KW#slP8MmxXh#xkztUs?ngRj3R+Rx zZ5;h@9gf9JHZ|W})kK0AEj-#}z(9%&!tGtasUR*opExkWsGOerNWV8#d%C@K#F?xQ z$Zfi=mD%(nNK#VFE*Qd5$@WK%ar&5uQlF0Q&lA`&o(Ut-8}II3=EYthU_8KH;@SOn z@K+ESxZeZa^{7Ym0_$~osbgE%H$Q{JPaZfvyK?7Bd`TaXAz};+H}cX&#U(>zTic>% z=CP}5Dz55=5!6cUV#lv65k<#z+dG+-&WgHMnkQ0!hri3!;v%m&flu)%*RLGY<|EBe zL%bbXpG|_0e1Z6-X%B}94n1O3%scdDd@1x=3^2G;*$3tb{%$m0ZLJU&L@VnVQH+wQlFGS%MCvSQj=qZErcsR|G6B=<<$o4pOO6t`CmR$ z&rHV}{cPQ1SpVF@OiDC~Swr=0oZ$?X%24n*K~afq>R|uDY}!;t?&g{U*(b!AS`v2w zYPuhJjRQMXw>O<|#moKUv?126f&*h%ud^;W6)i+Vo&gHS`CII=NYvvdrW1*jV0V5O z*TTuv7P+6`6$bz}r1j=2D{6V~+SJhy=LFgg`!u`FqV2wx3Yk^ug0D1dEKjp_pOajIE$hDD0-Lwcr1#LH3{<2qq(1?PS7(?xiuB>DwaJEp9 zQuLsSxHq=UNdF5@WOCXQC7~Xk&MlSojsvK}xq?fhuT?PgyS(6OJciW1IIAH#+1F4M z#vJF7lYFvpWCCTiI3g0myt$m6P7!{`Y^WKgG4O_Gn(#z-vbWhW>XdKSg6}W&qG=uW zcZ}Qdv{+NG9DE~a;3>2NJ~&*?Mc=f}Xm0>Met5^NW753#OG4nZBKNYz4k>(%io&zN zb2#VYdVlr4Zg^P6{54lnhq;BPqz<7lD#e5pAbq{MIM}S|lo|OpGA4*iSW&Jp-gbxl z^u}0h3R-u7)ZM8B8RwTjX7$ak=dqb?A%WspNrqOryj@OFL6B#7N85#d1j7LMO=Wyp zM*NgkdKFq(Al0VKn?>z<&b<{|SluPiH$1$t;fT##W#b^BB45&skoOqHhv4a3^f?1H zT%Jp)OA_1{{-!UH4m>9$EQ`&kRX%@LBI;jp%jp6J=!*ZuX5(QrY45={=G2ts`exce zB!R?6D=lS8hp+AIgH=*qa-?_|T0-!33bA1=nGi?v8T}%zl3ey>8j%D7rp7Hyp4uly z=89z|@Zj#WqMKy_Y@g*Zoce9wGw^`U_!J3j1p zQ$T|5GqrohF7)qaAIAE)i;sc=CC{9&PxyNYo===xd%s=i+Az`A`U&*v_R)f#YVt4c zI8|F{()dn6Enk{$+xT8>E2xgpJ$KWsQha=?<66j<&0hyDib_ z*LO1a_m*WAb!mr4-m%GO#T=G%E-#vVgC@}Gy7EtsX9t!mRttw@o zyCRtB=TM&bZtZP8tr6qfoi^P=S;vU!pqPaM3W^o^G>m3RmH(4Iqdt}p*6Ct)qQ})7Y zL1tH0SKp)g(vMl=(<>f&1n&v~09Ei~UXHW_$$pp``6HnbtG zN`h|_rlp;)%NZq@8)!sQ4{tGUx~X-uJ@}8)@)Mj#v#fqmAu(~lg#XmIXuoQpb4E%> zz%}8G0EGwsD204XSwm&fMM?-$uE|AU6CW&nfJs6e9sMD2-QYd%UR(1n!bhJ4>*mBQ zz%h7;4jJw8bb&!j`YieExDanDQSVrN$XP3mRA#v>dRE2mcy)p>b?H+#2^7V*W9rw2 zyT2z*xbR#u;S=1JlD7CthRAl+{Ld&7j-TO@j#8|B-A<1RYm-B1?1|24aNI#cS`4h$ zu)g&W&cTZYZ7;NviaAZ2`&x*X8g`omsf$=w+TWe{q0|T&l~l5F5hO3CzFG$ya|}St{(M08o}$eI<^-ry;*^hJFcuO$?KMnCcO~&zEq2+b~O2XeK2GDcA+9rZO9Z_I06)dBf22NP5l;iDIM3GOtIf z*cw4m#+ZUzE}>QCR2rO%;M+e^>t8Iyugq%gZa|c`l~esoIHpcMe%;!#^W35sqFqYH4K$~gR<6g752;2*0*-wHqb{}#NU4w z>i#j_R*>lK>zfnHsaaTUNb92ZNi|Ze=2TTy#N4ib8pi#{v!3&FW83?y3?Wr9dtLUE z#HsDN3{C6|G4y6ZU_Xi6%~!qrq2cGTZxdr1GvrOuQ|gra_z6JdI_F#K0BE(NEE|(p z%@XT6Yf=U;Q`Y;XkNd$DU**)^L_3e`}n^-{8`EeCKb1MW#r(!8tBfpI)8Cg7zXU+4*@&<<#C*{xUoc6RFUDbv ze@Z-4M7q;iIOe$-07aIDLW|7u4^HyHxfiIe&1-}WLq}XdMJ$|gfA|D^!&x9oWAj=m znP>bteF&@GSNC7GDL^J$jo_^*)4MyiEef|--;dEX)ToyX0{wf~z_rIhBTcUuKHRrfi>0N>p3Yispth7pWIf(w&C+Xt6zt1FZ zsNi$2r%j5QDn=*ID`G!Go%1+z#k)_AD3g~HSnSq4vlW`Yj~1am<2La8B<(Bsw&b+u ztdl&2qP}r9M!LUW9$raCR5L9hic+Iw4%!Yy-Pd~xCaCta>i<@W-sb z%k1pscXdMOzNz>y%YFSmJYx&X(ko zQpO{mQ{@NfzY)?`#V(M2pDEx{)Mkr}22h!l8DvpCK|>Hk*jKB}Kk$#xj>~wPs;X>9PR+d`Pa62s z?|aMV)sND14s^QD#bgNR>YcCVn68=f1~n$(ijs;fo;NXTdhlI?O@0t5meUG8Cdt0gG3IhM=yRn&JNhf+;v2$0YOnzkwyNOexJ6xSCy z;{Jt#S=QUC-5OJ(4o-24_i~P3GR(xIO{#_zFK`eeeoNUZ=pxH+O55FID^wL8G{F(sJoBs>F2B4+$%J z6Od$d>MQ2;9f?T7oKh?|zU8P0>Nb|9nMG{nS-NP+?>ybo6;m}BN%-NSb^Ep=WFGol zew65Om^(Td;w8!hZXcrvVC~m!!t33uh9%#&l|!8XDUP(ABp@N5^4Sb-aZ$l`1G7s7x7QbWI>v!?SVJKDO%y*-AqA_n}w#&_f&1> z=$8(WiJ@+#I{9y*w1^Tro=GwmM~S4!Hh(QM`OUu9fT)=;maHHSI8vp_xAR^(WAv7m zl=7@jOE|*ifT6fsg@-d}lE!mBz__fYfGd1aJt5-?d~Z!5gAwcA+`gZCXCzCW*c?Z7 zT%b6`(xUZ)wt3n`I2}oBEMa$;!&)#(rbkQdCFU>nDgAt7xqvm>c74@rrYjIBwJn9S zw_Jc9U6>eD_-s9+c;oircT!-eNbn0xRMtZG)u{0qZ*DqecZAkA9Irvg>on<~SJ#rF zH`KeaSr54;=3aDaG=%4t-TAU~1ean@l7SUadqx#L>F{K0yw6h`mdv-r*(eXv$!69i zLH#OZr9>B3Jv_INc%V1Gy-58rIamLc;vorb(U!5(aJtzcs6Tyv9lcUVX&$!bT6KYf zDX9;JRKQJ-y`jZ}Zp`M(nU>1q*;c;% zb6aLiR1Ip1&bZCw0>ZQaPXR-h5BRdJ6ndpHV8AKt(e{@yf^2R$Kne)JG`{-l^Ic`o zBCjB$H!~`t8NP%^pE;xd8UYtpRJrvFf+FonN zaU(}d2@ZkPg`cx8X)aXYQo~3i27)x@!os|ERB6HGNDZHQ3lWNFjaqizy2sIev6TPa z`+|bikhrrZ)Myl0u_u-s*Y=d*G8pmNOY2Rc(Z;5mKDT<-9iH=Y4*j5R>v^%@ON5r_ z0zg;phc3ZEo#4_5>t2xp%sf>kX;ISowhzVFC2k_WI{2F+XA| z$g>Mwp#*Ry@skq*@(X;L#G`GUq4Eb+)Rg(@q77&)0RQiitsgRHnMT6wHTNHNVo6f}u-f3a_die+(Ve@yc{-Sq6ts3ud!Nkrv z5n>#m^|V*)&MAAI^2Gj8qpg~y78OfH6Qg1HzJjJ<3c-a}sSVBk4kf!#X9IF@q_5G8 z0N-#wAT<}-3HEM4z`HDi!YeD1ae9&YOEo(wcEFxH zR%#0U%HuuiKqk1PZ;|W64PmZ@n`#?T&eiYM9&VNTK=?4SM&r!zlnInneY^>Bhdt{m zDX2;NR|n!Z^dpKk9x3WO`Ns&B7oNW?HS3}qU|y}Vw%$v*rQUVV29MNC$y=$g7Qrt> zq26{!43!0%HmoE!E~0gNTp|BF_j-?xlGz%|seX00HA3*_1wRG(OV5l6!i5Snc`fmC zl2A5J3_F`eY~|RtNb?QT3LLA%5f<}SS~P3j#Ypm=gcM6HB|eN*P4($|x#07Q{5 zWc^TI{RH0boNn1U#=Lkjly=Aaq1etVCcB>Y`{Cj^QV$7zwqR5z>oX-p%7OY{RmLxB zcR$I#D=g*q=?y4oou;iruWFgi zDWm(^U8*jLNbJiO(OYDTX@a^s9dW{^9<^_Dby_^)N-EWXucRXU*|4&|Z*+yqiw561 zQ92{E=Cj0nVn z!AHRnBd&P6TCQBCq-a2HRdM@zCYENqUt+66_*QQIRdQu6Rw3>&3ywUTr?$ln%^EVU z$>j^OptG~(A+D%Am=mP$8gw#fD;=sYVz8&`9gm6Zw@R~p?bbB8EHVVDUhE%GE6p5> ziPsDqFa;TW4@TvZm$(07gp~X{OzE;qpzGG-qAMjwu5~RHtCWKH0@MMc>*9PEo|%_I zxZrfB*5^r$`3X*z_&(i&xatR8y(&}aM`#4i<_;=-1aZMQ+9_Ddk4bCJlC*RpBAcMG z*HtpjdZ9Rk%sy%*SLm`LpZ3bksa)9PLQ$)WN7Tl)PJVV4^@xlGb5U>3cVxGI=X)Ec zvx9K*ll)+(X35?|*j6d~rxz*i=rwKOE8FPqeube#>kR0h71~uay+3$;lKelF%Y=S3 zQQAK_M4S>0C7cwsl=^(u@;WAmpy+h><6d=hTxyt2%)OzZrq6lpda-+o`ARl4V!HUt z-R=qJVx$BTi>eL~ryBJU4MLD~xDFhY$_#U0qArcc7z1s`FRvb-aMCb#lfHPnN7J;HelxJ`nAT z-L700(ujH9LBrDpEh0asqLpcn68l6o`(yUB?h+=zfxJ!1pB`Iml*z-nGK71Uq_Jh1 zy!~v99DS@l{K%p<56AR{O2<5VwGYGiyMg8bR$-U}=KFUqJAZonGi9%N+ejA7vaX4S znkK1!e_zbumcWW~4Tg=x_xbY^E8WSvA;t2ghr z@lp6$M8)htVeT_EZXhH2py z914=r@irVPsA@H_xf{@7BSaG>(ik@V0mCzPugUVVFpXOcQ?AwDc&~O&Kux!Aym|(f z5ib~uB5rOobiqYeD#8@IsBR#(#?y)P(1^lRd-a*mSduG{JSRZx+4<#Q4~ZD*kc{pu zVt6dd&oT6@sI63kNaB$IRN3HI{+G^PZu%vo2?Y|mSfw@Rim~`?nMcp z>$>xdp+%z1>0fs6O$UJ)>*_TkC4bwftbK8H{lSz_`K_(GD;x)H>@;417BEI1`K!^d z<5TV64_Pu7Dzuzw(hl7u?yxv#fkqtAp3LdYuqQN^P(x6N7jHS^CUXU=vfRA(@SKB$ z%1y;`4|Z=cj0z#09{%E4_uDekj94t04`!tH?jJ((zi;(V>robesh?j=OW+%}CPcth zWTg>O3GHA$O1@?YF#SS>8be5X5O*q$;*KdC96aSf(t4b8{zmil#}TG*J(}$OtY`Gu z$u?O##{muBk4T{V(N*ZQ9rI?Mi-h)0Qflj=aEc8!i8JIsX*TrUMMi*In{4H>G1ip^0x<;<^XD6feJ} zJJpe<V!*RdE1!I&0F{(Tl|!>Z$xBML`v?8x7bk{fa++I~(lV^X$!ovw!JZ*i)&jOD<&wq>ik{}e_`CGb*)#a5qG=4Wc z)|I-|t@XsnZ1K@=8fr=b$0?9J*-)fU-GlAik!79IH4uxJHBx$*7eIk^g57(5%*7}T}cEyT2XBpu*X-U+W zUH^6^_GRX>K*Tj)us_32tmL&6VO9U-(l3*_ctuwhBfVYL&b^T@(CRKQ^Msqnq}9)T z??2wRtojUat-{gEb8@$7Q8M)GuY$^eH<)=y9?V~KFxB5?G#KmCj8K~z@_yv<3TW%R z7`|9(q_jr6JqoAdgf%JVN-lTf4bb2fwS>*y^;H|`?=!hw@qi-6rx)isE=g3^)JUt2 z9-s>o`F+LRVz96zQUukc+)nsy+GBg{&?@9idg#WBW)oqRf%W+_M2{;0`tIGlAOUnz zgR;h|;kuM#A?9?@AZOmYgJ(TMN}?5m866x8KTY#8ld^PrJCDV$MgZwU9B`Y=d2s6r(#~;7m5sp?=o<}g6}AO|**+ZZMxs`Gew5SevIpGDFab@;P zfvN!8_UbeAnkE7}%eJ*!k)50Z0(wW4_#Vj|E}qxPjQX)I1XS45d}l%-EQgytZZZmqzhAd{gZ{qaKJoJrTXec6)#zKki9$a%FiqeTl6zi*Pi(v_dSNGa|?RP@1`!~p8z2{XKAiJjpM2D zK<@+S?<$o2^->?V`ipuu4?k66+2$c4=HVnh+xbmIZlkb5(KZBE1n5$4qgozJ7=yZX zMHFVv@|{f=VL_-V(Q=#Z%LbH?NtzQWPE$TE@jMjzFI^(aQxWFDW4CgGyKu8_li zOJU?pi5ar*u+4{@vKY8G{n5m91u%#S8n3*9UA}iAa@vQsM@n=oajbj@)g}_bO0RsW zkcm6f7{Hg0be`wS8y@{ZVAtv$ar+T%mfq@w=}r)DXxS*TkQBv^AI<^d*p|wE^i`a8E#bkb~mOwubnqSP}E)9<zN{~)q1iBJA)2M&h$e$LuJ$~@oIB(0xAib>dU%Ia#~Jv z3pVQ6nZYlUebRQ(Z!Uuc;-8~EOiRfn?Xwy1PIwfA)s&YrHo)VFYW&9RbX~| z)#@{ypBCw1Cd1O7`ssv{hQi@dBMsWx*b=|MJ0;zp1aJQKHOKSgI9$!|kBEI=VzdJX zE_tgiv>rK{V<`RHm%l!U%52}k%pO7VZ1`ngW{=UE+XgYkILDw(QUA=T<`s*I+(o2; z_Z_wU9;?e;)^P=dOvs|npAq*5{7T2VmA=RD*lN(B?3Z0p3kA?}zHF1_`(`-?_m*j4 zH9N2M4Lq-7DUS9hHDRyZd z+yPOFUU8rt+1EsMzt_p);9#Dx5-@Dp1~0!b_{&I_Ji~bLwta89o5Q6$d!1*DCdbwZ z-y1KuNm?Aj*BjQ&4g;0bIlF@WgbCGd%%7HLv{E)P&N|-z?%XEiksYJw+C4?N4M*tC zCKQ@K8Y$wyGU}o%IZH?-We-+lCk|2)znIWCq98UkaWGBxpFg50%6aKR4{-d1yc_>y`)I`o0Ib?UYY(3 zOOIl4um3aGQ{LDn$KUz-&8L}=8mkE% zhpSbZ7eVJau6};UyLblQXmLaIFpO3=JXV%C#N;QWS&CjeV`EPkULh`WqibA1SpKC3FF~dh(C(0Xwfxz3 zY0mEWR<{GqMJHSG1MKW1U2rUpMt^TQ$%Z06iz>SOHw-eMGBF^i6343sSU@nhxW&R( zOo~8fZe9Q|(YQHeWPSr{pZ~*o%G!}PDFCzDz55{1ditytlsCG6f1>1Harf0~M1FA( zAV}4%qlcOVqlpgprTXsO+g0IRXoWEf(T4WsFJ;rR>1G}`B%R{y-QSc1W9HWkR@mG5 zUNjW}ehpYIqopxTTWw{Z3>h^GHMuMqha01d%%X;JK5J`ejnhC!CD_!}zv`-9vDCW4 zI7QlvS=#)WrM_HXyv1i6tAE1k%Q`(4L#P!89@y}S$$0fT^)2vTqf;}Ol6Q{zqI!;r z#J>E>foQUd#3NXnda}DwO0~sn$A)2KmW3Iw@?OE^8v72NkK_`CKHU#|tgL$?JLB!H zHYk@9;2ZvK5{@V$u_42L&>{xVe36O4TpYP0)oBQWeQO+hraax!j?ErdJ_g+!6mzT2 zW*{1_+AkuiV_T}N+~~xwzgVa9 z-QkG(+6IF#G4aYLZFfT+d+zaO)SY=)-<0;E!t{`L(^f~P3!3}OV3yd3_w6yM5w+2l z0eeB3gN3Maw(znp+W{d&rA24@{4zLSsXa3!c&|L`P1&jjicdRao)`283*iTTeyyIf z!2DcfEg|L$V0_ndk&j>krsv{QS~LvR9v6@Wo!**4h5$c6z`srbh_M%ZlC_rRCiUW- z>r#+=vr#edEuIAF`@pKqe1x`o**C_(gN}~v`zem=NkW2nTX;c*5xBbNJ1*prOl01} zFLtd^$*S(WbydxmqCMZxjD6~@F54%|n-oXV-7iLF5 ziYta0a1P7S)E8>)exLHX$&*}mK?qtG%a3x^G?7}n;m7@2^x@CR-2WH!KMTM_+9N}Y znRqK>5o$-({U4}|5H;OPgf7P~?i%35G@rd=xA+K}>tDjHq9(&vBQsH9hrc@XVE)_e zV18Cd8)^GtV>1*s5YFrJ1P->7H&8)bs1AjY^@ALTI+8F>@md)9L5|>5NxWX&Lq`DT znLb}B8B(O!cIHL}m87iRQU3cDe2}O=Ny>MY7GtlKUhsacAjP3E_%4aS+T9)stXG$~ zwVANZ7V+xjP%->D4iJ((?)O@NKS{UOsl6DZ@G{@INYL4@*$V7Y$45J6)Y0vL#~9Jt zL#csD}$;iZgqGj znwym;I6uelBHO{%FB$_4y_P52neb+cyN~}FQ}0a7#6oHPPM>dANAd(9P4#D+7wBb* zE>k`@%hzHu{p-DOOcTnpG9|!1c8Q_~7BP~WI&dPub80VQdvem)B&NfpOY$e?6Ijb| zza0U{28uR%fJ(1PlE%kyg$LaLXC-pmQ&GO7XY}eaH4*&k(hwTlP{nCwUuYON756hr zf9)Vtyc+9^lDjmAhE;*~i)fUvkK47vu#jw5Fi*J>a~=>Y>7hQmPYE88TAW16r+BpW zf(A{+RdYc!T&VqmZ8Gq`?IaF#$tAf z(D4ozxAtZ)-Narzd2>0g<&C7hg_I4W!}(%st+hLAMs)iE$n_k|nz4qy&4H3dfj_X; zv*@y#SSZ~dET2PmlV#k^TaE2?f(YJoM;ASl>*nLQ4F#Gbk1Ye){n>qtQ^gJ(l}dpS=U;{oM2w@c-Q+)zijKm1UCnT=Z8+YL zFqe1*cB}I{cj*$LB9m#S%t5d=!lC(2W_1PDCoWvBLM1O5#+(J;C@?nT9jcFuxMFU} z$w1ClJxL~;qWiHvpoi4T7ZXY@&793J|JBH|ib~9hp3}76SYsWtvOwYIcsOX-vAnA( zs?8@s**jpfSX3G#Ho0K?nyOStM@#G?KTOBhacingH!T<(;$rQkP*l<@Cc4C{m61wo zOUBxZ7U zg~@>gC?DKPVU#sCD3@;Y`I@hm76L9+HmAmWVijKMx+K)R`YiIM?TN2FanP`-8zm8_!`F?uTWIL)F3u@P*Ljc%K~|FoDRX9Zw^|jY%DOX6Z>aUoS-V6p zY5Y%t2m4v0q*Vr(=8;L93$#aWtGbzFsZp^aC87)`=*dLZOqzfxjgTzCW^~LX-o`W zoM5O1>Bl$r7)v&H9YOoX-C!LT(~qpJ-i>|v+0ayBh&YND-VzdoJcm*7J(imj#(=Bs z7R{PmpqkZ>l&JBwqrrq2(!@Uz7?ymPE;YDAV3`S=Hb;yzExYXSpn!lMo%)k-$lN;V zvCQ3d&C*f*4fjkL?<={g>#{QGpzRCBo`kXsHHi}XuezK{CetQF#(;K<(DeDjQ{hKQ z?SJCHl@tV$^8*(FsGp>~FAhU}Yh}^B+GW{p^v0bPBKVT(9(Z-G13%^jxT@q$BM;NF!2E z%>l2FZUy~1DEi?PlB4kD%ouh8qMl})xK0_`0ZFuy!XcK`0cn8@G>N z6(ZvKVG-UUqJWO#z#MRu;2jug_DFwFQ8M4+1?`*!3Yv~p7x%$K*eaOdQ(`n*02G5e;=03$&fslFLol{jmjIH)gK{m^(rQ@$6&ZFWDrs@tlP_tBeDn0{{S5%uBD8g5s#y<$eLAtp1%L%kHa z3%{(MqOu^!gkLw=HDL1|TN%!fa8k*$DJr4zN^Z>i$e*sP*!-^9gT;I{9f8Ck1432o zVKVz4?v$C>oSX-z(Y5(ZJ zzBcu2klp<#EqIxXtz9%#r7qZS8>tG87`iUNm&yuuG@=zvl(D?YM?BLvyg?u-b4?ly zFDZv2bjc=JgiaSi6;K{_2Zl;|-%6^nB4t6x9Q^oN>X$@-N8E@Pu9)mmMyzl}`W|FdP(?H=r!f!RfM(L|DtH-_1U*JsZHiiaPp3 zWGKU`ExR*LVUg;MN?J!#{2vu!3=%;sIk;baV;px(_M{`%nTh(WX|!uhB9*(0;tB=i z5%_;I&!^v-c+hbAuD(z94~f6NF;RtUI*Urk+nDn;VJqfbB9C6C20-AC^%XKS3Ym@p zeV{>I4Ul7k?=v(9lkpi;GU8Bt8xOe@HU!NDZxss?<}_g8pKl%gkmmbP0C{1xiO+Tl z`6>jMRJ5Q&g2e&|mrA$@vhMvun#P`Jv7{?${O_0PD zRWjFFk+ta)W6J8k$_R~+K{)&+G;n?|bj zz>Nd0g9S?9vsSpDH%l;a)yb-2|y9oQ1J_<|E?O0BV_x=QZBGD9n`<_qqSST^r><856J3j-lWrDBIDjQ zJNt5SXk+G!e7rabbmn&iLhDOm66E`4ngsqfv|JtpZg}Jz3=9Onb4+mL4|B^OgRY;y zIvS1s`+yfJ^u<^G@6+21N5J_`n4P{?t4SHkPgnKh4=!TiZ!@zh-Ou%hxo$+|Gs3m} zq$uP4&;}SDoW3bI1Y~kI_Q~c$a)z6-)bW zB|)r!xQmPgR{b{p0-{Bt_EQMPCY*1I4>5DlU5=ja>kt3=cHktn7I?W@_s)<=*(?DL>yX#H=(1Ea9K7Uv3VW<# z&&=U&h^*)276Lib;xY!VFUl=7x9~myT+O_uKS$(9w+m=C z^+JT!+eQMYJeKJ5Qv95xUSI4O>OvCZy7g8h8O$Czt>l3>pLtO+#<{Af_kbyWV=POeo1!3x z(gu*X1=)p|X*LT|b+b8^R zrHs~`zuV;V9wDEd+(8sbr2|G#OHadR7YZ6SV*b=FS0x@HC_N9(sbkGz(&dk&OtAAp z+J^?MwQ4QyJ{V1-0&D}XGDCP90gdGLa(Gc1!b9vWCAxu2KO`cP+IL35(9H=jaE|U9 z0pL;*f$G2<#;kMf>#^LzF=P!_W@L~liLVcOQL2YcKc>cb*C0*(=%eZym!(i+JIvO| zS%@(X)?au{69h)s8E)Jr2avLqb73@{WPl#^+koS9-xCB?*N*6+Nk9COM@jvgkIQ9p za0e}g-T-C;Jzt-SIhAp(EjREq*4@h+;&QS#?OmTWJ?fEv#oJg>dkyA~Msov-Hs{dN z&x#iz(P+R^BxMUTRVW7>6Pica_>4m@=!+&~IR{UY3CrgT5|wcfM3iYU&$6H})5W{O zd8s~$f0QWmZeJ$%Deiy-UTn_|U_roA*fKLD{_R00B%RdtOzd2w7(3u@yP%P$Df65e zf@^_rs=iRwA1r2VT!wyuhHP(W=k;|lD75S(9;Ic|hXmvutzzoSG2nRKJHX)KLJ`t% z$INC#>(Ga_YGm1Q96u#uq2$G?^KpQh*8 zVrSZ0rGJ~{y@=!%mwJYK(bK`gj5OIvijk>r`hI4}&*ehSKbo=9E zU`sCmqh9Oh-BM;3aySQb%m{B1?du<=I*$FXT+Xg1sjx-7(Jixt5losnT&Le?ySLm} z4YAmaVIOc=)Mm|!b{@>p+6=%A zT(lrWPOI2eT#FV#=ICi{2$=I4FrC} zl8vZo?hl{ptF#RmB5u#nJ(w%unhKrT8REPOy89r9nY@x{*>tYbx>sWaB4}jQyY4k` zy;!xZR@XVKmh>ql4`dD6D1EM6ExXEdb8nd&{wzd#e*4x9oSC^Sp!^pikERHrYeSV=-#!HDx{dBHCO#(n)$GE zMJ&k2YX%2f66@h;W)vBfdr-Ssmwg?>m2%_k99QOG>qR8--F21 zww1uJs4P=e6*fk=S`M!Q%;ZxjZNOFhNE9y}wb=bdgF>TSV%n)OiTP41vfK;4d2kT4-`x=pbBmQ3*=z#3vZX(#hzo!XMG2E z-N>xfIIlx?9~96q>!O~#=;}jdidyAgX{S8Np?sN=2-UZbexT?A6lPsIN@LhM`9wqS zWd@HVxK~J`RZ=yZ`$~4X68mze49xu_7>9IGO#eg zGZIyPg#Z-L^i~<{>@nSw%=8KTx zaGV#i_x&EnJ78v1p+(^gTslr^eNv!tmtj}!88re}+;SEtTr@O}019SG&pKT|6rF;D zDuX(s%roh`zx&A(+PihP;-DtF0BCyMzP`=Q=j7Fzq*bs(>Iy9`AWg+%h8j!p3IL{LvryZexzY`Q~y z;x{1M9xj)@AiB=K9LpE1casqr4A%*2sSl-n5OYd(C04fV?$2pX~4nI2u zqw{g7D5j)|<)0qMbAt>GCT9Gp!miIe9MD~!x_(zh*98Po!>2RP)wbO=mon(o=V=Ja zGi59br9#bW&adeP8^>}6mdzP*A1h}VHlnIfA*{BVX0MM}3Z1Pr`Y{A*_OCM_9)Cuo zi4PBtyQRGC3(xVFWJ-Pq0ohLI~dsY?zcOYG>WZF@~Bi@McEG?Yr3ifyUU zqE2JbS#nzu^hm`$+) z0O!ngmrVcwZD}5lEyC7}wLe~q*cZnIUyii?BAQfa0alFc8|T0OKmU@gTMzwF9Vd~Du zj>`X^f}^-j8Lm{U?}gnCR-;$9vjP}Pg|#D5Ucp$1@PeO4dJj||j#~`Wq0*at()QMi^zHywud0*HH(d zh_=o~R(AMExNcnprpq}CWVZ1zSr=OW!P(eF3>qT&FY z3O~l)%(c}>hMP0Zsae>`XTT<|KRH6;(j{P5# zTb_}=tidcxzA3<_8CpQoclewL9_LJZF>+)2bL8=U>_7YSN)op`sYv7v&1Ev2pP55Z z;`_D(0{kMmBxup9W_ECuI3k3hCnwK8c6uQW&xOHnDcL(cIG-XK1*UIPD?Y~dx`f^h zMq3vbVUp#>y!L6JI&J^lnGxJ2B-gW z+m^ZKN;QU=CcBtG3=S+~8WF^#w+ibo!^7IkZn_!ch}3WQB@#^rhCO-z^ceVViZ6@G z^p(`nvl9MNt=2}*V>!;x@e>N}|B1)~Oh-OU%2nArz8*wwz?=zO?ZF=6h`pO<aO_aOZ{fQzH7|+dTll%AR?oyPf&fXx%SVTQKM)3^*kYLR1a`b zox)4x@Vt-6_vTyaqaUL@$mT zax03eU9z=|54t{hf7_y-!keE(I79gJyl9E*{#OWNl63vD-Hzl1vM2|*LF?%Tikxlo zfv^1*67*^V>Q=-QESYeC&@B|fGeGriE&#(m#&#!u}81Ae)+Ok z$NU`)P6Z2B(U8_A$f9EJiC_1JT13cM9hG@^i=UP+>t#lM%$0}QsoSS-j_qromcGwg zC>JOEz>`5BldPfe9lh4|lmMHI#$};h+IgqdA0wB&Yfhwg`!)D1NDkKZ^3QD`#Hsa= z)0wIAuGf>9vhYLJk6LpEez>wrCE9oC1*Z|Jc*8NZJHrITsGb0_aDDha@PO6SVdoI_ znEcT&zHj^&pdw!bz?F?y`$)kef0xgwFn6d6eX=Z%6CvOuBeJtv%y5?rvSdA8LU~`Q zk5PYiWpYx8v4y?S=81iQM8^^Ck~yq>8`wt%c(9 zbsnx&uC8&ZNe3eKR9AA|_zva}z!Q4jCF)Ko+@Gbn%#)PV4N-p#g5x~iWn1zQECqt; z+NCYDLQw=Mcrl6jc8}40YqIsNok(Rp3{Rp>ePX>c}CP95DRRSpJgri+rIUM-{1FhHocQ|znNXuGaQp>tspdM;u0Og6rs^e$c|`l zIr$?jmxnI@Im!;EZnCQ;=k{bu&YoF^!g85jO(2gsI@sa*R}jQA<~l;@ZTz>ec&4@t z8`&hsrg%S#v>?!MlRC1CE+b4yhhbBZ7jU!YVpT3IrwS?jqEarpB_ROSB+E}nmfN zc`+~IQ9}y!2}YlmpWjVRg+tLsCsQ^qM)u?Lk84tKg@|cSo5&r)RvB9eoG)67isXKZ z-NE5$?E@ZCQy^?H=JiMYJfGJgT}A-^HXru7UaaZ>IDkF6PG$!qr;awKMWVfconbwO zwK~Z$D-k9iUdNLC^1-TI3*{0%5%e?fl4D*C??EL)wblU|pK?w1=woKgfHj*<&3!pL z$;n%ZAK%MUCFb8uEBCK=IzB5RrpP?~e$#}8Eii9v%6ag%~cH9}@s{82Z0JMBQy5U)Wd z3~R1GhB3Po@7Fut{2>8~`+*L`=U$X*HWq>O)I-hjj+%sv19L$;fj5yM+NK!9-e6*v zP43i&cfg!_3g4?3JPn0N_GmXN`*I^U&miFOoY2aoH&RLD;lf`+u)#8yb^W_|#8O&NYH-2nc2G=@> zqYkcZ<#5zdl-tV$jRHzOfI5rfVtqV=RNH-oPtz}iC4c@>6FxGrxIlk&!2h~-Pcok; zh8?3=hjUSbj8a&4Rod$}|U zL@`zcjIH`N!H}0A!l`)3^fBRH@+nqvIr$=skuD|jA&jh9N(j&D6&D?H`FQX;Nwnjx zcxJhl4|%^GZ?#~LQ7MHu|5o|n^aIIcjc^spAL~q31Va8b=;hNKWNQXD`R~8WC2cHp z8Y4hGi0R-+Y_=@<3hD~NPNn5hpVX*pLFkgjNioU>8cdUd6j6d#cFZQTK%I**Fvcy1 zDoCbvV7>%T9~PJJYztZufQ-8_lK0*wt5OZ{1DyO=zD~ayD(uLD%_%#FcM}HV&KP-0 zb*^jUk-yIiidkuV#RtzUN=0i+BR}E^tU0^)6;No&oU*%g*&opuW8gd7U5P6ROAX2t?TTujOa+gQL5w7XO!5%Bmj6AR9^xv@}ca0r%4M{ zZX3skYDRM|Vf7S*iWzQSy+J~wL8ULXTFCVQN0H?eOv;wi(wUn*Xgw(^xNpVK&Ye|u zJ)PTM)K|OVo5@P;SW=`DMJ+mFl zC8Dee3k0d^jQ4{+G|~OSYd-#Ez=k6_8X6oQ)p;EsHGmoS(3t9S?k56u%~CFM^ti>l z2FHRVzKeiX;Tt6r>-q_x(N$v(uPUS{Y~g2Epn%1;hlf+g7$8vMmb3lTM%&>JpZOkx zi%UzO15Oi2C;36_IXt{n5f&%8H65g2(x%ne8gF4l+*(#R?Qj}<1HyLWsH7KZcX@lPTI_7tfRB$P%oU&hS{MFn#Z|pfqHgBeVScm zJ!N&Y``fT(5b2hn-S0jy66yI!q-4#)iZw5pozA@2J9Gn;G4yJCL+_~pEFkR->a}U} zkXzm97rM*--{_9!>4Pr>4TSf~isI!Nr9P>MqrD8VZ8|cN!hWS2&Oe0DQ*o!v5K%3~ z&M)1+bW=96r&|SYzqeyq6oI~7YtNs)`4sWp8WeN*$fqWk{7Tkp)|%%{qA>3#Pr*p! zTc&ox?@Y;N`PYa zJ>V?uaF64okcICAfLw+x;b2Nt&DXMm`jHDTHT|?3+!q}^2Z3o_&o7<)hOD^L%+E5& zJ8eD-G z@B!K2S7IUb9j(PDHP9kYJ+_uqsKmC+`kPFRZj!wQL}5r*pl{PJv)O<_c}@YNorpkn zsYd?wf5_!#z9(z!f%m_?UsPY~Kj^T@Ht5*I5{p5L$yn>(<;nt(AFx!g2x4U*u5M)S zhsd+lr#pk1j`0Ms9tg7ZAP2i8{csX;Aj`cXt@PBx6;tfarnqc~|Z@k%oZ<<6P0PD(>Z92cee@`$V+Qk}!1teqWi?w&w;C8lGu%Bj`Mw@nomx@|t5#=5UBiOL zwt>XPfdQbTZ0Q?TjS_Z(EC!V)`nNKh#MwSu`m2mVi3F1lC?%S0wSOqU?;C{{ntMC! zQna&6QT}h06ds+$Ta^|=U4?4B?ZR#MTL4aYNgy%HR2Ki~&E&5z56Ym9jQ?x9t_=6$ z-asz(1G{X?=l!J#hX{mVu~3&LcB=fv#*??xm^xtlFkqAuF_*QEk#1eSJ1XuQ`&SC1 z%DZbs6+Y;#k#Y8}K>CXKf*N6e9Ae%$mK{v+s%l^q=I^FmRfgz2&#A}+fs!rN{h_#Q zuJS~lr2uZ=a)sEOiV5@<+V>A=*Fv%K9RMGVF~*}dL3&bq%1La*{chLL0p3}pLngI9 z2GO!<)K>|Bp*mf9jYwiLHN`pZZ^%|l@NV#M8sezS3A;aXuZA@79>Q;PgWu@4Dhb2G zHO39m{7^hZcKZ#uYq(g$@kr7<)}J4$3)mEk8PzeG`EeW8oN@;#b;$`);;_F&;On=B zn(RYsqyqCU^UCAbVoxlvnh8{>r~v>>z=8pzuwddYOLl#t zJ^*7xIu_=2!{|6?z^hPGe-duIUMFt$RZlUvoJ}b&z3f%4Fh43{;38#2?(~4#HQqeN z2HbIYo0T}h3Yr>+@7)0>;zRQW-zD=?sx_fWs;qIg9o1Vf%l#`@#K|!*c5Ix(p0TXI zD~5tE%+%ty4NtV@td5ptIh(c3)87fi!Q+&&vQb!(U>=&`tkuN+o2XdDlFq`|4G*4u zgi!h4NNw@Fi-uc7qFD_8t=>^(33V%Fp3DB2fO|r_9(iz^?m-u_!)>V5)hcFliGx%^ zEUX>$W6toB5(0M=WLL4pOT)j2O8|Gta)+@)prrkt!SpI8T`lb(g!|P3Z3}f~A`s*( zB~nh^nBR{#L3Zy-*Tf-@Qk(U6FA-CO_p+B^9dE}Guf9VVW-#u9Q7Z18VdzRFH^9uu zV&u1{@9^2bC&6Rbz>bEz_6rP<<&DHT5L*OF98>xeLzHI)d&0slf}hwEpy!}v-uYSc z89%fE)7W~qwMK)`+&isGQxEFIN@L;(I3O{)9E2dK7sbL@H4|ep2BP0{jGo#VC=;=) z5R3%iS2ZI+bLxB)(JrPDd>rTR<7eG@Mmlq;8^ewthI>)xx%|o;z8< zH>r_NUZsU9GJ%dg%w?_u9}O^ofJP3t;lvQz1;&1#tygoYJ*!|Wz1;Z;D&;ug$a%p3 z9aIkdr-}SzHH=@i@MgPgFhM=j=?`2SC~yWQ+RYwdCzH8QCD7E7Q^C`3-Pji$qIfiT zi#vZmGmdfF<)t#y#rTv+MCSvExH&I`gQ4{3Sqnhgu*AKIVikz;vZkOeC~UMT3yE9b-OEuiYb1^7L|lGs^wEptY^7 z3a$;w3=pHmW2=b40zayY$~g`tml;ke-&6@1**GJI@&NT6Liw2}$pw02cY8gjFDA(s z1xl7q=3If*E(sK;;JE*rm4qSsvHiQF-a3?XKIP84P} zZSMm>CbnEB-x6C3B1WP3I+w>;g7sJQbD3cELT`+~L2nNvwdUogAU|bx$`6MZC@(*FzmOtQKEZl$`RO?8go=MvD_;afE0`vy_(Wx z)0|R}p4g>!G11qOo7bXcsVUayT_w3X+Yg2}bv=3LhV)VNAI6l?qM6Nt;E2DfjybSN-+>V7nKz_2M!9|V ze1?Wg81ZM9@@DG;!?>}~kN3LPixOe(r!ELIKsoAOq#t!H)5dG9 z6}%z# zR!SYNP=x31Gt&3VCSPrwxdd1U33)r2%gSl1)~oXq0*s!Har7glycvZYU0(~ui^V1a z5hLh3OIp)5ltDs}^y=DW?1WzV49B~8O0rc+!i(b+3MiY=W1x*fA(x$JnkO}*PS5!t z_oU^GiVebMOA_K1LfA|O)x58@zVOVW-Bd$zNitE4`Pfy@=TZTmYct@!^-g5>ZHTWW zgqlX|W!^og0DevB(nX>TgIR|+uxAGYNB_`QLJ{EW1yaqwSL{ZLWBKW?EOYzbMG?Qe zX0UXwkT(%`l#f96qX3;`5m|T21@S5bIzg&wpU8XAPXa5mx|@Y;y%M@T7y$gOG9?`Y z=P<_bhb$-%kA4`VI;QJM5AuJ}7A=@k5lhYDF4$X3XNN87TN$)$zj;fLXq7*=PIbBX z_A3HHIR1@2D%n!j;LBTO#}8+#A{PDGCQj4g_9)l(VkZz&L<|wtc0uXQAZpMwLTdbR z3?gCjB%8%Qt!_blpS04?Y3`Vd8L=qF1&c%gCwwzBv-NM1E}y)4;AaY+_c|YbttW!> z1-y(@6U#*JYl^S!r@Y$nwZC+nJD+);)xw7Mj*S41`KpWQ|90c8bcP@W zDPI{vL3)>&SyUW3Npj7OjeKWR3HQ+j8xS<&U^xYs*iKIP5mqB~KQNTNb*9xris!8o zjku(i?rWQs!Q0M=hwmD)E-B3y?%GJTat1Xn_h>hixIk$Jwow^u6Q=3TSS~?pW_V+F z@1l8C=uraJa|tokS_bw>Gz;lrC?#WDwhfgu5*k`&L{Ft0N(rM3!U^!7_DO)_=s#;+ zyX;EXFo0Miw}jc-P5XzhI5%KbI`a!#xrpJ6UqxDlKV6a2533<^KvEP*8)=`MZnxJq zh9bm)0W;9Vw_H^=KRDKxO45G4UPui5024)P3{>`8QM>;tr(NT+Vz6JLTA>jws><${ zBKssB3`&+^VCtA*|M$uhw0K%&P8BlCw-Jw{a_iI{mOPWLU!6u#^<@ab=%1rSNcSw1 zYfd;$nh2}>x;wrVASGPZBkHJQyO@t-TiumIwg;0wt-$Kl;TfS4M9s%X1v&i=l5Yde zGTGGr%KbZT{(?I@1-VS~S+ChRS6wc1Hx|U{GQdVr3k~)l=zniHxt(*4X45!4!BIFH z*I^wCM4_Y$$pb)BMG~|A#LMFcNsMv%N8WL>^7AF4O*Er4gP(7Pmhid9EDT<Ao_K1h^xdG{B~p!eTfpx#&EEWgbbNmB>f;MdXnM%*i{mAz zk(4SI%tK*HT|@3J>n|<+AyyC!MK2d6+dF(@pUqty=m-lGgqP^$bduizBED}Q?YX$` zivBMVpQ3htokbkIV|=N;Sc(gWZu+?{T_cXEz+R@=Ar-#FVNM13J}>>Tb@*??L%t_$1I?~HHPrfoCgm?-O<3)TmJh9U;Wp~p0lXc3~(iLF{l z<-Wc*egFwkx^%gD&&L^{Kl-IwMS(^kS~I*@q$_PxUQZRVQd^5DQbCB!884DO+4#EC z(gVJRF9DM?Owv?ig~eN5Sy}hxdn{+27ic5CsE>y0pD(poN`ez9>~korMeYolAT`jU z?`(0HZk6Ef*|a$eIiu<7N_~0fDK?5{*}^ESk!JjZ;$h(nT^ns(22ix34d{-kj$H_3Y!bE9r40fJPI#4I3) z&?u=m#-e0=bmjWnvu-N4UI%pwR`8EvYZ`n(_+&2c1nXZ5TE7ZbJYD7{k)P|WD^i#B zf&|6I(ygpLF*f}(>|NcM!}THMKZ9!_+=`66wnb`PmmHKqOnbBGAA0klwx_E1AC;18 z1j2~MN93po4Uz9O1o{L7Dp*HlQao+656NSfs)RrEz6;OlF4HR~V<^4R>eogdU(Ss> zqr2l6I%`i>qtR-HAOQ@B=q!CNkW(T1;)Hffgcdg>h)6 z$;UQ;s%J|RVA_or%a3F&Jq)5%n;u0g9acfUN@h((C=*!`2vy|yS9UK`ZcdEPv)Rk; zsKDZ_EE-4TEQgA*ZVkZ^W)D;}n){pOU|b)98`g}J970um7dH3XEjO`!Nx-LZQ|X!v znWVkZCG-7JKROyoYSZC<_9K^@yb#{gE-{>TPhH{B+F`-b1wO=rB$Wv|+%x@~+OVj* zt7YJ#PcXinU<8Z&DX21mY_`=y`^ZobOJgFzMiTxe+oLC@Hb=WWankgx%e#4wtuzF@ ztIya`i0E~eeP?+IyLo-~B2`^{Ud|niS*3PzSD=b$1LMkc2ZjDz4?NaD;Y`?KpRLf9 zBF-K4d$*_M!3`CrLsgj3@X->vcuh^Hfh8OyU+tj~O}5jf+FCHKDLoX^M)^MUT~?V{ zQ7~h^D8U4en8B~*u|qp>m%z=qK6;_dj~DSv#Wto@O(L{Ls@*8>s6K>g+tF4wmB)dwFzo#EQ9eK^`}V;J$C{n8 zwZ~&>y2YfTg11XGlXlvK3}SF@#!Y=efG$vF^~0lNpcGZQZz`d(C@wpJ%JH{$vD1b> zZUXj?3X!eHxwhj&5klH^W;~k42Gvy*d!!iW%PTB5m4_jXihFUS&Q&a!4wc{7`K^`2 zDfVrpY5ZOqVdC8yXcqcZ$Ge5lyk#?`E3x$C{-%Wm(ayki9w9YE689{%C0*tqX$E%9 zAX#W>2OCJ&xP(4kEC6l7{nSPrO0(dx(QOvQqHuOvssr26lM53Zs>zr18~drlA`6!< z)wd*AF1pQ?#m2iYgIC**(^Jq8?8n81^3q+eBiQ4OtRM~@Hzm{!dJ*$pxBXWt{|8QI z!@#B>`EqSc_fuCv`G81;P;XrW5#vcXjo67RLZ}c}!%M^XH1!IHK$ z4c|Lt4a z?~_%poAm+~)(3YFr=2tYkh+<8e*kyUp3vnPd|y3-opg{rN6A>Fi#F*aMd(G9*>M#_ ziL*LbK}fXV@0V(3=~ei4FjBQdL3in3>TYc~0^h^}+~)KJOQWf-qCfi(Z-OXY8@gg7 zu9{yn>=^<1Hgnd>RKE`iY+{O%3{98vw~PSqsc+^2aeE>_xQ``GhdXAqvzE(8XeGB%E$&t)7@G@xb{ z16-SUOOOhCYnJ}vQ+yYcn@rSkzGQn)p}ORcqK$pc_=k%&B5vIHv!6+-HM|#qA$`YT=x^XAZcn(M;>PU7E@Wxr!3KfXN= z@|W-N4r^jyuePw8Z1p0&-w?oet`_X2vnR}GcHiGPc2D5v{16ICcR#)^>fyg=&XAR@ z52UnZbY4$;gKDS6o!~|7U!9rVr+R#qW0mQ@3l^HV=1HXdW|dDaWi&6|QzWOw2JcpY z2y!KmVCJRDYK_D9=m08mazRFRvNzHsy2|{DqA)(( zw2bu+=Nsz(RTweBX1Y^=LD%*xc&{RT6+CA=+FgVk=J9CV&598^q};nv7{wZ=31Pkn z--U@;UI}lrL90ih>v)H-v@mo&N~}{z-)?pT4_asTf(Dg92OoCA0}<#Sa)vw2z+OvlXJ(u+`>X~ znyS zF6?&q*Tg#h!fS;45(E35_5{m3yC_GXoGt|R;Q2!cV7h2G!HPtmpO&Q_t3t7pY=>e9 zrXIn5xhqr40pTKQ>1%xTddl5REp|0-#2{80OsJ1p5GFp!7m7No7F!jp!mJ1R2;;W% zeTci~fUgx1O^U`{l@SZby`3e;-!l-CJ(eZDc3TwDt57oTpM7t#Pok?=RvO{^R!xm3 z1>XFh`tNfCsg)z!#Y>!dq77dFscl*z(zN2y`}1nlL=9ni_2=et=f6d^{~QO05E3Kl z92AYBu5g=voNrfc6`9@1eeTnkF_R2%&Fo7@=$XTn4V@mN$xQFDfPlukokp+!;XF$Z z`}Z2hTzQ9-H{vd1Mgn(j;XW5#p2hn02(9$gL+htWyGu}^@PLcpQJt56RRTg1#9$kS z!k1f?%Yh?7Dl_+DnHFS+0Y={l&vh-7xL zrz%d9gtE1prL7o)WkzzvsXW3$X<4!1%P)coK>#XC#8=myM$s0R&kFr(dLyx^@lS3M zX4RjWVPYgZ`IxcBOw-NZu!|CGzC}uzk`#@m@0(v&z`~VvthnL`sgX7Xhoh{nO(Ku{Tj*Y zrib!t&_WjHzpKx$t;?%Ai`u`tx4cKrp4!KuNa4;k0)2{IS348hZ~p!%KC>OEXfI+kn+_`(E}z;lk~r9TAY1@ zdn|LtWUia=fpUOc>QryT>l|^$gjo0$J&yDm%0|2~OX*{&AsK7pE-_+xkNuQglZiX( zkRu7#vL#O0A*+l?4!XCaiSO=Kl#@+=>N5*{nA~UaGYF?TImfBUeBN1ycI6z~1IXr3 z+lF+W=rT+8Z4@=`Q?a*DB{P^VM@_l*puhG&1g)7+We7TWgj!DWbygcWnk}M zXQ*rWcVw++2E)J(pac9JaB%@>`E~6Lg{`d|0JH*=nFw%WVl7pdDHZ^cCu?H}){hb16C3Ni_1Wa`80Q3y3Uu#V5 z{yn7w@bLUc2}Xv0E1?cxV`l&`GP3{EGqW-Oul_IX{{nh?MmE4-=Kn1CVuJa<82>Na zKa2lq{zLt5%)e#A{5R&m82=l^O2-EH3;&JzFDAw>@BTAkWnl+=0SrAIJu~2+=C89@ zm{|USztn$JXQT(P{e^$q`By4CJu85fnGwLkKnGxBV+XL%vjEuW*OW0q5^#ADf#qcGGm4ykw z#=!VjzyBZpZ5#6!{eQu~oz29;0Qd`kpV*fLFn_K1tM%XhFOL1|!LTuZ^~_8FCief{ z<3ASuPnmz${RjWm|MLJf|0_b6{v9EI!}M=B3Y%IO0=~@rC&vCpq2X89QnNGvJ1+V8 ztz7`>0O~Jy|AVAw_@eyvlO_zUyn~^o5`g(Dx`i!tjqL#}Yyesn5kpgB6NfMC{|fs5 z5#ImoDy3`rbsPjFXa#g_{=JHx?(edH)Y7#ywQvQH30Pa&I64^G0VJ&r4DGDQ z0konHx)!GTd{)L^dQ;Og(ay%mi-TSY74u*n;`d>Qy-QeFR-z6iW4O}5{?Gaqe zneqo9_~ODUMoQEa!RF}VA}QtqH8$bm0>ZRFollJa+h*_SW!~fFr@J*9Llz3>WKJ#$CJL(qNOgR3Bk(YrIiXZNN8Y1}f#%;1q@viUi)t)&3r0sSckRVdsC z3Um6I-izgWj<<{rj7Np$VAQ6{DSiPeBMn&$sa_4DMh0kTIF@#QDU-C%!~; z{q%p9sC4y-jLa?J8*J?a`Q4yoaQA?iAi77f6#jv@c{20Jo0GYt-9V`l^5=KgW)}3!LH;kqIRHlQ9Nopo3sOfQ4z5ZLPv>-qv$=YA9pUX8&fV{atdJ1%4 zr3?T*FZ7q%^!9W({@yijpOYWi>K~Mc1X9nRVz1sp-;XT}@8_i7?R&f5gBAglkJ^+y zp=W1cG%&8}Hm1vO=9Lgv)pALYX+9a1pZiHp3}DH@A(2>Yzp+%7u~JvO*?&gG0a$ZF zk%vc?-@eKx?7KY6_$dK!a^fn9k8+QF9_blB=b&l0^u=wAZNawIr3t=iD0^>K21M3Y zjtBtP+1Y@=;o-t<#P&RnfUvLwW&PRu$~f2dK5h$yk{?-#;(`Jsv4EpvcItCy(?1SG zVjdG&zYF?;q618~;!8WS2&QrQM;XLx;q$h}FPTG~-S?~q@snT>LWjWtj24t#&Ch!7 z%{l|G#{dMx`PZKVQ)L;%tZqIlpm_S>-es64$kAKg zI|8bd&%sYDh88yO)(<2?*wZZp_2OR%=iVjP0#=^~K=uvbtkT3bdBEQOy@H?6zM>%K znS3-sQ5TC&Qiz2&N4qcCQ!pm_Z|Zb9Z3sW*DRa{E>tlB>gRi+bdNA(W!_g#GVKQj` z-1aEmv%(yhKhV|nBtI8}jxQms%lVS@cv}J6voto=)j7U@Ay<&VXmACBf5AyCPft$v zE}j#Z6I3nsJ`fJ_V%6Ajb9{{WywXA}P7X$s_l@4N`tsVa91J}X@FjH%cn|al_BQIC znt?NUdZ6R1(cV>i-LsB=z(RO`;OssHruqzx5RX2?GS|IR=dQGP<+3y({K1E;iu#4| zNSmBrdCRNG<=wr^yG6u#`-yL9aR2M+j4C?nYu|bvH!tGe$p@&L#c z77*|7AOWp6eZOZ{VgS} z9{xyo?;V|MNFcM#x2JP*5c-buBc`^=2+@B0pt-6S*a!k_sqOW0Wdho$Nbf|)icm4ZZM-CH&?u%l;Qj-pdz@tos*BhsRe_!u!R?gimclmG&hLy>h4) zG)m}oM(;V5p(&dAcmGSwiWK6;#PTsB+eO4jzb zpxd{VQ!jgN5eVWd&`*nRRET!H_qs1B{^@C<_1D(1Tu=~@0`b|{4@e%$~A2MXb{xvBpKfD}=g5$Pp>U$|urNFi|n`=~0$ zcks>6+$IQ%cBldGQueO$wHJu{M0F5C2HcFx=jIO3pEK zJu3bDVfs~7?X+8ndQ2euy}9Cx@+_@8*7y6(TST3v=~I1;=WgQ@y%~}FiFf{7fbqlH z^>sSsQ+$i3;mBK;>ysAdG1vODdBE_wo9RM;^OIMQW=z2Tvw8GO_{}G|y(&J(hxe&Q zQt-oPHh=QIF6x{7aUGXLz-L?=6=MH3ZzByX;_WB7lPdn;VD~)DSpU%zZR^+#9mhwZ zvnoEx5HC0_EaH&&;za)+mx>zRE>UbwPBx$Ny+c;-nvSRJ_uEU3pE)?wn5Mdmiz&3j zI|4FeiiJ?Vl>HB6>nCpNE)`1Fn87If8d1fqxE^Wq37sXrqF9?Yb+d2nF(az9AglT1 z^v%kdSRa(4v~`()?{2I@(O>u2s;4+6e5NEVvQs1Ne*|0Wc}2>T@Uu?)&g6^~uv zh{%i=nuw!*G`Wf&4lUuC-u#~8p5NmFUW2vc<5=E>Ik zx8RYfsC1Bi^Dx(0q?~|k+k+)2>GvN|#>L4oFy6&h?bLkaLgBp9x0a@IT{X9wU&zhN zauP5Sh)8#-s9>_e_H>@1;nYw&WC89S@j!J@CVr&~!I7>O*0dx|A&@VhwN+>GirZy7 zP94$G9Z?E8YsW{rmtv45rlPu=ukUn|g-`6`v`W1hOa2{KH#)Sugd-|d#h6tfyg8|_ z`~yuS+gOK3TuR1xQ#cro12?=Ws8c|W8CB(5$Q2aBG7?nRkq5Z1pF-C{*|+F}+xk>Rr#P9C(^%=X!G`c4`V{3$E2PlSqTveONO5aL#xsLcU^u(_DoX-?F^5 z(C4BNjb{~a*$`$6qe!yn+L0^eL6Z5cOpbY}c?RVlA~tjJRo_y)>2?H+24$0*s!Szr zD)CV(=;anEJCtNBlfOw~nTr_(Ghf1}67B~XhO4+JHrUTDay&73ueEoFjdqo^ixuw= z>}wU6_j^z-^5_?A6vmg6WNZ9Uz(jtrL*)=9(0Q3Rvc4KydLU?CV-@yn-g2oyOfzfN z<~Ko9mPp1=j*@#2w_FXBPE=n*OWXo09%PvYYMQqxZO&3y%Fy##X^NpDBN0ib4O_%j$A7{a5o;u9k;)6GoGdTGm1H*l1-_oNB0*^M>Ob= z<~e44zZg`HO?zL1b>z5K4;@cpS<8{u8MPj=dR&`?@@`IsQIEm6j=G=deV0Ikqx zXlqB?8bQ&e8T(xx){*h6w=Sw{^k5a^;iSshhZB;*C%a<6c<;qA4C zd-hGjVjc`Du<$*ic;faRiHUajCw|YHEw^s(RW_YPO!bQ%hb#t44RAk}Gw!kKz6oz; zczV8cq=~Q8W5Z#Jcfel6PzdM~GMv7kr&r8QaRdt&gn(Y-mW)IxfTf{_JY0_j-2>|b zEJp>V#jz8{AS{cP2v(wDQiyP9rnT5Q_tFO&^Nj+EG8J%y<+MP`*v!GL%Pbq@TnNeG zY{-a@jLyivb%(NUFxMPWGLPN0r9`%kEXTr5AMv6^Cq&;yDNm6Kg{bE8^Vi6FWjM#do&dH= zXVNRa-*?hZMp|5Qy)^M`^cSuDlg39yap%psabJR;}o3m2A?oRcgi)a?#ksUP*ynVJhPwA{1T8IXVe@ZLc) zBp&bJaKND^GrP02rfd>+C|#^?H*?l|hrv|Ol&LGlJtil`K$h-_D?%d^M@jYcu zCMIc--JqTXGSeO)C-}(;;^$(GYH-E3q`v%AUUOu}r^v)mSjo0(60gyjp(NiMRv5O4 zsC6lu#toMR;D{NC0tDzDF09|5gf&6An1@r>Jr>TG_!S_t6G{?ywDKm((`|=~m*xU^=C#$y;Pu@DE?kS6AL$V*|^xcY`6zx}V z2#$##M`#biHMhwMVIpZ|WKZ@O;^3=Vk0ydx$1xs060 zfYG33eMY8EFcLLATt14|YABG_7go@K8V#QgNF-;GOM_;0KE`4$_tutOdbO4xPB@(9 z-FJq!f<9|V;bzm%K&}etaF5>Ps4#4pHE~9n#Yz*)fL`qUR>Q@Z0mEt8vbjuLj zJxNX76L3mDlT*UM;|#eTjU2Yua^9+e{Uy>bS;egv#pXH2gJ z#Za}jE!T60bAJaYc9WAU%}n?$8Ua4mts_jJjuf08U|b9;x(s(Wf($ZC($2gaSN(lm zlMjLg%puK6Idzg^3@o_6ruM$S89TT6UOP7GWb`YAhE4*_GPKOQ67~4Y*^l2uzR*-w zRzkC;J5?O?L&$!^DAig9-VK!-1tx~y-(vhHKM?y3D?&O4z+t)F3o~=gs0p1Gw|9x` zEGNU8sjujvFB_&07p&1nWe*0P^e*#PiEf02N3}{Ki+0>BM&P{_sW8;#-A;{M3YNnR zJj6+L0TAMF@NE-Uz|PoN<#aTupHADIMD^BSZ_2l(kQ7pN<{Ijdijl}}2Uq>G=#;o6+^ z@oubQ*gkBLKR|?6eTSlQrn(kQ$iz-jUVxCeE0|^q%JH}+q!y<^(2*P;oDkV$rNm_kw^BG z)^o*F!_EXaWeU%kE6VKRp^ypBw3)TTzF-R1Hy_smJGFg)cPSzm7k)heNv1A|NX;LD zrqb(8(Uc@ZogixCJP1}lyIgN`)M}|gqbDu-v+~Vn{=4>f5*_mZNj_UT6}aGW_!bCR z((@Hx1?>93w}BEd^ml0ZgT}b5Ql82rX&<0NnV@M6)$TZ{mM|Fd!*H5W;JW8hG zij&Y~nl(P=9zu2X``GvJDB($VXWvQYhZZf1r;~?Rk8bv_Omo85{oa_q3X16`{edvw z9Y{@$OXl#(<63F$Z;#=F;cwT0bSopqI zFrKmS?%25GyoZx0LDZZMq=m)e(sSr{&WO$MXN&$)HX`)d0E;((yThey8bVm=^;E0x zKrk_9f2JxKc;z8>2rmN|8H1k)%z>_1g3O%7Od14DVjC6HjC;*+ctCxq6QP z-Z!zj20#rZ*pki*BvU~PMcaduho>FQy1Sd;Z>7w_2sk`53|g^99>`KW)%RUP&_0#! zrx$W~VR@gOj7<4r>S|7I<#+z`@TNs}d8=HBjupEhIi4VplmaxfIwldt=uWa31B837 z-vI8%sBK&At34Neu?7L^`8tJ(Wphk(m_;WrfIBOz8u#_I zd7!$*Dg~{yQW5b&U2#+V@Q`n_OGX?o;KKBTbe%O(Hf)?1cMcz`@IuIg2G={#a95s! z$a5AgK}5L;*B2AwI966@oazCbiDE2%D;h>rraL;2+kttEvtI~5AR1J?BeCUo3s68s z!xOG_AT)C(<4Y&UEVjP@TsBgwQ54=||__#KpYo9hMA(EH8lFh@;3M7S;-x zq-uk!I<5FX2vz0=2Hsg7fBmP2Y~AiE_vtL){+!dVG_WEIE42E|rrBsNHqsR!QqQk! zSI2>JkV=_*>GVw2w^y9kMpY@dfBqs_Ib{MRkc{(kb^bstAJQNgnAjwBaakStYw`RT zu_8Gk?d58ae6`HpX)Vg39k}zZVJ*_9-bXVuBa`}9ATE6V@u}i;p>C5SMUrp)EXtE% zIYDWPuYlOfP#v~g9Jj2JJ?ioB zMSGx;!yEigCY`=baP7>l6q0OnfMWqADZ_=STfovYGY$^EzeW?u9^FKg_#w)tPY4l$ zDs*5)FE-~NFxPwWH#wux>Quuxuh7m{TlXv}EbE~52ctA?H_?NxgAEL(>ntHI#gM_Q z%5OcadQ{U?F0dG!4tR(PN7kY$i`=13@fRXSgM-evH$J{o9Ht*ygm`Ax7E>9G*Cw(j zY8B#nuxOxl{nJP1ElWUaklj$2F6!i}BJi!owysVd3<4PfA_qgOfcp3XHF$a*tM5~0 zV%7e{*`p0WBYi_-DvnlK;k~Reg#sTVv`-;I4xZ|Om8xw(;*dfrwzX1~ZnJG!W9@Ch;#zjMYSUq&+z z-YQfK?IKVld!`Z+J)l+D`FFgNxcaJk?njn0IyZ%n?8RE>nh)X_*TPPHQ^(0bh;7ZXPF5w*FzA#d?=nS=_vZm73&!#7HE`q`Esr&4WEKZt6SstJJF+ z(FJN%<(4!>NEUQ>z^c4!EO;_NdZyJ(B2qhC9MIfI-Fjk4sZaSU_gjKi+!H@M^GT!Bl-Zetk*uIL3sF9Ku>aXj@Wo!d{I#&@7;YG)O97gV z*zB6dN%}*hY|tSoO}IxGH*6vE}|1jV_3#0#z@Ikb1XTeUUHi?X>*CU1{K~NEQOO=X-ulcWOo$_wkD+G zW^>W{-N~Bq*>WDYux{LmL8+ zL2?g0ieaE3FDv9{o3wUR-My29%-H-410+v!EbHBolFeDG)fcMYs*JR?6kgk3Nc>^~ z9+7-ib8RT#Ls!yZEM7MCtcTVRW#Ad!uA};%Hr`T%A03`TJBOk8UryNO@V(&u5Nyl9 z`n4kT)a0^G^2M4r;j2gOv+3_LZj2N74Dw?}I&I%cno}j#$8k0@94wfR!LiK!)<`Zt z;D5ayzmT=^4MRdi2V_O+pHPf{RaO4ET!Hrde8l=G+EKKSc%+z8$x`A1nq9jbT3e7S zdc--B8Dk()VbBf%o@U9qk@{HIr#BviM7g@UPTzma%sw0$GKaGfY)?B zqd6QZEpqJptc@IdpO22I!_ws44~ZwkjY3GrJIsrfdkPFyNH2L*Z6h+C zH&|kDq!QWEIFf?hH;%0$x)J&T2YydG>m|}Hi*C`rbb~RDom7{J4Wo+!VC`MxY!%2o zOR7F(yA;tfj%aY1C~8Y*h?=vQXv*M)wkcCai)(i0=SqjsVO_N#kepWT2TF~O}O&=(95s9G7FAyIu zP~Z0nfu5X(%nOm4t|p*x>+OWfro*RfkO| zjZc!wVKZ2fj8-u~?S;DzI`P^S7zw}vtw=WEstxz4m>AWc?wy|VP>`|m_Fa#>w7-sI z$NU6e(4Hcpf8o#hvseK;7AP@BRn}pIuarA9=3AY3_<$Ga>%ypj%!~IlvQv(+%A9rT z2%vv}?$ykSXH-qKKd6)kmB`kfJY(4;xgItu%t!e+~0zOWzdI+T64 zMT;b{o0-zW{hd!R!iw}DrVt+6dDm}r=XX8xeKx0A<#)1Hv?iOul^LxI-l!4FiD!MD ztLn^E8W}S}}N-afAe8cAA#_Dr;nK({@`f+UgaffBEv8T01SgA(8w zjYI{a_LD8~xTq#&Uw1+IS&(EQRNcU3nFS>3YM^`E#C)Sd5XIOO=xQMGCS0PnlsFDo zLUT}B*|c6A*g#+-VBWLt`sZ3OWFjACH@7aV#)jnie(=5}bKFcAFQl30>UE`e2CZJk z^nZW)ZJh~iLDTL(BqkHzNlL5-WG<#S`53`#chDytorp;|&P)aVWV%>SslPMfW8BKE zs5!*ge5H1oy(Ne2Me0L%x5CAqZ|X<$wjBX`{m~@V|I&`R0oCYh3cG^?InWi`w9@An z5WA4r+|j)9eSdj&i(Sj~oWam@HE|mmD6OT6^);;dnT!!{@Jdsjz?T;M{2mKt_DQ3=9R^ZL%?m?w+}O3?TTsG?b*!p(soK=k_vjHuM98uuu9#k4#l8P5@xHql&llQHi*sr-M)FL;OmKSrNZxwgY2tT&OG_GZZt_l~p!S zy7S7x$sUi0YO*ty?ruK4ErV=tJ-f*F!~fxd-&Q6$PqNyvU6NdZ+6|;O7I2H%8Oi5) zc0ZklW)(^K5wv1H@3ZQkMiM4UsOf<>COr#1P=1S1ugu0{)c9h|Vj|^u?bATvcW`hI zydaHAnG&o0g9V`>AKcJRu}N{H&rW;7rde`k7NZ^OUS+@GrzC)Q&p|Do9Sh5UnK#o$ zXZxJ$j5S)^>u}>8HHa~!Ox&*pc(qAXtZa1vZiZj5$zC6U)#=+Q^be=1C=FK@@*jjh zS)t`6o9r~wgor~rUK5s`s~hQ~*Zgk;J>xI$q>$U@Wdewiz13k;B{JA`nM*7RpE*;V z3cPCdv-7H(1`C|4-5-sp1jL-+7S3|0&f;R2co&v#*xy`Nq{o$)jr2^DUGg~G9@M#M z(l^eD1IaMbwm3>KN>YPmT2G1Lr=p3Tja@q}XtK14=({lrbuX|b)iSFX%*=NT017&x zbvreAKT4i$&FbacY{Hb2i{4iUPS^cO$P7-<`b2xEbsC4t8l7a zHk{@?A=-F#w!Td14K%N9QDCx)ICV`rTD3hD7fxX7tJ=K9-rxYAR`5%%-?S(&rMxN zUDoJ`4Ir^@bCtttG3njD_YXZ3xVI=l=vNjGg4ReavQD(RFXBol(-JmY%fYs%9~)ny z)!#i=GYxdr^tfm6;bo>C^ts7h!;LF@k?8zMJeF%g7njCskz`7R&e`3n99F1nDmR|Dd+4_e04Qp#R$fc2Kj z=!wI6c~x<6YzX$CDbgp}+0mu`omKMt2b6SaeLR(k*%l2V_qRdf63=Y&)->oth>}A# zXbq0k8>vD~=~>H(;jrj_?*+cPqWQHy9OY%GO_5RO0l&FIqpNp((}1p_uZl*GELJEF zRUZd;F4VHM+kFCaa7mj!p#^8+>iA;9mS&89nJkk2P=2|&ys|K^s7aV=DY+?O0~dfN zJS8MP%qa;0YudtsK*ZL;6)zgxyBN0wjb%q^sE9>OA2&ywNEsDhTJi;=tv#cx6PK_9 z3Ea3eiQ7V6qY+ueb%^p-2vKR>36_yNYURI&=ViWL7g1RX_f;*$e?g|nDXEpdL^+Wz zfhqjHM2EZ*rot5O zZe?OL7{9_9Gz1M&)B(O(+ip1zv<4;?mFo{yOVkgf%;Y1zU4V|d*3EiVl`wV`8Wu|zyM!?E#*(ry zO(LN6{l+e4{YzJ?Ike%ti(3a9AR(YS$HW zJF7^OhBo5q0fwYLPV@TMMOis}BWs5(>-R~d8W;q*6OaZS-)l5RL*N?Rc_4_RJK_D% z18H9KTAq%nyFO7Z&M_ELY#_tAMWh6=GeK#doNkTXkHBNM$@%N zQ|DmpDKjM`H0VwrZ*e$LQ>>wMzIj5C6vT*#&CV^8quwU=4IpP_2!-W^wp!eJPx_#w zqxdh$zv5+!)eOPt7%jFi4tSp>1h5a+#h@L)J)by<5NojBBN%5}H(u>P<9by6BMjfpOnP-XKC}q->61Y~L_`C%O2U@b(NGxFGzMraUN5En0YBu3pILqamFM=eJ_Q ziY+$Js!W?tX!JgPFVc1L>UDTi`3-O~&YdQVhWj||W!goyvCHx}ky16sLV~Zy1vISI z^GPo(7m8cet`l7Z7S*DXASrfJW(aD7g&&^43Nb&ExRFg<=paVNl|HJwE?^SW*)7JgtqZ-|c~AW>HF@@mJP3-#I%_A+eg6a5K+ceD^>so}CWX zXO4oS6S?>X(G_SHd!%uwJ*e`16uVhXqar$5{PI$2uc?n|K+vONfw#}%nWbF@il3oa z=KhjTI3+CkoyZvm`PGwuB=c&-JyAARD0AR&3z0@$$H`ZkfDXh`It7jeGEavT7>iLU zicmc2YRcw6W|KVm8F2-L;n(QfJx5fr*jwqoXC^xqt-;LocKo48#E123HCnWM;WM2x zn`!&Shy9aI`}U79M}+DHFMSVXbp3sKeYFRMgJbGDj`gWI&hM&|nEL*`IKFH}W}t#g z;#YKA3Md>rs7ae~&ircLVn6S1K1C9(vb$J`?e?@22E2bAwu6v$C{$1eO)d?ZBPRYoJeuXs`0nXLKIcX-|jvR_8+mAV;AY~E2>JOxRe zd_r3rvYvUA^i*6+SS_S66Kk)>9)!Zk1TR*oPy>ed9KO@%9>n-)JZtxkXV}!hJhlT( z)pVASZF3=`$E)ZTZ(N1Wo><<@XfUObSk&Y?t8L|tak478DeaNyaQPcKNwv>D)U}#S z_3QWRR|UI`d~@&?LjF2>=%bCnhz{LyiDU8#z3h;xt9)+m8@Rj2`Lb@BSEcGr{H;FI zWmEPH$Aw8Txz4sd_)xR%^B0Bc}(g*-V!+uOn|n>{`WiZ=!tSjyfMeG9_#USL)? z;kF-T@i#a(IT8Yq=fgYGo=dgEc9I*b0bq!>+Humrqrgrb3@v8m=3jS$3=Y>?qZnf3 zzy^?_r4=Qpiiy||B(YvxL(6qtLe=)VGu)2E@Fb=yyms4&>T9|yiFSn4#!%p`x29#B zRkrB*lg0&KnYfN%iR;_BeTS$y6>7~JPZz0+*7d^a-JrKlxh2kGLop|Grl+w3Vw6Yx z>hRuDKUJDIVcShYTF{!3j?D8WC&I-{R7>Z6czc76N=q~?g{e+if`f^liOQH^(F*^p&J=ZDdqRwu0-0Vv%H**e?;k#)r8YN6k9Yn2gXp>l zA*+BX4PK2#2^h@OEVy|&19^nt;c$O`PKR*BN{9HF1Sh|QabA4&yE;$Jf5e1}lIcy& z&Xh<2@6E{;3T|~&PN8dE)2eBUm99Ekz2C{U<7bb~!^z%nnX;U=#OGH_}b|No!5$ zE%iu+d>xt`+GEKmGaCQH7!lfZHc6Osb1JuU5Z3TKHfT8rkkl)*#p<|Zu)`O{fZ=sj zm@rvT?)a&VHMFAnjtu3Tm2p=$cx*Gwyy;{$5Yn#Zi;1=*3&k=NOB@&E^E+YbU$4dA zj75V%+xuhW?TmD06>~6yoA|jc(F{H5)2U9aTep&xwyR7Jy9?pg8IUUu%GeGSSBYBb zh$M4Sf1H}-YCVrqP=9!o`FR|`vj~dhd6TEd79s@Tvoz1LpS@IkB&^leSOifYs0F}AOPEni*-Np z&8cFp*1GaN$zw7%U#L1bOdn-@mLC*7y}bQFPi(cE`I3B(Xh*Rwx zym@P2VF>Dk_I$QWolQ%($AS_Zv)&CK)uYetqUck5l8iV?l{ zyGw^_ixHSJ$FYmMG(Uc&3c##XH@1?wZAtBbh^6!nl;7%i; z@p^e9Ac5EKG*+D5$X)X+soEOldBa70)0CL+pM8w9oqB6OC-i#Pdx+`}WPsrkpzXTP zYMhF7h(V4`3mpMxoyd^q!O7*^IhWbLr2D$0Nwf>9BAqN_d{z+U7a?YY#a4A=%3VWZ ztjBkYEqdzVdmCosaXG=f`-6#kPPFL)&jWqm{FUE2teIEKTWo-z)5~0*;YCsvK2Q7T z86l`*=-`)X_1rQ(y5UQk(;<6GQ%dGrsBZn;wL+LD8%l#aL_5_02XoMLHKi4lL<=ka z_w-b0k)YbL@UV;RiMGu`}p_kyWg(OX#3St3SI5LyAaE! zEX&LNi95D9$FSPF)wzCCj~WTK>qL;qxfqJ|(L}eVse7y1BB0!O-OZVV=~3Lwl31u* zM9HGx)30%;U$5@m*~eZJFJRq?A&|KU7A#*h>>vd$pjNYP{4yWj$Zj+A6ITN_z1Pt} zwVK-`3a{6pdKK4~ew{@eTyOZ(C`GRB%9`a?O+s50=8z>@qgsb8y`%Iktk2_P6!XbW z%{BG)_tUc)v2-8bpi>BbB3sbnDk)T~46C*Qf+f-;0hW^&Ja1l=P!I|yyPdm!M@gN^ zserm&=1ZCF1>;A!jc63Ct&(Tjv_=R3j1VJ6Z=WnkJ=-ccI6N|R9>Cplvr zF>a&GY^3PyxQjr(=+5sYPW22~<0l@~BwLfJIaivbmp4*%fb8x>elX%5xK%@SZwm@f zOc*KvVLq27aPR5wtu@J6C7?t-Wn@w7Q~Y`EnoD}*uV zboaBAd{m+F8Jz|x!?f|dJaIWfsi`|-gdr@3jg&D-rQ^Ku1TBM?Gb#P1OYXkj#p$V& za8W4w>xsH&z^k2V*VN>T1BRv7P;dOv!EaR@`ZZ*SD8T{>YVFBgoSp{gU6;59N+C~i zV&r@f+vBzNd!agl2hEwdq)?yh=9_O(_JSM0TulUa4{lx zPj}?U^b1|1eM=s78Eb&dT-McBp{vngu%F|h4`l;(>$Az~W z#%=Ov)O)D=MZXWpr#r)F=tuT%n}0|HeM_Nj33VC2b~4Z=Tmvl?&Fa|@|AE{mp`vKx zP#?#;Rbi$_vYllXibOIkX=*@*$r43Rn#{Y9XNR1kQ|Zo+mweON%F|lzD96vTqz$%a z_{$hz%fKSP>B*vo;N6_m~a!Zl*K&+$+6+HC6)B`p&cB#mk>40^WV zVAotroviNd6!h$76GZTrZ{rkU>zwujG`}O;eIcK@Q(oe11gtc0p||94#T~s|yndGU zk}d!i#lR*hfX)~3F-OD&hTR;w5r%1j*6MeAwi4FZC4Te5#k6!)zWVfr8bbsE zN5c5PsYOfipzgw-qmRF7J9cHAX6;U~<$PVu!0BBWG|qbxqA(lq@QctqiznlSNyNW9 zMV-klrYV`bIP=c`^o01yElcW*F``K;veT;xWrKV+8DmnS#5&{~d69m-nLsQAHn75i z)}2JVSTX5D(yX>g2o8eU;@QqHbIdeZgxvfbdSSBB>`6|j|AS}C`YMhLM_ySPs)crN zc(nNT#r&m@E}~2|{eiQ`xqDew(KpIOCklQfofkBRbyf~}V7?;N9P(Qm@0?q>p`t9o zhh7_b^rfIe_d_6Tv@h&J+u<)sN@pJM$JPN+)&c&7)M!Uv61a-_Dou+m5wQ5StaKsF z`$8y|2#$eup{jU6ChTGhYG<nJ2c>lDp_S#6moJ##ga~|M8bd%x7$d=c0}yz5MVp2$ypI}l8mK{ zW<)=`l)8EZipfXuzKWf}%wWP_#$^GtN6%yH36_ujA_b9NS@|D?=m~KPQ)AWaO>MEQ zM?%nq+e!z~8jL44phyUh4XqeM477l$M^&7?Rzb01K(|oZcdx|dz~q;CHqWTA{hz}* znH+8NZ-q627y8yr5AuELuopPm+Nc*Bt@s?|zdKQGsmst=yVIy#8q{E8&|XK&OI*-z z+8y4`zKRS4{btd5|7H!DhH=Gs^IWy^ zr=P9=akW3hDc)~`huE0FvU*U^_K?k6+B;kxNy!?E`f$^6>}tQ@zR7T;S3kW^N&60M zYZ|#pVoq5Z(lvZYP5Kp(LGD%j(lawA#H{JGIPqWJ}4ja2X!5B_uveL(~&3mWCB|V(B+w zMM*&nbYfpwwa7SlWDk2dzq5*oVLhk8CS!MlhBO^+Y*5)ya9&u7E*J-$i4c7tAEwro zz9LlA5*n^65hJmLJdR!GD;$WP>to~V(<;=<#e$IXcV4LnG1t!v(lLJU3+53A;M@z$ zXG*c{M0ERaO<~Q1_2J60 zgLIr+9OzMDv;<*1N7+>c+k*z)MM^g$OD+>#B=ayx&h2SOxc|i63IFIzJ1+F`jmf%^ zk(v3p-#kD!rLtw}>y@>3V?+T-4^4eBN_}>8f*W$8_w%aG-9)W#$^8+MN3vI5q2`mm zBlK7@E>YALlq1j!dGn-!VpU@QFlc%GOcSPRpg=AT#|tu<%6~_P*;>k^%qHTPXy$9@ z=)@v2M;!YjVHk$@^sySwbjqPNvaOmk#cB|oE~t~_v_Jl>Ze+_5Rj^2~tA-Ljo5VV1 z)sFwCCQIb69bNKq0{Z1{4%y(^;dB}T8Dn@Cv+vk7F*tInS|lYsKDMgPZBDr!c7LcH z(n;GBY=4;o;bozMi zK6}binxVDZNv;T7eAIGBA$EC*No6C)*=6>HiXK1=KZ-*`+z+Yq;O-MQrl+1c=Ss5; zzg92>CL_!6iB<;5WPZoVl^=^Qx5qX({Cydj@LW)r{7c>K7$8{ukb|#LIV05;sD!z* z)@Q$PTl8eM30c3hP^WxNdgTj}n4|=aaoV(~)fs92Qeqd*8|VascTo{Nn>3rD?*w7a zC8@cUOY(z+8jSmLkopbTsix#Mv7E?vT1l^6P!YOUWD1NXQR?%EWe_nNLB{c{Riq~t zYf{do-G$aLEr*bRfpG7THVUp>sIIxG2JTx$PS!CLje4qZatRC#wR76ypN0<46 zGiQ$){wGQv<^x&+#4|APrxkwP7?%8Xfh+=9||i&9t^GL%$*(#Y0at15YHkZ9Z_riaiW31xlNEb|i+jB&~lSw6A9j+V})a_=hU zV%Jl?rwGzocaW&rRo#sTY_o4=?hTZaoSpbsg$N6Qy9Ex`z;^1M;`ogjM@=@F&e7}@ z3?+|EOyj8w0S?iKp}UB21u^k;+*f;IS&$hoxQldaV9LunGKEA*_!eiwfaVN?OGGtTuS^YtfTQqK0L(n zx#=5DPZ|+daX4t2*2%UttvnDCN^W+5wlFzM%M436=z3{ONO_@b_p8>5yt*E|f0My4c`52Z>XSNovR z^qZL+c~BYOoz=w=WvE3Q7fSA&9e1t5eREp%yX01r&oqrgD##=UBB$3#iOb{Z9#+J8*3=ju1?f#f#Z@nG2)8cYkNi2tLt*$ z8Ek@hmfxar#$u8=e;qR)e#-gui1CuV{%UW}bWI!(BLOdT;S{Tpa?$-W#%42XVAU%t zbRASp)Ngv}|5w>NhG({{?b@+zb*zs0#J1V#*yz}{opi@`$F^|MX=xW-j?)m>xM`0*U$xlcZB*bmOsVxfS1DZ@tfvXS@k{W4Z~wj+}hPbqCL&t1cU z%c@vt&mj{08z{2^qVN7qhq7JJEjUfXed50ZjXXSPpEyX>A|Lw+I0WNA96;iVuRzd3AMR@7cE0vtv|sii-=C z5LXmdE*Z}m*j*A+v$~@@dx?29?BJs6j(+5&drR9k~=H;dva5TJN z&W;HRajw8gmFrCvW4ebLFR z3n{Luw~CL8f$Hj56f?y1BYN287n6*X3U6Xko4a$={*-dzG zorif#mVzrFL`s$Wcx@R+@$6-ByIYk$ZEZ8ZGp#&@iW7c=K?APwGD0&mUlT)6rJ4&R zPL9&+cGNUs?K97FV{~JT#z$&`!>8-WO{3Kh7f833b2Yfv^Q;U(k!&b-Ip31tN0Kle zySjQ2_T_&!3tW+ko*Q=Dm{broduov0n@@l66`>H~@zku3#UtkutlkHoT~HPFS<;gu9ED=8 zXhQyS1_Gj6ZSpa!4)rnwM(()KczMw~E~KT;$hK`XjBafL1@5Jqk@7u#{DStfJGBWr zSm^0QV^?BbV?xiY<2f~g&kC8_M*;t zQJcH>ByQhxpuZ>5hB%E!a>w$@swKbGveOOpJaWo9w?xVzc3RKWE;*I3`Yj=zfkOts z9vfqnSI#=u%+cSBTJ}A7sfVgl@2Zcw-ZmqeZRa=G)DB}?FYfmQRYCu(4BCzKyIaND zI^BzXet6$7d2xyC=k4IO@~=D-%E-j({$*R4g`I~cvVKT%+>MoX>GI4nzsrn^S14?5 zJ8!L`-hCq$i)b9ZQ74mDRYF5{F)(5}g`{uy!a|S$mNa_NNjPij2R!0Zn+ERXm4Qyp z=SGI-el#~$mRGE-f5nkFA_?2fKt%vp0Ac(n=*jEVlRr%}lPz@ff9B~nXpmfst zDb)0!LXF%*l@tpqG|8r3hZAXjmE&}_TgbS*<^R)q3}UM?OpmCIweIJGPL#3PHd`w0 zq!MClfT+2IvvA!KOwU?$6QP-va8Jtp+b;`A>E@)MuoPZ#lOILSUoYWZg9L{PIYVvT zWO7naJ2edKb|ld`lSQ(@I6%#YDF=w@&$dUc&;%DI{?JeKb#2FIx$9AIPbj*6NKnkc9?)>ZE8Z&*nQb(qaJu zlyRs=EftHH5mFDLY3bDwj!2=X=6tM@X~gHY`OAmJGUVfqR4CWlc_UEr8w>R2UpbMz z{5|}-^0G_qyiYA|*72}HC>hR%ThQ_{V_nw8bI@~&gCG-SLeW;Vkd2ex^gsx9j>zx> zUV+T2K~5DGhD)JVn;1XA)wq>ViwD&SEwnD=XTh(_Az-S%#(#boG|-Io5c0bxWo_{G zvb?+roh#~VNEkDzC9sq6jQ5JE1ru~ZE=J=_JPqSNNFdSq&IuPsLR7tnS z?q2N|KczI#RCS@KP9u>Fsn{UO=RItPA7D~#3Wh(VDIQS`?tj;WE)_8@W+0LvFXysz zygtIlNIAS*{uV^LazL}X-X>H%G6jM}&!FABMy1`@Sv(u3DOQn=p_b6eW(V}UX4lV| za%(&ALk_g~CLf)S5(c~n_z8=ugJ&BTWBA?PFeqcz60MGOz6? zi*w@S*g%-xI$trA7FAZ;RfjEq=FXAfZ^KTU1K&W2BH64!g4zs{&&oOEN01G|1u+}v z7G{D4OrTAr_($g(Ti*-upq6?gnpaS|RL}TUMc6WhYrBA~%zip)*618AbCovuFcm&! zv7&w?a!bZZ*kXY1L>XUg*Ry0|aHX}IqT2CxT{eVgC|FW9-_{cWh&o1xYwR z&Lyxlv0&gzFR`nuf5n5D|DxIsHDzL6d7Qzspm>q07`Lbte@pinu*X5M4i8TxKKOUM z5CkM}FHNR_SlqI-kv~Vj&>Fw+ftBk|1tr07m~$pNUL_vKEJYvN8!o~)y#2wF=-2N}!Q+*n8iHvaWg010gCZwA*IUy( zV_?3!UtUGk-O0>X^1OAm5h4R=F;2ol13kmhs)H!2>&2}=*&SBE$DB4JS%tr|^cFK; z5mdfCAQ}iHJ8i_JYFi}w+qf&D2d)t+-XZHciTXhtKFmDSS98~!v?&XvyqGNXx%efM z10%~@nBrP_GS*N)jKND6{1QD~SU`zuzg1ZUezSj@Cq4TSF@*VijJ_WE9v}1A*zZK1 z+!k~7E{TWI_aqCV;|J^9SUwkR4vC+S8&I$_+UwIy(q02ezx8G})8@JA)4-Bk!0E_& zU)l8qGfe3T<>wm#s+&Yy{w27nn&_`s#e7ExN|OR2|I7 zf<5&DWnez>5TIlqgl&{pc^dqP5(TheSL#MXgYwJT9j47mN?IV$DT%x6IBU!j^TQoD zLjeUH(i&JWl00AYe7W{GewhlyDk2rfkHY;bN++>+o65}{=6y{%L-1FZT$hc6f^HFu zAwF(vMK{gCLyq~>1sPMvqP z5Q*JavWxz90ADU}1s^R^u1EfU?R}ZSKHy+Z(zGHGtG4!o@9kW2Z}M`yDfn8_F0e{J z&}-S36GbQPS_aZ}rmpiFq|=fSebkj$fl=0N^<;?{z%D1lFgmObRke+^bOLpo*ApTn zKWP2cc$zm7cTGwL9<89JRci^JW(oVg$cwrAjna;yB5G%#g@YN?i22`UHI$bP%{=Hr zLOOjbz^onrqJ&}xmd2(8IAXRR3rJu2;l4C-6lvJZe3O7uyRU`eD~k?ce`<<7f0DXvosK_9q+jGSl6VT{~ajXQMNaI;U8@pNheNR zXJyZ4SaZ0fiiyOFwg)~fr6@^y9XV?;dFg9wCqPlK@9HaYAgvUSR3ASYEkP1F`J8DI zDRGoH{N10-0%y)P2A=6Qysv`vmP?{^v`NqYC755p6>df$yYMIes&mI))W4KdUoy(mO|5o?LsCB? zMHae1h6c0Hz6)I_zH}SJooRSc5)6Tz58c`WrILNtmO>wi$-L*nlnwBT^f)o$nlxVy z?zpkolusZUqJm<2pq>J;zl-*^wN!AT_J~<8-=1=N9ljr? z;Q=0A`UOIdn1JEcB^AW_F^!YDSBZ76RbB9Zo1cDUeZqcyv|YOGzJUf z0N1&Va2~wE=sBCSB~Htzs`RaSyv(`0;1&5hWD@E=>&iEtF7yso}&eCgelZQ&8}f+7xD4Et3* zG5>Ttvp%cvyl@jcKkptl#N)QnpSU>Ld3J!z$($U0GJ%sj-Y3(~3z@JYk6*8Wfc=T_ z?o*}-Y=(1jly_u@L`V zj?>x`N1%~2;@Rb2derGO2;{I4;7XCsH}-LBTA`q@fmYB0zTD-H4;a_nfQh1Ti6!C2 zDS_F-=il2sIFW3Emik@3Dk@J(KMVqVx!*pmJPkAt@7b|dPZM)g+U)3 z2s49Nl;=TQ|J_hclEtQG4DTbJ8Rhi+iK21y>M7uBm!nI_>G+8zvHUk9S&?<_^vjlp z!_SIK(P!7wX&6TIU%9S#??^j+r1q}C0%Z5tFi*x*NL*c7%)mx|aM}quFSrAwX=K+e zR3x!IY-ZThDreEHub`s{(TpEf!-)!XbSUZUV$G2Yfm-8~-h93QpKsD)4@ zKLR7;x$&z|z_5 zFE1d`bY;)i-Y_uhQxP@256Indx^$HAE;=HYNB2n6R&Ui0py~M}`s>fUx}Oi+RB>bl z0~o%WUOjQ;{&*lJv?T#G;z)l1@j(SidV?QZ7q(%{zEjia&6Vh~72|$y)2xGsP zx%3N_;)7b zN~qJ1;}*1G*v#wVV$R5IkIazIWs($I&&)u} zNyR5whL0pdp2PMhrj1Q8A%BJB`AfKSVwx_fZBQvG)nhI+8*AM*%$cqa=gBJlK~|)& zCHkF+G`xdAcgFw@JhE=f*_FI|LtroE6Z;M?ruhv)>VU(beA8Tb-KFAVI`9hd)WsNl zLNjtWvQ7SySD{WbmY$qY$wCjbI?TD2<=J57%7D&yfl78I!DY<@?v`+lD>4bIB~g~_ z@-ZE}xL)0IY;RR0|9N}4(fptFkvG{-O3A-iqIfzwt>;ltFeae4m;6DZ;WgcEJD%)- zj%CH~Q7(?$>Lp01sOQ4-66s6$^?cg&W|&W!4Mju z3Z<)fU3>zTR34z`$I9YkvJn$Ln3HXD#w>PDJm0cSe&A@dSXKXq0&YxWwFnQe)M6k4 z2zcDyL~QyLxf2fYQT0QV$(bmMKxlWbEaU=`IbW>x*hC$E*4$~0g3&TzDtA5fz{6aCXttE>lknOfjDQli40+|mM2b%KddprORa5zBl&0~+nlETmFvuW zI)Xf-^xcfAG!#`>wHP6^Ij$UOl{&z6p$(|bb@b#NmL>hViP40M@40On7nHXo;%9A) zmxmtKhau#FFYZw7HxOv0v*PE6wpLSD#|HFMDwsHBR%rGl<=2n(_JCY zLoAHTJYT~?Z43hg2uo-lcty8Nja2Dkpwc~V!GL7Go(v~y&c*EvSzX&-teXOI@LY0# zo4ap4)+=8gwj~!>tpeBDErI#^^0TG5eU&9^QYUchv>M6k@jo;h!9*&kG*Jtn?RN-8 z547Hc7mmSZfdyh$LJ~VxLsz>^t2Y>!lH1^P=?+Aqf>HGfYw_C%>Uzy_F@(8UD$itB zoSZO19M}i43|#1{kLqwC3JRH}ID$J(SDnnaXH;@(wWGqlPNunp47zMY8Yqg3K4LUt z?H2D{V>#u@-9cW#sefAcfC!Vg@b*#H7+6v-j5DK-J;;si5leE`FcB`?jdv-qxw{aG zLO*!K`juGTjX0eYk^kf}v>BDg0U=`4=&COLk}xvv#L(_m;-xJnB`16b`73pX-?kcRT+(%I;AJ)BR|ns%k)aY?wBG7oSU786^MPLiZh_jb*Gj~1-gr2KUToDd!!WnK zX^5(cKAV-w&#Zy*k{8clI!}+C4NNy-7*TJju*vzNg$@H!*uJ z<))@2ym2V-5=4ViP3xYMVnWM~m~xv@)|O5JE7$pVGb^y*We69YpAFqud5$f3udWY? zPIe|7_pSl;?*@+`-WCJ!i@YXV1aL(4*KMB~ZRl~wR4U9W#fI?1)+iPuaOdUf$nrcy z1I;~#4>8J~4~4F|tt30eKRR^+)tCYZf?`_<1I(%htKmIRhBO-os{JS}71qLk`lvmaCL&D7Can{yvep1!%%f}ioQ>eKBJW=re$yNUARY&=`2 zn2KiK{s}|Jj%_O|yCvHtO_wolg~o_gFy}`l6?c!!Yc91}O|Yt#)L&c8T1~<2dRFj5 z%)e#?slF*F#1Vy8u1ZXD!_II#jjk8OlId(0sfLYSNzAyeS6bG72g8Ni%;%8Hq%F|| zYqfB`Yf&tAci8mp2Fz^hwhK7lVK~Uy=uNK#`xn~`qm~Aec+b=s z)#ElQQZThI72l^hs8mL;n2b(!sxNccbX=~2F7+-TqS3@(bv%aqL}qm45?>$Rpvn;K z1FxB(13*VZvUaH-U{=u@>g>us#tD1YfBX5=Kqf zHd&Ut@aNA`8qZT^?*&G-vzdWYQ{=iS4~8gqzk;tcF-o_$T+h>7L`5rb;JeUgeMI`= zjT$UM4ri924B^&rW7Im_myNUKaI)PGyYJNO_wESs6_FRkvgS_Cw&Th$NVNZfQ1hjn zhkSs+Oqyc!7`^08X;6?+JOjzTPogS1h+fFPzQ6FTl9cX8s&K?|r6hL7H!A7E>iREz zca=2Eh@+|$^2n*U8#eS1*17J35S}eR?GyN%HrlKVAQ@oXEe`WuA_RiztB|wtMUN@_ zMahdZ4a1?FsO5gr;^c>wa~RsPUAy)@W3a9G89AYZ=Q0EYskAQ|)q-GDvN zPSOe}Vm#u)?FjMxz*uk;Y3Her50Cf*YgiAoYA_dMPM#{ZpPChbym_%}9!cjfq;Z2^b`fF7ygq~kd zCDGJYgeFbn@q&lrVJe!)&CZOR@6A?wjyQ4+TWo_}Rsy>?jW41>(_6CS54VcCT7SO{ zVst3OlQVY_3P41K;0&j)~0l*50(~{J`F-^!JjvUk|z14+0Ao2U2 z>xNI3e4@zwRkt8GB?04iR*^=8-@Xb$Mzx}|-F)Pv^MoN@dRLG8ijp{%v(me)5i(_b zQ=Io{fj#$*2R$c@`Z61a29yOjn~VWG!LGw>cdc&E8X;C{P|`ZEFT%v>S8iH?&cfIv zy}%t-#KF>BRU&CEIlt- z9n8?I7*^zX_fm`_D_tMgrlQs5kc&krs1LeMpv9Nkf32h$=7zv*Z{kovqgD$KGarE$ z7Xmi^;`>ynbRE)sbe^;+$or5JCork_tKEmI#fAl&>^zm&2c0=OlHWwPZ>qEJI|hGW z4g}U14j;K@d4>+xtNQEvQCm=?a&drms#27F_sRQoRpar@F zf>!zsFhW9wg1md6X)fk-qrbqL)YdI?(@|2;RKUS*8sp`RnZ4hoGDdyA=jjvI4Fe4g zua%AmEs&4R(8nRR;bYegus>C0QdKoH?Rxp=c%xcTsVjF=5AFjQnaw7j5cnpkvQ_Hx zM@)z9`gwYDa(QghgrfX>M|sr<75@e6@Bx@d$lGJem6>It1(`$ zkJYE)(oKF&xR=;uvIl)n^S4nsK2T2Bo7U))>%l8gr?B|U~%B9pcL}F&T$Pu04 z<41&E<|0@WiO;g_h!7GI`N7juupox~eS`6db2F{q-sf6RytCzc$ILmxc=z&9s4dye zZ07;g@3l{J?}t_W9OKNi*IM!pB?wkDWqvX-pf2c~)avISK4rk*5ww&LnIh#7Z?l#o zI+)bI(d9$ekOI!c{8U4odTQEi;^{Ms(ZVr-HHm$f4kbYmc=Edp9&N9`{mxqjT`b2hj&txsP+Xbg#K}kkBpMBs;lG0!Z(2jHD5Yp|+`7@k^gu@U;#sd3v`vL~){AZQTM@;KEvvXhjThofT#wcJ~d< z7vo%K1o^}}in$|)y8uWbP0iW?dw~H#Ifh=SXYRPqaG+?{F5wjc1t{`_@7;hUoF0VJ ziGh8DC=mXqmg9a|3Ur;}LV#tZ5jB`dVc_GY=-89_;RD5b)VsCmzH(KF%t=og&BI_N z8STMV^}Vu4!d68w1g2T}4PFkQ5!7>L4dtZ7b2Eu2*Wi+ZlM#$(sxlVwWUcW>Yl9sv zKn0H3A5oeGwefnnBupzgaIEzt6}bdO=gq3W)B{)&NpB+|gs(j@t2SrUvyENz!eO}b zkRhcof6NtP$pkai8O8Yc2=8i)qq$RN$o30oT3I6b=0Hk(gQ$j5g;bH`FPDrdmZJE$ zXj_X+a9RuFnP)gxZhVnW*)+XYPrAzvxsQOF=Ym_ zjXYBOi}Bb13@APMiYK89M|VI>ZV7%cLt98Mvhh&+sO0%^I6Xv!RPE!t6}P*o@){l; z5!M;lqlU0676+Snmwo{CH9jfKXghoXFf&{Y1W^eCa_gg7eIl}Cz{3o`GghT(RAYDv zXcCEXulFgeLVC;@pZN)*q%XAT52NbLCGK%kSjR6=Z;UJPLZ}Wf#vClZJz$ys=E~o_ zBaAs6LNOVxIzn{@`iR^s3O|D;Z8swR?Q;5A&l{K_I$Q&SH|pb+!9sFk1ICJ48%49h zhtF!n{+=3Gt--qTY-#GJ;SamLauLbHGadD%D#iFb!JI86^L?nh%ms!MM+#;_mpj>+oDmPRXWolVjC$)*Znox|Wq+46{o=ZMjL@ zxt)tW?C{z-2`e`cN~54p>R~l`r#|rcTChnC!IBn|&?($GXz^NzmHFV~@xVXp&R)HZ zCxX{jv#-iVeLWjl?pK{s_*RjEr3c}Yo~dxxP1bbB%pxn1eX7!fbI&||9A2j~h=MdC zi!DDz|B4$-RMY7)=hW92(I56(F!aJu*NX<03hIQ*vX6W#Ss~CAYnn*)YmeAG2a1qg zcWcKcu9L%TU76YWN*pP?fu%xgbzP?|xL>W;)N!L#-5zizoI;N^m^M)zHP2Qap8uZb zZ>LkQ1cXM5L+~f2P_bVza}{N_sDq>h&Ic!!Vr9#=E+Ow;@8Y?~QMXMyUzUhgmCap% z@>4j2sD5As$C)RHS)fj^Vt2EBA0aTso9iJ$hr<;21_Q}9wsVj$fHhi06I2x_++@fi z1qpn4sm&q#R=Nv0=`)}i2u7ZaeTL-Mx47y*-pfx(gJCQ<5}|nl#Z%$C+9W%14dBKY ziO32U^Ztkp4xUBqkbOuUvxHWuGE41ML*i87&Rr~-#y$I>yXZO?h@Y$(et4mOr6@Qr zWiCuUF2|S83Wv-GwW!CZb&Jcavo^jG0?`8-L5FkY1g~h;@?CjL40eazxkr^OdkB0; zWfJGtsl0^$b&iz+*09$DI;eVp>-3xOQ4xP5{RyIVUREpKI-mmKa+(64T!yGV+$TR& zjx-?!7m8CC#MzG}%%?K%YHaR%o!)-cl$i`;CabZ6`;Xg&q>cbVvE=p@hd9CsLH)0= z#z+u)>HE?+`6IjNSsl1>0+i~`Ent5 z+7IsTIs2^aZ|qaTM$(0}IrAy{9Za%;!9LA%sc))DJOZ(u5yuNmx#Bwc(kE04rI_8Y z>2VchDc)E3eJ|h9Am1ByI*Yx+p4PQn@f7+^z^rdrMj`Z57s=A1n8Y(kw5n5`zg8`< zM>Zlmr)TtQp)D0(&J|kskr7c^jSwPNWiN@Z9nZgzGJAK!f9&gP61RVhS9Ecl5xn2m5fe(s^do7-zJyZr_sC z-C;bQxHGIHyM1N$#fKcdgLd)sC!`I&@!_=y>T$_BAY8~V`9!X_qdii>1N2mJ zC~imW?W7V}!&oVeDkijuO}N!Fdic0m(5)7&yzs26@HhK&ST^HmjmV%+BArRWy6`V5 z$(BS$_FpwP3#zX{_k!C`YMd2T>Ed3_gbGOlTtCT@!>0IJtyC+JaA4+z2q~)Ai%DH~ z3f5ypY3T)bzpV%4t+O-HXcC7|Pahk9Elhn4?;$!>G7o~|5E(?0bJ(B9lgL+~l3)=y zS$`n6qoo_jE_@W9TsUOcTkyv!qJ~{f%@O6EBuTdyP(5p3SdMQmPtUD)xH-zVChZkiSsZ8Yw|v8EHVj|K0QCyKMbWnOTjJ_7)yk?blb+ z!|AJh*@Iy~6i~N2A&W)8y6K9s|9A!WaNKx~+>b45!QeIfr0fssVWa9is!ailll@Db zSn}HjaFHonfK|sACe!S3CM*BUyLTOsR=WJ7yVENXkL7u&K&be9Kjfk%><2(%`Wmu^ zBad}l*O7K=0TIjSAXhVED>$5IFCb0gaBwXF(Jo3+=N2=i&C+35ou0q-R(4f$_5~H8 zce+-@L*P1#3K#lY>u7gyid3pmf#|vRVdf|SW<;Grzvs>JV|j(eSRX$U*QUJJL>db; z02fpA7Wt?rv3mhgiEi;MFqwuTtisL{siK57cVf4sxeg1R4G(Vu9M)F#D%k_KjnI>`0buQq6Ej$k|@tg&?f{5b5xmle&;@8YO45xa~`J;Ud@r9CN z62aW;Q1;pPor(Uh`GG&OHH$9izmk6|?7aL*b=ROgMzkL$t0awFMX|ib#N$bGEJ9AnoR=5M*vD##Y0C6iE!6L)Si(AH?Gp6Imedq^i8xldK z#YL8uR|_X2MOFMYFuao#2@jmEl1f^5F4rMvjSR639gUxGi#$pVq7`=8Y6zU<)G+J& zY~yC3NNWspc9G(*M{F5B=VuV%v+&nLtXnJ)NcOT(xW;r(PCN`dz_}VlxI>L@!qIG( zYlqK+=H#RKTPbPJX}ngj*f-CfpOvG&MeY*3k~H z**!*v$PFqXz%G*qz~5Uk!`C|3WGA9%iM3{|rNm7?*&wW`Rr~EiCeuJ$3N;bCAaM9a z3K0aT$+b8}J_hVvQ@ME8;adQaL{Q!vzgO~m0AcrqvC8|36;5+eYp^T)1V%-E-u9IA zGp~5p2eDrm$m9Zl?`)5=K;P&OyL09>TiaG;R$L8P<5`5nH@w}4^e)%ZLB#5rFui&58+c$OuwS6Fz@40|K+26S zF1Oy9HZEhrwBB4$i!P@f+ftER!B%nczzQJQ6`Bf5C(x6?VPM>s&Hx3zwllAYqSvXw z4|4G}Sl^dOsN0nMZ`RHjtfyt5qS}pCF(`+kMDf%vOQad^gzoX$Cx%O9%kpl45+*Iy zlg2<%e4$+}=JRZ(eer=rZx9?3k`XTQfhzRSHmOaU25g3HoQZ5^V>f$*uCi zM`U9FJvm3G9&>jT@kCxn39jO@otwje+xH5AE;Naj*>|&cPg;mf^SuTdKnyUY#z)4@ z4Z+^E4aUEwK9i~!skg|;2rI*rv}!Ze?9XedcY-O~SRA`%aaLuOYOkG|@bhsKqMNi> z@yFzrm0w*6@R}@b^EkKe9@ zaaAxY*b~{JU3j)F#)O%HT*Fs8x26O-To0ygFRpJ5d_VK)h-6Udf9<8ms?ep?cP0Pz zGb^|1XUwepElm6wL0bv9Q)GDhL2CYiiKK7STv@A))shfA5YIy}O|Q!#idlyi?_|BA5p5{p4M5IPYrwHms%M9#E*Gp6Y1<=FkcMz2P*=qW z?)sO3_c2jv13@*@l4unhwB%WOP_Ztr(X(k_$4g!OdHiF0TGNZFT^`~gS^2G>zg0>^ z2_op-kMea*W&{c4^G1i#U*K zE4JJkuWKm*{k9WnX5bQp4hj<)Cq8E%cQM(W)sUK4FGm`IHjFFxA#h{d=}D zBF!Wv^oZb|ioO*Pl=9|^#UzQlZPO+N5btXhu3GD=&Xkl2c0lUNJG%`rkLPm1pN4ca z<-u!#1f5(@!`(Lnk8Kr)tVUA<{n)Bt%_x%-h+=7p0yS~ilg)P|!R0}iQVJ6z%1K^5 zIryM-arAv8(`AE;qFutEn%tKV!me_`;q;vF*S={pI}C))^|E9=yAbD4NQa;3(Rh&- zIxK1FK0Tu%Ri$Q2AoIy>iL$#7ox28qm3Xlp%g&WDXCn8c(vGqp@5YU+5isENd{a|l^aj93@)h6~7VqZj?8ho0lAh09~zkuDtkRBGN zc6(67t*@VL$@dU+Zm7-UhCN-BbY`u6pgj z(-(5nRL6{;#{6@v5$3R2%uuFxo+#NH%s`~gk#+13j+Q_yP1W3F3|ksoClL&F23L58`-(deLVEG)X@;iQ7LTm% z0{SNcYbUqIXL5*Ii7VO!0Lf5qoaw3#55qGvV9by9=M2ox$ogo;Dqk$Iugu<{t*vwV zj%hJ)35aOt#^vFOb5nMzcdg|uHeB5OIc)|W9%=pz-D*M$Amtrk+5%6pUu>8nisVQe zGg>y3bU-p48NJF{x*r${U@kcC7f!g9gHF|apUr*Y~uekU_C9G!x z(f?pb|IW>2{=?+_H>LBxxw)Tc(Em4V?jN%0f3UfKp>Y3ivAO@X1kpbb)<2Oxsh`ZB z6xe@tSqPaJ|J7wBWcn8_RTS_E3jLS*NsMLttNR}S>3^eE1sDnc5Lbl+K0W_}0gJde zh$%UIf<+1G4fF^Z|A0m51(^PA`{b|wA7=3XYGe7gje+hHy86Ev|6KShBJ+Q&pM2B* z-OBoD{p0=@%lN;*ss9lHpDX{@efp31C*}Vk{u@I4SHjkgpFG*mWTZ?D?LR@XpDg4* zd#m;DmB{Ov7}@{V)Xe`i4ZYAOVA;Xc+DiD(CQ%A=GBGfI!flxu7y-=ej4ZSaY!nO( z6klQJoYjUwOGKOIwWM+f;#MAz(5dv6QKdHIKg#W+x$rJwT8llzy z(HJ>67(PkB|Ipakm_HwjKkYw0cJ@Ed*55S_28RD7-Y5C_fB0BF`OyD8_D}zlWcyEz zh2bA#KMhQuq~L$}m{>nq$p1s*_(vWL%*?ER4#A)H?>rb7m>K`vy?(klR5Eq@q(-y-IVAQDdUg(f9g)vSOl)j0 LWMm?8qA>p-2glDE literal 0 HcmV?d00001 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/tension.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/tension.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1ef98b2653fadbf5781abb435b0fe9175fa2dfd6 GIT binary patch literal 170534 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\sigma_{0}$. - \label{fig:precision}} + \begin{center} + \includegraphics[width=\columnwidth]{figures/precision.pdf} + \caption{The KLD (solid black line) is proportional to the log of the +inverse precision $r$ for $\sigma>\sigma_{0}$, behavior that is qualitatively +similar to that of the RMSE (dotted black line). + \label{fig:precision}} + \end{center} \end{figure} -We observe that an overestimated variance increases the KLD as the log of the -square root of the ratio of the estimated variance to the true variance. When $\sigma\approx\sigma_{0}$, $KLD\sim t^{2}$ in terms of the "tension" -$t\equiv\frac{(\mu-\mu_{0})^{2}}{\sigma^{2}}$, whose behavior is illustrated in -Figure~\ref{fig:tension}. +$t\equiv\frac{(\mu-\mu_{0})^{2}}{\sigma^{2}}$, whose concordance is illustrated +in Figure~\ref{fig:tension}. This behavior hints at the KLD's sensitivity to +the tails of a distribution, relative to the RMSE, which does not continue +increasing with tension. \begin{figure} - \includegraphics[width=0.9\columnwidth]{figures/kld_tension.png} - \caption{The KLD (solid black line) is equal to the square of the tension -$t$, with a small additive offset when $r\neq1$. - \label{fig:tension}} + \begin{center} + \includegraphics[width=\columnwidth]{figures/tension.pdf} + \caption{The KLD (solid line) is equal to the square of the tension $t$, +with a small additive offset when $r\neq1$, whereas the RMSE (dotted line) is +relatively insensitive to tension past a certain point. + \label{fig:tension}} + \end{center} \end{figure} \subsection*{Acknowledgments} From 5d75d172391a98222bd63f1aa66433e609103171 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 30 Aug 2017 17:14:13 -0700 Subject: [PATCH 49/96] fixing formatting issues --- .../main.bib | 32 +++++------ .../main.tex | 53 ++++++++++--------- 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index bea52203..9dafbc39 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -7,7 +7,7 @@ @article{carrasco_kind_sparse_2014 url = {https://academic.oup.com/mnras/article/441/4/3550/1229381/Sparse-representation-of-photometric-redshift}, doi = {10.1093/mnras/stu827}, number = {4}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {Carrasco Kind, Matias and Brunner, Robert J.}, month = jul, year = {2014}, @@ -21,7 +21,7 @@ @article{dark_energy_survey_collaboration_redshift_2016 doi = {10.1103/PhysRevD.94.042005}, number = {4}, urldate = {2017-07-19}, - journal = {Physical Review D}, + journal = {Phys. Rev. D}, author = {{Dark Energy Survey Collaboration} and Bonnett, C. and Troxel, M. A. and Hartley, W. and Amara, A. and Leistedt, B. and Becker, M. R. and Bernstein, G. M. and Bridle, S. L. and Bruderer, C. and Busha, M. T. and Carrasco Kind, M. and Childress, M. J. and Castander, F. J. and Chang, C. and Crocce, M. and Davis, T. M. and Eifler, T. F. and Frieman, J. and Gangkofner, C. and Gaztanaga, E. and Glazebrook, K. and Gruen, D. and Kacprzak, T. and King, A. and Kwan, J. and Lahav, O. and Lewis, G. and Lidman, C. and Lin, H. and MacCrann, N. and Miquel, R. and O’Neill, C. R. and Palmese, A. and Peiris, H. V. and Refregier, A. and Rozo, E. and Rykoff, E. S. and Sadeh, I. and Sánchez, C. and Sheldon, E. and Uddin, S. and Wechsler, R. H. and Zuntz, J. and Abbott, T. and Abdalla, F. B. and Allam, S. and Armstrong, R. and Banerji, M. and Bauer, A. H. and Benoit-Lévy, A. and Bertin, E. and Brooks, D. and Buckley-Geer, E. and Burke, D. L. and Capozzi, D. and Carnero Rosell, A. and Carretero, J. and Cunha, C. E. and D’Andrea, C. B. and da Costa, L. N. and DePoy, D. L. and Desai, S. and Diehl, H. T. and Dietrich, J. P. and Doel, P. and Fausti Neto, A. and Fernandez, E. and Flaugher, B. and Fosalba, P. and Gerdes, D. W. and Gruendl, R. A. and Honscheid, K. and Jain, B. and James, D. J. and Jarvis, M. and Kim, A. G. and Kuehn, K. and Kuropatkin, N. and Li, T. S. and Lima, M. and Maia, M. A. G. and March, M. and Marshall, J. L. and Martini, P. and Melchior, P. and Miller, C. J. and Neilsen, E. and Nichol, R. C. and Nord, B. and Ogando, R. and Plazas, A. A. and Reil, K. and Romer, A. K. and Roodman, A. and Sako, M. and Sanchez, E. and Santiago, B. and Smith, R. C. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Thaler, J. and Thomas, D. and Vikram, V. and Walker, A. R.}, month = aug, year = {2016}, @@ -53,7 +53,7 @@ @article{tanaka_photometric_2017 keywords = {Astrophysics - Astrophysics of Galaxies}, } -@article{benitez_bayesian_2000, +@article{ben`itez_bayesian_2000, title = {Bayesian {Photometric} {Redshift} {Estimation}}, volume = {536}, issn = {0004-637X}, @@ -62,8 +62,8 @@ @article{benitez_bayesian_2000 language = {en}, number = {2}, urldate = {2017-07-30}, - journal = {The Astrophysical Journal}, - author = {Benítez, Narciso}, + journal = {ApJ}, + author = {Ben{\textbackslash}`\{i\}tez, Narciso}, year = {2000}, pages = {571}, } @@ -77,7 +77,7 @@ @article{sheldon_photometric_2012 language = {en}, number = {2}, urldate = {2017-07-31}, - journal = {The Astrophysical Journal Supplement Series}, + journal = {ApJS}, author = {Sheldon, Erin S. and Cunha, Carlos E. and Mandelbaum, Rachel and Brinkmann, J. and Weaver, Benjamin A.}, year = {2012}, pages = {32}, @@ -90,7 +90,7 @@ @article{myers_incorporating_2009 url = {https://academic.oup.com/mnras/article/399/4/2279/1037682/Incorporating-photometric-redshift-probability}, doi = {10.1111/j.1365-2966.2009.15432.x}, number = {4}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {Myers, Adam D. and White, Martin and Ball, Nicholas M.}, month = nov, year = {2009}, @@ -133,7 +133,7 @@ @article{gonzalez-perez_how_2014 url = {https://academic.oup.com/mnras/article/439/1/264/971853/How-sensitive-are-predicted-galaxy-luminosities-to}, doi = {10.1093/mnras/stt2410}, number = {1}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {Gonzalez-Perez, V. and Lacey, C. G. and Baugh, C. M. and Lagos, C. D. P. and Helly, J. and Campbell, D. J. R. and Mitchell, P. D.}, month = mar, year = {2014}, @@ -160,7 +160,7 @@ @article{merson_lightcone_2013 url = {https://academic.oup.com/mnras/article/429/1/556/1023267/Lightcone-mock-catalogues-from-semi-analytic}, doi = {10.1093/mnras/sts355}, number = {1}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {Merson, Alexander I. and Baugh, Carlton M. and Helly, John C. and Gonzalez-Perez, Violeta and Cole, Shaun and Bielby, Richard and Norberg, Peder and Frenk, Carlos S. and Benson, Andrew J. and Bower, Richard G. and Lacey, Cedric G. and Lagos, Claudia del P.}, month = feb, year = {2013}, @@ -176,7 +176,7 @@ @article{ilbert_accurate_2006 doi = {10.1051/0004-6361:20065138}, language = {en}, number = {3}, - journal = {Astronomy \& Astrophysics}, + journal = {A\&A}, author = {Ilbert, O. and Arnouts, S. and McCracken, H. J. and Bolzonella, M. and Bertin, E. and Fèvre, O. Le and Mellier, Y. and Zamorani, G. and Pellò, R. and Iovino, A. and Tresse, L. and Brun, V. Le and Bottini, D. and Garilli, B. and Maccagni, D. and Picat, J. P. and Scaramella, R. and Scodeggio, M. and Vettolani, G. and Zanichelli, A. and Adami, C. and Bardelli, S. and Cappi, A. and Charlot, S. and Ciliegi, P. and Contini, T. and Cucciati, O. and Foucaud, S. and Franzetti, P. and Gavignaud, I. and Guzzo, L. and Marano, B. and Marinoni, C. and Mazure, A. and Meneux, B. and Merighi, R. and Paltani, S. and Pollo, A. and Pozzetti, L. and Radovich, M. and Zucca, E. and Bondi, M. and Bongiorno, A. and Busarello, G. and Torre, S. De La and Gregorini, L. and Lamareille, F. and Mathez, G. and Merluzzi, P. and Ripepi, V. and Rizzo, D. and Vergani, D.}, month = oct, year = {2006}, @@ -237,7 +237,7 @@ @article{laycock_x-ray_2017 language = {en}, number = {1}, urldate = {2017-08-29}, - journal = {The Astrophysical Journal}, + journal = {ApJ}, author = {Laycock, Silas and Cappallo, Rigel and Williams, Benjamin F. and Prestwich, Andrea and Binder, Breanna and Christodoulou, Dimitris M.}, year = {2017}, pages = {50} @@ -282,7 +282,7 @@ @article{de_vicente_dnf_2016 doi = {10.1093/mnras/stw857}, number = {3}, urldate = {2017-08-29}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {De Vicente, J. and Sánchez, E. and Sevilla-Noarbe, I.}, month = jul, year = {2016}, @@ -299,7 +299,7 @@ @article{sadeh_annz2:_2016 language = {en}, number = {968}, urldate = {2017-08-29}, - journal = {Publications of the Astronomical Society of the Pacific}, + journal = {PASP}, author = {Sadeh, I. and Abdalla, F. B. and Lahav, O.}, year = {2016}, pages = {104502} @@ -314,7 +314,7 @@ @article{cavuoti_metaphor:_2017 doi = {10.1093/mnras/stw2930}, number = {2}, urldate = {2017-08-29}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {Cavuoti, S. and Amaro, V. and Brescia, M. and Vellucci, C. and Tortora, C. and Longo, G.}, month = feb, year = {2017}, @@ -330,7 +330,7 @@ @article{carrasco_kind_somz:_2014 doi = {10.1093/mnras/stt2456}, number = {4}, urldate = {2017-08-29}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {Carrasco Kind, Matias and Brunner, Robert J.}, month = mar, year = {2014}, @@ -345,7 +345,7 @@ @article{mountrichas_measuring_2013 doi = {10.1093/mnras/sts666}, number = {1}, urldate = {2017-08-29}, - journal = {Monthly Notices of the Royal Astronomical Society}, + journal = {Mon Not R Astron Soc}, author = {Mountrichas, G. and Georgakakis, A. and Finoguenov, A. and Erfanianfar, G. and Cooper, M. C. and Coil, A. L. and Laird, E. S. and Nandra, K. and Newman, J. A.}, month = mar, year = {2013}, diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 40268827..765f7614 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -122,7 +122,7 @@ \section{Methods} Section~\ref{sec:approx}. The \qp\ package also provides a few built-in metrics of the accuracy of a representation of a \pz\ relative to a given parametrization that has been -designated as "true." +designated as the reference representation. Built-in plots are made using \texttt{matplotlib}\footnote{\url{https://matplotlib.org/}}. The currently implemented metrics are described in Section~\ref{sec:metric}. @@ -330,7 +330,7 @@ \subsection{Comparison Metrics} \label{sec:metric} In this work, our aim is to probe how closely \pz s reconstructed from limited -set of stored parameters approximate their "true" representation. +set of stored parameters approximate their reference representation. This is done without reference to a galaxy's true redshift; there is, in fact, no notion of a true redshift in our analysis. (For a demonstration of how one might approach the distinct problem of @@ -429,7 +429,7 @@ \section{Photo-z Test Data} posterior probability distribution that is a continuous function, to which the output of BPZ is itself a high-resolution approximation in the form of evaluations on a grid, we fit the gridded \pz\ with a Gaussian mixture model -that we designate as the "true" \pz\ for our accuracy tests. +that we designate as the reference representation for our accuracy tests. \subsection{\Mgdata data mock catalog} \label{sec:graham} @@ -475,8 +475,8 @@ \subsection{\Mgdata data mock catalog} As the figure shows, the \pz s from this dataset tend to be unimodal and sharply peaked, as if coming from brighter photometric data due to the conservative cuts in photometric magnitudes of this dataset. -We produce "true" \pz s for the analysis by fitting a three-component Gaussian -mixture model to each \pz\ in the catalog. +We produce reference \pz s for the analysis by fitting a three-component +Gaussian mixture model to each \pz\ in the catalog. We then calculate the three approximations to each \pz\ and evaluate their accuracy using the metrics described above. @@ -493,8 +493,8 @@ \subsection{\Ssdata mock catalog} broadband LSST filters ($ugrizy$), assuming the full 10-year depth of the survey using the simple model of \citet{ivezic_lsst:_2008}. The catalog contains $N_{g}\approx100,000$ galaxies to a depth of $i<26.9$, 1.5 -magnitudes deeper than the expected "LSST Gold sample" of galaxies that will -have $S/N\gtrsim30$ in multiple bands. +magnitudes deeper than the expected LSST Gold sample of galaxies that will have +$S/N\gtrsim30$ in multiple bands. In implementing BPZ, we createed a custom Bayesian prior using a subset of the Buzzard-highres-v1.0 catalog and a spanning template set via a simple k-means @@ -520,8 +520,8 @@ \subsection{\Ssdata mock catalog} of multimodal \pz s. The exceptional depth of the dataset also leads us to expect the presence of broad \pz s. -We produced "true" \pz s for the analysis by fitting a five-component Gaussian -mixture model to each gridded \pz\ in the catalog. +We produced reference \pz s for the analysis by fitting a five-component +Gaussian mixture model to each gridded \pz\ in the catalog. We then calculated the three different approximations to each \pz, and evaluated their accuracy using the metrics described above. @@ -788,23 +788,24 @@ \subsection*{Appendix} \end{align} To get a sense of the units of information, we can calculate the KLD and RMSE in some limiting cases. -If $\sigma=\sigma_{0}$ but $\mu=\mu_{0}+1$, we obtain $KLD=\frac{1}{2}$ nat -- -if the mean of the approximation is wrong by an additive factor of $1\sigma$, -half a nat of information is lost. +If $\sigma=\sigma_{0}$ but $\mu=\mu_{0}+1$, we obtain +$\mathrm{KLD}=\frac{1}{2}$ nat -- if the mean of the approximation is wrong by +an additive factor of $1\sigma$, half a nat of information is lost. If $\mu=\mu_{0}$ but $\sigma=\sqrt{2\pi}\sigma_{0}$, we find -$KLD\approx\frac{1}{2}$ nat -- half a nat of information is also lost if the -variance of the approximation is off by a multiplicative factor of $2\pi$. +$\mathrm{KLD}\approx\frac{1}{2}$ nat -- half a nat of information is also lost +if the variance of the approximation is off by a multiplicative factor of +$2\pi$. We can use the KLD to identify notions of imprecision and inaccuracy. Intuitively, precision must be related to how close $\sigma$ is to $\sigma_{0}$ and accuracy must be related to how close $\mu$ is to $\mu_{0}$. -If $\mu\approx\mu_{0}$, we can say $KLD\sim\log[r] + \frac{1}{2}r^{-2} - -\frac{1}{2}$ where $r^{-1}\equiv\frac{\sigma_{0}}{\sigma}$ is a measure of -"precision," whose behavior is illustrated in Figure~\ref{fig:precision}, -alongside that of the RMSE. We observe that an overestimated variance -increases the KLD as the log of the square root of the ratio of the estimated -variance to the true variance. +If $\mu\approx\mu_{0}$, we can say $\mathrm{KLD}\sim\log[r] + \frac{1}{2}r^{-2} +- \frac{1}{2}$ where $r^{-1}\equiv\frac{\sigma_{0}}{\sigma}$ is a measure of +\textit{precision}, whose behavior is illustrated in +Figure~\ref{fig:precision}, alongside that of the RMSE. We observe that an +overestimated variance increases the KLD as the log of the square root of the +ratio of the estimated variance to the true variance. \begin{figure} \begin{center} @@ -816,11 +817,13 @@ \subsection*{Appendix} \end{center} \end{figure} -When $\sigma\approx\sigma_{0}$, $KLD\sim t^{2}$ in terms of the "tension" -$t\equiv\frac{(\mu-\mu_{0})^{2}}{\sigma^{2}}$, whose concordance is illustrated -in Figure~\ref{fig:tension}. This behavior hints at the KLD's sensitivity to -the tails of a distribution, relative to the RMSE, which does not continue -increasing with tension. +When $\sigma\approx\sigma_{0}$, $\mathrm{KLD}\sim t^{2}$ in terms of the +\textit{tension} $t\equiv\frac{(\mu-\mu_{0})^{2}}{\sigma^{2}}$, whose +concordance is illustrated in Figure~\ref{fig:tension}. This behavior hints at +the KLD's sensitivity to the tails of a distribution, relative to the RMSE, +which does not continue increasing with tension. The notion of tension may be +more important for cosmological applications of \pz s, indicating the KLD is a +more appropriate metric than the RMSE. \begin{figure} \begin{center} From cc7556859a090c6a91dad7946298d72e0afd39cd Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 30 Aug 2017 18:33:27 -0700 Subject: [PATCH 50/96] periodic backup --- .../main.tex | 14 +++--- .../research/analysis.ipynb | 43 +++++++++---------- qp/pdf.py | 9 ++-- 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 765f7614..be5aadd8 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -414,7 +414,7 @@ \section{Photo-z Test Data} datasets, each intended to be realistic projections of the anticipated LSST \pz s. All \pz s were fit using the publicly available Bayesian Photometric Redshift -(BPZ) code \citep{benitez_bayesian_2000}, which employs spectral energy +(BPZ) code \citep{ben`itez_bayesian_2000}, which employs spectral energy distribution (SED) fitting to a template library. The choice of \pz\ estimation method, however, is not relevant to this study; so long as the mock \pz s are \textit{realistically complex}, meaning they take @@ -598,8 +598,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} increasing $N_{f}$. This poor performance independent of resource allocation is actually expected because, due to the narrow, unimodal \pz s of Figure~\ref{fig:graham_pzs}, a -great majority of the probability density will fall into a single bin -$c^{h}_{i=j}$ with all other $c^{h}_{i\neq j}\approx 0$ \textit{regardless} of +great majority of the probability density will fall into a single bin $c^{\ +h}_{i=j}$ with all other $c^{\ h}_{i\neq j}\approx 0$ \textit{regardless} of $N_{f}$. The quantile format consistently produces the lowest $\hat{n}(z)$ KLDs, with a larger improvement over the samples format as $N_{f}$ increases. @@ -607,8 +607,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} noise due to samples should decrease with higher $N_{f}$. The quantile format also has a larger variance between instantiations than the samples format, likely due to the imperfections of the procedures for deriving -the quantile parameters $\vec{c}^{q}$ from the true $p(z)$ and for -reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{q}$. +the quantile parameters $\vec{c}^{\ q}$ from the true $p(z)$ and for +reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{\ q}$. In the \ssdata data mock catalog, the histogram format does improve with increasing $N_{f}$, however, it takes a whopping $N_{f}=100$ stored parameters @@ -622,8 +622,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \ssdata data mock catalog than for the \mgdata data mock catalog. The variance between instantiations of the quantile format increases at high $N_{f}$, a possible indication of room for improvement with the procedures for -deriving the quantile parameters $\vec{c}^{q}$ from the true $p(z)$ and for -reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{q}$ +deriving the quantile parameters $\vec{c}^{\ q}$ from the true $p(z)$ and for +reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{\ q}$ \begin{figure} \begin{center} diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index ac09cdbb..b11cc285 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -186,7 +186,6 @@ " plt.xlim(min(z_grid), max(z_grid))\n", " plt.ylim(0., max(pz_max))\n", " plt.title(dataset_info[dataset_key]['name']+' data examples', fontsize=16)\n", - " plt.legend()\n", " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()\n", " \n", @@ -382,7 +381,7 @@ " dx=delta_z, vb=False)\n", " pz_moments[key].append(new_moment)\n", " delta_moment = (new_moment - pz_moments['truth'][n]) / pz_moments['truth'][n]\n", - " pz_moment_deltas[key].append(np.sum(np.abs(delta_moment) < 0.01))#TO DO change to just keeping delta moment and cutting in plot\n", + " pz_moment_deltas[key].append(delta_moment)\n", " print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start))\n", "# print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", @@ -610,7 +609,7 @@ " nz_max.append(max(stacks['truth']))\n", " for key in formats:\n", " nz_max.append(max(stacks[key]))\n", - " plt.plot(z_grid, stacks[key], label=key+r' KLD='+str(klds[key]), color=colors[key], linestyle=styles[key])\n", + " plt.plot(z_grid, stacks[key], label=key+r' KLD='+str(klds[key])[:8], color=colors[key], linestyle=styles[key])\n", " plt.xlabel(r'$z$', fontsize=14)\n", " plt.ylabel(r'$\\hat{n}(z)$', fontsize=14)\n", " plt.xlim(min(z_grid), max(z_grid))\n", @@ -861,7 +860,10 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1) / float(size)#go from n_floats*instantiations to instantiations*n_floats\n", + "# print(str(np.shape(pz_stats[f][n]))+' should be n_floats * n_instantiations')\n", + " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats\n", + "# print(str(np.shape(data_arr))+' should be n_instantiations * n_floats')\n", + " data_arr = np.median(data_arr, axis=2)\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", @@ -871,7 +873,7 @@ " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", " n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -879,7 +881,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", - " ax.legend(loc='upper right')\n", + " ax.legend(loc='upper left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -906,10 +908,11 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1) / float(size)\n", + " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)\n", + " data_arr = np.median(data_arr, axis=2)\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", - " ax_n.set_ylabel(r'fractional $\\Delta$'+moment_names[n]+'$<0.01$', rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -917,12 +920,10 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='upper right')\n", + " ax.legend(loc='upper left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", - " plt.close()\n", - " \n", - " #np.sum(np.abs(delta_moment) < 0.01) TO DO: do this along with division" + " plt.close()" ] }, { @@ -1093,7 +1094,7 @@ " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", "# print('nz moments data shape '+str(nz_stats[f][n]))\n", - " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", + " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", @@ -1114,7 +1115,7 @@ "# nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", "# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", "# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", - " ax_n.set_ylabel(r'fractional error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -1152,7 +1153,7 @@ " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", "# print('nz moments data shape '+str(nz_stats[f][n]))\n", - " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth\n", + " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", "# nz_moment_max[n-1].append(max(i))\n", @@ -1160,7 +1161,7 @@ "# for i in data_arr:\n", "# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a)\n", "# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", - " ax_n.set_ylabel(r'fractional error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", @@ -1279,9 +1280,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [100]#, 100, 1000]\n", - "names = ['ss']#dataset_info.keys()\n", - "instantiations = range(0, 1)#0)\n", + "sizes = [100]#[10, 100, 1000]\n", + "names = dataset_info.keys()\n", + "instantiations = range(0, 10)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1399,8 +1400,7 @@ "for name in names:\n", " for size in sizes:\n", " path = os.path.join(name, str(size))\n", - " for j in range(max(instantiations)):\n", - " i = instantiations[j]\n", + " for i in instantiations:\n", " plot = plot_examples(size, name, bonus='_original'+str(i))\n", " plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", " for n in range(len(floats)):\n", @@ -1410,7 +1410,6 @@ " plot = plot_examples(size, name, bonus=fname)\n", " plot = plot_individual_kld(size, name, n_floats_use, i)\n", " plot = plot_estimators(size, name, n_floats_use, i)\n", - " print('plotted instantiation '+str(j))\n", " plot = plot_pz_metrics(name, size)\n", " plot = plot_pz_delta_moments(name, size)\n", " plot = plot_nz_klds(name, size)\n", diff --git a/qp/pdf.py b/qp/pdf.py index 816f80b4..77cb7a87 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -581,8 +581,8 @@ def interpolate(self, using=None, vb=True): if vb: print('evaluated quantile PDF: '+str((x, y))) (x, y) = qp.utils.normalize_quantiles(self.quantiles, (x, y), vb=vb) if vb: print('complete evaluated quantile PDF: '+str((x, y))) - tan_lo = y[1] / (x[1] - x[0]) - tan_hi = y[-2] / (x[-1] - x[-2]) + # tan_lo = y[1] / (x[1] - x[0]) + # tan_hi = y[-2] / (x[-1] - x[-2]) # cdf_interpolator = spi.interp1d(self.quantiles[1], self.quantiles[0]) # interpolator = spi.interp1d(x, y, kind=len(x), bounds_error=False, fill_value=default_eps) # limits = (min(x), max(x)) @@ -609,15 +609,14 @@ def quantile_interpolator(xf): hi_inds = ((xf > self.quantiles[1][-1]) & (xf <= z[-1])).nonzero()[0] # if vb: # print('divided into '+str((lo_inds, in_inds, hi_inds))) - yf[in_inds] = inside(xf[in_inds]) # if vb: # print('evaluated '+str((x, y))) - + tan_lo = yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) yf[lo_inds] = tan_lo * (xf[lo_inds] - z[0])# yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) # if vb: # print('evaluated '+str((x, y))) - + tan_hi = yf[in_inds[-1]] / (z[-1] - xf[in_inds[-1]]) yf[hi_inds] = tan_hi * (z[-1] - xf[hi_inds])# yf[in_inds[-1]] * (xf[hi_inds] - z[-1]) / (xf[in_inds[-1]] - z[-1]) # if vb: # print('evaluated '+str((x, y))) From 140ea0db67ffbb8ff6c4c509041fabf17be5b5bb Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 31 Aug 2017 12:02:05 -0700 Subject: [PATCH 51/96] fixed some plotting stuff, ready for a big run --- .../research/analysis.ipynb | 216 +++++++++++------- 1 file changed, 133 insertions(+), 83 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index b11cc285..3426eb18 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -46,6 +46,7 @@ "import os\n", "import timeit\n", "import bisect\n", + "import re\n", "\n", "import qp\n", "from qp.utils import calculate_kl_divergence as make_kld\n", @@ -400,6 +401,47 @@ " return(Eo, klds, kld_moments, pz_moments, pz_moment_deltas)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_all_examples(name, size, N_floats, init, bonus={}):\n", + " #bonus is now a dict of all relevant bonus vals and linestyles\n", + " \n", + " fig, ax = plt.subplots()\n", + " lines = []\n", + " for bonus_key in bonus.keys():\n", + " path = os.path.join(name, str(size))\n", + " loc = os.path.join(path, 'pzs'+str(size)+name+bonus_key)\n", + " with open(loc+'.hkl', 'r') as filename:\n", + " info = hickle.load(filename)\n", + " randos = info['randos']\n", + " z_grid = info['z_grid']\n", + " pdfs = info['pdfs']\n", + " ls = bonus[bonus_key][0]\n", + " a = bonus[bonus_key][1]\n", + " lab = re.sub(r'[\\_]', '', bonus_key)\n", + " line, = ax.plot([-1., 0.], [0., 0.], linestyle=ls, alpha=a, color='k', label=lab)\n", + " lines.append(line)\n", + " leg = ax.legend(loc='upper right', handles=lines)\n", + " for i in range(n_plot):\n", + " data = (z_grid, pdfs[randos[i]])\n", + " data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data))\n", + " ax.plot(data[0], data[1], linestyle=ls, alpha=a, color=color_cycle[i])\n", + "# ax.legend(loc='upper right')\n", + " ax.set_xlabel(r'$z$', fontsize=14)\n", + " ax.set_ylabel(r'$p(z)$', fontsize=14)\n", + " ax.set_xlim(min(z_grid), max(z_grid))\n", + " ax.set_title(name+r' examples with $N_{f}=$'+str(N_floats), fontsize=16)\n", + " saveloc = os.path.join(path, 'pzs'+str(size)+name+str(N_floats)+'_'+str(init))\n", + " fig.savefig(saveloc+'.pdf', dpi=250)\n", + " plt.close()" + ] + }, { "cell_type": "code", "execution_count": null, @@ -763,7 +805,7 @@ " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ log-moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", @@ -803,7 +845,7 @@ " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ moments', fontsize=16)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ log-moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", @@ -822,8 +864,8 @@ " n_gals_use = size\n", " \n", " # should look like nz_moments\n", - " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, 'pz_moment_deltas'+str(n_gals_use)+dataset_key)\n", + " path = os.path.join(name, str(n_gals_use))\n", + " loc = os.path.join(path, 'pz_moment_deltas'+str(n_gals_use)+name)\n", " with open(loc+'.hkl', 'r') as pz_file:\n", " pz_stats = hickle.load(pz_file)\n", " flat_floats = np.array(pz_stats['N_f']).flatten()\n", @@ -863,7 +905,7 @@ "# print(str(np.shape(pz_stats[f][n]))+' should be n_floats * n_instantiations')\n", " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats\n", "# print(str(np.shape(data_arr))+' should be n_instantiations * n_floats')\n", - " data_arr = np.median(data_arr, axis=2)\n", + " data_arr = np.median(data_arr, axis=2) * 100.\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", @@ -874,14 +916,14 @@ " n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", " n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", + " ax_n.set_ylim((min(n_delta_min)-1., max(n_delta_max)+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", - " ax.legend(loc='upper left')\n", + " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", + " ax.legend(loc='upper right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -909,18 +951,18 @@ " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)\n", - " data_arr = np.median(data_arr, axis=2)\n", + " data_arr = np.median(data_arr, axis=2) * 100.\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((n_delta_min[n]-0.1, n_delta_max[n]+0.1))\n", + " ax_n.set_ylim((min(n_delta_min)-1., min(n_delta_max)+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='upper left')\n", + " ax.set_title(dataset_info[name]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", + " ax.legend(loc='upper right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" @@ -1116,7 +1158,7 @@ "# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", "# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", + " ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", @@ -1162,7 +1204,7 @@ "# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a)\n", "# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((nz_mean_min[n]-0.1, nz_mean_max[n]+0.1))\n", + " ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", @@ -1280,9 +1322,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [100]#[10, 100, 1000]\n", + "sizes = [10]#[10, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 10)#0)\n", + "instantiations = range(0, 2)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1300,84 +1342,83 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, - "scrolled": true + "collapsed": true }, "outputs": [], "source": [ - "# the \"pipeline\"\n", - "global_start = timeit.default_timer()\n", - "for n in range(len(names)):\n", - " name = names[n]\n", + "# # the \"pipeline\"\n", + "# global_start = timeit.default_timer()\n", + "# for n in range(len(names)):\n", + "# name = names[n]\n", " \n", - " dataset_start = timeit.default_timer()\n", - " print('started '+name)\n", + "# dataset_start = timeit.default_timer()\n", + "# print('started '+name)\n", " \n", - " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", + "# pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", - " for s in range(len(sizes)):\n", - " size=sizes[s]\n", + "# for s in range(len(sizes)):\n", + "# size=sizes[s]\n", " \n", - " size_start = timeit.default_timer()\n", - " print('started '+name+str(size))\n", + "# size_start = timeit.default_timer()\n", + "# print('started '+name+str(size))\n", " \n", - " path = os.path.join(name, str(size))\n", - " if not os.path.exists(path):\n", - " os.makedirs(path)\n", + "# path = os.path.join(name, str(size))\n", + "# if not os.path.exists(path):\n", + "# os.makedirs(path)\n", " \n", - " n_gals_use = size\n", + "# n_gals_use = size\n", " \n", - " randos = all_randos[n][s]\n", + "# randos = all_randos[n][s]\n", " \n", - " for i in instantiations:\n", - " i_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i))\n", + "# for i in instantiations:\n", + "# i_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i))\n", " \n", - " original = '_original'+str(i)\n", - " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# plot = plot_examples(size, name, bonus=original)\n", + "# original = '_original'+str(i)\n", + "# pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", + "# # plot = plot_examples(size, name, bonus=original)\n", " \n", - " z_grid = dataset_info[name]['in_z_grid']\n", - " N_comps = dataset_info[name]['N_GMM']\n", + "# z_grid = dataset_info[name]['in_z_grid']\n", + "# N_comps = dataset_info[name]['N_GMM']\n", " \n", - " postfit = '_postfit'+str(i)\n", - " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# plot = plot_examples(size, name, bonus=postfit)\n", + "# postfit = '_postfit'+str(i)\n", + "# catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", + "# # plot = plot_examples(size, name, bonus=postfit)\n", " \n", - " for n_floats_use in floats:\n", + "# for n_floats_use in floats:\n", " \n", - " float_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", + "# float_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - " (ensembles, pz_klds, metric_moments, pz_moments, pz_moment_deltas) = analyze_individual(catalog, \n", - " z_grid,#dataset_info[name]['metric_z_grid'], \n", - " n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + "# (ensembles, pz_klds, metric_moments, pz_moments, pz_moment_deltas) = analyze_individual(catalog, \n", + "# z_grid,#dataset_info[name]['metric_z_grid'], \n", + "# n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", - " for f in formats:\n", - " fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", - " save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", - " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", - " save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", + "# for f in formats:\n", + "# fname = str(n_floats_use)+f+str(i)\n", + "# # plot = plot_examples(size, name, bonus=fname)\n", + "# # plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + "# save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", + "# save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", + "# save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", " \n", - " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", - " n_floats_use, name, i=i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", - " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", - " save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", + "# (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", + "# n_floats_use, name, i=i)\n", + "# # plot = plot_estimators(size, name, n_floats_use, i=i)\n", + "# save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", + "# save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", - "# plot = plot_pz_metrics(name, size)\n", - "# plot = plot_pz_delta_moments(name, size) \n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + "# # plot = plot_pz_metrics(name, size)\n", + "# # plot = plot_pz_delta_moments(name, size) \n", + "# # plot = plot_nz_klds(name, size)\n", + "# # plot = plot_nz_moments(name, size)\n", " \n", - " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", + "# print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", - "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" + "# print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "# print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1395,25 +1436,34 @@ }, "outputs": [], "source": [ - "#comment out for NERSC\n", + "# comment out for NERSC\n", + "# run twice to match axis limits\n", "\n", "for name in names:\n", " for size in sizes:\n", - " path = os.path.join(name, str(size))\n", " for i in instantiations:\n", - " plot = plot_examples(size, name, bonus='_original'+str(i))\n", - " plot = plot_examples(size, name, bonus='_postfit'+str(i))\n", + " top_bonusdict = {}\n", + " bo = '_original'+str(i)\n", + "# plot = plot_examples(size, name, bonus=bo)\n", + " top_bonusdict[bo] = ['-', 0.5]\n", + " bp = '_postfit'+str(i)\n", + "# plot = plot_examples(size, name, bonus=bp)\n", + " top_bonusdict[bp] = ['-', 1.]\n", " for n in range(len(floats)):\n", + " bonusdict = top_bonusdict.copy()\n", " n_floats_use = floats[n]\n", " for f in formats:\n", " fname = str(n_floats_use)+f+str(i)\n", - " plot = plot_examples(size, name, bonus=fname)\n", - " plot = plot_individual_kld(size, name, n_floats_use, i)\n", - " plot = plot_estimators(size, name, n_floats_use, i)\n", - " plot = plot_pz_metrics(name, size)\n", - " plot = plot_pz_delta_moments(name, size)\n", - " plot = plot_nz_klds(name, size)\n", - " plot = plot_nz_moments(name, size)" + "# plot = plot_examples(size, name, bonus=fname)\n", + " bonusdict[fname] = [styles[f], 1.]\n", + " print(bonusdict)\n", + " plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i)\n", + "# plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_delta_moments(name, size)\n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)" ] }, { From 264c6a52d1341b02875cb8d9607f4d4559abfe0c Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 31 Aug 2017 13:28:44 -0700 Subject: [PATCH 52/96] new version of paper --- .../main.bib | 59 ++++---------- .../main.tex | 79 ++++++++++--------- 2 files changed, 60 insertions(+), 78 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index 9dafbc39..85f316f5 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -20,9 +20,8 @@ @article{dark_energy_survey_collaboration_redshift_2016 url = {https://link.aps.org/doi/10.1103/PhysRevD.94.042005}, doi = {10.1103/PhysRevD.94.042005}, number = {4}, - urldate = {2017-07-19}, journal = {Phys. Rev. D}, - author = {{Dark Energy Survey Collaboration} and Bonnett, C. and Troxel, M. A. and Hartley, W. and Amara, A. and Leistedt, B. and Becker, M. R. and Bernstein, G. M. and Bridle, S. L. and Bruderer, C. and Busha, M. T. and Carrasco Kind, M. and Childress, M. J. and Castander, F. J. and Chang, C. and Crocce, M. and Davis, T. M. and Eifler, T. F. and Frieman, J. and Gangkofner, C. and Gaztanaga, E. and Glazebrook, K. and Gruen, D. and Kacprzak, T. and King, A. and Kwan, J. and Lahav, O. and Lewis, G. and Lidman, C. and Lin, H. and MacCrann, N. and Miquel, R. and O’Neill, C. R. and Palmese, A. and Peiris, H. V. and Refregier, A. and Rozo, E. and Rykoff, E. S. and Sadeh, I. and Sánchez, C. and Sheldon, E. and Uddin, S. and Wechsler, R. H. and Zuntz, J. and Abbott, T. and Abdalla, F. B. and Allam, S. and Armstrong, R. and Banerji, M. and Bauer, A. H. and Benoit-Lévy, A. and Bertin, E. and Brooks, D. and Buckley-Geer, E. and Burke, D. L. and Capozzi, D. and Carnero Rosell, A. and Carretero, J. and Cunha, C. E. and D’Andrea, C. B. and da Costa, L. N. and DePoy, D. L. and Desai, S. and Diehl, H. T. and Dietrich, J. P. and Doel, P. and Fausti Neto, A. and Fernandez, E. and Flaugher, B. and Fosalba, P. and Gerdes, D. W. and Gruendl, R. A. and Honscheid, K. and Jain, B. and James, D. J. and Jarvis, M. and Kim, A. G. and Kuehn, K. and Kuropatkin, N. and Li, T. S. and Lima, M. and Maia, M. A. G. and March, M. and Marshall, J. L. and Martini, P. and Melchior, P. and Miller, C. J. and Neilsen, E. and Nichol, R. C. and Nord, B. and Ogando, R. and Plazas, A. A. and Reil, K. and Romer, A. K. and Roodman, A. and Sako, M. and Sanchez, E. and Santiago, B. and Smith, R. C. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Thaler, J. and Thomas, D. and Vikram, V. and Walker, A. R.}, + author = {{Dark Energy Survey Collaboration} and Bonnett, C. and Troxel, M. A. and Hartley, W. and Amara, A. and Leistedt, B. and Becker, M. R. and Bernstein, G. M. and Bridle, S. L. and Bruderer, C. and Busha, M. T. and Carrasco Kind, M. and Childress, M. J. and Castander, F. J. and Chang, C. and Crocce, M. and Davis, T. M. and Eifler, T. F. and Frieman, J. and Gangkofner, C. and Gaztanaga, E. and Glazebrook, K. and Gruen, D. and Kacprzak, T. and King, A. and Kwan, J. and Lahav, O. and Lewis, G. and Lidman, C. and Lin, H. and MacCrann, N. and Miquel, R. and O{\textquoteright}Neill, C. R. and Palmese, A. and Peiris, H. V. and Refregier, A. and Rozo, E. and Rykoff, E. S. and Sadeh, I. and S{\'a}nchez, C. and Sheldon, E. and Uddin, S. and Wechsler, R. H. and Zuntz, J. and Abbott, T. and Abdalla, F. B. and Allam, S. and Armstrong, R. and Banerji, M. and Bauer, A. H. and Benoit-L{\'e}vy, A. and Bertin, E. and Brooks, D. and Buckley-Geer, E. and Burke, D. L. and Capozzi, D. and Carnero Rosell, A. and Carretero, J. and Cunha, C. E. and D{\textquoteright}Andrea, C. B. and da Costa, L. N. and DePoy, D. L. and Desai, S. and Diehl, H. T. and Dietrich, J. P. and Doel, P. and Fausti Neto, A. and Fernandez, E. and Flaugher, B. and Fosalba, P. and Gerdes, D. W. and Gruendl, R. A. and Honscheid, K. and Jain, B. and James, D. J. and Jarvis, M. and Kim, A. G. and Kuehn, K. and Kuropatkin, N. and Li, T. S. and Lima, M. and Maia, M. A. G. and March, M. and Marshall, J. L. and Martini, P. and Melchior, P. and Miller, C. J. and Neilsen, E. and Nichol, R. C. and Nord, B. and Ogando, R. and Plazas, A. A. and Reil, K. and Romer, A. K. and Roodman, A. and Sako, M. and Sanchez, E. and Santiago, B. and Smith, R. C. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Thaler, J. and Thomas, D. and Vikram, V. and Walker, A. R.}, month = aug, year = {2016}, pages = {042005}, @@ -32,28 +31,24 @@ @article{krause_dark_2017 title = {Dark {Energy} {Survey} {Year} 1 {Results}: {Multi}-{Probe} {Methodology} and {Simulated} {Likelihood} {Analyses}}, shorttitle = {Dark {Energy} {Survey} {Year} 1 {Results}}, url = {http://arxiv.org/abs/1706.09359}, - urldate = {2017-07-24}, journal = {arXiv:1706.09359 [astro-ph]}, author = {Krause, E. and Eifler, T. F. and Zuntz, J. and Friedrich, O. and Troxel, M. A. and Dodelson, S. and Blazek, J. and Secco, L. F. and MacCrann, N. and Baxter, E. and Chang, C. and Chen, N. and Crocce, M. and DeRose, J. and Ferte, A. and Kokron, N. and Lacasa, F. and Miranda, V. and Omori, Y. and Porredon, A. and Rosenfeld, R. and Samuroff, S. and Wang, M. and Wechsler, R. H. and Abbott, T. M. C. and Abdalla, F. B. and Allam, S. and Annis, J. and Bechtol, K. and Benoit-Levy, A. and Bernstein, G. M. and Brooks, D. and Burke, D. L. and Capozzi, D. and Kind, M. Carrasco and Carretero, J. and D'Andrea, C. B. and da Costa, L. N. and Davis, C. and DePoy, D. L. and Desai, S. and Diehl, H. T. and Dietrich, J. P. and Evrard, A. E. and Flaugher, B. and Fosalba, P. and Frieman, J. and Garcia-Bellido, J. and Gaztanaga, E. and Giannantonio, T. and Gruen, D. and Gruendl, R. A. and Gschwend, J. and Gutierrez, G. and Honscheid, K. and James, D. J. and Jeltema, T. and Kuehn, K. and Kuhlmann, S. and Lahav, O. and Lima, M. and Maia, M. A. G. and March, M. and Marshall, J. L. and Martini, P. and Menanteau, F. and Miquel, R. and Nichol, R. C. and Plazas, A. A. and Romer, A. K. and Rykoff, E. S. and Sanchez, E. and Scarpine, V. and Schindler, R. and Schubnell, M. and Sevilla-Noarbe, I. and Smith, M. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Tucker, D. L. and Vikram, V. and Walker, A. R. and Weller, J.}, month = jun, year = {2017}, note = {arXiv: 1706.09359}, - keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, } @article{tanaka_photometric_2017, title = {Photometric {Redshifts} for {Hyper} {Suprime}-{Cam} {Subaru} {Strategic} {Program} {Data} {Release} 1}, url = {http://arxiv.org/abs/1704.05988}, - urldate = {2017-07-29}, journal = {arXiv:1704.05988 [astro-ph]}, author = {Tanaka, Masayuki and Coupon, Jean and Hsieh, Bau-Ching and Mineo, Sogo and Nishizawa, Atsushi J. and Speagle, Joshua and Furusawa, Hisanori and Miyazaki, Satoshi and Murayama, Hitoshi}, month = apr, year = {2017}, note = {arXiv: 1704.05988}, - keywords = {Astrophysics - Astrophysics of Galaxies}, } -@article{ben`itez_bayesian_2000, +@article{benitez_bayesian_2000, title = {Bayesian {Photometric} {Redshift} {Estimation}}, volume = {536}, issn = {0004-637X}, @@ -61,9 +56,8 @@ @article{ben`itez_bayesian_2000 doi = {10.1086/308947}, language = {en}, number = {2}, - urldate = {2017-07-30}, journal = {ApJ}, - author = {Ben{\textbackslash}`\{i\}tez, Narciso}, + author = {Ben{\'i}tez, Narciso}, year = {2000}, pages = {571}, } @@ -76,7 +70,6 @@ @article{sheldon_photometric_2012 doi = {10.1088/0067-0049/201/2/32}, language = {en}, number = {2}, - urldate = {2017-07-31}, journal = {ApJS}, author = {Sheldon, Erin S. and Cunha, Carlos E. and Mandelbaum, Rachel and Brinkmann, J. and Weaver, Benjamin A.}, year = {2012}, @@ -103,7 +96,6 @@ @inproceedings{connolly_end--end_2014 volume = {9150}, url = {http://dx.doi.org/10.1117/12.2054953}, doi = {10.1117/12.2054953}, - urldate = {2017-08-04}, booktitle = {Modeling, {Systems} {Engineering}, and {Project} {Management} for {Astronomy} {VI}}, author = {Connolly, Andrew J. and Angeli, George Z. and Chandrasekharan, Srinivasan and Claver, Charles F. and Cook, Kem and Ivezic, Zeljko and Jones, R. Lynne and Krughoff, K. Simon and Peng, En-Hsin and Peterson, John and Petry, Catherine and Rasmussen, Andrew P. and Ridgway, Stephen T. and Saha, Abhijit and Sembroski, Glenn and vanderPlas, Jacob and Yoachim, Peter}, year = {2014}, @@ -113,14 +105,14 @@ @inproceedings{connolly_end--end_2014 @article{springel_simulations_2005, title = {Simulations of the formation, evolution and clustering of galaxies and quasars}, volume = {435}, - copyright = {© 2005 Nature Publishing Group}, + copyright = {{\textcopyright} 2005 Nature Publishing Group}, issn = {0028-0836}, url = {http://www.nature.com/nature/journal/v435/n7042/full/nature03597.html?foxtrotcallback=true}, doi = {10.1038/nature03597}, language = {en}, number = {7042}, journal = {Nature}, - author = {Springel, Volker and White, Simon D. M. and Jenkins, Adrian and Frenk, Carlos S. and Yoshida, Naoki and Gao, Liang and Navarro, Julio and Thacker, Robert and Croton, Darren and Helly, John and Peacock, John A. and Cole, Shaun and Thomas, Peter and Couchman, Hugh and Evrard, August and Colberg, Jörg and Pearce, Frazer}, + author = {Springel, Volker and White, Simon D. M. and Jenkins, Adrian and Frenk, Carlos S. and Yoshida, Naoki and Gao, Liang and Navarro, Julio and Thacker, Robert and Croton, Darren and Helly, John and Peacock, John A. and Cole, Shaun and Thomas, Peter and Couchman, Hugh and Evrard, August and Colberg, J{\"o}rg and Pearce, Frazer}, month = jun, year = {2005}, pages = {629--636} @@ -144,17 +136,15 @@ @article{ivezic_lsst:_2008 title = {{LSST}: from {Science} {Drivers} to {Reference} {Design} and {Anticipated} {Data} {Products}}, shorttitle = {{LSST}}, url = {http://arxiv.org/abs/0805.2366}, - urldate = {2017-08-04}, journal = {arXiv:0805.2366 [astro-ph]}, author = {Ivezic, Z. and Tyson, J. A. and Abel, B. and Acosta, E. and Allsman, R. and AlSayyad, Y. and Anderson, S. F. and Andrew, J. and Angel, R. and Angeli, G. and Ansari, R. and Antilogus, P. and Arndt, K. T. and Astier, P. and Aubourg, E. and Axelrod, T. and Bard, D. J. and Barr, J. D. and Barrau, A. and Bartlett, J. G. and Bauman, B. J. and Beaumont, S. and Becker, A. C. and Becla, J. and Beldica, C. and Bellavia, S. and Blanc, G. and Blandford, R. D. and Bloom, J. S. and Bogart, J. and Borne, K. and Bosch, J. F. and Boutigny, D. and Brandt, W. N. and Brown, M. E. and Bullock, J. S. and Burchat, P. and Burke, D. L. and Cagnoli, G. and Calabrese, D. and Chandrasekharan, S. and Chesley, S. and Cheu, E. C. and Chiang, J. and Claver, C. F. and Connolly, A. J. and Cook, K. H. and Cooray, A. and Covey, K. R. and Cribbs, C. and Cui, W. and Cutri, R. and Daubard, G. and Daues, G. and Delgado, F. and Digel, S. and Doherty, P. and Dubois, R. and Dubois-Felsmann, G. P. and Durech, J. and Eracleous, M. and Ferguson, H. and Frank, J. and Freemon, M. and Gangler, E. and Gawiser, E. and Geary, J. C. and Gee, P. and Geha, M. and Gibson, R. R. and Gilmore, D. K. and Glanzman, T. and Goodenow, I. and Gressler, W. J. and Gris, P. and Guyonnet, A. and Hascall, P. A. and Haupt, J. and Hernandez, F. and Hogan, C. and Huang, D. and Huffer, M. E. and Innes, W. R. and Jacoby, S. H. and Jain, B. and Jee, J. and Jernigan, J. G. and Jevremovic, D. and Johns, K. and Jones, R. L. and Juramy-Gilles, C. and Juric, M. and Kahn, S. M. and Kalirai, J. S. and Kallivayalil, N. and Kalmbach, B. and Kantor, J. P. and Kasliwal, M. M. and Kessler, R. and Kirkby, D. and Knox, L. and Kotov, I. and Krabbendam, V. L. and Krughoff, S. and Kubanek, P. and Kuczewski, J. and Kulkarni, S. and Lambert, R. and Guillou, L. Le and Levine, D. and Liang, M. and Lim, K.-T. and Lintott, C. and Lupton, R. H. and Mahabal, A. and Marshall, P. and Marshall, S. and May, M. and McKercher, R. and Migliore, M. and Miller, M. and Mills, D. J. and Monet, D. G. and Moniez, M. and Neill, D. R. and Nief, J.-Y. and Nomerotski, A. and Nordby, M. and O'Connor, P. and Oliver, J. and Olivier, S. S. and Olsen, K. and Ortiz, S. and Owen, R. E. and Pain, R. and Peterson, J. R. and Petry, C. E. and Pierfederici, F. and Pietrowicz, S. and Pike, R. and Pinto, P. A. and Plante, R. and Plate, S. and Price, P. A. and Prouza, M. and Radeka, V. and Rajagopal, J. and Rasmussen, A. and Regnault, N. and Ridgway, S. T. and Ritz, S. and Rosing, W. and Roucelle, C. and Rumore, M. R. and Russo, S. and Saha, A. and Sassolas, B. and Schalk, T. L. and Schindler, R. H. and Schneider, D. P. and Schumacher, G. and Sebag, J. and Sembroski, G. H. and Seppala, L. G. and Shipsey, I. and Silvestri, N. and Smith, J. A. and Smith, R. C. and Strauss, M. A. and Stubbs, C. W. and Sweeney, D. and Szalay, A. and Takacs, P. and Thaler, J. J. and Van Berg, R. and Berk, D. Vanden and Vetter, K. and Virieux, F. and Xin, B. and Walkowicz, L. and Walter, C. W. and Wang, D. L. and Warner, M. and Willman, B. and Wittman, D. and Wolff, S. C. and Wood-Vasey, W. M. and Yoachim, P. and Zhan, H. and Collaboration, for the LSST}, month = may, year = {2008}, note = {arXiv: 0805.2366}, - keywords = {Astrophysics}, } @article{merson_lightcone_2013, - title = {Lightcone mock catalogues from semi-analytic models of galaxy formation – {I}. {Construction} and application to the {BzK} colour selection}, + title = {Lightcone mock catalogues from semi-analytic models of galaxy formation {\textendash} {I}. {Construction} and application to the {BzK} colour selection}, volume = {429}, issn = {0035-8711}, url = {https://academic.oup.com/mnras/article/429/1/556/1023267/Lightcone-mock-catalogues-from-semi-analytic}, @@ -170,14 +160,14 @@ @article{merson_lightcone_2013 @article{ilbert_accurate_2006, title = {Accurate photometric redshifts for the {CFHT} legacy survey calibrated using the {VIMOS} {VLT} deep survey}, volume = {457}, - copyright = {© ESO, 2006}, + copyright = {{\textcopyright} ESO, 2006}, issn = {0004-6361, 1432-0746}, url = {https://doi.org/10.1051/0004-6361:20065138}, doi = {10.1051/0004-6361:20065138}, language = {en}, number = {3}, journal = {A\&A}, - author = {Ilbert, O. and Arnouts, S. and McCracken, H. J. and Bolzonella, M. and Bertin, E. and Fèvre, O. Le and Mellier, Y. and Zamorani, G. and Pellò, R. and Iovino, A. and Tresse, L. and Brun, V. Le and Bottini, D. and Garilli, B. and Maccagni, D. and Picat, J. P. and Scaramella, R. and Scodeggio, M. and Vettolani, G. and Zanichelli, A. and Adami, C. and Bardelli, S. and Cappi, A. and Charlot, S. and Ciliegi, P. and Contini, T. and Cucciati, O. and Foucaud, S. and Franzetti, P. and Gavignaud, I. and Guzzo, L. and Marano, B. and Marinoni, C. and Mazure, A. and Meneux, B. and Merighi, R. and Paltani, S. and Pollo, A. and Pozzetti, L. and Radovich, M. and Zucca, E. and Bondi, M. and Bongiorno, A. and Busarello, G. and Torre, S. De La and Gregorini, L. and Lamareille, F. and Mathez, G. and Merluzzi, P. and Ripepi, V. and Rizzo, D. and Vergani, D.}, + author = {Ilbert, O. and Arnouts, S. and McCracken, H. J. and Bolzonella, M. and Bertin, E. and F{\`e}vre, O. Le and Mellier, Y. and Zamorani, G. and Pell{\`o}, R. and Iovino, A. and Tresse, L. and Brun, V. Le and Bottini, D. and Garilli, B. and Maccagni, D. and Picat, J. P. and Scaramella, R. and Scodeggio, M. and Vettolani, G. and Zanichelli, A. and Adami, C. and Bardelli, S. and Cappi, A. and Charlot, S. and Ciliegi, P. and Contini, T. and Cucciati, O. and Foucaud, S. and Franzetti, P. and Gavignaud, I. and Guzzo, L. and Marano, B. and Marinoni, C. and Mazure, A. and Meneux, B. and Merighi, R. and Paltani, S. and Pollo, A. and Pozzetti, L. and Radovich, M. and Zucca, E. and Bondi, M. and Bongiorno, A. and Busarello, G. and Torre, S. De La and Gregorini, L. and Lamareille, F. and Mathez, G. and Merluzzi, P. and Ripepi, V. and Rizzo, D. and Vergani, D.}, month = oct, year = {2006}, pages = {841--856}, @@ -187,7 +177,6 @@ @misc{juric_data_2017 title = {Data {Products} {Definition} {Document}}, shorttitle = {{LSE}-163}, url = {https://docushare.lsstcorp.org/docushare/dsweb/Get/LSE-163/}, - urldate = {2017-08-05}, journal = {LSST Corporation}, author = {Juric, M. and Axelrod, T. and Becker, A. C. and Becla, J. and Bellm, E. and Bosch, J. F. and Ciardi, D. and Connolly, A. J. and Dubois-Felsmann, G. P. and Economou, F. and Freemon, M. and Gelman, M. and Graham, M. and Ivezic, Z. and Jenness, T. and Kantor, J. and Krughoff, K.S. and Lim, K.-T. and Lupton, R. H. and Mueller, F. and Nidever, D. and Patterson, M. and Petravick, D. and Shaw, D. and Slater, C. and Strauss, M. and Swinbank, J. and Tyson, J. A. and Wood-Vasey, M. and Wu, X.}, month = jul, @@ -197,19 +186,16 @@ @misc{juric_data_2017 @inproceedings{mckerns_building_2012, title = {Building a {Framework} for {Predictive} {Science}}, url = {http://arxiv.org/abs/1202.1056}, - urldate = {2017-08-23}, booktitle = {Proceedings of the 10th {Python} in {Science} {Conference}}, author = {McKerns, Michael M. and Strand, Leif and Sullivan, Tim and Fang, Alta and Aivazis, Michael A. G.}, month = feb, year = {2012}, note = {arXiv: 1202.1056}, - keywords = {Computer Science - Discrete Mathematics, Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Mathematical Software}, } @misc{mckerns_pathos:_2010, title = {pathos: a framework for heterogeneous computing}, url = {http://trac.mystic.cacr.caltech.edu/project/pathos/wiki.html}, - urldate = {2017-08-23}, author = {McKerns, Michael and Aivazis, Michael}, year = {2010}, } @@ -218,13 +204,11 @@ @article{graham_photometric_2017 title = {Photometric {Redshifts} with the {LSST}: {Evaluating} {Survey} {Observing} {Strategies}}, shorttitle = {Photometric {Redshifts} with the {LSST}}, url = {http://arxiv.org/abs/1706.09507}, - urldate = {2017-08-23}, journal = {arXiv:1706.09507 [astro-ph]}, - author = {Graham, Melissa L. and Connolly, Andrew J. and Ivezić, Željko and Schmidt, Samuel J. and Jones, R. Lynne and Jurić, Mario and Daniel, Scott F. and Yoachim, Peter}, + author = {Graham, Melissa L. and Connolly, Andrew J. and Ivezi{\'c}, {\v Z}eljko and Schmidt, Samuel J. and Jones, R. Lynne and Juri{\'c}, Mario and Daniel, Scott F. and Yoachim, Peter}, month = jun, year = {2017}, note = {arXiv: 1706.09507}, - keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Astrophysics of Galaxies}, } @article{laycock_x-ray_2017, @@ -236,7 +220,6 @@ @article{laycock_x-ray_2017 doi = {10.3847/1538-4357/836/1/50}, language = {en}, number = {1}, - urldate = {2017-08-29}, journal = {ApJ}, author = {Laycock, Silas and Cappallo, Rigel and Williams, Benjamin F. and Prestwich, Andrea and Binder, Breanna and Christodoulou, Dimitris M.}, year = {2017}, @@ -250,23 +233,21 @@ @article{pizzocaro_results_2016 shorttitle = {Results from {DROXO}}, url = {http://www.aanda.org/10.1051/0004-6361/201526562}, doi = {10.1051/0004-6361/201526562}, - urldate = {2017-08-29}, journal = {Astronomy \& Astrophysics}, - author = {Pizzocaro, D. and Stelzer, B. and Paladini, R. and Tiengo, A. and Lisini, G. and Novara, G. and Vianello, G. and Belfiore, A. and Marelli, M. and Salvetti, D. and Pillitteri, I. and Sciortino, S. and D’Agostino, D. and Haberl, F. and Watson, M. and Wilms, J. and Salvaterra, R. and De Luca, A.}, + author = {Pizzocaro, D. and Stelzer, B. and Paladini, R. and Tiengo, A. and Lisini, G. and Novara, G. and Vianello, G. and Belfiore, A. and Marelli, M. and Salvetti, D. and Pillitteri, I. and Sciortino, S. and D{\textquoteright}Agostino, D. and Haberl, F. and Watson, M. and Wilms, J. and Salvaterra, R. and De Luca, A.}, month = mar, year = {2016}, pages = {A36}, } @article{sun_star_2015, - title = {{THE} {STAR} {CLUSTER} {MASS}–{GALACTOCENTRIC} {RADIUS} {RELATION}: {IMPLICATIONS} {FOR} {CLUSTER} {FORMATION}}, + title = {{THE} {STAR} {CLUSTER} {MASS}{\textendash}{GALACTOCENTRIC} {RADIUS} {RELATION}: {IMPLICATIONS} {FOR} {CLUSTER} {FORMATION}}, volume = {816}, issn = {1538-4357}, - shorttitle = {{THE} {STAR} {CLUSTER} {MASS}–{GALACTOCENTRIC} {RADIUS} {RELATION}}, + shorttitle = {{THE} {STAR} {CLUSTER} {MASS}{\textendash}{GALACTOCENTRIC} {RADIUS} {RELATION}}, url = {http://stacks.iop.org/0004-637X/816/i=1/a=9?key=crossref.0be3aa415b148a5dd4f07aa1471f52f1}, doi = {10.3847/0004-637X/816/1/9}, number = {1}, - urldate = {2017-08-29}, journal = {The Astrophysical Journal}, author = {Sun, Weijia and Grijs, Richard de and Fan, Zhou and Cameron, Ewan}, month = dec, @@ -275,15 +256,14 @@ @article{sun_star_2015 } @article{de_vicente_dnf_2016, - title = {{DNF} – {Galaxy} photometric redshift by {Directional} {Neighbourhood} {Fitting}}, + title = {{DNF} {\textendash} {Galaxy} photometric redshift by {Directional} {Neighbourhood} {Fitting}}, volume = {459}, issn = {0035-8711}, url = {https://academic.oup.com/mnras/article/459/3/3078/2595234/DNF-Galaxy-photometric-redshift-by-Directional}, doi = {10.1093/mnras/stw857}, number = {3}, - urldate = {2017-08-29}, journal = {Mon Not R Astron Soc}, - author = {De Vicente, J. and Sánchez, E. and Sevilla-Noarbe, I.}, + author = {De Vicente, J. and S{\'a}nchez, E. and Sevilla-Noarbe, I.}, month = jul, year = {2016}, pages = {3078--3088}, @@ -298,7 +278,6 @@ @article{sadeh_annz2:_2016 doi = {10.1088/1538-3873/128/968/104502}, language = {en}, number = {968}, - urldate = {2017-08-29}, journal = {PASP}, author = {Sadeh, I. and Abdalla, F. B. and Lahav, O.}, year = {2016}, @@ -313,7 +292,6 @@ @article{cavuoti_metaphor:_2017 url = {https://academic.oup.com/mnras/article/465/2/1959/2525980/METAPHOR-a-machine-learning-based-method-for-the}, doi = {10.1093/mnras/stw2930}, number = {2}, - urldate = {2017-08-29}, journal = {Mon Not R Astron Soc}, author = {Cavuoti, S. and Amaro, V. and Brescia, M. and Vellucci, C. and Tortora, C. and Longo, G.}, month = feb, @@ -329,7 +307,6 @@ @article{carrasco_kind_somz:_2014 url = {https://academic.oup.com/mnras/article/438/4/3409/1108443/SOMz-photometric-redshift-PDFs-with-self}, doi = {10.1093/mnras/stt2456}, number = {4}, - urldate = {2017-08-29}, journal = {Mon Not R Astron Soc}, author = {Carrasco Kind, Matias and Brunner, Robert J.}, month = mar, @@ -338,13 +315,12 @@ @article{carrasco_kind_somz:_2014 } @article{mountrichas_measuring_2013, - title = {Measuring the dark matter halo mass of {X}-ray {AGN} at z ∼ 1 using photometric redshifts}, + title = {Measuring the dark matter halo mass of {X}-ray {AGN} at z \~{} 1 using photometric redshifts}, volume = {430}, issn = {0035-8711}, url = {https://academic.oup.com/mnras/article/430/1/661/986786/Measuring-the-dark-matter-halo-mass-of-X-ray-AGN}, doi = {10.1093/mnras/sts666}, number = {1}, - urldate = {2017-08-29}, journal = {Mon Not R Astron Soc}, author = {Mountrichas, G. and Georgakakis, A. and Finoguenov, A. and Erfanianfar, G. and Cooper, M. C. and Coil, A. L. and Laird, E. S. and Nandra, K. and Newman, J. A.}, month = mar, @@ -358,9 +334,8 @@ @article{pedregosa_scikit-learn:_2011 shorttitle = {Scikit-learn}, url = {http://www.jmlr.org/papers/v12/pedregosa11a.html}, number = {Oct}, - urldate = {2017-08-30}, journal = {Journal of Machine Learning Research}, - author = {Pedregosa, Fabian and Varoquaux, Gaël and Gramfort, Alexandre and Michel, Vincent and Thirion, Bertrand and Grisel, Olivier and Blondel, Mathieu and Prettenhofer, Peter and Weiss, Ron and Dubourg, Vincent and {others}}, + author = {Pedregosa, Fabian and Varoquaux, Ga{\"e}l and Gramfort, Alexandre and Michel, Vincent and Thirion, Bertrand and Grisel, Olivier and Blondel, Mathieu and Prettenhofer, Peter and Weiss, Ron and Dubourg, Vincent and {others}}, year = {2011}, pages = {2825--2830}, -} \ No newline at end of file +} diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index be5aadd8..e91de164 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -58,9 +58,11 @@ \section{Introduction} Ongoing and upcoming wide-field imaging surveys such as the Large Synoptic -Survey Telescope (LSST) will observe billions of galaxies; studies of cosmology -and galaxy evolution with these data will rely on the method of photometric -redshift (photo-$z$) estimation. +Survey Telescope +(LSST)\footnote{\url{https://www.lsst.org/}}\citep{ivezic_lsst:_2008} will +observe billions of galaxies; studies of cosmology and galaxy evolution with +these data will rely on the method of photometric redshift (photo-$z$) +estimation. Photo-$z$s are subject to a number of systematic errors, some caused by the estimation procedures and others intrinsic to the data itself. The photo-$z$ community has come to favor methods that provide a redshift @@ -71,9 +73,9 @@ \section{Introduction} probability distributions involves making difficult decisions. Each survey seeks to create a catalog of \pz s balancing accuracy against storage cost. -For example, the \pz\ catalog that LSST will release will be limited to 200 -floating point numbers per galaxy, with plans to store \pz s derived by -multiple methods. \citep{juric_data_2017} +For example, the \pz\ catalog that LSST will release will be limited to +$\sim100$ floating point numbers per galaxy\citet[section +4.2.2]{juric_data_2017}, with plans to store \pz s derived by multiple methods. The problem of \pz\ approximation for large surveys was first addressed in \citet{carrasco_kind_sparse_2014} in the context of a single galaxy survey, a limited set of \pz\ approximation schemes, and metrics appropriate for @@ -151,7 +153,7 @@ \subsection{Approximation Methods} \qp\ supports all interpolation options available to the \texttt{scipy.interpolate.interp1d} function, but we choose a default interpolation scheme for each format to maximize the fidelity of the -approximations to the true PDFs. +approximations to the original, high-resolution PDFs. \qp\ supports conversion of \pz\ approximations between five formats: step functions, samples, quantiles, evaluations, and mixture model components. @@ -212,8 +214,8 @@ \subsubsection{Regular Binning} \label{sec:bins} By far the most popular format for approximating and storing \pz s is that of a -piecewise constant step function, also called a histogram binning. -\citep{carrasco_kind_somz:_2014, sadeh_annz2:_2016, cavuoti_metaphor:_2017} +piecewise constant step function, also called a histogram binning +\citep{carrasco_kind_somz:_2014, sadeh_annz2:_2016, cavuoti_metaphor:_2017}. It is the only format that has been used for public release of \pz\ catalogs \citep{tanaka_photometric_2017, sheldon_photometric_2012}; it is unclear whether this is a consequence or cause of the fact that it is the most common @@ -253,7 +255,7 @@ \subsubsection{Random Samples} \label{sec:samples} Samples are the native output format of many machine learning algorithms due to -the discrete nature of training sets. \citep{de_vicente_dnf_2016} +the discrete nature of training sets \citep{de_vicente_dnf_2016}. Such approaches typically produce large numbers of samples, far more than can realistically be stored by any survey, so a subsample is commonly stored. Samples are easy to use in standard science applications developed for redshift @@ -289,8 +291,8 @@ \subsubsection{Regular Quantiles} photometric redshifts is that of quantiles, which are defined in terms of the cumulative distribution function (CDF). The quantile format for expressing a PDF, however, has appeared in the -astronomy literature. \citep{sun_star_2015, pizzocaro_results_2016, -laycock_x-ray_2017} +astronomy literature \citep{sun_star_2015, pizzocaro_results_2016, +laycock_x-ray_2017}. Under the quantile format, a \pz\ catalog shares $N_{f}$ ordered CDFs $\vec{C}=(q_{1}, q_{2}, \dots, q_{N_{f}-1}, q_{N_{f}})$. @@ -330,15 +332,17 @@ \subsection{Comparison Metrics} \label{sec:metric} In this work, our aim is to probe how closely \pz s reconstructed from limited -set of stored parameters approximate their reference representation. +set of stored parameters approximate their original, high-resolution +representation. This is done without reference to a galaxy's true redshift; there is, in fact, no notion of a true redshift in our analysis. (For a demonstration of how one might approach the distinct problem of evaluating the accuracy of a \pz\ relative to a true redshift, see Schmidt, et al.\ in preparation.) The loss of information, measured in nats (base $e$ bits), incurred when using -an approximate PDF $\hat{P}(z)$ instead of the true PDF $P(z)$ is given by the -Kullback-Leibler divergence (KLD), which is defined as +an approximation of the PDF $\hat{P}(z)$ instead of the best possible +representation of the PDF $P(z)$ is given by the Kullback-Leibler divergence +(KLD), which is defined as \begin{align} \label{eq:kld} \mathrm{KLD}[P(z) || \hat{P}(z)] &= \int_{-\infty}^{\infty}\ P(z)\ @@ -402,7 +406,7 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} behavior with respect to the parametrization of the \pz\ catalog. Our primary metric is therefore the KLD \textit{from} the stacked estimator of a catalog of evaluations of reconstructed \pz s \textit{to} the stacked -estimator of a catalog of evaluations of the true \pz s. +estimator of a catalog of evaluations of the original, high-resolution \pz s. \section{Photo-z Test Data} @@ -414,7 +418,7 @@ \section{Photo-z Test Data} datasets, each intended to be realistic projections of the anticipated LSST \pz s. All \pz s were fit using the publicly available Bayesian Photometric Redshift -(BPZ) code \citep{ben`itez_bayesian_2000}, which employs spectral energy +(BPZ) code \citep{benitez_bayesian_2000}, which employs spectral energy distribution (SED) fitting to a template library. The choice of \pz\ estimation method, however, is not relevant to this study; so long as the mock \pz s are \textit{realistically complex}, meaning they take @@ -439,15 +443,15 @@ \subsection{\Mgdata data mock catalog} \citet{graham_photometric_2017}. The data builds on the Millennium simulation \citep{springel_simulations_2005}, and in particular the LC DEEP catalog based on the galaxy formation models of -\cite{gonzalez-perez_how_2014}, and was created using the lightcone -construction techniques described by \cite{merson_lightcone_2013}. +\citet{gonzalez-perez_how_2014}, and was created using the lightcone +construction techniques described by \citet{merson_lightcone_2013}. We limit the sample to galaxies with a catalog $i$-band magnitude of $i<25$ and true redshifts $z<3.5$. As in Graham, et al. (in preparation), we simulate observed apparent magnitudes from the true catalog magnitudes by adding a normal random scatter with a standard deviation equal to the predicted magnitude error for each galaxy (from -Section 3.2.1. of \citealt{ivezic_lsst:_2008}, using the software of -\citealt{connolly_end--end_2014}, assuming a mean airmass of 1.2 and a 10-year +Section 3.2.1. of \citet{ivezic_lsst:_2008}, using the software of +\citet{connolly_end--end_2014}, assuming a mean airmass of 1.2 and a 10-year accumulation of 56, 80, 184, 184, 160, and 160 visits in filters $ugrizy$, respectively). We also ignore any magnitudes fainter than the predicted 10-year limiting @@ -492,9 +496,9 @@ \subsection{\Ssdata mock catalog} compute the expected apparent magnitudes and magnitude errors in the six broadband LSST filters ($ugrizy$), assuming the full 10-year depth of the survey using the simple model of \citet{ivezic_lsst:_2008}. -The catalog contains $N_{g}\approx100,000$ galaxies to a depth of $i<26.9$, 1.5 -magnitudes deeper than the expected LSST Gold sample of galaxies that will have -$S/N\gtrsim30$ in multiple bands. +The catalog contains $N_{g}\approx100,000$ galaxies $z<2.105$ to a depth of +$i<26.9$, 1.5 magnitudes deeper than the expected LSST Gold sample of galaxies +that will have $S/N\gtrsim30$ in multiple bands. In implementing BPZ, we createed a custom Bayesian prior using a subset of the Buzzard-highres-v1.0 catalog and a spanning template set via a simple k-means @@ -550,8 +554,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} As expected, the stacked histogram is quite coarse because of the step function interpolation. The samples and quantiles can be interpolated such that the stacked $n(z)$ -estimator of the approximation is almost indistinguishable from the true -stacked estimator. +estimator of the approximation is almost indistinguishable from the stacked +estimator of the original, high-resolution \pz s. \begin{figure} @@ -564,8 +568,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} number of parameters on a small number of galaxies is the coarseness of the histogram format (orange dotted line) relative to the quantile format (purple dashed line) and samples format (green dash-dotted line), both of which are -fairly close to $\hat{n}(z)$ derived from evaluating the true \pz s (thick gray -line). +fairly close to $\hat{n}(z)$ derived from evaluating the original, +high-resolution \pz s (thick gray line). \label{fig:stacked}} \end{center} \end{figure} @@ -607,8 +611,9 @@ \subsection{Stacked $\hat{n}(z)$ estimator} noise due to samples should decrease with higher $N_{f}$. The quantile format also has a larger variance between instantiations than the samples format, likely due to the imperfections of the procedures for deriving -the quantile parameters $\vec{c}^{\ q}$ from the true $p(z)$ and for -reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{\ q}$. +the quantile parameters $\vec{c}^{\ q}$ from the original, high-resolution +$p(z)$ and for reconstructing $\hat{p}^{q}(z)$ from the quantile parameters +$\vec{c}^{\ q}$. In the \ssdata data mock catalog, the histogram format does improve with increasing $N_{f}$, however, it takes a whopping $N_{f}=100$ stored parameters @@ -622,17 +627,19 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \ssdata data mock catalog than for the \mgdata data mock catalog. The variance between instantiations of the quantile format increases at high $N_{f}$, a possible indication of room for improvement with the procedures for -deriving the quantile parameters $\vec{c}^{\ q}$ from the true $p(z)$ and for -reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{\ q}$ +deriving the quantile parameters $\vec{c}^{\ q}$ from the original, +high-resolution $p(z)$ and for reconstructing $\hat{p}^{q}(z)$ from the +quantile parameters $\vec{c}^{\ q}$ \begin{figure} \begin{center} \includegraphics[width=\columnwidth]{figures/graham_kld.png}\\ \includegraphics[width=\columnwidth]{figures/schmidt_kld.png} - \caption{KLD between approximate $\hat{n}(z)$ and true $\hat{n}(z)$ as a -function of number of stored parameters, for the three different approximation -schemes: quantiles (purple dashed line), samples (green dash-dotted line), and -histogram (orange dotted line). + \caption{KLD between $\hat{n}(z)$ derived from approximate pz\ +representations and $\hat{n}(z)$ derived from the original, high-resolution +\pz s as a function of number of stored parameters, for the three different +approximation schemes: quantiles (purple dashed line), samples (green +dash-dotted line), and histogram (orange dotted line). Top panel: The mock catalog of \mgdata data of Section~\ref{sec:graham} favors the quantiles format and strongly disfavors the histogram format, with quantiles being slightly more favorable than samples. From da3670ed27d2755ed8fc2eefa180332f97d75a64 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 31 Aug 2017 15:22:42 -0700 Subject: [PATCH 53/96] preparing for NERSC run --- .../research/analysis.ipynb | 149 +++++++++--------- 1 file changed, 77 insertions(+), 72 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 3426eb18..06299f7f 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -122,6 +122,7 @@ " n_gals_tot = len(pdfs)\n", " full_gal_range = range(n_gals_tot)\n", " subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)\n", + " print('randos for debugging: '+str(subset))\n", " pdfs_use = pdfs[subset]\n", " \n", " modality = []\n", @@ -436,7 +437,7 @@ " ax.set_xlabel(r'$z$', fontsize=14)\n", " ax.set_ylabel(r'$p(z)$', fontsize=14)\n", " ax.set_xlim(min(z_grid), max(z_grid))\n", - " ax.set_title(name+r' examples with $N_{f}=$'+str(N_floats), fontsize=16)\n", + " ax.set_title(dataset_info[name]['name']+r' examples with $N_{f}=$'+str(N_floats), fontsize=16)\n", " saveloc = os.path.join(path, 'pzs'+str(size)+name+str(N_floats)+'_'+str(init))\n", " fig.savefig(saveloc+'.pdf', dpi=250)\n", " plt.close()" @@ -647,7 +648,7 @@ " klds = info['klds']\n", " \n", " plt.figure()\n", - " plt.plot(z_grid, stacks['truth'], color='black', lw=3, alpha=0.3, label='truth')\n", + " plt.plot(z_grid, stacks['truth'], color='black', lw=3, alpha=0.3, label='original')\n", " nz_max.append(max(stacks['truth']))\n", " for key in formats:\n", " nz_max.append(max(stacks[key]))\n", @@ -1322,9 +1323,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [10]#[10, 100, 1000]\n", + "sizes = [100]#[10, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 2)#0)\n", + "instantiations = range(0, 10)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1346,79 +1347,84 @@ }, "outputs": [], "source": [ - "# # the \"pipeline\"\n", - "# global_start = timeit.default_timer()\n", - "# for n in range(len(names)):\n", - "# name = names[n]\n", + "# the \"pipeline\"\n", + "global_start = timeit.default_timer()\n", + "for n in range(len(names)):\n", + " name = names[n]\n", " \n", - "# dataset_start = timeit.default_timer()\n", - "# print('started '+name)\n", + " dataset_start = timeit.default_timer()\n", + " print('started '+name)\n", " \n", - "# pdfs = setup_dataset(name, skip_rows, skip_cols)\n", + " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", - "# for s in range(len(sizes)):\n", - "# size=sizes[s]\n", + " for s in range(len(sizes)):\n", + " size=sizes[s]\n", " \n", - "# size_start = timeit.default_timer()\n", - "# print('started '+name+str(size))\n", + " size_start = timeit.default_timer()\n", + " print('started '+name+str(size))\n", " \n", - "# path = os.path.join(name, str(size))\n", - "# if not os.path.exists(path):\n", - "# os.makedirs(path)\n", + " path = os.path.join(name, str(size))\n", + " if not os.path.exists(path):\n", + " os.makedirs(path)\n", " \n", - "# n_gals_use = size\n", + " n_gals_use = size\n", " \n", - "# randos = all_randos[n][s]\n", + " randos = all_randos[n][s]\n", " \n", - "# for i in instantiations:\n", - "# i_start = timeit.default_timer()\n", - "# print('started '+name+str(size)+' #'+str(i))\n", + " for i in instantiations:\n", + "# top_bonusdict = {}\n", + " i_start = timeit.default_timer()\n", + " print('started '+name+str(size)+' #'+str(i))\n", " \n", - "# original = '_original'+str(i)\n", - "# pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# # plot = plot_examples(size, name, bonus=original)\n", + " original = '_original'+str(i)\n", + " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", + "# plot = plot_examples(size, name, bonus=original)\n", + "# top_bonusdict[original] = ['-', 0.25]\n", " \n", - "# z_grid = dataset_info[name]['in_z_grid']\n", - "# N_comps = dataset_info[name]['N_GMM']\n", + " z_grid = dataset_info[name]['in_z_grid']\n", + " N_comps = dataset_info[name]['N_GMM']\n", " \n", - "# postfit = '_postfit'+str(i)\n", - "# catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# # plot = plot_examples(size, name, bonus=postfit)\n", + " postfit = '_postfit'+str(i)\n", + " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", + "# plot = plot_examples(size, name, bonus=postfit)\n", + "# top_bonusdict[postfit] = ['-', 0.5]\n", " \n", - "# for n_floats_use in floats:\n", - " \n", - "# float_start = timeit.default_timer()\n", - "# print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", + " for n_floats_use in floats:\n", + "# bonusdict = top_bonusdict.copy()\n", + " float_start = timeit.default_timer()\n", + " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - "# (ensembles, pz_klds, metric_moments, pz_moments, pz_moment_deltas) = analyze_individual(catalog, \n", - "# z_grid,#dataset_info[name]['metric_z_grid'], \n", - "# n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + " (ensembles, pz_klds, metric_moments, pz_moments, pz_moment_deltas) = analyze_individual(catalog, \n", + " z_grid,#dataset_info[name]['metric_z_grid'], \n", + " n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", - "# for f in formats:\n", - "# fname = str(n_floats_use)+f+str(i)\n", - "# # plot = plot_examples(size, name, bonus=fname)\n", - "# # plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", - "# save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", - "# save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", - "# save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", + " for f in formats:\n", + " fname = str(n_floats_use)+f+str(i)\n", + "# plot = plot_examples(size, name, bonus=fname)\n", + "# bonusdict[fname] = [styles[f], 0.5]\n", + "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + " save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", + " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", + " save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", " \n", - "# (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", - "# n_floats_use, name, i=i)\n", - "# # plot = plot_estimators(size, name, n_floats_use, i=i)\n", - "# save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", - "# save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", + " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", + " n_floats_use, name, i=i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", + " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", + " save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", - "# print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - "# print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", - "# # plot = plot_pz_metrics(name, size)\n", - "# # plot = plot_pz_delta_moments(name, size) \n", - "# # plot = plot_nz_klds(name, size)\n", - "# # plot = plot_nz_moments(name, size)\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + "# plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_delta_moments(name, size) \n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)\n", " \n", - "# print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", + " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - "# print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", - "# print('FINISHED everything in '+str(timeit.default_timer() - global_start))" + " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1444,26 +1450,25 @@ " for i in instantiations:\n", " top_bonusdict = {}\n", " bo = '_original'+str(i)\n", - "# plot = plot_examples(size, name, bonus=bo)\n", - " top_bonusdict[bo] = ['-', 0.5]\n", + " plot = plot_examples(size, name, bonus=bo)\n", + " top_bonusdict[bo] = ['-', 0.25]\n", " bp = '_postfit'+str(i)\n", - "# plot = plot_examples(size, name, bonus=bp)\n", - " top_bonusdict[bp] = ['-', 1.]\n", + " plot = plot_examples(size, name, bonus=bp)\n", + " top_bonusdict[bp] = ['-', 0.5]\n", " for n in range(len(floats)):\n", " bonusdict = top_bonusdict.copy()\n", " n_floats_use = floats[n]\n", " for f in formats:\n", " fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - " bonusdict[fname] = [styles[f], 1.]\n", - " print(bonusdict)\n", + " plot = plot_examples(size, name, bonus=fname)\n", + " bonusdict[fname] = [styles[f], 0.5]\n", " plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i)\n", - "# plot = plot_pz_metrics(name, size)\n", - "# plot = plot_pz_delta_moments(name, size)\n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)" + " plot = plot_individual_kld(size, name, n_floats_use, i)\n", + " plot = plot_estimators(size, name, n_floats_use, i)\n", + " plot = plot_pz_metrics(name, size)\n", + " plot = plot_pz_delta_moments(name, size)\n", + " plot = plot_nz_klds(name, size)\n", + " plot = plot_nz_moments(name, size)" ] }, { From fc49433d54c50e625b8193d109e0a836b5f9586e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 31 Aug 2017 17:19:48 -0700 Subject: [PATCH 54/96] made more efficient! --- qp/pdf.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 77cb7a87..0346503d 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -99,6 +99,7 @@ def __init__(self, truth=None, quantiles=None, histogram=None, # The most recent parametrization used is, at this point, the # first one: self.last = self.first + self.interpolator = [None, None] return @@ -473,7 +474,7 @@ def sample(self, N=1000, infty=default_infty, using=None, vb=True): Notes ----- - TO DO: have quantiles use linear interpolator to get inverse CDF, then sample uniform in "bins" + TO DO: all formats should use rejection sampling TO DO: change infty to upper and lower bounds to use for quantiles TO DO: check for existence of parametrization before using it """ @@ -488,7 +489,7 @@ def sample(self, N=1000, infty=default_infty, using=None, vb=True): samples = self.mix_mod.rvs(size=N) elif using == 'gridded': - interpolator = self.interpolate(using = 'gridded', vb=vb) + interpolator = self.interpolate(using = 'gridded', vb=vb)[0] # (xlims, ylims) = self.evaluate(self.limits, using='gridded', vb=vb) (xmin, xmax) = (min(self.gridded[0]), max(self.gridded[0])) (ymin, ymax) = (min(self.gridded[1]), max(self.gridded[1])) @@ -687,7 +688,9 @@ def samples_interpolator(xf): if vb: print 'Created a `'+self.scheme+'` interpolator for the '+using+' parametrization.' - return interpolator + self.interpolator = [interpolator, using] + + return self.interpolator def approximate(self, points, using=None, scheme=None, vb=True): """ @@ -729,7 +732,11 @@ def approximate(self, points, using=None, scheme=None, vb=True): self.scheme = scheme # Now make the interpolation, using the current scheme: - interpolator = self.interpolate(using=using, vb=vb) + if self.interpolator[-1] == using: + interpolator = self.interpolator[0] + else: + [interpolator, using] = self.interpolate(using=using, vb=vb) + # if vb: print('interpolating over '+str(points)+' using '+using) # try: points.sort() From 5b5cc9c445a823bc1c217287f49ff99bfde24b3e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 31 Aug 2017 17:20:19 -0700 Subject: [PATCH 55/96] rearranged for easier combination of multiple runs --- .../research/analysis.html | 1930 +++++++++++------ .../research/analysis.ipynb | 100 +- 2 files changed, 1277 insertions(+), 753 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.html b/docs/desc-0000-qp-photo-z_approximation/research/analysis.html index 0b53ca1f..db861c3a 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.html +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.html @@ -11766,7 +11766,10 @@

The Analysis PipelineIn [1]:
-
In [3]:
-
dataset_info = {}
-
- -
-
-
- -
-
-
-
-
-
-

There are two datasets available:

-
    -
  • $10^{5}$ LSST-like mock data provided by Sam Schmidt (UC Davis, LSST)
  • -
  • $10^{4}$ Euclid-like mock data provided by Melissa Graham (UW, LSST)
  • -
- -
-
-
-
-
-
In [4]:
-
-
-
# choose one of these:
-# dataset_key = 'Euclid'# Melissa Graham's data
-# dataset_key = 'LSST'# Sam Schmidt's data
-dataset_keys = ['Optical+IR', 'Optical']
-
-for dataset_key in dataset_keys:
-    dataset_info[dataset_key] = {}
-
- -
-
-
- -
-
-
-
-
-
-

Both datasets are fit with BPZ.

- -
-
-
-
-
-
In [5]:
-
-
-
for dataset_key in dataset_keys:
-    if dataset_key == 'Optical+IR':
-        datafilename = 'bpz_euclid_test_10_2.probs'
-    elif dataset_key == 'Optical':
-        datafilename = 'test_magscat_trainingfile_probs.out'
-    dataset_info[dataset_key]['filename'] = datafilename
-
- -
-
-
- -
-
-
-
-
-
-

The data files don't appear to come with information about the native format or metaparameters, but we are told they're evaluations on a regular grid of redshifts with given endpoints and number of parameters.

- -
-
-
-
-
-
In [6]:
-
-
-
delta = 0.01
-
-for dataset_key in dataset_keys:
-    
-    if dataset_key == 'Optical+IR':
-        z_low = 0.01
-        z_high = 3.51
-    elif dataset_key == 'Optical':
-        z_low = 0.005
-        z_high = 2.11
-    
-    dataset_info[dataset_key]['z_lim'] = (z_low, z_high)
-
-    z_grid = np.arange(z_low, z_high, delta, dtype='float')#np.arange(z_low, z_high + delta, delta, dtype='float')
-    z_range = z_high - z_low
-    delta_z = z_range / len(z_grid)
-
-    dataset_info[dataset_key]['z_grid'] = z_grid
-    dataset_info[dataset_key]['delta_z'] = delta_z
-
- -
-
-
- -
-
-
-
-
-
-

qp cannot currently convert gridded PDFs to histograms or quantiles - we need to make a GMM first, and use this to instantiate a qp.PDF object using a qp.composite object based on that GMM as qp.PDF.truth. The number of parameters necessary for a qualitatively good fit depends on the characteristics of the dataset.

- -
-
-
-
-
-
In [7]:
-
-
-
for dataset_key in dataset_keys:
-    
-    if dataset_key == 'Optical+IR':
-        nc_needed = 3
-    elif dataset_key == 'Optical':
-        nc_needed = 5
-    
-    dataset_info[dataset_key]['N_GMM'] = nc_needed
-
- -
-
-
- -
-
-
-
-
-
-

Let's define some useful quantities.

- -
-
-
-
-
-
In [8]:
-
-
-
#many_colors = ['red','green','blue','cyan','magenta','yellow']
-high_res = 300
-n_plot = 5
-n_moments_use = 4
-
-#make this a more clever structure, i.e. a dict
-formats = ['quantiles', 'histogram', 'samples']
-colors = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen'}
-styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'}
-stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'}
+
import matplotlib as mpl
+import matplotlib.pyplot as plt
+mpl.rcParams['text.usetex'] = True
+mpl.rcParams['mathtext.rm'] = 'serif'
+mpl.rcParams['font.family'] = 'serif'
+mpl.rcParams['font.serif'] = 'Times New Roman'
+mpl.rcParams['axes.titlesize'] = 16
+mpl.rcParams['axes.labelsize'] = 14
+mpl.rcParams['savefig.dpi'] = 250
+mpl.rcParams['savefig.format'] = 'pdf'
+mpl.rcParams['savefig.bbox'] = 'tight'
 
-pz_max = [1.]
-nz_max = [1.]
-hist_max = [1.]
-dist_min = [0.]
-dist_max = [0.]
-moment_max = [[]] * (n_moments_use - 1)
-mean_max = [[]] * (n_moments_use - 1)
-kld_min = [1.]
-kld_max = [1.]
+#comment out for NERSC
+%matplotlib inline
 
@@ -12021,37 +11847,17 @@

Analysis

-
In [9]:
+
In [4]:
-
def setup_dataset(dataset_key):#, n_gals_use):
-    
+
def setup_dataset(dataset_key, skip_rows, skip_cols):
+    start = timeit.default_timer()
     with open(dataset_info[dataset_key]['filename'], 'rb') as data_file:
         lines = (line.split(None) for line in data_file)
-        lines.next()
-        pdfs = np.array([[float(line[k]) for k in range(1,len(line))] for line in lines])
-    
-    # sys.getsizeof(pdfs)
-
-#     n_gals_tot = len(pdfs)
-#     full_gal_range = range(n_gals_tot)
-#     subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)
-#     pdfs_use = pdfs[subset]
-
-#     # using the same grid for output as the native format, but doesn't need to be so
-#     dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid']
-#     dataset_info[dataset_key]['metric_z_grid'] = dataset_info[dataset_key]['z_grid']
-    
-#     bonus = '_original'
-#     path = os.path.join(dataset_key, str(n_gals_use))
-#     loc = os.path.join(path, str(n_gals_use)+'from'+dataset_key+'_pzs'+bonus)
-#     with open(loc+'.hkl', 'w') as filename:
-#         info = {}
-#         info['z_grid'] = dataset_info[dataset_key]['in_z_grid']
-#         info['pdfs'] = pdfs_use
-#         hickle.dump(info, filename)
-    
-#     return(pdfs_use, bonus)
+        for r in range(skip_rows):
+            lines.next()
+        pdfs = np.array([[float(line[k]) for k in range(skip_cols, len(line))] for line in lines])
+    print('read in data file in '+str(timeit.default_timer()-start))
     return(pdfs)
 
@@ -12062,26 +11868,48 @@

Analysis

-
In [10]:
+
In [5]:
def make_instantiation(dataset_key, n_gals_use, pdfs, bonus=None):
     
+    start = timeit.default_timer()
+    
     n_gals_tot = len(pdfs)
     full_gal_range = range(n_gals_tot)
     subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)
+    print('randos for debugging: '+str(subset))
     pdfs_use = pdfs[subset]
-
+    
+    modality = []
+    dpdfs = pdfs_use[:,1:] - pdfs_use[:,:-1]
+    iqrs = []
+    for i in range(n_gals_use):
+        modality.append(len(np.where(np.diff(np.signbit(dpdfs[i])))[0]))
+        cdf = np.cumsum(qp.utils.normalize_integral((dataset_info[dataset_key]['z_grid'], pdfs_use[i]), vb=False)[1])
+        iqr_lo = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.25)]
+        iqr_hi = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.75)]
+        iqrs.append(iqr_hi - iqr_lo)
+    modality = np.array(modality)
+        
+    dataset_info[dataset_key]['N_GMM'] = int(np.median(modality))+1
+#     print('n_gmm for '+dataset_info[dataset_key]['name']+' = '+str(dataset_info[dataset_key]['N_GMM']))
+      
     # using the same grid for output as the native format, but doesn't need to be so
     dataset_info[dataset_key]['in_z_grid'] = dataset_info[dataset_key]['z_grid']
     dataset_info[dataset_key]['metric_z_grid'] = dataset_info[dataset_key]['z_grid']
     
+    print('preprocessed data in '+str(timeit.default_timer()-start))
+    
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, 'pzs'+bonus+str(n_gals_use)+dataset_key)
+    loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus)
     with open(loc+'.hkl', 'w') as filename:
         info = {}
+        info['randos'] = randos
         info['z_grid'] = dataset_info[dataset_key]['in_z_grid']
         info['pdfs'] = pdfs_use
+        info['modes'] = modality
+        info['iqrs'] = iqrs
         hickle.dump(info, filename)
     
     return(pdfs_use)
@@ -12094,49 +11922,56 @@ 

Analysis

-
In [11]:
+
In [6]:
def plot_examples(n_gals_use, dataset_key, bonus=None):
     
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, 'pzs'+bonus+str(n_gals_use)+dataset_key)
+    loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus)
     with open(loc+'.hkl', 'r') as filename:
         info = hickle.load(filename)
+        randos = info['randos']
         z_grid = info['z_grid']
         pdfs = info['pdfs']
     
-    plt.figure(1)
+    plt.figure()
     for i in range(n_plot):
         data = (z_grid, pdfs[randos[i]])
         data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data))
         pz_max.append(np.max(data))
-        plt.plot(data[0], data[1], label=dataset_key+'#'+str(randos[i]))
+        plt.plot(data[0], data[1], label=dataset_info[dataset_key]['name']+' \#'+str(randos[i]), color=color_cycle[i])
     plt.xlabel(r'$z$', fontsize=14)
     plt.ylabel(r'$p(z)$', fontsize=14)
     plt.xlim(min(z_grid), max(z_grid))
     plt.ylim(0., max(pz_max))
-    plt.title(bonus[1:]+' '+dataset_key+' mock catalog of '+str(n_gals_use), fontsize=16)
-    plt.legend()
-    
-    plt.savefig(loc+'.png', dpi=250)
+    plt.title(dataset_info[dataset_key]['name']+' data examples', fontsize=16)
+    plt.savefig(loc+'.pdf', dpi=250)
     plt.close()
     
-    plt.figure(2)
-    for i in range(n_plot):
-        data = (z_grid, pdfs[randos[i]])
-        data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data))
-        plt.plot(data[0], data[1], label=dataset_key+'#'+str(randos[i]))
-    plt.xlabel(r'$z$', fontsize=14)
-    plt.ylabel(r'$\log[p(z)]$', fontsize=14)
-    plt.semilogy()
-    plt.xlim(min(z_grid), max(z_grid))
-    plt.ylim(qp.utils.epsilon, max(pz_max))
-    plt.title(bonus[1:]+' '+dataset_key+' mock catalog of '+str(n_gals_use), fontsize=16)
-    plt.legend()
-    
-    plt.savefig(loc+'_log.png', dpi=250)
-    plt.close()
+    if 'modes' in info.keys():
+        modes = info['modes']
+        modes_max.append(np.max(modes))
+        plt.figure()
+        ax = plt.hist(modes, color='k', alpha=1./n_plot, histtype='stepfilled', bins=range(max(modes_max)+1))
+        plt.xlabel('modes')
+        plt.ylabel('frequency')
+        plt.title(dataset_info[dataset_key]['name']+' data modality distribution (median='+str(dataset_info[dataset_key]['N_GMM'])+')', fontsize=16)
+        plt.savefig(loc+'modality.pdf', dpi=250)
+        plt.close()
+        
+    if 'iqrs' in info.keys():
+        iqrs = info['iqrs']
+        iqr_min.append(min(iqrs))
+        iqr_max.append(max(iqrs))
+        plot_bins = np.linspace(min(iqr_min), max(iqr_max), 20)
+        plt.figure()
+        ax = plt.hist(iqrs, bins=plot_bins, color='k', alpha=1./n_plot, histtype='stepfilled')
+        plt.xlabel('IQR')
+        plt.ylabel('frequency')
+        plt.title(dataset_info[dataset_key]['name']+' data IQR distribution', fontsize=16)
+        plt.savefig(loc+'iqrs.pdf', dpi=250)
+        plt.close()
 
@@ -12156,7 +11991,7 @@

Analysis

-
In [12]:
+
In [7]:
def setup_from_grid(dataset_key, in_pdfs, z_grid, N_comps, high_res=1000, bonus=None):
@@ -12165,37 +12000,59 @@ 

Analysis

zlim = (min(z_grid), max(z_grid)) N_pdfs = len(in_pdfs) -# plot_examples(N_pdfs, z_grid, pdfs) - - print('making the initial ensemble of '+str(N_pdfs)+' PDFs') - E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=True) - print('made the initial ensemble of '+str(N_pdfs)+' PDFs') + start = timeit.default_timer() +# print('making the initial ensemble of '+str(N_pdfs)+' PDFs') + E0 = qp.Ensemble(N_pdfs, gridded=(z_grid, in_pdfs), limits=dataset_info[dataset_key]['z_lim'], vb=False) + print('made the initial ensemble of '+str(N_pdfs)+' PDFs in '+str(timeit.default_timer() - start)) #fit GMMs to gridded pdfs based on samples (faster than fitting to gridded) - print('sampling for the GMM fit') + start = timeit.default_timer() +# print('sampling for the GMM fit') samparr = E0.sample(high_res, vb=False) - print('took '+str(high_res)+' samples') + print('took '+str(high_res)+' samples in '+str(timeit.default_timer() - start)) - print('making a new ensemble from samples') + start = timeit.default_timer() +# print('making a new ensemble from samples') Ei = qp.Ensemble(N_pdfs, samples=samparr, limits=dataset_info[dataset_key]['z_lim'], vb=False) - print('made a new ensemble from samples') + print('made a new ensemble from samples in '+str(timeit.default_timer() - start)) - print('fitting the GMM to samples') + start = timeit.default_timer() +# print('fitting the GMM to samples') GMMs = Ei.mix_mod_fit(comps=N_comps, vb=False) - print('fit the GMM to samples') + print('fit the GMM to samples in '+str(timeit.default_timer() - start)) #set the GMMS as the truth - print('making the final ensemble') + start = timeit.default_timer() +# print('making the final ensemble') Ef = qp.Ensemble(N_pdfs, truth=GMMs, limits=dataset_info[dataset_key]['z_lim'], vb=False) - print('made the final ensemble') + print('made the final ensemble in '+str(timeit.default_timer() - start)) path = os.path.join(dataset_key, str(N_pdfs)) - loc = os.path.join(path, 'pzs'+bonus+str(N_pdfs)+dataset_key) + loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus) with open(loc+'.hkl', 'w') as filename: info = {} + info['randos'] = randos info['z_grid'] = z_grid info['pdfs'] = Ef.evaluate(z_grid, using='truth', norm=True, vb=False)[1] hickle.dump(info, filename) + + start = timeit.default_timer() +# print('calculating '+str(n_moments_use)+' moments of original PDFs') + in_moments, vals = [], [] + for n in range(n_moments_use): + in_moments.append(Ef.moment(n, using='truth', limits=zlim, + dx=delta_z, vb=False)) + vals.append(n) + moments = np.array(in_moments) + print('calculated '+str(n_moments_use)+' moments of original PDFs in '+str(timeit.default_timer() - start)) + + path = os.path.join(dataset_key, str(N_pdfs)) + loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus) + with open(loc+'.hkl', 'w') as filename: + info = {} + info['truth'] = moments + info['orders'] = vals + hickle.dump(info, filename) return(Ef)
@@ -12217,13 +12074,14 @@

Analysis

-
In [13]:
+
In [8]:
-
def analyze_individual(E, z_grid, N_floats, dataset_key, N_moments=4, i=None):
+
def analyze_individual(E, z_grid, N_floats, dataset_key, N_moments=4, i=None, bonus=None):
     zlim = (min(z_grid), max(z_grid))
     z_range = zlim[-1] - zlim[0]
     delta_z = z_range / len(z_grid)
+    path = os.path.join(dataset_key, str(n_gals_use))
     
     Eq, Eh, Es = E, E, E
     inits = {}
@@ -12233,67 +12091,78 @@ 

Analysis

inits[f][ff] = None qstart = timeit.default_timer() - print('performing quantization') inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False) - print('finished quantization at '+str(timeit.default_timer() - qstart)) + print('finished making in '+str(timeit.default_timer() - qstart)) hstart = timeit.default_timer() - print('performing histogramization') inits['histogram']['histogram'] = Eh.histogramize(N=N_floats, binrange=zlim, vb=False) - print('finished histogramization at '+str(timeit.default_timer() - hstart)) + print('finished histogramization in '+str(timeit.default_timer() - hstart)) sstart = timeit.default_timer() - print('performing sampling') inits['samples']['samples'] = Es.sample(samps=N_floats, vb=False) - print('finished sampling at '+str(timeit.default_timer() - sstart)) + print('finished sampling in '+str(timeit.default_timer() - sstart)) - print('making the approximate ensembles') Eo = {} for f in formats: + fstart = timeit.default_timer() Eo[f] = qp.Ensemble(E.n_pdfs, truth=E.truth, quantiles=inits[f]['quantiles'], histogram=inits[f]['histogram'], samples=inits[f]['samples'], limits=dataset_info[dataset_key]['z_lim']) - bonus = '_'+str(n_floats_use)+f+'_('+str(i)+')' - path = os.path.join(dataset_key, str(n_gals_use)) - loc = os.path.join(path, 'pzs'+bonus+str(n_gals_use)+dataset_key) + fbonus = str(N_floats)+f+str(i) + loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+fbonus) with open(loc+'.hkl', 'w') as filename: info = {} + info['randos'] = randos info['z_grid'] = z_grid info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1] hickle.dump(info, filename) - print('made the approximate ensembles') + print('made '+f+' ensemble in '+str(timeit.default_timer()-fstart)) - print('calculating the individual metrics') metric_start = timeit.default_timer() - klds, metrics, moments = {}, {}, {} + inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus) + with open(inloc+'.hkl', 'r') as infilename: + pz_moments = hickle.load(infilename) + pz_moment_deltas, klds, metrics, kld_moments = {}, {}, {}, {} for key in Eo.keys(): - print('starting '+key) + key_start = timeit.default_timer() klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z) samp_metric = qp.PDF(samples=klds[key]) gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], using='samples', vb=False) metrics[key] = qp.PDF(truth=gmm_metric) - moments[key] = [] - for n in range(N_moments+1): - moments[key].append([qp.utils.calculate_moment(metrics[key], n, - using=key, + + pz_moment_deltas[key], pz_moments[key], kld_moments[key] = [], [], [] + for n in range(N_moments): + kld_moments[key].append(qp.utils.calculate_moment(metrics[key], n, + using='truth', limits=zlim, dx=delta_z, - vb=False)]) - print('finished with '+key) - print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start)) + vb=False)) + new_moment = Eo[key].moment(n, using=key, limits=zlim, + dx=delta_z, vb=False) + pz_moments[key].append(new_moment) + delta_moment = (new_moment - pz_moments['truth'][n]) / pz_moments['truth'][n] + pz_moment_deltas[key].append(delta_moment) + print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start)) - path = os.path.join(dataset_key, str(E.n_pdfs)) - loc = os.path.join(path, str(N_floats)+'kld_hist'+str(n_gals_use)+dataset_key+str(i)) + loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) with open(loc+'.hkl', 'w') as filename: info = {} info['z_grid'] = z_grid info['N_floats'] = N_floats info['pz_klds'] = klds hickle.dump(info, filename) + + outloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i)) + with open(outloc+'.hkl', 'w') as outfilename: + hickle.dump(pz_moments, outfilename) - return(Eo, klds, moments) + save_moments(name, size, n_floats_use, kld_moments, 'pz_kld_moments') + save_moments(name, size, n_floats_use, pz_moments, 'pz_moments') + save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas') + + return(Eo)#, klds, kld_moments, pz_moments, pz_moment_deltas)
@@ -12303,13 +12172,56 @@

Analysis

-
In [14]:
+
In [9]:
+
+
+
def plot_all_examples(name, size, N_floats, init, bonus={}):
+    
+    fig, ax = plt.subplots()
+    lines = []
+    for bonus_key in bonus.keys():
+        path = os.path.join(name, str(size))
+        loc = os.path.join(path, 'pzs'+str(size)+name+bonus_key)
+        with open(loc+'.hkl', 'r') as filename:
+            info = hickle.load(filename)
+            randos = info['randos']
+            z_grid = info['z_grid']
+            pdfs = info['pdfs']
+        ls = bonus[bonus_key][0]
+        a = bonus[bonus_key][1]
+        lab = re.sub(r'[\_]', '', bonus_key)
+        line, = ax.plot([-1., 0.], [0., 0.], linestyle=ls, alpha=a, color='k', label=lab)
+        lines.append(line)
+        leg = ax.legend(loc='upper right', handles=lines)
+        for i in range(n_plot):
+            data = (z_grid, pdfs[randos[i]])
+            data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data))
+            ax.plot(data[0], data[1], linestyle=ls, alpha=a, color=color_cycle[i])
+#     ax.legend(loc='upper right')
+    ax.set_xlabel(r'$z$', fontsize=14)
+    ax.set_ylabel(r'$p(z)$', fontsize=14)
+    ax.set_xlim(min(z_grid), max(z_grid))
+    ax.set_title(dataset_info[name]['name']+r' examples with $N_{f}=$'+str(N_floats), fontsize=16)
+    saveloc = os.path.join(path, 'pzs'+str(size)+name+str(N_floats)+'_'+str(init))
+    fig.savefig(saveloc+'.pdf', dpi=250)
+    plt.close()
+
+ +
+
+
+ +
+
+
+
In [10]:
-
def plot_individual(n_gals_use, dataset_key, N_floats, i):
+
def plot_individual_kld(n_gals_use, dataset_key, N_floats, i):
     
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, str(N_floats)+'kld_hist'+str(n_gals_use)+dataset_key+str(i))
+    a = 1./len(formats)
+    loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))
     with open(loc+'.hkl', 'r') as filename:
         info = hickle.load(filename)
         z_grid = info['z_grid']
@@ -12318,21 +12230,20 @@ 

Analysis

plt.figure() plot_bins = np.linspace(-3., 3., 20) - a = 1./len(formats) for key in pz_klds.keys(): logdata = qp.utils.safelog(pz_klds[key]) kld_hist = plt.hist(logdata, color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', - label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=3) + label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2) hist_max.append(max(kld_hist[0])) dist_min.append(min(logdata)) dist_max.append(max(logdata)) plt.legend() plt.ylabel('frequency', fontsize=14) plt.xlabel(r'$\log[KLD]$', fontsize=14) - plt.xlim(min(dist_min), max(dist_max)) - plt.ylim(0., max(hist_max)) - plt.title('KLD distribution of '+str(n_gals_use)+' from '+dataset_key+r' with $N_{f}='+str(N_floats)+r'$', fontsize=16) - plt.savefig(loc+'.png', dpi=250) +# plt.xlim(min(dist_min), max(dist_max)) +# plt.ylim(0., max(hist_max)) + plt.title(dataset_info[dataset_key]['name']+r' data $p(KLD)$ with $N_{f}='+str(N_floats)+r'$', fontsize=16) + plt.savefig(loc+'.pdf', dpi=250) plt.close()
@@ -12340,6 +12251,83 @@

Analysis

+
+
+
+
In [11]:
+
+
+
# def plot_individual_moment(n_gals_use, dataset_key, N_floats, i):
+    
+#     path = os.path.join(dataset_key, str(n_gals_use))
+#     a = 1./len(formats)    
+#     loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))
+#     with open(loc+'.hkl', 'r') as filename:
+#         moments = hickle.load(filename)
+#     delta_moments = {}
+        
+#     plt.figure(figsize=(5, 5 * (n_moments_use-1)))
+#     for n in range(1, n_moments_use):
+#         ax = plt.subplot(n_moments_use, 1, n)
+#         ends = (min(moments['truth'][n]), max(moments['truth'][n]))
+#         for key in formats:
+#             ends = (min(ends[0], min(moments[key][n])), max(ends[-1], max(moments[key][n])))
+#         plot_bins = np.linspace(ends[0], ends[-1], 20)
+#         ax.hist([-100], color='k', alpha=a, histtype='stepfilled', edgecolor='k', label='truth', 
+#                     linestyle='-', ls='-')
+#         ax.hist(moments['truth'][n], bins=plot_bins, color='k', alpha=a, histtype='stepfilled', normed=True)
+#         ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a)
+#         for key in formats:
+#             ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, 
+#                     linestyle=stepstyles[key], ls=stepstyles[key], lw=2)
+#             ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)
+#             ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)
+#         ax.legend()
+#         ax.set_ylabel('frequency', fontsize=14)
+#         ax.set_xlabel(moment_names[n], fontsize=14)
+#         ax.set_xlim(min(plot_bins), max(plot_bins))
+#     plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)
+#     plt.tight_layout()
+#     plt.subplots_adjust(top=0.95)
+#     plt.savefig(loc+'.pdf', dpi=250)
+#     plt.close()
+        
+#     ngood = {}
+#     normarr = np.ones(n_gals_use)
+#     for key in formats:
+#         ngood[key] = np.zeros(n_moments_use)
+#     plt.figure(figsize=(5, 5 * (n_moments_use-1)))
+#     for n in range(1, n_moments_use):
+#         ax = plt.subplot(n_moments_use, 1, n)
+#         ends = (100., -100.)
+#         for key in formats:
+#             delta_moments[key] = (moments[key] - moments['truth']) / moments['truth']
+#             ngood[key][n] = np.sum(normarr[np.abs(delta_moments[key][n]) < 0.01]) / float(n_gals_use)
+#             ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n])))
+#         plot_bins = np.linspace(ends[0], ends[-1], 20)
+#         for key in formats:
+#             ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, 
+#                     linestyle=stepstyles[key], ls=stepstyles[key], lw=2)
+#             ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)
+#             ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)
+#         ax.legend()
+#         ax.set_ylabel('frequency', fontsize=14)
+#         ax.set_xlabel(r'fractional error on '+moment_names[n], fontsize=14)
+#         ax.set_xlim(min(plot_bins), max(plot_bins))
+#     plt.tight_layout()
+#     plt.subplots_adjust(top=0.95)
+#     plt.suptitle(dataset_info[dataset_key]['name']+r' data moment fractional errors with $N_{f}='+str(N_floats)+r'$', fontsize=16)
+#     plt.savefig(loc+'_delta.pdf', dpi=250)
+#     plt.close()
+    
+#     #TO DO: move this calculation and saving out of this plot, then eliminate the plot!
+#     save_moments(dataset_key, n_gals_use, N_floats, ngood, 'pz_moment_deltas')
+
+ +
+
+
+
@@ -12353,7 +12341,7 @@

Analysis

-
In [15]:
+
In [12]:
def analyze_stacked(E0, E, z_grid, n_floats_use, dataset_key, i=None):
@@ -12362,39 +12350,64 @@ 

Analysis

z_range = zlim[-1] - zlim[0] delta_z = z_range / len(z_grid) - print('stacking the ensembles') - stack_start = timeit.default_timer() +# print('stacking the ensembles') +# stack_start = timeit.default_timer() stacked_pdfs, stacks = {}, {} for key in formats: + start = timeit.default_timer() stacked_pdfs[key] = qp.PDF(gridded=E[key].stack(z_grid, using=key, vb=False)[key]) stacks[key] = stacked_pdfs[key].evaluate(z_grid, using='gridded', norm=True, vb=False)[1] + print('stacked '+key+ ' in '+str(timeit.default_timer()-start)) + stack_start = timeit.default_timer() stacked_pdfs['truth'] = qp.PDF(gridded=E0.stack(z_grid, using='truth', vb=False)['truth']) stacks['truth'] = stacked_pdfs['truth'].evaluate(z_grid, using='gridded', norm=True, vb=False)[1] - print('stacked the ensembles in '+str(timeit.default_timer() - stack_start)) + print('stacked truth in '+str(timeit.default_timer() - stack_start)) + +# print('calculating the metrics') +# metric_start = timeit.default_timer() +# for n in range(n_moments_use): +# moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, +# limits=zlim, +# dx=delta_z, +# vb=False)) +# print('calculated the true moments in '+str(timeit.default_timer() - metric_start)) - print('calculating the metrics') - metric_start = timeit.default_timer() klds = {} for key in formats: + kld_start = timeit.default_timer() klds[key] = qp.utils.calculate_kl_divergence(stacked_pdfs['truth'], stacked_pdfs[key], limits=zlim, dx=delta_z) - print('calculated the metrics in '+str(timeit.default_timer() - metric_start)) + print('calculated the '+key+' stacked kld in '+str(timeit.default_timer() - kld_start)) + save_nz_metrics(name, size, n_floats_use, klds, 'nz_klds') + + moments = {} + for key in formats_plus: + moment_start = timeit.default_timer() + moments[key] = [] + for n in range(n_moments_use): + moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n, + limits=zlim, + dx=delta_z, + vb=False)) + print('calculated the '+key+' stacked moments in '+str(timeit.default_timer() - moment_start)) + save_moments(name, size, n_floats_use, moments, 'nz_moments') path = os.path.join(dataset_key, str(E0.n_pdfs)) - loc = os.path.join(path, str(n_floats_use)+'nz_comp'+str(n_gals_use)+dataset_key+str(i)) + loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i)) with open(loc+'.hkl', 'w') as filename: info = {} info['z_grid'] = z_grid info['stacks'] = stacks info['klds'] = klds + info['moments'] = moments hickle.dump(info, filename) - return(stacked_pdfs, klds) + return(stacked_pdfs)
@@ -12404,13 +12417,13 @@

Analysis

-
In [16]:
+
In [13]:
def plot_estimators(n_gals_use, dataset_key, n_floats_use, i=None):
     
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, str(n_floats_use)+'nz_comp'+str(n_gals_use)+dataset_key+str(i))
+    loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i))
     with open(loc+'.hkl', 'r') as filename:
         info = hickle.load(filename)
         z_grid = info['z_grid']
@@ -12418,18 +12431,18 @@ 

Analysis

klds = info['klds'] plt.figure() - plt.plot(z_grid, stacks['truth'], color='black', lw=4, alpha=0.3, label='truth') + plt.plot(z_grid, stacks['truth'], color='black', lw=3, alpha=0.3, label='original') nz_max.append(max(stacks['truth'])) for key in formats: nz_max.append(max(stacks[key])) - plt.plot(z_grid, stacks[key], label=key+r' KLD='+str(klds[key]), color=colors[key], linestyle=styles[key]) + plt.plot(z_grid, stacks[key], label=key+r' KLD='+str(klds[key])[:8], color=colors[key], linestyle=styles[key]) plt.xlabel(r'$z$', fontsize=14) plt.ylabel(r'$\hat{n}(z)$', fontsize=14) plt.xlim(min(z_grid), max(z_grid)) - plt.ylim(0., max(nz_max)) +# plt.ylim(0., max(nz_max)) plt.legend() - plt.title(r'$\hat{n}(z)$ for '+str(n_gals_use)+r' from '+dataset_key+r' with $N_{f}='+str(n_floats_use)+r'$', fontsize=16) - plt.savefig(loc+'.png', dpi=250) + plt.title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ with $N_{f}='+str(n_floats_use)+r'$', fontsize=16) + plt.savefig(loc+'.pdf', dpi=250) plt.close()
@@ -12475,40 +12488,40 @@

Scaling

-
In [17]:
+
In [14]:
-
def save_pz_metrics(dataset_key, n_gals_use, N_f, metric_moments):
+
def save_moments(dataset_key, n_gals_use, N_f, stat, stat_name):
 
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, 'pz_klds'+str(n_gals_use)+dataset_key)
+    loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key)
     
     if os.path.exists(loc+'.hkl'):
-        with open(loc+'.hkl', 'r') as pz_file:
+        with open(loc+'.hkl', 'r') as stat_file:
         #read in content of list/dict
-            pz_stats = hickle.load(pz_file)
+            stats = hickle.load(stat_file)
     else:
-        pz_stats = {}
-        pz_stats['N_f'] = []
-        for f in formats:#change this name to formats
-            pz_stats[f] = []
-            for m in range(n_moments_use + 1):
-                pz_stats[f].append([])
+        stats = {}
+        stats['N_f'] = []
+        for f in stat.keys():
+            stats[f] = []
+            for m in range(n_moments_use):
+                stats[f].append([])
 
-    if N_f not in pz_stats['N_f']:
-        pz_stats['N_f'].append(N_f)
-        for f in formats:
-            for m in range(n_moments_use + 1):
-                pz_stats[f][m].append([])
+    if N_f not in stats['N_f']:
+        stats['N_f'].append(N_f)
+        for f in stat.keys():
+            for m in range(n_moments_use):
+                stats[f][m].append([])
         
-    where_N_f = pz_stats['N_f'].index(N_f)
+    where_N_f = stats['N_f'].index(N_f)
         
-    for f in formats:
-        for m in range(n_moments_use + 1):
-            pz_stats[f][m][where_N_f].append(metric_moments[f][m])
+    for f in stat.keys():
+        for m in range(n_moments_use):
+            stats[f][m][where_N_f].append(stat[f][m])
 
-    with open(loc+'.hkl', 'w') as pz_file:
-        hickle.dump(pz_stats, pz_file)
+    with open(loc+'.hkl', 'w') as stat_file:
+        hickle.dump(stats, stat_file)
 
@@ -12518,18 +12531,24 @@

Scaling

-
In [18]:
+
In [15]:
def plot_pz_metrics(dataset_key, n_gals_use):
-# trying really hard to make this colorblind-readable but still failing
 
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, 'pz_klds'+str(n_gals_use)+dataset_key)
+    loc = os.path.join(path, 'pz_kld_moments'+str(n_gals_use)+dataset_key)
     with open(loc+'.hkl', 'r') as pz_file:
         pz_stats = hickle.load(pz_file)
+#     if len(instantiations) == 10:
+#         for f in formats:
+#             for n in range(n_moments_use):
+#                 if not np.shape(pz_stats[f][n]) == (4, 10):
+#                     for s in range(len(pz_stats[f][n])):
+#                         pz_stats[f][n][s] = np.array(np.array(pz_stats[f][n][s])[:10]).flatten()
         
     flat_floats = np.array(pz_stats['N_f']).flatten()
+    in_x = np.log(flat_floats)
 
     def make_patch_spines_invisible(ax):
         ax.set_frame_on(True)
@@ -12537,80 +12556,212 @@ 

Scaling

for sp in ax.spines.values(): sp.set_visible(False) - shapes = ['*','+','x']#,'v','^','<','>'] - marksize = 50 + shapes = moment_shapes + marksize = 10 a = 1./len(formats) + fig, ax = plt.subplots() + fig.subplots_adjust(right=1.) + ax_n = ax + for key in formats: + ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key]) + for n in range(1, n_moments_use): + ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n]) + n_factor = 0.1 * (n - 2) + if n>1: + ax_n = ax.twinx() + rot_ang = 270 + label_space = 15. + else: + rot_ang = 90 + label_space = 0. + if n>2: + ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) + make_patch_spines_invisible(ax_n) + ax_n.spines["right"].set_visible(True) + for s in range(len(formats)): + f = formats[s] + f_factor = 0.05 * (s - 1) +# print('pz metrics data shape '+str(pz_stats[f][n])) + data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats + mean = np.mean(data_arr, axis=0).flatten() + std = np.std(data_arr, axis=0).flatten() + y_plus = mean + std + y_minus = mean - std + y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]]) + ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=a, color=colors[f]) + ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f]) + pz_mean_max[n] = max(pz_mean_max[n], np.max(y_plus)) + pz_mean_min[n] = min(pz_mean_min[n], np.min(y_minus)) + ax_n.set_ylabel(r'$\log[\mathrm{'+moment_names[n]+r'}]$', rotation=rot_ang, fontsize=14, labelpad=label_space) + ax_n.set_ylim((pz_mean_min[n]-1., pz_mean_max[n]+1.)) + ax.set_xscale('log') + ax.set_xticks(flat_floats) + ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) + ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) + ax.set_xlabel('number of parameters', fontsize=14) + ax.set_title(dataset_info[dataset_key]['name']+r' data $\log[KLD]$ log-moments', fontsize=16) + ax.legend(loc='lower left') + fig.tight_layout() + fig.savefig(loc+'_clean.pdf', dpi=250) + plt.close() + fig, ax = plt.subplots() fig.subplots_adjust(right=1.) ax_n = ax for key in formats: ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1) - - for n in range(1, 4): - ax.scatter([-1], [0], color='k', marker=shapes[n-1], s=marksize, label='moment '+str(n)) + for n in range(1, n_moments_use): + n_factor = 0.1 * (n - 2) + ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n]) if n>1: ax_n = ax.twinx() + rot_ang = 270 + label_space = 15. + else: + rot_ang = 90 + label_space = 0. if n>2: ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1))) make_patch_spines_invisible(ax_n) ax_n.spines["right"].set_visible(True) - for f in formats: - data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats - for i in data_arr:#next try plot with marker and linewidth/linestyle keywords - ax_n.scatter(flat_floats, i, marker=shapes[n-1], s=marksize, color=colors[f], alpha=a)#, - # linewidth=1, linestyle=styles[f], edgecolor='k') -# ax_n.scatter(flat_floats, i, marker=shapes[n-1], s=marksize, color='None', -# linewidth=2, linestyle=styles[f], edgecolor='k', alpha=1.) - moment_max[n-1].append(max(i)) - ax_n.set_ylabel('moment '+str(n), fontsize=14) - ax_n.set_ylim(0., max(moment_max[n-1])) - ax.set_xlim(min(flat_floats) - 10**int(np.log10(min(flat_floats))), max(flat_floats) + 10**int(np.log10(max(flat_floats)))) - ax.semilogx() + for s in range(len(formats)): + f = formats[s] + f_factor = 0.05 * (s - 1) +# print('pz metrics data shape '+str(pz_stats[f][n])) + data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats + for i in data_arr: + ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a) +# pz_moment_max[n-1].append(max(i)) + ax_n.set_ylabel(r'$\log[\mathrm{'+moment_names[n]+r'}]$', rotation=rot_ang, fontsize=14, labelpad=label_space) + ax_n.set_ylim(pz_mean_min[n]-1., pz_mean_max[n]+1.) + ax.set_xscale('log') + ax.set_xticks(flat_floats) + ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter()) + ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25)) ax.set_xlabel('number of parameters', fontsize=14) - ax.set_title('KLD moments on '+str(n_gals_use)+' from '+dataset_key, fontsize=16) - ax.legend(loc='upper left') + ax.set_title(dataset_info[dataset_key]['name']+r' data $\log[KLD]$ log-moments', fontsize=16) + ax.legend(loc='lower left') fig.tight_layout() - fig.savefig(loc+'.png', dpi=250) + fig.savefig(loc+'_all.pdf', dpi=250) plt.close() +

+ +
+
+
+ +
+
+
+
In [16]:
+
+
+
def plot_pz_delta_moments(name, size):
+    n_gals_use = size
     
+    # should look like nz_moments
+    path = os.path.join(name, str(n_gals_use))
+    loc = os.path.join(path, 'pz_moment_deltas'+str(n_gals_use)+name)
+    with open(loc+'.hkl', 'r') as pz_file:
+        pz_stats = hickle.load(pz_file)
+    flat_floats = np.array(pz_stats['N_f']).flatten()
+    in_x = np.log(flat_floats)
+    a = 1./len(formats)
+    shapes = moment_shapes
+    marksize = 10
+    
+    def make_patch_spines_invisible(ax):
+        ax.set_frame_on(True)
+        ax.patch.set_visible(False)
+        for sp in ax.spines.values():
+            sp.set_visible(False)   
+            
     fig, ax = plt.subplots()
     fig.subplots_adjust(right=1.)
     ax_n = ax
-#     jitters = {}
-#     factors = {'quantiles':-0.1, 'histogram':0., 'samples':0.1}
     for key in formats:
-        ax_n.plot([-1], [0], color=colors[key], label=key, linewidth=1)
-#         jitters[key] = factors[key] * np.sqrt(flat_floats)
-    for n in range(1, 4):
-        ax.scatter([-1], [0], color='k', marker=shapes[n-1], s=marksize, label='moment '+str(n))
+        ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)
+    for n in range(1, n_moments_use):
+        ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])
+        n_factor = 0.1 * (n - 2)
         if n>1:
             ax_n = ax.twinx()
+            rot_ang = 270
+            label_space = 15.
+        else:
+            rot_ang = 90
+            label_space = 0.
         if n>2:
             ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1)))
             make_patch_spines_invisible(ax_n)
             ax_n.spines["right"].set_visible(True)
-        for f in formats:
+        for s in range(len(formats)):
+            f = formats[s]
+            f_factor = 0.05 * (s - 1)
+#             print(str(np.shape(pz_stats[f][n]))+' should be n_floats * n_instantiations')
             data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats
+#             print(str(np.shape(data_arr))+' should be n_instantiations * n_floats')
+            data_arr = np.median(data_arr, axis=2) * 100.
             mean = np.mean(data_arr, axis=0).flatten()
             std = np.std(data_arr, axis=0).flatten()
-#             x_cor = np.array([flat_floats[:-1], flat_floats[:-1], flat_floats[1:], flat_floats[1:]])
-#             y_plus = mean + std
-#             y_minus = mean - std
-#             y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])
-            ax_n.scatter(flat_floats, mean, marker=shapes[n-1], s=marksize, alpha=2*a, color=colors[f])
-            ax_n.errorbar(flat_floats, mean, yerr=std, color=colors[f], alpha=2*a, capsize=5, elinewidth=1, linewidth=0., visible=True)
-#             ax_n.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.)
-            mean_max[n-1].append(np.max(mean+std))
-        ax_n.set_ylabel('moment '+str(n), fontsize=14)
-        ax_n.set_ylim(0., np.max(np.array(mean_max[n-1])))
-    ax.set_xlim(min(flat_floats)/3., max(flat_floats)*3.)
-    ax.semilogx()
+            y_plus = mean + std
+            y_minus = mean - std
+            y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])
+            ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=a, color=colors[f])
+            ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])
+            n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))
+            n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))
+        ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)
+        ax_n.set_ylim((min(n_delta_min)-1., max(n_delta_max)+1.))
+    ax.set_xscale('log')
+    ax.set_xticks(flat_floats)
+    ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())
+    ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))
     ax.set_xlabel('number of parameters', fontsize=14)
-    ax.set_title('KLD moments on '+str(n_gals_use)+' from '+dataset_key, fontsize=16)
-    ax.legend(loc='upper left')
+    ax.set_title(dataset_info[name]['name']+r' data $\hat{p}(z)$ moment errors', fontsize=16)
+    ax.legend(loc='upper right')
     fig.tight_layout()
-    fig.savefig(loc+'_clean.png', dpi=250)
+    fig.savefig(loc+'_clean.pdf', dpi=250)
+    plt.close()
+            
+    fig, ax = plt.subplots()
+    fig.subplots_adjust(right=1.)
+    ax_n = ax
+    for key in formats:
+        ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)
+    for n in range(1, n_moments_use):
+        n_factor = 0.1 * (n - 2)
+        ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])
+        if n>1:
+            ax_n = ax.twinx()
+            rot_ang = 270
+            label_space = 15.
+        else:
+            rot_ang = 90
+            label_space = 0.
+        if n>2:
+            ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1)))
+            make_patch_spines_invisible(ax_n)
+            ax_n.spines["right"].set_visible(True)
+        for s in range(len(formats)):
+            f = formats[s]
+            f_factor = 0.05 * (s - 1)
+            data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)
+            data_arr = np.median(data_arr, axis=2) * 100.
+            for i in data_arr:
+                ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)
+        ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)
+        ax_n.set_ylim((min(n_delta_min)-1., min(n_delta_max)+1.))
+    ax.set_xscale('log')
+    ax.set_xticks(flat_floats)
+    ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())
+    ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))
+    ax.set_xlabel('number of parameters', fontsize=14)
+    ax.set_title(dataset_info[name]['name']+r' data $\hat{n}(z)$ moments', fontsize=16)
+    ax.legend(loc='upper right')
+    fig.tight_layout()
+    fig.savefig(loc+'_all.pdf', dpi=250)
     plt.close()
 
@@ -12631,13 +12782,13 @@

Scaling

-
In [19]:
+
In [17]:
-
def save_nz_metrics(dataset_key, n_gals_use, N_f, nz_klds):
+
def save_nz_metrics(dataset_key, n_gals_use, N_f, nz_klds, stat_name):
     
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, 'nz_kld'+str(n_gals_use)+dataset_key)
+    loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key)
     if os.path.exists(loc+'.hkl'):
         with open(loc+'.hkl', 'r') as nz_file:
         #read in content of list/dict
@@ -12669,23 +12820,26 @@ 

Scaling

-
In [20]:
+
In [18]:
-
def plot_nz_metrics(dataset_key, n_gals_use):
+
def plot_nz_klds(dataset_key, n_gals_use):
     
     path = os.path.join(dataset_key, str(n_gals_use))
-    loc = os.path.join(path, 'nz_kld'+str(n_gals_use)+dataset_key)
+    loc = os.path.join(path, 'nz_klds'+str(n_gals_use)+dataset_key)
     with open(loc+'.hkl', 'r') as nz_file:
         nz_stats = hickle.load(nz_file)
+    if len(instantiations) == 10:
+        for f in formats:
+            if not np.shape(nz_stats[f]) == (4, 10):
+                for s in range(len(floats)):
+                    nz_stats[f][s] = np.array(np.array(nz_stats[f][s])[:10]).flatten()
 
     flat_floats = np.array(nz_stats['N_f']).flatten()
     
     plt.figure(figsize=(5, 5))
-
     for f in formats:
-#     mu = np.mean(np.array(nz_stats[dataset_key][f]), axis=0)
-#     sigma = np.std(np.array(nz_stats[dataset_key][f]), axis=0)
+#         print('nz klds data shape '+str(nz_stats[f][n]))
         data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f
         n_i = len(data_arr)
         a = 1./len(formats)#1./n_i
@@ -12696,21 +12850,20 @@ 

Scaling

kld_max.append(max(i)) plt.semilogy() plt.semilogx() + plt.xticks(flat_floats, [str(ff) for ff in flat_floats]) plt.ylim(min(kld_min) / 10., 10. * max(kld_max)) plt.xlim(min(flat_floats) / 3., max(flat_floats) * 3.) plt.xlabel(r'number of parameters', fontsize=14) plt.ylabel(r'KLD', fontsize=14) plt.legend(loc='upper right') - plt.title(r'$\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_key, fontsize=16) - - plt.savefig(loc+'.png', dpi=250) + plt.title(r'$\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_info[dataset_key]['name']+' mock catalog', fontsize=16) + plt.savefig(loc+'_all.pdf', dpi=250) plt.close() plt.figure(figsize=(5, 5)) a = 1./len(formats) for f in formats: -# mu = np.mean(np.array(nz_stats[dataset_key][f]), axis=0) -# sigma = np.std(np.array(nz_stats[dataset_key][f]), axis=0) +# print('nz klds data shape '+str(nz_stats[f][n])) data_arr = np.swapaxes(np.array(nz_stats[f]), 0, 1)#turn N_f * instantiations into instantiations * N_f plt.plot([10. * max(flat_floats), 10. * max(flat_floats)], [1., 10.], color=colors[f], label=f, linestyle=styles[f]) kld_min.append(np.min(data_arr)) @@ -12725,14 +12878,148 @@

Scaling

plt.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.) plt.semilogy() plt.semilogx() + plt.xticks(flat_floats, [str(ff) for ff in flat_floats]) plt.ylim(min(kld_min) / 10., 10. * max(kld_max)) - plt.xlim(min(flat_floats) / 3., max(flat_floats) * 3.) + plt.xlim(min(flat_floats), max(flat_floats)) plt.xlabel(r'number of parameters', fontsize=14) plt.ylabel(r'KLD', fontsize=14) plt.legend(loc='upper right') - plt.title(r'$\hat{n}(z)$ KLD on '+str(n_gals_use)+' from '+dataset_key, fontsize=16) + plt.title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ KLD', fontsize=16) + plt.savefig(loc+'_clean.pdf', dpi=250) + plt.close() +

+ +
+
+
+ +
+
+
+
In [19]:
+
+
+
def plot_nz_moments(dataset_key, n_gals_use):
 
-    plt.savefig(loc+'_clean.png', dpi=250)
+    path = os.path.join(dataset_key, str(n_gals_use))
+    loc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)
+    with open(loc+'.hkl', 'r') as nz_file:
+        nz_stats = hickle.load(nz_file)
+    flat_floats = np.array(nz_stats['N_f']).flatten()
+    in_x = np.log(flat_floats)
+    a = 1./len(formats)
+    shapes = moment_shapes
+    marksize = 10
+    
+    def make_patch_spines_invisible(ax):
+        ax.set_frame_on(True)
+        ax.patch.set_visible(False)
+        for sp in ax.spines.values():
+            sp.set_visible(False)   
+            
+    fig, ax = plt.subplots()
+    fig.subplots_adjust(right=1.)
+    ax_n = ax
+    for key in formats:
+        ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)
+#     ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)
+    for n in range(1, n_moments_use):
+        ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])
+        n_factor = 0.1 * (n - 2)
+        truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)
+        if n>1:
+            ax_n = ax.twinx()
+            rot_ang = 270
+            label_space = 15.
+        else:
+            rot_ang = 90
+            label_space = 0.
+        if n>2:
+            ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1)))
+            make_patch_spines_invisible(ax_n)
+            ax_n.spines["right"].set_visible(True)
+        for s in range(len(formats)):
+            f = formats[s]
+            f_factor = 0.05 * (s - 1)
+#             print('nz moments data shape '+str(nz_stats[f][n]))
+            data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats
+            mean = np.mean(data_arr, axis=0).flatten()
+            std = np.std(data_arr, axis=0).flatten()
+            y_plus = mean + std
+            y_minus = mean - std
+            y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])
+            ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=a, color=colors[f])
+            ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])
+            nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))
+            nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))
+#         data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1))
+#         mean = np.mean(data_arr, axis=0).flatten()
+#         std = np.std(data_arr, axis=0).flatten()
+#         y_plus = mean + std
+#         y_minus = mean - std
+#         y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])
+#         ax_n.plot(np.exp(in_x+n_factor), mean, linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k', linewidth=0.5)
+#         ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color='k')
+#         nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))
+#         nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))
+#         ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')
+        ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)
+        ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))
+    ax.set_xscale('log')
+    ax.set_xticks(flat_floats)
+    ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())
+    ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))
+    ax.set_xlabel('number of parameters', fontsize=14)
+    ax.set_title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ moments', fontsize=16)
+    ax.legend(loc='upper right')
+    fig.tight_layout()
+    fig.savefig(loc+'_clean.pdf', dpi=250)
+    plt.close()
+            
+    fig, ax = plt.subplots()
+    fig.subplots_adjust(right=1.)
+    ax_n = ax
+    for key in formats:
+        ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)
+#     ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)
+    for n in range(1, n_moments_use):
+        n_factor = 0.1 * (n - 2)
+        ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])
+        truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)
+        if n>1:
+            ax_n = ax.twinx()
+            rot_ang = 270
+            label_space = 15.
+        else:
+            rot_ang = 90
+            label_space = 0.
+        if n>2:
+            ax_n.spines["right"].set_position(("axes", 1. + 0.1 * (n-1)))
+            make_patch_spines_invisible(ax_n)
+            ax_n.spines["right"].set_visible(True)
+        for s in range(len(formats)):
+            f = formats[s]
+            f_factor = 0.05 * (s - 1)
+#             print('nz moments data shape '+str(nz_stats[f][n]))
+            data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.
+            for i in data_arr:
+                ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)
+#                 nz_moment_max[n-1].append(max(i))
+        data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1))
+#         for i in data_arr:
+#             ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a)
+# #         ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')
+        ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)
+        ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))
+    ax.set_xscale('log')
+    ax.set_xticks(flat_floats)
+    ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())
+    ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))
+    ax.set_xlabel('number of parameters', fontsize=14)
+    ax.set_title(dataset_info[dataset_key]['name']+r' data $\hat{n}(z)$ moments', fontsize=16)
+    ax.legend(loc='upper right')
+    fig.tight_layout()
+    fig.savefig(loc+'_all.pdf', dpi=250)
     plt.close()
 
@@ -12753,18 +13040,61 @@

-
In [21]:
+
In [20]:
-
floats = [3, 10, 30, 100]
-sizes = [100]#, 1000, 10000]
-names = ['Optical']
-instantiations = range(0, 2)#10)
+
dataset_info = {}
+delta = 0.01
 
-#many_colors = ['red','green','blue','cyan','magenta','yellow']
-high_res = 300
-n_plot = 5
+dataset_keys = ['mg', 'ss']
+
+for dataset_key in dataset_keys:
+    dataset_info[dataset_key] = {}
+    if dataset_key == 'mg':
+        datafilename = 'bpz_euclid_test_10_3.probs'
+        z_low = 0.01
+        z_high = 3.51
+        nc_needed = 3
+        plotname = 'brighter'
+        skip_rows = 1
+        skip_cols = 1
+    elif dataset_key == 'ss':
+        datafilename = 'test_magscat_trainingfile_probs.out'
+        z_low = 0.005
+        z_high = 2.11
+        nc_needed = 5
+        plotname = 'fainter'
+        skip_rows = 1
+        skip_cols = 1
+    dataset_info[dataset_key]['filename'] = datafilename  
+    
+    dataset_info[dataset_key]['z_lim'] = (z_low, z_high)
+    z_grid = np.arange(z_low, z_high, delta, dtype='float')#np.arange(z_low, z_high + delta, delta, dtype='float')
+    z_range = z_high - z_low
+    delta_z = z_range / len(z_grid)
+    dataset_info[dataset_key]['z_grid'] = z_grid
+    dataset_info[dataset_key]['delta_z'] = delta_z
+
+    dataset_info[dataset_key]['N_GMM'] = nc_needed# will be overwritten later
+    dataset_info[dataset_key]['name'] = plotname
+
+ +
+
+
+ +
+
+
+
In [21]:
+
+
+
high_res = 300
+color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256.
+n_plot = len(color_cycle)
 n_moments_use = 4
+moment_names = ['integral', 'mean', 'variance', 'kurtosis']
+moment_shapes = ['o', '*', 'P', 'X']
 
 #make this a more clever structure, i.e. a dict
 formats = ['quantiles', 'histogram', 'samples']
@@ -12772,15 +13102,46 @@ 

styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'} stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'} +formats_plus = ['quantiles', 'histogram', 'samples', 'truth'] +colors_plus = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen', 'truth':'black'} +styles_plus = {'quantiles': '--', 'histogram': ':', 'samples': '-.', 'truth': '-'} + +iqr_min = [3.5] +iqr_max = [delta] +modes_max = [0] pz_max = [1.] nz_max = [1.] hist_max = [1.] dist_min = [0.] dist_max = [0.] -moment_max = [[]] * (n_moments_use - 1) -mean_max = [[]] * (n_moments_use - 1) +pz_mean_max = -10.*np.ones(n_moments_use) +pz_mean_min = 10.*np.ones(n_moments_use) kld_min = [1.] kld_max = [1.] +nz_mean_max = -10.*np.ones(n_moments_use) +nz_mean_min = 10.*np.ones(n_moments_use) +n_delta_max = -10.*np.ones(n_moments_use) +n_delta_min = 10.*np.ones(n_moments_use) +

+ +
+
+
+ +
+
+
+
In [22]:
+
+
+
#change all for NERSC
+
+floats = [3, 10, 30, 100]
+sizes = [10]#[10, 100, 1000]
+names = dataset_info.keys()
+instantiations = range(2, 3)#0)
+
+all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]
 
@@ -12801,22 +13162,24 @@

-
In [22]:
+
In [23]:
# the "pipeline"
-
-for name in names:
+global_start = timeit.default_timer()
+for n in range(len(names)):
+    name = names[n]
     
     dataset_start = timeit.default_timer()
     print('started '+name)
     
-    pdfs = setup_dataset(name)
+    pdfs = setup_dataset(name, skip_rows, skip_cols)
     
-    for size in sizes:
+    for s in range(len(sizes)):
+        size=sizes[s]
         
         size_start = timeit.default_timer()
-        print('started '+str(size)+name)
+        print('started '+name+str(size))
         
         path = os.path.join(name, str(size))
         if not os.path.exists(path):
@@ -12824,49 +13187,54 @@ 

n_gals_use = size - randos = np.random.choice(size, n_plot, replace=False) + randos = all_randos[n][s] for i in instantiations: +# top_bonusdict = {} + i_start = timeit.default_timer() + print('started '+name+str(size)+' #'+str(i)) - original = '_original_('+str(i)+')' + original = '_original'+str(i) pdfs_use = make_instantiation(name, size, pdfs, bonus=original) - plot = plot_examples(size, name, bonus=original) +# plot = plot_examples(size, name, bonus=original) +# top_bonusdict[original] = ['-', 0.25] z_grid = dataset_info[name]['in_z_grid'] N_comps = dataset_info[name]['N_GMM'] - postfit = '_post-fit_('+str(i)+')' + postfit = '_postfit'+str(i) catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit) - plot = plot_examples(size, name, bonus=postfit) +# plot = plot_examples(size, name, bonus=postfit) +# top_bonusdict[postfit] = ['-', 0.5] for n_floats_use in floats: - +# bonusdict = top_bonusdict.copy() float_start = timeit.default_timer() - print('started '+str(size)+name+str(n_floats_use)+'\#'+str(i)) + print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)) - (ensembles, pz_klds, metric_moments) = analyze_individual(catalog, - z_grid,#dataset_info[name]['metric_z_grid'], - n_floats_use, name, n_moments_use, i=i) - for f in formats: - fname = '_'+str(n_floats_use)+f+'_('+str(i)+')' - plot = plot_examples(size, name, bonus=fname) - plot = plot_individual(size, name, n_floats_use, i=i) - save_pz_metrics(name, size, n_floats_use, metric_moments) + ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit) + +# for f in formats: +# fname = str(n_floats_use)+f+str(i) +# plot = plot_examples(size, name, bonus=fname) +# bonusdict[fname] = [styles[f], 0.5] +# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict) +# plot = plot_individual_kld(size, name, n_floats_use, i=i) - (stack_evals, nz_klds) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], - n_floats_use, name, i=i) - plot = plot_estimators(size, name, n_floats_use, i=i) - save_nz_metrics(name, size, n_floats_use, nz_klds) + stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i) +# plot = plot_estimators(size, name, n_floats_use, i=i) - print('finished '+str(size)+name+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start)) - - plot = plot_pz_metrics(name, size) - - plot = plot_nz_metrics(name, size) + print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start)) + print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start)) +# plot = plot_pz_metrics(name, size) +# plot = plot_pz_delta_moments(name, size) +# plot = plot_nz_klds(name, size) +# plot = plot_nz_moments(name, size) - print('finished '+str(size)+name+' in '+str(timeit.default_timer() - size_start)) + print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start)) - print('finished '+name+' in '+str(timeit.default_timer() - dataset_start)) + print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start)) +print('FINISHED everything in '+str(timeit.default_timer() - global_start))

@@ -12879,266 +13247,369 @@

-
started Optical
-started 100Optical
-making the initial ensemble of 100 PDFs
-made the pool of 4 in 0.151180028915
-made the catalog in 0.528388977051
-made the initial ensemble of 100 PDFs
-sampling for the GMM fit
-took 300 samples
-making a new ensemble from samples
-made the pool of 4 in 0.00019097328186
-made the catalog in 0.566546916962
-made a new ensemble from samples
-fitting the GMM to samples
-fit the GMM to samples
-making the final ensemble
-made the pool of 4 in 0.000116109848022
-made the catalog in 25.0085771084
-made the final ensemble
-started 100Optical3\#0
-performing quantization
-finished quantization at 48.7826230526
-performing histogramization
-finished histogramization at 36.4276270866
-performing sampling
-finished sampling at 36.4227459431
-making the approximate ensembles
-made the pool of 4 in 0.000101089477539
-made the catalog in 17.6193859577
-made the pool of 4 in 9.51290130615e-05
-made the catalog in 17.8442480564
-made the pool of 4 in 0.000105857849121
-made the catalog in 17.8148469925
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 54.539247036
-stacking the ensembles
-stacked the ensembles in 74.3008868694
-calculating the metrics
-calculated the metrics in 0.00213098526001
-finished 100Optical3 in 414.400747061
-started 100Optical10\#0
-performing quantization
-finished quantization at 28.1276221275
-performing histogramization
-finished histogramization at 17.8713190556
-performing sampling
-finished sampling at 18.5625870228
-making the approximate ensembles
-made the pool of 4 in 7.48634338379e-05
-made the catalog in 9.87148594856
-made the pool of 4 in 6.00814819336e-05
-made the catalog in 10.9558501244
-made the pool of 4 in 6.69956207275e-05
-made the catalog in 9.58238005638
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 51.0830500126
-stacking the ensembles
-stacked the ensembles in 66.6083409786
-calculating the metrics
-calculated the metrics in 0.00159907341003
-finished 100Optical10 in 279.833028078
-started 100Optical30\#0
-performing quantization
-finished quantization at 39.2002589703
-performing histogramization
-finished histogramization at 16.4590818882
-performing sampling
-finished sampling at 17.0624511242
-making the approximate ensembles
+
started ss
+read in data file in 11.2739341259
+started ss10
+started ss10 #2
+randos for debugging: [21538 91754 37805 55875  5972 56011 72367 67397 25966 71019]
+preprocessed data in 0.0339078903198
+made the pool of 4 in 0.143560171127
+made the catalog in 0.0556938648224
+made the initial ensemble of 10 PDFs in 0.200202941895
+took 300 samples in 1.17442893982
+made the pool of 4 in 9.79900360107e-05
+made the catalog in 0.0416679382324
+made a new ensemble from samples in 0.0423328876495
+fit the GMM to samples in 0.167675018311
+made the pool of 4 in 2.90870666504e-05
+made the catalog in 0.769010782242
+made the final ensemble in 0.769263029099
+calculated 4 moments of original PDFs in 3.48636102676
+started ss10 #2 with 3
+finished making in 0.969101905823
+finished histogramization in 0.932945013046
+finished sampling in 2.92821788788
 made the pool of 4 in 5.10215759277e-05
-made the catalog in 8.61182880402
-made the pool of 4 in 5.00679016113e-05
-made the catalog in 8.71334505081
+made the catalog in 0.376241922379
+made quantiles ensemble in 1.13677692413
+made the pool of 4 in 5.10215759277e-05
+made the catalog in 0.425587892532
+made histogram ensemble in 1.29570603371
+made the pool of 4 in 6.31809234619e-05
+made the catalog in 0.48353600502
+made samples ensemble in 1.30219697952
+calculated the quantiles individual moments, kld moments in 4.10330486298
+calculated the samples individual moments, kld moments in 4.03081297874
+calculated the histogram individual moments, kld moments in 4.66959190369
+stacked quantiles in 0.880034923553
+stacked histogram in 0.823406934738
+stacked samples in 0.851178884506
+stacked truth in 1.29819512367
+calculated the quantiles stacked kld in 0.00104308128357
+calculated the histogram stacked kld in 0.000702142715454
+calculated the samples stacked kld in 0.000648021697998
+calculated the quantiles stacked moments in 0.000274896621704
+calculated the quantiles stacked moments in 0.000715970993042
+calculated the quantiles stacked moments in 0.00103878974915
+calculated the quantiles stacked moments in 0.00144100189209
+calculated the histogram stacked moments in 0.000185012817383
+calculated the histogram stacked moments in 0.000486135482788
+calculated the histogram stacked moments in 0.000741004943848
+calculated the histogram stacked moments in 0.00104212760925
+calculated the samples stacked moments in 0.000212907791138
+calculated the samples stacked moments in 0.000457048416138
+calculated the samples stacked moments in 0.00075101852417
+calculated the samples stacked moments in 0.00113701820374
+calculated the truth stacked moments in 0.000216007232666
+calculated the truth stacked moments in 0.000505924224854
+calculated the truth stacked moments in 0.000817060470581
+calculated the truth stacked moments in 0.00114703178406
+FINISHED ss10 #2 with 3 in 25.5616438389
+started ss10 #2 with 10
+finished making in 0.969255208969
+finished histogramization in 1.01541614532
+finished sampling in 1.30525708199
+made the pool of 4 in 6.103515625e-05
+made the catalog in 0.468002796173
+made quantiles ensemble in 1.53850412369
+made the pool of 4 in 0.000102043151855
+made the catalog in 0.702124118805
+made histogram ensemble in 1.95024609566
+made the pool of 4 in 5.88893890381e-05
+made the catalog in 0.522737979889
+made samples ensemble in 1.39210891724
+calculated the quantiles individual moments, kld moments in 4.09236812592
+calculated the samples individual moments, kld moments in 4.13031983376
+calculated the histogram individual moments, kld moments in 5.16090512276
+stacked quantiles in 0.836797952652
+stacked histogram in 0.853886842728
+stacked samples in 0.849081993103
+stacked truth in 0.855072021484
+calculated the quantiles stacked kld in 0.000715017318726
+calculated the histogram stacked kld in 0.000553131103516
+calculated the samples stacked kld in 0.000545978546143
+calculated the quantiles stacked moments in 0.000257968902588
+calculated the quantiles stacked moments in 0.000645875930786
+calculated the quantiles stacked moments in 0.000994920730591
+calculated the quantiles stacked moments in 0.00130200386047
+calculated the histogram stacked moments in 0.000175952911377
+calculated the histogram stacked moments in 0.000493049621582
+calculated the histogram stacked moments in 0.000676155090332
+calculated the histogram stacked moments in 0.000903129577637
+calculated the samples stacked moments in 0.0001380443573
+calculated the samples stacked moments in 0.000327110290527
+calculated the samples stacked moments in 0.000588178634644
+calculated the samples stacked moments in 0.000787019729614
+calculated the truth stacked moments in 0.000263929367065
+calculated the truth stacked moments in 0.000633001327515
+calculated the truth stacked moments in 0.000967979431152
+calculated the truth stacked moments in 0.0012469291687
+FINISHED ss10 #2 with 10 in 25.4388132095
+started ss10 #2 with 30
+finished making in 0.874783039093
+finished histogramization in 1.15561914444
+finished sampling in 0.931715965271
+made the pool of 4 in 5.79357147217e-05
+made the catalog in 0.467746973038
+made quantiles ensemble in 1.32912802696
 made the pool of 4 in 6.41345977783e-05
-made the catalog in 8.38162398338
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 52.6996619701
-stacking the ensembles
-stacked the ensembles in 64.1746098995
-calculating the metrics
-calculated the metrics in 0.00199699401855
-finished 100Optical30 in 270.532145023
-started 100Optical100\#0
-performing quantization
-finished quantization at 77.1992280483
-performing histogramization
-finished histogramization at 15.8513290882
-performing sampling
-finished sampling at 16.1518719196
-making the approximate ensembles
-made the pool of 4 in 5.00679016113e-05
-made the catalog in 8.22205805779
-made the pool of 4 in 4.72068786621e-05
-made the catalog in 8.31369900703
-made the pool of 4 in 4.72068786621e-05
-made the catalog in 8.31879496574
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 49.796243906
-stacking the ensembles
-stacked the ensembles in 64.499352932
-calculating the metrics
-calculated the metrics in 0.00170803070068
-finished 100Optical100 in 302.587764025
-making the initial ensemble of 100 PDFs
-made the pool of 4 in 5.81741333008e-05
-made the catalog in 0.163774013519
-made the initial ensemble of 100 PDFs
-sampling for the GMM fit
-took 300 samples
-making a new ensemble from samples
-made the pool of 4 in 6.29425048828e-05
-made the catalog in 0.193228006363
-made a new ensemble from samples
-fitting the GMM to samples
-fit the GMM to samples
-making the final ensemble
-made the pool of 4 in 6.50882720947e-05
-made the catalog in 8.19308781624
-made the final ensemble
-started 100Optical3\#1
-performing quantization
-finished quantization at 22.5612850189
-performing histogramization
-finished histogramization at 15.9950089455
-performing sampling
-finished sampling at 15.6737070084
-making the approximate ensembles
+made the catalog in 0.474547147751
+made histogram ensemble in 1.61009693146
+made the pool of 4 in 8.10623168945e-05
+made the catalog in 0.535789012909
+made samples ensemble in 1.46645712852
+calculated the quantiles individual moments, kld moments in 8.42942214012
+calculated the samples individual moments, kld moments in 6.12721705437
+calculated the histogram individual moments, kld moments in 4.38112401962
+stacked quantiles in 0.854387044907
+stacked histogram in 0.876643896103
+stacked samples in 0.838201999664
+stacked truth in 0.777998924255
+calculated the quantiles stacked kld in 0.000617027282715
+calculated the histogram stacked kld in 0.000613927841187
+calculated the samples stacked kld in 0.000825881958008
+calculated the quantiles stacked moments in 0.000220060348511
+calculated the quantiles stacked moments in 0.000627040863037
+calculated the quantiles stacked moments in 0.000865936279297
+calculated the quantiles stacked moments in 0.00115704536438
+calculated the histogram stacked moments in 0.000209808349609
+calculated the histogram stacked moments in 0.000463962554932
+calculated the histogram stacked moments in 0.000783920288086
+calculated the histogram stacked moments in 0.00114488601685
+calculated the samples stacked moments in 0.000169992446899
+calculated the samples stacked moments in 0.000415086746216
+calculated the samples stacked moments in 0.00068211555481
+calculated the samples stacked moments in 0.000911951065063
+calculated the truth stacked moments in 0.000155925750732
+calculated the truth stacked moments in 0.000379085540771
+calculated the truth stacked moments in 0.000571966171265
+calculated the truth stacked moments in 0.00083589553833
+FINISHED ss10 #2 with 30 in 30.3066999912
+started ss10 #2 with 100
+finished making in 2.44939208031
+finished histogramization in 0.818332910538
+finished sampling in 0.83979511261
+made the pool of 4 in 5.3882598877e-05
+made the catalog in 0.529491901398
+made quantiles ensemble in 1.34206700325
 made the pool of 4 in 5.29289245605e-05
-made the catalog in 8.5415558815
-made the pool of 4 in 4.91142272949e-05
-made the catalog in 8.23108196259
-made the pool of 4 in 5.79357147217e-05
-made the catalog in 9.7219440937
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 66.3453202248
-stacking the ensembles
-stacked the ensembles in 86.0212540627
-calculating the metrics
-calculated the metrics in 0.00229501724243
-finished 100Optical3 in 290.403768063
-started 100Optical10\#1
-performing quantization
-finished quantization at 29.4174051285
-performing histogramization
-finished histogramization at 18.0480341911
-performing sampling
-finished sampling at 23.3950479031
-making the approximate ensembles
+made the catalog in 0.467664003372
+made histogram ensemble in 1.25780892372
+made the pool of 4 in 5.29289245605e-05
+made the catalog in 0.435877799988
+made samples ensemble in 1.25956916809
+calculated the quantiles individual moments, kld moments in 6.02705717087
+calculated the samples individual moments, kld moments in 5.44899702072
+calculated the histogram individual moments, kld moments in 4.46730804443
+stacked quantiles in 1.02569699287
+stacked histogram in 0.787800073624
+stacked samples in 1.18201804161
+stacked truth in 1.13130617142
+calculated the quantiles stacked kld in 0.00105404853821
+calculated the histogram stacked kld in 0.000844955444336
+calculated the samples stacked kld in 0.000648021697998
+calculated the quantiles stacked moments in 0.000410079956055
+calculated the quantiles stacked moments in 0.000878095626831
+calculated the quantiles stacked moments in 0.00110411643982
+calculated the quantiles stacked moments in 0.00160813331604
+calculated the histogram stacked moments in 0.000263929367065
+calculated the histogram stacked moments in 0.000639915466309
+calculated the histogram stacked moments in 0.000905990600586
+calculated the histogram stacked moments in 0.00126791000366
+calculated the samples stacked moments in 0.000211000442505
+calculated the samples stacked moments in 0.000504016876221
+calculated the samples stacked moments in 0.00091814994812
+calculated the samples stacked moments in 0.00122618675232
+calculated the truth stacked moments in 0.000243902206421
+calculated the truth stacked moments in 0.000509023666382
+calculated the truth stacked moments in 0.000752925872803
+calculated the truth stacked moments in 0.00108003616333
+FINISHED ss10 #2 with 100 in 28.9493198395
+FINISHED ss10 #2 in 117.245790005
+FINISHED ss10 in 117.246392965
+FINISHED ss in 128.52078104
+started mg
+read in data file in 22.7191698551
+started mg10
+started mg10 #2
+randos for debugging: [51107 68537 53635 23399  9697 77903 25869 12059 40991 63275]
+preprocessed data in 0.0304780006409
 made the pool of 4 in 6.60419464111e-05
-made the catalog in 10.0427048206
-made the pool of 4 in 7.00950622559e-05
-made the catalog in 11.8057179451
-made the pool of 4 in 4.91142272949e-05
-made the catalog in 10.7334661484
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 54.9884839058
-stacking the ensembles
-stacked the ensembles in 68.5702269077
-calculating the metrics
-calculated the metrics in 0.00174808502197
-finished 100Optical10 in 296.665799141
-started 100Optical30\#1
-performing quantization
-finished quantization at 40.2204730511
-performing histogramization
-finished histogramization at 16.366106987
-performing sampling
-finished sampling at 16.4885060787
-making the approximate ensembles
-made the pool of 4 in 5.19752502441e-05
-made the catalog in 8.64090895653
-made the pool of 4 in 5.10215759277e-05
-made the catalog in 8.86281299591
-made the pool of 4 in 4.88758087158e-05
-made the catalog in 8.78555202484
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 51.2652020454
-stacking the ensembles
-stacked the ensembles in 71.2589428425
-calculating the metrics
-calculated the metrics in 0.00397396087646
-finished 100Optical30 in 280.936203003
-started 100Optical100\#1
-performing quantization
-finished quantization at 107.062072039
-performing histogramization
-finished histogramization at 16.9325959682
-performing sampling
-finished sampling at 18.053632021
-making the approximate ensembles
+made the catalog in 0.039901971817
+made the initial ensemble of 10 PDFs in 0.0404348373413
+took 300 samples in 1.94261884689
 made the pool of 4 in 5.79357147217e-05
-made the catalog in 10.7041079998
-made the pool of 4 in 5.00679016113e-05
-made the catalog in 10.593298912
-made the pool of 4 in 0.000109910964966
-made the catalog in 10.6380779743
-made the approximate ensembles
-calculating the individual metrics
-starting quantiles
-finished with quantiles
-starting samples
-finished with samples
-starting histogram
-finished with histogram
-calculated the individual metrics in 56.7630190849
-stacking the ensembles
-stacked the ensembles in 79.3335080147
-calculating the metrics
-calculated the metrics in 0.00180912017822
-finished 100Optical100 in 376.264676094
-finished 100Optical in 2660.02056098
-finished Optical in 2683.37149405
+made the catalog in 0.0352969169617
+made a new ensemble from samples in 0.0355360507965
+fit the GMM to samples in 0.147353172302
+made the pool of 4 in 2.40802764893e-05
+made the catalog in 0.674927949905
+made the final ensemble in 0.675142049789
+calculated 4 moments of original PDFs in 3.03729391098
+started mg10 #2 with 3
+finished making in 0.780121803284
+finished histogramization in 0.774260044098
+finished sampling in 0.808349132538
+made the pool of 4 in 5.48362731934e-05
+made the catalog in 0.423326015472
+made quantiles ensemble in 1.21974611282
+made the pool of 4 in 4.79221343994e-05
+made the catalog in 0.456423997879
+made histogram ensemble in 1.30866789818
+made the pool of 4 in 4.88758087158e-05
+made the catalog in 0.464884996414
+made samples ensemble in 1.31574010849
+calculated the quantiles individual moments, kld moments in 4.12014389038
+calculated the samples individual moments, kld moments in 3.89831805229
+calculated the histogram individual moments, kld moments in 4.01975798607
+stacked quantiles in 1.21437597275
+stacked histogram in 0.838474988937
+stacked samples in 1.42362308502
+stacked truth in 1.11074781418
+calculated the quantiles stacked kld in 0.00150585174561
+calculated the histogram stacked kld in 0.00222396850586
+calculated the samples stacked kld in 0.00371885299683
+calculated the quantiles stacked moments in 0.000260829925537
+calculated the quantiles stacked moments in 0.000839948654175
+calculated the quantiles stacked moments in 0.00129890441895
+calculated the quantiles stacked moments in 0.00178384780884
+calculated the histogram stacked moments in 0.000329971313477
+calculated the histogram stacked moments in 0.000756025314331
+calculated the histogram stacked moments in 0.0011899471283
+calculated the histogram stacked moments in 0.00180697441101
+calculated the samples stacked moments in 0.000293970108032
+calculated the samples stacked moments in 0.000711917877197
+calculated the samples stacked moments in 0.00110793113708
+calculated the samples stacked moments in 0.00156378746033
+calculated the truth stacked moments in 0.000337839126587
+calculated the truth stacked moments in 0.000759840011597
+calculated the truth stacked moments in 0.00116181373596
+calculated the truth stacked moments in 0.00162887573242
+FINISHED mg10 #2 with 3 in 23.3168389797
+started mg10 #2 with 10
+finished making in 1.51137495041
+finished histogramization in 1.39197802544
+finished sampling in 1.23923683167
+made the pool of 4 in 6.41345977783e-05
+made the catalog in 0.524284124374
+made quantiles ensemble in 1.66794490814
+made the pool of 4 in 8.51154327393e-05
+made the catalog in 0.745748996735
+made histogram ensemble in 2.26602888107
+made the pool of 4 in 7.39097595215e-05
+made the catalog in 0.647045850754
+made samples ensemble in 1.62145590782
+calculated the quantiles individual moments, kld moments in 6.71728801727
+calculated the samples individual moments, kld moments in 5.40768003464
+calculated the histogram individual moments, kld moments in 6.78759598732
+stacked quantiles in 1.14174818993
+stacked histogram in 0.903980970383
+stacked samples in 0.96507692337
+stacked truth in 0.863555908203
+calculated the quantiles stacked kld in 0.000929117202759
+calculated the histogram stacked kld in 0.000620126724243
+calculated the samples stacked kld in 0.000907897949219
+calculated the quantiles stacked moments in 0.000237941741943
+calculated the quantiles stacked moments in 0.00062894821167
+calculated the quantiles stacked moments in 0.000795841217041
+calculated the quantiles stacked moments in 0.00125288963318
+calculated the histogram stacked moments in 0.000307083129883
+calculated the histogram stacked moments in 0.000663042068481
+calculated the histogram stacked moments in 0.000990867614746
+calculated the histogram stacked moments in 0.001384973526
+calculated the samples stacked moments in 0.000274181365967
+calculated the samples stacked moments in 0.000648021697998
+calculated the samples stacked moments in 0.000982999801636
+calculated the samples stacked moments in 0.00139117240906
+calculated the truth stacked moments in 0.000205993652344
+calculated the truth stacked moments in 0.00053596496582
+calculated the truth stacked moments in 0.000850915908813
+calculated the truth stacked moments in 0.00121688842773
+FINISHED mg10 #2 with 10 in 32.9919991493
+started mg10 #2 with 30
+finished making in 1.60738801956
+finished histogramization in 0.867848157883
+finished sampling in 1.39367294312
+made the pool of 4 in 0.000163078308105
+made the catalog in 0.82582116127
+made quantiles ensemble in 2.11856389046
+made the pool of 4 in 5.72204589844e-05
+made the catalog in 0.520595788956
+made histogram ensemble in 1.46121788025
+made the pool of 4 in 0.000101804733276
+made the catalog in 0.525902032852
+made samples ensemble in 1.46025896072
+calculated the quantiles individual moments, kld moments in 4.10835695267
+calculated the samples individual moments, kld moments in 4.14074587822
+calculated the histogram individual moments, kld moments in 3.88139796257
+stacked quantiles in 0.777491092682
+stacked histogram in 0.864093065262
+stacked samples in 0.810467004776
+stacked truth in 0.804461956024
+calculated the quantiles stacked kld in 0.000840187072754
+calculated the histogram stacked kld in 0.000622987747192
+calculated the samples stacked kld in 0.000609874725342
+calculated the quantiles stacked moments in 0.000240087509155
+calculated the quantiles stacked moments in 0.000703096389771
+calculated the quantiles stacked moments in 0.00105404853821
+calculated the quantiles stacked moments in 0.00142908096313
+calculated the histogram stacked moments in 0.000262022018433
+calculated the histogram stacked moments in 0.000568151473999
+calculated the histogram stacked moments in 0.000870227813721
+calculated the histogram stacked moments in 0.00122117996216
+calculated the samples stacked moments in 0.000231027603149
+calculated the samples stacked moments in 0.000545978546143
+calculated the samples stacked moments in 0.000859975814819
+calculated the samples stacked moments in 0.00120496749878
+calculated the truth stacked moments in 0.000247001647949
+calculated the truth stacked moments in 0.000550031661987
+calculated the truth stacked moments in 0.000839948654175
+calculated the truth stacked moments in 0.00118112564087
+FINISHED mg10 #2 with 30 in 24.9179830551
+started mg10 #2 with 100
+finished making in 4.54299402237
+finished histogramization in 0.877863883972
+finished sampling in 0.789620876312
+made the pool of 4 in 5.48362731934e-05
+made the catalog in 0.45265007019
+made quantiles ensemble in 1.30355715752
+made the pool of 4 in 4.91142272949e-05
+made the catalog in 0.463873147964
+made histogram ensemble in 1.32496881485
+made the pool of 4 in 5.31673431396e-05
+made the catalog in 0.430168867111
+made samples ensemble in 1.3029999733
+calculated the quantiles individual moments, kld moments in 4.18964004517
+calculated the samples individual moments, kld moments in 3.98618006706
+calculated the histogram individual moments, kld moments in 4.04275989532
+stacked quantiles in 0.791258096695
+stacked histogram in 0.834949970245
+stacked samples in 0.800794839859
+stacked truth in 0.832922935486
+calculated the quantiles stacked kld in 0.00085711479187
+calculated the histogram stacked kld in 0.000594854354858
+calculated the samples stacked kld in 0.000599145889282
+calculated the quantiles stacked moments in 0.000240802764893
+calculated the quantiles stacked moments in 0.000664949417114
+calculated the quantiles stacked moments in 0.000977993011475
+calculated the quantiles stacked moments in 0.00132584571838
+calculated the histogram stacked moments in 0.00029993057251
+calculated the histogram stacked moments in 0.000585079193115
+calculated the histogram stacked moments in 0.000874042510986
+calculated the histogram stacked moments in 0.00120496749878
+calculated the samples stacked moments in 0.000239849090576
+calculated the samples stacked moments in 0.000517845153809
+calculated the samples stacked moments in 0.000797033309937
+calculated the samples stacked moments in 0.00112199783325
+calculated the truth stacked moments in 0.000216007232666
+calculated the truth stacked moments in 0.000493049621582
+calculated the truth stacked moments in 0.000772953033447
+calculated the truth stacked moments in 0.0010929107666
+FINISHED mg10 #2 with 100 in 26.3846879005
+FINISHED mg10 #2 in 114.395443916
+FINISHED mg10 in 114.39635396
+FINISHED mg in 137.116107941
+FINISHED everything in 265.638630867
 

@@ -13159,36 +13630,75 @@

-
In [23]:
+
In [26]:
+
+
+
floats = [3, 10, 30, 100]
+sizes = [10]#[10, 100, 1000]
+names = dataset_info.keys()
+instantiations = range(2, 3)#0)
+
+all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]
+
+ +
+
+
+ +

+
+
+
In [27]:
-
for name in names:
+
# comment out for NERSC
+# run twice to match axis limits
+
+for name in names:
     for size in sizes:
-        path = os.path.join(name, str(size))
         for i in instantiations:
-            
-            plot = plot_examples(size, name, bonus='_original_('+str(i)+')')
-        
-            plot = plot_examples(size, name, bonus='_post-fit_('+str(i)+')')
-            
-            for n_floats_use in floats:
-            
+            top_bonusdict = {}
+            bo = '_original'+str(i)
+#             plot = plot_examples(size, name, bonus=bo)
+            top_bonusdict[bo] = ['-', 0.25]
+            bp = '_postfit'+str(i)
+#             plot = plot_examples(size, name, bonus=bp)
+            top_bonusdict[bp] = ['-', 0.5]
+            for n in range(len(floats)):
+                bonusdict = top_bonusdict.copy()
+                n_floats_use = floats[n]
                 for f in formats:
-                    fname = '_'+str(n_floats_use)+f+'_('+str(i)+')'
-                    plot = plot_examples(size, name, bonus=fname)
-                plot = plot_individual(size, name, n_floats_use, i)
-            
+                    fname = str(n_floats_use)+f+str(i)
+#                     plot = plot_examples(size, name, bonus=fname)
+                    bonusdict[fname] = [styles[f], 0.5]
+                plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)
+                plot = plot_individual_kld(size, name, n_floats_use, i)
                 plot = plot_estimators(size, name, n_floats_use, i)
-            
         plot = plot_pz_metrics(name, size)
-        
-        plot = plot_nz_metrics(name, size)
+        plot = plot_pz_delta_moments(name, size)
+        plot = plot_nz_klds(name, size)
+        plot = plot_nz_moments(name, size)
 
+
+
+ + +
+
+
/home/aimalz/.local/lib/python2.7/site-packages/matplotlib/axes/_axes.py:6198: RuntimeWarning: invalid value encountered in true_divide
+  m = (m.astype(float) / db) / m.sum()
+
+
+
+ +
+
+
diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 06299f7f..79b534ea 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -323,20 +323,15 @@ " inits[f][ff] = None\n", " \n", " qstart = timeit.default_timer()\n", - "# print('performing quantization')\n", " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False)\n", - " print('finished quantization in '+str(timeit.default_timer() - qstart))\n", + " print('finished making in '+str(timeit.default_timer() - qstart))\n", " hstart = timeit.default_timer()\n", - "# print('performing histogramization')\n", " inits['histogram']['histogram'] = Eh.histogramize(N=N_floats, binrange=zlim, vb=False)\n", " print('finished histogramization in '+str(timeit.default_timer() - hstart))\n", " sstart = timeit.default_timer()\n", - "# print('performing sampling')\n", " inits['samples']['samples'] = Es.sample(samps=N_floats, vb=False)\n", " print('finished sampling in '+str(timeit.default_timer() - sstart))\n", " \n", - "# print('making the approximate ensembles')\n", - "# start = timeit.default_timer()\n", " Eo = {}\n", " for f in formats:\n", " fstart = timeit.default_timer()\n", @@ -354,9 +349,7 @@ " info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1]\n", " hickle.dump(info, filename)\n", " print('made '+f+' ensemble in '+str(timeit.default_timer()-fstart))\n", - "# print('made all approximate ensembles in '+str(timeit.default_timer() - start))\n", " \n", - "# print('calculating the individual metrics')\n", " metric_start = timeit.default_timer()\n", " inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus)\n", " with open(inloc+'.hkl', 'r') as infilename:\n", @@ -365,7 +358,6 @@ " \n", " for key in Eo.keys():\n", " key_start = timeit.default_timer()\n", - "# print('starting '+key)\n", " klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z)\n", " samp_metric = qp.PDF(samples=klds[key])\n", " gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], \n", @@ -385,7 +377,6 @@ " delta_moment = (new_moment - pz_moments['truth'][n]) / pz_moments['truth'][n]\n", " pz_moment_deltas[key].append(delta_moment)\n", " print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start))\n", - "# print('calculated the individual metrics in '+str(timeit.default_timer() - metric_start))\n", "\n", " loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", @@ -399,7 +390,11 @@ " with open(outloc+'.hkl', 'w') as outfilename:\n", " hickle.dump(pz_moments, outfilename)\n", " \n", - " return(Eo, klds, kld_moments, pz_moments, pz_moment_deltas)" + " save_moments(name, size, n_floats_use, kld_moments, 'pz_kld_moments')\n", + " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", + " save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", + " \n", + " return(Eo)#, klds, kld_moments, pz_moments, pz_moment_deltas)" ] }, { @@ -411,7 +406,6 @@ "outputs": [], "source": [ "def plot_all_examples(name, size, N_floats, init, bonus={}):\n", - " #bonus is now a dict of all relevant bonus vals and linestyles\n", " \n", " fig, ax = plt.subplots()\n", " lines = []\n", @@ -586,6 +580,7 @@ " vb=False)[key])\n", " stacks[key] = stacked_pdfs[key].evaluate(z_grid, using='gridded', norm=True, vb=False)[1]\n", " print('stacked '+key+ ' in '+str(timeit.default_timer()-start))\n", + " \n", " stack_start = timeit.default_timer()\n", " stacked_pdfs['truth'] = qp.PDF(gridded=E0.stack(z_grid, using='truth', \n", " vb=False)['truth'])\n", @@ -594,27 +589,34 @@ " print('stacked truth in '+str(timeit.default_timer() - stack_start))\n", " \n", "# print('calculating the metrics')\n", - " metric_start = timeit.default_timer()\n", - " klds, moments = {}, {}\n", - " moments['truth'] = []\n", - " for n in range(n_moments_use):\n", - " moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, \n", - " limits=zlim, \n", - " dx=delta_z, \n", - " vb=False))\n", - " print('calculated the true moments in '+str(timeit.default_timer() - metric_start))\n", + "# metric_start = timeit.default_timer()\n", + "# for n in range(n_moments_use):\n", + "# moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, \n", + "# limits=zlim, \n", + "# dx=delta_z, \n", + "# vb=False))\n", + "# print('calculated the true moments in '+str(timeit.default_timer() - metric_start))\n", + " \n", + " klds = {}\n", " for key in formats:\n", - " metric_start = timeit.default_timer()\n", + " kld_start = timeit.default_timer()\n", " klds[key] = qp.utils.calculate_kl_divergence(stacked_pdfs['truth'],\n", " stacked_pdfs[key], \n", " limits=zlim, dx=delta_z)\n", + " print('calculated the '+key+' stacked kld in '+str(timeit.default_timer() - kld_start))\n", + " save_nz_metrics(name, size, n_floats_use, klds, 'nz_klds')\n", + " \n", + " moments = {}\n", + " for key in formats_plus:\n", + " moment_start = timeit.default_timer()\n", " moments[key] = []\n", " for n in range(n_moments_use):\n", " moments[key].append(qp.utils.calculate_moment(stacked_pdfs[key], n, \n", " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", - " print('calculated the '+key+' stacked kld and moments in '+str(timeit.default_timer() - metric_start))\n", + " print('calculated the '+key+' stacked moments in '+str(timeit.default_timer() - moment_start))\n", + " save_moments(name, size, n_floats_use, moments, 'nz_moments') \n", " \n", " path = os.path.join(dataset_key, str(E0.n_pdfs))\n", " loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i))\n", @@ -626,7 +628,7 @@ " info['moments'] = moments\n", " hickle.dump(info, filename)\n", " \n", - " return(stacked_pdfs, klds, moments)" + " return(stacked_pdfs)" ] }, { @@ -1294,6 +1296,10 @@ "styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'}\n", "stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'}\n", "\n", + "formats_plus = ['quantiles', 'histogram', 'samples', 'truth']\n", + "colors_plus = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen', 'truth':'black'}\n", + "styles_plus = {'quantiles': '--', 'histogram': ':', 'samples': '-.', 'truth': '-'}\n", + "\n", "iqr_min = [3.5]\n", "iqr_max = [delta]\n", "modes_max = [0]\n", @@ -1323,9 +1329,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [100]#[10, 100, 1000]\n", + "sizes = [10]#[10, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 10)#0)\n", + "instantiations = range(2, 3)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1343,7 +1349,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -1394,25 +1400,17 @@ " float_start = timeit.default_timer()\n", " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - " (ensembles, pz_klds, metric_moments, pz_moments, pz_moment_deltas) = analyze_individual(catalog, \n", - " z_grid,#dataset_info[name]['metric_z_grid'], \n", - " n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + " ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", - " for f in formats:\n", - " fname = str(n_floats_use)+f+str(i)\n", + "# for f in formats:\n", + "# fname = str(n_floats_use)+f+str(i)\n", "# plot = plot_examples(size, name, bonus=fname)\n", "# bonusdict[fname] = [styles[f], 0.5]\n", "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", - " save_moments(name, size, n_floats_use, metric_moments, 'pz_kld_moments')\n", - " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", - " save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", " \n", - " (stack_evals, nz_klds, nz_moments) = analyze_stacked(catalog, ensembles, z_grid,#dataset_info[name]['metric_z_grid'], \n", - " n_floats_use, name, i=i)\n", + " stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", - " save_nz_metrics(name, size, n_floats_use, nz_klds, 'nz_klds')\n", - " save_moments(name, size, n_floats_use, nz_moments, 'nz_moments')\n", " \n", " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", @@ -1431,7 +1429,23 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Remake the plots to share axes." + "Remake the plots to share axes, enabling combination of runs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "floats = [3, 10, 30, 100]\n", + "sizes = [10]#[10, 100, 1000]\n", + "names = dataset_info.keys()\n", + "instantiations = range(2, 3)#0)\n", + "\n", + "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] }, { @@ -1450,17 +1464,17 @@ " for i in instantiations:\n", " top_bonusdict = {}\n", " bo = '_original'+str(i)\n", - " plot = plot_examples(size, name, bonus=bo)\n", + "# plot = plot_examples(size, name, bonus=bo)\n", " top_bonusdict[bo] = ['-', 0.25]\n", " bp = '_postfit'+str(i)\n", - " plot = plot_examples(size, name, bonus=bp)\n", + "# plot = plot_examples(size, name, bonus=bp)\n", " top_bonusdict[bp] = ['-', 0.5]\n", " for n in range(len(floats)):\n", " bonusdict = top_bonusdict.copy()\n", " n_floats_use = floats[n]\n", " for f in formats:\n", " fname = str(n_floats_use)+f+str(i)\n", - " plot = plot_examples(size, name, bonus=fname)\n", + "# plot = plot_examples(size, name, bonus=fname)\n", " bonusdict[fname] = [styles[f], 0.5]\n", " plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", " plot = plot_individual_kld(size, name, n_floats_use, i)\n", From d5449f23b11432bdc8ff85ce09d72c9fce0bde8c Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 31 Aug 2017 23:25:07 -0700 Subject: [PATCH 56/96] trying to make it faster, might have to revert if this does not work --- qp/ensemble.py | 72 +++++++++++++++++++++++--------- qp/utils.py | 110 ++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 148 insertions(+), 34 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 989a1a59..1ed0b24c 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -100,9 +100,9 @@ def __init__(self, N, truth=None, quantiles=None, histogram=None, gridded=None, else: self.histogram = [(histogram[0], histogram[1][i]) for i in self.pdf_range] if gridded is None: - self.gridded = [None] * N + self.gridded = (None, [None] * N) else: - self.gridded = [(gridded[0], gridded[1][i]) for i in self.pdf_range] + self.gridded = (None, [(gridded[0], gridded[1][i]) for i in self.pdf_range]) self.mix_mod = None self.evaluated = None @@ -122,7 +122,7 @@ def make_pdfs_helper(i): # logfile.write('making pdf '+str(i)+'\n') return qp.PDF(truth=self.truth[i], quantiles=self.quantiles[i], histogram=self.histogram[i], - gridded=self.gridded[i], samples=self.samples[i], limits=self.limits, + gridded=self.gridded[-1][i], samples=self.samples[i], limits=self.limits, scheme=self.scheme, vb=False) start_time = timeit.default_timer() @@ -279,9 +279,8 @@ def evaluate(self, loc, using=None, norm=False, vb=True): Returns ------- - vals: ndarray, ndarray, float - the values of the PDFs (or their approximations) at the requested - location(s), of shape (npdfs, nlocs) + self.gridded: tuple(string, tuple(ndarray, ndarray, float)) + tuple of string and tuple of grid and values of the PDFs (or their approximations) at the requested location(s), of shape (npdfs, nlocs) """ def evaluate_helper(i): # with open(self.logfilename, 'wb') as logfile: @@ -289,9 +288,9 @@ def evaluate_helper(i): return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) self.gridded = self.pool.map(evaluate_helper, self.pdf_range) self.gridded = np.swapaxes(np.array(self.gridded), 0, 1) - self.gridded = (self.gridded[0][0], self.gridded[1]) + self.gridded = (using, (self.gridded[0][0], self.gridded[1])) - return self.gridded + return self.gridded[-1] def integrate(self, limits, using, dx=0.001): """ @@ -340,15 +339,26 @@ def moment(self, N, using=None, limits=None, dx=0.01, vb=False): moments: numpy.ndarray, float moment values of each PDF under the using approximation or truth """ - def moment_helper(i): - return u.calculate_moment(self.pdfs[i], N, using=using, limits=limits, dx=dx, vb=vb) + D = int((limits[-1] - limits[0]) / dx) + grid = np.linspace(limits[0], limits[1], D) + dx = (limits[-1] - limits[0]) / (D - 1) + grid_to_N = grid ** N + + if self.gridded[0] == using and np.array_equal(self.gridded[-1][0], grid): + if vb: print('taking a shortcut') + def moment_helper(i): + return u.quick_moment(self.gridded[-1][-1][i], grid_to_N, dx) + else: + def moment_helper(i): + p_eval = self.pdfs[i].evaluate(grid, using=using, vb=vb)[1] + return u.quick_moment(p_eval, grid_to_N, dx) moments = self.pool.map(moment_helper, self.pdf_range) moments = np.array(moments) return moments - def kld(self, using=None, limits=None, dx=0.01): + def kld(self, using=None, limits=None, dx=0.01, vb=False): """ Calculates the KLD for each PDF in the ensemble @@ -360,6 +370,8 @@ def kld(self, using=None, limits=None, dx=0.01): endpoints of integration interval in which to calculate KLD dx: float resolution of integration grid + vb: boolean + print progress to stdout? Returns ------- @@ -396,10 +408,19 @@ def Q_func(pdf): print(using + ' not available; try a different parametrization.') return - def kld_helper(i): - P = P_func(self.pdfs[i]) - Q = Q_func(self.pdfs[i]) - return u.calculate_kl_divergence(P, Q, limits=limits, dx=dx) + D = int((limits[-1] - limits[0]) / dx) + grid = np.linspace(limits[0], limits[1], D) + dx = (limits[-1] - limits[0]) / (D - 1) + + if self.gridded[0] == using and np.array_equal(self.gridded[-1][0], grid): + if vb: print('taking a shortcut') + def kld_helper(i): + return u.quick_kl_divergence(self.gridded[-1][-1][i], grid, dx=dx) + else: + def kld_helper(i): + P_eval = P_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] + Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] + return u.quick_kl_divergence(P_eval, Q_eval, dx=dx) klds = self.pool.map(kld_helper, self.pdf_range) @@ -407,7 +428,7 @@ def kld_helper(i): return klds - def rmse(self, using=None, limits=None, dx=0.01): + def rmse(self, using=None, limits=None, dx=0.01, vb=False): """ Calculates the RMSE for each PDF in the ensemble @@ -419,6 +440,8 @@ def rmse(self, using=None, limits=None, dx=0.01): endpoints of integration interval in which to calculate RMSE dx: float resolution of integration grid + vb: boolean + print progress to stdout? Returns ------- @@ -451,10 +474,19 @@ def Q_func(pdfs): print(using + ' not available; try a different parametrization.') return - def rmse_helper(i): - P = P_func(pdfs[i]) - Q = Q_func(pdfs[i]) - return utils.calculate_rmse(P, Q, limits=limits, dx=dx) + D = int((limits[-1] - limits[0]) / dx) + grid = np.linspace(limits[0], limits[1], D) + dx = (limits[-1] - limits[0]) / (D - 1) + + if self.gridded[0] == using and np.array_equal(self.gridded[-1][0], grid): + if vb: print('taking a shortcut') + def rmse_helper(i): + return u.quick_rmse(self.gridded[-1][-1][i], grid, dx=dx) + else: + def rmse_helper(i): + P_eval = P_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] + Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] + return u.quick_rmse(P_eval, Q_eval, dx=dx) rmses = self.pool.map(rmse_helper, self.pdf_range) diff --git a/qp/utils.py b/qp/utils.py index 8119a8d3..9efcaa33 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -65,7 +65,7 @@ def normalize_integral(in_data, vb=False): norm = np.dot(dy, dx) y = y / norm if vb: - print('almost normalized integrals') + # print('almost normalized integrals') dy = (y[1:] + y[:-1]) / 2. if not np.isclose(np.dot(dy, dx), 1.): print('broken integral = '+str(np.dot(dy, dx))) @@ -246,7 +246,7 @@ def evaluate_samples(x): def calculate_moment(p, N, using=None, limits=None, dx=0.01, vb=False): """ - Calculates moments of a distribution + Calculates a moment of a qp.PDF object Parameters ---------- @@ -258,29 +258,56 @@ def calculate_moment(p, N, using=None, limits=None, dx=0.01, vb=False): endpoints of integration interval over which to calculate moments dx: float resolution of integration grid + vb: Boolean + print progress to stdout? Returns ------- M: float - values of the moment + value of the moment """ if limits is None: limits = p.limits if using is None: using = p.first # Make a grid from the limits and resolution - grid = np.arange(limits[0], limits[1], dx) - grid_to_N = grid ** N + d = int((limits[-1] - limits[0]) / dx) + grid = np.linspace(limits[0], limits[1], d) + dx = (limits[-1] - limits[0]) / (d - 1) # Evaluate the functions on the grid pe = p.evaluate(grid, using=using, vb=vb)[1] # pe = normalize_gridded(pe)[1] # calculate the moment - M = dx * np.dot(grid_to_N, pe) + grid_to_N = grid ** N + M = quick_moment(pe, grid_to_N, dx) + return M + +def quick_moment(p_eval, grid_to_N, dx): + """ + Calculates a moment of an evaluated PDF + + Parameters + ---------- + p_eval: numpy.ndarray, float + the values of a probability distribution + grid: numpy.ndarray, float + the grid upon which p_eval was evaluated + dx: float + the difference between regular grid points + N: int + order of the moment to be calculated + + Returns + ------- + M: float + value of the moment + """ + M = np.dot(grid_to_N, p_eval) * dx return M def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): """ - Calculates the Kullback-Leibler Divergence between two PDFs. + Calculates the Kullback-Leibler Divergence between two qp.PDF objects. Parameters ---------- @@ -306,7 +333,9 @@ def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): TO DO: have this take number of points not dx! """ # Make a grid from the limits and resolution - grid = np.arange(limits[0], limits[1], dx) + N = int((limits[-1] - limits[0]) / dx) + grid = np.linspace(limits[0], limits[1], N) + dx = (limits[-1] - limits[0]) / (N - 1) # Evaluate the functions on the grid and normalize pe = p.evaluate(grid, vb=vb, norm=True) pn = pe[1] @@ -318,19 +347,49 @@ def calculate_kl_divergence(p, q, limits=lims, dx=0.01, vb=False): #denominator = max(np.sum(qe), epsilon) # qn = qe / np.sum(qe)#denominator # Compute the log of the normalized PDFs - logquotient = safelog(pn / qn) + # logquotient = safelog(pn / qn) # logp = safelog(pn) # logq = safelog(qn) # Calculate the KLD from q to p - Dpq = np.dot(pn * logquotient, np.ones(len(grid)) * dx) + Dpq = quick_kl_divergence(pn, qn, dx=dx)# np.dot(pn * logquotient, np.ones(len(grid)) * dx) if Dpq < 0.: print('broken KLD: '+str((Dpq, pn, qn, dx))) Dpq = epsilon return Dpq +def quick_kl_divergence(p_eval, q_eval, dx=0.01): + """ + Calculates the Kullback-Leibler Divergence between two evaluations of PDFs. + + Parameters + ---------- + p_eval: numpy.ndarray, float + evaluations of probability distribution whose distance _from_ `q` will be calculated + q_eval: numpy.ndarray, float + evaluations of probability distribution whose distance _to_ `p` will be calculated. + dx: float + resolution of integration grid + + Returns + ------- + Dpq: float + the value of the Kullback-Leibler Divergence from `q` to `p` + + Notes + ----- + TO DO: change this to calculate_kld + TO DO: have this take number of points not dx! + """ + logquotient = safelog(p_eval / q_eval) + # logp = safelog(pn) + # logq = safelog(qn) + # Calculate the KLD from q to p + Dpq = dx * np.dot(p_eval, logquotient) + return Dpq + def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): """ - Calculates the Root Mean Square Error between two PDFs. + Calculates the Root Mean Square Error between two qp.PDF objects. Parameters ---------- @@ -351,11 +410,34 @@ def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): the value of the RMS error between `q` and `p` """ # Make a grid from the limits and resolution - npoints = int((limits[1] - limits[0]) / dx) - grid = np.linspace(limits[0], limits[1], npoints) + N = int((limits[-1] - limits[0]) / dx) + grid = np.linspace(limits[0], limits[1], N) + dx = (limits[-1] - limits[0]) / (N - 1) # Evaluate the functions on the grid pe = p.evaluate(grid, vb=vb)[1] qe = q.evaluate(grid, vb=vb)[1] # Calculate the RMS between p and q - rms = np.sqrt(np.sum((pe - qe) ** 2) / npoints) + rms = quick_rmse(pe, qe, dx)# np.sqrt(dx * np.sum((pe - qe) ** 2)) + return rms + +def quick_rmse(p_eval, q_eval, dx=0.01): + """ + Calculates the Root Mean Square Error between two evaluations of PDFs. + + Parameters + ---------- + p_eval: numpy.ndarray, float + evaluation of probability distribution function whose distance between its truth and the approximation of `q` will be calculated. + q_eval: numpy.ndarray, float + evaluation of probability distribution function whose distance between its approximation and the truth of `p` will be calculated. + dx: float + resolution of integration grid + + Returns + ------- + rms: float + the value of the RMS error between `q` and `p` + """ + # Calculate the RMS between p and q + rms = np.sqrt(dx * np.sum((p_eval - q_eval) ** 2)) return rms From 586a6a095c9b3bec5b9e9ddaf27bebae9b356aec Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 02:28:49 -0700 Subject: [PATCH 57/96] now identifying when quantile interpolation is bogus, replacing with simple linear interpolation --- qp/pdf.py | 33 +++++++++++++++++++++------------ qp/utils.py | 6 ++++-- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 0346503d..880d8a88 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -447,7 +447,7 @@ def gmm(x, *args): if vb: statement = '' for c in comp_range: - statement += str(weights[c])+'$\cdot\mathcal{N}($'+str(means[c])+r','+str(stdevs[c])+r')\n' + statement += str(weights[c])+r'$\cdot\mathcal{N}($'+str(means[c])+r','+str(stdevs[c])+r')\n' print(statement) self.mix_mod = qp.composite(components) return self.mix_mod @@ -601,26 +601,31 @@ def interpolate(self, using=None, vb=True): # z = u # q = q[i] inside = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative() + [x_crit_lo, x_crit_hi] = [self.quantiles[1][0], self.quantiles[1][-1]] + (y_crit_lo, y_crit_hi) = inside([x_crit_lo, x_crit_hi]) def quantile_interpolator(xf): yf = np.zeros(np.shape(xf)) - + if vb: + print('fit at '+str(xf)) in_inds = ((xf >= self.quantiles[1][0]) & (xf <= self.quantiles[1][-1])).nonzero()[0] lo_inds = ((xf < self.quantiles[1][0]) & (xf >= z[0])).nonzero()[0] hi_inds = ((xf > self.quantiles[1][-1]) & (xf <= z[-1])).nonzero()[0] - # if vb: - # print('divided into '+str((lo_inds, in_inds, hi_inds))) + if vb: + print('divided into '+str((lo_inds, in_inds, hi_inds))) yf[in_inds] = inside(xf[in_inds]) - # if vb: - # print('evaluated '+str((x, y))) - tan_lo = yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) + if vb: + print('evaluated '+str((xf, yf))) + if np.any(yf < default_eps): + return spi.interp1d(x, y, kind='linear', bounds_error=False, fill_value=default_eps)(xf) + tan_lo = y_crit_lo / (x_crit_lo - z[0]) yf[lo_inds] = tan_lo * (xf[lo_inds] - z[0])# yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) - # if vb: - # print('evaluated '+str((x, y))) - tan_hi = yf[in_inds[-1]] / (z[-1] - xf[in_inds[-1]]) + if vb: + print('evaluated '+str((xf, yf))) + tan_hi = y_crit_hi / (z[-1] - x_crit_hi) yf[hi_inds] = tan_hi * (z[-1] - xf[hi_inds])# yf[in_inds[-1]] * (xf[hi_inds] - z[-1]) / (xf[in_inds[-1]] - z[-1]) - # if vb: - # print('evaluated '+str((x, y))) + if vb: + print('evaluated '+str((xf, yf))) return(yf) # if vb: # print(tck) @@ -787,6 +792,7 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): styles['histogram'] = ':'#(0,(3,6)) styles['samples'] = '-.'#(0,(1,2)) + x = np.linspace(self.limits[0], self.limits[-1], 100) if self.truth is not None: min_x = self.truth.ppf(np.array([0.001])) max_x = self.truth.ppf(np.array([0.999])) @@ -809,10 +815,13 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): if self.quantiles is not None: (z, p) = self.evaluate(self.quantiles[1], using='quantiles', vb=vb) + print('first: '+str((z,p))) (x, y) = qp.utils.normalize_quantiles(self.quantiles, (z, p)) + print('second: '+str((x,y))) min_x = min(min(x), extrema[0]) max_x = max(max(x), extrema[-1]) x = np.linspace(min_x, max_x, 100) + print('third: '+str(x)) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') plt.scatter(self.quantiles[1], np.zeros(np.shape(self.quantiles[1])), color=colors['quantiles'], marker='|', s=100, label='Quantiles', alpha=0.75) # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') diff --git a/qp/utils.py b/qp/utils.py index 9efcaa33..f330a8a8 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -156,10 +156,12 @@ def normalize_quantiles((q, z), (x, y), vb=True): # if not np.all(nq>0.)... xmin = z[0] - 2 * (dq[0] + dq[1] / 2. - y[0] * (x[0] - z[0])) / y[0] xmax = z[-1] + 2 * (dq[-1] + dq[-2]/2. - y[-1] * (z[-1] - x[-1])) / y[-1] + if vb: print('x before: '+str(x)) x = np.insert(x, 0, xmin) x = np.append(x, xmax) - y = np.insert(y, 0, 0.) - y = np.append(y, 0.) + if vb: print('x after: '+str(x)) + y = np.insert(y, 0, epsilon) + y = np.append(y, epsilon) return(x, y) def evaluate_quantiles((qs, xs), vb=True): From 14cbb4811e0841ad16bc55813ea72b9ddb61e6a1 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 12:06:12 -0700 Subject: [PATCH 58/96] adding backup interpolators to debug errors from scipy.interpolate --- qp/pdf.py | 58 +++++++++++++++++++++++++++++------------------------ qp/utils.py | 26 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 26 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 880d8a88..ab465388 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -286,6 +286,10 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): # if vb: print('about to interpolate the CDF: '+str((icdf, grid))) # if vb: print('made the interpolator') #quantiles self.truth.ppf(quantpoints, ivals=grid[locs]) + + # alternate = spi.interp1d(x, y, kind='linear', bounds_error=False, fill_value=default_eps) + # backup = qp.utils.make_kludge_interpolator((x, y), outside=default_eps) + quantiles = np.flip(quantpoints, axis=0) try: while (order>0) and (not np.array_equal(quantiles, np.sort(quantiles))): @@ -582,50 +586,55 @@ def interpolate(self, using=None, vb=True): if vb: print('evaluated quantile PDF: '+str((x, y))) (x, y) = qp.utils.normalize_quantiles(self.quantiles, (x, y), vb=vb) if vb: print('complete evaluated quantile PDF: '+str((x, y))) - # tan_lo = y[1] / (x[1] - x[0]) - # tan_hi = y[-2] / (x[-1] - x[-2]) - # cdf_interpolator = spi.interp1d(self.quantiles[1], self.quantiles[0]) - # interpolator = spi.interp1d(x, y, kind=len(x), bounds_error=False, fill_value=default_eps) - # limits = (min(x), max(x)) + + alternate = spi.interp1d(x, y, kind='linear', bounds_error=False, fill_value=default_eps) + backup = qp.utils.make_kludge_interpolator((x, y), outside=default_eps) + z = np.insert(self.quantiles[1], 0, min(x)) z = np.append(z, max(x)) q = np.insert(self.quantiles[0], 0, 0.) q = np.append(q, 1.) - # if vb: - # if not np.all(np.unique(z)==z): - # print('z='+str(z)) - # if not np.all(np.unique(q)==q): - # print('q='+str(q)) - # assert(np.all(q[1:]-q[:-1] == np.array([b.integral(z[i], z[i+1])) for i in range(0, len(z)-1)])) - # u, i = np.unique(z, return_index=True) - # z = u - # q = q[i] + inside = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative() [x_crit_lo, x_crit_hi] = [self.quantiles[1][0], self.quantiles[1][-1]] (y_crit_lo, y_crit_hi) = inside([x_crit_lo, x_crit_hi]) def quantile_interpolator(xf): - yf = np.zeros(np.shape(xf)) - if vb: - print('fit at '+str(xf)) + yf = np.ones(np.shape(xf)) * default_eps in_inds = ((xf >= self.quantiles[1][0]) & (xf <= self.quantiles[1][-1])).nonzero()[0] lo_inds = ((xf < self.quantiles[1][0]) & (xf >= z[0])).nonzero()[0] hi_inds = ((xf > self.quantiles[1][-1]) & (xf <= z[-1])).nonzero()[0] if vb: print('divided into '+str((lo_inds, in_inds, hi_inds))) - yf[in_inds] = inside(xf[in_inds]) + + try: + yf[in_inds] = inside(xf[in_inds]) + assert(np.all(yf >= default_eps)) + if vb: + print 'Created a k=`'+str(order)+'`B-spline interpolator for the '+using+' parametrization.' + except AssertionError: + if vb: print('spline interpolation failed with '+str(yf)) + try: + yf[in_inds] = alternate(xf[in_inds]) + assert(np.all(yf >= default_eps)) + if vb: + print 'Created a linear interpolator for the '+using+' parametrization.' + except AssertionError: + yf[in_inds] = backup(xf[in_inds]) + if vb: + print 'Doing linear interpolation by hand for the '+using+' parametrization.' if vb: - print('evaluated '+str((xf, yf))) - if np.any(yf < default_eps): - return spi.interp1d(x, y, kind='linear', bounds_error=False, fill_value=default_eps)(xf) + print('evaluated inside '+str((xf, yf))) + tan_lo = y_crit_lo / (x_crit_lo - z[0]) yf[lo_inds] = tan_lo * (xf[lo_inds] - z[0])# yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) if vb: - print('evaluated '+str((xf, yf))) + print('evaluated below '+str((xf, yf))) + tan_hi = y_crit_hi / (z[-1] - x_crit_hi) yf[hi_inds] = tan_hi * (z[-1] - xf[hi_inds])# yf[in_inds[-1]] * (xf[hi_inds] - z[-1]) / (xf[in_inds[-1]] - z[-1]) if vb: - print('evaluated '+str((xf, yf))) + print('evaluated above '+str((xf, yf))) return(yf) # if vb: # print(tck) @@ -638,9 +647,6 @@ def quantile_interpolator(xf): # return(yf) interpolator = quantile_interpolator - if vb: - print 'Created a k=`'+str(order)+'`B-spline interpolator for the '+using+' parametrization.' - if using == 'histogram': # First find the histogram if none exists: if self.histogram is None: diff --git a/qp/utils.py b/qp/utils.py index f330a8a8..c6ae4790 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -443,3 +443,29 @@ def quick_rmse(p_eval, q_eval, dx=0.01): # Calculate the RMS between p and q rms = np.sqrt(dx * np.sum((p_eval - q_eval) ** 2)) return rms + +def make_kludge_interpolator((x, y), outside=epsilon): + """ + Linear interpolation by hand for debugging + + Parameters + ---------- + (x, y): tuple, numpy.ndarray, float + where interpolator is fit + outside: float + value to use outside interpolation range + + Returns + ------- + kludge_interpolator: function + evaluates linear interpolant based on input points + """ + dx = x[1:] - x[:-1] + dy = y[1:] - y[:-1] + def kludge_interpolator(xf): + yf = np.ones(np.shape(xf)) * epsilon + for i in range(len(x)): + inside = ((xf >= x[i]) & (xf <= x[i+1])).nonzero()[0] + yf[inside] = y[i] + (y[i+1] - y[i]) * (xf[inside] - x[i]) / dx[i] + return yf + return kludge_interpolator From 47559b33c8fd3067c0db95e576a0c26470f2109e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 12:28:36 -0700 Subject: [PATCH 59/96] finally trying to get meaningful errors while multiprocessing --- qp/ensemble.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 1ed0b24c..52d65590 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -156,9 +156,12 @@ def sample(self, samps=100, infty=default_infty, using=None, vb=True): TODO: change syntax samps --> N """ def sample_helper(i): + try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('sampling pdf '+str(i)+'\n') - return self.pdfs[i].sample(N=samps, infty=infty, using=using, vb=False) + return self.pdfs[i].sample(N=samps, infty=infty, using=using, vb=False) + except Exception: + print('sampling failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.samples = self.pool.map(sample_helper, self.pdf_range) @@ -187,10 +190,13 @@ def quantize(self, quants=None, N=None, limits=None, vb=True): array of tuples of the CDF values and the quantiles for each PDF """ def quantize_helper(i): + try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('quantizing pdf '+str(i)+'\n') - return self.pdfs[i].quantize(quants=quants, + return self.pdfs[i].quantize(quants=quants, N=N, limits=None, vb=vb) + except Exception: + print('quantization failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.quantiles = self.pool.map(quantize_helper, self.pdf_range) self.quantiles = np.swapaxes(np.array(self.quantiles), 0, 1) @@ -220,10 +226,13 @@ def histogramize(self, binends=None, N=10, binrange=None, vb=True): of bins and values in bins """ def histogram_helper(i): + try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('histogramizing pdf '+str(i)+'\n') - return self.pdfs[i].histogramize(binends=binends, N=N, + return self.pdfs[i].histogramize(binends=binends, N=N, binrange=binrange, vb=False) + except Exception: + print('histogramization failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.histogram = self.pool.map(histogram_helper, self.pdf_range) self.histogram = np.swapaxes(np.array(self.histogram), 0, 1) @@ -254,9 +263,12 @@ def mix_mod_fit(self, comps=5, using=None, vb=True): Currently only supports mixture of Gaussians """ def mixmod_helper(i): + try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('fitting pdf '+str(i)+'\n') - return self.pdfs[i].mix_mod_fit(n_components=comps, using=using, vb=False) + return self.pdfs[i].mix_mod_fit(n_components=comps, using=using, vb=False) + except Exception: + print('mixture model fitting failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.mix_mod = self.pool.map(mixmod_helper, self.pdf_range) @@ -283,9 +295,12 @@ def evaluate(self, loc, using=None, norm=False, vb=True): tuple of string and tuple of grid and values of the PDFs (or their approximations) at the requested location(s), of shape (npdfs, nlocs) """ def evaluate_helper(i): + try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('evaluating pdf '+str(i)+'\n') - return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) + return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) + except Exception: + print('evaluation with '+using+' failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.gridded = self.pool.map(evaluate_helper, self.pdf_range) self.gridded = np.swapaxes(np.array(self.gridded), 0, 1) self.gridded = (using, (self.gridded[0][0], self.gridded[1])) @@ -311,7 +326,10 @@ def integrate(self, limits, using, dx=0.001): value of the integral """ def integrate_helper(i): - return self.pdfs[i].integrate(limits[i], using=using, dx=dx, vb=False) + try: + return self.pdfs[i].integrate(limits[i], using=using, dx=dx, vb=False) + except Exception: + print('integration failed on '+str(i)+' because '+str(sys.exc_info()[0])) integrals = self.pool.map(integrate_helper, self.pdf_range) From aaf8343f8f738c216f7977960b3409a99c331777 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 12:32:54 -0700 Subject: [PATCH 60/96] cleaning up --- .../research/analysis.ipynb | 177 +++++------------- 1 file changed, 49 insertions(+), 128 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 79b534ea..e23ef200 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -122,6 +122,16 @@ " n_gals_tot = len(pdfs)\n", " full_gal_range = range(n_gals_tot)\n", " subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)\n", + "# subset = [ 57600 , 43120 ,105513 ,57248 ,40234 ,107250 ,38378 ,33984, 72673, 106911,\n", + "# 91805, 83000, 8658 , 9984, 97785, 23027, 49612, 74898, 106982, 61605,\n", + "# 44211 , 5544 , 32449 ,20654 , 45407 , 43690 , 33845 , 77363 , 53987 , 41155,\n", + "# 54051 , 1444 ,40998, 14676 ,91165 ,35903, 104816 ,54936 ,32160 ,93933,\n", + "# 76463, 72831, 55070 , 94350, 54814, 86512 , 91118, 50748, 68710, 52281,\n", + "# 43858 , 72422 , 58668, 109372 , 89696 , 77889, 101423 , 42474 , 46621 , 2395,\n", + "# 62337 ,75694 ,44594 , 11597, 107998 , 5972 , 2714 ,89260 ,75634, 106566,\n", + "# 64632, 49209, 106069 ,12985 , 29423 ,4067 ,30978, 110406 ,3094 , 48595,\n", + "# 70112 , 17353 , 39413, 12309 , 6239, 104342, 46150 , 8503, 74413 , 1530,\n", + "# 79976 ,23691 ,54500 , 39030, 75758 , 52365 , 55391 ,78429 , 71343, 63804]\n", " print('randos for debugging: '+str(subset))\n", " pdfs_use = pdfs[subset]\n", " \n", @@ -324,7 +334,7 @@ " \n", " qstart = timeit.default_timer()\n", " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False)\n", - " print('finished making in '+str(timeit.default_timer() - qstart))\n", + " print('finished quantization in '+str(timeit.default_timer() - qstart))\n", " hstart = timeit.default_timer()\n", " inits['histogram']['histogram'] = Eh.histogramize(N=N_floats, binrange=zlim, vb=False)\n", " print('finished histogramization in '+str(timeit.default_timer() - hstart))\n", @@ -333,6 +343,14 @@ " print('finished sampling in '+str(timeit.default_timer() - sstart))\n", " \n", " Eo = {}\n", + " \n", + " metric_start = timeit.default_timer()\n", + " inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus)\n", + " with open(inloc+'.hkl', 'r') as infilename:\n", + " pz_moments = hickle.load(infilename)\n", + " \n", + " klds, metrics, kld_moments, pz_moment_deltas = {}, {}, {}, {}\n", + " \n", " for f in formats:\n", " fstart = timeit.default_timer()\n", " Eo[f] = qp.Ensemble(E.n_pdfs, truth=E.truth, \n", @@ -340,6 +358,7 @@ " histogram=inits[f]['histogram'],\n", " samples=inits[f]['samples'], \n", " limits=dataset_info[dataset_key]['z_lim'])\n", + " \n", " fbonus = str(N_floats)+f+str(i)\n", " loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+fbonus)\n", " with open(loc+'.hkl', 'w') as filename:\n", @@ -348,35 +367,38 @@ " info['z_grid'] = z_grid\n", " info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1]\n", " hickle.dump(info, filename)\n", + " \n", " print('made '+f+' ensemble in '+str(timeit.default_timer()-fstart))\n", - " \n", - " metric_start = timeit.default_timer()\n", - " inloc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+bonus)\n", - " with open(inloc+'.hkl', 'r') as infilename:\n", - " pz_moments = hickle.load(infilename)\n", - " pz_moment_deltas, klds, metrics, kld_moments = {}, {}, {}, {}\n", - " \n", - " for key in Eo.keys():\n", - " key_start = timeit.default_timer()\n", - " klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z)\n", + "\n", + " key = f\n", + " \n", + " fstart = timeit.default_timer()\n", + " klds[key] = Eo[key].kld(using=key, limits=zlim, dx=delta_z, vb=False)\n", + " print('calculated the '+key+' individual klds in '+str(timeit.default_timer() - fstart))\n", + " \n", + " fstart = timeit.default_timer()\n", + " kld_moments[key] = []\n", " samp_metric = qp.PDF(samples=klds[key])\n", " gmm_metric = samp_metric.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], \n", " using='samples', vb=False)\n", " metrics[key] = qp.PDF(truth=gmm_metric)\n", - " \n", - " pz_moment_deltas[key], pz_moments[key], kld_moments[key] = [], [], []\n", " for n in range(N_moments):\n", " kld_moments[key].append(qp.utils.calculate_moment(metrics[key], n,\n", " using='truth', \n", " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", + " print('calculated the '+key+' kld moments in '+str(timeit.default_timer() - fstart))\n", + " \n", + " pz_moment_deltas[key], pz_moments[key] = [], []\n", + " for n in range(N_moments):\n", + " start = timeit.default_timer()\n", " new_moment = Eo[key].moment(n, using=key, limits=zlim, \n", " dx=delta_z, vb=False)\n", " pz_moments[key].append(new_moment)\n", " delta_moment = (new_moment - pz_moments['truth'][n]) / pz_moments['truth'][n]\n", " pz_moment_deltas[key].append(delta_moment)\n", - " print('calculated the '+key+' individual moments, kld moments in '+str(timeit.default_timer() - key_start))\n", + " print('calculated the '+key+' individual moment '+str(n)+' in '+str(timeit.default_timer() - start))\n", "\n", " loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", @@ -475,81 +497,6 @@ " plt.close()" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# def plot_individual_moment(n_gals_use, dataset_key, N_floats, i):\n", - " \n", - "# path = os.path.join(dataset_key, str(n_gals_use))\n", - "# a = 1./len(formats) \n", - "# loc = os.path.join(path, 'pz_moments'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", - "# with open(loc+'.hkl', 'r') as filename:\n", - "# moments = hickle.load(filename)\n", - "# delta_moments = {}\n", - " \n", - "# plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", - "# for n in range(1, n_moments_use):\n", - "# ax = plt.subplot(n_moments_use, 1, n)\n", - "# ends = (min(moments['truth'][n]), max(moments['truth'][n]))\n", - "# for key in formats:\n", - "# ends = (min(ends[0], min(moments[key][n])), max(ends[-1], max(moments[key][n])))\n", - "# plot_bins = np.linspace(ends[0], ends[-1], 20)\n", - "# ax.hist([-100], color='k', alpha=a, histtype='stepfilled', edgecolor='k', label='truth', \n", - "# linestyle='-', ls='-')\n", - "# ax.hist(moments['truth'][n], bins=plot_bins, color='k', alpha=a, histtype='stepfilled', normed=True)\n", - "# ax.hist(moments['truth'][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle='-', alpha=a)\n", - "# for key in formats:\n", - "# ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - "# linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", - "# ax.hist(moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", - "# ax.hist(moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", - "# ax.legend()\n", - "# ax.set_ylabel('frequency', fontsize=14)\n", - "# ax.set_xlabel(moment_names[n], fontsize=14)\n", - "# ax.set_xlim(min(plot_bins), max(plot_bins))\n", - "# plt.suptitle(dataset_info[dataset_key]['name']+r' data moments with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - "# plt.tight_layout()\n", - "# plt.subplots_adjust(top=0.95)\n", - "# plt.savefig(loc+'.pdf', dpi=250)\n", - "# plt.close()\n", - " \n", - "# ngood = {}\n", - "# normarr = np.ones(n_gals_use)\n", - "# for key in formats:\n", - "# ngood[key] = np.zeros(n_moments_use)\n", - "# plt.figure(figsize=(5, 5 * (n_moments_use-1)))\n", - "# for n in range(1, n_moments_use):\n", - "# ax = plt.subplot(n_moments_use, 1, n)\n", - "# ends = (100., -100.)\n", - "# for key in formats:\n", - "# delta_moments[key] = (moments[key] - moments['truth']) / moments['truth']\n", - "# ngood[key][n] = np.sum(normarr[np.abs(delta_moments[key][n]) < 0.01]) / float(n_gals_use)\n", - "# ends = (min(ends[0], min(delta_moments[key][n])), max(ends[-1], max(delta_moments[key][n])))\n", - "# plot_bins = np.linspace(ends[0], ends[-1], 20)\n", - "# for key in formats:\n", - "# ax.hist([-100], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k', label=key, \n", - "# linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", - "# ax.hist(delta_moments[key][n], bins=plot_bins, color=colors[key], alpha=a, histtype='stepfilled', normed=True)\n", - "# ax.hist(delta_moments[key][n], bins=plot_bins, color='k', histtype='step', normed=True, linestyle=stepstyles[key], alpha=a, lw=2)\n", - "# ax.legend()\n", - "# ax.set_ylabel('frequency', fontsize=14)\n", - "# ax.set_xlabel(r'fractional error on '+moment_names[n], fontsize=14)\n", - "# ax.set_xlim(min(plot_bins), max(plot_bins))\n", - "# plt.tight_layout()\n", - "# plt.subplots_adjust(top=0.95)\n", - "# plt.suptitle(dataset_info[dataset_key]['name']+r' data moment fractional errors with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", - "# plt.savefig(loc+'_delta.pdf', dpi=250)\n", - "# plt.close()\n", - " \n", - "# #TO DO: move this calculation and saving out of this plot, then eliminate the plot!\n", - "# save_moments(dataset_key, n_gals_use, N_floats, ngood, 'pz_moment_deltas')" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -615,7 +562,7 @@ " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", - " print('calculated the '+key+' stacked moments in '+str(timeit.default_timer() - moment_start))\n", + " print('calculated the '+key+' stacked moments in '+str(timeit.default_timer() - moment_start))\n", " save_moments(name, size, n_floats_use, moments, 'nz_moments') \n", " \n", " path = os.path.join(dataset_key, str(E0.n_pdfs))\n", @@ -748,13 +695,7 @@ " loc = os.path.join(path, 'pz_kld_moments'+str(n_gals_use)+dataset_key)\n", " with open(loc+'.hkl', 'r') as pz_file:\n", " pz_stats = hickle.load(pz_file)\n", - "# if len(instantiations) == 10:\n", - "# for f in formats:\n", - "# for n in range(n_moments_use):\n", - "# if not np.shape(pz_stats[f][n]) == (4, 10):\n", - "# for s in range(len(pz_stats[f][n])):\n", - "# pz_stats[f][n][s] = np.array(np.array(pz_stats[f][n][s])[:10]).flatten()\n", - " \n", + " \n", " flat_floats = np.array(pz_stats['N_f']).flatten()\n", " in_x = np.log(flat_floats)\n", "\n", @@ -905,9 +846,7 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - "# print(str(np.shape(pz_stats[f][n]))+' should be n_floats * n_instantiations')\n", " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats\n", - "# print(str(np.shape(data_arr))+' should be n_instantiations * n_floats')\n", " data_arr = np.median(data_arr, axis=2) * 100.\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", @@ -1119,7 +1058,6 @@ " ax_n = ax\n", " for key in formats:\n", " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", - "# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)\n", " for n in range(1, n_moments_use):\n", " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", " n_factor = 0.1 * (n - 2)\n", @@ -1138,7 +1076,6 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - "# print('nz moments data shape '+str(nz_stats[f][n]))\n", " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", " mean = np.mean(data_arr, axis=0).flatten()\n", " std = np.std(data_arr, axis=0).flatten()\n", @@ -1149,17 +1086,6 @@ " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", " nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", - "# data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1))\n", - "# mean = np.mean(data_arr, axis=0).flatten()\n", - "# std = np.std(data_arr, axis=0).flatten()\n", - "# y_plus = mean + std\n", - "# y_minus = mean - std\n", - "# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - "# ax_n.plot(np.exp(in_x+n_factor), mean, linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, color='k', linewidth=0.5)\n", - "# ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color='k')\n", - "# nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", - "# nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", - "# ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))\n", " ax.set_xscale('log')\n", @@ -1178,7 +1104,6 @@ " ax_n = ax\n", " for key in formats:\n", " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", - "# ax.plot([-10], [0], color='k', label='original', linewidth=0.5, alpha=1.)\n", " for n in range(1, n_moments_use):\n", " n_factor = 0.1 * (n - 2)\n", " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", @@ -1197,15 +1122,9 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - "# print('nz moments data shape '+str(nz_stats[f][n]))\n", " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", - "# nz_moment_max[n-1].append(max(i))\n", - " data_arr = np.log(np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1))\n", - "# for i in data_arr:\n", - "# ax_n.plot(np.exp(in_x+n_factor), i, linestyle='-', marker=shapes[n], markersize=marksize, color='k', alpha=a)\n", - "# # ax_n.plot(np.exp(in_x+n_factor), np.log(nz_stats['truth'][n]), linestyle='-', marker=shapes[n], markersize=marksize, alpha=a, linewidth=0.5, color='k')\n", " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))\n", " ax.set_xscale('log')\n", @@ -1326,14 +1245,14 @@ }, "outputs": [], "source": [ - "#change all for NERSC\n", + "# #change all for NERSC\n", "\n", - "floats = [3, 10, 30, 100]\n", - "sizes = [10]#[10, 100, 1000]\n", - "names = dataset_info.keys()\n", - "instantiations = range(2, 3)#0)\n", + "# floats = [3, 10, 30, 100]\n", + "# sizes = [10]#[10, 100, 1000]\n", + "# names = ['ss']#dataset_info.keys()\n", + "# instantiations = range(2, 3)#0)\n", "\n", - "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" + "# all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] }, { @@ -1442,8 +1361,8 @@ "source": [ "floats = [3, 10, 30, 100]\n", "sizes = [10]#[10, 100, 1000]\n", - "names = dataset_info.keys()\n", - "instantiations = range(2, 3)#0)\n", + "names = ['ss']#dataset_info.keys()\n", + "instantiations = range(0, 3)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1508,7 +1427,9 @@ "collapsed": true }, "outputs": [], - "source": [] + "source": [ + "# indices = [ 59935, 44820, 26407, 84617, 98728, 35216, 73968, 105130, 844, 63892]" + ] } ], "metadata": { From 541d70d9ae4b36062ffcda1ab474cb613b99cbba Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 13:33:13 -0700 Subject: [PATCH 61/96] improving error messages --- qp/ensemble.py | 13 +++++++------ qp/pdf.py | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 52d65590..92d9428b 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -161,7 +161,7 @@ def sample_helper(i): # logfile.write('sampling pdf '+str(i)+'\n') return self.pdfs[i].sample(N=samps, infty=infty, using=using, vb=False) except Exception: - print('sampling failed on '+str(i)+' because '+str(sys.exc_info()[0])) + print('ERROR: sampling failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.samples = self.pool.map(sample_helper, self.pdf_range) @@ -196,7 +196,7 @@ def quantize_helper(i): return self.pdfs[i].quantize(quants=quants, N=N, limits=None, vb=vb) except Exception: - print('quantization failed on '+str(i)+' because '+str(sys.exc_info()[0])) + print('ERROR: quantization failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.quantiles = self.pool.map(quantize_helper, self.pdf_range) self.quantiles = np.swapaxes(np.array(self.quantiles), 0, 1) @@ -232,7 +232,7 @@ def histogram_helper(i): return self.pdfs[i].histogramize(binends=binends, N=N, binrange=binrange, vb=False) except Exception: - print('histogramization failed on '+str(i)+' because '+str(sys.exc_info()[0])) + print('ERROR: histogramization failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.histogram = self.pool.map(histogram_helper, self.pdf_range) self.histogram = np.swapaxes(np.array(self.histogram), 0, 1) @@ -268,7 +268,7 @@ def mixmod_helper(i): # logfile.write('fitting pdf '+str(i)+'\n') return self.pdfs[i].mix_mod_fit(n_components=comps, using=using, vb=False) except Exception: - print('mixture model fitting failed on '+str(i)+' because '+str(sys.exc_info()[0])) + print('ERROR: mixture model fitting failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.mix_mod = self.pool.map(mixmod_helper, self.pdf_range) @@ -300,7 +300,7 @@ def evaluate_helper(i): # logfile.write('evaluating pdf '+str(i)+'\n') return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) except Exception: - print('evaluation with '+using+' failed on '+str(i)+' because '+str(sys.exc_info()[0])) + print('ERROR: evaluation with '+using+' failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.gridded = self.pool.map(evaluate_helper, self.pdf_range) self.gridded = np.swapaxes(np.array(self.gridded), 0, 1) self.gridded = (using, (self.gridded[0][0], self.gridded[1])) @@ -329,7 +329,7 @@ def integrate_helper(i): try: return self.pdfs[i].integrate(limits[i], using=using, dx=dx, vb=False) except Exception: - print('integration failed on '+str(i)+' because '+str(sys.exc_info()[0])) + print('ERROR: integration failed on '+str(i)+' because '+str(sys.exc_info()[0])) integrals = self.pool.map(integrate_helper, self.pdf_range) @@ -535,6 +535,7 @@ def stack(self, loc, using, vb=True): ----- Stacking refers to taking the sum of PDFs evaluated on a shared grid and normalizing it such that it integrates to unity. This is equivalent to calculating an average probability (based on the PDFs in the ensemble) over the grid. This probably should be done in a script and not by qp! The right way to do it would be to call qp.Ensemble.evaluate() and sum those outputs appropriately. TO DO: make this do something more efficient for mixmod, grid, histogram, samples + TO DO: enable stacking on irregular grid """ loc_range = max(loc) - min(loc) delta = loc_range / len(loc) diff --git a/qp/pdf.py b/qp/pdf.py index ab465388..6047825e 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -299,7 +299,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): order -= 1 assert(not np.any(np.isnan(quantiles))) except AssertionError: - if vb: print('splines failed, defaulting to optimization for '+str((icdf, grid))) + if vb: print('ERROR: splines failed, defaulting to optimization for '+str((icdf, grid))) locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) quantiles = self.truth.ppf(quantpoints, ivals=grid[locs]) assert(not np.any(np.isnan(quantiles))) @@ -613,7 +613,7 @@ def quantile_interpolator(xf): if vb: print 'Created a k=`'+str(order)+'`B-spline interpolator for the '+using+' parametrization.' except AssertionError: - if vb: print('spline interpolation failed with '+str(yf)) + if vb: print('ERROR: spline interpolation failed with '+str(yf)) try: yf[in_inds] = alternate(xf[in_inds]) assert(np.all(yf >= default_eps)) @@ -622,7 +622,7 @@ def quantile_interpolator(xf): except AssertionError: yf[in_inds] = backup(xf[in_inds]) if vb: - print 'Doing linear interpolation by hand for the '+using+' parametrization.' + print 'ERROR: Doing linear interpolation by hand for the '+using+' parametrization.' if vb: print('evaluated inside '+str((xf, yf))) From 53eadd1700ece5a9115f0ddd13e95be7c100a63e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 13:57:39 -0700 Subject: [PATCH 62/96] editing error messages --- qp/pdf.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 6047825e..52236029 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -613,16 +613,17 @@ def quantile_interpolator(xf): if vb: print 'Created a k=`'+str(order)+'`B-spline interpolator for the '+using+' parametrization.' except AssertionError: - if vb: print('ERROR: spline interpolation failed with '+str(yf)) + print('ERROR: spline interpolation failed with '+str(yf)) try: yf[in_inds] = alternate(xf[in_inds]) assert(np.all(yf >= default_eps)) if vb: print 'Created a linear interpolator for the '+using+' parametrization.' except AssertionError: + print 'ERROR: linear interpolation failed for the '+using+' parametrization.' yf[in_inds] = backup(xf[in_inds]) if vb: - print 'ERROR: Doing linear interpolation by hand for the '+using+' parametrization.' + print 'Doing linear interpolation by hand for the '+using+' parametrization.' if vb: print('evaluated inside '+str((xf, yf))) From fc2b1a3f6d8265d2f08c8c94c3f241fccd7180b4 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 14:58:02 -0700 Subject: [PATCH 63/96] forgot import statement --- qp/ensemble.py | 1 + 1 file changed, 1 insertion(+) diff --git a/qp/ensemble.py b/qp/ensemble.py index 92d9428b..6ee0ea1e 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -4,6 +4,7 @@ # import psutil import timeit import os +import sys # import sqlalchemy import scipy.interpolate as spi import matplotlib.pyplot as plt From c2bdf94cd852d965be34382621d2b104dfbe4502 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Fri, 1 Sep 2017 14:59:00 -0700 Subject: [PATCH 64/96] moved saving metrics around so failed runs do not break everything --- .../research/analysis.ipynb | 102 +++++++++++------- 1 file changed, 65 insertions(+), 37 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index e23ef200..bf00f61b 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -122,16 +122,7 @@ " n_gals_tot = len(pdfs)\n", " full_gal_range = range(n_gals_tot)\n", " subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)\n", - "# subset = [ 57600 , 43120 ,105513 ,57248 ,40234 ,107250 ,38378 ,33984, 72673, 106911,\n", - "# 91805, 83000, 8658 , 9984, 97785, 23027, 49612, 74898, 106982, 61605,\n", - "# 44211 , 5544 , 32449 ,20654 , 45407 , 43690 , 33845 , 77363 , 53987 , 41155,\n", - "# 54051 , 1444 ,40998, 14676 ,91165 ,35903, 104816 ,54936 ,32160 ,93933,\n", - "# 76463, 72831, 55070 , 94350, 54814, 86512 , 91118, 50748, 68710, 52281,\n", - "# 43858 , 72422 , 58668, 109372 , 89696 , 77889, 101423 , 42474 , 46621 , 2395,\n", - "# 62337 ,75694 ,44594 , 11597, 107998 , 5972 , 2714 ,89260 ,75634, 106566,\n", - "# 64632, 49209, 106069 ,12985 , 29423 ,4067 ,30978, 110406 ,3094 , 48595,\n", - "# 70112 , 17353 , 39413, 12309 , 6239, 104342, 46150 , 8503, 74413 , 1530,\n", - "# 79976 ,23691 ,54500 , 39030, 75758 , 52365 , 55391 ,78429 , 71343, 63804]\n", + " subset = [50904, 24239, 76385, 88784, 70208, 95397, 74433, 86406, 5199, 4373]\n", " print('randos for debugging: '+str(subset))\n", " pdfs_use = pdfs[subset]\n", " \n", @@ -226,6 +217,43 @@ " plt.close()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're going to incrementally save the quantities that are costly to calculate." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def save_one_stat(dataset_name, n_gals_use, N_f, i, stat, stat_name):\n", + " path = os.path.join(dataset_key, str(n_gals_use))\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key+str(N_f)+'_'+str(i))\n", + " with open(loc+'.hkl', 'w') as filename:\n", + " hickle.dump(stat, filename)\n", + " \n", + "def load_one_stat(dataset_name, n_gals_use, N_f, i, stat_name):\n", + " path = os.path.join(dataset_key, str(n_gals_use))\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key+str(N_f)+'_'+str(i))\n", + " with open(loc+'.hkl', 'r') as filename:\n", + " stat = hickle.load(filename)\n", + " return stat\n", + "\n", + "def save_moments_wrapper(dataset_name, n_gals_use, N_f, i, stat_name):\n", + " stat = load_one_stat(dataset_name, n_gals_use, N_f, i, stat_name)\n", + " save_moments(dataset_name, n_gals_use, N_f, stat, stat_name)\n", + " \n", + "def save_metrics_wrapper(dataset_name, n_gals_use, N_f, i, stat_name):\n", + " stat = load_one_stat(dataset_name, n_gals_use, N_f, i, stat_name)\n", + " save_nz_metrics(datset_name, n_gals_use, N_f, stat, stat_name)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -367,7 +395,6 @@ " info['z_grid'] = z_grid\n", " info['pdfs'] = Eo[f].evaluate(z_grid, using=f, norm=True, vb=False)[1]\n", " hickle.dump(info, filename)\n", - " \n", " print('made '+f+' ensemble in '+str(timeit.default_timer()-fstart))\n", "\n", " key = f\n", @@ -388,6 +415,7 @@ " limits=zlim, \n", " dx=delta_z, \n", " vb=False))\n", + " save_one_stat(name, size, n_floats_use, i, kld_moments, 'pz_kld_moments')\n", " print('calculated the '+key+' kld moments in '+str(timeit.default_timer() - fstart))\n", " \n", " pz_moment_deltas[key], pz_moments[key] = [], []\n", @@ -399,7 +427,9 @@ " delta_moment = (new_moment - pz_moments['truth'][n]) / pz_moments['truth'][n]\n", " pz_moment_deltas[key].append(delta_moment)\n", " print('calculated the '+key+' individual moment '+str(n)+' in '+str(timeit.default_timer() - start))\n", - "\n", + " save_one_stat(name, size, n_floats_use, i, pz_moments, 'pz_moments')\n", + " save_one_stat(name, size, n_floats_use, i, pz_moment_deltas, 'pz_moment_deltas')\n", + " \n", " loc = os.path.join(path, 'kld_hist'+str(n_gals_use)+dataset_key+str(N_floats)+'_'+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", " info = {}\n", @@ -412,9 +442,9 @@ " with open(outloc+'.hkl', 'w') as outfilename:\n", " hickle.dump(pz_moments, outfilename)\n", " \n", - " save_moments(name, size, n_floats_use, kld_moments, 'pz_kld_moments')\n", - " save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", - " save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", + "# save_moments(name, size, n_floats_use, kld_moments, 'pz_kld_moments')\n", + "# save_moments(name, size, n_floats_use, pz_moments, 'pz_moments')\n", + "# save_moments(name, size, n_floats_use, pz_moment_deltas, 'pz_moment_deltas')\n", " \n", " return(Eo)#, klds, kld_moments, pz_moments, pz_moment_deltas)" ] @@ -535,15 +565,6 @@ " stacks['truth'] = stacked_pdfs['truth'].evaluate(z_grid, using='gridded', norm=True, vb=False)[1]\n", " print('stacked truth in '+str(timeit.default_timer() - stack_start))\n", " \n", - "# print('calculating the metrics')\n", - "# metric_start = timeit.default_timer()\n", - "# for n in range(n_moments_use):\n", - "# moments['truth'].append(qp.utils.calculate_moment(stacked_pdfs['truth'], n, \n", - "# limits=zlim, \n", - "# dx=delta_z, \n", - "# vb=False))\n", - "# print('calculated the true moments in '+str(timeit.default_timer() - metric_start))\n", - " \n", " klds = {}\n", " for key in formats:\n", " kld_start = timeit.default_timer()\n", @@ -551,7 +572,8 @@ " stacked_pdfs[key], \n", " limits=zlim, dx=delta_z)\n", " print('calculated the '+key+' stacked kld in '+str(timeit.default_timer() - kld_start))\n", - " save_nz_metrics(name, size, n_floats_use, klds, 'nz_klds')\n", + " save_one_stat(name, size, n_floats_use, i, klds, 'nz_klds')\n", + "# save_nz_metrics(name, size, n_floats_use, klds, 'nz_klds')\n", " \n", " moments = {}\n", " for key in formats_plus:\n", @@ -563,7 +585,8 @@ " dx=delta_z, \n", " vb=False))\n", " print('calculated the '+key+' stacked moments in '+str(timeit.default_timer() - moment_start))\n", - " save_moments(name, size, n_floats_use, moments, 'nz_moments') \n", + " save_one_stat(name, size, n_floats_use, i, moments, 'nz_moments')\n", + "# save_moments(name, size, n_floats_use, moments, 'nz_moments') \n", " \n", " path = os.path.join(dataset_key, str(E0.n_pdfs))\n", " loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i))\n", @@ -1245,14 +1268,14 @@ }, "outputs": [], "source": [ - "# #change all for NERSC\n", + "#change all for NERSC\n", "\n", - "# floats = [3, 10, 30, 100]\n", - "# sizes = [10]#[10, 100, 1000]\n", - "# names = ['ss']#dataset_info.keys()\n", - "# instantiations = range(2, 3)#0)\n", + "floats = [3, 10, 30, 100]\n", + "sizes = [10]#[10, 100, 1000]\n", + "names = ['mg']#dataset_info.keys()\n", + "instantiations = range(2, 3)#0)\n", "\n", - "# all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" + "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] }, { @@ -1359,12 +1382,12 @@ }, "outputs": [], "source": [ - "floats = [3, 10, 30, 100]\n", - "sizes = [10]#[10, 100, 1000]\n", - "names = ['ss']#dataset_info.keys()\n", - "instantiations = range(0, 3)#0)\n", + "# floats = [3, 10, 30, 100]\n", + "# sizes = [10]#[10, 100, 1000]\n", + "# names = ['mg']#dataset_info.keys()\n", + "# instantiations = range(0, 1)#0)\n", "\n", - "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" + "# all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] }, { @@ -1397,7 +1420,12 @@ " bonusdict[fname] = [styles[f], 0.5]\n", " plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", " plot = plot_individual_kld(size, name, n_floats_use, i)\n", + " save_moments_wrapper(name, size, n_floats_use, i, 'pz_kld_moments')\n", + " save_moments_wrapper(name, size, n_floats_use, i, 'pz_moments')\n", + " save_moments_wrapper(name, size, n_floats_use, i, 'pz_moment_deltas')\n", " plot = plot_estimators(size, name, n_floats_use, i)\n", + " save_metrics_wrapper(name, size, n_floats_use, i, 'nz_klds')\n", + " save_moments_wrapper(name, size, n_floats_use, i, 'nz_moments')\n", " plot = plot_pz_metrics(name, size)\n", " plot = plot_pz_delta_moments(name, size)\n", " plot = plot_nz_klds(name, size)\n", From e861ae0bbefca44a68b10083cd7c8b0fc43aac0e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 5 Sep 2017 18:29:48 -0400 Subject: [PATCH 65/96] updating figures --- .../figures/graham_pzs.pdf | Bin 0 -> 138663 bytes .../figures/graham_pzs.png | Bin 92687 -> 0 bytes .../figures/schmidt_pzs.pdf | Bin 0 -> 140403 bytes .../figures/stacked.pdf | Bin 0 -> 143256 bytes .../figures/stacked.png | Bin 201164 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/graham_pzs.pdf delete mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/graham_pzs.png create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/schmidt_pzs.pdf create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/stacked.pdf delete mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/stacked.png diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_pzs.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/graham_pzs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1fccaf5b507504a618bdfcebe9df28d270daa065 GIT binary patch literal 138663 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,B+9THy}TpCFqAq?8;nL76_b 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 literal 0 HcmV?d00001 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/stacked.png b/docs/desc-0000-qp-photo-z_approximation/figures/stacked.png deleted file mode 100644 index e5e57379fa591232700495b45a101d6337e0523d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201164 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 Date: Tue, 5 Sep 2017 18:30:37 -0400 Subject: [PATCH 66/96] updating figures --- .../desc-0000-qp-photo-z_approximation/main.tex | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index e91de164..ad051813 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -380,10 +380,10 @@ \subsubsection{Individual \pz s} Some science applications rely on the recovery of individual galaxy \pz s that, for example, may be used as the basis for targeting spectroscopic follow up for a variety of science applications. -For this purpose, we also calculate the KLD of each individual \pz\ in our -catalogs and then characterize the distribution of KLD values (which is itself -a PDF) by its first, second, and third moments (the mean, variance, and -kurtosis, respectively). +For this purpose, we calculate the KLD of each individual \pz\ in our catalogs +and then characterize the distribution of KLD values (which is itself a PDF) by +its first, second, and third moments (the mean, variance, and kurtosis, +respectively). We use these aggregate statistics to observe how the approximate individual \pz s for each dataset vary with the choice of parametrization. @@ -468,7 +468,7 @@ \subsection{\Mgdata data mock catalog} \begin{figure} \begin{center} - \includegraphics[width=\columnwidth]{figures/graham_pzs.png} + \includegraphics[width=\columnwidth]{figures/graham_pzs.pdf} \caption{Example \pz s from the mock LSST data of Graham, et al.\ (in preparation). The \mgdata mock photometry yields largely narrow, unimodal \pz s. @@ -510,7 +510,7 @@ \subsection{\Ssdata mock catalog} \begin{figure} \begin{center} - \includegraphics[width=\columnwidth]{figures/schmidt_pzs.png} + \includegraphics[width=\columnwidth]{figures/schmidt_pzs.pdf} \caption{Example \pz s from the mock LSST data of deRose, et al.\ (in preparation). This sample contains a higher proportion of broad and/or multimodal \pz s, @@ -534,6 +534,7 @@ \section{Results \& Discussion} \label{sec:results} + We calculate the metrics of Section~\ref{sec:metric} on 10 random instantiations of catalogs of $N_{g}=100$ galaxies drawn randomly from each of the datasets discussed in Section~\ref{sec:data} and with each of $N_{f}=3,\ @@ -560,7 +561,7 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \begin{figure} \begin{center} - \includegraphics[width=\columnwidth]{figures/stacked.png} + \includegraphics[width=\columnwidth]{figures/stacked.pdf} \caption{An example of the stacked estimator of the redshift distribution, for a subsample of $N_{g}=100$ galaxies drawn from the \mgdata data mock catalog and with just $N_{f}=10$ parameters used for each \pz. @@ -667,6 +668,7 @@ \subsection{Stacked $\hat{n}(z)$ estimator} $N_{f}$, it may be possible to request additional storage capacity for the survey's \pz s. + \subsection{Individual \pz s} \label{sec:individual_results} @@ -725,6 +727,7 @@ \subsection{Individual \pz s} + \section{Conclusions \& Future Directions} \label{sec:conclusions} From 9b58d19fbd8f1e9ae63b87a15509221609ee901d Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 11:55:54 -0400 Subject: [PATCH 67/96] fixed typo --- .../{individual.png => individual_kld.pdf} | Bin qp/utils.py | 14 +++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) rename docs/desc-0000-qp-photo-z_approximation/figures/{individual.png => individual_kld.pdf} (100%) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/individual.png b/docs/desc-0000-qp-photo-z_approximation/figures/individual_kld.pdf similarity index 100% rename from docs/desc-0000-qp-photo-z_approximation/figures/individual.png rename to docs/desc-0000-qp-photo-z_approximation/figures/individual_kld.pdf diff --git a/qp/utils.py b/qp/utils.py index c6ae4790..abb24774 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -410,6 +410,10 @@ def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): ------- rms: float the value of the RMS error between `q` and `p` + + Notes + ----- + TO DO: change dx to N """ # Make a grid from the limits and resolution N = int((limits[-1] - limits[0]) / dx) @@ -419,10 +423,10 @@ def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): pe = p.evaluate(grid, vb=vb)[1] qe = q.evaluate(grid, vb=vb)[1] # Calculate the RMS between p and q - rms = quick_rmse(pe, qe, dx)# np.sqrt(dx * np.sum((pe - qe) ** 2)) + rms = quick_rmse(pe, qe, N)# np.sqrt(dx * np.sum((pe - qe) ** 2)) return rms -def quick_rmse(p_eval, q_eval, dx=0.01): +def quick_rmse(p_eval, q_eval, N): """ Calculates the Root Mean Square Error between two evaluations of PDFs. @@ -432,8 +436,8 @@ def quick_rmse(p_eval, q_eval, dx=0.01): evaluation of probability distribution function whose distance between its truth and the approximation of `q` will be calculated. q_eval: numpy.ndarray, float evaluation of probability distribution function whose distance between its approximation and the truth of `p` will be calculated. - dx: float - resolution of integration grid + N: int + number of points at which PDFs were evaluated Returns ------- @@ -441,7 +445,7 @@ def quick_rmse(p_eval, q_eval, dx=0.01): the value of the RMS error between `q` and `p` """ # Calculate the RMS between p and q - rms = np.sqrt(dx * np.sum((p_eval - q_eval) ** 2)) + rms = np.sqrt(np.sum((p_eval - q_eval) ** 2) / N) return rms def make_kludge_interpolator((x, y), outside=epsilon): From f0be42a13bd8b6a276b58a679d7c5c20443b905b Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 15:13:00 -0400 Subject: [PATCH 68/96] fiddling with exceptions --- .../figures/graham_stacked.png | Bin 203560 -> 0 bytes qp/ensemble.py | 9 +-- qp/pdf.py | 66 ++++++++++-------- 3 files changed, 43 insertions(+), 32 deletions(-) delete mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/graham_stacked.png diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_stacked.png b/docs/desc-0000-qp-photo-z_approximation/figures/graham_stacked.png deleted file mode 100644 index dbd0966f3a377fd02daeb487a842b98d186bf810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203560 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%0A=b%^W6Y@Qq_o=99F#q%nHpctX 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

c1|^I;it+b#^f z#{1gsBrOm5LB5@ysv9alNg@AtVL7NYG1R~lT3qg|(G_@F(EY&l!we5^nCcbNrO+Gx zyAWld3a>t-5jZv{hgdyye#}6NGGvY8M{IHwvb6Ce71dg-yV zzd$7$`v0xfBRIi;*lg|CZ#hM`AVgWwixs)alfn5S&byEB-(fu@s84%4CFY~jXbkbh zQf!?~d)B5!AdA-Z`qF2B*Cmglfv6wbwUrAHq29UPyA@}?0h+>xUe!L-{ zSPwMIRQ#;y>Dn)Fb9ppsJvXAWPFPX6dt21}Z?P9(N&9US?gr&>nkIv=hq1Ea5&qYd zn5Eex)-T^Y8)av=%9QoS@2eywWwN2ClM#}4EQj2os+k7<_SKMQ1zD=#hsAQVR>$-1 zp3>C4E+TzE-9sviXU=ClWZF~5PXM{Av&nDg5{1K8#aRQfi%Y#GYDaL0uYVHcS{N8o zKUNU(=uk)55@bbjgeg!UMMU%;B7@emTa8PYc=v8?mrZs@!yqYXmcV@Gf%`$;b2LxM zhV1Ki@7TDClF_;@H0{4#(W_|qc_#bIy^B<;eND#G^_BDM6>)DCS!Y75ja+*qErh9w z@(j#8ieg{prn!)&*f-UWJRa>P$c(Eh8xPGlz2xZ|hbcvI`G;3R_5 zvlzr%)_AAAUrtMqb0t1^-!`FRY6%g9BXeA3K_+P7;o)J#S>4dU1qa=J1VHb{{g+w& z10m$)rdHfU8idz47_Cpj=n^!bvP(cToq!xEMQP3!K+2uFZm|+-#&;b>?nxR|sp#fE z3bMnuKl}PPF%IehN&@~xp!Zz+)Z^v>%^kGZC$nn-Q9Z%0B%KfJl~E4%ET2zRmx~m9 zU|izta*mVT^Ss;@PQ|mY7^*(x1RPKNdgSG|kRo}8lD<2X@cqEBcR?EV zAFmIQgKq^UBD%4MrDX?@V^kqhXNEvL7;8{6*TRt+HJZU*kSl2Q^fU%SARp{(w8(vd z;IQXNL=a2}a{6^szZZr`ym9<=7)dp{Bq1T;5dR!9Y@71U*7)Yf>S|`A_1Zuq8wEjC zCtyl;#uN+OlIooDEp1F`PVXnB0`Ksgz4?v0xXrTcE{EJa?E@!AVH_stBw7N6RnG|- zDSbSh#xk(_n2EgD%J7m}xsw0;q+0-U?lyFYpl?wAdY(97OyI2CNp@fvm~6`Z@6Nwv z=Jw$4mUVex^S#7KRH2kYPgLoK>MNg*KV_~v^Zk}8$74g=7d#fb~1f?Y@6kBCF#bm zgFARUJvUVfl}nTW%|W7{5GD^G4_Y?iC`7(?dI*8VY^Z zFK@XkQ0901nsA7LTm3ORss7_FCI20|&NPN;Csp@2Mwi*qI#0w4v%Z3KYU$V2hHJX= zoCnCOoW`Rxd?uLgRy<-va^`RzlaYf}g^yVVbt7NAz(XB-tq46q1KBs!PCk<-myr`Q zYV!Fyk}iXuN-zefKR9^t<~1;T{9QXpNF`R-Z#lxo8wa4k1Q3RNW3q(jOeMhcNCOPA z0X$DMr~nB-Qy|j{$;sZoe~*Ulo?m@ppkU#c_>GFJ7v|a6x>J1@4G6M~FCTaJ_KO?h z9k(s+p3qr||K4VKY}upU!pNZM$w=yPSE8WBe}aKexyHwlE>GYFTPfb#AO(BRGx*(E=~zc>M-4j{EKof-zSuf=wk zEoFfqW-XSSSy*W1+FJ^-IAn%`%)kk7EeQf9L=D^MM1=4JgoR-h<+i$P#)Y)b9bzG- z3ZT+5v8D%^8*g4}`x#Pzax$H*VEcOfbza!PUlfD&M?0$TZR(f8L8r_zU2w4?iFe9| zP$FwYP>*DkAyEA+eq8!sVm0{(Hy`d~S7V)v_rb00koRl$~@oDE)zsqG0m z`bh}G$FlZ!yNPtQD4#!u2GDakOv8r)o~vW~xM4O-xb$B$@E3Q8W?lPwxf73gCzjV) z>z59mVHUm%!^mV;UPa^KU?C&(nN=~zf)4op?1lAj!$Ml`55;Cn#w3UuZGw1IQ;o|^ z3}vm7#C{)|D{&6HlI(NRT(<}$jf@bf)5R$FN|e+I;gdvo0B7=1qz~X7hMP7NKJ|ac zzjGdJr!_`NIj^z>XMK9!j6DZw0Up^7ASjc9thrw(D}K65Zg+Rr10?MwFxCnO5rJq( z9$o^B?EwV0z*fL2&~dDvcl05_`M8itsQ>POe>0L59$)NZWz@L-UVb+01td(F0Pi0g z<-fl@Zoab#XNU)Ac|W+;C`4*QUu_##jH3R@^dUhX?VZZ=cIJKmB}2TB&PJUMR1KQv zS%_W|y4FG7PYx~m%k8t@YxxpXx^{rrP2;Xtfa=^NOeg%WXwq?|cZby;D_)0{`3;G? zO+lqIAr6Rtoh$j#9J#QIy1{CYqtPxu@pXZsCTsq|jFfro-6EfXF!J&sap$8*BdOi!?6 zW>8z@G{kzV_6X<;cYx6#FJw}7N9@Ic^k$ih7m7uwh>_={2)}+`JCL`LDs;5 zlIo+G5RgZljz=x)eKX_S6f%m!hxjC|@kysl2=Z1ydEE%Plk`1eS@Fay-$C*?j&k^K zb{59>1c|k)>VMYO2oNmY0$IUd*g2}GbYd|TL;bdqs`hR8y_MC=p)He|%vSJ($uy^5e4cShPnK2g zJaZZ4bPANVdNxw*WTAH7ic!&3argfRPchdwB;|z-eX)1REzg`3P}zyn=)I$O>)I~} zRSND=mpTgjOAFzX5Mp+;AFE}Dc&-*WL`$8xdbKxq$`v#&OvxLIkdIc3+!e@5<|`Z$b6!~n8tXP=>TUpxHuFYUI!I1YVppt535m@-lvHOKBi)nRwh$6 zMdTu(=v4ASg;Z>5BVqUd-5UjI&2+A`-cDvdkgfjDj)BOJav3oY$mR@1g=6aCisqWh zQcpY}5l1sdS~%QI^ycEDM(Vt)8OX%#V2z)rBF4~=XkxSZzzP8ymrU0E9P1#;K} z=!CA4)VprmX%A_-Mj=3~uC*R{N>=62DE7_B?Txa+_P0ppt&>)FAFi!_m9 z;C)M&R_I5i{5^o5CDRU=;7xVnyprMn**iJG#5M=~tQoBd}}@a8R4& zOXaNO`q5l8xRjhB08?Ll9X2a*87hvE=jP}bOx>`O4ol;+6RWHKUzgn2(bcJ%K{XfX z@AY{=XMJ~*hV=OH$5WIfs+TFK@}nZCt1L`;qRXc=DzTu+EYDdNN#++%C|?#z_X`0Qs+{OI z*axu>AZD%}DE^$#=W`c1ffQ$0LHa7I}^?yT2>;Dxo}?9V3@C z;mIl8`KD|2E5qOKPFV~UQhc4%bc3640t=g}htsUg86isqSau}5O#26hZ6HG6>cPUEcr}25{m(~=# z(TcmIX0G6xxzno63aXKxb=7K%wp}I0Ucdfu7WCmdViz?TPVY#*5kO5hbhF}(AuRZce0T2CT>hO|@gSGI6 zQ@`7X2@tV-79TLt=^KQ|u+kHL!LRgEw!4*d^5qy;-+UhbS+C==k~gdYk7% z^|#7MY23?JrljLKl$jgLEXOF0g->L=J{kxZW{@F$#^X=ZHeNR{U`-G*4M(b6h|q#o zIQm*$U0udVpE{=(%<`S+Tv%AR@%jf+zJ(VAy}TxTMEL!gCEWv2Pcb_8UG(;>yfKmi zX@7RlSJ;0|$%(U~C-v)i9c!+}lG_K6MG5I=C{mKJO&@~K`h7ntlY}i8eG*bvF|oCG*AyK7Rz$mRzPVFv2;xk zhMryV9YTL$JodDIYQ=)0vGGZDxm_1%MY1=n!CE-)FBt}R6Xdu!RQ@4v4Msj1?`$?P zX}qmMZb9I{qOSwj(r`VmQ@*JaYeJ+qll%#OoUw+@l(S2>u0}cI#TX_@<+Z??{E(Y# z-F#kfcAWuQ_^bmj6F?7oZRbC-C{VhK|N2}p(u5g3oR;&y{qg}b1!-|{UzTo=I(^Hz zwqolR8D_%Q+M+pv74yTTz)x}O4w3sC*-?7jv(p&x&guO<=>}hKWL3Rw*sf`4^xtXm z54C=O7Wm2~ND7>QNMiw^h-M3@j$B0oU?zzm!sY>FtW+iTq@uF&K7>g(r*DH;6HWy< zEt&mgXES579gzB>^Zduo?6l@ksi&OpsYku48CuCVF{AW8IpOV?x`S$CLNqFj`Q4dJ80i7xHiA{0&brB+5?4mY^n{jXkR3sNoZoNe^8lhf?h za%&qKz(40;mA7**IlugearkC3?+L-kDNxJ)(*m48BPsD7r3pU22F=~-zH3~c6c-}(v@9#=K5ZFD0JP2*HF>A zXsKXnvnzvAc=h;vyAjSJ|wTtW)!ObUM4jCwVT+oRX6iM*P3yP@oxMGUjpR8({SCKCyaSv z1HCuglckh`YKk;=Z1tEAmfnR^!H$sL*QqWYJSnl{+mMY<mOel7Sv9yp-aPB=<1lFs8HIy@Ayp3N4pG3M2QFyu zH1y`2hRP1Y=qKLbX?ce94Z(W0SO|rgQ+l9n?P}DS!Amc*Xqt>M92h9C_m)9ZU@dXTcxYKe4 zsUS2pRM??AB;F1F8nMv2pn@evH@b7n-mw1NR;#an0`08_Z%^~y#bAcopSN0&cN5biSo9XK&(& zOMEp`-w$!U-jOcTG&spcu9wuNZp63^9N z7EYw@mTTI`oCF_O2gMS{lOMl{pHO^aCZLIvjfo8ks9{gY90#rsyG`#c?Jb;wMbp`+=TUG z7i{muN|~V5Sr($9KKg3Ryi5{wuQu1w*t-5JvU=1+zm3X9CVpfAD6H`x#qD=K-KQjD z^UI_T@%tztrhb1wJ()_Jnpoquz^AWYY*a}DO?Wg4-0B*hQbEdPrw^rHq=A&n9V7SL zM^o+b$cVYIz4dC=#041Jq^stCULs0I0Mg6?V(PHtY^Ik{(G_jNN7I- zoNA)W4#4Z`I8@_NMf)0swYjSCwd^W;Evar%W@6+*UWh>J@Lo_XBbtV}G2|V!rWn_ev3lyTNp3!K zYL4ab*Xzq4H5vA-7Rs|!JC0G3Q0&j`yL%tA5cR5|U-G`$Hnt!B4x_6I(1qa_fmyFg zDq`81>K#5D%YO`YB=->XxbE#gxbIG{33Ob$+>pPD)R1>O39PMVV*d-mh!WliOV!m~(sBYb8 zXOGm-0wbp`NlU+gd<&17Lyl1~Dpwq3z+Zli{* z67SpF7vwF#r9#q6fyXu=eub`yp`kb4$?N0W8&S9D_bn2ri2bK(Oa8cTe4p}<+V|QX zah}dHn56zPu+(!?PB7|zy!TwFY~qpe-LtXTp1+gdT!j^YkQInY*#0Ob8BE%c>Mt@iUUNg>CXATc0r>#Pe5zKk-Bz3(FE76z1=)yoAd|R;X`uIK$gwR2Sk-4a!d!rA8i|$Zn-eyxWrKHd zacmFv#V@wPXY<~GzD&0W)wyN((`PxRT*&Flv1`sTw|G$Z4sL2jvJeZ;4L8cPuQZ?T z(^Z@KG?@EMOsy&Ib&2$_HkF5GR3P@jB~)>QKocD$ndGk7MMDv3$^a2}+U2`% z1HF&rf;%?vjD;<2>1(zEyJRYz%Ry7!G^7|=VwJ-avjE9fO82%?bVeH(6Fs})TcN>g z*?h8#*Y}>Qsit@oqKl67#6@5D`$XGm0=HE@CN4$RjRzFXTwwu}mV(sb@1d307IqCG= zVPs=?p#DoqV5sd`@NyXwWJT2b)wy%IU;Q{%Qs{PClkCE&ACcaZuOo+m0l1?EQbDBC zJNEF#U2f1R9EQ3-U{a!+A&oEARC}xSoz$h;dkop5bUn5qHm=u2YPupVomI~nx5pj9 zJ@KPkcqBabKRCgcCa{J{qQvLOaqfC2UQLwkNbXlwn_)5duo0j&pR)$gI+zB24|Ws@ z7%frqWLh0MW1rPG<4q7d{Tz8u5|FNtT$!)X`|f#ysM%D4Xc?w%WG2{lOOujg*@WkD zSYyU^3vTCp7hJm{&}`89lD!PidTv!DWC1U40-_Rr{2m6Ei|Pe-k{bp0x5w&L!qT(0wixd=x%xczySEm z>tl^|_ISr%llv#;>Od>Yv7LDs3k!-LjZ*9=YePr;8;STF!>D9TUAjxmvl}x&o*+s) zX^;kz1pwe(U|MtBZlI_cj5{TevoB!!>Cd4B5k`(ec$6`)A&|7Z-g%b+Zg|Jin!MaC zm)HBDXBG*5CJ}}OVj_%9`uqBV zAPDXGQxAPC(>MD*_`IrO$>Ahj9Z~-I@GvRbdo#}vz=ii>sLlly%C56PYg4atqxC|>@m#fV0xZ4H)LsVsMb zFHTUGwcSfFK6t6Iu@M2&Q7}Y?B@qPJ1o*y$gO`x!3#I2966=|F@0I`U6s)j4%Uf%* z^*s1H*v3j9bSF>E9BdKSh z)1ur!iHjW4IH8o2=aWiCMeGqifo|z#6WVXnATtllH*8IMUt;lK#@Cw;)3jaxDzN6= zHlc)r4ES{Vix-4hQVY)gUB#W2EW~71{yh`Pkds>Fr{JrJyU!*8m+B1l>tr~8(M2JD z;F@ln*@5!>$G`xqQML9V4TZ~!AkOQB^=s$~c~`hPH|phEHZE?VpLvbjD~^woZt~dq z@b7$bUVH0OXDPsIN_Pn*ckDT-fg01vb#5j#tm>t(`wvgr+F;Plx@-coB=u=CUTpmKT%AUuK7gaXus@*d@p&|!{Ugsl& ztelNXI>ss$S%x6O5h?3l(=Ls3xklDxQCdb)3zosz@zn26$$PnQhTL998PIO7<<-AG z&SOEv_K$z)vjdQf9Pd88H`f$Nj_>@mZ!hT<@h}Gjl8H%j{<1LtFj__EVuN?SuH0Ac?*tK?-$5W=9=<1{i zyY~Ss#2yWgeH9~RazZCrdMT(P;a^d!dzfzw$^Tn>AQ|Y;m5Rza-r|E7>gnnV1QLW5 z+D%92B!>~;9p@Nv{AZKZ09SR-6 z$mGfZ)k~*%{f<6;TDX1HWRoi>CzGI>AB{5l_1HRQIjO%z)9=fM^zQ5<(|t|7(t_;h z4sg}M04n00MJh(M*hhnOWP$v^_S9y5H7S1_B=s^)B0j^=E|iLBCInhic$67u8CBv& zv!N+e8rQgF5sjg8XF z+B#25YE$UtV@6kSPVenBlos8^uQQNkt@@8teZ$mIS*Y-Wy?Pj=JdemzWeKbvmJ9B9 zHueLyvN-b?!@%f?#SS9>Ur18z8?5H`zi(-WN<%?VNuQ8vl6?EIjgh1uhBJWPIpqt%?=(XmjL2=QDY~&QZVD-}_z5hF`==pK8kFd~b7S}gVa>S$}m5w`Bjp|{*FV2Rd(6|lZl=#8-WOkqo?EJt4D+Lj;&*BrNwB{0<3;hgrQpUxpSA2k;5D6r zgV!8rLr-~=1RPBE*B{Tl3A{^iJZD1qzg{{?0CjcYiX~HHh85`L9$N4zCV z4j(I?vs$tVlL90IlL*V%cL`$gWc-Jo0_>q|v+NU^*c#?L+EVL-cO1EL>~QJ3_$ZF7 zzAs2+mj0z_z@V9vn9VEDGr_rIzhO|C_yBJvJhUx085ZcReMIB7u@k;1kB|8lFXuev z^=c_rR_UeLALwfl>+)J#Jfr5wIdeA8jKF4cJhMfhR8Rm~fqyR}Ss8G*C6wd9M+r+V zEb7vWXG70WK8lZc-zRTs3cO0WVE+KeL5*4GDop=#Ev_<7%Y`fad}84Rl)WJDtA+Z45w)YVbZnjba2)avMF9FGpi(1mCO%`_9OEzpH$f zZF5PCvg4s(<9gsiMrn|(C6Gj1vZ7|dUJ0gmXXcjeErh?*r9~11(1L*DCLVU;0Y;d# z8?0;I$qb;?QOIo{3FbSD^HuZ_@*Q_-o%~Cfe^ZFnNN!IM6|4K-=df&A>ZRM&I7t&Y zU`cp%mZvI?e8m^`PrvyiFwBXQxLY@p{?Hw(tJ>7d21RDgkXfmup`IR`kUx~z>rAED zDz>okOY#i&?Coh`?v>7N{@1&p{f!8$p*ZL)&S}&iijne~xFyn*AR2fcMUsyG@2y0F zLbj03d8cEaQJfOC2wNo(Wn4dj4)OndJTKI07hRcX9M&{{B`1~K{7A^$}j3jROl7+6ASRWY~5s{F%TkG(>gXTd2p!z6 z;{GCVTSUk!=mu%a&!y<(QzyG6LGk?-PRg^w#g+oNEVVXOp!UotRdz8UNcY zpG{6~t)aAIU9=V{TU+y?%1P$W+8{(7nZc_IW`5U8nxw0Rmvw{uB=RU&5=|(Hd$< z1y|4c$H^?<;NqaEN&gFsOr^!CU&|r)H;+Fy6WaHe3sL{TBy(G1$oDU`@$UC#ee~%= znRP?&pIl`WKl%6KRxqYO2s!cU*gRD+Z5YE|2UI%UG$0Xbdy6F z){S#E4xwvCCEJa4O@-iUn9~9si%oT69X5-z%)w_n%V}~`6@9d;S%!6Tt*#gv*#G*3 zn$w5yjfv}48aWmt>SO>)s-4T$fL$~lsP~YHXM?e$&)%j{Uh-67|Mqt9;n{%;IR8w3 z97#60kz;YOCAxUN@jG?1{smn_@y;}kP#(R!TvYU&^Zg`_!R{*2kGllQ8zWV(I;Qw! zsiwdH(^9xz#)JEP<_PY6Y&pe5*vbC@#!7yJQ96)`WplxnnsY(Vm{4!%$oeB4A;=_fwNpAQr&M7XfTnilaFIy_& z`u2H8=j*vLxt2WTKyQWvXuuard{64%`@AAJSRZ+dBZALyM678VyUg+Wh$x1Mz|UQ< zyAq}|=`4c2pryw`)K}Eu!?~JDSBUB@e-wWElmFiT?|E&lc)p@-4#fXG2n5l#f@yh z%833gOC<%{r;{WmIGwjCnBu!S^GdLwk%!&{02sjE+DS1nWQ_WZ$CRq0Y-mCnOE(NF z><;h-lL6nOa`PsiwO7eNyUKOpg(t2ojMfVx%m(X-$}`9Z8jE}WcRzM6TBT@tK7xKf z6J8~&jU6BFwo0LBTLP^2f_S&Uyu-=vOvH>p{Y!UKl#M}D(1$9ezZ>*$C=vgxv9{U6 zAEey3vz4DVP~W*l1GfAvCy1RU4PxADB<3f;=(9d)I#(3odVGrXiNTXzCiPip+;XQt zMuxervlf53a#ovvc?aOR@Ykh^!W}M_eFw}4Gf}V&u^=|&3k|2h{{4S)jJ3x$UrFI0 zN=VA~4||?%@jJc04~qs54!C)$Vbqt^)lY3s6(K3n-#q{qL`mprP&1z)`*s>pK7{5`Y$Q0;6p3KQJ>H2Q0_8^D#xVw zp;-|5ZUQ){U88@SN#pwN86fc@icfADJz-7sh-C8B5nD~_G&<=c5p%vb;(;XMis}!! z&Q@)J>3w%To`BO)gj02XBpkhELPvqrkqO|2b&prc-2hP!GgcD-cEQT5%CT@)=iD5V zyn=#IQr^#-Jr8ccqF}6pW(XneJt5==4d2A&COTO@#iajuY-`Qejqj6I{eF54(pkGY zcRU@}cUla-Y4Fd-l%_{}ytcO=fUD`paz#P#cSbVepbS^m#-_^V2s(H zB-)?eO;?78Q(pBX;@meS`b7@vr~JE;Pd|R}<6#6}{w?vHBlPI|M{QHFok~v{B0cay z&t-3gWzu7tjUHm=FvbhzijzcD_miC&ZP4iFO5IzEcC5{ysikW0U!e0s6)e;c5K^kjktVsC#o;YJBes&YY1a=-5oQU&$oD1&sQkeI^_f%k5tfNc zK9+f*X38Et;x*yMmshcC)`RIPEO}bbJ^zS33lLBKdDY8H0DMR%az@rD1p`8darp<; ztByu+lrrZ#SV3F-tC1Nl;Opwpum{`lCO@U*mMg&$=>>U>@0X)VF&^TuD#PMV>pk)x z-nj7-XIIeWD?KT95ewlIDm#UO$K!0X=|($$my2dP34t(ZZMkEsWWc*S17-$j4FQXa za>17`2mnqv{e5C|E^Q&w*N4p!&D7s2o;&lHAwzED*TS*DPA();G(Ozxv-GoxJFnkp zD?>y?0s|91qH_X@!0r2E@LK zJo4Kg4FP}KC+{g!IaPpmnOdM4}xT?H2y3y6P>*ZQSh#W|$0@`B{9(Ln9Q zH3a`7>Kz&}F|jZ#7EmHkRbA5Rc8d~x+JR5RBdhlVR+@_VV>f-B7GZ9-ZUU0c4Ya4B zOzraO6TzQ?*V;d8egI%wCa{pXmn;X8(^sIe1vsO?U7+D5PMDP*2mHUf2!xPoRM$)5 zTp%o#!=I&A-#?GNZz$zS6!z_fR8otF0Ta5$s#4z{D$_hTlh-QZ}C<@#e_C|Dy;qyM*}{$5eD84OT0@f{p@2S5cK1jSml%p1Kv6g;5V0 zJ^Bw*vRyH627<$aMIsGxyN}kg$hGeJ`3doMNOYR&C%x`iq0jW}%|&ZeQ1%t2Qqw+c zhn^&im^8lfVx*^Qp(NGdhc5iJ$+qUJiEDQ&%*tUtQ}fT9r|zvNOG!No563Yl%2+EV zz>r`zD@o1<`sTK?GJ}5JV)}gr&<2UB?YbgLwijw{k|X;(TyOA3uj*;ovuGtVH z9T#OB>ij`}M8Egbi@mTjI4}_LYar*{O%=R;C6LPon*1Vu3KFFAy+6&B>hM+Ab1S!x z>z0%MHD~mdrXf#%`y!QK@Q^|%%Ghq@A^@?!RE3Hlx*(}pV#^5iwDfHgnifilHh-;g zR}?(JX}@xkO1}{3Wx!5{`UuT^Tor|5SM#qeG^*{!_wLZGOx8!JM+E^`+2Daj%Tkif z8~A-eBg}66N@%VtwW}M0TTDEH&@I9U``{>Fd%gX^dDlrc8h#Tl2{sHM%;bk0)ul6%%3(*9NIE%goFd-I8 zyd8#CAkAH2I?Ijj`zpE1e5(J$kS*^4UwIPy0GJ&Zcr8yZFH?%X>0*z&n!l;8I2&%I z$JFX}$=p{!79JED8aj1YN`H6CnD;?^RgT53MR%>=+wh><2k(Cm1KJW3<=kBKM&T>_eFh4o|0(U9|6ch{ z{LQc==^p;kS@wZ<;ymjtM7$ zNF2b5_05fM`{`Qlaevs!U^ieY?*~Ihx`_bHNLWwfdCQK!{6+P}$Xt`1B*c#MM-QCx zDPw`fA@h&&q?HwWLbS7{5dxs}!is#6eXbo4C23#PrLxYp>JO9SSFiB`NKeH1A1v_3 zFi#nP$|ZsxMlu@k{nCEF zI}v}YguHcsn4cx(zI1e3OMf+d}hk2fh1I(%&7O3KAOSSY9kP5TJ_NK6@=^n0|aKRkIx;i3jg1vs!_E>);1C z8n*stXLrNH_FVE}Oy&*4DLEo@%C6gGbR|y!q zhLaua5SOOW$`f%x0}vV#mmag*szQxe_%3^ReLnVZLNdY3j&7c`Z*BE3>7J;P%L?Nx zIj7_g?hNCdje^a7y;reU1FlUB=`1Urj_L-vCkCy7Kf$0w{^9Q1w8|Uk6kQ#+WAm!(?-j1s2U(s13Y z?mn$%=0+goRdOi4fQ-m<3V1WF6JC!7MD}H&yiZ0iJun-VSz<8JDq~c>!QcX7niX;C zaU|Vf7L2pz74yuO@ArwM-9hhGVc}I_^Xk{X29)O)F~#;ygnO3^kK{YID>?e(XZ!7W zN=$dH|IS;+wv{`|4_KHHI!(pkEbpz(WCjN0b{zi_?yj{9oG84?zHQGmi#s5D^%cGo8ep=g@s^B+InbY})u;`v`upzPW#h%DOR zJ7Kv*$$|BNbM0ez{qkQUAu2*YD!PF_xaC-=|Bdr=$E)8RQagk%5d_cJEM$h<a-UZ{3 zzwd5C3cC(bYG<(G*W|n*zVH`Sy*8a|J|57276&~#T;Yz^Zx04PlA4&)+-Wv@FyLW_ zOd}{0zlSb;JW}(tJXV3tXbiT?Ci=qJMrcQT&ucd~k62&AkE#*N1aYeg$Wpwf}tLR39J6 z!}u0gadC>V$!$8VW<&WI%Do+lqofEnKN0##8RLCUFJO70-c+z13S}a#nks295GccH z_E**J-8*VeHh7cs>{LOA!EvlJ4gzs?Tg6Y=K9zlXB-Y&0Hx!br)h0yI8W<`Yc4bcd zpws$Mb>3oH@0?`b?S06vkv-WT>`-~bJlVL(PZ<(Q8;AB6KbWZGUUB6}rT_C9Yd>Q9 z(A4sIfv=sFM~4k%7pNZw(H!mk+gT~X3W(nfn4EW?lhW<;JbCt)vC*lNO5Zak4zF-e zD*-!h{j2`hlCf$!A%9*^2bNPV#=Pocm!#Sp!-N?X_l8VLS{JABtSup`E3ADACWpuX z>$61$;0`;JowovI&MRP-MYY zy#P}IFy*%ULAgTf@jXJHALaw>-o;1MS}Ji*xljB4)s8gZ^Jn`Y^uM!RDcDC0qz zNA03sT6b?UAmIJIaUOh*EURzdfy#kKdm}qAAxA0o8pcl*_lJG#UI!@<1~v68|3m=_ zpQ?$}+o_)dN*5Cq@M0!}E9I#!<%!$ohxU`!N&4#q<eErn0nIiM){*>+?8*JPf~F16 z@$8OPUo>Ktj~>?4Z$dQvN&Dq$cYNERHUY>GnuRZ-ni2Zk#%D4jyS?K&$w3MU-8SP zMB`34=buCNr(Idbz}^Q$RJE{zel8qWr+{G5fUb(+_WsWLn^8{zJV4_aX+jYx-_@c& z{EOnomIKDfHhU}MX+?11>5>e_%bde9nbw4F)nr7OzIoes%lBJRFh?9q7`8ECvq&$q zEiBgm*l9g`;1IeM0lUR44$J~ptk(FP1nSdp!oY8?4cyg73e68|R@=d*VF#3T_psI< z1@x~}F0niKHzb?!J32zPUCqx$fTh12F<_VFShy}~A=+St^6tI&P~?kvs{)%mr6;`l z+r8BeOS$60gDoPT0i08a7*S^nWKD9S2zQgNweR$AJlF zH)-ju+dtlsxc(gBIMRNg}W@)F&Ckq%5ucCwQr-A`(|&xwyf0(~r&qYPLJ zoWP@lBU|`>Juz1Mx3rg!K}lCVHqhYk5lkB$Lc*7WWiQY6SR1#nT5&Vm-~j7WO{uJ# zO1V=ez*iAW8E!?6PG(4u(((9N>y~!U481|~11k;pco9txdML8*v*JnvBj1#;^qrOb z%R$$umNH`$`lRx+4=bdZ)+DET|0sXWcP7j1YUKd+?3!2rExQX5@ZthyN4r(VskK2h ze12WM?N%2OL#D)7NQrWJG3J{vy(p6Jf|b&<;6BQx%$p=a^~npK{E;RcV{YI!Duk4N zjLJW#`=NdjJOZ{T@ayj#sFkY$QU)DdJdFEG!_wVC%3xw_b`os4Zd^G5Ts_0`@fdt( z3DeGadFXTbXjKn}lXyM;$RxbOjA zby_Evr{cQ$fqyb2*4`;Y!W71UDEuxd(z#0nvd>d`c#J5A(<}Qf@jY8_bX}_!Iy~Qw zJ5V+I(^0Na4;4-n?d9^P&fv{pz%1;wMw_}CH6de@&yyFNw>jokIEf?5jdmE8F6C7C zlu$_>iW9z)mcxUM^d=5REn1;52nHRiydy_`+5%C4tz#>zR6x`=#GCVqk!$|X{*-01 znVpG{U-oV;j#Zj`FYHmu28!c7mP>yakU`sRea=A1d#MuSbA@-nV)-=W!B$()VXD-d znft;+8D35!fn7n>{$e%a{ZwKyJa*8PZ{M#V^saw4M4O|k6c7TOM}EC&hr}ug3Bv2Upx^= z4j&5hCpX0x&k|XE_nvt_^n(6b_qDDzYMed&*JpJ%*^}(PO@zcMlNF8knx9gmo<3?D zyY0`*L$nrIZ7;dCc=Lwoso7eUdT3M`+j?cr_y#pOVU9#n6sPq4#hDMqo;)!Inr2_% zBgRx89@pH0Pz@@~>I!i??;|35H@Dno&APs5nKy?eUgJDzH^~qA2IC`+0FRb4w*MW2 zK-!ZAqBo@{IFQ0oJsMS|DayL=2@)*XKX=v`CQou;7o>1;5qv9s)HN? zY_CJYv3h}Cv-Usfa@(hXnpDxUz0wl{=rb9sn?Sc+hYr~8xC{Zrj>^fYAdAKc0* zShKtPYmT%+@giE_r>WDVE_r&vweNg6qV%e9t-9FlD|^@>#_c4}v|MvDoTX=iJJ|Rc zk)!qG!R7lG`o6qIPa`PpLlFX}D$2pR?r8+fcjQR#Pzikx#T!wDal99iFk+ixWk7QK z;lmFWqh4lp|6DGQHTpGpQo1st1Nl_d({|R<8!NTa2TLiF zfMcCQv)e25s8)LKqax`P)DkWs5fRpUg3dM+M2_`g+A&H-1-JR1bzE$A5QY`~2*KJ? zNERHEn|^S()GZK2cU)eqZolBc%7cBrwv!ZD-1SFn`Y}+M^Z815jo@q>8Rb5G_?icCs>#t9)r12v%(F?J4%wdKD4J|0 zhpVkD&n-klx}>2rNRq$Low&%CG!$=#4PA7vdA#bOts&KDG(Lu5hw^fVa&SFY9oA(> zg$;hQt=VSmIMTw((3zN+RAqAdZnW=GAb~x!2y>~k#nB37sQJ@#;BUYR7?hqv;9|30 zCYUx7bozO|%^qgNl#`&>(e}1RSAv^5CL=M-VO)ldHf_3Ob4H7R9MFBu@|RddP&>5CnpDzANjGZ^)$n>;vA~w#Zjuyf@!tGhbyl6|jxV(EUM*W+`_<) zR2cwx6yWvBEO2`A>jO)elHt5QT%pq!VHWtX;i(l5f)*b@S3t7jh}bTCoGLMyh`N5W zvsxz6H<-<&pN_^Q!cr%JGaH8lz4xh5BL)TnWLGy?y%B}q<+0*G%d_*rRBq7D@3ba< zV1wuC1J$E<^Usou->*2cDTENO+J6D2k98QN<9C(0rW76Ny+zxWZg@PUJ|%3yHPRAx z!;ALuSg)GyBVNLJIvONvaYm2QhGQP3z1*i>iqQ-YD13qNQ{pq=zf2S4n0XXHxv#0m zX;Tix0BLfU7&+6>{I-3_bc_bkgG*aC3kKnYwxR3E#JH`;&qswbNvm<&`ORWMzQxiW zFWEnDF>yp$qC!U=-)lxTbge!O|Aaihu}l6}pby_T07eVO{&`qm#M}28%z1o)gd7lp z_gWLHR0Y%j$nL5fby0S2S6RJH=46n3E{_Z@qKvn)*eAosrNS>f%4G35ucp%;-q#)^ zFO9LcFf}O>M5A3()5m69dpguN8A6ol_ zVSqPT{9HcWa83rc@6*^LOj{h>X2E}FLm;M@A1kY_sS$^SrIwvvnQwkpv&O7naN~KS zOo%G?I+=~tQDK9#x61ur_U*ou}=BV@dZmQx1u>^skObk7U`tP z2lxt0lZ%#TlMl}(M^+0mGx=>w)7j8|IfS-G&~|!@qbGhTxV%6S}bU<>uOE>dmNBRRsqR$1Ju6Chw#aFg{RH-G{})mgSYyc z@tyl}K%1XG@FKP6kK``X=UV)DB;Cg*0V@Vb#OWXbBlMQ50<(Si=CrJ5o_Uh#yW zqYXt=Y{;8pSYQyL@OSy(t9^RWy$s>?AV!mNlF*RnIIzVX$KYcg^QQ8X5Z0Jipbv^B z+;%ZewT-lX*K=ikasN{3t6VLG8(LaefhI&%mQ5R&QguZVrQVcFvh5MuS=Z z$bbAjD|#ux18X=sfQ>(GK7mqDNIMtwu9m#8yA~V9IschQ=H@j{LJv~!!rNs`;azVu z>=Ujs;$vJ;49`sD2Z{@l)#7DWZSKZPjO-Z`ngnqXAIL?tRBnoqzxg?~RDAP;ZkBm1 zrQc_5(>(1je!M~s?dFSVW!{xmq0R%Gh^0>uTb5LwXy=E7zGqD z8ohV(wlKfEC1nvz8OM+?xM7X^-yNs>RvQ$q)}RaHyH6+}vX^M-`GALZaSPWc!_F*@ z=t|)0Oaqa4E;MiiYMxze^kPLfZ(hf$+xkERisA@)PbV-pB73?*X4{#s6a;}(bzH~; zUq#B5IKF(h;W^qke9(jB)QUJfzCCg^yUyHqlJ6MYvj)=AKlm7dV2==djN+ytX2T)n zX;K)|%Lt^`w_uW^7pbe8`n+pdNCgvd^2nhLQ8=PwgJczSu64LE0;=di_t?~LUmxtJZAP4BbKrctyp86Ej|adxf57fs;xAaG4avPeB26? zB(eV48en^woTPOB3ClNa0MK5ZkC>~#z#Z#DZKcGR~hPZGTIeG{CXpW$qwE&221Z507=zi+wf<9C*Q3}&_s-5z`@ zcsV{ z_|7fhKdeVKy$OTAd48M{B1A5Etw(pL`mIPO@3wr}iPNq?^2gPUa>50Zn*e>8|5MzAow-G(5fEm?8v29o{fJSoq>#eJamZ zAa7HXYzZ@SWkc6|6D(PNri{}mklXwcAJZK$ER-o&?&A9=cHrALr@p;LSe|)fpU8DK zshgW|9zR6K4Hcq>AmJNdlj z^o!q@F<`P2h@+EyMWj97D_39oEJWq6FVuWJ31|c$Vb}x`18O8z2fA8UaPDaxe0q91 zL=j4OduqkIcGg~r8NEJh|A;d-Rp*vg%6jATL{xs$9+OehER%0=Ah&a1L=bt=GPS^Y z5eJv1`A&R>oGorOekL=s-<+zlk>sf=L6`L!-B)4S@O$_24wQYqhL91`Mk4&q(-Eh$ z@U`B3lJP&+)3;%w10skUZ%kF+^Ph1H_#pM`YuEWQ-g>Udg>?`6?yQoki;tE0?iPziq$xQ5#{~!`f$Sjt$ANK_ zG+mtr)qz-!Zq}28lIGOzC1jIswk_h%-Bmi_kqG`;TyJg!JK7@k!zPt+1l7wd+~*Nt zujw?0_nSBOluJvVrQYU@p%BcK$E*76^7t)z*eWeP!FR67knec~IFPx<=PE&~`$AfjNrrXQFgsbepwZ*=jAun-RPd3pSYXYONwsWV1mtBeCr$j z_S6@0E!AIuVIh}t*s;ZvtXkUet$vp7LL%|2q2D~lEUXIO7?9UG2*m9;hkX&2)nXrv zMBj~1iY2ZZh#SGo%D*+?jXir)Q0}FyX)&YU;j?sCnA%*0Uu+uAB+pU1$;JACH)62dLQZH@#}jZCOxg`Zi!q@fp0>tF`v%uD$5Ni@qz6n4Q2Oz^;mC24$FmwSX z)q%4uOVXmJ0;r@RoVi$Ngd3q^mr^iK;!iXAtAjG29&moWEid)Z%BFej7d3Kmqv8`a zlKUNf<`2bR?n1<9|3WL6XmUJ`dAJgP&8(RkY?jv0MT!IsUElU`?rJ-R!t+sAQn_~G zmdJgItu-zlQh`Gf&BRo`^V-SLDh<+$HSjlH=Y-BJuNn%iuEq1-7|CPDHS6u8Y&dJB zW@fOCPgl)`G67`n==jD}9SVIz!wh`PjZjGL89n6ngYSHfaJ(I5Ut{Gs9LUyJJlUXC zwebr@Pee^ED*pQk_KFCkjZD{b8y@B zb;fhK+e2-V7cMitZ%&{7x1q;g(~$16mP%ixMMrp~p$zNE<)^-90k46sjXnCll#PPW z_7cxbPpi#58yS1YUSM}F-H?brw~G8%71C(BB%kf7%? zIfmM7Fy$R8i`6LfqjzMr6ykQB!x`<`kLA#5{XCLir}@{RzZ0buVuJG7&{j-<@vOr5 zT?5wfq-Q4ZM(KuW)STZ9#e4Gj5SGOqTV-y76E}5X z1+LvIVt-Ze3mxaI5EO8h=`A>Cw&WZijigjIKRcg)P?cvwr*#b*=T0A`r$z+>hF(&^ z9P4Mms6ybP-Fs1<*C84lPmN$r`i~^^QoP1DwF%&$kjx?@g5m?ZWfoSvznTW8N^pS} zYkL$nEA>Hu!1|SZ1qvOklHdI6vfpi1tv$-cL4m#M^CzlYn; zdbm1B=NYa6Q(2djxR8z3B;K#vqgs53w_;Y6c2?PPE4zJ-L>QG$-{>iY2|(uyp?c- zHI+CE9?w?_{9Q93co+;CnjPQ|1e^8ZMayPk9q~73s|sG7(_z1_I1mg}!Q-13v677W zC~wx^X4YW0`NIZY1?6I+Q41Jc0a<6tAY;B#nXk)i{pgt?yl`0S+Vpj*buE+Pl(@qY z9qJZ0wp4bL!H0R;f{GF0XOP2E%vyS{5Yvoy4mhk1Z0z|i6sxMiT**q49wZ1G^GXgk zw(V}MR{1}!?fxV?`_9=SGe7_Pq25zFUaYoN@$L}mi$0~e6slgt7fhaYBE9nHYqrv170J&bQMc?z8!GdWFB`{${rORkN$P!r?3NLQ|_ ze}q&tKKK!AB+#f8^Z<7!8%3Sbv&V%PsU_EYk-3MsU7gN{06>Gk+(7nCmqahJm%ZNL z0kJq0Fbw7scTH+08l}f4=VVQKjePsY0|tv>OL<|ave~I!*`-e|;cP*9P8`j|cn(xW z9$m|?v^LV;3<@eSQP_kf9X=YA*vQZY8Nz+e_I6t>Lf0F)A1EFFZo84Mz5Tp+Pf)p@ zfVnQ&LX?S|6B%T`evYd;dsu#|-LS`5Uv$#kh5mKQ`)|9Tr3p458XjWxpYA3A;Wbrr zy-!Akk8^pHd>M;fbzeOhG&D32N2>|DAWM?P%*vO*$)bNmv?CF#-)3TF#)07D;$RW` zJ+6ENPz%{nf$_zIo`q^J)?~#$#8}C4Zt&q(1PF-p1zCuWz^8;bN*&}U%(cKpvA#U5 zAcCUr0AH;WJk}U`AwjxA?pQhFD%AC{?iCQlSIQencUWGn*u@Uv{X;vr?pMdqxCn*Y z#?kJosu;ISrj!4`@EU#9g4`96Vh0(-x&d$ENuSFQ`x2NzU{bGlg`7 z+VrpO9cLm#Yfvzwnp6o3p@f&I5hd>Q?0-bAjZh~7C=cpC;c18Uy?DH-}3K}KwRPX7-!>9BkI7RU<7=KM}ZgS7l> ztBIBRavTrpq>Q?x>H;OqB76-b5V@QX;^HVCp&}7G-7L^13xMQ+!$9HcCKzR$$7+_# z9{oZA`%l@x9lOyG&=oHOuoi1oGV}WuRb6pwC;x2$;}TzRy6qjN)AaZ#Y^*)gefv2? z>Z=gSki{_R)RO?@tt)xe?n<>k#W%UE!Ob(Py>rFyuIoIcQ+Me0{C>H^UY2?T#?Fc( z#=CCYK4x;lxXb#F*&_trwO6M_RLI9r_^Suapc57tv>Ea4%43{yVj|?-Cn-_N{t+2A z*=xBH7rxs5tM!64d^3}1$K{s++c4XodM~K=^^37n=mWV%lCx9Sxx>1Ua>gf)bqW%vmP5OXenY?mMz3qki*)Yd z!$Yr|`dZ6%Gj1n7!!0&YSz|{>b=Ra5$KoI-{mBUTB4zUwo?rDM=F;5PIobFyCu}4o zDvP|Qgb)6maG0f?x}|26Nz*b(1>!UHQk~;i$5swR)<|bYVeAhJiK;*kJBkbwZEt7A z>N-DCKu&dU+to&ot$-}O@h9Wgxa{0}@)=rJ5ef9GFDkUeWd23HVRsOrGM!8B!QsK2 zUl-;hZrSAB2gW)=@AT~GpgM)*3M6eRpT&wPW6!IWoA?kVlOw`|g*Vs`eMMDpLD&)$B{B`y8(5V7Gvb?*>?Qz~0Q zC!siI2e53snZ-p{+=e6-E*+TGDSh8;iI>C80(G&^c4xYHJGpxVUw9xgJ9?wS0K^&X0@`QtDb=*7tEET5j7*46Uk& zYy69-l4)_LO8mR5$a;Y>z%GbJg%!q3&^>wb1O`0VME1pqaa9RoT7JqRrK8rM1-?07 zgb*LeN;4EdV#_9oFBpk=B>7~<>X}y)1pa8pvlmmL)<4L(k<7i3z@70U22osl%W^*} z5#_y}xAx)2lH+dnH{~i;$79acx?s7h_Cw6LPtUF z-;qzOmiCM;GuZtJBF3a5I5X(abeVO|zf6B5Ltlwe;QNEy2$AGgg9Z(VGm1}d!ED!U zqx_*hF&?yMw}J_e7GyP zo#K4YD>|7h8z;_1$QpE%`I!nflxR^Y>Jc{F|I`( zKnAD}>vJ{n?ZZ&`kdOL)4pndz$9tw(wFm_vMCmfA26Qu}hp;z{M9psYK?4e1VzT8l zpHYOefxTadCgv{e)|IWq;QBq+Wp)WFp~X0cw=rbuGQUD8+ormvH@5Jwp~Kc-qA^^~ z|CLf;#?qHPsvCs@a?zpe$BnDH44zXt9FA|Dj-Iq_j$$tZ)@b4PyM;RVx9_$Ax-V8HV&6bT zr~f9mSBdYPeXd+axvIGVDXf^==lXKrSQSyob4DE-%~z9Ax8|>h7ZHiUw)fQeZ2xhtoVuqgzU^y?liR73biZ0lzXNST(G-eV?eEK`=Fav1n`2Ob8zsGSe0B=Q-iLJNK%d4KSrg8ccx|Koyv5TK~c_|KSBaz0OlcXHH{V z`~OZsZUn6zmm;Ibr?z1bdu`7cC$$uQEKu{Xgc`r50(BAdpt?K#wRs9Y$qP;ZZN+kJ zvQ%lRfj*V7GChrRR5L}_K63LD0ox6T1{ZEzSuy9x?` zCc3=ou8^V}7CBFSU{d1Sg@-n+2%zm73`1&~n@~D65n;ep0!34h+ zVgwt{tOy$xVrxdqi9HEh2)U^k?c|2v<*AS#y0P3tleZ`ER5(%Dmc#q!M}p0T+3_G` zOcDRRy4HnnGEUOl8!{h^Zb&CDH+r&NQYbLjZ4^ueVqVQ3Z>xD!@0)afq9?#asCv8b zIGvkR6Oe^_D&Wg*G%T!KCmy5anc>PoLP5;wM`rZIPvsH=w>xhWgBBw2iEH};5DV3X zUs=u~_7-d1{Qe^cI8gTlcUy0$tUyz+3l}>b-}~nAb0dnQ0!Z z7QUEJ#JJMB^O*RiT3ONX79O~J7LCWg&!*b+gLFx+@(%pH#PZq#Grv%BlW`0P9C%fU zE7P%JVMB$?k#7I=HV#(xY??U8n*GusNfhBK7ZLQC8mZ*HpZM(V=bsPs2#r^$-*$6n z*0vt+dk+M;FHU|)C~@z@eUp}@_f6!{pIA}g!L%R8_A#TC|g=0%+UY0pIg*+Y{vkt>zv4@X#5h*dJ- z3<|0&@$eITj4~OKqh&{*>R`;QGAQ&{nl_dP>Z|^I0A*W*8u|Em@dXgt#7HcD`h%d3 zDRDPo?fFG^ezf0F)t#)Y7*VLSv~?x)YD`{}&RlxAEOL=n!9`nJez19Bgsi*&ks(*T zI0;~gkY=Z-6HX^h9(ydv{5e(x!wo_jJmgv|ubG4w*-w~R$#)Rzta+D^usFh;!Mak*R<0*rg`yrkL`x&Bmd z^ZRgcA&241-|gLG6u$NZAQUQ}Vvc=Wc;0GwF3WtR0DY+y$ADW1-Jv$C0+&L0QVl1f zAXB+Zn2d~?pHSgvJry&yqhRzRiD!6L`D9Z7v3Q)I4l{z{K4GbT*eQ`4%Kbi^>U5vz zzo`elHwEflTq#V-pU%aS>bvyS*o?#myjKn*HJb@gj7^FL(R;-x) zSVE8Wj5^i%+3yqF#_L?cJj0EaVVv?2&Q~+m^iiMZuFh3IfD1dOkH_&^l<8)f$|FTa zy5ng1VBZF*d9Fd`epytydXcy156mZ6rx`U;IB9=-fV=D(rv(Jx|I`Mvim@}}Csg(rx%$HtLtJh{^h0b}~$;h>P# zv${0%;0f*6)lb|x8PJO0rZvCuB)MIQ`$d^6XaQI@!%pSp*|sjxKq~3;tL$t8s+YIM zTyE3!=p5WJZzQ;5$3Z4?dk($iYYMYX7}d|=w1oLoHl#|7)x3K`>>kL+#$f$6aqy#7 zJwq4b-=VVuVH3(b;=IMIJ~!yTnmZDvMdcrk-N-U1X4ufJvJ8-&go|i`8x|Q?ML9Sw-UN#rQa^1ZZh?Gnl2*C zFt+9w6mt_AD8#3hO%3t?h-BtQY;(NNUA7@1p?MN)__E(20Bq+lk3hrI1}|1Hw|;WR zlL*8Ps^`4O4EY)qLf+=FHe+Vn2U4loC#;RbG3Uq@HEvrvZ>7|m%qopnK29uPYJ-o) zO2z}T^%r`<*yVb|`_;_7W5xbSN7+2NQDKFVP=+E#{cb>D%--XUUCP;tf+2+DS^d}Y zZ(FiOD3tPF|8GC&p_upM8U|EcecL2-;<~laaUrK6`(v^f`-ImKDBKIp7gjVs!CcnjF#Ca-Joqok z7leK#xpChk0HJmStm-AeIiO#}Ap*UaTe zOl_WZsF>J$#oWBXXxjb|StszLnND07k7&T6>m0fB5h3U=6ms1Efa%v_!fq0GHP1#{ z@{l-kZVORkx#CT96w&f6{v|ah3VwO+gBsC+jaje7_B{m{qfn&KM*T97wvIm-Y1|oq zbD8*R`qkC5_6YdzbK;nrCih4b26DxLE_0d}bfv$D`5@rtq_EO8cW zaddjLE30Ue8G^&-&nNz5%P7^vc<`8JF60MquK!MOV$Zog>S)^c8->iRj`3L{=?2_a zXNSoUNc77A%~MON9yzO{I5ylD{+0DNVH;Y*V3Z8`eB)`jWJxPj4VLuo?5X=pppZ0g zhAhx=9*ZbS@6v&vW$$uZ-e&%>=o6hL$C<%nNZ9@gu>+(2%F*r`F+MJENp|e>3SvVu zA7-aT@IDD{OGGIbJ-^HDuUs%tdi{bf;vMIsTNYazx24I~V^YLus0gUFU(l}6 z9JXJQF$-|VCXFl(KN%MpNsm!}H7=eC8%sc{5?2!_c6^UH3t4%Ax2XHF-`#>CiA@gc z$1Jf4lyfIM$4OJxFY`i!M6G_@`EN`^olj`zkB?FRRPJoaG@)%br@b4)`5o_{hYxdYlGf23 z^>fh7UWdI3gkq#Rs$Jd~{`pAib2XLw_c1%BD$6HH@`=EUQ5Wi$5wb$&@$4%GF9xZ% zPnQL|tTO;a0$FHO+M>~c`GBK$mOd_|7EdklA$wAT|Yij42m)cnLlj*gDi z!em81+J;05+e-xlJ%ykkI8!{>nDFSEnl#OR71 zC7#57F_rGDY!W3|hj+VK62@`!=Fn|8%DVE8!d=PMV$+GnT zYX@4xwV}5Tff}6=y>OxVdtmD=LGdDMR+FL+CC#oX^4E0RRH9(x1&^T^+^@npk>mb| z5wdSEqFgqNUtzQ20Q-(SlA;Gix^w_C7wi{Q5AQ-QACEQ(9gYz46+T+$)FL0GW^ep| zOnqfolxx@aP?FN!-Q68ZDcv9`5~9S=rNkg1AR!%sprD{2AuvdHw@3{zlpx5^A^Ban z_kP~*_Z%K_*Sgj^Yq3BS?FLR0iN8k|C>;sy)*NB9xxd}_#zxO@%SpJaAgxk!*n?Mg3OSE8xe@?emlUq0iFFuuk zt%SLvJ9y!%AxIsMl(BseS*ITf9swdhxSHA1WN-_d*y%0)&_@L?exBCbqV0$pVQ`oY z9{*Ax5K2CM!c^4#356zG7ns2I$Z@xI6eG`<%@8xR>Zjglkzaw1d&gIiZ3{&PxtD40 z)+udsTy{i2On-9&hY)(_;2Bmmc)=apbrHnl${b)ynr!1IeDi4k-VfDB zyW(LKEmG!{E!^Vn+N?1%$~U^kfm`Jr^SNLoAv|%S&{=bUpOaZ@TaIf>vcu`34C2Yb z9y)o^Gn|R_gDs_zp(eprG6ZO)t-PyRGFX9BlQ1jkE@wrR*KfT~vBl^VcptpzQEP!4 z-^!)<;UI*=m=}w!0Qt(Bv2<3-vDj{g(!07e8@JZGf-X$zK2LcymQIRORY3W1X_Hmk z{3`=fAK<-(_5_`Mc$zf3cnjx74Dt5C2K*Vp8?yxT%uw(FC$=B0Z4Eyf;!0q7qYL@a zc!_|WyCTm19dbO2$2OiNE5w!uYe zN~SKM{OW&dUj>b;%Kf(a@Rl?2KA}HdEnvs1_%n-Tz6Ab=i*%KgH2v-vssA&{Ij|mS!^o4OTRkO(bQqM2 zpv+yA=zH0kRY0-cU;lrM*ja%e%?myD}7l5yJlvJm%NGh0dPG5?Dtnkl= z{CIjvF&bDIh>-_>k_Ogd1EKCfoLMa3!XAgk7-;`Q29=rdxl6VR&F*w=y=59eTH*yfE}XHdQ%7QVkbLCWZmD)j&xO{>^0b-|OU>uG`OGvlx2&Rlcx{~Clt;7& z+jBe%IH|sVH=Spe0^jM_aXhEHmxvU!km;3N|8+azM&HnrYA&Mn=A^URxE`73IXn@p zHy;;6-&QnUv>_54JLQ9xV4jkK``4TN+?-&1cbY(tp3~nHz zT*PF@7uH&41hCRv;A)xt{-0+?nErjn%$B^EHTx@2`M-QfS>sf}=dBu`P;0vYZaK1LgJsii}!xB?$E;RXRzn5_W9CZ zMrH6H$X^l~S3E3@@J;A=E~sXN#x)`b)^-u+()+U+c(EU_I))j3)&`pM`se2$`5;sT z2laaK#oNrJ3(C&0m)x@kf?tR}I0?b&aCa23aByhcVzk~ZTt)eh!*Ui0A!r}cRe;nu zlb-KtVGAIowU1dC8B}`?gCGgW5a#Et6FsoVx@r$L)-*+~Jft8uK2SeCJ4sEcsd^mY zZ7mqE^xdraR^y&qt0-g+qRn9LudthkP333x?-!1y;VSf99s@GrbOgaY?BuQ#{%3p* z--1g0oLaI`#tX*s4=ul4fu&rbuqAFNJ-H3_r!wY$`{bc!+h$=dfA8)~#Z`eFMei%= z!CbR=pB)bwFWEp^t`ALP?4@r79{}2wXCh>VT2_#WuNg&`1`X(+a~4;KRR?lJPt#SR zIgw5SPI!(@n{}<%Xcsa0fbW|U1Lfm3ah=2fc@jO5^O%=KxTPP-*Yc_-DpP>KN|Q%A zX&(;-sSvCf7V9$}SZdaXHRv6xz%a=cc0Q+C1bI+eL8q3Lm!;>_|NW}tAaxBu`uuZ& z78?7WwDZotmAV-z*h)@7Ez0LL!qLGH#ucJQNCVwbsdB_D6Bd1KmZ?p9^bbJ=nCUx7 zu$s6|)%Q4THcsed70U}NHYmaq)db&%W&~Hg+9q1;+`_i{Xk(r@G_~$wczSdRnLR@dV9Wm0GL4~Zv@Hyc4u&|+m zAxIc-hnVBBu}6-wWE6e`_h4PY=BdDL=Knvjhci|4;sSp0UwZ2XvGPr5V0hfz(Ukjk zp&Jk7^qPd3Z>bNuuG)Xf3+P~zqnLFOnJCZah>4zAKY9kb9(gx>6o8D<>A&8mjwvr0 zKOui>!s9+s|H|e5>dcjh_CrQ zJ@>;OWHPlYa$MafIeZ>M4#PArgyl}ZGzNE- z&lCa?YfCle%G&O7@Ms+4UF21VGHnFYP_U@3*p$Q?c^gJkp6(* zoP&K7!c27&9lvCPAAHM4ha59C;9^hY!$<|1*0Z#WPaA?^JkD$IsYea82aSqyK9V-^ zEgLR$JF@XUcIXAJT+be0O3g6ch2ACYm=z{`PlOCOmOgv-yz8o#MY>Yg5eJ{1N9+_S z`<_re&eIGs>bp(+t((Z;}|q#c3xjl!TRB#U&ewvQ55w*vO;Fg5jkaO)ff0 zV}#~0Wc+^67|;oI`W7OF#Ss*(cUU}>{j^K;pti)(U~x@&vYBPorxy5`P(|>G`*d(i z;(^9hfz$Qw4@1l$LsEpZoagHVOZX0()SWR5oT3I2-4o{2?RJ?bF~8(Y{m$*!DIi7O zH}^Mx$0+v$fvS-T`!cq^>|%r=@y%h(A3Qj5qIw;7Q?E^1B9~rHx3=S>3KK6Mwf0x1 zVBibEjsBY}Dg*YU5q#7os#;OhyPKF?)m+KKWWuf(*)@$@nI!nwe_<2+0F<9y_fok- zreDiOG&7DjDPXg$AA6G)3@tp{PQX<{zS7kg|ESc_Bp>@O_r99ZK-ZGm7IY*YVdM(s7xHK5;!DgbaS;ijg&|GH1gf$UjCBgx_fE3wxYer6C>=ZoF~$r z5x1De>R4Rmnh?T0ffa})XHhHg^%V(1uk1`f+aTJ3N7!i6<6!`nQMej2{8R4BwhLAt zc(fVXCqds_RN?Z)T(jfD9@T%(AF=ObJRRO}C7C^Tpn}AJh*Ex{AXXJ)2Ik)wM-_07 zhzs~~FTBV4dh+6sg0ZaRY9-uIbqCY;I+?f|-w5YwpE~tStwGnxbzZ4AsR;(cg8Q}G zDhPVZr(=NbBmWvbDd)*A!7T~|+gu|VDL&BM+_08(ls3-iGP;f{x^EkT3DVCib@3Y@#|ElVS`;B1Zv!joV0eDLUrdBj10WdI!`UFhIM@h2LBlizBKyK;8#OZ7C3 zV^cjBp+Yf8lyl3cK?Jx?kC2vw|4{L`q#!oOPSG~&pOd_-F`RduX;g@{5)W~p8(d+u zSi_!(I{CKe^WR(SFSDh`kI6$!YWbhY!R*x9E>|a7m!kO+A5P_CjMeCyq>)HJ?`D_O zyCCxlqE!-P`lk3Y@9@*;(NX@|`YZ7Hsf`CyPQc^y6)s+i!d zp-VXzB*3tU{LSg!J;vjg-mTC?bULYb`UpLYAs;K6Uk;aF-xd~RcAev0C>~^EK6fOxS zqHCC>A3PJdM~WUEcEI`-{q)gJ3ISt)2)(=F1*x4`FEP3Kn2AAZ;cigH!8_^if6l3| z0+kMNDNIdaSt;P)KU@$Gd%KD=m+lDqo1OZmGhP%trGy=r`((^vu#$_p!Tp$pmmldJ zXVH*!iP!kwJ`BSgwPLJR=WENiMtvD#3j-KXwC4_L+;doCJVLZeM>T}NdsD05vTv=)=t*qkm!b!<_Dxs9^cqvf>>@| z!Xh;%`qMtg)eROZ3mv3rm8MOrLBShNsd;- znD`7U)oxo6g^D%wiL)$3S610nrP}X60}EN`)bul^D}4bP8sRetnE~)vIAS9XchrT=+FS>AgDD*5f6A4;zVPUgF$P5Oa8zAPaHEg)HRVTV^sIO*#LPuWmf9=6C=ZLf&2 zl5Y;Kzg^kKJJy8$mavaOx4l5;P!{(0M5EMT^6fkpP%!V7pGOYF}KOwG9eOy$?XJ?qis~_6pyZ*s@{6akLxu}<6LtBUC@WM zI)-AowoC*T+RYyw)P8ap-)gUQWA+X6^@y(HltFRQSozEOGCS-YbX7}Ms*H^_?E**a?NPH6%ST%$T^a6eiVRFW` zDZC=gxwZw+*BJ)t`L}TXl27|DAxuCLbFfgZn^?4|(GVuycXp!~okZ3%hF! z;d75NIG!GqNa7y!%Z4HLC>j~MYqy1>qs#3z*LCJr$Wt^wQG`)m?fsq!d{b!XxdjEC z)Yo?_Rh}qWfue1Gu3~3K9x8-)1R6E&@d3Vv?dioadLu4F2|tEB;KxX=x0HE!8Q%RG z`&PT-m+yh+-VU%j_ZBdP;Gl{=X6zT103OwUy$(Z}*7dVaZ~4WQJDxj?m3!1}=VJ_RnwVmWT9BpqN zV_n4BgUKw8Vt}LZmkV-?Eop1xcMG= zT}KmbBYLYvM#sD+Z$;AwR?)0@jZy5duf06kyrvH-HIP`l+*M%h(9($3LUrTC8k!!*cxkStobeNkp92sZ+{9K6R5qCsVe{6$)tco}!F z^JA_ac5c4$Y<1Ny-k}>Z&sTWI8trW?a-shA^i^g53XU}E2TS4_f!4wMnq0Gc=}-k% zYgOYQx|CffTcS9F$Jup59Y2Zef>zzwNfV?4+rNi>XPy`ms!pa38WCisY@0r%u9|s0 zO*5E)kv*l8L-?w#KO;fu-634Mx2!_zZj%5GYgK4|(5c!YvBSDr{4r~T(n9ULE52Jt_#s;HIKJQfKIU#!W}?&%DNKG_WN2AYs+Q-H zZVYdOAE?<}9(v|36}D3#7N4}xK!in4pDQn}Sfmp+V<=OAL$={fJ}n$;EII$=(HV!v zg?!im8szx=T8epj{^TvfV16lNa&hUD&cn{m4g%TrJ9c9}y6wSasjTccKhm8(7jE)N zc;f*RB>v@xu)WZOLmluo>7=Um!9&T4{hwokKn#-vIC>Qme5tv6>M02s4;LYa^I8%h zxkZba?|sS&S#q=K`O1C|=N28G*$Xy9e>}n$#P>-LGf0~0GyO2$b98M z<8f#mSDpSQ#`5-S2Isd2X-kCCf+y_~Lf<$!(Ccfv_~3fSp;zt_sV!6}soLCNj7xTS(Mi2ulf{%7-(fDisx$t5 z@@E>J6-wT~6|*DeRc1OfBj|QIevLdAR92dB>+8uW-OFzl_v1ObGbQtX`kKa-zT9=% zF@h{XsbQ_^q&2ZYtd8h2gsqg2wk-s;&J-nLos=g9R2?I{X9{UR+ir*Aq&bB|RFYWDCPbAwzWlo_wXQYIe~(e_R^0 zWUMnGFI6&WzGfL|J!TDTPyj#?P4rN+dzSVgF>80hkUA>dxRiV?wKt6F?>eml?%dy^9rRI!qUiCdVG2f7z&r0c&wSs6OY1=x~6(o za+2we)VHa5{5~5Q6`d$3cIo~+^>*7WTbB=CK476IoMH%^;D#|9mzxL^1z`GjdF82B zG^JRZ=J{3$eMS!R;J79Kf5YJr^n)giJ}8rlj&Oif$H3KC{c{-)z?Dqt`#1tC%`cQ z(ZsPy4wR7v8yYlN^X+C$%-+Y3XWg|E$Prl>Ya7w#`B>|B5v--b`{0_AA~k&}_bB5xCorZ$WDo#SNAQ9yo%?6hzx7#HEC(r=7F!&I=??%?e)+%1PgPP) zyAn})7hXgH3-a{3Ce6jx|D5Hc02T|>h5?mJaH1SV#`CB+X{1_2O0BWn#wMzPvua1h zQ8j9c;?q4^a*YT<_*5D>7bF$mzFa-}yt5P2KV8}Jz4l?dXTXseh(C$j!{(*LcYm)f z(Kg=!%@#_hDv=+#B0iTnp5Mg@yW?3f>ceIeJ+M1G(G{BY969(?*oa=k2WtXdZiD2I zQd;^|u?x7Ap^=^9Y~9HRKj^e?>6AtAsj23P$)cOe>kfQcTvAk29Dc*0&zsFF9b?m~J`5J~ z6!Dn{(w289w9-uXRbj|g%OLnhs^1$A!|OOO`g$S!0!F?TGJ`0LktLg#W39t?UQSh3 z3chAnNq6KNjuzU_pBdU8$4C7pLjM9G;;%#sn$Rd0nA7|#?x)fJ1izt`uNLRNpwBP%F7&4|HY)~~_VAm)B8J_bVX5tTiJoagmqLX#&cuoy=w7`q=tY>L2~KHC zM`j^-2KNUgY0cZ30vMz3u$aktC=cBKV%+xTl1{KelP0gjI`xmQ_&;3(j(u{;cL;yQ z$<+N`^?5ptw*es^^rPe|ssDodrD0s~xi};g8&A+-LYxIBj9%1^bHKhXJx&FRDGdvz z1r%PpxQ==Z#*?^I8M5eer$y6V>>tdTF5H)&m~4r9=ml=y`7GHsU&SA<8}B7{x$MUJ zpdt8^U;{m-|J&WV&$)rj+>*>Q%3XgLfcSW#Mg~#lf;)j$>mg74a5nZu9Vf{`zk27O z>Z}9SNfN#NY^;H3cCpIq_v6l%prZUFfSn&E!|vMX3&h0U9&@I`Yv&z)jgP9F;<9t( zWGT5}FF(%eTTX}9a8Mvt=)x1Z@VkuEXo%T`>$U!+Gb&Y$Wf34~>cODOL?DKCgOz}6 zGV@Oo*#R7wIR$@O2Lm^}FV6iT&*N{H{$t6+(01(*-~Rh;!tvRd{=imTOW>a;b~e)P z(VhKaMmtz8Ka8Dfp=FYiM@&ZMrAvxH6dnYPN8cCp6vT-K&RqPGAkT{23T66@AAUfO zBCE$;9g;WB@=eBAJKz_?S`{~y{}NYWe>#&?WvFebX zeL66iZcKEyL(tsiq}AyBJdv$Y0=Fffq2hrib=zh8oz#>S>E3CY_e0`QW#Z!{;^U^Y za(Cp2U*FZT5;s9759wC?kDZsOrqn50cHoNszsH@w1fm1F0x1!E^Q+*Uk}_v|+$~%N zj+Sa>_`wUMFUUL*^XLZeDiU1+VqWcwG#J=el;k+GW=|nMO$RIbSXxFk+7m{ z&Y}AQq!~EyhfvB0rGL<5CtV_p;>U_DvtU%cu+e!I0B*jzlTchq2;I+L` zI&aq=&^Pvb+xufCf;6q&*{*~ErA9A(I#@Z<8XkO0`_p)A68!^T47-0HxrnXt69|If zgx8S|L{stK@<|6?hbrkKy4Jzm1esk5yz?$8Gk~P_^6|v?=(ajzzNJPx)mHLhA)>&d zI(r84(UOct4HMDsCw>xe;rJBm^10&;1>zvo6?@pfuB3FX?=yF-C3JmN9mCb{t4lUQ zGdoR_H5oZfOw4kJ;?J;$-5=oRtD(@n?XU$ONYGA%VgbFo7V6iYG2U)xOkz?oaKA!zvOjm!`b3SiG(OX;`LL?kJV(=?L(ZZ#Lmuu_T z%*e4JE~*jam4jFybVJBQda!blwDeLF<-f2Zra>!kHvO>#oAaXk)L_XHG6tIRB>CDVbNR0^<7fTQ0u@6n@rPjx8KFJEG;6J>2xC$aey zCpQ@sFvbG5YW98u0%2pI1PE60fw?kr1Qu=*I^}1Vld?D|$y*TDclR%&H~W|^j zl8yWbJvQ~piRc%pr$gFwAnD;DTUG@#$MUF#ggFiFt0_3c!JmTmdKc}F!kot1OtI*N z5xd9F%R?3}j#+hdbbxyoGYp1Ab*-xQXBxTY&`Yw!i1jq^lfPyM5gVRLmJ9U35X~H{ zws~O!^K=Ozj0o@U%J4@@81!Tnan}TI&x4pph0pi@JHEmOe?qDD@#60>Jrg-mkj6!I z+W&1+`0x{usF2KtY`b6^=Y6*Do;`W(<5o(Y&hA=dz@p6b1yp`#Y zO_)_mHPs>PFwCaS?2ICj%@62NYHe>amdZC+9+!P4CL+i47vvi5UQ(1*=-;-KAGt+J z7RL1h3o^TD-eyfE@w;@+B*;Beu~ByB7s>&Dw1?uO&YCRdAC?~m<&xDqO;RmQn$Mpr zu-}6@T7Yr9iv*#g`#zptAa_cO1O7DIG}||M3%Bq@=?4a6P~d6!RKvL`9%{zbZvpcp znn)pDPwCjjA->&t`6Zbia)l_AUg>OrsgfoGW`4RJa7(Og()0Ph#nM#pW}QlZ%cI(; z+QNZm%;!R7{zqgNzjv^`;AC-VH`wZDe$d!cmg1nIV$7>BDjh7yzsnX^N(Pa)-jPAb z0Kdf32T||8oizEiy;+C)GkKIHiyAO(!5D`d?pB&bAlU_DrLO$_5N@mKV`?N1Iw^x0yXh7O8O2X3_D|Q z{F{8L*}=T^$--x<2C9!9u|-8iF;CL-bmW~kJ2JzmNGA8!%?2t(WNo6)XI@JkoMv!c zVJ!y#3LboV9(DZCf5+Ww)|aQ@EqC>lRdgs=iTk(lkLiNRb<8_B55y|gG65@H*S{}_ zM-x-UKGuf@M@TIi+xOc@;fYDfnL7z-22_AS8&Dy0+mS=#u~WgzEV@=>+G72wR!6S3 zeE-SI)TK2;(CxY1rzqAxEJ^IcZm+q*5+>3iqDph5dK{h2MyMxfWE~#iBHCoKYOZdP#?j3kd>xj3yhO$22Kn(fD2J(F)bD_WPDud*6_8QBznlh zqhhvxYw6|keGCmKlR$plS!Ta)Hi&=Q+}w1c-+27w3GeT_nH0g>jhJ)9R-t+!?+3@7 z;0>7mZcfn+Yv#RkfsbGN{eYdPaOLF!%STvGf@0Lm-(yWX4#6zwh3N zz2kXwAd6tYukb!F6R$CGi{$SW=Cfxh^ddL<`Mnf?WQ1}tB!qj`D+30gm|^hRw9R|s zt;5sO9y+r3()b;tx8kAF(B1Da+MP+o4k3;nXGiJxGDy6W{F$_WIAA6{dk_(sMMY$L zzyk?WqS8=KEX0!uM+inpP~&94c%h)i5OK9GYE!CJY#wyY^p&Pc2=Y_I}xGKU#cI z82xsW1;o#}-TiXczjZs|i$n(qkZEK&zV)~;O1F&c%>%BLcpJB5Q5nzdKn40oSQd7F z@K6gaMUOBv6hj%kjefOo#PB0}Wj?2$8N3nXaO$HK)uv;Rr)1``?2K$xb^L*4NXdtY|>S&|FWP<)(Io zz!B>&r_Y^D`%)E-VGyUX=4@=}ruh)Vv>#i-%o^&U++l%_3XVP=Uciks&jM6Pm%@bd za--P|KJ<4|(;^sI8vd)F4TlZPLrt5<;?0|rkj*jLdU`8l`KOp5Sw-<@O$0X4G6+wB zpDYCLNrfIroz6}**SbbB2^G8CBrEcx8V_`xQul7+k-b)N7z2=KjhEXVJvR|I-QC?B zvqttchVx6qS%$R`LVr6@wy92%MU6mqDLM9vG$C90t5s6!PfD9l$lPcQE9lPwk!fc2 zg_D0_+UF6FjBk3u=>oB%24xX!z87ujYeDlz>bG$1m#mKSRvvQ2enyfYCforak)T6O zR>AHEEo#cjFDiF=Q1a1r?{Wz3q5gH1@UESiN0x!DV`0ao*Z#MHPzUnFJy@$A#5n`WPcuRs|2v_uTh z2UqxRnZCHgLNDus1NI9*b`SEe=|QNJ#7!WrBi|DezLY1hU{`1K@FN%LV&K79%0y57 zR;4VR4`kPo0v)7$+?+%2wV)&G2OR6r z$JgHbcdW&KX$EELCwfQ_$o?)crj}qV89Aa>@7nHZYz82K?A~Ov-h3rjfAX&b7f#m3G??Dh`943NTl9OmEroz$ zpqkI!zt&M9>VVDzs4v>Ml>XeyEPmM(e6n0S=iYI7vZ&;7u1wtc%K`GXc6IkYl13AT zX<}S}$183S;W~AfVlvPlKB8*wq&AqE=Jj%}5msWshY{c-c^eIfBH|>ZrDfBPLd_Ew zb(R@rFwwlG*ScdjL&a>x&ri| z1?vkJo4q(B&vTaTk%rYs+&YaO)ZibkMYePzyJ=i{F7xG%CsqJ0-W%71F9raXy#O(p8KsR--^Pd=<2!Y$A9l6Aw@b)dXf#T*I;@ z9M%9jVPhqPn5q*QLM+Rx;GRe2B&(@<6t%!kT=^ECDfG*rhh74m6=?1)9x4#y@Ru;l zk;zw@99D-8bpMuB4j!NMgRZ{a`t$ueIiwl6@Ok%OE*#dOfJzkG4!kCxC{A?gy-hjH zHI_Uo`b^Mkmc440eg6p_3lGrWk4;WWe8{qzpP!cwxj2o-iXGzd6E1Rm?(@TfJ1%^2 z=LiS{L!T)491rootBI|z(Mgz zoRt_tM>br$;r4&(1yO6XTo}f{RxqBrc}qS!0Ms#~dLGppZr8c)RfjguVG6|LCahs` zN5je)>*TW#E;iwd*b?eLBsJpj3Hfigr4;vlAz|aWUD)YmQF3e-;Ya#*0fBcPkF;AwAsV1iQ;2Q5PmP@^tz8}bB{%KE4 zh}wJgn11fX*sT+S7+d*kx&QUyj<2Sc+`}*3*k?pLd1+9Xm80O$$B{oAy<60ClQ4Z> zL{y$!tqogo7wuv~>5>eB1OZ`tRTPMu%^zuuEx&X;+ClKF)9-6=)=)S2@7#i1fMqDE ziuw6eJ&b#_?Z+|ewYbxq@w|%#--bq5g%X@boL{}TFBMSB6;=?9K+hJ+(>R#B)fhKK z%X9FfAkprErw)f!-kG$uZ~P$3Ucd1sNHWqsC%xfqe41}4!{=4{llyH7Pn|QTB%+m) zDsr)@OV#=VO7g9+1HR71(5fsNGZj7{Pf1DPkkTxAYxzFA!B;S+LFgp$>@ghBn_w$>4P5eXTE_kA!J^oO;R6nYY&#Aerpi^>gP4wQvyy~|kscD4n5I#&iiK*;Sa_tw#Qb`|EStMe_7ZUxV)>G%2P+VqjVnx|7vGGZ>woj&Yl-UF!dIMPQwiGg_t7*3EbMc;TCTaeNSVPi&=VCA;OIg!B6S zNTa~1sQM&u(dUawuL=}U$HP}|v==|;wx5KYb2{So~nj7-s&scd5Dc z_k6?D(Z#ry&>P<@d_g!QwlEd*3phgUCyI5d`D@_x($H28@*iGS0s;c&4SoW;dGfe# zp;l8?-a~h`Su1J5W72yhdx6+~0&C!<>>L1K#w!Z3{4+Wj=-aH# zIbd=J(!R`B&rhY_(2jNI4Gi%3dQ&edPTnIV8M(Iu@U(QheRB) zU(Jl)6Td_&(P{ipT6z+?Uqm%V;nq$kG>@DAqP=EH691ZSsa@$G4iaY0+L$aVB{?4x z&c)W7aB8P@%XLik^7IxC-3@th8yu0s*hJ}ZlRUAoVcj2HKZ~Y!K!$J`#0r|4P=GImvXf^-t%mBILPe@f7&%cH!wLR1- zRFw;o*2sZ)$_higF$>S{2LndoRuE5mr)TbKq+%w$WBRKC#@I46*7HDKJXGv^=Jzj> zeoT~49Tea)i=2CY6o~YG2Hu4O!?!;?>9vouH|A0_78x0~*ZHJ(tOulk^$yObgT-Q9 zYy6@(CyB5g`;Ph{i7Sq)G+Wyx_IU^dv@^dTpBp28b(Co{-Se)H{3A<$cs)EB(kUP2 zbM~rNp#s18UZTKNY$%rCm528N)4w-4QwYT7GAuE~9C;`ozdx@FLvGm)&a=jl-rU{~ zx^H+DP#YT`E$lWnH+gYUYT-f6r(pltdQe`U!|2>xTn}R~LH;>n{qIVm(~ET_rAN)a zYo2{o@jpzDqvaFJ%e{2BpD|JG(E>_9>;B|M#7i<#q|B@5urJ2K-Xg$pZ>KX5kF+7z z*O~BnSyIC~P^I-d-=&53M9;@TJl>-fI)OIzwCRscZsLL2XQVr|y2~O1w)A@ItH*LR zWPuVUyz+CGL6SN;i5RJ_TvsxhzTCN|otW-XD~9`24Hxyq zJ1|K=ag7^xY#5HL?09DRofB#?V99QqBpjiWQe5pAE)Z{FD#)<35?yU zUm|iJ!}hAovRwYtw#P+I0ZKff?av!7p!%y62d7#qd&-*C+~ZUwihK=rQXU1}BEy4k zdSzv0H$?!X>Tq&$LU)mEkTv>hMrxCSa1eRuav!a-^)Zo*0)R>77m$lM{*lSg}t#8Yx;95nVU8SsIM5n_agX>li8^gR-x z?ao~Ln&8rDt90wR_FeZ@A{p1W<>iEO{;1rHlLx6w0OfdlT_o>15Y8MZ^?I&}rxIufIB`Ng{apB4boBeud($p8VeiO^H#1wSJu+JqXrGfnE5JZ4zVYiW;1 zK;1*b@2N_6o^ZS@kR!9WE$P_sAFdGh_c`=k-TG)Me$@Ap%ab=a)^aNLuf?7!^S-Bp zAgb>^NtqXeGx$oT>%F=DZuxNY2&P+62jgbIMnUv0NZ|dpDjNzCpm$&DJwv}~^Wa-n zggsc~FRrgbvRMzaS-#`tp0~j|#zi5P*z9R?-)=*`_43?_-T(7VKUox}4^6goISESx zv#AWF`jNrm`uSM?PS5HtyI{-3zL;QafI95lrJz=%GApo5XbQW>(=-w(s7WZR6hPo- z3QJ45e|^sSyLHGbA%$mo$a7ttY6cxp2KV?D&6`0)a5>s=N_`47l}4so!#;?(xBTUf z9hOP?=&X0E2mjAX0%XjiaIM%zb@&Zzd%A)ie@U4dq+0i6gVez}WwRbESM_I#Yj(dg z!;6Oo-f5On-Fs~{rd;@>gKDHBQ=cTq-ufD->~4q}lY`(okH<_CoXV|d37j9TJ08Qm zs7+1LRk2^w-tn%b>$n2awCJOViom*;{~xrYhfyIz=)M;-g!eqJY`4Z~h!*tB4VznFo7c}Ak8a;7>*!BknrVZN$@d@Z)UPu>TV-Qv z1C4hNe>HsqKDYGGxw*N&A3-kz7KbVEk!AQ(lw$Uio1g9NW zVh{nHOV_5Lq15rLgsAw|LnjN8Pnk^$WX?aKLav`Y;{kB#M~TZ8UePQX$NCM+pBb*G zaCb+P&+x|e2Z=PNxyNT~+f@D1CNrq50q6TOYPvTJkm)RCo3hI!uuO z=4dU&5?1{d5=c@n$8G{s6UI?^(AV2F1>2x_sLevp9qZUW=grIfsA$6$U}eqlv7Jg( z%CfA5$>~$SFTWr($@a!-Q@Ym%S`51sDl|1WCg`|j5_36=>R!*Nh;k_47kN!7>O&mQHh4&`wGT@vOA7AG-I zD&vUb{Q$?sE>hU?p7h^MB@2x-Ajky_D|Cyex0(TDCiXmI!1MX0QGWXe#iNq!Gd~}n zB)SlaWocaySqj886nLQ!7Pbaq;k*NOLWtNEoqS#Z zeMlcs%Z7$B-rKpwS9Ma&P2bmDSsj;+tdn#oihna^ZuA|!)$w?gZi$=wYcMN~8y=Ud zNdu`6BPDj8W9SLTz!v&o>ttgY>O}>+eQ`9o49)M=LF&{^sU#t3*=aX~$k%lpNHrZu z0|HMSafo*p7Xpseq_7N>&#~}qp0{5z9G-vCdAM4UU>+T>ANS(;z(m}`LJ_^O*ri-0 zsrys(XuuJ1_VUDOU}D1;4D3hU)DOO=%iyB0)d_{&-aI%$Tx^$Z?WyKBxXDV#+Jq{6 zYqZ__pYbl8IuBVcSrygrueM%Q-9eNFB}<~!*A-S%p-JGERL+=gV>aQIL#)%)A%{tdL}{}pod{O3 zt%lB{PrR)=X!!8w#|m;}i-m!WQ4`H9zrRh0aUmQ6A=cZ;+35Yqv>3Kjd|B>z=Jgyb z2I7pq1n?dQ{G1*~5kFx`F{A7==7i)}#txq<)tYV(RaVOBvy=5b|Jn7uhQ&i^Mk z9Lu|wpN?&*%<(73lBf`K0Sl6z^>t$ZiRC*<#Zn0M@uei@U*u%Fw_~poF^6}`Z&RqG zva~%9cX|AnTOm(tY`CDHV0;Cj>VfkgW^Q&f+=D6w?z8(?J6lzy-3%#U$=6fT(Tsg~ z%;Y@@|At2xQJp~Og1-XAMpTN*M>nJ;kCxYp!Op{zG2kEnuoj0tdHu>Asw<90;dDAf zk5X=1v*Cf8soxXlloWvldo=44PY4r~-wlyDctDB>Z(kf=#X+%k<2276m=s^bWeC?d zOkII+rk3d&Zc4IE?nV&p_Ai0a*%PtLtOdLTKP)@Sa`T+Ki$7t+ zeAQu*(Z7t6Lo_zJ`<6~BkYJ+e+$THRcmMP!i(Hq2Sy>ZznsGJ(@VeE<8JM_q9dx_* z&nV2!s}qQJVr{UoS($k@9?ab?Ina^V`M+$sG>|JP;>r9R@|rpATIJ4%AGrA&IUotQ z63YL@w%}9JP|g5NAHZOfcp-7hJCI2ho z;G+rj3wa^m{0ZnWw67PeJW8OO_el{WU#CBD$9nT#H5x;)PQtLnez{kRie{%d0T6M( zGgR@+`!a^H{{5kR`tQy^Ul8%53Ai|}uUI-)KErK>mWCe*_YsQMsr?ix*WAa2Z+z)E z-Of0LDM4OjXP7CjXy?!TAw~4`^jJr@)>Lp*M3NwgsP8p?KWt&fjXW7e&Bh*WO^vuT z{fqvHEE;b@fZpc(7V6O%V(dBgrkZFFsTRiix`ar6?*Aj|tiz(r{x&{zcXtU$Bi$jP zG=ijbH$#_nw+JXo2@(<#QbP$y42?*`ARP(}C<;iv2Y2`P?&Y=r=&ba86USErOti% zX&^cA)C}zIWPl6OU*}-pqr)S3pgrQ$x?YGBwrvi{+nwHle@l%Np`3)F=kni8XK} z!5s|}kM0{7Y#zt16WngX_}lkC(7gNuHd&Uz)y}m3NJQ(Ki`}j6Nbh=40|OEe4Z97x zu&!Fes*h`Znj9JYZ?5i}KmjqaSmFZ41)!EI4aV7@DnKVj!3hgF6?f+Nv5~qZH#j9I|ss;zep2)K3(=Z>c@XKCi!m61pND<;>r2+uB)vb z3f%UUZKbL&$m)#_h)p2)0!OYhyRx^d6^SYdqaZV|i+St(tq&pj3vCt42qNEs zdp7CUo$eWN4j1rlUo68`+Lq|k!9(Ib5}Bdk0`Zt5APlw7&aiKP;_)@8wRu`aOH#9c=GIc<ULa3XtxM=`$SGIF(QWOr8S~ouE`YwHNbdR zYcK%`I}99nE+h!{hfapCy*zf!%xK%m#oS8txRAW40z-BmMD)khM{?xo`!|u8_&3#P zvZo$>lL7_F2y~*5(u`^XZK)-Xm+nr_t{5m&_;Xk(Ek%#@ znMhpdDk|3)s3d%SeW6Q0k_8bgUugZJ_Q}xV3pH}@ppB-2LZ%b zm!{K{mxq2gbT?oAgl~|Y$Zw#HG4=gUodYzy`DXLXkopQ02`c<&0(2!0ra|28Vk0Ha`}-z{gV-+bq`B~&C!wWwR2sd(Zb#?7^Z&^0-4_oOX71?|&eFK1p*L&kQrJhPVM1BjTRQE)XucqX2_;lr-n}0TQd7Kaxnapcb-u zFZ#`rSTcmP9F%@JJRCxI7)Y~&w3(ZFd8ov18RGEEyIWe}*_QpP^nP_j_Bs@6n*-MJ zjt?dj#vT#XYtHn@TDu-jyV$2%Kls7S0BU4Ufx>hlr|q!3E+wFiX-o|!L><@7*jaBb z;)0HwnnG16$$;27QQ6Er4I|~Mj7I6yQ{iWo(drqMMf}(BCCD;cj*gbrSlhKS>!aX2 zCY$sXqnGi!8`4`7I0ezUPdo+~_K@9lH983X zo!O3x^T&q(6Wiv4y`1Kjjx9de`S&WX-!n!VV*o0c7iLM)XZ8mFR7HUp{qh#)R0CVb zwQDfBC8mR=R?h>upCo2p{S;tX8-CWybd>7(^zEkR@x|5c0(~O5aZC{Zc6kds{CEKc z!-n-?p4vXZiTFG{jo!7Ao|uSp30mJzw+!|<=7`G5z@r{4M~Yv!>kpYzgby_XgNjuC zfPs;D>=VyU3NXMVxL-sJpzQIr;a7WqC4irt)^Fdd2Hl6m{BF_C-j(F{y)+}4xEf-B zrKYZo-6QQnAq>)Nt3-~w@g|6q=t149FckYR^nmxJyk!Au`J;Q1((wfqjBfCg*Uk0x zN4QAITn52FKEQQ_Doqj0(=3C{MVV!SU~O^|MmUu;nH@ZhK{!m+#uT3hgtvf1_2kS) z_Sv~8@=VH0_K344Oqt)=Ty~_CVipH*_LdLu4tn6t1+v|{;tAb-KB;wO%ZEW=T=Bm1 zDFY9onUU?yQP@*t|3s0Avug4eRLgU-yRVrd&Hl(5J*gxr>3@39jILb`^p00$;gFjOov>Y!Ra$*G#RShSu&dxozwDXQN0?(YL!^I}o z9{{z4K4%#&I{=4gOze354??5VxK}ddO|Y*TM;l&de-;{#Y*1b za9L%W9fFE@jhb3ib+TFnZMD4th52121Q$8oK!V_LHhf(KFz9eTVlzX*=zgSGLF#M8t)# zTyF1`j%@g+`q6rCWuk+>qi`agV0xJ4qKEi(Fi4f7jdtp?OF$_LO|J?wrVbZXGo8kpr3S45$^ox?kcDa6`} zzE^A z50DG>rpcbBM^=9KI)yXS?NW#R0_#-R{l}1K%}x_GvUnnLwm?xrFy_SJRH4&ZSrGU- z+{82*X8tV+*?a!RY*4t{|f%}V1$t3$hBI4p3kywn7+lIsD=KAWkzW_ci{N7twv62$nxctr2 z+p^nnU&hVT6CQpw7jEtAORgjPoBUt>)Z!xaM?aPA6i4%2HpNkp-mqNhO*6%Z_H2G4 zfrAoJiwF2BDkPPatc3#PcQz9b6ckrI44!y#2Mo{1J!9&|fI%S7ZY5qLSXw+QcSc{X z5<-AviVeo3!%*vdH4+O#NjD&dX`MySMNS;{o0wr>pF|(+=ZoGx^{%R_7f8C~%76dB zE!W-zmybYiXwlClBib4C0D)FTd3rjDe34i)ek}93s)7bM={~c`Q}6eCL3}_W>cl`Z zuXZAQC(oalfRM1by}iB6@89sxzNdQMpe+nyNd}GfbD96aAa= zNe~ZyWqjF48BekS5*c~{gfY0$e8`hP&N4H$FyR+JC%4Ga0?l+Dqp()}Z_ogIl)CvV z$}14r`<%_5USDC`ju^ypfI(&9bywJ2T~(SwSXQbDi5=a?a~Uyrsqpa&l4E#|m^W-L zjduj3;11di3!6L!GVEQ_Uop5%^-s0bI5G_!i}Ka;Z5GX<+U=Ao3a`%5A=fqd`=R@O z&;Qf4gRPk_FzSD+|mL_otk$@fq+FllrhStXL5N5Ij_Lj`#o8Z z9_^*FKm|99^Eu9)U+7a7Ml7%@f}nwK`ULNV(Jt6eq`qz9jZp11=Y6Zj`?qG5AnS;d zmhWB0QY-`7{%?OR3={;l4iLyDUzl4IH?LWov~I}e15F2pPnoK*s|AjymXk`QHq}03 z+J@xzsy&^iYtvUs7ZVSmEqqu+p>Fu0A-Eok86}a0Vcz&H*VPoJzSemd*>Fe4KjACc zNGK6HYQa1!U6ft#57?iv5+WzALZv9|vvtg;UTE`K+)XXb{)LaSj5Tu?);y%e;`H_v zsBw_?tQiSa%}LCtrW%A`;yz#t|M63j$oh@FKv|=O6>-Awqy3cq>en0BUxr@74#4=K zbU=aza@6muK=RBV{gQQ{h`8!zBjex z=!y!it~_A-8gwqn4ELqRISq2uoZepa^ze{-dzFCY!2kO7;GH)<4zC*Ho=iA}RFPPu zwJ*L)33=Kw5s0c?-IrSn@( zpxr(Rz5EXQFDpJ?a!mWLQ6i?PKOLRCz5oAZcvJxf9IC^&T4YV9KoAf?ks9FJp1==9 z-%IK^Wv4=fRy%EX_hgwQydBDMD`;@Q(ntqtzm^6e(k}O&&EwRE$W+^NC-nM^-=p3S z$R6x8GC+1i?xj0+^#`mm28;B%%Rg~j@+bHR^wPx+J+9jpYBnJmvxY5B@2BfO`SV4! z^Nzf$vVCjq!U7uc3%eQ_rRbL{gwIwjhBRaKa|fCg#1dDdm4vEN7EFY=jsvcZ~1vx`D(7 z6@5{?0S7!ZeypC(cbO_%chTz}G4>n3;^icL(12D72XZfJs9;u>&Dl{Q z&2#B}WMg$gv4fO6Y)ZctjBi$m?vvh8-h4PTX;ESQ%ufM-qO(UScHo&Ap(APMJHi1}X6OxPOYvSfjIeD?~OiIT5o+0eG z$SCGFrKK3MvKW!sJg~V{sQeU2aRcZVAjo|I#cQ#0ag9M7WMfA~0RMSnqBnW^mpn9O ztU8QF!b64drQ{m>fnWC^K=7$7VJ4T($-yC5((vj}cA>Lk^V;!f9I*-skYxi)Br*ES zz^@g4>mY5m>c+|3dO)LDJmT{ zfyLqC3V)0H=L+}>nJl|(VaCo(qgl0^-h~xVmswx}Sih7+s4PUjfq7~IlHC^gfV?WV z5Bl1l2Hr%ENgOWEV8D9Q>-m=&`kxSs6*ka-&7sJoESfdD>M#T<`Mi^rTd;kVANx}j zHnR7dHKg0hbW2p^HNs6E%{#)=?J^@Hj3>2ymNW=voD^u+OB*u%&qvag7s(?&U>28ReHk{8k`6x+5B6yG0jc+OVE{l!th} z5>@eXj^?#T)Vh=A_0?qGBR98sJOpcRYTuoxItY3b+yqC#^jMqr>|Z?=)h-y-JS&xTN7MHqLf>p47rE2o>T z%n^C=P`X*vvv;=ay%V+wWc9&tqsl|*DJd8MiZ$^iUp`}c-z$A&bn}}T!rbUbO7OCP z_jd*PEvIDTf+>EZ(+ct~_pT*f)mDoUQe!Jvx=Fk7F5f$*uPM8e2S6{Da{hyWn1N>D z>(7WqARYt~dRG~n|1M8y7mx%_Y(EU;d_nk6+0gM+K=8=zTLt!;q92AetAyl;(I9C{ z(&8lKb}VpFDuNCca7@iu$nV0^OBG%`k!ZRL+v#%-#QIJrPUS%@qLq6*hH3;Q$`LFd zK0rkmF?HX4x!ij20G@`LyVEEM=>}7K*zX-VL_qH|>8WKDLiraxv4@3S#x&sbd)u(i z3OQ40S^cQTfGoaytB?nxPBT!pNK8z>ppRqnh<8uWrSk#KQr*`-off^fkteLDoqKYP z4;EWJ06|zAL*L{qR$utxN8_E!AJ6viVCN|*DXX80lz_JS0nmJ|ed`?!{?0MmQz&3* zJ5A~DpeAE+z0_}W?{%6k420QtW5vBaJT!9T2`3; zy?a&XgFK+g z#BDs;AI%UF<4L3FUvC`%av}79lYtVJl_6{-oD{y@(aGxP8oIk!u|9q50sm90Fn2$q6JJpVlv7GH~u<<#!(=oG5Nh^i98+( zhk_P~@mkwIe7_o>tw_Q7^F2{fgW-t(_-L_ZhVkt!e{-{vac&n*)%3iE&;aynd)^;* zWT14NbX0oGi=C9ZdM@%g+XSR+PKju0Q6v?euVemUp z;Oa#a3W)czd12zBqKeP&7{9=<%qI+;54G4O!>!I6OgMmi_SbgmIpJ~Kd^TA3=sr1D zFYAa95CfN$mutA2K52d|(e&KR67q33D}W+LkVCLIUGU&ZZrfVbM9)JfU0NUAC(F@+ zYtVVoUN+K1!B~A11^4m$M+;E=Q%BAvx|lC-dPTH=tAdT(6y}rkuNN+9nx0FEFu(@q zpGN}(N$?*%sF;dp9W3z0Q~31ceC=?U_iWJL{$ra!8Jqkr<^9y5sKNf^EVU=jz!VkG z89Ak*zoP{`Z4l@1s}NOq+kVj3hqL>FP^D5UPcHb^T|x$_$H6u3!zea*Y|Pi|;dhQ| zJVoyl5EY82)gr#>S5lM5HU41#jO{*X9yJ^px9-*tiCx%#!7=Ao+pA7 z%srj784vr|Vaak>E*g}7P)`56J|JN3NTomoc?msdUb`Im{>Cf}yEROHKLx)QrL(B0 zr*rh%r;2PzWSA{E!_dl`t)CC9I8_pCte+u=eI@>o3Wf-xbhxcd*bZ(L^;Vsn@Bf1G$f8D6TiR5LHo+eq&`|yM0!lEi| z!O+Xf;l}rNV9w~a*a%eQP#;998b(msDx({5Q5+R=ukhsxk}T8-U(7q0EH!oiVm;N1 zL^PSJ*er&MbL!wQj=Pc=y?Z4?1xj}DXK#PsZqer6Df1hLG;57@lzp>PzK$@sc>OUV z1iIE7j-^{rfu@`GFTtQbP!NbSeh5QI?O|jZ`2So<#?|kP`FfX4_yNub>hkDa(jZ9! zv2|}Ko8U7?3=Nd~T;Z3RAl-tQf9H6M*DoV;jWN%q$M5%Ck(%@Us>LMLQj){K3u%`& zNlEX`gsNQ|_8%jv_d;X%h$Uf0@W~a2`YQ&-alNKqJD88q5tT&-`9EIF?A!D7?H zzJ;eAwq}uX!-PW9wU)+4HwD+Snol%fv5ChlxQ&gCtJy{tURO|T_gARsSl4OzjpO)P zaWYAsz@sOTCz%pKtx!Ij$o7hDR7xDnp~l+`)Tm=_r_GXidsTN{I|a>gIlbSSFSCjH zuRP@yX_7#^UD8izPHA7f^}PJshUS&_nj7EgF@F!$8vz!~pv5(QTvk?Z^vtp)hG8F= ztBqv%Q!uQtC`rlB@G|f9s}VDwGmplWNn`rn&%{Iw& zuvX2M|JSnorg;klT-{qNcdbTk|6cXx!&j_ekJEeff{pr5Y5Q`HZU&RJyf7XOCmJN3 zF(}Jfx^}ArV|iO$)nG;s1;JXx#}(5IGyi6LPJR9C675>>H%-e0T>mJA=6g@C! z7sGO-M6>`brTeKABA+|M{0AP~toG5``kgtr;8Ay+_uJiWs+q|vA}ozhAyZ43%n99Rhj_&ySJ_HVZBpnQBG>p<$z>k^ z9OblbP(1*K76G(ZVc(=W60D8d^E03ASz`%*Z=>42oS-$43Eq4}&uGi0U9%i`5as66 zR0qJ_FISOUe};B`M6WTy7D0IOn{gxfF9LPN#;OB@xtWE9A?!Vsj#&LKdOD zL=tG`642>r$@DjR;<{DRuCR>=HM=e7`N=Ck@}jd;r2*#FIc=b=2La?j}SScT6$MNJ}!ut6`{RlKW8Oz<(8B%)&# z_#_^w^FQKpQUo^&2*@9ZAp%A;pj$A_qEz0xyZ%uE_(0L2ZVTa zasTL_hmk-8%b)6gA3^mO8)@rL-UmCPwwhkBY;6#7tWzY8h;zl%NcU-_2Tna$ESqaT zh^9ANwTDq9k5ifufNIH9IfjzL88`23( z52{TXFa^3UZyHXwA9?5fZoScWJ)Bx@IDG5gc$n;NBINC6xq+csmuO-WHqT-99Fd&4 zf-)W(!V>?Cc$Acx7J((t7}miP^NOtQipQA3V~CkjRVU}?CERcRT?w!2-K}t{OkLFmS24@qt9XRcz@A|d z5Y6rH8T&*zcNrk?c_UWGz3Ax)u|V{y1plG;MC=&rOYeK|tLEV)=#wq?GQaxI4ZFUt zF#_TXsCWfbpe;zAbMgpr$nrkF5$gvvs1CSPLPA0W z)SxYGODGo)X{vg!)CWBaQ@SkrbTuRQ*H%4=N#sU8-h6l&UG9S97s0UTUaV}A_!7`J zeT^JD956^VT3a}A^tyPxw6p)a#t!rkle4pizhM4;3p4CE$g#IiP;&dI)8Ww+Jce~V zyy&PXz5xMf5Z|;1c;taaY$(U4Wt>yCq=@9!j8qV$t1hca`fON&%?+ z4r>3wU^3zuBy;^Sex=F5F*=?b_(EmXkYmgw8J$&}@ z;Al3l^zN=prMZwy=yQdf{`~y;bD!L!lS7iL6E7*l;E<4vF^5S|qk?~)pS(&D?P91) z&#HHTS*n3WRUlj`8=B<>eX$igd5E|dF^RXm@^G0WXdLf}$Ge4YY@}=kW^7HeX_rx#6dL=g-uRPMp62w?ej;mN!L?V**u<$ap>EYHRFZkG7 zgD=Cv*Su7#`|w7((%P<>ie#s37i;7lYeXNpS*873qHU8_^_q(so8L}}ZIo_f&tLNO zqn|dWZqPu?2x%hft)ea@{3VgY#$NT})UG{ANEiLw03~#VojhEmLYQDTH|z-(+5kp? z)*SN@85MuVL%T0>VuYux8KV9%z1H9tn9_L=1#}MI|kj)^Q=>|TEEaE zBg+yG{SGsD*}#Y=PI_Bz(cbpAYT3c`XD&d%-dVrS*4EI_cm(pU?aj8@aRpQs5GP)< zjVrj+^k4F~CxXELmz~H#i$Bi=%KF@!%_WZyz|x*E2=W06-fo+=xX?dcN?(VbUYsn7uuOKg5K7Gv0KWqj+H->FF zn8wppR@#7_A^V{%z+8PIv_nii7&dbzJRPDBXYFZ}d`fS4)3OjAo>X7&&t}SFT3_UV zCid8~JMJ}sv1MmL--(H?p<&$OqA5Q9X1|*#KkLkvVi`QuHyx`AQ$7i=C8fB0l>XJ0 zcDC*BKP@)LL+vc*SP(z5C3N-Cb<5PD{o@%kYy1ew{5?}A zjZ(eG650QJ`#DC`@$JL2_3HWD@%|Jp9uq`*Mhj?+h5pRaKet?p1fp*Nz)Tz zM_GBJPhXh?u=v{u)u!k7Y$&DYF0L=YhPLDwS&DWfmgJ~LpoM84Kgx-Sh`ecjLGfq5 zP6{!DpKcaGkyrcc;VZ8XUJQ-}_E_|@U1MlNlBYFkO$M$%Mnfk?{~UibS%7)50hhCg zmeRg4u~L`I-Revf#Px{4+n*cZeSdD=#mg9?NbW^jnO$D}!1NCliC%pFCy=9SMV^N< z9lmi74@r2^LcR8YIGEpx6p=Y}=YNvH4jT%D{N^9Jyo*zV&yoaEwfCvW6O!=e{k}Fb zfK-dvzmy(+q7RQ&@#E8ne83~%S>}1wtjr%dwKg@c+ko=Aj6&!;1zmu& z6;r9O_GXiJiB!jDJ=Df5Y(B0}U7_UJ;)JM>@jOXk*B;qi1M4HVHTrU>J(U(i`N22x zERl=OMc*9+e2Ca5ePruXjd?rt?8sVz&iy;*UDV=qGlH9(Xp^Rku8aCp^Rbr*EO2&$ zC~xEDTkmEac~rqh_sE|^x~=~j{Nq&6J-voJvaL;(oP4VD@PAi`Nl_)Ys;Vl$qZQr7 z1wMnQo;O_T_S%yN%U=uwLc;V7RbG@NHpfyTwtn&=c-EgqNhY9R=rLn)<)Fahoqk;ow>oW$x)aH*JfRjeA7nfhqz|JBYlNpYBuR`QA_DjeaX-`3^+W{aea@ ztOtO#+>3Cis&(9j#BC)lk0l{76&FVhiz(UqUzgsm6flXYiAFw zO~)2J94QdB%JCPg-{>*5KXhel1?Y{!x8mR%J;+WY#nu3FtdEkN&pHp^q9mlX4vn>d z16$6Jqo5fVN%bbBhU33{FJr-K!T@u7PZ`O{h^7*95QB98FaLr)6PVP#=s%cjv4kAn zjdt{-Ppic70-{wQD!NTIo-+?vMo1+jOCd}qA5SdiK?QJ;cz_Z5Gm2v3cyza&K_Im= zhBK}p#|ehwglxrZk-f1hQaj>)x$l9cP6g6sOI_L1IMbB2?WzSV)9GfHBV_qPAjWuQ z9||L#$leOS`k{F~Wc=3mgGtC50+$EY@MlXbdu6XIL<_uTCoW~5!ua-lPp=R0GLhfXbS;~)Q+NBNIz$tF>bUCk%=Fs#s#^Z)+}SmxK*0)O);5%BBB7AbwM5g@_SA=(|A=zr zDti}7RQTw#&)sO_!Z@dgDlU)VK-~*{k&(OM9ZMzIag|JQ_O%_0grFYHU^PPiPoNbt ztx1rH^Thu~;7E7U{p^T-R9JfeHD4E#GwkM@FKt^*W=O)n7l1f*&+@?9xJLD=_S`%0 zy|0KxF_&$9ip7(Fu0qbk&7FazhFN^~)8KIv?C8jJQ%agP2~EM?-d=49qc6h!f=9Z`B9J$D1|t9l2u-GDe8dtxn@(7x!1LX^T%)^h=f;2> zYW0FS;)79HlTIe~2=@v;(_R`C{7-Buc{>&JgXxD!*TX)Gr!gmR zeFIVgK(T(~AW_o3V7B5l4U4J2a)@m0>Iz3n2}R=vOuqm0C^znLLF}r2x3tL7_@!D9 zOL<22b9ur|ysX9g>JS0Q=7qo>0MWXdFfJ%^eo)#jPN{f|8)u#K0{*DDdY)4ocx1TV zRhFt~1}8qp2&n3nMKe6|fohi>sFNddYrWU=E#LS3?9{G?jVHDc2&lw|n4;XG3`Ru;;XH){{&0sFtQiPqw*;)=ZfHIOOR zcVFoi_)5-BnY;$vwU7wk@_4V7C-t~LK`?fl^{Cc#WG%{BX6&3kiK}e!K87^ojpNV5bk8Yj+OKm4^Qv=xKxrhAuT35Ih!{bDrpwyk1#5_s_9YBf zjaVHfN*f(m^PpD1!S;bdzZH2$V$mS<70fy0)1QJtBmmQ=MR(7R@ZTy#dZvFL3H|bD8c4&|af%?eYqEI<(8lzWKHtb$%8` z#m~hqbY?(`We6#JgnoyuTByghmpOC9M;9Fps#UM)&-n4i9xeyY*_$B^EW$*ukD<7iM=~wL6&3 z;}P7JGV{fIZEAP<)u8DbpA85*oYELyk@YN}n^vYOowKqHW3#&SO*c2VaYn=fxVIn< zGOi#zJ?kEgx^fh4#@dP~>g3y=9%-n?79aJ~QWV>R?Yp#-Gia5F6LAh+uG zYR}2B6H5H~(_5qG@dfNT_zC$hCUi8C6jVOSmr5YsH()h3TJgZzRgOaf*eNyH6I%Od zxzHe0MXTvA4phOaKCGR z!OjxQLBX8b5N|(O1^Oqi@pBRW5{iNqRlpv@FMtFo@|Eu}9}6|Y(4m-Cnthl*ekwbJ z-IG9B&39q>RCd%>f#ap~hyH*3a21!$G7twWKx_Jy{0lKBj^=W}4y_ut)}OqXLs3q#S=HKS;=-zeMdN-~!Ao#1(lsY1mC z92*w68ukw8kqe~g0pLODn@(Zk9Dm$FRh$t?h@xxLy&E>=&ov>q-i!NmW29ob5e)>^ z{dM}^qXT7vbOQrKLXwID4|zM_`{xH5vFkC{NF?sSZB(5sf1<^%{PaC)1LVs$%k!qxfliaqJm7t?plZ=lXEW5HvorQd9Vg3#N%Aii$Q0 zCRVxC#}zhV?AuTYZQ>ZddgJP&`7U>S`zP>cc+$_lAFJu)6Lh%?I}y_$)G2t&abQ*qpdmSQ>n< zaGCRr_z@ciST(b{pj&=FCk0FlN!$Bpl#(O{dKAs)&Ff`Jxy;ZL57eICalIURE;P-; z4Ua2Ea=?ATahNOsrECskI^34qVxQFPh>IdYgRSfUb2nLR4hN2 zUjCq9!1gM=M{u47OF>R=Ajups*XAV=Rq=C09#(kVsz#rvYGajteBv{<@x7}T$6VI0 zEmAA?{Z+FdlMtVN+69QenCj}oDm-H@kh^G9bHj?rjOP5Y+`D3)m-dfxZdBM1{0!9J zOM-3UAo1%MoUdEJsRX{}UXX+vr_5>{!rHLzqN$jieA~@L(w9V_KFDu%QUiqZGUu0a z#fTHM)ju~lN2JUTjo(tgqxcSe^Fz37>`R;0Bzbi7*F!AY56P^JNyQ0Pf(d~X($vrB zyt+UC9QWsunXv6oq5zh9V3qW4)hy20oai|p*D83gyYsHMaPCU-|nYD;y zE;RJd?@_59_YJ6y#p~4?dvvp|n~gHD(_x9%;sxSOfVsh32G@qxlI(dg!nNG3jar;v zp`ZTQnq*7YZoU4duVY(lE0Cwn36_5#*x(yS=4~yQz=K)^7WDYBo#Sil4F!sz&nvne z6=GvnwReIdu@^AW3;f#w6S;6g{J>woxFo`@q;40o`pg90l;3M^h)~c*uaf}EM6gP+ zT1BY&#||jbWU?52XutqbrE5^lgNQ;tkCr7~7}orp5pM&9*oD|e=ljEcqNQ+&w{zzz zXH-s5u{SfzE-q9u{)7R?v7a|3@T9AS8SaD=BD1}AX;4f}BML~|Vnc6_tzYvv$lo=z z-9m(7rn5MFy-Lt+PcY6aln2_+3+P4GlJ9`@z#Lp;lQ=%)q}w@qg4?{PGXaXiIj z_Qu({xwq9w5s63fMXz;ETCIW76O1{kEjok0o^SjJBqof<8}ZK&a>??GTp@?yz&qhy ztX@$j@W=)}<0>Wi+tBp&w|q>U#=4^E?|ZLE+3YWu;HxWgVq0<$upuiZcLV%aQ9(No zjrIXzt&&H`Q6gdx{t&J#L~_SFk*j4ApMb&9*0`wywZn}$cWnJ=t#{B)=vc`0pN*?c zQQg-Yl!&T(1Zil#+3`hCL2^c$SN%CEaXdDWf4|MRKg0+DnpD~P?_!d?74$rx)syJ* z8evh=6UX!QKGKWa51uhVU(ee25(dt_Zdqyb+v@;u;AUuLXRmpj_2%&fJQ2PQYq_?N z5&ucQ_}m?oO4WX~{i=tmkB76V4OD+Pt-ReGJ9%BeQ^bB$7B&VD!U211tpGG7wf9Q@nZiA|i;e|U93SnQ?`z3%;+NV1jUnf$kQkov`#=aDn$Fjol-?Bi@+aCI zPVKzzubm+~4axu9%*O-1r}6zcI>K~{^NP01y*{ec2s$TQ=C9SbSZI4M?XS zky3tS<_ot!pe2&B6d`iD%f|os@ndHHH<+zGLV0p5Mdd<-I_&9{qC(t8LIW+meGgo}X|-Q4Y3~U`bS?R0ssD zXMpo%aO*FSv(J9W?eOOB_42o7vhmIv-5oJVVC0W~To6q@dY^luXW<#Qrj9^%Yho7H zuC?aLg;#Te<5&CyR`&-N{c4Hk!rhRuB(-yR z1v^E1K|5WmpL^OL?>hV3WF_D`Mt80j&^ef+dfQ)LSss|AhW3O8TJK{_os%V!B~*Ex z^?eb#@-vSwzN>=qa{-?)vG}2i4|cIKdd5}002M=E|IeugT%?aTf|GjuSE2PHI`(I) zf0%CQ9&&JSq( zc35Vy%^&#QLR+%LN<;G`Ni3qOBDPvk+EC4hn1yIn5tE~CFDCav^s*H%j*-tF?~}S* z+L?^RZx0DwN2PSOF0p%MCVD{>qnlfC_d9akXZGj;7pJ42BM^5(CWZLHh_IlW5!B5^ z8w$T59+j|)&5wY>wKSpqh@3iZL9uYkhgh=y8JQ=Rxf_Y{wn83zDbL2k6S4rUV zS@1V8HQnDM4ISj$ zuzrw9c#L#&@?|f?5_keKpeP z=o9C8-AoHb2xiDHguD;m4_{0qM+lPXfL8SX3@rJQ5;sAM*FC*QM z4}$NDidgicm^DWqL(@A9(}crYXc#Qb(hI_$#6}j1*=}MqukM&73F!AH%ojj^cO-O> z$IM<%2cCSE4puaW_JF}G^Z7y#c~b%yeslIFO5GXp**`gSXr?oa^Wyib*$kuPNwM`4 zr^X~UA``S?E@BsaMyC)`$?$ggowIb?JZr)i68B;lZ4gP6R*6x#2diNmJ<>-85$P@#8`!C70>1 zC_2R8^A(zZ(R*B&uAsK#2rUTXNHyxB$aN5i3iPq=#M0bzyR6U<%pH_SdqQdo`LP{! zI|atI6M7W|b9Ra#&9{J3$#Prem{X}M$FYC21q6U-*|p)|uNWVN|~D~-7!svVtRPiC)fs2xY#2$2%9ci7MQBD7eSnCA8|5F};j`Pyw!eOmn>)eJ3h zgsG6H1Q(QoIS0Mj+a0GFRGgT-w)NDk8H1PpFlALK@~1bQ(NwNES*pRB@Iyv3+ADCL zC*_EUOb=s0Eq#B6sST~XPr{Z$m>_SujT z;<9t2NrmV=9~t8mnN%$i^+x@b1?drH3FFUNEx_OzmrA+B38(;wsx8)F3*oNx*)6Ya z9#BalJjCrx_+jV>KDDevx)}07^UHDt{CT6u!b+>}cFGog46cXWrz>Y4E3Q)e=pMeq z2~-i|9#F3!43K4GKCr@|F5D7*F?<@q%#Rhb$UyyF7Hw?RN+DuAF+t+V4@ZUo%M_B# zH>!3e#X{Zze!Vk!^0O0aS=83|HC$m;+clp)c}bRF0ly4sFaR!unBOe+?CM6LwamBTd-MwvdIDOHaPv zpk#d`J(6N%AuJ`&ap&_f>nd;VO5(#FE8^(rKblrX8n`ttzF?|)_lmU!`bV|jT`xE| z6^v?kaFU>xPXV_T1fm4SEf7BTC^G!POb5LzZkVexigS7DDpC*+c?Uw;hd+M}(dKM^ zy*>b8zSLxx&iT_)k}{0Z!!XEn`t4LKKvV7kn!@g6_NqODx)x@SX>4odTp#@as`)$W zCnipGfyFpAWq107D1dp5nwIvypC}z#i!M5?$`LBoz!#kEg=hD#LZn%YHlNAtDNTfL z-lXMaDI0C@==Sp-{gDl{f@4ZN6>)yaoG|hdoH6_1Cj`5#qRo3mGGY+t1;N?(Pp}Hg zHyD0w_XpoNQgPxzunnTf&T*4{Wz~5xZ!3XE%oz{K8F}7{Ww4;cCgPLiNd=bU$_jf) zOiEJd^oON2wDukyF(M58=qkS$_{>fWO$}DtNf-+Hdk1+LlfN8bseQVjERT+ZEt1?E z)n0xd0-rdXZW)TY(5&-=8P$CXWF}T{wde5{+wXHNn$z4H=a{hRU2DJB)`c6adRLh& z+nq+~Dum-_tVUYa5Om)EGW22lz%zfTm9aoLEnBNd?Oa#_K78^8DCJMFC7ijWi7Cl$m9W{Q3tkOtp=UbV?7UFOc@A~ z?)K`=V0%y(aA>jgY5F)7%qfzsc`p>0v~OHfxeEB9TGTTwr;$|0_dCE|2ALl^Ul@i{ z>luu1;uv;R^nFNF;#c9l{VOJvr8&^u8Gi@4_G>`%n~={f(57{n#k8}i9kmlw{iLO4 z*B{-h)K=7{RP;hZ%H&5x=C4G1QbeMPmGe6tfPux~SQ*`Mqesq4yz(k}6XkZ(x3)<% z_msx{a;m!@Ww-Y9DT5k+qH9g7gZ8<}=vob(6nVkH+vo`$aZ7H_#Wp@6A1Q7wIKK5<$3wJCmp~q|Jjo0ai_t9vsb~;;WsRv5_u0o=Q{UQ>ea#=NSJ$5TCq1KDX4uiy*N^`BbA4S#(QGJ7PcVBbXt2Xh z2=~hs(?5VPWt4{A(DSH@*b@c9h3k%Y%ga!RyK9)Usb_b0Kzmp6cJJ6(cN)=XjZgeF z4YdsZ5vfZt4lI)fKd9OEvoy;(Rj%HP0GO-Bz#8%=o^k6$o@6e4GuMe^I)*;{RVt`s z0l}#O$ma^fjW+ll%++$gNCMof+=0+ku0>XJlYK1rPb2 z;{B22{M@(SjrZJLzVO0!yd^U~i=_FLMLV#;jx35$0j<5C(W zn7usNXMS?G(ZbVu5fjFUe)6H-I&RqZ7ZKUQ0U8=wLlPAahN$c6=%mNxNlRD%P$s9l z?I#JscR?Y8hF}=Q{VKKeiG_Z2_RSu7rRSc~(gK;v1{_RgUT^~#EF|J_JXM@jlSro9 zsbXp}@W}UrB$TWr(!OkUF2VrG9SnioLzD_9?tdOGbVx({t<)%kH$!Ooo5xe(Us^Jg zM=FjjV?5tb3Ow0w5I%e}-p1uO&O1u!2eYJ%Y9DXpi&-TcMQqi~ z0}F+Nb^h3)uhg3F|Izf7QB`(b*C^fHsgy{Az>!8;X{5WmTe`bN8YDzY8l<}$0RcI5 zcXxf8`}y7<=Z9lBfN}P<*R|GMGd7nz{Rt~teE6#MetU&jOftuFgcz_9s`*8C3CLmq ztPyh`jM>r4Wnut_VWpF7eQ}9#B|*P;tcnH?z35vhG_jLfv+O}Tl}0QeL5$Dy7z{JabEX+$=2-heI17&f zcQEKUdeM%mWJ~;-^VisSqq#`hmcO|4*(n}~HlUy5L@gyA>E-%)7Wd4kqkIS>x+01O~hjS_wl3@oC8Cj445gQtnqL{rKcfNwRCsK)^2afEOTf1T= z^S%{%7;P92>|f6hd|jCtXMV}g0@>^z*yb`=-ML1icE7V7xw2LOhpL^rC6?-k{E_Z? zq>tEiVbQ_*_&}ah#3x zgT3%4+M#SJ7Sz#)m)i4Jl~xs$jcM?9=3(zO?Oz`g5|#1?XD>Vo!Pq90K;WUjT2NVD zv91>=6%qHTVl#!_Vy?{VEFr*L2g5);(-hhNMYJFaDb4n(q>I+-Mk{c`#V(8d(vAd7 z6W|}`_UUEwCoc2?KFdGwztm&us*+)B*Z_FUVin0vIk4x?`LyNAsx)IV$Oos zrax8*p!GTT2=5>y6?09*ICj2*Lf*IUNJvPwd()`GXvf;yVf^lg6`MTELp)j9f4>^6 ziFE>X(R!iLW${)L>r?!*6#98>BACw$Y`yhC@o!dU4ogNrJEoP1o1@bS-m@(4Q2Wwq zXn7QSWyB;9^4$tybXSS&kUOAho;k-_9FDAyStCbf1}$HLkX5O7>kOb^Am?NX9`j3E z)1R8GMCYky0k|00sroP(*7PlF`g$$$!*na2H7n1y5U2tMwCA3fc_?q;bsg+YXHg>9 zQKy46MveDSTIsjV+#*=CY_0^5JKWFmmN-#p*B{Y4oD(&y+oa?R5K9C~UaX`3Oj!1@ zSa*DXPJf3wq{tj#ZUa}W-@5bFio;!K5fe2>5jB?>#RcqpxB#jM za0b&YcT@GAb|IIHrRcfoq9(fEu$*k%_d}iN+BiNU%1qk!k(?%(u5|YdqB= z8k@MXjcNT53fLL`==k$F8#F)m03HFwxrRDG_(n`CGY^B(;t{EJ;toCP&E@3SLXjhM zw;9o76c1w0rcYoZho0G)^-bW1TSX9>TNAb|ecSoj{G<^tnyQ^%g%okjnu4xwj6K9! z3u!{(x_J$nXRts0k%(lT)hzI)WebAg)3!9ViAAoiQHk@j>nEyBb17^9hI*E=Y$v#gZTaTFDU3@&n6j!+AZT@>zec7PbfT_1lTJC-EHzPL*J>t@o3 z62P}nug81h4!zXY`c}xu|1CfR34^@0kolJ1#qHwj`4{l)&Nh3TMcozc@#=aWaGhTT zOQKPB&Jo@X?P~OA@Rx{8u$!QT8iv}leZlH7J4@~N)Vy5&RkFmpw)Gm! zhjuYKkPtgJUs7adf5bFO;UT@Oz;AeQ{9B@{GQ^NY7*<)G#1Atr8A84kq}%a;n%ku+l2 zHdPh;Pz>@95dJ9tY#wT!ZeEs+w0D+=+qH9iV^_Crp@k$pt;>Se7dFA>XA9L`Y-nD; zwycO$hsEb9g-$^D9B8)Rqjj~L>D@8`R#aC{6Tp5TF@ehy3U#yrRm|}T*(E=JBJTbD zWwcw0)twY(Km-WTF&T)>o*y_trjieJckX|$Jvw0f^u`D`cfDbwEpXIo`y{j57d@*R zFfWY~-EbH6u6(4LgIYRTW=WxuSxYQ^$MCRe-`kTg07CgD&*MdF#~esfTB%EQIn5FU zgp#-6O9EF+kU}=5P`0MG8*2e~O3{fg{LIS-YdnhG`wxSg*q)6nij;rGiGLfofrp`e z-8B~{al!oXW{Ff{T^PO>5JtYmDYUwUd9)e^s~;4!pxEMTLiwo-NAT-(wKbAoP|?b- zYwrd`(=`#p*qt7Du?45dC4JO2v3sKxCdRs*=g4NwQ z`TlSCT3+9a^`6cYfQ*{;&~scq`@0+zl?J{4ENJ2>J$Nhpe9z_`Y5)-Oe&e>d}LQ3>`uuWU1+9 zxjj{STU_6($X4l@}{wlvWlW_Rn4tE6SnwJE*;6<4&DGS zjIo+>d8}@{S-hX?ETivmU{OfM_Pb;9D1~L+1&TvvzBkK>4TX;3*Zq)6{X|a@yOue9 z^vr&ivV~jt=@|CqZY7qBpsv#CS#Oy0^JfhaF(crmn*&wCU+e-45)3kkUwk}vK8ris zc?rV&f#u>Ns$}$oH46-cjL$kEE7F3UU*P^--CZ3aJ`^22tW`IrdxzumWecTysD}Lv z8v0$+SPo4_9!szUmpm_X-0DYPPPnpl0)PaV6=`gF=_)=bIn z3pgsL-lF~Jd~7(ehV{9bb3SHsas{$)&E);oI=uq}TV4nWIZ|kFp@u@LBUW4$U$4o~ z*0Y*~^07MBpY0_S+dBU7nGB1478Y6ZAFhZiI&M%e?dXy(@J0|7J~U= z3eBcn|3Z3_uKcP^?z!du6w$R1Dmx?}k{y)jW>{Tb^N$$(z*T4BmwXZ(;Rq6vKLuOC z$P!RnK&ZgfwO}-8|MO1Buu{DdWeQ)4BefeAli%;iYm0BVv96B0rnYtk_$YB7wt?f^ zVAS*PTdVZ=mdXx+gdtM6!vGVX&x*+!zyT3xW1p@1?;n<)1fKJ1Ryeb7(8yC3#lRu8 z_mHmnUy}-FduY9QS?B(nZR{1i4ct{_bIRhfF}&NzxV`B$8u!d-Dck(#fV=6(l8IGo z5lwmOJhQlI0M=^8A1&d;;>2h0m$kN8E8YR>!ryYeSXZI+%94K|9znh33m066pzq=$ zFxuEPFG>|3>{hyTKoR`yv8-R@i-}}7(D8}zDO|xB0|D;MhsWFQ!}{`G8X}T*oqOcH z#u#T_^xvKrLczFvlXKD&YXfkYHBKERl*XW8ZAp_%9^YR8V^lKAu5<(%0wlEPG7K*>^~5@nv#k3wF&P zD3rfiC?LfxqG3rp05!cO9eXeY<)+dlh8F_Q9XkKE***cIQpP`PO@S_{gV8;He7MtR zUSS@{Rv5`k#xpc97jpuWT>#8;lA20W^G(9Vg)1OhwBq(Jz2u;bILHcBEmc=^eppXM zcrOszYE3CO-RhsUAX87gO(!MYe#_HE_|wFq*3 zYe(+X-;+w98l#mj_oyy$2etlg);A`hU)&7+$@M~K20L6#K~a&t+`A1r@WYw^<|+2O zlP>~`P%Nn+cKhvboyLxMbx4YoqNwPozPLL84xgzqa3J5%{~A~?+ThF!o#$Y#bRbfS zd3dx|dSwkON%rIU&y!$QublN6_wxzKN+5H2zr$K-zulA?H0bOaI3jP|+&-XeQYCFsxlc>Kgb78EgdNQvO}VrnO*2^eEW=#SXvD$$Xwp&? zo%pWwcAWvlU$>v0BozN27a(E;u%7GZn7@ntY*Q!#T~3|Nd;v6M4PxBDM6v6R6xh(= zWon1-_f}tdUgu3L6W~SxdS{{$1CZ4K$bArwN*xXTT!1QU4sb(c0-Dyx{1cstBHlZ3 z^DT2AABKzNn(H7MT9yWQ7KD=5+jFOlt*mGh$vX@Av-%uGLcj}zm&p7F zwDHvaRvrKh7m;66};fyzpJ3_Ofu=yj0o0+`9Jzbx%3 zUjoZE!yL#Tryz^O&-68VHeHml8GT&~m}~m`RCv_BnS61i?ZM~p?lY394^xFvkCZ&3 zL&sm&1koo1@qcDjWiWE-Kh4ZtC8;;6qpJ~*=-MYcQP{^ICsHjuVMoFvAELIawVoz* zj)c!2^mbtiX*I+L}7! z#2xx>5r&?Krhd$?iudjfBbVh91vgL~0_{63q4-x5;%E$47&>i-y5m{Rcld02#u}{k ze>gll$V&CkZnpy>sZ3*aY=|XwNSaGKrW1shiw&lr6M$a1}OfO1oiH-JQs3!)e4XD(S z9pO2+GFltQmfe`s?N4X(R1Et}1%$o2ex4dHn-eol$oMp4M$5}Og15ND?jq9@7Wc_+ zL|(f7&d^#K$+`;rf$H>Rrp$&9Q_OAhDoOU9;+Y}E^hU|_h5KqaJxVMvXSGeNUWi~C zdiH5Oo*VNafH?*+j@A;DEXjk>Jc~%lL&46xzQ?@Yx90&Z+?9}FReMZ?Kp^l{<{hO6 z6fXKCnyk4ev`gE6kyTX;C?O;W$Iwt17+J!n7wwd3tzltSozXUc)zF+Dxc26wF`fHc z_~X~#wJcLzeO%Dfo~p=48}DIqX{15BEou-~@!42IBCi^I>(7?VL02OD6&_=~{9_q7 zs?v)WFzxgea^ANTSl#=Td~!3*%wJg}EZ*On)}R4P)@esBa7;85v7(c7_z%Sc-&e9w zrLOAZcSfGpbkZ0Q5MaQzIpP!_!f74jus3#T6v&h9bf}xk2AFMB(*~^k&A|P(z(jOo z{Nk5N|9J&0TeGMruo@q}GT;F5jv)Ol1Q5l{E%69@S=i>S?PhH?ZOzSv-Q0d3oO#Ru z{WaIh#kTrmfW^b!1CWU!86sodQX?Q_8KtQ)-dHJ1yBIz63zC(1|EqZfo9@EaV-e^z zOJKM?-@FTBmhT1S_+6K&*Ip>>@n0l$&q&f4uYN=|VUXq^_YCvFP!j^ zpyG+MXJ+YwNuhSYXJK0dXz2-;u8QSf&I>7dJzTlH41W!>0o-8S?rW}FS-tQe4_%$P z1~5%kB(5!dZTG+W^g;^WD>jHXKya=8ls2EW!DZdqpKP^m2>F@VF}G%=sC~qS!pjLy zW^Ri3zD@hcL;!9Sr`c#mM}re??jK-%&2b()HM$_N;D@|WrWrQw$Ye+>u39pR?T-*yxBuVEw%s9vAtb6z{i~%6aaYkggY%E3 z@ywlGeOoN_7z8itxjs;B;zmq&Ld*cK7aP#49Qb|6YGX8~`nlfd>FK_)wcNf5_^Ik8 zNU1q7h;(SctnI$98{fVi$yIOxSf5`D;Rb{*gn8*n0MpMJ{wj^{%PYjltvbY)FF@WJ zSFqFR#ADw6S)dV0vD)X)?K{o{rcrVdOv+~u$PJ3Prl>zLeuhp^9!X}F+YYuxf^xhV z7W(~hy=|pb7uKp@_><#n&j-r~iDrK@l*-7LaL_=-8cU;NDPH}COozcu&x`KwAu|-w zYtW-V^=DQ|h5b=42Yl`X@f+ISey52%;#+tO;k{@bd>2x_u7C0{Nv(X89-Vf%0pqT- zZ(2sK1F@&_2ijt5XgxOQ&lNb8ue54o*dgoE9ApY$^;f4K;0YX>$Hx^68XD6^I%&$75~Q6f2W0x;7js08i#xxVgu`CC6k! zPh0cW{H<>$#6uZF6+oLpLLLq1KDiweFv-g=74GlespQLmjaSTC#3l?b9J>JEtL{c@7nk)87Iw#vJI=Y4;36wrwR*^a4DE(A=vRKa^!6`R8&p@y(;iXC zFr`f1R_lQ{&M#YEGLW-7iX&9iRVq=y`p>?bTncj?9skfo+K(sY{sJuD9&M~;(HK?i z4kW>NWNE!h_xCq@Ko!GfZNveLeSYi+r>=4>f*_*jy{)zNyHs_$H62oMx^;<-?Y978 z)M0C54fVuav)NnZK3EdRf@5dZb|)eHjL(oRwp1X-)l0kHTa2>LG#@TnDLT73A2QDf z;-xdM=7oN|T0!i1kx{=}Vt!DM%+A``%eI7;*N^8B2N2rU;F8aC%~w{!{QirJGL z^#4WgN}m78~;Sum2OvoD;1L7rocG^8_x z9or{upZ#hLDDKS>(pRi#iO^QNMksqj%emzvf%MzmU>P3fW=;=~S^ns3t{Lxo0bBj$ zDMcqqq@1Iz@`DUn>8ZszW#_oXqbp9Z#3n-q{*~+Zmjlm@Ga+=Qhwa{rTx`UDa6%PL zCABFOtJHKs(QY?KlLs9uKVcw;*ll6a}+S6Bsi@xR6g*S z=gU-B_Y87n55$k_8}j-teIvmKRqU{^^iJxd1z%cskPng5N7caMXj(#iYg=0uq(cD0olS5dfJ9aKr*rw>jon>K zsQX$p?a|ZqT5S3^uucTCf-dmDeIC8K5QVNqo>Nh8b~L*a+S$-1r7Ck?e9;W*Eg~v| zM4ndS$K}e|=NkNr-SU8BjuN9D?(utUi3e7{09AB~Z}-)iDRxbDbs|30T&!iz8kuVhOuX{`(K5f>)>7v~R$P}rY77A(cT*C<%MxRQPTr5u>CQ&1bJ@wES4 zVM!}b+c5-Pm`F3~^@tuGL7xpQc?X}LbYPaxL@e-K65}G2v5~JOgmcSv1|$o9iarI~ zFby^8nc01I5h|<-o2whI0R8?_+ z6tML72#jd~JP3>WbxW#kzqZe0$~fNEo>3bk^chg*(dI7cpc5Tt?j()YQ57K)g|$EIS_O8 z`eZG5Lms4KaSoc50YDkRAc1)t-lryfZ;F zLE~r`u3ehfJ?r;a2z^A=Ave!IpQI0CIrn}t3v|Sulqu;;2iCzyhR=+&x@;k!XfVWB z-e<-45H;I1XL4ii+jFR{@ZfO30Tf3-HbDb=_Hma?2Ou7<)#g70G|g+T9_B9~v=%qu zE&@)%$4s|8>U|t(e0<|FAPQ`M?U8@+{ZT+iT;~Ahc?$=Es^=)K5gs-)Q)ed6j7lgEs+e3S zut`z;v{bN>j%)Tv>1jtnC+V`}>0A8eD9iiHrOJ?09y#)>a9O5KVYXSU3Zp=B)`7@q zpq6N8J?UvJx1-qVZIBB%h)kYA=61DagY?cC;P-X}iTlyippLvAX+4^pKi9l?oJjj| z`*|$NbRuf}hJTD-CcAjI`0qQFEw8aFFW-Bw&lzG{+U{L*(DgbIZ@rx^cidP1)8PzUCj?L9V~;ygSyNgT-mjhAfHjSF z+*Koyv`cu;7z#+(7@(bREM`xb?3K!o?oCM-@EE|yTw5}U?NeuyRs8t;r zt0tZ%mxv4~hY}s$1meoF@K;jY#X56OkTp68By^h|y zdiC;Y7Ll`5w+Vy=G~H83(KxjmK0ZZ%2$aj2Fg4)Ve&4zvHpZ-{~wAX&5%wZ}~dTFWM=; ztH>&A%|9+{T&0oFY;RT4md=QQP7h=^EcXWhcO+LP;R{*Lqr{lpUu1S@f1nKsp=v^6 zW;@2tb9}V)^@F(jv~EbDJG{}#-`0*onD#dDd>fZ(ir45sxP}||_Uv!@=QZ??I z83IwBHJDB{PnJscckBMxOj4{}e5q7t>a22v8QX=4P@(2jh_YfzW>044SdN~wlj_g` zhl||DD~CNP4y)MF{x5uq{6{q>{hSKl%$CmBF@dM)l0znLc_$I{QGNC!$>KGZypl>S50TaLW#MBuLOj@q)p$5-|4TXOOz zz{Dt88o1WT@oEQpWtXpV_kt|-v1SeO-jrIpU+qIr_((~!elFWOiS%%Z1&Z8qh{YpP z5fSQ)mf6SPL6cvB6Zkyls6gZY)>3Q@S&>-UsoJN&O}=JF`2?h|_}oiW@v%Z3{gvZOFUwKy)x(!>4} z<&qpy^^d5KSE9&{9N*Ug!SgX+eQtbQ_;tMg!!5C)4vVm}&QD;Y=T}h4S#VeCSpHHt zk^!yxb7#N5SIu$$M8%y8Dfu2BAR1v|`rOKeT~i5i-#87ie&7BR{KSR>tGqWFUCn4l z7_37|Y*~d>i5UJ5c9zfePfpqQ(uo(4V{yWRDh6Lu@DR?wuw|}K;zE4#M5#w8$0D_vZ;N3dVEVaCv68;>ydUeO}Hm!B}C(TVMD%{Hgc;)IlRr}lI zbO#l9hNsVoSUVgbWR;UMQ8u01;e1;WTJrKZbmt0l$|Szp$iA1~?f3l1k7Qlm5-Z5K zgP(t#`%!C+m+3@qVPXGgd&K@ia@yHA@tpAGMI7_^5+)j)fdu<63S?Ryh%?_afW5vt z*S>f)&({0Th;GSHbm21Q7HQZzVVYCaLzSU)^G z1pF&((%OlgBF=?A8)=f)_$6}RS%v^`jdsBJ-PTP27@`=WSA1I%Wim0bQDxGrLS}mGSp{1|u``ud-#RW!xm~Tz_i~0CG2I%6_a8@mW z%#MliaTuC4z2}6_=PWC`jxny$+8JHG6Hf?P7S=88r_i_+iVB?Lb8LsOo`XU14cxY$ zD2K}IxX`>UB8I%ZTQNnRt~(jr@~>7yKb+mE8UK};>a6{;7VyEu*Wt_W@+RiEIAZ@s zl=o`3{j6_sHQp_IIs5)8Qc}W4Y{|*w8e@w%=9AjHT2`hA?)P~~>KVQLFLvy~nF^DH zdRpd3CEs)Yee@Pk)>a0u*G&2DIeH6bC{Inak#&Bplaa1B5b>cr@UWABs}LY z$|s;CCL;P?P++P!#*j+E8G5ImwT)2mh5&^;5f)l>STWU4-4wn|L0Oq+H4M?u9^Br3 zs^=eRWHQ0v>$&hy)YCTE!FF)8gHcg77I~*zCjhHcfAo?-;;A z%Jw=FI$OhLHAXL!@*1OFCuF$CgA2(>DR}Ov9>5AkXvRO>187)-Nvlj{})D?yBiC{X~5$_7w(QAsRE2{>B-@iyW&>Omap3dysKzHW%#?rBnksYGnqbuEvc1;gRHO-wn6PaqbEC7a!Yb&y zr=M8=?9H@GraM22m))JwDivLy+AH!yoPiJem7*Ii3O-z4buoJ89aMB;%82MIddUy< z4;_VwA>m_3qBC2Y%S|aDFG*yQ>o#xI*znMt7G@Mh(SB@XgsWKP;Wm>&d&@9%QSDvf~_NC&mD-pVgbZ}lHW)P-Hl*R|>XzCoTc!$#k22F#pZbR~N|jz8X# zwPBD)wf*PW1@n1!*`KZKiX*)MoSrfFVXN{M?vtj;o#*^ER7d6&`xH!oW;LJm8W(I} z`W(Z8&7wSW|J|6_F054}ZAZdc;IciYI&nWC{8bUWaz{$=H(+n+WcWQS;N!k^sf<|U z@j~6vsrgmjJ~?zqWJv^sjeWrQt&u+rmb-IkzYS+9G&c;hHhSH+es=2ySf0Ki>9?c8 z#(A=>R3F9)#+z9~voe%?Kd)!HZT+IkG)SyUxL%uOrFEAn>;CDFjQth;eNB)i62gd% zR{~9r0#e)3n7wsM3X9;GBXHQn4Qe2QO#^5vF?hWw^J`70Q|PdWO!bF;d!xLWaQ6Q90n062)mv7b3z?pH28@ zT6F5QDcFvC6KVVw|Gze-|2csUx17>*zmhmMwGsToGpIkN0V}eney^;_{bnPX{@-(O zxYLsN)yQ3o*$@bXWIyqAajC^(r+(iC_QwX{hOf;J?aS@uOwoABFhpOZPUW^1tMsKY zxW1Jf+jMAB;gM6>hx@@Rbno+I93;a8*XoM%C})iP-y5xn;z?<*yQgd6YW6}XE3;{qu2X$Mw{yc08c!>aUlopcBzS**(5*u;cb7d#+^ zG3%T^3Vj7eE4En#2_SS%P&0jKju`=c9$l&N%_oISHsdLwheTW}qLE;5p zkXp_?JleQ_st$VirOF5n4(Oh<_R8C`GWp!nvaGm42kS}N14&K)3w>7t^jB5Y)n*xD zTv{U2#E1DMC02j8fLbTv27FnNN%~%w;_cEJ8hCv(ainRwh=sMpLg1~^VVHXJSWoK| zInGT+Ss-9tnqFYVcCRWZi&8u;2FrWdQ1ZweUPE;@bE=UHOhBx1Rs-XuGoZ*i1EZ z2Om1!C6I!*bpXY28m7>ERQD4OAsSRg|~ zL+xVaO_YK@<97kW{rexh&{wG*Dapx*zkL0kuBoj2xYlOu23CHk2=VM^r?nyKJM`xk z4aFA?-M!6Ba+Zkd$-ixJ*;Yi=)Mm$vM+yEA!sJ`s4{rq(sY`>E@kzGfo-ajU1Wkpj zv8gEsKz>g&726d#deuK66x-$$KRE7MMRo3yQrnFSj6JQ&aG&D?$GmtyEv^3^7@X#Cu30HSCnRtuTDMQsLn#x(h$DiU^9?OG(3MFpPegK(iOmf)w5Z~C*qq-4t9r4#c+^C{Z7 zJ{$2l*|W|%HN)X?*i2AVClfLW)<6Jax~xQ=IiXF~?#y&sw7AVGZ$3qd$d$Rj-!~KD zT#%n}d0b_E44}{Ua?AzRW>36&54&nxC*cVWlx~Y2^heESqfvK)fI;AOo=2JKe&E`4 zGpN?eQGWJmQ@(h)OkCx*IxXk{4^K2dYL3al(#L8sDHkcCZ2ZYk$@t`7&yRT1xe(m< zhjg~CI@nvNLxPJkbD(InmPB`I@f|OYN4HQhWsVHR6(v$7jea!n^z{+o<<*QB@@^*j z)9phC5|+xztU@Z4ncHA-209Z`QyFSxN51RKHEPXLOuW9|zaAqvt70)XteoxsbCKwu z*m((!w}jE&$o<5s(;bo8C4hxKesCn`N$%Q|+1dHw^z^j9zh9lLl6*P%mN2N!DLRq( zXHAXszXMZ@tDvm!d{CSI+az$^dveRmWBm(>j8tU7hN~fBfvF7)Mw8=izskz!goJ$m zIceabl5%pR97w`S(sys0XLnK6#o}7`=kD>~lL>kmtBPwTlPd2m$@Z*D$2AyyyFY(v6bntnt^O&WEiw77e$C=qTL?Ojl3f-k zB!osPSP7y0$l;%=$d-bnL|OWC-X$%*)b+#YD;&!zi6Qs=D6%K%ZzMbRLYPs6bPFw> zJVr)Fz@NL?X-n>~=}6G^Xfb-)(gfr-dOh7OWfQ@Gmm!7E^@<0kqtC;h-kIIgr5$d0 zrX0Op+XFYxlGj;j%u=%l=hJoU)0>*T#!+Q?fgbP?x3OX7S#ZWp)^NLbpHc+_De z{b;OJ%}_&MjlI$3dc!`g0pY4L�IT70L@0>kr^^`ZJOBw*E@I2cKBFV*w&f{oey) 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 F{{_7wV}Jkv diff --git a/qp/ensemble.py b/qp/ensemble.py index 6ee0ea1e..042ed935 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -296,12 +296,13 @@ def evaluate(self, loc, using=None, norm=False, vb=True): tuple of string and tuple of grid and values of the PDFs (or their approximations) at the requested location(s), of shape (npdfs, nlocs) """ def evaluate_helper(i): - try: + # try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('evaluating pdf '+str(i)+'\n') - return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) - except Exception: - print('ERROR: evaluation with '+using+' failed on '+str(i)+' because '+str(sys.exc_info()[0])) + return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) + # except Exception: + # print('ERROR: evaluation with '+using+' failed on '+str(i)+' because '+str(sys.exc_info()[0])) + # return result self.gridded = self.pool.map(evaluate_helper, self.pdf_range) self.gridded = np.swapaxes(np.array(self.gridded), 0, 1) self.gridded = (using, (self.gridded[0][0], self.gridded[1])) diff --git a/qp/pdf.py b/qp/pdf.py index 52236029..43129a08 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -613,29 +613,38 @@ def quantile_interpolator(xf): if vb: print 'Created a k=`'+str(order)+'`B-spline interpolator for the '+using+' parametrization.' except AssertionError: - print('ERROR: spline interpolation failed with '+str(yf)) + print('ERROR: spline interpolation failed with '+str((xf[in_inds], yf[in_inds]))) try: yf[in_inds] = alternate(xf[in_inds]) assert(np.all(yf >= default_eps)) if vb: print 'Created a linear interpolator for the '+using+' parametrization.' except AssertionError: - print 'ERROR: linear interpolation failed for the '+using+' parametrization.' + print 'ERROR: linear interpolation failed for the '+using+' parametrization with '+str((xf[in_inds], yf[in_inds])) yf[in_inds] = backup(xf[in_inds]) if vb: print 'Doing linear interpolation by hand for the '+using+' parametrization.' + assert(np.all(yf >= default_eps)) if vb: - print('evaluated inside '+str((xf, yf))) + print('evaluated inside '+str((xf[in_inds], yf[in_inds]))) - tan_lo = y_crit_lo / (x_crit_lo - z[0]) - yf[lo_inds] = tan_lo * (xf[lo_inds] - z[0])# yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) - if vb: - print('evaluated below '+str((xf, yf))) + try: + tan_lo = y_crit_lo / (x_crit_lo - z[0]) + yf[lo_inds] = tan_lo * (xf[lo_inds] - z[0])# yf[in_inds[0]] / (xf[in_inds[0]] - z[0]) + assert(np.all(yf >= default_eps)) + if vb: + print('evaluated below '+str((xf[lo_inds], yf[lo_inds]))) + except AssertionError: + print('ERROR: linear extrapolation below failed with '+str((xf[lo_inds], yf[lo_inds]))+' via '+str(tan_lo, x_crit_lo, z[0])) + + try: + tan_hi = y_crit_hi / (z[-1] - x_crit_hi) + yf[hi_inds] = tan_hi * (z[-1] - xf[hi_inds])# yf[in_inds[-1]] * (xf[hi_inds] - z[-1]) / (xf[in_inds[-1]] - z[-1]) + if vb: + print('evaluated above '+str((xf[hi_inds], yf[hi_inds]))) + except AssertionError: + print('ERROR: linear extrapolation above failed with '+str((xf[hi_inds], yf[hi_inds]))+' via '+str(tan_hi, z[-1], x_crit_hi)) - tan_hi = y_crit_hi / (z[-1] - x_crit_hi) - yf[hi_inds] = tan_hi * (z[-1] - xf[hi_inds])# yf[in_inds[-1]] * (xf[hi_inds] - z[-1]) / (xf[in_inds[-1]] - z[-1]) - if vb: - print('evaluated above '+str((xf, yf))) return(yf) # if vb: # print(tck) @@ -801,20 +810,20 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): x = np.linspace(self.limits[0], self.limits[-1], 100) if self.truth is not None: - min_x = self.truth.ppf(np.array([0.001])) - max_x = self.truth.ppf(np.array([0.999])) - x = np.linspace(min_x, max_x, 100) + [min_x, max_x] = [self.truth.ppf(np.array([0.001])), self.truth.ppf(np.array([0.999]))] extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] + [min_x, max_x] = extrema + x = np.linspace(min_x, max_x, 100) y = self.truth.pdf(x) plt.plot(x, y, color=colors['truth'], linestyle=styles['truth'], lw=5.0, alpha=0.25, label='True PDF') if vb: print 'Plotted truth.' if self.mix_mod is not None: - min_x = self.mix_mod.ppf(np.array([0.001])) - max_x = self.mix_mod.ppf(np.array([0.999])) - x = np.linspace(min_x, max_x, 100) + [min_x, max_x] = [self.mix_mod.ppf(np.array([0.001])), self.mix_mod.ppf(np.array([0.999]))] extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] + [min_x, max_x] = extrema + x = np.linspace(min_x, max_x, 100) y = self.mix_mod.pdf(x) plt.plot(x, y, color=colors['mix_mod'], linestyle=styles['mix_mod'], lw=2.0, alpha=1.0, label='Mixture Model PDF') if vb: @@ -825,21 +834,22 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): print('first: '+str((z,p))) (x, y) = qp.utils.normalize_quantiles(self.quantiles, (z, p)) print('second: '+str((x,y))) - min_x = min(min(x), extrema[0]) - max_x = max(max(x), extrema[-1]) + [min_x, max_x] = [min(x), max(x)] + extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] + [min_x, max_x] = extrema x = np.linspace(min_x, max_x, 100) print('third: '+str(x)) (grid, qinterpolated) = self.approximate(x, vb=vb, using='quantiles') plt.scatter(self.quantiles[1], np.zeros(np.shape(self.quantiles[1])), color=colors['quantiles'], marker='|', s=100, label='Quantiles', alpha=0.75) # plt.vlines(z, np.zeros(len(self.quantiles[1])), p, color=colors['quantiles'], linestyle=styles['quantiles'], lw=1.0, alpha=1.0, label='Quantiles') plt.plot(grid, qinterpolated, color=colors['quantiles'], lw=2.0, alpha=1.0, linestyle=styles['quantiles'], label='Quantile Interpolated PDF') - extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] if vb: print 'Plotted quantiles.' if self.histogram is not None: - min_x = self.histogram[0][0] - max_x = self.histogram[0][-1] + [min_x, max_x] = [min(self.histogram[0]), max(self.histogram[0])] + extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] + [min_x, max_x] = extrema x = np.linspace(min_x, max_x, 100) # plt.vlines(self.histogram[0], self.histogram[0][:-1], # self.histogram[0][1:], color=colors['histogram'], linestyle=styles['histogram'], lw=1.0, alpha=1., label='histogram bin ends') @@ -854,18 +864,19 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): print 'Plotted histogram.' if self.gridded is not None: - min_x = min(self.gridded[0]) - max_x = max(self.gridded[0]) + [min_x, max_x] = [min(self.gridded[0]), max(self.gridded[0])] + extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] + [min_x, max_x] = extrema (x, y) = self.gridded plt.plot(x, y, color=colors['gridded'], lw=1.0, alpha=0.5, linestyle=styles['gridded'], label='Gridded PDF') - extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] if vb: print 'Plotted gridded.' if self.samples is not None: - min_x = min(self.samples) - max_x = max(self.samples) + [min_x, max_x] = [min(self.samples), max(self.samples)] + extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] + [min_x, max_x] = extrema x = np.linspace(min_x, max_x, 100) plt.scatter(self.samples, np.zeros(np.shape(self.samples)), color=colors['samples'], marker='|', s=100, label='Samples', alpha=0.75) (grid, sinterpolated) = self.approximate(x, vb=vb, @@ -873,7 +884,6 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): plt.plot(grid, sinterpolated, color=colors['samples'], lw=2.0, alpha=1.0, linestyle=styles['samples'], label='Samples Interpolated PDF') - extrema = [min(extrema[0], min_x), max(extrema[1], max_x)] if vb: print('Plotted samples') From 73a3a408d6ed7c1d4e00474422b321cfc5886bb3 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 17:22:11 -0400 Subject: [PATCH 69/96] perfecting figures --- .../figures/demo_pz.pdf | Bin 141914 -> 140374 bytes .../figures/individual_kld.pdf | Bin 87333 -> 168627 bytes .../figures/precision.pdf | Bin 200098 -> 200227 bytes .../figures/stacked.pdf | Bin 143256 -> 142394 bytes .../figures/tension.pdf | Bin 170534 -> 170472 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/demo_pz.pdf index 4ac08a52777dd4f0572b09f3c3335a7f14bd92a3..4bf7a231afadf01fdc236ba8b9d9fcf6cbe97733 100644 GIT binary patch delta 4244 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 y0TN_hZ^`#4Sa&}qj}q+ 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

|8Jyo64vnISNlB;7c&%P>cs>r*E`wqQ(l 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 uTBHo5xc2*ctQejyUnEwaqvC7r} literal 87333 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≧ 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 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/stacked.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/stacked.pdf index 80e658be69f5f7e2be0a111621e3f5ea7894022b..3ccae76a3542e54c562a7ab2ff36b6a99dc6e26d 100644 GIT binary patch delta 6786 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 delta 7638 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 Date: Wed, 6 Sep 2017 17:22:41 -0400 Subject: [PATCH 70/96] perfecting figures --- .../main.tex | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index ad051813..767fa83d 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -1,8 +1,8 @@ \RequirePackage{docswitch} \setjournal{\flag} -\documentclass[\docopts]{\docclass} +\documentclass[]{emulateapj} \usepackage{lsstdesc_macros} @@ -438,8 +438,8 @@ \section{Photo-z Test Data} \subsection{\Mgdata data mock catalog} \label{sec:graham} -Our first dataset is an $N_{g}\approx30,000$ object subset of the simulated -galaxy catalog used for LSST photometric redshift experiments by +Our first dataset is an $N_{g}=100,000$ object subset of the simulated galaxy +catalog used for LSST photometric redshift experiments by \citet{graham_photometric_2017}. The data builds on the Millennium simulation \citep{springel_simulations_2005}, and in particular the LC DEEP catalog based on the galaxy formation models of @@ -563,8 +563,9 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \begin{center} \includegraphics[width=\columnwidth]{figures/stacked.pdf} \caption{An example of the stacked estimator of the redshift distribution, -for a subsample of $N_{g}=100$ galaxies drawn from the \mgdata data mock -catalog and with just $N_{f}=10$ parameters used for each \pz. +for a subsample of $N_{g}=100$ galaxies drawn from the \ssdata data mock +catalog and with just $N_{f}=10$ parameters used for each \pz; the small-scale +features are due to the small number of galaxies in the sample. The most striking characteristic of $\hat{n}(z)$ with a relatively small number of parameters on a small number of galaxies is the coarseness of the histogram format (orange dotted line) relative to the quantile format (purple @@ -632,10 +633,10 @@ \subsection{Stacked $\hat{n}(z)$ estimator} high-resolution $p(z)$ and for reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{\ q}$ -\begin{figure} +\begin{figure*} \begin{center} - \includegraphics[width=\columnwidth]{figures/graham_kld.png}\\ - \includegraphics[width=\columnwidth]{figures/schmidt_kld.png} + \includegraphics[width=\columnwidth]{figures/graham_kld.png} +\includegraphics[width=\columnwidth]{figures/schmidt_kld.png} \caption{KLD between $\hat{n}(z)$ derived from approximate pz\ representations and $\hat{n}(z)$ derived from the original, high-resolution \pz s as a function of number of stored parameters, for the three different @@ -649,7 +650,7 @@ \subsection{Stacked $\hat{n}(z)$ estimator} formats perform comparably well. \label{fig:kld}} \end{center} -\end{figure} +\end{figure*} We interpret Figure~\ref{fig:kld} in the context of constraints on storage allocation imposed by the survey and constraints on the acceptable degree of @@ -679,13 +680,13 @@ \subsection{Individual \pz s} \begin{figure} \begin{center} - \includegraphics[width=\columnwidth]{figures/individual.png} + \includegraphics[width=\columnwidth]{figures/individual_kld.pdf} \caption{The distribution of log-KLD values for $N_{g}=100$ \pz s from the -\ssdata dataset with $N_{f}=10$ over the quantiles (purple with dashed border), +\mgdata dataset with $N_{f}=10$ over the quantiles (purple with dashed border), samples (green with dash-dotted border), and histogram (orange with dotted border) formats. - For the individual \pz s, the samples format has far better KLDs than the -histogram or quantile formats, which are comparable to one another. + For the individual \pz s, the piecewise constant format has a higher median +KLD than the samples or quantile formats, which are comparable to one another. \label{fig:individual}} \end{center} \end{figure} @@ -704,10 +705,10 @@ \subsection{Individual \pz s} for those using \pz s in their science to calculate the requirements on the acceptable degree of information loss. -\begin{figure} +\begin{figure*} \begin{center} - \includegraphics[width=\columnwidth]{graham_moments.png}\\ - \includegraphics[width=\columnwidth]{schmidt_moments.png} + \includegraphics[width=\columnwidth]{graham_moments.png} +\includegraphics[width=\columnwidth]{schmidt_moments.png} \caption{The mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of the log-KLD distributions for each dataset as a function of $N_{f}$ for the quantile (purple), samples (green), and histogram (orange) formats. @@ -721,7 +722,7 @@ \subsection{Individual \pz s} histogram format achieving the lowest moments in that regime. \label{fig:moments}} \end{center} -\end{figure} +\end{figure*} From fcefeb736e0b1a830ef1ae2741b861e4653f57fc Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 17:25:23 -0400 Subject: [PATCH 71/96] still fiddling with interpolation --- qp/pdf.py | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 43129a08..1b9e6ccc 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -584,9 +584,10 @@ def interpolate(self, using=None, vb=True): (x, y) = qp.utils.evaluate_quantiles(self.quantiles, vb=vb) if vb: print('evaluated quantile PDF: '+str((x, y))) + # [x_crit_lo, x_crit_hi] = [x[0], x[-1]] + # [y_crit_lo, y_crit_hi] = [y[0], y[-1]] (x, y) = qp.utils.normalize_quantiles(self.quantiles, (x, y), vb=vb) if vb: print('complete evaluated quantile PDF: '+str((x, y))) - alternate = spi.interp1d(x, y, kind='linear', bounds_error=False, fill_value=default_eps) backup = qp.utils.make_kludge_interpolator((x, y), outside=default_eps) @@ -595,9 +596,34 @@ def interpolate(self, using=None, vb=True): q = np.insert(self.quantiles[0], 0, 0.) q = np.append(q, 1.) - inside = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative() + # knots, coeffs, degree = spi.splrep(z, q, k=order, s=0) + # + # def inside(xi): + # yi = spi.splev(xi, (knots, coeffs, degree), der=1) + # coeffs[yi<0] [x_crit_lo, x_crit_hi] = [self.quantiles[1][0], self.quantiles[1][-1]] - (y_crit_lo, y_crit_hi) = inside([x_crit_lo, x_crit_hi]) + [y_crit_lo, y_crit_hi] = [-1., -1.] + + try: + while (order>0) and (y_crit_lo <= 0.) and (y_crit_hi <= 0): + if vb: print('order is '+str(order)) + inside = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative() + [y_crit_lo, y_crit_hi] = inside([x_crit_lo, x_crit_hi]) + order -= 1 + assert(np.all(inside(z) >= 0.)) + except AssertionError: + print('ERROR: spline tangents '+str((y_crit_lo, y_crit_hi))+'<0; defaulting to linear interpolation') + inside_int = spi.interp1d(z, q, kind='linear', bounds_error=False, fill_value=default_eps) + derivative = (q[1:] - q[:-1]) / (z[1:] - z[:-1]) + derivative = np.insert(derivative, 0, default_eps) + derivative = np.append(derivative, default_eps) + def inside(xf): + nx = len(xf) + yf = np.ones(nx) * default_eps + for n in range(nx): + i = bisect.bisect_left(z, xf[n]) + yf[n] = derivative[i] + return(yf) def quantile_interpolator(xf): yf = np.ones(np.shape(xf)) * default_eps @@ -635,15 +661,16 @@ def quantile_interpolator(xf): if vb: print('evaluated below '+str((xf[lo_inds], yf[lo_inds]))) except AssertionError: - print('ERROR: linear extrapolation below failed with '+str((xf[lo_inds], yf[lo_inds]))+' via '+str(tan_lo, x_crit_lo, z[0])) + print('ERROR: linear extrapolation below failed with '+str((xf[lo_inds], yf[lo_inds]))+' via '+str((tan_lo, x_crit_lo, z[0]))) try: tan_hi = y_crit_hi / (z[-1] - x_crit_hi) yf[hi_inds] = tan_hi * (z[-1] - xf[hi_inds])# yf[in_inds[-1]] * (xf[hi_inds] - z[-1]) / (xf[in_inds[-1]] - z[-1]) + assert(np.all(yf >= default_eps)) if vb: print('evaluated above '+str((xf[hi_inds], yf[hi_inds]))) except AssertionError: - print('ERROR: linear extrapolation above failed with '+str((xf[hi_inds], yf[hi_inds]))+' via '+str(tan_hi, z[-1], x_crit_hi)) + print('ERROR: linear extrapolation above failed with '+str((xf[hi_inds], yf[hi_inds]))+' via '+str((tan_hi, z[-1], x_crit_hi))) return(yf) # if vb: @@ -704,7 +731,7 @@ def samples_interpolator(xf): return (x, y) = self.gridded - interpolator = spi.interp1d(x, y, kind=self.scheme, fill_value="extrapolate") + interpolator = spi.interp1d(x, y, kind=self.scheme, bounds_error=False, fill_value=default_eps) if vb: print 'Created a `'+self.scheme+'` interpolator for the '+using+' parametrization.' From 94f1445829faafb033a8ad92d4bb3e5e9886cd85 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 17:43:59 -0400 Subject: [PATCH 72/96] fixed broken try/except and interpolation --- qp/pdf.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 1b9e6ccc..27b9a8f1 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -582,6 +582,7 @@ def interpolate(self, using=None, vb=True): else: order = self.scheme + if vb: print('input quantiles are '+str(self.quantiles[1])) (x, y) = qp.utils.evaluate_quantiles(self.quantiles, vb=vb) if vb: print('evaluated quantile PDF: '+str((x, y))) # [x_crit_lo, x_crit_hi] = [x[0], x[-1]] @@ -605,12 +606,12 @@ def interpolate(self, using=None, vb=True): [y_crit_lo, y_crit_hi] = [-1., -1.] try: - while (order>0) and (y_crit_lo <= 0.) and (y_crit_hi <= 0): + while (order>0) and ((y_crit_lo <= 0.) or (y_crit_hi <= 0.)): if vb: print('order is '+str(order)) inside = spi.InterpolatedUnivariateSpline(z, q, k=order, ext=1).derivative() [y_crit_lo, y_crit_hi] = inside([x_crit_lo, x_crit_hi]) order -= 1 - assert(np.all(inside(z) >= 0.)) + assert((y_crit_lo > 0.) and (y_crit_hi > 0.)) except AssertionError: print('ERROR: spline tangents '+str((y_crit_lo, y_crit_hi))+'<0; defaulting to linear interpolation') inside_int = spi.interp1d(z, q, kind='linear', bounds_error=False, fill_value=default_eps) From 1a7e7a82db7741d5aa698c889af82ed409aa1c19 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 17:49:12 -0400 Subject: [PATCH 73/96] updating notebooks that make figures --- .../research/analysis.ipynb | 230 +++++++++++------- .../research/data_exploration.ipynb | 14 +- docs/notebooks/kld.ipynb | 114 +++++++-- 3 files changed, 232 insertions(+), 126 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index bf00f61b..1dc10d37 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -122,7 +122,7 @@ " n_gals_tot = len(pdfs)\n", " full_gal_range = range(n_gals_tot)\n", " subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)\n", - " subset = [50904, 24239, 76385, 88784, 70208, 95397, 74433, 86406, 5199, 4373]\n", + "# subset = [ 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600]\n", " print('randos for debugging: '+str(subset))\n", " pdfs_use = pdfs[subset]\n", " \n", @@ -168,7 +168,7 @@ }, "outputs": [], "source": [ - "def plot_examples(n_gals_use, dataset_key, bonus=None):\n", + "def plot_examples(n_gals_use, dataset_key, bonus=None, norm=False):\n", " \n", " path = os.path.join(dataset_key, str(n_gals_use))\n", " loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus)\n", @@ -187,9 +187,12 @@ " plt.xlabel(r'$z$', fontsize=14)\n", " plt.ylabel(r'$p(z)$', fontsize=14)\n", " plt.xlim(min(z_grid), max(z_grid))\n", - " plt.ylim(0., max(pz_max))\n", " plt.title(dataset_info[dataset_key]['name']+' data examples', fontsize=16)\n", - " plt.savefig(loc+'.pdf', dpi=250)\n", + " if norm:\n", + " plt.ylim(0., max(pz_max))\n", + " plt.savefig(loc+'norm.pdf', dpi=250)\n", + " else:\n", + " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()\n", " \n", " if 'modes' in info.keys():\n", @@ -233,14 +236,14 @@ "outputs": [], "source": [ "def save_one_stat(dataset_name, n_gals_use, N_f, i, stat, stat_name):\n", - " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key+str(N_f)+'_'+str(i))\n", + " path = os.path.join(dataset_name, str(n_gals_use))\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name+str(N_f)+'_'+str(i))\n", " with open(loc+'.hkl', 'w') as filename:\n", " hickle.dump(stat, filename)\n", " \n", "def load_one_stat(dataset_name, n_gals_use, N_f, i, stat_name):\n", - " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key+str(N_f)+'_'+str(i))\n", + " path = os.path.join(dataset_name, str(n_gals_use))\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name+str(N_f)+'_'+str(i))\n", " with open(loc+'.hkl', 'r') as filename:\n", " stat = hickle.load(filename)\n", " return stat\n", @@ -251,7 +254,13 @@ " \n", "def save_metrics_wrapper(dataset_name, n_gals_use, N_f, i, stat_name):\n", " stat = load_one_stat(dataset_name, n_gals_use, N_f, i, stat_name)\n", - " save_nz_metrics(datset_name, n_gals_use, N_f, stat, stat_name)" + " save_nz_metrics(dataset_name, n_gals_use, N_f, stat, stat_name)\n", + " \n", + "def clear_stats(dataset_name, n_gals_use, stat_name):\n", + " path = os.path.join(dataset_name, str(n_gals_use))\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name)\n", + " if os.path.exists(loc):\n", + " os.remove(loc)" ] }, { @@ -519,10 +528,10 @@ " dist_max.append(max(logdata))\n", " plt.legend()\n", " plt.ylabel('frequency', fontsize=14)\n", - " plt.xlabel(r'$\\log[KLD]$', fontsize=14)\n", + " plt.xlabel(r'$\\log[\\mathrm{KLD}]$', fontsize=14)\n", "# plt.xlim(min(dist_min), max(dist_max))\n", "# plt.ylim(0., max(hist_max))\n", - " plt.title(dataset_info[dataset_key]['name']+r' data $p(KLD)$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + " plt.title(dataset_info[dataset_key]['name']+r' data $p(\\mathrm{KLD})$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()" ] @@ -548,6 +557,8 @@ " z_range = zlim[-1] - zlim[0]\n", " delta_z = z_range / len(z_grid)\n", " \n", + " n_gals_use = E0.n_pdfs\n", + " \n", "# print('stacking the ensembles')\n", "# stack_start = timeit.default_timer()\n", " stacked_pdfs, stacks = {}, {}\n", @@ -572,7 +583,7 @@ " stacked_pdfs[key], \n", " limits=zlim, dx=delta_z)\n", " print('calculated the '+key+' stacked kld in '+str(timeit.default_timer() - kld_start))\n", - " save_one_stat(name, size, n_floats_use, i, klds, 'nz_klds')\n", + " save_one_stat(dataset_key, n_gals_use, n_floats_use, i, klds, 'nz_klds')\n", "# save_nz_metrics(name, size, n_floats_use, klds, 'nz_klds')\n", " \n", " moments = {}\n", @@ -585,7 +596,7 @@ " dx=delta_z, \n", " vb=False))\n", " print('calculated the '+key+' stacked moments in '+str(timeit.default_timer() - moment_start))\n", - " save_one_stat(name, size, n_floats_use, i, moments, 'nz_moments')\n", + " save_one_stat(dataset_key, n_gals_use, n_floats_use, i, moments, 'nz_moments')\n", "# save_moments(name, size, n_floats_use, moments, 'nz_moments') \n", " \n", " path = os.path.join(dataset_key, str(E0.n_pdfs))\n", @@ -772,7 +783,7 @@ " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ log-moments', fontsize=16)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[\\mathrm{KLD}]$ log-moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", @@ -812,7 +823,7 @@ " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[KLD]$ log-moments', fontsize=16)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[\\mathrm{KLD}]$ log-moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", @@ -1186,9 +1197,9 @@ "\n", "dataset_keys = ['mg', 'ss']\n", "\n", - "for dataset_key in dataset_keys:\n", - " dataset_info[dataset_key] = {}\n", - " if dataset_key == 'mg':\n", + "for name in dataset_keys:\n", + " dataset_info[name] = {}\n", + " if name == 'mg':\n", " datafilename = 'bpz_euclid_test_10_3.probs'\n", " z_low = 0.01\n", " z_high = 3.51\n", @@ -1196,7 +1207,7 @@ " plotname = 'brighter'\n", " skip_rows = 1\n", " skip_cols = 1\n", - " elif dataset_key == 'ss':\n", + " elif name == 'ss':\n", " datafilename = 'test_magscat_trainingfile_probs.out'\n", " z_low = 0.005\n", " z_high = 2.11\n", @@ -1204,17 +1215,17 @@ " plotname = 'fainter'\n", " skip_rows = 1\n", " skip_cols = 1\n", - " dataset_info[dataset_key]['filename'] = datafilename \n", + " dataset_info[name]['filename'] = datafilename \n", " \n", - " dataset_info[dataset_key]['z_lim'] = (z_low, z_high)\n", + " dataset_info[name]['z_lim'] = (z_low, z_high)\n", " z_grid = np.arange(z_low, z_high, delta, dtype='float')#np.arange(z_low, z_high + delta, delta, dtype='float')\n", " z_range = z_high - z_low\n", " delta_z = z_range / len(z_grid)\n", - " dataset_info[dataset_key]['z_grid'] = z_grid\n", - " dataset_info[dataset_key]['delta_z'] = delta_z\n", + " dataset_info[name]['z_grid'] = z_grid\n", + " dataset_info[name]['delta_z'] = delta_z\n", "\n", - " dataset_info[dataset_key]['N_GMM'] = nc_needed# will be overwritten later\n", - " dataset_info[dataset_key]['name'] = plotname" + " dataset_info[name]['N_GMM'] = nc_needed# will be overwritten later\n", + " dataset_info[name]['name'] = plotname" ] }, { @@ -1225,39 +1236,18 @@ }, "outputs": [], "source": [ + "formats = ['quantiles', 'histogram', 'samples']\n", + "formats_plus = list(formats)\n", + "formats_plus.append('truth')\n", + "\n", "high_res = 300\n", + "\n", "color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256.\n", "n_plot = len(color_cycle)\n", + "\n", "n_moments_use = 4\n", "moment_names = ['integral', 'mean', 'variance', 'kurtosis']\n", - "moment_shapes = ['o', '*', 'P', 'X']\n", - "\n", - "#make this a more clever structure, i.e. a dict\n", - "formats = ['quantiles', 'histogram', 'samples']\n", - "colors = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen'}\n", - "styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'}\n", - "stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'}\n", - "\n", - "formats_plus = ['quantiles', 'histogram', 'samples', 'truth']\n", - "colors_plus = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen', 'truth':'black'}\n", - "styles_plus = {'quantiles': '--', 'histogram': ':', 'samples': '-.', 'truth': '-'}\n", - "\n", - "iqr_min = [3.5]\n", - "iqr_max = [delta]\n", - "modes_max = [0]\n", - "pz_max = [1.]\n", - "nz_max = [1.]\n", - "hist_max = [1.]\n", - "dist_min = [0.]\n", - "dist_max = [0.]\n", - "pz_mean_max = -10.*np.ones(n_moments_use)\n", - "pz_mean_min = 10.*np.ones(n_moments_use)\n", - "kld_min = [1.]\n", - "kld_max = [1.]\n", - "nz_mean_max = -10.*np.ones(n_moments_use)\n", - "nz_mean_min = 10.*np.ones(n_moments_use)\n", - "n_delta_max = -10.*np.ones(n_moments_use)\n", - "n_delta_min = 10.*np.ones(n_moments_use)" + "moment_shapes = ['o', '*', 'P', 'X']" ] }, { @@ -1270,10 +1260,10 @@ "source": [ "#change all for NERSC\n", "\n", - "floats = [3, 10, 30, 100]\n", + "floats = [3]#, 10, 30, 100]\n", "sizes = [10]#[10, 100, 1000]\n", - "names = ['mg']#dataset_info.keys()\n", - "instantiations = range(2, 3)#0)\n", + "names = ['ss']#dataset_info.keys()\n", + "instantiations = range(10, 11)#0)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1291,7 +1281,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": false }, "outputs": [], "source": [ @@ -1382,12 +1373,12 @@ }, "outputs": [], "source": [ - "# floats = [3, 10, 30, 100]\n", - "# sizes = [10]#[10, 100, 1000]\n", - "# names = ['mg']#dataset_info.keys()\n", - "# instantiations = range(0, 1)#0)\n", + "floats = [3, 10, 30, 100]\n", + "sizes = [100]#[10, 100, 1000]\n", + "names = dataset_info.keys()\n", + "instantiations = range(0, 2)\n", "\n", - "# all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" + "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] }, { @@ -1398,38 +1389,81 @@ }, "outputs": [], "source": [ - "# comment out for NERSC\n", - "# run twice to match axis limits\n", + "#make this a more clever structure, i.e. a dict\n", + "colors = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen'}\n", + "styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'}\n", + "stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'}\n", "\n", - "for name in names:\n", - " for size in sizes:\n", - " for i in instantiations:\n", - " top_bonusdict = {}\n", - " bo = '_original'+str(i)\n", - "# plot = plot_examples(size, name, bonus=bo)\n", - " top_bonusdict[bo] = ['-', 0.25]\n", - " bp = '_postfit'+str(i)\n", - "# plot = plot_examples(size, name, bonus=bp)\n", - " top_bonusdict[bp] = ['-', 0.5]\n", - " for n in range(len(floats)):\n", - " bonusdict = top_bonusdict.copy()\n", - " n_floats_use = floats[n]\n", - " for f in formats:\n", - " fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - " bonusdict[fname] = [styles[f], 0.5]\n", - " plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - " plot = plot_individual_kld(size, name, n_floats_use, i)\n", - " save_moments_wrapper(name, size, n_floats_use, i, 'pz_kld_moments')\n", - " save_moments_wrapper(name, size, n_floats_use, i, 'pz_moments')\n", - " save_moments_wrapper(name, size, n_floats_use, i, 'pz_moment_deltas')\n", - " plot = plot_estimators(size, name, n_floats_use, i)\n", - " save_metrics_wrapper(name, size, n_floats_use, i, 'nz_klds')\n", - " save_moments_wrapper(name, size, n_floats_use, i, 'nz_moments')\n", - " plot = plot_pz_metrics(name, size)\n", - " plot = plot_pz_delta_moments(name, size)\n", - " plot = plot_nz_klds(name, size)\n", - " plot = plot_nz_moments(name, size)" + "colors_plus = colors.copy()\n", + "colors_plus['truth'] = 'black'\n", + "styles_plus = styles.copy()\n", + "styles_plus['truth'] = '-'\n", + "\n", + "iqr_min = [3.5]\n", + "iqr_max = [delta]\n", + "modes_max = [0]\n", + "pz_max = [1.]\n", + "nz_max = [1.]\n", + "hist_max = [1.]\n", + "dist_min = [0.]\n", + "dist_max = [0.]\n", + "pz_mean_max = -10.*np.ones(n_moments_use)\n", + "pz_mean_min = 10.*np.ones(n_moments_use)\n", + "kld_min = [1.]\n", + "kld_max = [1.]\n", + "nz_mean_max = -10.*np.ones(n_moments_use)\n", + "nz_mean_min = 10.*np.ones(n_moments_use)\n", + "n_delta_max = -10.*np.ones(n_moments_use)\n", + "n_delta_min = 10.*np.ones(n_moments_use)\n", + "\n", + "norm = False#true for shared axes on individual instantiation plots, otherwise false\n", + "\n", + "moments_to_save = ['pz_kld_moments', 'pz_moments', 'pz_moment_deltas', 'nz_moments']\n", + "metrics_to_save = ['nz_klds']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [], + "source": [ + "# # comment out for NERSC\n", + "# # set norm to True and run twice to match axis limits\n", + "\n", + "# for name in names:\n", + "# for size in sizes:\n", + "# for stat_name in moments_to_save + metrics_to_save:\n", + "# clear_stats(name, size, stat_name)\n", + "# for i in instantiations:\n", + "# top_bonusdict = {}\n", + "# bo = '_original'+str(i)\n", + "# plot = plot_examples(size, name, bonus=bo, norm=norm)\n", + "# top_bonusdict[bo] = ['-', 0.25]\n", + "# bp = '_postfit'+str(i)\n", + "# plot = plot_examples(size, name, bonus=bp, norm=norm)\n", + "# top_bonusdict[bp] = ['-', 0.5]\n", + "# for n in range(len(floats)):\n", + "# bonusdict = top_bonusdict.copy()\n", + "# n_floats_use = floats[n]\n", + "# for f in formats:\n", + "# fname = str(n_floats_use)+f+str(i)\n", + "# plot = plot_examples(size, name, bonus=fname, norm=norm)\n", + "# bonusdict[fname] = [styles[f], 0.5]\n", + "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i)\n", + "# for stat_name in moments_to_save:\n", + "# save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", + "# for stat_name in metrics_to_save:\n", + "# save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", + "# plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_delta_moments(name, size)\n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)" ] }, { @@ -1456,6 +1490,16 @@ }, "outputs": [], "source": [ + "# indices = [ 14619, 66891, 67914, 20931, 97633, 7202, 46756, 109704, 93110, 59915]\n", + "# 35851, 65657, 3292, 3838, 10862, 50447, 5316, 49503, 39363, 110951\n", + "# 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600\n", + "# 94746 59924 73186 21069 2579 34780 4623 93464 44621 29828\n", + "# 111140 74609 34411 42554 32981 34904 10264 1667 42037 23986\n", + "# 51790 98555 94971 58683 99752 87479 67286 89575 36950 84283\n", + "# 89866 64959 53221 102714 48642 37379 95257 11874 70743 15107\n", + "# 93651 48304 93829 64956 94703 107021 88900 7849 88808 71397\n", + "# 26862 74765 89470 2741 56888 94275 40017 85989 94077 66553\n", + "# 74666 90417 12553 21928 14720 53798 30290 109516 37033 95242]\n", "# indices = [ 59935, 44820, 26407, 84617, 98728, 35216, 73968, 105130, 844, 63892]" ] } diff --git a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb index d4b31112..d82f2ce5 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb @@ -85,8 +85,8 @@ "outputs": [], "source": [ "# choose one of these:\n", - "dataset_key = 'Euclid'# Melissa Graham's data\n", - "# dataset_key = 'LSST'# Sam Schmidt's data\n", + "# dataset_key = 'Euclid'# Melissa Graham's data\n", + "dataset_key = 'LSST'# Sam Schmidt's data\n", "dataname = dataset_key\n", "\n", "dataset_info = {}\n", @@ -246,8 +246,10 @@ "if dataset_key == 'Euclid':\n", " chosen = 5390\n", "elif dataset_key == 'LSST':\n", - " chosen = 108019\n", - "\n", + "# chosen = 108019 \n", + " indices = [ 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600]\n", + " chosen = indices[9]\n", + " \n", "start_time = timeit.default_timer()\n", "G = qp.PDF(gridded=(dataset_info[dataset_key]['z_grid'], pdfs[chosen]))\n", "print(timeit.default_timer() - start_time)\n", @@ -265,13 +267,13 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "if dataset_key == 'Euclid':\n", " nc_needed = 3\n", - "elif datanset_key == 'LSST':\n", + "elif dataset_key == 'LSST':\n", " nc_needed = 5\n", " \n", "dataset_info[dataset_key]['N_GMM'] = nc_needed" diff --git a/docs/notebooks/kld.ipynb b/docs/notebooks/kld.ipynb index 9d626c8c..f29cda6e 100644 --- a/docs/notebooks/kld.ipynb +++ b/docs/notebooks/kld.ipynb @@ -218,8 +218,9 @@ }, "outputs": [], "source": [ - "widths = np.logspace(-3.0,3.0,13)\n", + "widths = np.logspace(-2.0,2.0,13)\n", "D = np.empty_like(widths)\n", + "E = np.empty_like(widths)\n", "\n", "x = 0.0\n", "infinity = 1000.0\n", @@ -227,7 +228,7 @@ "for k,sigma in enumerate(widths):\n", " Q = qp.PDF(truth=sps.norm(loc=x, scale=sigma))\n", " D[k] = qp.utils.calculate_kl_divergence(P, Q, limits=(-infinity,infinity), vb=False)\n", - " \n", + " E[k] = qp.utils.calculate_rmse(P, Q, limits=(-infinity,infinity), vb=False)\n", "print zip(widths, D)" ] }, @@ -241,14 +242,38 @@ "source": [ "x = widths\n", "y = np.log(widths*(2.0/np.pi))\n", - "plt.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label=r'$\\log(2\\sigma/\\pi)$')\n", - "\n", - "plt.plot(widths, D, color='black', linestyle='-', lw=2.0, alpha=1.0, label='Offset=0.0')\n", - "plt.xscale('log')\n", - "plt.ylim(0.0,32.0)\n", - "plt.xlabel('Width of approximating Gaussian $\\sigma$')\n", - "plt.ylabel('KL divergence (nats)')\n", - "l = plt.legend(loc='upper right')" + "\n", + "# plt.plot(widths, D, color='black', linestyle='-', lw=2.0, alpha=1.0, label='Offset=0.0')\n", + "# plt.xscale('log')\n", + "# plt.ylim(0.0,32.0)\n", + "# plt.xlabel('Width of approximating Gaussian $\\sigma$')\n", + "# plt.ylabel('KL divergence (nats)')\n", + "# l = plt.legend(loc='upper right')\n", + "# plt.show()\n", + "\n", + "# plt.plot(widths, E, color='black', linestyle='-', lw=2.0, alpha=1.0, label='Offset=0.0')\n", + "# plt.xscale('log')\n", + "# plt.xlabel('Width of approximating Gaussian $\\sigma$')\n", + "# plt.ylabel('RMSE')\n", + "# l = plt.legend(loc='upper right')\n", + "# plt.show()\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label=r'$\\log[2\\sigma/\\pi\\sigma_{0}]$')\n", + "ax.set_xscale('log')\n", + "ax.set_xlabel(r'root variance ratio $\\sigma/\\sigma_{0}$')\n", + "ax.set_xlim(1e-2, np.max(widths))\n", + "ax.set_ylim(0, 20)\n", + "ax.plot(widths, D, color='k', linestyle='-', lw=2.0, alpha=1.0, label='KLD')\n", + "ax.set_ylabel('KLD (nats)')\n", + "l = ax.legend(loc='upper right')\n", + "axr = ax.twinx()\n", + "axr.set_ylim(0, 0.1)\n", + "axr.plot(widths, E, color='k', linestyle=':', lw=2.0, alpha=1.0, label='RMSE')\n", + "axr.set_ylabel('RMSE', rotation=270, labelpad=15)\n", + "l = axr.legend(loc= 'lower left')\n", + "fig.show()\n", + "fig.savefig('precision.pdf', dpi=250)" ] }, { @@ -279,6 +304,7 @@ "source": [ "separations = np.linspace(0.0,15.0,16)\n", "D = np.empty_like(separations)\n", + "E = np.empty_like(separations)\n", "\n", "sigma = 1.0\n", "infinity = 100.0\n", @@ -286,7 +312,7 @@ "for k,x0 in enumerate(separations):\n", " Q = qp.PDF(truth=sps.norm(loc=x0, scale=sigma))\n", " D[k] = qp.utils.calculate_kl_divergence(P, Q, limits=(-infinity,infinity), vb=False)\n", - " \n", + " E[k] = qp.utils.calculate_rmse(P, Q, limits=(-infinity,infinity), vb=False)\n", "print zip(separations, D)" ] }, @@ -298,10 +324,19 @@ }, "outputs": [], "source": [ - "plt.plot(separations, D, color='k', linestyle='-', lw=2.0, alpha=1.0, label='Width=1.0')\n", - "plt.xlabel('Separation between Gaussians')\n", - "plt.ylabel('KL divergence (nats)')\n", - "l = plt.legend(loc='upper left')" + "fig, ax = plt.subplots()\n", + "ax.set_xlabel(r'separation $|\\mu-\\mu_{0}|$')\n", + "ax.set_xlim(0, 10)\n", + "ax.set_xlim(0, np.max(D))\n", + "ax.plot(separations, D, color='k', linestyle='-', lw=2.0, alpha=1.0, label='KLD')\n", + "ax.set_ylabel('KLD (nats)')\n", + "l = ax.legend(loc='lower right')\n", + "axr = ax.twinx()\n", + "axr.plot(separations, E, color='k', linestyle=':', lw=2.0, alpha=1.0, label='RMSE')\n", + "axr.set_ylabel('RMSE', rotation=270, labelpad=15)\n", + "axr.set_xlim(0, 10)\n", + "l = axr.legend(loc='upper left')\n", + "fig.show()" ] }, { @@ -352,6 +387,7 @@ "separations = np.linspace(0.0,7.0,15)\n", "\n", "D = np.zeros([7,len(separations)])\n", + "E = np.zeros([7,len(separations)])\n", "tensions = np.empty_like(D)\n", "\n", "for j,sigma in enumerate(widths):\n", @@ -359,6 +395,7 @@ " for k,x0 in enumerate(separations):\n", " Q = qp.PDF(truth=sps.norm(loc=x0, scale=sigma))\n", " D[j,k] = qp.utils.calculate_kl_divergence(P, Q, limits=(-infinity,infinity), vb=False)\n", + " E[j,k] = qp.utils.calculate_rmse(P, Q, limits=(-infinity,infinity), vb=False)\n", " tensions[j,k] = x0 / np.sqrt(sigma*sigma + 1.0)\n", " " ] @@ -373,24 +410,47 @@ "source": [ "x = tensions[0,:]\n", "y = x**2\n", - "plt.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label='$t^2$')\n", - "\n", - "plt.plot(tensions[0,:], D[0,:], color='black', linestyle='-', lw=2.0, alpha=1.0, label='Width=1.0')\n", - "plt.plot(tensions[1,:], D[1,:], color='violet', linestyle='-', lw=2.0, alpha=1.0, label='Width=1,5')\n", - "plt.plot(tensions[2,:], D[2,:], color='blue', linestyle='-', lw=2.0, alpha=1.0, label='Width=2.0')\n", - "plt.plot(tensions[3,:], D[3,:], color='green', linestyle='-', lw=2.0, alpha=1.0, label='Width=2.5')\n", - "plt.plot(tensions[4,:], D[4,:], color='yellow', linestyle='-', lw=2.0, alpha=1.0, label='Width=3.0')\n", - "plt.plot(tensions[5,:], D[5,:], color='orange', linestyle='-', lw=2.0, alpha=1.0, label='Width=3.5')\n", - "plt.plot(tensions[6,:], D[6,:], color='red', linestyle='-', lw=2.0, alpha=1.0, label='Width=4.0')\n", - "plt.xlabel('Tension between Gaussians, $t$ (sigma)')\n", - "plt.ylabel('KL divergence (nats)')\n", - "l = plt.legend(loc='upper left')" + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(x, y, color='gray', linestyle='-', lw=8.0, alpha=0.5, label='$t^2$')\n", + "ax.set_xlabel('tension $t$ (sigma)')\n", + "ax.set_xlim(0, np.max(tensions))\n", + "ax.plot([-1], [-1], color='black', linestyle='-', lw=2.0, alpha=1.0, label='KLD')\n", + "ax.plot([-1], [-1], color='black', linestyle=':', lw=2.0, alpha=1.0, label='RMSE')\n", + "colors = {'blueviolet':1.0, 'forestgreen':2.0, 'darkorange':3.0}\n", + "for item in colors.keys():\n", + " ax.scatter([0], [0], color=item, label='Width='+str(colors[item])[0]+r'$\\sigma$')\n", + "\n", + "ax.plot(tensions[0,:], D[0,:], color='blueviolet', linestyle='-', lw=2.0, alpha=1.0)#, label='Width=1.0')\n", + "# ax.plot(tensions[1,:], D[1,:], color='violet', linestyle='-', lw=2.0, alpha=1.0, label='Width=1,5')\n", + "ax.plot(tensions[2,:], D[2,:], color='forestgreen', linestyle='-', lw=2.0, alpha=1.0)#, label='Width=2.0')\n", + "# ax.plot(tensions[3,:], D[3,:], color='green', linestyle='-', lw=2.0, alpha=1.0, label='Width=2.5')\n", + "ax.plot(tensions[4,:], D[4,:], color='darkorange', linestyle='-', lw=2.0, alpha=1.0)#, label='Width=3.0')\n", + "# ax.plot(tensions[5,:], D[5,:], color='orange', linestyle='-', lw=2.0, alpha=1.0, label='Width=3.5')\n", + "# ax.plot(tensions[6,:], D[6,:], color='forestgreen', linestyle='-', lw=2.0, alpha=1.0, label='Width=4.0')\n", + "ax.set_ylabel('KLD (nats)')\n", + "l = ax.legend(loc='lower right')\n", + "\n", + "axr = ax.twinx()\n", + "axr.plot(tensions[0,:], E[0,:], color='blueviolet', linestyle=':', lw=2.0, alpha=1.0)#, label='Width=1.0')\n", + "# axr.plot(tensions[1,:], E[1,:], color='violet', linestyle=':', lw=2.0, alpha=1.0, label='Width=1,5')\n", + "axr.plot(tensions[2,:], E[2,:], color='forestgreen', linestyle=':', lw=2.0, alpha=1.0)#, label='Width=2.0')\n", + "# axr.plot(tensions[3,:], E[3,:], color='green', linestyle=':', lw=2.0, alpha=1.0, label='Width=2.5')\n", + "axr.plot(tensions[4,:], E[4,:], color='darkorange', linestyle=':', lw=2.0, alpha=1.0)#, label='Width=3.0')\n", + "# axr.plot(tensions[5,:], E[5,:], color='orange', linestyle=':', lw=2.0, alpha=1.0, label='Width=3.5')\n", + "# axr.plot(tensions[6,:], E[6,:], color='forestgreen', linestyle=':', lw=2.0, alpha=1.0, label='Width=4.0')\n", + "axr.set_ylabel('RMSE', rotation=270, labelpad=15)\n", + "axr.set_xlim(0, np.max(tensions))\n", + "\n", + "fig.show()\n", + "fig.savefig('tension.pdf', dpi=250)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "\n", "## Conclusions\n", "\n", "To summarize, the KL divergence $D$ is an appropriate metric of an approximation to a probability distribution, expressing the loss of information of the approximation from the true distribution. The simple numerical experiments in this notebook suggest the following approximate extrapolations and hypotheses. \n", From f5ba047f0d68e252a6c89b3f18ec05d0d8fe9569 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 18:52:25 -0400 Subject: [PATCH 74/96] fiddling with plots --- .../research/analysis.ipynb | 245 +++++++++--------- 1 file changed, 128 insertions(+), 117 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 1dc10d37..33df4268 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -13,11 +13,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 140, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ "#comment out for NERSC\n", "%load_ext autoreload\n", @@ -28,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 141, "metadata": { "collapsed": false }, @@ -57,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 142, "metadata": { "collapsed": true }, @@ -90,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 143, "metadata": { "collapsed": true }, @@ -109,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 144, "metadata": { "collapsed": false }, @@ -162,7 +171,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 145, "metadata": { "collapsed": false }, @@ -229,7 +238,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 146, "metadata": { "collapsed": true }, @@ -272,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 147, "metadata": { "collapsed": true }, @@ -350,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 148, "metadata": { "collapsed": false }, @@ -460,7 +469,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 149, "metadata": { "collapsed": true }, @@ -500,7 +509,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 150, "metadata": { "collapsed": true }, @@ -545,7 +554,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 151, "metadata": { "collapsed": false }, @@ -614,7 +623,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 152, "metadata": { "collapsed": false }, @@ -676,7 +685,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 153, "metadata": { "collapsed": false }, @@ -717,7 +726,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 154, "metadata": { "collapsed": false }, @@ -747,9 +756,9 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key])\n", + " ax.plot([-1], [0], color=colors[key], label=key, linewidth=1, linestyle=styles[key], alpha=a)\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", + " ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], facecolors='none', s=2*marksize, label=moment_names[n])\n", " n_factor = 0.1 * (n - 2)\n", " if n>1:\n", " ax_n = ax.twinx()\n", @@ -772,7 +781,7 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], markersize=marksize, linestyle=styles[f], alpha=a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], mfc='none', markersize=marksize, linestyle=styles[f], alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " pz_mean_max[n] = max(pz_mean_max[n], np.max(y_plus))\n", " pz_mean_min[n] = min(pz_mean_min[n], np.min(y_minus))\n", @@ -784,7 +793,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[\\mathrm{KLD}]$ log-moments', fontsize=16)\n", - " ax.legend(loc='lower left')\n", + " ax.legend(loc='lower right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -793,10 +802,10 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " ax_n.plot([-1], [0], color=colors[key], label=key, linestyle=styles[key], alpha=a, linewidth=1)\n", " for n in range(1, n_moments_use):\n", " n_factor = 0.1 * (n - 2)\n", - " ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", + " ax.scatter([-1], [0], color='k', alpha=a, marker=shapes[n], facecolors='none', s=2*marksize, label=moment_names[n])\n", " if n>1:\n", " ax_n = ax.twinx()\n", " rot_ang = 270\n", @@ -814,7 +823,7 @@ "# print('pz metrics data shape '+str(pz_stats[f][n]))\n", " data_arr = np.log(np.swapaxes(np.array(pz_stats[f][n]), 0, 1))#go from n_floats*instantiations to instantiations*n_floats\n", " for i in data_arr:\n", - " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, color=colors[f], alpha=a)\n", "# pz_moment_max[n-1].append(max(i))\n", " ax_n.set_ylabel(r'$\\log[\\mathrm{'+moment_names[n]+r'}]$', rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " ax_n.set_ylim(pz_mean_min[n]-1., pz_mean_max[n]+1.)\n", @@ -824,7 +833,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[\\mathrm{KLD}]$ log-moments', fontsize=16)\n", - " ax.legend(loc='lower left')\n", + " ax.legend(loc='lower right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" @@ -832,7 +841,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 155, "metadata": { "collapsed": true }, @@ -862,9 +871,9 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], alpha=a, linewidth=1)\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], facecolors='none', s=2*marksize, label=moment_names[n])\n", " n_factor = 0.1 * (n - 2)\n", " if n>1:\n", " ax_n = ax.twinx()\n", @@ -887,19 +896,20 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", " n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((min(n_delta_min)-1., max(n_delta_max)+1.))\n", + " extremum = np.max(np.abs([n_delta_min[n],n_delta_max[n]]))+1.\n", + " ax_n.set_ylim(-1.*extremum, extremum)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", - " ax.legend(loc='upper right')\n", + " ax.legend(loc='lower right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -908,10 +918,10 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], alpha=a, linewidth=1)\n", " for n in range(1, n_moments_use):\n", " n_factor = 0.1 * (n - 2)\n", - " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], facecolors='none', s=2*marksize, label=moment_names[n])\n", " if n>1:\n", " ax_n = ax.twinx()\n", " rot_ang = 270\n", @@ -929,16 +939,16 @@ " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)\n", " data_arr = np.median(data_arr, axis=2) * 100.\n", " for i in data_arr:\n", - " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, color=colors[f], alpha=a)\n", " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((min(n_delta_min)-1., min(n_delta_max)+1.))\n", + " ax_n.set_ylim(-1.*extremum, extremum)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[name]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='upper right')\n", + " ax.legend(loc='lower right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" @@ -953,7 +963,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 156, "metadata": { "collapsed": false }, @@ -989,7 +999,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 157, "metadata": { "collapsed": false }, @@ -1063,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 158, "metadata": { "collapsed": false }, @@ -1091,9 +1101,9 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], alpha=a, linewidth=1)\n", " for n in range(1, n_moments_use):\n", - " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], facecolors='none', s=2*marksize, label=moment_names[n])\n", " n_factor = 0.1 * (n - 2)\n", " truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)\n", " if n>1:\n", @@ -1116,19 +1126,20 @@ " y_plus = mean + std\n", " y_minus = mean - std\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], markersize=marksize, alpha=a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", " nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))\n", + " extremum = np.max(np.abs([nz_mean_min[n], nz_mean_max[n]]))+1.\n", + " ax_n.set_ylim(-1. * extremum, extremum)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='upper right')\n", + " ax.legend(loc='lower right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -1137,10 +1148,10 @@ " fig.subplots_adjust(right=1.)\n", " ax_n = ax\n", " for key in formats:\n", - " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], linewidth=1)\n", + " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], alpha=a, linewidth=1)\n", " for n in range(1, n_moments_use):\n", " n_factor = 0.1 * (n - 2)\n", - " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=2*marksize, label=moment_names[n])\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], facecolors='none', s=2*marksize, label=moment_names[n])\n", " truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)\n", " if n>1:\n", " ax_n = ax.twinx()\n", @@ -1158,16 +1169,16 @@ " f_factor = 0.05 * (s - 1)\n", " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.\n", " for i in data_arr:\n", - " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], markersize=marksize, color=colors[f], alpha=a)\n", + " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, color=colors[f], alpha=a)\n", " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim((min(nz_mean_min)-1., max(nz_mean_max)+1.))\n", + " ax_n.set_ylim(-1. * extremum, extremum)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='upper right')\n", + " ax.legend(loc='lower right')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" @@ -1186,7 +1197,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 159, "metadata": { "collapsed": false }, @@ -1230,7 +1241,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 160, "metadata": { "collapsed": false }, @@ -1252,7 +1263,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 161, "metadata": { "collapsed": true }, @@ -1279,83 +1290,83 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 162, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [], "source": [ - "# the \"pipeline\"\n", - "global_start = timeit.default_timer()\n", - "for n in range(len(names)):\n", - " name = names[n]\n", + "# # the \"pipeline\"\n", + "# global_start = timeit.default_timer()\n", + "# for n in range(len(names)):\n", + "# name = names[n]\n", " \n", - " dataset_start = timeit.default_timer()\n", - " print('started '+name)\n", + "# dataset_start = timeit.default_timer()\n", + "# print('started '+name)\n", " \n", - " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", + "# pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", - " for s in range(len(sizes)):\n", - " size=sizes[s]\n", + "# for s in range(len(sizes)):\n", + "# size=sizes[s]\n", " \n", - " size_start = timeit.default_timer()\n", - " print('started '+name+str(size))\n", + "# size_start = timeit.default_timer()\n", + "# print('started '+name+str(size))\n", " \n", - " path = os.path.join(name, str(size))\n", - " if not os.path.exists(path):\n", - " os.makedirs(path)\n", + "# path = os.path.join(name, str(size))\n", + "# if not os.path.exists(path):\n", + "# os.makedirs(path)\n", " \n", - " n_gals_use = size\n", + "# n_gals_use = size\n", " \n", - " randos = all_randos[n][s]\n", + "# randos = all_randos[n][s]\n", " \n", - " for i in instantiations:\n", - "# top_bonusdict = {}\n", - " i_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i))\n", + "# for i in instantiations:\n", + "# # top_bonusdict = {}\n", + "# i_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i))\n", " \n", - " original = '_original'+str(i)\n", - " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# plot = plot_examples(size, name, bonus=original)\n", - "# top_bonusdict[original] = ['-', 0.25]\n", + "# original = '_original'+str(i)\n", + "# pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", + "# # plot = plot_examples(size, name, bonus=original)\n", + "# # top_bonusdict[original] = ['-', 0.25]\n", " \n", - " z_grid = dataset_info[name]['in_z_grid']\n", - " N_comps = dataset_info[name]['N_GMM']\n", + "# z_grid = dataset_info[name]['in_z_grid']\n", + "# N_comps = dataset_info[name]['N_GMM']\n", " \n", - " postfit = '_postfit'+str(i)\n", - " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# plot = plot_examples(size, name, bonus=postfit)\n", - "# top_bonusdict[postfit] = ['-', 0.5]\n", + "# postfit = '_postfit'+str(i)\n", + "# catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", + "# # plot = plot_examples(size, name, bonus=postfit)\n", + "# # top_bonusdict[postfit] = ['-', 0.5]\n", " \n", - " for n_floats_use in floats:\n", - "# bonusdict = top_bonusdict.copy()\n", - " float_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", + "# for n_floats_use in floats:\n", + "# # bonusdict = top_bonusdict.copy()\n", + "# float_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - " ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + "# ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", - "# for f in formats:\n", - "# fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - "# bonusdict[fname] = [styles[f], 0.5]\n", - "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + "# # for f in formats:\n", + "# # fname = str(n_floats_use)+f+str(i)\n", + "# # plot = plot_examples(size, name, bonus=fname)\n", + "# # bonusdict[fname] = [styles[f], 0.5]\n", + "# # plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# # plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", " \n", - " stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", + "# stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", + "# # plot = plot_estimators(size, name, n_floats_use, i=i)\n", " \n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", - "# plot = plot_pz_metrics(name, size)\n", - "# plot = plot_pz_delta_moments(name, size) \n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + "# # plot = plot_pz_metrics(name, size)\n", + "# # plot = plot_pz_delta_moments(name, size) \n", + "# # plot = plot_nz_klds(name, size)\n", + "# # plot = plot_nz_moments(name, size)\n", " \n", - " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", + "# print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", - "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" + "# print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "# print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1367,7 +1378,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 163, "metadata": { "collapsed": true }, @@ -1376,14 +1387,14 @@ "floats = [3, 10, 30, 100]\n", "sizes = [100]#[10, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 2)\n", + "instantiations = range(0, 1)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 164, "metadata": { "collapsed": false }, @@ -1424,18 +1435,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 165, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [], "source": [ - "# # comment out for NERSC\n", - "# # set norm to True and run twice to match axis limits\n", + "# comment out for NERSC\n", + "# set norm to True and run twice to match axis limits\n", "\n", - "# for name in names:\n", - "# for size in sizes:\n", + "for name in names:\n", + " for size in sizes:\n", "# for stat_name in moments_to_save + metrics_to_save:\n", "# clear_stats(name, size, stat_name)\n", "# for i in instantiations:\n", @@ -1460,10 +1471,10 @@ "# save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", "# for stat_name in metrics_to_save:\n", "# save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", - "# plot = plot_pz_metrics(name, size)\n", - "# plot = plot_pz_delta_moments(name, size)\n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)" + " plot = plot_pz_metrics(name, size)\n", + " plot = plot_pz_delta_moments(name, size)\n", + " plot = plot_nz_klds(name, size)\n", + " plot = plot_nz_moments(name, size)" ] }, { @@ -1484,7 +1495,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 166, "metadata": { "collapsed": true }, From 6b5bbf1469c3b33661131d25668391cf35741ab4 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 18:56:42 -0400 Subject: [PATCH 75/96] fixing figures --- docs/desc-0000-qp-photo-z_approximation/main.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 767fa83d..6e088095 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -642,11 +642,11 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \pz s as a function of number of stored parameters, for the three different approximation schemes: quantiles (purple dashed line), samples (green dash-dotted line), and histogram (orange dotted line). - Top panel: The mock catalog of \mgdata data of Section~\ref{sec:graham} + Left panel: The mock catalog of \mgdata data of Section~\ref{sec:graham} favors the quantiles format and strongly disfavors the histogram format, with quantiles being slightly more favorable than samples. - Bottom panel: The histogram format is not well-suited to the mock catalog -of \ssdata data of Section~\ref{sec:schmidt}, while the quantiles and samples + Right panel: The histogram format is not well-suited to the mock catalog of +\ssdata data of Section~\ref{sec:schmidt}, while the quantiles and samples formats perform comparably well. \label{fig:kld}} \end{center} @@ -714,10 +714,10 @@ \subsection{Individual \pz s} quantile (purple), samples (green), and histogram (orange) formats. The moments and their error regions are offset about $N_{f}$ to improve readability. - Top panel: The samples format consistently minimizes the moments of the + Left panel: The samples format consistently minimizes the moments of the log-KLD distribution of the \mgdata data mock catalog at low $N_{f}$, and the moments are similar across formats at the highest $N_{f}=100$. - Bottom panel: The\ssdata data mock catalog exhibits no clear pattern at low + Right panel: The\ssdata data mock catalog exhibits no clear pattern at low $N_{f}$ but the moments of all formats decrease at high $N_{f}$ with the histogram format achieving the lowest moments in that regime. \label{fig:moments}} From e5939993d40a60dbc0d5ff6732044cfdd559721e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 6 Sep 2017 18:57:28 -0400 Subject: [PATCH 76/96] saving progress for the day --- qp/pdf.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/qp/pdf.py b/qp/pdf.py index 27b9a8f1..cd47dc59 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -613,8 +613,13 @@ def interpolate(self, using=None, vb=True): order -= 1 assert((y_crit_lo > 0.) and (y_crit_hi > 0.)) except AssertionError: - print('ERROR: spline tangents '+str((y_crit_lo, y_crit_hi))+'<0; defaulting to linear interpolation') - inside_int = spi.interp1d(z, q, kind='linear', bounds_error=False, fill_value=default_eps) + print('ERROR: spline tangents '+str((y_crit_lo, y_crit_hi))+'<0') + if type(self.scheme) == str: + scheme = self.scheme + else: + scheme = 'linear' + if vb: print('defaulting to '+scheme+' interpolation') + inside_int = spi.interp1d(z, q, kind=scheme, bounds_error=False, fill_value=default_eps) derivative = (q[1:] - q[:-1]) / (z[1:] - z[:-1]) derivative = np.insert(derivative, 0, default_eps) derivative = np.append(derivative, default_eps) From bebc129d079c5ab0e8a9e9bb5d550682ce95fcf0 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 7 Sep 2017 15:02:58 -0400 Subject: [PATCH 77/96] fixing error messages --- qp/ensemble.py | 16 ++++++++-------- qp/pdf.py | 4 +++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 042ed935..7129d724 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -191,13 +191,13 @@ def quantize(self, quants=None, N=None, limits=None, vb=True): array of tuples of the CDF values and the quantiles for each PDF """ def quantize_helper(i): - try: + # try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('quantizing pdf '+str(i)+'\n') - return self.pdfs[i].quantize(quants=quants, + return self.pdfs[i].quantize(quants=quants, N=N, limits=None, vb=vb) - except Exception: - print('ERROR: quantization failed on '+str(i)+' because '+str(sys.exc_info()[0])) + # except Exception: + # print('ERROR: quantization failed on '+str(i)+' because '+str(sys.exc_info()[0])) self.quantiles = self.pool.map(quantize_helper, self.pdf_range) self.quantiles = np.swapaxes(np.array(self.quantiles), 0, 1) @@ -438,8 +438,8 @@ def kld_helper(i): return u.quick_kl_divergence(self.gridded[-1][-1][i], grid, dx=dx) else: def kld_helper(i): - P_eval = P_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] - Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] + P_eval = P_func(self.pdfs[i]).evaluate(grid, vb=vb, norm=True)[-1] + Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb, norm=True)[-1] return u.quick_kl_divergence(P_eval, Q_eval, dx=dx) klds = self.pool.map(kld_helper, self.pdf_range) @@ -504,8 +504,8 @@ def rmse_helper(i): return u.quick_rmse(self.gridded[-1][-1][i], grid, dx=dx) else: def rmse_helper(i): - P_eval = P_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] - Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb)[-1] + P_eval = P_func(self.pdfs[i]).evaluate(grid, norm=True, vb=vb)[-1] + Q_eval = Q_func(self.pdfs[i]).evaluate(grid, norm=True, vb=vb)[-1] return u.quick_rmse(P_eval, Q_eval, dx=dx) rmses = self.pool.map(rmse_helper, self.pdf_range) diff --git a/qp/pdf.py b/qp/pdf.py index cd47dc59..dd5ed089 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -299,7 +299,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): order -= 1 assert(not np.any(np.isnan(quantiles))) except AssertionError: - if vb: print('ERROR: splines failed, defaulting to optimization for '+str((icdf, grid))) + print('ERROR: splines failed, defaulting to optimization for '+str((icdf, grid))) locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) quantiles = self.truth.ppf(quantpoints, ivals=grid[locs]) assert(not np.any(np.isnan(quantiles))) @@ -630,6 +630,8 @@ def inside(xf): i = bisect.bisect_left(z, xf[n]) yf[n] = derivative[i] return(yf) + [y_crit_lo, y_crit_hi] = inside([x_crit_lo, x_crit_hi]) + assert((y_crit_lo > 0.) and (y_crit_hi > 0.)) def quantile_interpolator(xf): yf = np.ones(np.shape(xf)) * default_eps From 78e708eca41da807245b081ec66938fedac9fa51 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 26 Sep 2017 11:28:54 -0400 Subject: [PATCH 78/96] found the KLD bug! --- .../{graham_kld.png => graham_kld.pdf} | Bin .../{schmidt_kld.png => schmidt_kld.pdf} | Bin .../research/analysis.ipynb | 539 +++++++++++++----- qp/ensemble.py | 9 +- qp/utils.py | 7 +- 5 files changed, 396 insertions(+), 159 deletions(-) rename docs/desc-0000-qp-photo-z_approximation/figures/{graham_kld.png => graham_kld.pdf} (100%) rename docs/desc-0000-qp-photo-z_approximation/figures/{schmidt_kld.png => schmidt_kld.pdf} (100%) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_kld.png b/docs/desc-0000-qp-photo-z_approximation/figures/graham_kld.pdf similarity index 100% rename from docs/desc-0000-qp-photo-z_approximation/figures/graham_kld.png rename to docs/desc-0000-qp-photo-z_approximation/figures/graham_kld.pdf diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_kld.png b/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_kld.pdf similarity index 100% rename from docs/desc-0000-qp-photo-z_approximation/figures/schmidt_kld.png rename to docs/desc-0000-qp-photo-z_approximation/figures/schmidt_kld.pdf diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 33df4268..62af9c68 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -13,20 +13,11 @@ }, { "cell_type": "code", - "execution_count": 140, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "#comment out for NERSC\n", "%load_ext autoreload\n", @@ -37,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 141, + "execution_count": null, "metadata": { "collapsed": false }, @@ -45,6 +36,7 @@ "source": [ "from __future__ import print_function\n", " \n", + "import pickle\n", "import hickle\n", "import numpy as np\n", "import random\n", @@ -66,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 142, + "execution_count": null, "metadata": { "collapsed": true }, @@ -99,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 143, + "execution_count": null, "metadata": { "collapsed": true }, @@ -118,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 144, + "execution_count": null, "metadata": { "collapsed": false }, @@ -131,7 +123,7 @@ " n_gals_tot = len(pdfs)\n", " full_gal_range = range(n_gals_tot)\n", " subset = np.random.choice(full_gal_range, n_gals_use, replace=False)#range(n_gals_use)\n", - "# subset = [ 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600]\n", + "# subset = indices\n", " print('randos for debugging: '+str(subset))\n", " pdfs_use = pdfs[subset]\n", " \n", @@ -171,7 +163,7 @@ }, { "cell_type": "code", - "execution_count": 145, + "execution_count": null, "metadata": { "collapsed": false }, @@ -238,9 +230,9 @@ }, { "cell_type": "code", - "execution_count": 146, + "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -255,6 +247,7 @@ " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name+str(N_f)+'_'+str(i))\n", " with open(loc+'.hkl', 'r') as filename:\n", " stat = hickle.load(filename)\n", + "# print(stat)\n", " return stat\n", "\n", "def save_moments_wrapper(dataset_name, n_gals_use, N_f, i, stat_name):\n", @@ -267,8 +260,8 @@ " \n", "def clear_stats(dataset_name, n_gals_use, stat_name):\n", " path = os.path.join(dataset_name, str(n_gals_use))\n", - " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name)\n", - " if os.path.exists(loc):\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name+'.hkl')\n", + " if os.path.isfile(loc):\n", " os.remove(loc)" ] }, @@ -281,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": null, "metadata": { "collapsed": true }, @@ -359,7 +352,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": null, "metadata": { "collapsed": false }, @@ -442,6 +435,7 @@ " new_moment = Eo[key].moment(n, using=key, limits=zlim, \n", " dx=delta_z, vb=False)\n", " pz_moments[key].append(new_moment)\n", + " #NOTE: delta_moment is crazy for clean data!\n", " delta_moment = (new_moment - pz_moments['truth'][n]) / pz_moments['truth'][n]\n", " pz_moment_deltas[key].append(delta_moment)\n", " print('calculated the '+key+' individual moment '+str(n)+' in '+str(timeit.default_timer() - start))\n", @@ -469,18 +463,23 @@ }, { "cell_type": "code", - "execution_count": 149, + "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "def plot_all_examples(name, size, N_floats, init, bonus={}):\n", - " \n", + " path = os.path.join(name, str(size))\n", " fig, ax = plt.subplots()\n", + "# fig_check, ax_check = plt.subplots()\n", " lines = []\n", + " loc = os.path.join(path, 'pzs'+str(size)+name+'_postfit'+str(init))\n", + " with open(loc+'.hkl', 'r') as filename:\n", + " info = hickle.load(filename)\n", + " ref_pdfs = info['pdfs'] \n", + "# klds = {}\n", " for bonus_key in bonus.keys():\n", - " path = os.path.join(name, str(size))\n", " loc = os.path.join(path, 'pzs'+str(size)+name+bonus_key)\n", " with open(loc+'.hkl', 'r') as filename:\n", " info = hickle.load(filename)\n", @@ -490,26 +489,44 @@ " ls = bonus[bonus_key][0]\n", " a = bonus[bonus_key][1]\n", " lab = re.sub(r'[\\_]', '', bonus_key)\n", - " line, = ax.plot([-1., 0.], [0., 0.], linestyle=ls, alpha=a, color='k', label=lab)\n", + " line, = ax.plot([-1., 0.], [0., 0.], linestyle=ls, alpha=a, color='k', label=lab[:-1])\n", " lines.append(line)\n", " leg = ax.legend(loc='upper right', handles=lines)\n", + "# klds[bonus_key] = []\n", " for i in range(n_plot):\n", " data = (z_grid, pdfs[randos[i]])\n", " data = qp.utils.normalize_integral(qp.utils.normalize_gridded(data))\n", " ax.plot(data[0], data[1], linestyle=ls, alpha=a, color=color_cycle[i])\n", - "# ax.legend(loc='upper right')\n", + " # ax.legend(loc='upper right')\n", + "# for i in range(size):\n", + "# data = (z_grid, pdfs[i])\n", + "# kld = qp.utils.quick_kl_divergence(ref_pdfs[i], pdfs[i], dx=0.01)\n", + "# klds[bonus_key].append(kld)\n", + "# plot_bins = np.linspace(-3., 3., 20)\n", + "# for bonus_key in bonus.keys()[1:-1]:\n", + "# ax_check.hist(np.log(np.array(klds[bonus_key])), alpha=a, \n", + "# histtype='stepfilled', edgecolor='k', \n", + "# label=bonus_key, normed=True, bins=plot_bins, lw=2)\n", " ax.set_xlabel(r'$z$', fontsize=14)\n", " ax.set_ylabel(r'$p(z)$', fontsize=14)\n", " ax.set_xlim(min(z_grid), max(z_grid))\n", " ax.set_title(dataset_info[name]['name']+r' examples with $N_{f}=$'+str(N_floats), fontsize=16)\n", - " saveloc = os.path.join(path, 'pzs'+str(size)+name+str(N_floats)+'_'+str(init))\n", + " saveloc = os.path.join(path, 'pzs'+str(size)+name+str(N_floats)+'all'+str(init))\n", " fig.savefig(saveloc+'.pdf', dpi=250)\n", - " plt.close()" + "# ax_check.legend()\n", + "# ax_check.set_ylabel('frequency', fontsize=14)\n", + "# ax_check.set_xlabel(r'$\\mathrm{KLD}$', fontsize=14)\n", + "# ax_check.set_title(name+r' data $p(\\mathrm{KLD})$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + "# fig_check.savefig(saveloc+'kld_check.pdf', dpi=250)\n", + " plt.close()\n", + "# with open(saveloc+'.p', 'w') as kldfile:\n", + "# pickle.dump(klds, kldfile)\n", + " " ] }, { "cell_type": "code", - "execution_count": 150, + "execution_count": null, "metadata": { "collapsed": true }, @@ -527,17 +544,21 @@ " pz_klds = info['pz_klds']\n", " \n", " plt.figure()\n", - " plot_bins = np.linspace(-3., 3., 20)\n", + " plot_bins = np.linspace(-10., 5., 30)\n", " for key in pz_klds.keys():\n", " logdata = qp.utils.safelog(pz_klds[key])\n", + " dist_min.append(min(logdata))\n", + " dist_max.append(max(logdata))\n", + "# plot_bins = np.linspace(-10., 5., 20)\n", " kld_hist = plt.hist(logdata, color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k',\n", " label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", + "# kld_hist = plt.hist(pz_klds[key], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k',\n", + "# label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", " hist_max.append(max(kld_hist[0]))\n", - " dist_min.append(min(logdata))\n", - " dist_max.append(max(logdata))\n", " plt.legend()\n", " plt.ylabel('frequency', fontsize=14)\n", - " plt.xlabel(r'$\\log[\\mathrm{KLD}]$', fontsize=14)\n", + "# plt.xlabel(r'$\\log[\\mathrm{KLD}]$', fontsize=14)\n", + " plt.xlabel(r'$\\mathrm{KLD}$', fontsize=14)\n", "# plt.xlim(min(dist_min), max(dist_max))\n", "# plt.ylim(0., max(hist_max))\n", " plt.title(dataset_info[dataset_key]['name']+r' data $p(\\mathrm{KLD})$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", @@ -554,7 +575,7 @@ }, { "cell_type": "code", - "execution_count": 151, + "execution_count": null, "metadata": { "collapsed": false }, @@ -623,7 +644,7 @@ }, { "cell_type": "code", - "execution_count": 152, + "execution_count": null, "metadata": { "collapsed": false }, @@ -685,16 +706,16 @@ }, { "cell_type": "code", - "execution_count": 153, + "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ - "def save_moments(dataset_key, n_gals_use, N_f, stat, stat_name):\n", + "def save_moments(dataset_name, n_gals_use, N_f, stat, stat_name):\n", "\n", - " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key)\n", + " path = os.path.join(dataset_name, str(n_gals_use))\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name)\n", " \n", " if os.path.exists(loc+'.hkl'):\n", " with open(loc+'.hkl', 'r') as stat_file:\n", @@ -726,7 +747,7 @@ }, { "cell_type": "code", - "execution_count": 154, + "execution_count": null, "metadata": { "collapsed": false }, @@ -780,7 +801,7 @@ " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", " y_minus = mean - std\n", - " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + "# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", " ax_n.plot(np.exp(in_x+n_factor), mean, marker=shapes[n], mfc='none', markersize=marksize, linestyle=styles[f], alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " pz_mean_max[n] = max(pz_mean_max[n], np.max(y_plus))\n", @@ -841,7 +862,7 @@ }, { "cell_type": "code", - "execution_count": 155, + "execution_count": null, "metadata": { "collapsed": true }, @@ -889,18 +910,20 @@ " for s in range(len(formats)):\n", " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", - " data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)#go from n_floats*instantiations to instantiations*n_floats\n", - " data_arr = np.median(data_arr, axis=2) * 100.\n", - " mean = np.mean(data_arr, axis=0).flatten()\n", - " std = np.std(data_arr, axis=0).flatten()\n", + " old_shape = np.shape(np.array(pz_stats[f][n]))\n", + " new_shape = (old_shape[0], np.prod(old_shape[1:]))\n", + " data_arr = np.array(pz_stats[f][n]).reshape(new_shape)#go from n_floats*instantiations to instantiations*n_floats\n", + "# data_arr = np.median(data_arr, axis=2) * 100.\n", + " mean = np.mean(data_arr, axis=-1) * 100.\n", + " std = np.std(data_arr, axis=-1) * 100.\n", " y_plus = mean + std\n", " y_minus = mean - std\n", - " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + "# y_cor = np.array([y_minus, y_plus, y_plus, y_minus])\n", " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", " n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " extremum = np.max(np.abs([n_delta_min[n],n_delta_max[n]]))+1.\n", " ax_n.set_ylim(-1.*extremum, extremum)\n", " ax.set_xscale('log')\n", @@ -963,16 +986,16 @@ }, { "cell_type": "code", - "execution_count": 156, + "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ - "def save_nz_metrics(dataset_key, n_gals_use, N_f, nz_klds, stat_name):\n", + "def save_nz_metrics(dataset_name, n_gals_use, N_f, nz_klds, stat_name):\n", " \n", - " path = os.path.join(dataset_key, str(n_gals_use))\n", - " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_key)\n", + " path = os.path.join(dataset_name, str(n_gals_use))\n", + " loc = os.path.join(path, stat_name+str(n_gals_use)+dataset_name)\n", " if os.path.exists(loc+'.hkl'):\n", " with open(loc+'.hkl', 'r') as nz_file:\n", " #read in content of list/dict\n", @@ -999,7 +1022,7 @@ }, { "cell_type": "code", - "execution_count": 157, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1011,11 +1034,11 @@ " loc = os.path.join(path, 'nz_klds'+str(n_gals_use)+dataset_key)\n", " with open(loc+'.hkl', 'r') as nz_file:\n", " nz_stats = hickle.load(nz_file)\n", - " if len(instantiations) == 10:\n", - " for f in formats:\n", - " if not np.shape(nz_stats[f]) == (4, 10):\n", - " for s in range(len(floats)):\n", - " nz_stats[f][s] = np.array(np.array(nz_stats[f][s])[:10]).flatten()\n", + "# if len(instantiations) == 10:\n", + "# for f in formats:\n", + "# if not np.shape(nz_stats[f]) == (4, 10):\n", + "# for s in range(len(floats)):\n", + "# nz_stats[f][s] = np.array(np.array(nz_stats[f][s])[:10]).flatten()\n", "\n", " flat_floats = np.array(nz_stats['N_f']).flatten()\n", " \n", @@ -1073,7 +1096,7 @@ }, { "cell_type": "code", - "execution_count": 158, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1125,7 +1148,7 @@ " std = np.std(data_arr, axis=0).flatten()\n", " y_plus = mean + std\n", " y_minus = mean - std\n", - " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + "# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", @@ -1197,7 +1220,7 @@ }, { "cell_type": "code", - "execution_count": 159, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1241,7 +1264,7 @@ }, { "cell_type": "code", - "execution_count": 160, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1254,6 +1277,7 @@ "high_res = 300\n", "\n", "color_cycle = np.array([(230, 159, 0), (86, 180, 233), (0, 158, 115), (240, 228, 66), (0, 114, 178), (213, 94, 0), (204, 121, 167)])/256.\n", + "color_cycle_names = ['Orange', 'Sky blue', 'Bluish green', 'Yellow', 'Blue', 'Vermilion', 'Reddish purple']\n", "n_plot = len(color_cycle)\n", "\n", "n_moments_use = 4\n", @@ -1263,7 +1287,7 @@ }, { "cell_type": "code", - "execution_count": 161, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1271,10 +1295,10 @@ "source": [ "#change all for NERSC\n", "\n", - "floats = [3]#, 10, 30, 100]\n", - "sizes = [10]#[10, 100, 1000]\n", - "names = ['ss']#dataset_info.keys()\n", - "instantiations = range(10, 11)#0)\n", + "floats = [3, 10, 30, 100]\n", + "sizes = [100]#[10, 100, 1000]\n", + "names = dataset_info.keys()\n", + "instantiations = range(0, 10)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1290,83 +1314,82 @@ }, { "cell_type": "code", - "execution_count": 162, + "execution_count": null, "metadata": { - "collapsed": false, - "scrolled": false + "collapsed": true }, "outputs": [], "source": [ - "# # the \"pipeline\"\n", - "# global_start = timeit.default_timer()\n", - "# for n in range(len(names)):\n", - "# name = names[n]\n", + "# the \"pipeline\"\n", + "global_start = timeit.default_timer()\n", + "for n in range(len(names)):\n", + " name = names[n]\n", " \n", - "# dataset_start = timeit.default_timer()\n", - "# print('started '+name)\n", + " dataset_start = timeit.default_timer()\n", + " print('started '+name)\n", " \n", - "# pdfs = setup_dataset(name, skip_rows, skip_cols)\n", + " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", - "# for s in range(len(sizes)):\n", - "# size=sizes[s]\n", + " for s in range(len(sizes)):\n", + " size=sizes[s]\n", " \n", - "# size_start = timeit.default_timer()\n", - "# print('started '+name+str(size))\n", + " size_start = timeit.default_timer()\n", + " print('started '+name+str(size))\n", " \n", - "# path = os.path.join(name, str(size))\n", - "# if not os.path.exists(path):\n", - "# os.makedirs(path)\n", + " path = os.path.join(name, str(size))\n", + " if not os.path.exists(path):\n", + " os.makedirs(path)\n", " \n", - "# n_gals_use = size\n", + " n_gals_use = size\n", " \n", - "# randos = all_randos[n][s]\n", + " randos = all_randos[n][s]\n", " \n", - "# for i in instantiations:\n", - "# # top_bonusdict = {}\n", - "# i_start = timeit.default_timer()\n", - "# print('started '+name+str(size)+' #'+str(i))\n", + " for i in instantiations:\n", + " top_bonusdict = {}\n", + " i_start = timeit.default_timer()\n", + " print('started '+name+str(size)+' #'+str(i))\n", " \n", - "# original = '_original'+str(i)\n", - "# pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# # plot = plot_examples(size, name, bonus=original)\n", - "# # top_bonusdict[original] = ['-', 0.25]\n", + " original = '_original'+str(i)\n", + " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", + "# plot = plot_examples(size, name, bonus=original)\n", + " top_bonusdict[original] = ['-', 0.25]\n", " \n", - "# z_grid = dataset_info[name]['in_z_grid']\n", - "# N_comps = dataset_info[name]['N_GMM']\n", + " z_grid = dataset_info[name]['in_z_grid']\n", + " N_comps = dataset_info[name]['N_GMM']\n", " \n", - "# postfit = '_postfit'+str(i)\n", - "# catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# # plot = plot_examples(size, name, bonus=postfit)\n", - "# # top_bonusdict[postfit] = ['-', 0.5]\n", + " postfit = '_postfit'+str(i)\n", + " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", + "# plot = plot_examples(size, name, bonus=postfit)\n", + " top_bonusdict[postfit] = ['-', 0.5]\n", " \n", - "# for n_floats_use in floats:\n", - "# # bonusdict = top_bonusdict.copy()\n", - "# float_start = timeit.default_timer()\n", - "# print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", + " for n_floats_use in floats:\n", + "# bonusdict = top_bonusdict.copy()\n", + " float_start = timeit.default_timer()\n", + " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - "# ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + " ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", - "# # for f in formats:\n", - "# # fname = str(n_floats_use)+f+str(i)\n", - "# # plot = plot_examples(size, name, bonus=fname)\n", - "# # bonusdict[fname] = [styles[f], 0.5]\n", - "# # plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - "# # plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + " for f in formats:\n", + " fname = str(n_floats_use)+f+str(i)\n", + "# plot = plot_examples(size, name, bonus=fname)\n", + " bonusdict[fname] = [styles[f], 0.5]\n", + "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", " \n", - "# stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", - "# # plot = plot_estimators(size, name, n_floats_use, i=i)\n", + " stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", " \n", - "# print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - "# print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", - "# # plot = plot_pz_metrics(name, size)\n", - "# # plot = plot_pz_delta_moments(name, size) \n", - "# # plot = plot_nz_klds(name, size)\n", - "# # plot = plot_nz_moments(name, size)\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + "# plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_delta_moments(name, size) \n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)\n", " \n", - "# print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", + " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - "# print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", - "# print('FINISHED everything in '+str(timeit.default_timer() - global_start))" + " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1378,7 +1401,7 @@ }, { "cell_type": "code", - "execution_count": 163, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1387,21 +1410,21 @@ "floats = [3, 10, 30, 100]\n", "sizes = [100]#[10, 100, 1000]\n", "names = dataset_info.keys()\n", - "instantiations = range(0, 1)\n", + "instantiations = range(0, 10)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] }, { "cell_type": "code", - "execution_count": 164, + "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#make this a more clever structure, i.e. a dict\n", - "colors = {'quantiles': 'blueviolet', 'histogram': 'darkorange', 'samples': 'forestgreen'}\n", + "colors = {'quantiles': 'darkviolet', 'histogram': 'darkorange', 'samples': 'g'}\n", "styles = {'quantiles': '--', 'histogram': ':', 'samples': '-.'}\n", "stepstyles = {'quantiles': 'dashed', 'histogram': 'dotted', 'samples': 'dashdot'}\n", "\n", @@ -1435,18 +1458,17 @@ }, { "cell_type": "code", - "execution_count": 165, + "execution_count": null, "metadata": { - "collapsed": false, - "scrolled": true + "collapsed": false }, "outputs": [], "source": [ "# comment out for NERSC\n", "# set norm to True and run twice to match axis limits\n", "\n", - "for name in names:\n", - " for size in sizes:\n", + "# for name in names:\n", + "# for size in sizes:\n", "# for stat_name in moments_to_save + metrics_to_save:\n", "# clear_stats(name, size, stat_name)\n", "# for i in instantiations:\n", @@ -1471,10 +1493,10 @@ "# save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", "# for stat_name in metrics_to_save:\n", "# save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", - " plot = plot_pz_metrics(name, size)\n", - " plot = plot_pz_delta_moments(name, size)\n", - " plot = plot_nz_klds(name, size)\n", - " plot = plot_nz_moments(name, size)" + "# plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_delta_moments(name, size)\n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)" ] }, { @@ -1488,31 +1510,246 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true + }, + "outputs": [], + "source": [ + "# for name in names:\n", + "# for size in sizes:\n", + "# for i in instantiations:\n", + "# path = os.path.join(name, str(size))\n", + "# for Nf in floats:\n", + "# place = os.path.join(path, 'pzs'+str(size)+name+str(Nf)+'all'+str(i))\n", + "# with open(place+'.p', 'r') as filename:\n", + "# klds = pickle.load(filename)\n", + "# print(name, size, i, Nf, klds)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", - "execution_count": 166, + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# indices = '92250 3847 83378 12742 43667 10569 31701 26828 29136 11683'\n", + "# indices += ' 43998 96531 34802 14008 5083 94955 106754 86870 23547 93601'\n", + "# indices += ' 5869 5157 100074 316 96728 75727 2662 41331 41474 93074'\n", + "# indices += ' 784 105537 39558 108553 46954 41754 47130 54528 34920 58321'\n", + "# indices += ' 70453 108822 98370 74756 25879 80431 61434 65169 46466 6126'\n", + "# indices += ' 6466 101890 108524 96272 25660 81478 92854 24288 88348 7223'\n", + "# indices += ' 58928 49020 2141 25304 75384 34641 65491 45164 44332 107756'\n", + "# indices += ' 91896 75871 87481 24340 7056 80483 49792 20459 70865 109372'\n", + "# indices += ' 34026 53985 60089 4565 38033 5947 51576 3856 24570 3438'\n", + "# indices += ' 22431 60534 81397 16680 88137 14027 86049 21710 96081 13413'\n", + "# indices = '9604 43445 88556 50193 1408 76204 104276 48054 104136 58073'\n", + "# indices += ' 10084 32784 101990 59630 78907 27352 13652 56942 27011 101717'\n", + "# indices += ' 105840 73315 41895 21820 105664 18054 94791 29329 99846 56379'\n", + "# indices += ' 13504 45749 32028 45607 56649 2589 24215 9117 97779 27706'\n", + "# indices += ' 75812 14868 59759 41794 87621 99253 83269 23886 83001 67509'\n", + "# indices += ' 37047 28435 72226 64501 57296 26271 13468 50067 26576 5017'\n", + "# indices += ' 827 22780 65501 78088 75632 28483 108573 6032 60818 26916'\n", + "# indices += ' 99955 8065 89647 4756 91047 73095 12845 10803 52331 62513'\n", + "# indices += ' 6845 26550 94541 3467 37175 101384 96101 109303 110300 53161'\n", + "# indices += ' 41110 31736 70330 11116 58618 52321 68545 87421 61994 48439'\n", + "# # indices = [ 14619, 66891, 67914, 20931, 97633, 7202, 46756, 109704, 93110, 59915]\n", + "# # 35851, 65657, 3292, 3838, 10862, 50447, 5316, 49503, 39363, 110951\n", + "# # 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600\n", + "# # 94746 59924 73186 21069 2579 34780 4623 93464 44621 29828\n", + "# # 111140 74609 34411 42554 32981 34904 10264 1667 42037 23986\n", + "# # 51790 98555 94971 58683 99752 87479 67286 89575 36950 84283\n", + "# # 89866 64959 53221 102714 48642 37379 95257 11874 70743 15107\n", + "# # 93651 48304 93829 64956 94703 107021 88900 7849 88808 71397\n", + "# # 26862 74765 89470 2741 56888 94275 40017 85989 94077 66553\n", + "# # 74666 90417 12553 21928 14720 53798 30290 109516 37033 95242]\n", + "# # indices = [ 59935, 44820, 26407, 84617, 98728, 35216, 73968, 105130, 844, 63892]\n", + "# indices = map(int, indices.split())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# thing = load_one_stat('ss', 100, 3, 0, 'pz_moment_deltas')\n", + "# print(np.mean(np.shape(thing['quantiles']), axis=0))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# save_moments('ss', 100, 3, thing, 'pz_moment_deltas')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# path = os.path.join('ss', str(100))\n", + "# loc = os.path.join(path, 'pz_moment_deltas'+str(100)+'ss')\n", + "# with open(loc+'.hkl', 'r') as pz_file:\n", + "# pz_stats = hickle.load(pz_file)\n", + " \n", + "# print(np.shape(pz_stats['quantiles'][0]))#N_f * n_m * n_i * n_g" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# modified = np.array(pz_stats['quantiles']).reshape(4, 4, 1000)*100.\n", + "# print(np.shape(modified))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# print(np.shape(np.array(pz_stats[f][0]).reshape(4, 1000)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# more_modified = modified * 100.\n", + "# mean = np.mean(more_modified, axis=-1)\n", + "# print(mean)\n", + "# std = np.std(more_modified, axis=-1)\n", + "# print(std)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# # print(np.shape(modified))\n", + "# # plt.hist(modified[0][3])\n", + "# weird_x = np.log(np.array(floats))\n", + "\n", + "# moment_num = 3\n", + "# for s in range(3):\n", + "# f = formats[s]\n", + "# const = 0.1\n", + "# f_factor = const * (s - 1)\n", + "# new_data = np.array(pz_stats[f][moment_num]).reshape(4, 1000)*100.\n", + "# plt.plot(np.exp(weird_x+f_factor), np.median(new_data, axis=-1), linestyle=styles[f], marker=moment_shapes[moment_num], mfc='none', markersize=5, alpha=0.5, color=colors[f])\n", + "# violin = plt.violinplot(list(new_data), np.exp(weird_x+f_factor), showextrema=False, showmeans=False, showmedians=False, widths=np.exp(weird_x+const/2.)-np.exp(weird_x))\n", + "# # for partname in ['cmedians']:\n", + "# # vp = violin[partname]\n", + "# # vp.set_edgecolor(colors[f])\n", + "# # vp.set_linewidth(3)\n", + "# # Make the violin body blue with a red border:\n", + "# for vp in violin['bodies']:\n", + "# vp.set_facecolor(colors[f])\n", + "# # vp.set_edgecolor('k')\n", + "# # vp.set_linewidth(0)\n", + "# vp.set_alpha(0.5)\n", + "# plt.semilogx()\n", + "# plt.ylim(-50., 50.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# print(np.shape(new_data))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# plt.boxplot(list(new_data), floats, '')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# print(np.shape(pz_stats['quantiles'][0][0]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# print(violin.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "# indices = [ 14619, 66891, 67914, 20931, 97633, 7202, 46756, 109704, 93110, 59915]\n", - "# 35851, 65657, 3292, 3838, 10862, 50447, 5316, 49503, 39363, 110951\n", - "# 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600\n", - "# 94746 59924 73186 21069 2579 34780 4623 93464 44621 29828\n", - "# 111140 74609 34411 42554 32981 34904 10264 1667 42037 23986\n", - "# 51790 98555 94971 58683 99752 87479 67286 89575 36950 84283\n", - "# 89866 64959 53221 102714 48642 37379 95257 11874 70743 15107\n", - "# 93651 48304 93829 64956 94703 107021 88900 7849 88808 71397\n", - "# 26862 74765 89470 2741 56888 94275 40017 85989 94077 66553\n", - "# 74666 90417 12553 21928 14720 53798 30290 109516 37033 95242]\n", - "# indices = [ 59935, 44820, 26407, 84617, 98728, 35216, 73968, 105130, 844, 63892]" + "# help(plt.boxplot)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/qp/ensemble.py b/qp/ensemble.py index 7129d724..998b1c3a 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -430,16 +430,17 @@ def Q_func(pdf): D = int((limits[-1] - limits[0]) / dx) grid = np.linspace(limits[0], limits[1], D) - dx = (limits[-1] - limits[0]) / (D - 1) + # dx = (limits[-1] - limits[0]) / (D - 1) if self.gridded[0] == using and np.array_equal(self.gridded[-1][0], grid): if vb: print('taking a shortcut') def kld_helper(i): - return u.quick_kl_divergence(self.gridded[-1][-1][i], grid, dx=dx) + P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] + return u.quick_kl_divergence(P_eval, self.gridded[-1][-1][i], dx=dx) else: def kld_helper(i): - P_eval = P_func(self.pdfs[i]).evaluate(grid, vb=vb, norm=True)[-1] - Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb, norm=True)[-1] + P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] + Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb, using=using, norm=True)[-1] return u.quick_kl_divergence(P_eval, Q_eval, dx=dx) klds = self.pool.map(kld_helper, self.pdf_range) diff --git a/qp/utils.py b/qp/utils.py index abb24774..c9af2bf2 100644 --- a/qp/utils.py +++ b/qp/utils.py @@ -379,14 +379,13 @@ def quick_kl_divergence(p_eval, q_eval, dx=0.01): Notes ----- - TO DO: change this to calculate_kld - TO DO: have this take number of points not dx! + TO DO: change this to quick_kld """ - logquotient = safelog(p_eval / q_eval) + logquotient = safelog(p_eval) - safelog(q_eval) # logp = safelog(pn) # logq = safelog(qn) # Calculate the KLD from q to p - Dpq = dx * np.dot(p_eval, logquotient) + Dpq = dx * np.sum(p_eval * logquotient) return Dpq def calculate_rmse(p, q, limits=lims, dx=0.01, vb=False): From 424bcd354685d9281d88aef56085d503941bd04e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 26 Sep 2017 14:05:08 -0400 Subject: [PATCH 79/96] adding back kld to pdf attributes --- qp/ensemble.py | 12 ++++++++---- qp/pdf.py | 30 +++++++++++++++++++----------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 998b1c3a..f1876a05 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -434,14 +434,18 @@ def Q_func(pdf): if self.gridded[0] == using and np.array_equal(self.gridded[-1][0], grid): if vb: print('taking a shortcut') - def kld_helper(i): - P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] - return u.quick_kl_divergence(P_eval, self.gridded[-1][-1][i], dx=dx) + def kld_helper(i): + P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] + KL = u.quick_kl_divergence(P_eval, self.gridded[-1][-1][i], dx=dx) + self.pdfs[i].klds[using] = KL + return KL else: def kld_helper(i): P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb, using=using, norm=True)[-1] - return u.quick_kl_divergence(P_eval, Q_eval, dx=dx) + KL = u.quick_kl_divergence(P_eval, Q_eval, dx=dx) + self.pdfs[i].klds[using] = KL + return KL klds = self.pool.map(kld_helper, self.pdf_range) diff --git a/qp/pdf.py b/qp/pdf.py index dd5ed089..5a69c7e7 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -100,6 +100,7 @@ def __init__(self, truth=None, quantiles=None, histogram=None, # first one: self.last = self.first self.interpolator = [None, None] + self.klds = {} return @@ -931,12 +932,14 @@ def plot(self, limits=None, loc='plot.pdf', vb=True): return - def kld(self, limits=None, dx=0.01): + def kld(self, using=None, limits=None, dx=0.01): """ Calculates Kullback-Leibler divergence of quantile approximation from truth. Parameters ---------- + using: string + parametrization to use limits: tuple of floats, optional endpoints of integration interval in which to calculate KLD dx: float @@ -953,16 +956,21 @@ def kld(self, limits=None, dx=0.01): Example:: d = p.kld(limits=(-1., 1.), dx=1./100)) """ - print('This function is deprecated; use `qp.utils.calculate_kl_divergence`.') - return - # if self.truth is None: - # print('Truth not available for comparison.') - # return - # else: - # if limits is None: - # limits = self.limits - # KL = qp.utils.calculate_kl_divergence(self, self, limits=limits, dx=dx) - # return(KL) + # print('This function is deprecated; use `qp.utils.calculate_kl_divergence`.') + # return + if self.truth is None: + print('Truth not available for comparison.') + return + else: + if using is None: + using = self.last + if limits is None: + limits = self.limits + D = int((limits[-1] - limits[0]) / dx) + grid = np.linspace(limits[0], limits[1], D) + KL = qp.utils.quick_kl_divergence(self.evaluate(grid, using='truth'), self.evaluate(grid, using=using), dx=dx) + self.klds[using] = KL + return(KL) def rms(self, limits=(0., 1.), dx=0.01): """ From 6f41ee18f7829af2d6f6d006cac133ebea6eb3c3 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 26 Sep 2017 14:09:09 -0400 Subject: [PATCH 80/96] adding back kld to pdf attributes --- qp/ensemble.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index f1876a05..12defb7a 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -112,7 +112,7 @@ def __init__(self, N, truth=None, quantiles=None, histogram=None, gridded=None, self.make_pdfs() self.stacked = {} - + self.klds = {} def make_pdfs(self): """ @@ -432,12 +432,14 @@ def Q_func(pdf): grid = np.linspace(limits[0], limits[1], D) # dx = (limits[-1] - limits[0]) / (D - 1) + self.klds[using] = np.empty(self.n_pdfs) if self.gridded[0] == using and np.array_equal(self.gridded[-1][0], grid): if vb: print('taking a shortcut') def kld_helper(i): P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] KL = u.quick_kl_divergence(P_eval, self.gridded[-1][-1][i], dx=dx) self.pdfs[i].klds[using] = KL + self.klds[using][i] = KL return KL else: def kld_helper(i): @@ -445,13 +447,13 @@ def kld_helper(i): Q_eval = Q_func(self.pdfs[i]).evaluate(grid, vb=vb, using=using, norm=True)[-1] KL = u.quick_kl_divergence(P_eval, Q_eval, dx=dx) self.pdfs[i].klds[using] = KL + self.klds[using][i] = KL return KL klds = self.pool.map(kld_helper, self.pdf_range) - klds = np.array(klds) - return klds + return self.klds def rmse(self, using=None, limits=None, dx=0.01, vb=False): """ From 3c9e37829613b2a28a415196a1da83e13dbf96e6 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 26 Sep 2017 14:15:25 -0400 Subject: [PATCH 81/96] adding back kld to pdf attributes --- qp/ensemble.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 12defb7a..799fdb6e 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -435,12 +435,12 @@ def Q_func(pdf): self.klds[using] = np.empty(self.n_pdfs) if self.gridded[0] == using and np.array_equal(self.gridded[-1][0], grid): if vb: print('taking a shortcut') - def kld_helper(i): - P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] - KL = u.quick_kl_divergence(P_eval, self.gridded[-1][-1][i], dx=dx) - self.pdfs[i].klds[using] = KL - self.klds[using][i] = KL - return KL + def kld_helper(i): + P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] + KL = u.quick_kl_divergence(P_eval, self.gridded[-1][-1][i], dx=dx) + self.pdfs[i].klds[using] = KL + self.klds[using][i] = KL + return KL else: def kld_helper(i): P_eval = P_func(self.pdfs[i]).evaluate(grid, using='truth', vb=vb, norm=True)[-1] From 532859f89875aaef2c10a8466ed4d9692e7ee35f Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 26 Sep 2017 18:13:06 -0400 Subject: [PATCH 82/96] new plot for the paper! --- .../research/analysis.ipynb | 376 ++++++++++++------ 1 file changed, 255 insertions(+), 121 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 62af9c68..902b4e3b 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -13,11 +13,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ "#comment out for NERSC\n", "%load_ext autoreload\n", @@ -28,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -58,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": true }, @@ -91,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": true }, @@ -110,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -163,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -230,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -274,7 +283,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": true }, @@ -352,7 +361,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -463,7 +472,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -526,7 +535,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": true }, @@ -555,6 +564,7 @@ "# kld_hist = plt.hist(pz_klds[key], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k',\n", "# label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", " hist_max.append(max(kld_hist[0]))\n", + " print(loc+': min KLD='+str(np.argmin(logdata)))\n", " plt.legend()\n", " plt.ylabel('frequency', fontsize=14)\n", "# plt.xlabel(r'$\\log[\\mathrm{KLD}]$', fontsize=14)\n", @@ -566,6 +576,43 @@ " plt.close()" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_all_kld(size, name, i):\n", + " path = os.path.join(name, str(size))\n", + " fig, ax = plt.subplots()\n", + " fig.canvas.draw()\n", + " for i in instantiations:\n", + " to_plot = {}\n", + " for f in formats:\n", + " to_plot[f] = []\n", + " for Nf in floats:\n", + " place = os.path.join(path, 'kld_hist'+str(size)+name+str(Nf)+'_'+str(i))\n", + " with open(place+'.hkl', 'r') as filename:\n", + " klds = hickle.load(filename)['pz_klds']\n", + " for f in formats:\n", + " to_plot[f].append(klds[f])\n", + "# print(name, size, i, Nf, f, klds[f])\n", + " for f in formats:\n", + " to_plot[f] = np.array(to_plot[f])\n", + " delta_info = np.ones((len(floats), size))\n", + " for Nf in floats:\n", + " delta_info[:-1] = to_plot[f][1:] - to_plot[f][:-1]\n", + " delta_info[-1] = -1. * to_plot[f][-1]\n", + " ax.plot(floats, delta_info, color=colors[f])\n", + " ax.set_xlabel()\n", + " ax.set_ylabel()\n", + " ax.semilogx()\n", + " ax.set_xticks(floats)\n", + " ax.set_xticklabels([r'$3\\to 10$', r'$10\\to 30$', r'$30\\to 100$', r'$100\\to \\infty$'])" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -575,7 +622,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -644,7 +691,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -706,7 +753,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -747,7 +794,95 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 140, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# include second axis with mean KLD values?\n", + "# somehow combining pz_kld_moments with this?\n", + "def plot_kld_stats(name, size):\n", + " a = 1./len(formats)\n", + " topdir = os.path.join(name, str(size))\n", + " \n", + " fig_one, ax_one = plt.subplots(figsize=(5, 5))\n", + " fig_one.canvas.draw()\n", + " mean_deltas, std_deltas = {}, {}\n", + " for f in formats:\n", + " mean_deltas[f], std_deltas[f] = [], []\n", + " ax_one.plot([1000., 1000.], [1., 10.], color=colors[f], alpha=a, label=f, linestyle=styles[f])\n", + " for i in instantiations:\n", + " to_plot = {}\n", + " for f in formats:\n", + " to_plot[f] = []\n", + " mean_deltas[f].append([])\n", + " std_deltas[f].append([])\n", + " for Nf in floats:\n", + " loc = os.path.join(topdir, 'kld_hist'+str(size)+name+str(Nf)+'_'+str(i))\n", + " with open(loc+'.hkl', 'r') as filename:\n", + " klds = hickle.load(filename)['pz_klds']\n", + " for f in formats:\n", + " to_plot[f].append(klds[f])\n", + " for f in formats:\n", + " to_plot[f] = np.array(to_plot[f])\n", + " delta_info = np.ones((len(floats), size))\n", + " delta_info[:-1] = to_plot[f][:-1] - to_plot[f][1:]\n", + " delta_info[-1] = to_plot[f][-1]\n", + " delta_info[delta_info < qp.utils.epsilon] = qp.utils.epsilon\n", + "# log_delta_info = np.log(delta_info)\n", + "# ax_one.plot(floats, log_delta_info)\n", + " mean_deltas[f][i] = np.mean(delta_info, axis=1)\n", + " std_deltas[f][i] = np.std(delta_info, axis=1)\n", + " indie_delta_kld_min.append(np.min(mean_deltas[f][i] - std_deltas[f][i]))\n", + " indie_delta_kld_max.append(np.max(mean_deltas[f][i] + std_deltas[f][i]))\n", + " ax_one.plot(floats, mean_deltas[f][i], color=colors[f], alpha=a, linestyle=styles[f])\n", + " ax_one.set_ylabel(r'$\\Delta\\mathrm{KLD}$')\n", + " ax_one.semilogy()\n", + " ax_one.set_ylim(np.min(indie_delta_kld_min), np.max(indie_delta_kld_max))\n", + " ax_one.set_xlim(min(floats), max(floats))\n", + " ax_one.set_xlabel('change in number of parameters')\n", + " ax_one.semilogx()\n", + " ax_one.set_xticks(floats)\n", + " ax_one.set_xticklabels([r'$3\\to 10$', r'$10\\to 30$', r'$30\\to 100$', r'$100\\to \\infty$'])\n", + " ax_one.legend(loc='upper right')\n", + " ax_one.set_title(dataset_info[name]['name']+r' data per-PDF $\\Delta\\mathrm{KLD}$', fontsize=16)\n", + " place = os.path.join(topdir, 'indie_klds'+str(size)+name)\n", + " fig_one.savefig(place+'_each.pdf', dpi=250)\n", + " plt.close\n", + " \n", + " fig, ax = plt.subplots(figsize=(5, 5))\n", + " for f in formats:\n", + " mean_deltas[f] = np.array(mean_deltas[f])\n", + "# std_deltas[f] = np.array(std_deltas[f])\n", + " global_delta_mean = np.mean(mean_deltas[f], axis=0)\n", + " global_delta_std = np.std(mean_deltas[f], axis=0)\n", + " x_cor = np.array([floats[:-1], floats[:-1], floats[1:], floats[1:]])\n", + " y_plus = global_delta_mean + global_delta_std\n", + " y_minus = global_delta_mean - global_delta_std\n", + " indie_delta_kld_min.append(np.min(y_minus))\n", + " indie_delta_kld_max.append(np.max(y_plus))\n", + " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + " ax.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.)\n", + " ax.plot(floats, global_delta_mean, color=colors[f], linestyle=styles[f], label=f)\n", + " ax.set_ylabel(r'$\\Delta\\mathrm{KLD}$')\n", + " ax.semilogy()\n", + " ax.set_ylim(np.min(indie_delta_kld_min), np.max(indie_delta_kld_max))\n", + " ax.set_xlim(min(floats), max(floats))\n", + " ax.set_xlabel('change in number of parameters')\n", + " ax.semilogx()\n", + " ax.set_xticks(floats)\n", + " ax.set_xticklabels([r'$3\\to 10$', r'$10\\to 30$', r'$30\\to 100$', r'$100\\to \\infty$'])\n", + " ax.legend(loc='upper right')\n", + " ax.set_title(dataset_info[name]['name']+r' data per-PDF $\\Delta\\mathrm{KLD}$', fontsize=16)\n", + " place = os.path.join(topdir, 'indie_klds'+str(size)+name)\n", + " fig.savefig(place+'_clean.pdf', dpi=250)\n", + " plt.close" + ] + }, + { + "cell_type": "code", + "execution_count": 19, "metadata": { "collapsed": false }, @@ -862,7 +997,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": true }, @@ -932,7 +1067,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", - " ax.legend(loc='lower right')\n", + " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -971,7 +1106,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[name]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='lower right')\n", + " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" @@ -986,7 +1121,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -1022,7 +1157,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -1096,7 +1231,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -1220,7 +1355,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1264,7 +1399,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1287,7 +1422,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "collapsed": true }, @@ -1296,9 +1431,9 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [100]#[10, 100, 1000]\n", - "names = dataset_info.keys()\n", - "instantiations = range(0, 10)\n", + "sizes = [10]#[10, 100, 1000]\n", + "names = ['ss']#dataset_info.keys()\n", + "instantiations = range(0, 1)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" ] @@ -1314,82 +1449,82 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "# the \"pipeline\"\n", - "global_start = timeit.default_timer()\n", - "for n in range(len(names)):\n", - " name = names[n]\n", + "# # the \"pipeline\"\n", + "# global_start = timeit.default_timer()\n", + "# for n in range(len(names)):\n", + "# name = names[n]\n", " \n", - " dataset_start = timeit.default_timer()\n", - " print('started '+name)\n", + "# dataset_start = timeit.default_timer()\n", + "# print('started '+name)\n", " \n", - " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", + "# pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", - " for s in range(len(sizes)):\n", - " size=sizes[s]\n", + "# for s in range(len(sizes)):\n", + "# size=sizes[s]\n", " \n", - " size_start = timeit.default_timer()\n", - " print('started '+name+str(size))\n", + "# size_start = timeit.default_timer()\n", + "# print('started '+name+str(size))\n", " \n", - " path = os.path.join(name, str(size))\n", - " if not os.path.exists(path):\n", - " os.makedirs(path)\n", + "# path = os.path.join(name, str(size))\n", + "# if not os.path.exists(path):\n", + "# os.makedirs(path)\n", " \n", - " n_gals_use = size\n", + "# n_gals_use = size\n", " \n", - " randos = all_randos[n][s]\n", + "# randos = all_randos[n][s]\n", " \n", - " for i in instantiations:\n", - " top_bonusdict = {}\n", - " i_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i))\n", + "# for i in instantiations:\n", + "# top_bonusdict = {}\n", + "# i_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i))\n", " \n", - " original = '_original'+str(i)\n", - " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# plot = plot_examples(size, name, bonus=original)\n", - " top_bonusdict[original] = ['-', 0.25]\n", + "# original = '_original'+str(i)\n", + "# pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", + "# # plot = plot_examples(size, name, bonus=original)\n", + "# top_bonusdict[original] = ['-', 0.25]\n", " \n", - " z_grid = dataset_info[name]['in_z_grid']\n", - " N_comps = dataset_info[name]['N_GMM']\n", + "# z_grid = dataset_info[name]['in_z_grid']\n", + "# N_comps = dataset_info[name]['N_GMM']\n", " \n", - " postfit = '_postfit'+str(i)\n", - " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# plot = plot_examples(size, name, bonus=postfit)\n", - " top_bonusdict[postfit] = ['-', 0.5]\n", + "# postfit = '_postfit'+str(i)\n", + "# catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", + "# # plot = plot_examples(size, name, bonus=postfit)\n", + "# top_bonusdict[postfit] = ['-', 0.5]\n", " \n", - " for n_floats_use in floats:\n", - "# bonusdict = top_bonusdict.copy()\n", - " float_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", + "# for n_floats_use in floats:\n", + "# # bonusdict = top_bonusdict.copy()\n", + "# float_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - " ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + "# ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", - " for f in formats:\n", - " fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - " bonusdict[fname] = [styles[f], 0.5]\n", - "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + "# for f in formats:\n", + "# fname = str(n_floats_use)+f+str(i)\n", + "# # plot = plot_examples(size, name, bonus=fname)\n", + "# bonusdict[fname] = [styles[f], 0.5]\n", + "# # plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# # plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", " \n", - " stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", + "# stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", + "# # plot = plot_estimators(size, name, n_floats_use, i=i)\n", " \n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", - "# plot = plot_pz_metrics(name, size)\n", - "# plot = plot_pz_delta_moments(name, size) \n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + "# # plot = plot_pz_metrics(name, size)\n", + "# # plot = plot_pz_delta_moments(name, size) \n", + "# # plot = plot_nz_klds(name, size)\n", + "# # plot = plot_nz_moments(name, size)\n", " \n", - " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", + "# print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", - "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" + "# print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "# print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1401,23 +1536,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "floats = [3, 10, 30, 100]\n", - "sizes = [100]#[10, 100, 1000]\n", - "names = dataset_info.keys()\n", - "instantiations = range(0, 10)\n", + "sizes = [10]#[10, 100, 1000]\n", + "names = ['ss']#dataset_info.keys()\n", + "instantiations = range(0, 1)\n", "\n", - "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" + "all_randos = [[np.random.choice(size, n_plot, replace=False) \n", + " for size in sizes] for name in names]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 137, "metadata": { "collapsed": false }, @@ -1445,6 +1581,8 @@ "pz_mean_min = 10.*np.ones(n_moments_use)\n", "kld_min = [1.]\n", "kld_max = [1.]\n", + "indie_delta_kld_min = [1.]\n", + "indie_delta_kld_max = [-1.]\n", "nz_mean_max = -10.*np.ones(n_moments_use)\n", "nz_mean_min = 10.*np.ones(n_moments_use)\n", "n_delta_max = -10.*np.ones(n_moments_use)\n", @@ -1458,17 +1596,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 141, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\nAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# comment out for NERSC\n", "# set norm to True and run twice to match axis limits\n", "\n", - "# for name in names:\n", - "# for size in sizes:\n", + "for name in names:\n", + " for size in sizes:\n", "# for stat_name in moments_to_save + metrics_to_save:\n", "# clear_stats(name, size, stat_name)\n", "# for i in instantiations:\n", @@ -1493,6 +1652,7 @@ "# save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", "# for stat_name in metrics_to_save:\n", "# save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", + " plot = plot_kld_stats(name, size)\n", "# plot = plot_pz_metrics(name, size)\n", "# plot = plot_pz_delta_moments(name, size)\n", "# plot = plot_nz_klds(name, size)\n", @@ -1508,40 +1668,13 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# for name in names:\n", - "# for size in sizes:\n", - "# for i in instantiations:\n", - "# path = os.path.join(name, str(size))\n", - "# for Nf in floats:\n", - "# place = os.path.join(path, 'pzs'+str(size)+name+str(Nf)+'all'+str(i))\n", - "# with open(place+'.p', 'r') as filename:\n", - "# klds = pickle.load(filename)\n", - "# print(name, size, i, Nf, klds)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [], "source": [ + "indices = '27150 11288 54516 101230 61485 19623 50259 48744 6427 62300'\n", "# indices = '92250 3847 83378 12742 43667 10569 31701 26828 29136 11683'\n", "# indices += ' 43998 96531 34802 14008 5083 94955 106754 86870 23547 93601'\n", "# indices += ' 5869 5157 100074 316 96728 75727 2662 41331 41474 93074'\n", @@ -1573,7 +1706,8 @@ "# # 26862 74765 89470 2741 56888 94275 40017 85989 94077 66553\n", "# # 74666 90417 12553 21928 14720 53798 30290 109516 37033 95242]\n", "# # indices = [ 59935, 44820, 26407, 84617, 98728, 35216, 73968, 105130, 844, 63892]\n", - "# indices = map(int, indices.split())" + "indices = map(int, indices.split())\n", + "all_randos = [[indices for size in sizes] for name in names]" ] }, { From fe55003881cadb9e70d0c3ac6ec9c43147a73c40 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 27 Sep 2017 11:57:16 -0400 Subject: [PATCH 83/96] periodic backup --- .../research/analysis.ipynb | 94 ++---- .../research/data_exploration.ipynb | 293 ++++++++++++++++-- 2 files changed, 296 insertions(+), 91 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 902b4e3b..382e0d6b 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -13,20 +13,11 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "#comment out for NERSC\n", "%load_ext autoreload\n", @@ -37,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false }, @@ -67,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": true }, @@ -100,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": true }, @@ -119,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false }, @@ -172,7 +163,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false }, @@ -239,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false }, @@ -283,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": true }, @@ -361,7 +352,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false }, @@ -472,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false }, @@ -535,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": true }, @@ -622,7 +613,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false }, @@ -691,7 +682,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false }, @@ -753,7 +744,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false }, @@ -794,7 +785,7 @@ }, { "cell_type": "code", - "execution_count": 140, + "execution_count": null, "metadata": { "collapsed": false }, @@ -849,7 +840,7 @@ " ax_one.set_title(dataset_info[name]['name']+r' data per-PDF $\\Delta\\mathrm{KLD}$', fontsize=16)\n", " place = os.path.join(topdir, 'indie_klds'+str(size)+name)\n", " fig_one.savefig(place+'_each.pdf', dpi=250)\n", - " plt.close\n", + " plt.close()\n", " \n", " fig, ax = plt.subplots(figsize=(5, 5))\n", " for f in formats:\n", @@ -877,12 +868,12 @@ " ax.set_title(dataset_info[name]['name']+r' data per-PDF $\\Delta\\mathrm{KLD}$', fontsize=16)\n", " place = os.path.join(topdir, 'indie_klds'+str(size)+name)\n", " fig.savefig(place+'_clean.pdf', dpi=250)\n", - " plt.close" + " plt.close()" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false }, @@ -997,7 +988,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1121,7 +1112,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1157,7 +1148,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1231,7 +1222,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1355,7 +1346,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1399,7 +1390,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1422,7 +1413,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1449,7 +1440,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1536,7 +1527,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1553,7 +1544,7 @@ }, { "cell_type": "code", - "execution_count": 137, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1596,32 +1587,11 @@ }, { "cell_type": "code", - "execution_count": 141, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\nAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# comment out for NERSC\n", "# set norm to True and run twice to match axis limits\n", @@ -1668,7 +1638,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": { "collapsed": false }, diff --git a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb index d82f2ce5..0613e5ec 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -78,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -103,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": true }, @@ -126,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -158,11 +158,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "storage footprint 187656760 bytes\n" + ] + } + ], "source": [ "## Warning: reading in the data is slow for Sam Schmidt's dataset!\n", "with open(dataset_info[dataset_key]['filename'], 'rb') as data_file:\n", @@ -186,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -237,11 +245,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.00166821479797\n", + "Plotted gridded.\n" + ] + }, + { + "data": { + "image/png": "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\nkEctNQlvAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "if dataset_key == 'Euclid':\n", " chosen = 5390\n", @@ -265,7 +292,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -288,11 +315,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "weights, means, stds = (array([ 7.86618232e-03, 1.52191942e-01, 8.44465992e-01,\n", + " 5.86383580e-25, 1.92739653e-26]), array([ 0.20514244, 0.70083922, 0.65688144, 1.38216391, 1.28419239]), array([ 0.03005221, 0.11893208, 0.05491016, 1.13356533, 0.07316158]))\n", + "0.00786618232498$\\cdot\\mathcal{N}($0.20514243587,0.0300522096351)\\n0.152191941733$\\cdot\\mathcal{N}($0.700839217273,0.118932083479)\\n0.844465992278$\\cdot\\mathcal{N}($0.656881444761,0.0549101640834)\\n5.86383579515e-25$\\cdot\\mathcal{N}($1.38216391095,1.13356533269)\\n1.92739653279e-26$\\cdot\\mathcal{N}($1.28419239455,0.0731615762985)\\n\n", + "7.18195390701 for GMM fit to gridded\n", + "Plotted mixture model.\n", + "Plotted gridded.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "start_time = timeit.default_timer()\n", "G.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], \n", @@ -312,12 +362,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "weights, means, stds = (array([ 0.22474089, 0.32893284, 0.08460611, 0.003 , 0.35872016]), array([ 0.58396956, 0.7012796 , 0.79513759, 0.1984569 , 0.64261489]), array([ 0.04156553, 0.02721708, 0.05638918, 0.03896681, 0.02800991]))\n", + "0.224740889352$\\cdot\\mathcal{N}($0.583969559122,0.0415655289228)\\n0.328932839347$\\cdot\\mathcal{N}($0.701279599367,0.027217079202)\\n0.0846061142416$\\cdot\\mathcal{N}($0.79513758836,0.0563891755743)\\n0.00300000000005$\\cdot\\mathcal{N}($0.198456900573,0.0389668112235)\\n0.35872015706$\\cdot\\mathcal{N}($0.642614889887,0.0280099088221)\\n\n", + "0.861758947372 for GMM fit to samples\n", + "Plotted mixture model.\n", + "Plotted gridded.\n", + "Created a KDE interpolator for the samples parametrization.\n", + "Plotted samples\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "high_res = 1000\n", "\n", @@ -340,12 +414,90 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plotted truth.\n", + "input quantiles are [ 0.5831924 0.61771823 0.63949974 0.65921476 0.68006022 0.70209871\n", + " 0.73012563]\n", + "evaluated quantile PDF: (array([ 0.60045532, 0.62860899, 0.64935725, 0.66963749, 0.69107947,\n", + " 0.71611217]), array([ 3.62047764, 5.73881294, 6.34034527, 5.99650721, 5.67189585,\n", + " 4.45999724]))\n", + "x before: [ 0.60045532 0.62860899 0.64935725 0.66963749 0.69107947 0.71611217]\n", + "x after: [ 0.51414074 0.60045532 0.62860899 0.64935725 0.66963749 0.69107947\n", + " 0.71611217 0.78617948]\n", + "complete evaluated quantile PDF: (array([ 0.51414074, 0.60045532, 0.62860899, 0.64935725, 0.66963749,\n", + " 0.69107947, 0.71611217, 0.78617948]), array([ 2.22044605e-16, 3.62047764e+00, 5.73881294e+00,\n", + " 6.34034527e+00, 5.99650721e+00, 5.67189585e+00,\n", + " 4.45999724e+00, 2.22044605e-16]))\n", + "order is 5\n", + "divided into (array([], dtype=int64), array([0, 1, 2, 3, 4, 5, 6]), array([], dtype=int64))\n", + "Created a k=`4`B-spline interpolator for the quantiles parametrization.\n", + "evaluated inside (array([ 0.5831924 , 0.61771823, 0.63949974, 0.65921476, 0.68006022,\n", + " 0.70209871, 0.73012563]), array([ 2.23801027, 5.03949337, 6.26575436, 6.22925918, 5.831698 ,\n", + " 5.38681173, 3.24139826]))\n", + "evaluated below (array([], dtype=float64), array([], dtype=float64))\n", + "evaluated above (array([], dtype=float64), array([], dtype=float64))\n", + "first: (array([ 0.5831924 , 0.61771823, 0.63949974, 0.65921476, 0.68006022,\n", + " 0.70209871, 0.73012563]), array([ 2.23801027, 5.03949337, 6.26575436, 6.22925918, 5.831698 ,\n", + " 5.38681173, 3.24139826]))\n", + "x before: [ 0.5831924 0.61771823 0.63949974 0.65921476 0.68006022 0.70209871\n", + " 0.73012563]\n", + "x after: [ 0.41563285 0.5831924 0.61771823 0.63949974 0.65921476 0.68006022\n", + " 0.70209871 0.73012563 0.84581645]\n", + "second: (array([ 0.41563285, 0.5831924 , 0.61771823, 0.63949974, 0.65921476,\n", + " 0.68006022, 0.70209871, 0.73012563, 0.84581645]), array([ 2.22044605e-16, 2.23801027e+00, 5.03949337e+00,\n", + " 6.26575436e+00, 6.22925918e+00, 5.83169800e+00,\n", + " 5.38681173e+00, 3.24139826e+00, 2.22044605e-16]))\n", + "third: [ 0.005 0.02626263 0.04752525 0.06878788 0.09005051 0.11131313\n", + " 0.13257576 0.15383838 0.17510101 0.19636364 0.21762626 0.23888889\n", + " 0.26015152 0.28141414 0.30267677 0.32393939 0.34520202 0.36646465\n", + " 0.38772727 0.4089899 0.43025253 0.45151515 0.47277778 0.4940404\n", + " 0.51530303 0.53656566 0.55782828 0.57909091 0.60035354 0.62161616\n", + " 0.64287879 0.66414141 0.68540404 0.70666667 0.72792929 0.74919192\n", + " 0.77045455 0.79171717 0.8129798 0.83424242 0.85550505 0.87676768\n", + " 0.8980303 0.91929293 0.94055556 0.96181818 0.98308081 1.00434343\n", + " 1.02560606 1.04686869 1.06813131 1.08939394 1.11065657 1.13191919\n", + " 1.15318182 1.17444444 1.19570707 1.2169697 1.23823232 1.25949495\n", + " 1.28075758 1.3020202 1.32328283 1.34454545 1.36580808 1.38707071\n", + " 1.40833333 1.42959596 1.45085859 1.47212121 1.49338384 1.51464646\n", + " 1.53590909 1.55717172 1.57843434 1.59969697 1.6209596 1.64222222\n", + " 1.66348485 1.68474747 1.7060101 1.72727273 1.74853535 1.76979798\n", + " 1.79106061 1.81232323 1.83358586 1.85484848 1.87611111 1.89737374\n", + " 1.91863636 1.93989899 1.96116162 1.98242424 2.00368687 2.02494949\n", + " 2.04621212 2.06747475 2.08873737 2.11 ]\n", + "divided into (array([24, 25, 26, 27]), array([28, 29, 30, 31, 32, 33, 34]), array([35, 36]))\n", + "Created a k=`4`B-spline interpolator for the quantiles parametrization.\n", + "evaluated inside (array([ 0.60035354, 0.62161616, 0.64287879, 0.66414141, 0.68540404,\n", + " 0.70666667, 0.72792929]), array([ 3.60232224, 5.3275399 , 6.34465617, 6.10326132, 5.78126312,\n", + " 5.1673553 , 3.46237225]))\n", + "evaluated below (array([ 0.51530303, 0.53656566, 0.55782828, 0.57909091]), array([ 0.03767063, 0.72680648, 1.41594233, 2.10507818]))\n", + "evaluated above (array([ 0.74919192, 0.77045455]), array([ 2.1388615 , 0.90931805]))\n", + "Plotted quantiles.\n", + "Created a piecewise constant interpolator for the histogram parametrization.\n", + "Plotted histogram.\n", + "Created a KDE interpolator for the samples parametrization.\n", + "Plotted samples\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "N_f = 7\n", "M = qp.PDF(truth=G.mix_mod, limits=dataset_info[dataset_key]['z_lim'])\n", @@ -368,11 +520,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'quantiles': 2.0177293738157727, 'samples': 0.29412056403192499, 'histogram': 0.59485999161459158}\n" + ] + } + ], "source": [ "formats = ['quantiles', 'histogram', 'samples']\n", "parametrizations = {}\n", @@ -408,9 +568,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -427,7 +587,7 @@ "\n", "if dataset_key == 'Euclid':\n", " dataset_info[dataset_key]['N_GMM'] = 3\n", - "elif datanset_key == 'LSST':\n", + "elif dataset_key == 'LSST':\n", " dataset_info[dataset_key]['N_GMM'] = 5\n", "fit_components = dataset_info[dataset_key]['N_GMM']\n", "\n", @@ -445,7 +605,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": true }, @@ -488,7 +648,7 @@ " N_pdfs =len(pdfs)\n", " randos = np.random.choice(range(N_pdfs), n_plot)\n", " for i in range(n_plot):\n", - " plt.plot(z_grid, pdfs[randos[i]], label=dataset_key+'#'+str(randos[i]))\n", + " plt.plot(z_grid, pdfs[randos[i]], label=dataset_key+r'\\#'+str(randos[i]))\n", " plt.xlabel(r'$z$', fontsize=16)\n", " plt.ylabel(r'$p(z)$', fontsize=16)\n", " plt.title(dataset_key+' mock catalog')\n", @@ -498,12 +658,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "making the initial ensemble of 100 PDFs\n", + "made the pool of 4 in 0.165659189224\n", + "made the catalog in 0.4354429245\n", + "made the initial ensemble of 100 PDFs\n", + "sampling for the GMM fit\n", + "took 1000 samples\n", + "making a new ensemble from samples\n", + "made the pool of 4 in 0.000144958496094\n", + "made the catalog in 0.441530942917\n", + "made a new ensemble from samples\n", + "fitting the GMM to samples\n", + "fit the GMM to samples\n", + "making the final ensemble\n", + "made the pool of 4 in 9.10758972168e-05\n", + "made the catalog in 18.4482409954\n", + "made the final ensemble\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# pr = cProfile.Profile()\n", "# pr.enable()\n", @@ -530,7 +723,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": true }, @@ -605,11 +798,53 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "performing quantization\n", + "performing histogramization\n", + "performing sampling\n", + "making the approximate ensembles\n", + "made the pool of 4 in 0.000113964080811\n", + "made the catalog in 18.6752672195\n", + "made the pool of 4 in 0.000100135803223\n", + "made the catalog in 18.8698592186\n", + "made the pool of 4 in 9.01222229004e-05\n", + "made the catalog in 18.714222908\n", + "made the approximate ensembles\n", + "calculating the individual metrics\n", + "starting quantiles\n", + "weights, means, stds = (array([ 0.32259881, 0.12000102, 0.25308461, 0.01999744, 0.28431812]), array([ 0.31955313, 1.89535281, 0.76227741, 3.32792715, 1.25929436]), array([ 0.15327663, 0.3055529 , 0.15681398, 0.10757396, 0.26158906]))\n", + "0.322598810134$\\cdot\\mathcal{N}($0.319553129617,0.153276632357)\\n0.120001021511$\\cdot\\mathcal{N}($1.89535280956,0.305552896637)\\n0.253084605016$\\cdot\\mathcal{N}($0.762277406289,0.156813980137)\\n0.0199974432826$\\cdot\\mathcal{N}($3.32792714567,0.10757396291)\\n0.284318120056$\\cdot\\mathcal{N}($1.25929435502,0.26158905763)\\n\n", + "finished with quantiles\n", + "starting samples\n", + "weights, means, stds = (array([ 0.74538238, 0.04007595, 0.17482375, 0.01 , 0.02971791]), array([ 0.14825555, 2.95180543, 0.66380943, 3.99224806, 2.04190345]), array([ 0.07772947, 0.20957478, 0.35516799, 0.001 , 0.15973365]))\n", + "0.745382382692$\\cdot\\mathcal{N}($0.148255548594,0.0777294743949)\\n0.0400759533401$\\cdot\\mathcal{N}($2.95180542936,0.209574779657)\\n0.174823752582$\\cdot\\mathcal{N}($0.663809431474,0.3551679866)\\n0.00999999914967$\\cdot\\mathcal{N}($3.99224805668,0.001)\\n0.0297179122363$\\cdot\\mathcal{N}($2.04190344572,0.159733654358)\\n\n", + "finished with samples\n", + "starting histogram\n", + "weights, means, stds = (array([ 0.05819823, 0.38561485, 0.11024752, 0.34454691, 0.10139248]), array([ 0.56355971, 0.04588222, 1.17686522, 0.21065911, 0.78380249]), array([ 0.05206764, 0.01821537, 0.13866149, 0.1015784 , 0.06167195]))\n", + "0.0581982316956$\\cdot\\mathcal{N}($0.563559707402,0.0520676402341)\\n0.385614847719$\\cdot\\mathcal{N}($0.045882220183,0.0182153699483)\\n0.110247524407$\\cdot\\mathcal{N}($1.17686522262,0.138661492936)\\n0.344546912823$\\cdot\\mathcal{N}($0.210659109087,0.101578404892)\\n0.101392483355$\\cdot\\mathcal{N}($0.783802487588,0.061671946788)\\n\n", + "finished with histogram\n", + "calculated the individual metrics\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# pr = cProfile.Profile()\n", "# pr.enable()\n", From dab41503f322723f4833e32dbe701e0c6b360f0f Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Sat, 30 Sep 2017 16:39:05 -0400 Subject: [PATCH 84/96] debugging for NERSC --- qp/ensemble.py | 8 ++++---- qp/pdf.py | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/qp/ensemble.py b/qp/ensemble.py index 799fdb6e..2846c5a6 100644 --- a/qp/ensemble.py +++ b/qp/ensemble.py @@ -296,12 +296,12 @@ def evaluate(self, loc, using=None, norm=False, vb=True): tuple of string and tuple of grid and values of the PDFs (or their approximations) at the requested location(s), of shape (npdfs, nlocs) """ def evaluate_helper(i): - # try: + try: # with open(self.logfilename, 'wb') as logfile: # logfile.write('evaluating pdf '+str(i)+'\n') - return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) - # except Exception: - # print('ERROR: evaluation with '+using+' failed on '+str(i)+' because '+str(sys.exc_info()[0])) + return self.pdfs[i].evaluate(loc=loc, using=using, norm=norm, vb=vb) + except Exception: + print('REAL ERROR: evaluation with '+using+' failed on '+str(i)+' because '+str(sys.exc_info()[0])) # return result self.gridded = self.pool.map(evaluate_helper, self.pdf_range) self.gridded = np.swapaxes(np.array(self.gridded), 0, 1) diff --git a/qp/pdf.py b/qp/pdf.py index 5a69c7e7..8ab6fa2a 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -299,8 +299,9 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): quantiles = b(quantpoints) order -= 1 assert(not np.any(np.isnan(quantiles))) + assert(type(quantiles) is not dfitpack.error) except AssertionError: - print('ERROR: splines failed, defaulting to optimization for '+str((icdf, grid))) + print('ERROR: splines failed because '+str(AssertionError)+', defaulting to optimization for '+str((icdf, grid))) locs = np.array([bisect.bisect_right(icdf[:-1], quantpoints[n]) for n in range(N)]) quantiles = self.truth.ppf(quantpoints, ivals=grid[locs]) assert(not np.any(np.isnan(quantiles))) @@ -313,6 +314,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): # integrals = self.truth.cdf(quantiles) # assert np.isclose(integrals, quantpoints) + assert(type(quantiles) is numpy.ndarray) self.quantiles = (quantpoints, quantiles) if vb: print("Resulting "+str(len(quantiles))+" quantiles: "+str(self.quantiles)) From 22328457b93a57ee5949a6cf2ab62d500e918ceb Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 3 Oct 2017 18:14:04 -0400 Subject: [PATCH 85/96] added latest figures --- .../figures/graham_nz_err.pdf | Bin 0 -> 205321 bytes .../{graham_kld.pdf => graham_nz_kld.pdf} | Bin .../figures/graham_pz_err.pdf | Bin 0 -> 170701 bytes .../{graham_moments.png => graham_pz_kld.pdf} | Bin .../figures/schmidt_nz_err.pdf | Bin 0 -> 205320 bytes .../{schmidt_kld.pdf => schmidt_nz_kld.pdf} | Bin .../figures/schmidt_pz_err.pdf | Bin 0 -> 170693 bytes ...schmidt_moments.png => schmidt_pz_kld.pdf} | Bin .../main.tex | 215 ++++++++++-------- 9 files changed, 120 insertions(+), 95 deletions(-) create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/graham_nz_err.pdf rename docs/desc-0000-qp-photo-z_approximation/figures/{graham_kld.pdf => graham_nz_kld.pdf} (100%) create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/graham_pz_err.pdf rename docs/desc-0000-qp-photo-z_approximation/figures/{graham_moments.png => graham_pz_kld.pdf} (100%) create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_err.pdf rename docs/desc-0000-qp-photo-z_approximation/figures/{schmidt_kld.pdf => schmidt_nz_kld.pdf} (100%) create mode 100644 docs/desc-0000-qp-photo-z_approximation/figures/schmidt_pz_err.pdf rename docs/desc-0000-qp-photo-z_approximation/figures/{schmidt_moments.png => schmidt_pz_kld.pdf} (100%) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_nz_err.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/graham_nz_err.pdf new file mode 100644 index 0000000000000000000000000000000000000000..514bba999947c5d4374763bf68e28161a1ee8d7c GIT binary patch literal 205321 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�hNyIzp@30)-N6rx4;p-`Ny{NY5?GDxQp0lYap`g4# z86YQMqWh94d0L&e)u z##si(Wz|}ph1R+BYRAA#GmzAPW6>-&%Hc~xL|HTi{aZCeb<*lfFbK*XQ}b!qh&oa6u7lmo z$yOyjE^ei7Y)R5HVJV@cf{12&B&tm~Ag~#$d%Bbq8&WVad}raJt0!^Sn8pTjbH@it zh?n7rngq%5-Ug1{Nd9xE2D#jHqR~ku5_lzZpS&7Xs1{=F zkSQvtV8})9#3QT)AT3$Eb8FE2(f&r(Ja7f#w!%SB*uhEcO-8dy8b_O2-IgcdCNU%! zIXa#{mW7Q=luigr)q4c_orrdW`6eo2HZdn5kodB`8P^-lzhKcsD*1c2uzqv8yjo|i zMsNBK1bV=<6n#Wk<2X>)iTFF$QNEn)vJz3y+OJ9fpQ1&Ijn0_sBU2Das!UP_QpW`gGlbozlsosG(74>zPV>!OE6I?kYsde{yXcw;eA4nS5{c1mkH zQ;(5i?Z7eePADAYioawyE}}MWI)U3K8{^ie6TU(YSP*w8s0=K&$7;5rq^z-U|1ag zX14?r7q0E{T~Ky4R~$c~m-rp)^G7{-Xuk_cbj}PuON+6$9P+D$QDf{VkDw0kwpd@x zLuG(oAL#sf6@{qTkV*T5^C77oI^_{nD_~R`dBiPRgOqyD))0EU;!}8(Z zXg*z-IcPiq8dSwQZ*KJa>JndBRT(JEf7c}G^K~D{W(FL;HMF;+WZNuNAUaRLcb0Jm z+F6{!J;uGU&!4nXAd1Y3oVy;#rv=V1)j}ot^#Hpbpfy$BRNGkNeBF+QS>h?G%{42~ z(j@j`+v(i2ShSHN>VSFmk-xy6@zIqb=0CKA-qqKVquE0qYt+;mbuVNQnpJO`rOBL0 z9N5Bs$?Cd#8_4>V5~W{zZlZpXZH{ODa!vcnK^Qj%ggzz@`NHUu9#_=O;M5!iLP4Pc z+~S&5%vD<8FxD4sZfSUos3Kum;X~cqB`J0tcO38JYQOzTOoJPrx-%x1`p)8E#eYiB zCY<2f&y_q~d`yP5a{=KBMG+0IM?1Q1^3L}%l#J!p@1|ukA4KvGhUaH>n!sX|n+esi-)m|3P-pDVuvC~_I$n}>Ex`>2 z+3no(brhbE-Iol;Oy|++J?KYdWg8JsB?qMlHvB3Vn|G1irMmei1!?o1r0l}lfIbwp{W&QV%YO#@s7pM1rvp&{S| zE`1RR6Uc_crO+mJT@1yo!p0fCT00f8N#rnhuE!uiXQ#oS?7e+CnWXo7>r6BQA7;c< zkR8mZ*YFmc)l=l%tO>zR=D}@%oStRV=m0ihI8am22sd`S?SN&Ogon!lw-i9g(a|ZW ziQKoWlHbGKYAllcjRuO_w91-qDT7fPuIYXm6 z3qdbmWRO2)jfSYYa8OS!y-n{GY^?h9VSV+3^L{l8Q znL@E8LX)F9CeD{e!#o1F_X-gmemMqN%|NN0qJz!u-zj_sVqi^@gYwVM$haPQ#;n6=5}a z+@$63m*_E^;@?kp2wMc@k0X!2 zMd0y(_$^2^$j-5`z1J8&*%A7GgD=QIEVfOqE(94g7f}v_+6B|_9h<+=z{159pzz;X ztAiH;ji+nPzvJ+uTlUrGozSzr<1)f;ge z%pDU-%k#qUoMt{5ug@z|$V*LxppkXLv1!A+2H@#22tpBMJJ4bEl#EpeAD5?0Kx0<6~�yNY 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≺+!vyvDjU+WYzJXrW{}m5$$A4#$VQgtzYlhn5a~Zno~A%2d@D`FmpnMg4=i z13Xx_RqM(YFc7LUe#OWCRJU~+s|1Iq*Haqo|M;J?M zudy#XtNnGQm?Ft+2fee?tW0-V0`iFnwkBel;>^E-_bN-!bkoO+pitnl4?(sR#6PB* z=0DD_76525MJS5u1p+D~iFXii<0As;)%+t1)1%SiK9AU7#ZuDe(ptS5m<$xIe2h`L znFtzAnGuY6O`UG{;f{ZAf58ki96(^)S@FK+6sT&PC(Z|6_cm8!P3~_xG%RM*@nTdp z9%a@ao^!-fnxCz@zI~>??==8}m>;$i_#%!T)j$=~eA#AmP8`i#As2n- z+U}bp2!|Xv1KYj^-u2xY0&V_#&Zjv-(*{!4P-1g!V;{w< zHpNTUWRoBvDbaz_2oMpEM4#*W8xG(_F^Z;BUEc$b`lUp(x*L0H$iAk!Cw7#y2G32w z#R?;*jHwS%FE|bef7E5mPVSi+f)IdX#0FCRJ&FmS^~Kf97?l_@fC=7_-hwhXP$v{-ub6E;@ShCkKsb-AW2{R5ZVicnVqd=A$ z_Pyl2C$~!43G~#0F>Ff{DabM^oIJdeSmiCJg%=4Uu~P3*BUnvZH3(Y)+R~3yHL%7n z0W}DbGXaon-p#S4EAfQDz`xTCuKg={(zx72BgjbGhxP{4SmW6ycb5ZEg1KwPpr{eM z;?hSjr!wR`W`VI2F%o-Y7qCl-+@wdYnxjYM$JhtgRP z9rdX|a>wM9EcMhYm8Y|D2&tK45!lbPa%d1GD?u(vXaHSelhg3O=m9L}rMSKe58how z+`F3)Vv>F~qU5Gg$|@KNxTSK8;Xb_glTs!i<3fZbLj>%F%jC3fiuzh?6P2C=2D1Kc z8zb-wIbw#4fO4z2C<1hi0eBVji&66ZGQRk2SJ&eW()0G%@y8(K8>e(UzD=R9&praj z6Y6Alm@1CK!Z+rE<@OYd8LiL%Y_=SGLTU=Qv+~hM&O!zA+3!BL65wf>G3=ty?>Ax4 zQiY`vb5Hl>strEsB85`Ly~6w>@z}&a<)C)6SGogdqT)mf7}6SI$XB55j^z@@#=8)9 zDgtuLfTdOGUryx!1PtRySu2X{A&k*ATN_QU$Fv4*l={E>V3%KqlQyWkd~)HSy?r=p zKMRN!0gf$>&VMR1^aBMOpobghF?T9in4E`B?4k`Zy1EGU|EXx#r9gfQqGMwL?-_Zy zGB!+3GeR(2SXpUgx|O8)M$fS`b#c@=ojWJ@89?xZ8*$|fz9A(+9Q(cJ(VWCLrBerG zEE*QJkrgmm)_9WmY8>~@S?5y&ZgIIQiw!)p20-e#szIn_)%46(`mRBwN^|ZH zZR@|@Fg@9ikH^;#QR;ZmR&<@4&ZmCjU0&vR`n-L=^sSjc99S!FGe#I!S9@ws9uH4iq z^obk&G1VK?BcL!POE<8r#s;CWgKZ*A$1?!c zk594;zX=`+R=2rs*<*m~W^riua0$_>vQVCJ5?_!rk7xB&6$snLi0##TXQiG?OCjq0 zVVt|8zuC1ZcZXKe7o?zQs|=4WLe$VTi#Q7jIf$dQa7Jhtzm$$Tu?v=q6#|GoRw&zI zqG#ZW}DIrXv~UEX=!7ASrZ z`4<%86~lJk3CN;WoDSmsypHnF>fF)4yrVmwJ;P2oZl2f$&7vz_E*6wNoi+Ja$b$m)}y2<&mkB)CvvwNQ3HAietcn6CzUxNLBi@@N zZL-L^{-Em{1sfQkFi-#`qFws_xNA2|S#9rA>@lzrCXJ%+zM0!u?6Y0Z7*+vun|GZ{ zd$`u1^*Xf;8aQ(71XS1Ws4POi5C@r(avW(`4rQH@=KL?HTmQ;qdDMoLh0aHeOSv69 z&&mk!&_T5ns>+Q08}*IIR8(UcD_fijlmmPsX9lJG#2E9(L6d0PCGiy~;}ufsK+vD! zbo!nA1e15>@(GGLDB`cLs!kg12(%-_{$oPg$N!2;$*Uj4p^W32wNDqAwv@{wrlL{q zKt|Z9)J+Z;xy{(ptAC!ZMmYW1Z1V8p6xpn#4gX%^`wMQazAmI&$oaEOo8tDnx4ZCD z$rxBeQ7Y4w?Lgr8V`IW^W`t=cxTrzGolp_A{P{BRQf)3TXRY4bAKnRWWA z%=gqAp4zm3aS2){_rJlOZb`dX6K=w>iU&F&9(bGeLvD5_?usIpFVEzWk7WUdT_w9n zT#`{iX@p?rf^~F~V*%jwb|HYZU`IfWBJn8`!n9q@nGt%Ua5ARVJ!8INVJEN9-2t|n zni9_(8rD2AoaCcXfD_Js1!tWGCwootbzWR20gi4+$pIwEMtd6@%qXx#@<&Q3EZphm z6J~AdtP7ihXXtlM)hYz{Pvb-2MX!ekjwkYLra_s~w_}4_M}3Hcrqb>cnllBgu~J9m z`Vfl|m1Bk^AKWr(YgmUgiu{7I=kfG4DTXB{pFvo2bCZ<4dzfc$I;i{rDEgs3UdGph zC4orx#W#D!nrR+w@?C1amA%a#h7acEH7CJr6>hjeW)q?4WD^Kk-VHCqg( z_@b|t$T^a6`JaEiuZ*8uTvw`Kdf{N0>n1dmx2Rt6tW?;$+7(OulSl-F@xMcNe-lW? z*&#=EmEl>ys_F{VV_q7q2D>LKJBMd6dj6HF3Za!@9LSOyT;(vU*s--eE)cg)e>31u z-D%n^$=l}dJETN8=r@A$>)29oOZjss7JA2H7r<3DbFtBIB^Gp%^Z#I#P#c%vb*b~Q z%zwr%9#JfcGL6?|QaE5q)tcjlNN}{i-tqfJPZ?hTvfIbd%VECigi+hY#{NnLp2is> zuE~9VSX(ke!R|)W_Eur6P_4BUpYE1$~=z-l5nPJpdj z*x&Ip3HmYj>fDHy8i7{%#JH+mHG7P7%7`wR2xlsjje^DFucfxzqrb1*8=?u*l5B-HP==uo z>DEHc)G)N0A+$$~*h|5+RpVM!yvF9{mn$68wshfz$Soe9lAJO;7;^mgAVSHfx;aqN z4HB|m7X~ymW+?l@(IAL7hM!%Oxe%5xft4S=7$qlgI?VMHP%-e7J*iQsIB>fysrwc? zu-f1if^mX5qxPx)Ft@SiX*s@ylI8LHhdjj;Nd%gS^6SAxDXykD37L&oPk;Wok~^pA zp^TF(isJaW%DMtrmzWM`D7fp3uH!k5~p60e(`xViIc{91+{-=ZCQ7SH1D0Cx; ztnMdJCSd=xZ);PyrkhKqgf{c--f_qUTE?>z9MjSa0X1yVqyQt^GI?Y_#vwyAKTMw> zEV=AFwT|lr@XkRGY>VN#-NYqgtpuG%>*XrLIFqkeFZ`5jTyFt)L*SZ!u@yN}a+i0I zqx3LA7olg^|IS>S23Y5{Q7A8@lB+LuI%lNM^mqCad}imnxJUb>7Q4$NWDsRdRL8|O{} zZuTWtU9L76f5k4#J3NUH2QV^`Ag7S%lSEO0S@ts5F6TJ{e>7~S8-{g8@Tj%w)7g8O zBzJ$X0jD~m#K3=ZJ1PVZJ1WGRwU;A^H+f`AJd`V~`!Ba2VEn68^;v35|Eedqajt-v zW$Dq}RZy%2`isStcHj6+@beJ5ru?i!gF%Ey_P-gkhdh+$gv_KeAIB1bbUGfUI!Em* zni?m#CUk-i*8NnI$XOU^A?VCZ0Jk(W3G>GJ%yOsvj^71LQjb@4ny~#?o#X|m_#wi0 zhd&$yYM#uo8`LeFl||Ilht5n}GhX52uq@@dynKnn1OE2NVtJ?og>xSnLGn05{Dxh> zkDwt&n+-|ac*1&otQZ?>wQ$~=hPmz3k03N~UOQcfX7z6HN8%(ff*8%U^8dDjkG)0#)Og&-HT`}h*Gnf)CY(5~`MDof+xYfHN4_HxljgErR6!r}5b^sf%JMaeEHHd>|( zlo1gCs1Mdt<=9b=(J`@#)IX1g1GElTNxY$@cFYYAcy4QFTh?HHM6KQQnfF%0fM@Moq#s^2*l%gz?v#;ZC} zlg_+-kD$fmuw_ngE*EQwF4Mdi7M#AMj6uv0C#3F%yHN+&2BHM_`Oaw$-s{qos zw#(QgBU;~V+#&&HnVIEdof@;uaUjVD&S+Ve-ysJ9I%8W~1u_s=d=?nM!*rP92%RW2 zP#12=s)GCr?T(izY$z(+>g^S(6)x_%6$pWnDD z?`RZPz!qyz7&wbcboJi<@j2nFBEQmI^otawKHOa~-uqTQ4cqHE-03tbFKW26%rou^hdt;JrG4ntA6UE~qulZBuArI{ux7UirZ%VT*I_7}}CO8moXiFd7K%*Be7?>wLZb5rjIoFj4sRrBQ zhw%kNgN&0I(;@aWyk1JE(8fAIbTao*g+~C`aWzGjw3+lXS3((EOL%?zfh+k)5;y^~->ipC$tp@?6%BPjGz$B8aDD2~`5fxIf&!BVd8GR&kB>@UJs&UfHoJu&CsLX4f-|YC1Mv^^{5i$j< zSa1Umgzq{m4Hv>`ZFkvbmu+;}wr$(CZQHIcW2(Nh_rB*$+=-Yw z5%b52_2yDOPi95D6&d-iA76z?Gr7=~k(3*Nu&dMq{aHDePkDOE?zk`sT&bE8> zb3G57bhso+$4`2TgQ-O2j;fD`#3zp)VecH~(*i&LRSEd6IEk!N-1HPMZL>+JIbd|9 zHnH-qTz}H%(!q6a9W5^ivTRIxPI4bO#G51ET82=A8^|F1BU!!`=4-K;I^GGM9HfKV z33?hk%lTAA&9MBP5;e(=nF8zAF5}?Aa-+~$swYyGt(1ylZa&bOam)UgJ8>4*85?H zzncyL_AY`546FgUg?prL@If=)VbiJFv~8LZ@USHx8nG=Z83)gVm2+@H2sJ@y*10ZL z83q^x5u0Y?fbsYzpOH4tY%6OoQVt4C7QrsOg#I@|GSh!UTK}hz%RnU}OG*e7^u*R(eJP7Pc=fnU#)!^{f4#w*OW$e8qY}21jYO{_y1nL*J1h^^WFaM^}au|f7#9SbWC3~@z;Xi3w)RFj;{s(S?J#Z z{j>Pj7{>1te=qW{@r++V{d>-L`~O4vA3^>5Jm2;AI!s^ncljsD?}WdC`X|V*HkPk` zmhU9Lh2yW9k(CaLnc)in{%-#|H~V+&-*di?zsf&rd?)(d_I<&=>#ssj_tp6C1D3A^ zzE1v6Q2!48-$DJ8z}JL-uGT*_>-Satuf)ENzsLP^{IA5nFVNS?{wu++e&(-sCc5wP zHSQ~*f9}$EAYbLX@1OpE-3fZSuT1~@75iUC@;9>mZ$J1yMl#bk>HYPG_1}!-e`&@4 zF_PK8jpXlizdYrCkYuR;Aj$tw!vEipWcL3*jO2f^`FD>01tb4YBbl9^iT&Ry^0$%v z1xo)*O#Zq9UxM=gfsx#!g~Wsa7PNhN`6VMi0r-JCH)R6~*gzny`}%KR()4Wjww>{& zyI=aGzbbX8DAL!tt(|tXsXRs_Q~sQT#9YGw8n7(KJx)HxYyl*)yJ`jq52v~h4<8TS z-~UMfF1hVp9=vbH$LSs&!TeZfi^!Sn1H4RXwhfR;YGMEz?Nkp!R|Al|+>*l9jEM<2 z9v-gwnPF-$1dG6I1B3~@e+)RwvdHHyWQT~Yp~4wmk^=k`|LFz#3sVj_xw)Cm^iv%U zp%!S>Cmg06&<+gFn2+*0LU?k!09aIg!~ZNk zY=cHF4)SpVJlXuIji=)4K{I{N8mawE;e&p9wE~d3m-@7Ld^{bB;9K;jW}#!Kt*K?M zb^=vP1CruPOx58R229=Ez4~OE>r>DH>(b#92RJ<2jqqh8?}7o?5|aD@T<+=W zsAH`KUg21tTl1sB=l;h?9@AeOB>FOv`OLxHh5AK(a|t-J5uY}-FhAT>q0O;P%pX5J zSOL|r)3{!A&rQd&&0t@)A>xtV-NBaqp9~p6IRKV1FfrMilL5Qo0kXqlF#Glne^xej zcY&qgP3VGiZCF}b0FvtB|H&jkCU^p#+1Tucgs`c$2XSlV#eYI3WS|EO=NEwk5X`0+ z#=80KT#adZix1=F&KV8;Z6v$>$4C}Us`)aK&%TUg?ML3s4+CVhMq9w|_eqU0q#LjxwDPlK0F+-Gm<=dRs%+oaE^=udos-N?j5Z&(HH$j_^4 zAJpO5zgLjk7)}lVM}FyFPvXiyO)5FAdBv%~nZVf9->0hM{Q%h*{mZ4PKiv}mz@j_Y zhCxlsA?)ZFUS$E^xwBuAT@ne*vvVW3kL7*?I7o$uf8v1@rNw}%%AEJeJ}hA%q)U7A zlqNUCMBEsx(%01h!D0jLW;Zq30?-2e>9_|;US1~T z;i3NVhrhRbbaZ>>CCLY}n*gfb!G(bi7(;RV&lC(50GJvurQjYJH02+D;Cpy|V7f2+ z)(OCmVfcOp5Jwl@vIi5+>7|QQ<{GN5h(uG@^b;hd8wa)gPvI1suXt)Q7eAeFoXK4e zh%{9e!P(xvNuNd3(+XR1P7Q1`!7?vz+#Y`3a~$IM-25f|-Dl085-bd#yu*{mZo>$e z^Gx<37*canaF51N%<-ks?&EJG*(vJ3jAV%a7|AH6CZLPNf|9S_MzWttn_tP=mykQl z@{kDjU@S{YXHHmC^ytyPWr8rSvNHurrQ7=u+1Th5Rr3^uD20imnh5sw?-Sh#d?X7T zA6?gH{wMDb-P6TL<-jN){g-`~F&$_4hndR}kV0$ddf=sGld>Kj3{{_shp4~%_>@aq zMenXCl*_mpHU)K!AgNq+4DXijONP}ZU=L9m%NksmJ((-&96T+fFHaaOQ+58R=TRwT z6`0o}=*kaW!G0E*7`48h&v&G1J(etwKHZax<+Wj&I(6N&%xtojM{CW&8dH|pLQK`^ix_N1QVWk$Z?$aTT@}{Qh;v>#% zu_>psl${1Y1AXY52YFI@+I{eGU^8#SGoEi+{yaq4Jsv407Wt6;Hj71^fd#yAPkDf8Z^C!yB&p zt!{hjeAjIpJ31pKFCm2FngXw7`2$JCX6@EH77Kd;z}7tU0o=o@xkr4kNn+cHMN~LtAWkC zL|-`c0#g5ybRma=TOkd5j#EJei<9+@B*PI%?wMTOs1}Cv^Vx_4a^IcQsK3h==(){f zxN89CnT+B8JN84vU*O8HRE{#+X8Ly039Z(wNkT8DiCo=>g-0Q8VN^M zye7AqE0M)BgrdM2&Y)Un|DPNXh!Dq$Ago-MJTAr0>U;})EaGwA@7u#6rOD5?vn^V^ z1-W^;jl8D%TEFw+wZKjqb>nFSm^Fu3ozuDc=>DS9K$ZjJ6257S3!>NG)ZNjK-{*i6 zotRICVT3@P5j>o8UtsjOdCSRo83}4sVK;}&9<{Ol4kps~dVJfrnL`{-vMb|z` zMnUQuNmAULuzyis{)>{?!2Ji$6>0=;Y+Z3QRNJL)UfEmjqGqC~aols4;UOrQG}UfH zL^@23YSYt;2CL!@5K7OuYL-N=bGqwCI#v!uRdWtASI+{;D&+P%8FWI|XF(;vvVIP> zi5-2`BJM}KNw;smTEN>bWVJEF(uP7TQ!4K!CqLtZL3*I(J^L9-I$-Q)r_kmHAClb0oK)Luv&rTw@lg{c? zwKhWw;)BY?7u_a`(nW`6QryTVuU0r|chS(u3iWjSsJh9f8xbJ(dk}yWKzjJWt$1If z)@593VA#(T3jZKA^I|Jsj5|fusvFEx?{sYkdQiLeinC}7!re3)ZOVpIe! z)Wx39BeNGZbdN+lCnO`r-rBNibb^1N%uO2T;1pWzj%>RDy@7L-S9Svwlr3`!7LN|w zp1MOOYLUuCaU4Xbx(gm|t&_&MBM7|d;*E_azp?Bl`)G4~V3;y=&cLOp@JV6hL04Fy z>mjI0cfVJR_hIwfy;HHpK*k_Q|5TguY$Yn-@-(nvXKu`N`In+`-gR&P_+h|UF4}I~ zFej1$O+?3>pp{Z0Cwsk-wnMAGtA&)q$LgX7vic0$4{lHuEJs`w*E`9QME|850wf_^ z{&y8ZD5VwGb!gy?yV*T4l&8w7fFclBf-x>(`@cJCdC%J9^vyptaWzV_f*Nm4vxyPm zm)f+d0*LC-i#+O2mRA;@*7XV?k?Xoiq90;X5*Vb+#pjNT8VkdM6E5@=B2ov`f zJUt+#x{FJF_Q=aJB|OI>QbKiKD}%PIzSc+fQry-7c?t;&3yeRZ`Ls+5T>EJ@Q3rmK z3@^7>X-|y_~gafH7e!M&vtsU9N zLL!4@f=a%C+N-QxdUye;3zc}p?c_z}j*ov4h>03bks&r(3>suY#iEtyuh*CyZYa2D z??L<_sZp0ZFNNL}2GrYBrTpL=OVeL1F^FTdx*T}_XYoe4?wOyyz$|HtI7NkSfLh3% z=~vgs;W~(LdOK!F9>TzpLP#oGqH@4lvxg1-Rc)lGSIN5?jocaH{Nac`Hs}zr+$y52 z@7J@fB>SSG_l*-dxtzij-=`zIO zl`Aoy&WN|UWF~}o;_Q&Y_b90pR@Z)zc4aS9%PS-p^42BsDU4$1d77k(oDg}im(J^u zgT>4tWzQMDjF=4KXLdXvt(;Q!xx1gfe_8{GL1jz+4q%&PZY;!+$M$MN`ey4Q%Oos# zuDF6V}g}Y;=-Pt;4l+u;3X^wVUGPxaoWKFNT zyzd1{36p6;Z;4Vy#o|4Dz4}f3027Gx2YUMmLmkF^0-An&e z?x_)a-N? zTnRx8@!0}iSb)u3{x=AoKJDZa&AFkN(rgq!(wf|s98#bM!zSLb?1TP7Uf_6(HRWCL zP@DWus@k$fQ~98!#NQNe@}ndNnR7Y0;lmLG=LjD$2?<%mIQ9#yqcR;q<-x-MYa2WV zhMZ{^L)m15WnrbwKf^j`C4>sdq8owls&%@gu1bb3O1R512Raf5^S!%-e5{yvkjn-i z7bQ`j@x00Za+4S>AKWuLJatwUb(cRi@x0J1ry6RB;0wyKL<%2RM?gi&7}xg44asj3 zA)%+x7`?IROt`+sJrqLcVxCXolSdqgH<@akUGQ#fe=cqSbZT$^8eTV^t|uq&v>FPy zoup>H`CxcA-fc>11!Im`OFwr8ms&`DukJ{j$$_GGpK3E5rZiZU@V?)WObRBvTr(|u zi8BezU|ld?&ZHX(e+7pI5y!tgUc3W!pr%1db)f(|^#k zeqQoQR*o9(a~|A$#ug}dmu0}N`G}r zB(rAZYis#X!Uu!6_%LBRD`ttF*IAX6l?y@^=Ub%Kh$&slrH1>5?aF*E8IcSp{J;~m zCH~UH19+(R-3x1LVD=|IWCxKvZ^W>Q*zlcYeh$Gyl#meb1W8BZZ2{GtlTHG>DZHI= zoY(J0TRSVdpn%QjPsk?X%CcN!nOmjd$?%^A4OO6!0M;ERgf$!L70K~s1@zp)w0v{1 zS!Bv>9|bF|P)WumfWkHwx|V*sP0Z~-H{F>#GJml#3wV057r=q&L%ga^;3w8hpXY+V zZ^j*Kfgjg%0O(D>AK?g?5!H)Z^BbZqUe)qOSGjG*(wyTqR(G^I-g84hZ4NP_C$G^p zS(46+_lVhFN-eL|RW7IOWoJ7s-z5Rq6zOnIDckJsxec>FD+RuwqQh-7gVd(0=FEvZ z5ZzkMLY8f9_y5TD{1i~i2@UalK9JGc4_`@BAXL|rN*?T3v|i1@VYc2g0pOw|7v>I$xJ^FH)t_K2Bks*@%!|Nn}hE z@VcKUg@q2u11-a1%R-W(E5xv4idM@zD`P0iBnZW{?fY*5sJ}VAA5RzeHwDp7?hxAI zPHO5&IvMAsul#?4mr}>h8`omcS_qPHhd$sgoW9YXOORP|b&Ii|W;d3Hgzyf8@s(Q4 ztp}lsCPl{Hin#eNCD??UT8P*G<`*8mR41oFhW90ujKC zwO!MGIFeNrZHy(vRA7`i|Mb-MIKcSgf5^ZouzTni%8&7e$^)zkwF$%!?@&fT0Jqf*fh2-Oi5Ap_iW>a zZlLjSe5>V<+?(9&XH_a2+?~?uTD0f~j_dmP6(lrmwp5BrPrOx?3=?N>1m}K^Zg4`j z3Sm+y(Hpi5yM4omZwUhp>a(h~|DgP8_M$CCotG+Yl|qT;$F4IS61%gC!9^Mvj1z9C z9&NocsUcRc;Q6V#t21WAZ$PB0vQ)k}h)%gRn{Y%`thihFHMJ4-+#%k+IatmT(CN7B zj*1_wp&?=QA)DtfLNl~Y$ZBXhFX=X5SidGyOKMEY<2JW-+`=d9F|8k|IS3`Y( zmR*?W)fD&zASSGgfx-tagzQGhzEV`4WlycMkjp^W>-|&;9IX4(xF6?N+iCvW#O#@7Amt&$TxkdNiP`q#^B`Te$Xc@&qrEL$<;OM$9 zn>R#yUZgslCt7H~8{&~q?66{>kJy>0%M>b+>z5qH5b$`y;zm+VkIYVX$|@1pv7ZIv zoC73rGDz>IjYcR4t$tjJOVAENa0x69OMBMO#QxFAA2xVxJObA)y(te4^)L-_Qch}P zVk3LfL6ywJS%Yy3&MTfqa8$J$qE79KZ`*#3kVE>E7we+$IdTiB zxnDVxz_ss`RZE+Seh46jv`Csvn!!s&I48E(_IpT$>g83tJe;A7fS|&I z;%mvs8H3kh(M?T>H(;Bxm`I?eThnf?!~J%^*Xb9l2oj!$C9-!yr-@vEucO((ka^8p zJ;0J(k;))2>)OQfD59B@ERQp=MXw5o;{#f<0X)yQddDpR4jW}b_pPun3-eK87}FyK z@kw&INuv=EnWmqsUV@MSL?=TebA^Ro4NZZ647y}XTgX1jtz2ibZI7tZj-HQ92Bgp? zD~?trd7C6v#_Mb;)V!l)4asu;_1?#HpYL)O$Tua@O4#DWrP8@%zMS#rCsZhV@Smtm zxFu}`|6^FcQ5@4Ir7Y`&H~J?QS@;*0USBh(nsyL5O4*Y>H(xi;;@rup1lj`@!h$w4lpr~P!BW< zO$br(4P!E&L|YhE<^|!~<(eQQVMHCc<(~mOn>J$eCt6(2=BOQX+7+yFSwF#IVe8d- z=>}1?+_J7mg?pLGSai$*m@USWl6&unrpb2Q44or8T=0 zg-8>SBO>(G0>Oz$5g;%f3>O;)hy}4ks9f@nIO(#9l0P1Vir%$LW5w!RpWj4@B^F8w zvXky{ZdYb@bZtuLvb7QN_*W2N@EuFtuG4I7bq!N)`~!2^sy)p@&a{%GouRuHR{c19 z9~NHmpoeM!WM7deKR5-FsgamabG}4MT-nFhCcey^WK<*yPTokP$*QfDdE!fvVKN$q zH<0-+e~43`rN~q1Ug?V;G;yBd$H&3jL4gEz3b&BFJVtJf&nLD+GkuuP9BGw$3OEv9 z(4ndzs>K_UVS*>vp9uJW4Vp0<-W8>p*MfKMV3 zD=D=&f1swk(E6rl%-PvXxR-r>TkO3G$tflH5C|O1Htx$Nbs%IZkP>!??bM20YcdME zq3{TIW^5}vo?u%AWM}79>cVsMmyk?JQ*sgpF=RpEkG?oo0&dyjS8^Pn_jdn}dAb^H>7ti9k8&#O@R(MlR*Nr8#EHx7d0*vmiz zrp^$~D~|!_ai-T!=m(u)mbIyZ`_tqUCm{p3xMNd2j{7c8$F<>o`^qq;Qzw8OHw0?n zzP6SA#WU&y00(x;i<|QSThkbScxuJL0?;h=!58g%PFaibtjxKFl!oDwhmEW_c|5@Y-AZmy&Hn|_T?@%o78X{(mzug zdgjZqE$CS7nJ@1GJ54N7-4y8!<16X}f~O$~L=VxL0X!d`FI5kVL}z)Ye~VuT^jk(p zW#P?}&f^;3*@6*e@Y6znpCtL;Zm25IZ-VT+KGp~EhoUzArh^G}2uHxbTxP>APQvbz zWF9f__1vLwzRI35L*sEgjcmV&xLe6JAeml%^K_zA4S}z79nB~OwHVgs%$vUA7{|)B zk08HpE&Y2n=1!vY*W+j^YVz$j5G(~?s2Td>kj;>j@oKi#a>b`*O4ywKA6+%m&0!J_ zg>tlC&l+I${4J%5$XEQx*pv-SRd6P>V(I;y1NLV}3}b3Ub@KJl?DL z42r_wtZN;@?%4Z0b!=vYEjQ9_P#-~1B>@S{5*TGLjPtGf2cl3uK~koZf||A=ZUxnc zgSop36mMfXxQooQ#;OAK^a!}1HjwSYB1d+PZa9q@v@D0-%vKg%E;_X%MI>p%ZzaSy zXjfVgLO$7UXt0mX@HN!6KmRCM3={eWTRb;F)3o*D+!G^SA?4y^<=F_PNZlm6QGS{b zXV=cHbkGk^mg8^)T^9V5bC)PD=G~k?1(kr8^^U*j#nI?5X)W*spznI5Ux;GT>@mZt zMbuN1OHstemFLI<44}i^Z4Ss!y?AL)qN{@xQ1h{^8kPlPb7hvF+%(!lqDdjrZSZw# z5N4WKJ?9-^0d04naqaR%^OtCUQO3|1(rGEmg7D#Ib3qa#rs2qEihC^F-_)NtFez!; zX4<+!8maJtc`B1%m+gfPWjc&y2yWc3Qdgump_)jD9Iq%mOzh}d+H}=-QRvfLZ>})w zJ?co@glSG~#5*CbAJ0*PSEIrVDSp*OMkplSm~?%CTu#!!SP=cpPGE-z~ol9mrc|KYR^OyG2~vFMsU&3R}xVL>7(*(ya-Ln#+J zA1g5#r6sH`3MgOMZtG`5s*U_3)&Q*Ph(y7_fgyZ|s#n>*tIpPvA8E`M<4>eidgQ+H z?&jJyo;s4;`7~-Oo>y{l4m}qTlE+b&4qn92Q;yp-!#FEnBXHAgUO=m77q>kCwbP;j zGV{yyi;sb_UWJQHaZyyL7XYcbtkAh1+fVbEWd95dSl{=D;moIgS(B0DKo%cjaUMu2 ztTW{P_7$ri4T8efrOV>KWz2j}i87kaNn?%`@gw;$gadR3ofk`JkoYaiJ64IgcT1HD zFfE-J6BpfP$(#$R-aQ}e=p!P=VdjUf@@fzR0%lCs^4|3~;3QT0r*lMAtK;9{!wJEZ zU5Jq3sA)|%p`}LF)^Z@I&OKZOAvaP~j-Jyr2@PA}hMLuH{F;ICULvN}e&L^>=D)`- zulR$`cHEcksAG4Pq3tqTy~rB+S6XLx4Cz&g`%cgiCe5}5%UVrxx|R@vyZ5!G38tW_ zZdg9=7HJ~?jER6OEOQOjv)_DxvINhG6N8*_?tFR^FWX7a^6%GF{I&U+M%ExUjXIzY zTFQ0oexst6kG1R7wtvyP1oyhYe62ngpU}O-Y6_ftdQ~1?XLf0!LB3WOjPRzqzcFiG zj!s&~2*EJ}U^k&n!<$b^|xL&>-Rr#{Y` ztZxpfLqLOzqQaL3Y;w|?9u|Szvae!{StPi5u_l?Ompfj(p$<>b>cr9~i?kHq_9&>Q z1GcR;nJA>^-S`%;v8~ipG?cg~N1F`$soq1$KM_pifQC!7`=-Ld|4NH9V_}KK?>d%N zvPzjHG$>wd?)c-~PLJ>;k#d2D)X^0L8>qMuX~VoFz6!N$p?g1xWW`F|=$*q*-Z@BM zBJ&87e3V+xQ;&B*!(Vg_(|EwxX8^`wU3h|pf!o1C5?uk2w|SZK%G*F7*QNJ>d7dkn zF`KNGGGGaRsG;aXAW%2ZLaJD8mvV`p0H*}8S+_L}SmRKvjFj$xo(%TE0rN5NS;v|}#usVWw*;(_(5 zocp~ zMwUB%N@nS4X}{6sW^ku6ZMws_W1_ey3J#@34@k~|EoJ20W(C#^9n@(n@Dd2Y2pUi; zhTEayA0CYQgH}RXw%WAOpTwMls>xI8c z{ICrRv3^6V zxt{Z%VO<(}$8w3O>I(p`^Glf-#*6IiOUQkPApVA1oWC#~wE3H(7aFsxgX)E>{^@7> zC{n#lro>t2!~t^pO(gs`WdL%v6OIKaXP)`x8yuM>^gr&nG`8;FD>(S=OGOiEwwLkQ znYkY1#1E2&`^qkROFv2zX&5g>{>O79nMJfUoMrK=)3Y#Bh%{qP87-B&$I1*MMAQ{444Ckm1@RSKX z4m41!_m*A~3NT_&KP!R|(Y&HsnQMTvvv4NW5xdg!dEa|}|E3E>B1yKY5L-Thnn8>_ z5Z)-vgONYh`n5>>Tm*-{;L3>=h-O8WEm2X6z@yb|hh`E@R z`1j!qXyB?$$1J{BD1c;CKg)EDMSHlAqFwW|eD|&g-Syh9P~9tHG;-}Rq*~#|vz&Qm z-C)>`X=$UC&G(HqS`nwi*S+ETtobg!HLt92UQ8^y_4eu&h}ufi?rD6p#Mo|ZKLPR7 z8@SUz+pBB@P^{3xsw#j`llCJMwR8Ij{hDu$qm8=K1fw^gyUf?kA4BR+*eYiIH%n6; z>k3g*{H3Td4{;6qdS6oz&#O~mn%G_7(@TqobeiIjBiE3zJ1mWzbkAdoc7Jh?sHV@@ zAAUUnqtYy8p6f3ZTX})sXvW+e_!WLLi^Nb_AQ5#1z92V*_PUsx4xF zm-wY~_Sf+$N6wP3L|Bh&11U@t-&RbI>dzG()^#n zijW_5AqeypivfsQX56}>H@b&VmaFwa#eXrC>bWsMKA0eD1)gznY#peGv+rw>6rZ*dRv{hZ5am zx>Ts;oM)g%$VMh!7jgc}?{pRZlpH?;)-QT-tLEd>j9C)ukXz`I`LB$H?E)Z& zg$AFY6ab_ibPnz=7T#7xGFmnY+2jbdP#o%XYfZ^H%k!9sx7QedcRf7n$zzQl|49uI zv)<@N$!o=^lnvFg@IcawAy}z;Eh*F&&kYGP?^~$0*tWGHhNgF@sId}W#p=u`mu!}& zl^nS|;J3ZfcGUusR%hmqUMmx3*J*i86LvqNPvf=1^IFR$oSsaqy~o8(Z#a?P8lzCOz_*oA3YWcT$` z&&Td}!^yf_u|u%B^_h2ImteW+^bJw8p4EfDo9C?q1#b!`4zM-k zE7iro^Z4a*n6dD{ir$YA^n3&4ZbA~{A1FfF%f{$7!kmSN`l#WWM#(Wc`Ds(@HXla# zWPvzsL6U<`whGSr3JQYe3uM2tGJiL5X)xDQ{uQo2btNESaGd1s*#xBRu&7+(oNA63 z*f%Tr$?T^t7VFZApB2_=NprU*rj>;Cv+Nul=>?}`#xOrL6{fbctn1vdh75B;Z1MP{ zK;edD)UQtYb2ZV(u0+5evqo<687tDh2Pzl+uZ&}zdmNnh4m8K))x4=_>uKglxaJ-o zZSa!gT$QCJm<+ey#$Iq`nq-Rp##^FQYMSS;gBz>GHnsz}a{@roz;Ef@NIuaatWhnB z-lrt%I~fR!TIeYk5eC0kwD$(%m18$S60Jbw)h_;X@#5(1i4*#;QcLaPJ2v|3Y;nQl za}&1|hRt+`{H`OVJp8xk2VW61kR&vqkWyYq{`RN1e z6t*HlIFJEkNe;23VOp}mFbpsyqQMYZ(86!on54+wC$D% z>KW5xO_F%OUtG>Pm8YBOC2bqDwBQpdWL-(dwp|Sdv}$*dYXuL}7A0YQH`$?t?{=AP z&;d)@Lyyl?r2IuU(G;}%OQfYqW;ZKSaHzXzOx|Gcv(S*MeSYN;`uU@zFXU8Ocx#(K z9+Gw}?tE+YQD)86UM`6sq{O+J8@Ly`Ty7fOJI7 z6*i2dze25H0-L*TYw4BcreXwjnyBA?0+*juwmPpYE#zj@^-d(FD81^TQuGxA z?MIJ$ZAuP4m#Za$noTV^2|C9eajN5j;_*;uO%fy*wU`Ui;jo^_)9DeP#dGezgie1; z< z`A{}eKn-Tc38idFlFp0wjY?hoF)B?mmJ1VH``g{MZwikqLNdxDQp-d_y}dAE2Uz?9 zxLB{y9UeUZcAb}KD>glq?QY7!Tu}@t=<6zhdZkZa(KL4GvP*=L6m%H!^WbARNsoqG zyZX=Y^820YVhGqfQ`OvdLrb?&fov9M>xrI7EMZvKeu<$Jc0YPK^Zmfv`Nh ziqrhU=thNM&V?zk!0u&yw3G)nOzpKqqgN3<5zz_UaBm7(E_Xo(@*cu78`n#^p9X zTP#OJlcO?bYQ=r}4^15;%MEDnCPO1InnB1BtQ7tG3SSXN5WBroQQ0cPU^FPMpw({b6lTBB^}D2e#XvfCc*`l4y9K&T zO9VIt5;G`A=g*s(y>@9Bau#T%bgacu19DD@#+rJ&il)=S*c(stjALmW9RwKHLc7#=N(Qyj0iQo zxZHy$<-2}f1PM)P)0CSbd*Z%Wy5IqtbGAA&3&8b;3d3qCwmhHUD5P9}W{i+1*bwRh zWGIsHP94E+`w2}+b+;Hi943>1U?>;c+BT#<^PEa7uPCN@c17HjXZ1Uqj-!G;Hu}L+ z)aW`}j&Nn`{2)2vUjytec}h(F819}^^X6(c+ktJ(2zjKbxy?IyLuO$~w6_|}BzM}q z)E1)AskoUQ;z|ck+V@JY+u&<6iGEX-oEsY_u3SSwWLkjThHN%2(t;#lim<-W1hsC& z&gQ+}b742Bq=boXz77E{yL-$0Opc4V%kJ7@P~5mF+vbe3g2y2bbVVxf$#4UWMMPo) z>&*D#ae0r1^P4F95dyQ9fg0`Q`!Zi|tb;F}sdbzn(Z1 z6FE+j-=4bUU`=Q)V7`Xb`}mz>)5RP9#?Cm7WkF77hJM>TQxg|gKRfj0*6 zB{gO(Rd*@d9}YJqjE|_T9cfKJPnc6&xAegyuqQ;yv^bT#{*XPXz~h3e6G9b7Q4>Cw z4E8SeYS~ZJ?*|~)l5z0J%{lE;=v|$Q<0oAbV@H8vyko? zO(rtiP-k<3%g?N#XoeT*erDC#+Q2?-eh{N6+#^53@$N;GN}ZQN#fLM5w;D^q)2LBY zL_N|PC>7ccsn4IghqNf>N2Xs}E{Q2heT@ zJ^KM=nY5)`W;Y%7c71r`_%;XW>NDPiR}#0*K81m&*9t(;3@c-3-RTr{oCA2ZA{dY5 zxXOHHD1OTQ8~pG=V^y29W`pgE1{jSRcIsoSc8TMmzB;kL-!#xZJ)8Uu3~scCpE8Q_ z#=c<9{^f5CBzqRtW^Ye0?RE?1*LVWaJu`v*6X=-Nj-EU+iFalE)HTi-v@Yx3Fel<5 zdI4juSVIIEZM&ZlYGImwziaFY(R-E-_fkbT;y~pi&es-NVaYf+-ESaY|lSlrN!KpZsx>FXWx@O_~YgC7)8`@vKj&RhH)*eFI1$sgu68eL9ou7hL$$}{mDx`AQ(jYl4 z$ErC}SQND)Xwj6Kx9mzr_Z%8_ki+1F1fDyC^C0lhzoG3mJIy=czg|X;n|42o{aNV0 z$|T}xPH$(EJAq?};i^7X?GR+P-*|=CccX`k7Fq*QmFsjbR2BiU`-pDT%bX5A!bs~cUH*y50(+MFl=Rh|uLyb;em!nK-m@+#2oF*sb<}=?;J4L*$L_pc zXevo%uy9w5n&1q#3v^Sz;#oKBxdw)(W!iNGUKgcoo~4|wu9V!qnm+TZZQ;B{X}puC z)Y&cULOkk?54UmQ2ZEqPjwGd7a z;+mF%%)n2=GUU)CSA%jw?%PatP4+m1Dv9$NV;VoWTW@FYbK8&V{pNfz|K(rn(8eoS{qcew^z|pA_;B&?w%#p zaVl`OPpH3=d~^{La z$arK3@gq6#Y~q5o*crqqc$d-6$E%_w9I}YiMeE)vHCi5XtJN8aPQ5?X^z&DPuYX?+ zOvq*slbgxiVJR!hsddciJDjDp{t5lvEZjkdoYq7OZDGlUP{3xa)inUy!Ih@@(ePTW z1E)m2)^LU&AAe8LQA#jI{nv;zZHZF3tWi5Pf9p{`nJ^Ixq6&GmSZkSlG-bj30_1l= zZq0R@Ot``8QZ6F#ig$$t>UKWT*bXTrTz*+|Ad5j)P_TV3PW<*KyXdbY&v1f;-GQ)R zlRZDbpZr#&A8U%@A`>5V<$Q`>lABo7Nx(|JS;=Ifk}6&XW}C@72|+xo_fB=VpM_Aa zydcVh&5~(Zv1Tsv<>WNBai2#u{>#~6DQJrgkC?QsyJIfmU9E1&8HjGB174GP8{QB) z!Rnee_$JB^cg>1&a( z(>6GTVP^;U{WH=dL&;;=Tk;~!XS72`gAI_(6BPpb8^T{Z--l><%P6k~w8R!~(fl=R z2|49d$s8Jhpt@pq>-W3e8 zK#hn&vw6;tIF79&2TF5ol-V4A*)=&~IvTZ>x{VyUQqFIVu;8z%esItSX}IVkm~hb9 z1I8rO^Xg)93Kwjt`1}Pr9$6+1=e9(gjtS5^;4CLXg+|V|?^D^8BO1|S!9bnP1;f$- z`a<@>mb&TDfr;G;mpn7`Flk0M1G zYi?(9UsMPp4jJwJVA~DNcTi^zu^E2T+MEcj|FrMJh#;jnWYju0EP8VXUvw2ZP-2vr zYdukkUb~$ED$3fY9uZuHr}x$}|3u2UP7FGqZHe2UWt)6<+W;Wx!S|$Wyb8*;S6R`gX|Q>=Rt&4cz#@;WE-gb7O z$+{~3ohe73e)r+P%kcUw(12rteQ+N?F6%KaMkJu+>H)J(xDm@$a%aH#IfIiXAFoD7 z+F|jgQc6nnBHum&MY>mB?nA!5Ah=~*c?Ar8Am7nj;%mDVfh0$R_Kb}UxWJX9&Cu=q zel?!1B@|Kj15(h;EPjvF6xYfD3WiF2<h3M0>e#wA z(ctdx8+X{ayIX+Z?he7--QAr)fS|$MJ-EBOB)Dsn^U8PLbG|!n-@bpkyT*XAYwkH$ zO1aRv7uU=Ul#G$QvwMcs1817r(d9v;GERiPA!xLMwHTYc+bG$w`t!m zt!AP|%=ti6>$Kx-u1z5OgTJc&Y9`t^w5av%P^4dt2TSx>e41Xp{HhfRm0QYmWn<9 zRZ1>dO*p>T1wEC2dI9Wcld9m&5+Coaa;S4+ql4Bk-vC7Eb8_0$EDdlsr^_wsf^{!*xZyy%Lu2y=5R5javlHdgo5kR-YNb7)SEMQRaXy1X~oazv}tP6bj z@@-M(4j-;nAqP3iB=QT6GU%9(NhH&TJ%4&0PxK(jJu5ggyC)-314~N$na1qE$Tx1A z315imy>PGD?^N8#HZX07yS2Nz zl4B#%ZJ^%od$pcTCLCe|3xh$r#~Qx+P`3zP@yr>mFT-bUWs=i0f4lHrA_x|Tgfo@0 z77E+cqi-Y~;;~r^H4YE{4#}%s)`?;)Xi{*|)QTxt^!^x>tXBljDq8BRc&xcLDm?U+ zPE+_QnO*zduVMREmO~)svMH~Cs+yvNpZFQo_2%-tK@)F=fQG|cOl~SIrbKFO#}690 z8oUz84C@~WtypUSiAOnM)nygj^;*G3oAolYCTYd3!3EAylan9vtv0aVlvbud5>M8> z=gKhB$wKB&rcG24?iN3femhdJ>f=W9L(4$0AEnS?n`d%>`1VV$B*L}SNSA~ycy|>E z;a0ZkfiUWRthKpp$n!A|3j3oZKYIEj?{f;oMf$i)E%^XpdDJ6qz{_{n7#5z~upx^g z7(B^BCoYPn;fIThV{d5^fh2@uf}$-2amO$TL}yhp_G34Vtg@n7bOP24Ok!d&t+55Ru5VY>B$aAZ4QQ2# zFJdC`av6=GNWg)LniWIm$3YE4%X`s*c~R~v2e#VLVJPVdQBsr-W=Kf#_-~;4GJ5S7 z-M@hfa&!)n5UjmqX7NxK>taSNS{8W=u6myH*@KQOg$pXg<1eDHVFZ)T`&ru!Mt{~T zS{FR1yVpSn(P4f$AQLT=eAUWuf0&Ywb~l9e(tt7)P^}$tSAdzB&Uon(e}3G z93;$Kp)4@Y0F9yRp9g$zGPF}I`0k-l;IT8ej|26wSVo3H*b0i(#a>(zMxwQY=e*0;^wxV+H$?5P$7w+0p6u!8uS$r%29(0 zs#y@Ri`DA76qY#b#g3!;7v|X>&;*nP7cvqiDG>}VYB%^x^K9XPsg~_Yc>QODb;()) zI25hUiQ?<|k9+v1oR-M2Q3ID%u$;};Z;AL#hi!@l*#v({vkDW$jCqJ zMrdP|We@FTzw_0Bi1J`D?O<#*CmPr#AEIF@h+aZUEjHb#9v?6!thLwZ&!wGdQYj*N z#0Y_E`>nd(|Mj8-ax1ho5gi^S&==T3H}*3mdeu+(Fde&5|0gvUCSL z_Q4~FOKh-?qx18?!UL$*-?JGzZg9>B7RCyy55cp&tF>`2<j_uB`DU<<1LR zH{&lagtCq|V;|#E$FfEZkEsaMOA($)-9h|*k*@}rFYX1lF=75O5>t?M?YZK0 zdQoaAP&-?>hT&fFy>v`;z6Zq>4LPC1_`X(CW^p2VZv7LgBRnaJ?EBP%Qsjmkc&<8~ zvzU(&`fbs4qv}qXtgxwZ3(fnoz!&`fE0dzDw?s2}lZqpYkwFJ4A}gTWqylm5-WQpA zviB#}Z9W!9ALs`cZ3Er5!a?9~D3lldsG_{vVLc+ydJP)=Ec1uea685!jMVil0&Lls zLj^w%6EPd5#N4J(X!$lG14T%r5$(^NnYX5$_aLR@B+_i)CuZL4*i3fb1I{J4Pr$C; z-I7Ik_VH!BZ0U+NwQxc)iksZ;lMa(UAc&X+Z=pU?niO@$(@{rvSOeexLG=BxMs)o> zL7CH6m^{wFz-fkA{ZXVq8R;z#*O#nb8a1#ymi%ggRy8GC{451;abj;%Vv2(`wP*Ni zvYIXnWkzg0ep$pO(Tx+~j@?d^#lvT3Fx$kZW&KH&yItZkfeRJS zRD7U18G|e|81B-?Q{$6zG-!HeD3k6tb4UGMu{dzU-=&gRoD^H6w3%~M1M;LD;dkOv z!kk+g(o!oBslZ_T$9F8H1^5oZUGp=H&NKYXl2OxHTI0Kv21P!|>Wp-jsT2&U7A!1a zJo$0padNDm|7>qr#KP`5a)>h25>qQKp7&Q?4wEqV?NzOTN;8ZtsZ zY-!~eg<6L-F`DkGQj+#&dN$%BhdDkEA-#tG{dY|Y#QZUutfuEF#vFNpPsS@!(oBqL!LeN5F896*5dg$RS` zfixccZk_a{dom&}Nh!J<-{=PJYzpiRkcCixoSkRGv8a!g!CyJj@WbU4`AsSmu@zcK zZtS{N{<}S?iyGmX)JSRSImW)ERh$fw!Dr#LFvJ(4}0ndzC)O1J!9q3B<79B z+Q&Y^Ae{%s_4}Zt5e4er#a}BG@@-MaY$4x&V)wu&x1{t1wOJ5_TJ^M4^U)^`^cqX(6i&(drfLX{&$<=yqbzJihCze^ zk773YDg;(5%BKQT+3aUqyN_+3uIcB-f{?Z}pMc9XvNOir($Q&>I2D@*nqVT~NOT_( z!Dx}dntGODnUao^gV|IkadgprHo7aa5YhC?9lh8QJ9N9dB$8|^TzAj^$>PaVT#Sfj+ip0eSQQgCq=UukNogphJ5~T*B zxbEtHk<*_2n2r1+WW|gR{9||Dt&8m&Zy=38g{Ili0_|%X|62JsHqPEuqD%EuquYsU zBz)7C?XhX{;v-2gW!;Y#4*JMKW6JIiF&n=4EyQ2hX~K7Hz2Bd8D>OJaGLl@BBk#fA zBC^(TD|A5KX_rS50K3(}R$b9Iw3O8XqShlz)Rw<`97dgmlK+%_JBCzuYqWKuP2?@6 z>@e>YlNVqs6Bl5q!$jrUieKxMyJgoRL)OGVjt~RnJ8sl1A?{qcni1ONjjIvnDT|^S ziv@!nhj=#S-<4trf|<;Ifq^VR?05Gk#o*t$Tela$i#jx`pf|P%^BTO8nPdp_j%=sz zi*IaBZgWdi6|z+w`S28xD}=cFz)Y)beTludtNI*Y=^@W>JU`uUY=1Co)mEItPQa`J z6a%S11S?w%bB!fs>?SPznZR!~0mT0thrT5pKDAmE*a8dkiWDk)ITAmE2|_QndZ@E1 zK?Cxdc#J*-F*JzY3v9qSGnmy3Y}4)a=`qyI)7mwrY4NqvRPgbMNg~}olk$&2e^o!H zhE@yw%D(U(9S7>MBoFc!+XU1h)QSJ<^j*b1@Z~0 z*9TK~K&@86r!MZJuC$puoeZ`{C*(W)dZ?gZ+Dw3xiQT7T>N1uY`-O#t$j*0`R#_wt z=vs>P0QHF4YxlI3LIp+wHdkG{4T^0pv}H78PJ9TG+s%YGtZR#~HVDUK&!2yi<|RI| zbI`Xme#$VNnRBXs-`8%CmU%)3f)h=>&K^~a`(dkud5%&XcH1wnmH_A?3aiY>MbMPP-4}y`lzCr7rRxN${bUh;6 zPX@2E^b%NoVA$6Xd=|-yU(ADgoskS`Sby?tVf7P{Gijen;v<;bqR((+vY7}dm`6u- zOhle+wY@IvVRc+nTpMyQnf=&2VT%vO)&R~ulmM(Bj088B|hx9e|eJLM|x#nn!QK7F~5 zI0Y*RO0*FUMKO&Q!P2UrKHv?SE1KY6>Yw&jnZaILrawbfj4Nn?_gmEIYGk znT9MKmbyz=zFmhVM`T{^(W#SP-n`0+v<4;Up6C>IMM>xA!_8!tAe_Gm)(Msgm^eq? z4h>Q^YFmvCBVIfP)s|*_`Zimo&uAnY?~;xx88WtjWQ@v;1%c=psgW3$+zu~_cHgNI zuIVowQm&*9v(t!4Bgu^vsj93z0d(bVce=6)O4}YHHW9c8W5$1L0>JWVGw-ci){LJZ zF^{9P4L>2aTVOMbefOy~b3pU$3i#P*0aM)VP3?z~4Rz z1C*rGqAsvB2dMFT9WbuQrQxR95z|}!(3jQrz*_Kr;J#B2@O%?8W}106 zR`h;qd6iQy1@#cG!mS*r5}49)8OyfUsLd_r3O~A-)b>^i>1N-+k{KIR1zkfu#t+%U zMsR)5^*^d9#JI?vJT+7^DwQ{PP9sxf7D>iAC|a=${r2;&EqvQzn8FxXfcn*r&WQu& zqlzxRhZ`L5mfEguklU}}W50Qv->p2)jz;X zI^c!4?qmG`crBr7{XDhZgO1y^A~aw7T4pw&x--0}#*7gvW76f@bbTjBOrmkO%8{=N zngX8c*w1+DI8@)&3zl26+;|v7A3`VMP@)jYZUJ##gyLMS^3IYO)p;H?X8MS*7O(@+ z!$uyhw^D%<&2TapnV_E0m1K#W!F&me_jNxjiU6h8`_ydck#qn1*V7v3(6d+^;3+9V zt~`?r(v`W9em7)0)dN!@vPPtN4)|h8z~#+Q`qf>+vXhvg$Z|>2N8);=l5wWD(S23C z74RbMR#S-2yZg$@g6Pg=Bd=VB)0ozekH86}ib2$?>IGAr&} zuKz(#EE`nwSc)_WbtjqufuC~tgyNOQe!sTn?nJ0*>{z;XjFseAcuuf9F%A-V8(DIe z@hNYY+Q}|#ObVO$Kq(LRbylq^PAp_`BqgQ^HTOP>Xf8s`iQ&Ruf{K#5GZ#JIaf0I3 zptmSoNWTJKpKHNCp;$`5=?Iv*8aT@8qjl`r9A`#qi1ab1>$Es`!kyBgB10S!#)_N; z4E?)fA*9yI^(L&kBwVq`)dnZq2*zN={!hp++&7x=z_ec^JWLAD6HI6?N^s6%~gK>W7)y&^?(CIuy(gcEg$}8`;=>)SA2ij>r(NPOUsqODq3|}x7Qr_Xr)vE z#ixFkHMCxnQ&i3&tI5iHKkA@pz zehL(#3a-XGv$km`L}tN?ERV8`I&{TJhjSYx03TsQVw;32F71d_q$SC>=H}f*DOs{n~m7et(vm1 z&sC7EI(vHNl)g_CMc_6Zj6!^1lkSRs$imx^>pRK7(AqTpQ0<)`9jpZAYa%$d^`}I3 zK9DB;^Gbp}9Ckx!pd_|lEER(4e({Msy0}5Iqk8B5 zw!l=K(j?%uf5Q{5AJA$Nd81&=9MN7%D5nV)q&{F0PncPD=JEXe11#pN;E4ee#AZD7 z;7=-hlgO4tNS7;n?X?JE`^}cp_G&6z5ZG=$gr4otZoPmrTa>*PqfhhFdj@BEc|Y0B zKuw|=-uf@Gj;s!rfoHuD)XE668nTmLYQE;991Hn`b!F6@Bdu7y=4YSCcm_`kJAr3$ z4PqRdiWIe5=><>zOpHU~x7>mLL|?V> z0q#Ox&`CJKpb2ZSUVn{R7WYCt@JTWA2PgDkO!87yheT36thP=Q5!9V(8&_SERj%d- zGmWKIt7)SA8rfwUQSfv7p1aTcdD0*ZRbdo;e8y12UWSj&u?s}oRC5U{nxy1D7)LxH`xwD#c#yo4nM$KUkI^qs zYLf}_OfV*HcjEMVmujE8f}jFA+EW7Zi~7%0I6yo64o7&jq|=93Us*&UCQZ;8g;mbp zVnm?jh^oasyL!rcxpMG9eOfV8%bA25)zc(&UBreNvOZJ^#dC}H(TVxE_KaH`yZeA= z*$gdAV3tKfkOh6_KX951jg^CW3HYLq1Se($ts#;sRXZxwV9_bfMp=f*)lu+DMIkZ$ zplz);`xD=kWK=C-gEim`E*EqjK1%X{PC}cWhT@m7%*PElPpb3QwmMj^(%XII@zh5J z58bwJ6jd>E%k~+SwxAUlD=gI&vp;Z6uDei$rDJEcl0KAw^qp4;)|CXQQ}p6&U|@Qd zG0ze>=0r_x%DsU9S=pt*NL`;!r=>aMqDk%?XWDd$+E4o&;Uy_yuC>~bSfX!XU0&&W zlwAxfepc!o)~rT1A@Yd|BS&54G9B5OVFY4MG4K?9t898s<=*chzpbgHDd}EeAKIWv z^DB7l0+oLth}4{94nWQ=Mc?Xfx^cJxeSCqCOBj! zgwPaQ{d}y(w&75JjHWb=LI_dya>Q9H!TGvK$HvqT!WXpbJl2-PN%1wLAbm1BxI2&T zb(3nL8zb4BvU`0KODdg1Holf5;>@{efuTOjULhAFASL{RTf}$Vb&6n(ld9p{eLm%n zZ7B2(>oM((*KLZQFp#2}VP1;KjTtmG3w#I~le7$xtF!!T2gX;SaedX#`t~F6+qGkO zgVmq2zx$aR6x0erXH|8r!pAEINV+NQz_zg=y`KJx0~S(N3}CxTU%`O>(lTr>#rwJN zt%Uwe)YLQm3x^s}^d@>n!CQ6CM|oIWBcs)`>8lz=ZqTWL&NF@c^D=*KUU7DXheZ}r zLk+&&+@wr&@ABzALE-Z@9q|{3>SlpX_gy>RgHOuX@sfDiy zc-3z;XLqtjVz>(2J>xpsLGyS@_OzS9DCu`mB!;gw0-~O37(jh~>7Ph1c@&h#cBa z6rWJUOtztnp0@=`#nZVbVjdb6Yny}5Qz>5h)VvP1(%zJHUJ*fNFgq#$B~C z(ja-yKz^DI$*-tE`9>3mUfqN0=(uQTg#a6ZD$7Cd#JgJ!?U#e*Mt|}wUCR3%-W8_u zZoAwvDpTdA$cg`$zUK6XD(6IC-*dh|pyk7^*NMjvyH7^e3%_VZlyEp+9%Oy2dXt3hTmFiEw2-XxxgSkzzGL0DG7Rb4uWBZdj^$QwJmR|k< zpCH8X0#+ES?z-3 zNkI_Vz6FF^tJ)XrEVdRg2IwL;mF}e;xQ>a;6l_UdNYiRZ8=?-|?b9SNgP`Tm*P_c- zyO~^kbE$>kdGqlwLdr6{{OC=fH7OD)iUN8=w0O{%ubv~9Y}|<7oDL7DCu5yFn5jjh zI?QT;d;lyA(vY=<2eZe=R)Q? zUcSWiGxQ;OBnDK%TxwM8_Wd_v@Nf%q6YJebY30ywS8R;)5(4QzTi4^y=hEuv_%=#Z zzslE`=03Wlzty;WIS}g^OGZWfoZUOTxi%u61IOD6+5u6>iFijN_bNaO)6**u*zDrm z4l2S7F4Csv)U2)9GRd?;MaFW^%lrXfs$xM+3^|6#I2My3<-s~VuXA*S6sIndf)XdW z!{8#IP?9Kmf+Ln9TgZ&)Z&tb*B60opY$mHs(`r-NA=#w*2x$B^&|QER}l-gz0i@q&8 zf8pf|f}$ve&VIXxr0snD^=pltuT#-4i@s7+an&-kqTzU5{23-XMlOgr`!Dk2a@9^T zO>%d4Emk3r4I7=BlOuS@VI>#Ar`e&Fbe|}TlFO(MMzDqbX)#ouZnszW>UUQYStfvy zApupo*-8@Rl~@kzb``X{a!<1VWd9eu&~aQ_wiWwao_$@$70} zI}hq!Y4)Me>gWoD{p5)OHdhAKS8u_PWcYlT4$-;(3jW#1zrE&5wLRoVj{|e8s4|yg zP%>WbW*!1MB3_)>w-%>i6QMMzmv|-A>M#+c*~Wq%lu+?8RQINW*^X~Fz?U;kDd_4b zXZZtExD!&*QH=yyy508 z3q(Ztfv4A(S`d>vT8TR@&O6r#L>q4B46{_95k2}t={s)IP-EhE%1@aYKD}+s5TO)& zyRm=4=!>=gmV>QeDj}9JE@0YHvsR}oBp@Pmv~Rz-tb_=nPF=r@hsXoRBaKBI{iciY z!l$gNyxnsLZq!cx2v_Bt`zW*5HYvRR-OMIHEi=K3$Mje=(SVU&Tpx#J^V5rBVnyvN zW&1&tO^@NIFd|P{oF_H6uSy#=&Co1N_sjh#K>M>JfvV9O({b{~ptw|<3h9dU33j)t zw0z(jxA~VtBlm29PLWkc@p-7ZvveM$hIxjn>+&E}$Z7Rtf2wAA4eDy=d9-bR`e?Kt zTb5{(FG=ca${L(l51v5?I+}BS)Lih^KE5I#9w?NpOM;o!eK<|YF;Ai#K2Ah3KXUTo zd)9nM>{7np|MDxpY6BcC#hBW?Nzmwz;jwi~Nkw9tfUVlXTaehFp{EPjm_`C+^t>wL z8@^uZZ27^71Oe~eWX~jZNTf;NYT7>>q{oOg53dX*_2j8!_ruG^7HrALHea2K^`r); z5=;Q>Qi@Z!;OJ`1#IMxyq!B83qNrZ?)a zPX%o?iXk;ka}Uul-iYY~knt084nFz1>VG+q8dJutU<_H~0>`;5y__Q?fT3(DwY*ZKOJYYDc-xON&?4=ESr->?^mgBG3=jk>9{*+8*B3R0H!K2@ zYglgE!mXy@0P*GCq??p6m})?!rvD4*uI6M!?j$={nos_rJ;tU=94rg%fgB#aA_{IUn+Y<2_@9#T2-}}0S_Bo#u66RC0^0;0Q?YsaBJAPBxhSFz!mh64P zlhEaYlK3TyIDODU<9WCbvgk6qY~`R|cx9YMjh&|Cuz{rgVP>OK@TZRJta*zjTl1gE zjm?Y`Prt_M+Z7^Ot4i@tjGHsD%Bq~;;k6j(r$~TCMTL)N0r=R-t*KV^RX4gnzLIOwz2-Yb*p}SJpU){AF<$?jpJIAB3!R*+p z1F!rN%ukx~b8|e@5wGWN{<6A-ctaTuu1nyucrNbI2R=p~c|%><`jWOz`9e{WbF~%> zQ4iTJ#|4l-nD<#nR-*$Pu=ZTPvt##F=w<>vi#r#4w+ zA>S9gfKQ(aNsH3@qTwpYMggKVX+a?r-dB#V^d2%k3Dim*;nvm(V;G6sW1AluzL$=pTNTqk9DvneOFKv*`2u`kMYx^I~SGRe~a6K@vDP0!V2FC(nGmOtu1)|(OIOYgJeXOQjEDhMIc64y(mrh4{O z^a~fH@zq~hbx$3F-=p;&&^_f)_}zGS9&K2q7}IxjDHrS7FM$`35id`UvRJk!y;UD7 ztwSNIy9j$^j*ZG`!X;Yry*jRK1$W?bWCvhjI!cN@mi6#H+SSNbc5%Q-W^XjAPXkCF4cDM2@jR1+sOQ+0Sq#qS7;Mf!3ZVvA%JooZVz~- zMd}8bW7t{!*+#YN_FSRgi5cPxA}KORn*Al{Qfe$_(8!-I`WkjzE~uk?w^-^9eiXY8 z9~FNL!uFIv14x**R2HH<;&#nyn?ZJMSy!z|lSL@l3k6iYiKTh+-2qVp}m_Ba9`P|X3*Y?xxr3-i5N(2ZRu z=8cN4w%ItETTrndZyFU5{Z(L%tNRj`vJOaRO>={aD4468)^Z1e zk(NM$LmN=jK;fsK4cjz=iF-|Cv>DFu!M>{q*?u@L<*R)$=MzRz4Nr|>u4&S)Dnc?a zaH|Sp2%*($c{A?x)-{BJJ$S9qbmr}FaysmAi=u;>RheswY@TMR-(7i%`eLVAUzBof zBW2R5vB$XOkK4KKVzh|iG~3IkJ6gKI38$ghZ>TZ)s8KcLw$X7`Wp!83?a$-mp#9>Vy{4LGJNex7N4~YoiblDTsSlQap zF~h4YPFfs>GncVR6T}Ys4Rg%BOV+)T@66MAo_;}i(~@Sa6k=Kq=XwoX z>CUtIr5OL!I{#va=Xeca)Xe@RC%&uQx($s*owrix3M18c`*MAoSHA9Kd0@~eRy?Ei zIgGl32_Hg!xN4}kF|mK0M6_hC9X(^k5oVv3PTzG8;uGiRO4iX|22L~=0r`n@+VV}> z^b~kxV28?)mtWHwSup{R+$vp>*oxeAc>{T-WyjVIUCTyvNJo*(6VRCo_;*4}(VpsL z)Ym(JaS7~Glf7^Kh{}r)C(O*qIqdXB%^z0qi^u!#i^v)4I~J0XDUpgHCBHL7r3tV0 zm~(N^tKu5QxrbIkSEddK$b@_m0epWf6r&qzyhsGwA<*wbL5}k*)%kcA?UhUCMX1Sn zDhN|lbUJhx@{P#Vc28$J3&x!+h6{lk!mC0HT$v-{hhXXrdU@x4kgBE1Li5Urr$C^d zs~DPos|bbgQ=Ta3$oz-?1yJ-+>PV&$*dg_UV}3=?cyYg}6GD_gde5^RqIc+R{#hiG zxEk-oSPVTy<#;7MO6fw29LIz=76MX*ShA50af@KAyE2#vMLr5HZYfY&B`8SNOCX!5 z>j$FQ#uhdI@W4C*12Fsrx>uu;x=SsYhvCFpjTX)M(O+J+&bYK6o|l(L+8$4ya4gFZ z@D?+enz)SMW5C0M-#02S;?9J!z%p%Ra%?-$oDfB;-sgC$9z8M_0F@7Ra{OpN^9LTw zK=EU4%)v0i&!kdVVfA0?jI1Z!LKRS*che_s{m7~Tg&iOAD@l__=$Z$BqamBWj&Jt# zi{--aai;aE+eWcV!|G|xSOT>DQ}{-{&NASKSOyjrU!b`dtNvON7G~l65+oLoR3pSS zzPBlkD2Q)9iWo#SlJ(Qf74+xhY!=z_+THk3vIzN=zK)?7DA6L1cWpQihbja zzPPJOd$+z&H)60w&(Ca9gTdZC54_&<*i0zDBRi*^28U@aCr$gjiDx5_icURTOc*0F zkG^gNxd80mNH-3RAIYOHfPOIuj1vXq89K#E8A$V`1xpq53@TcOB;`@mPBTf9AK7p( z8e*EI#~YUOw;iA7r%BFXut)2Oc*Sh+DE}s;Q7lwC z2Y%1V?b}ag43n16w#RyFoth{iKqQ&z>k^;;vc#%s2y|?QvS+JI`VQ^j8^ZZ<`!sUX zp6`nE8E^@q!ivEG1^8d8i|1EW+Nge1%lX4nnH2?+1eqG@=ZubR9{%NM+w!7wiB2-0r%& z3#hSlrl-KIE66sDMH{mw`V6NKF-p?u!5#H03=V}J!mf7F?zDcJ z%~-%HHV9#^wZDHgc~asN9@H*|HoBh9#ZP@55 zFVn~02vsfD`Y4;~MUUt?#fR-}i6xtSM4jIsF-7Tv)QT@9^pTsy*iu{EA|t~n&bvsD zzUx}a&}ccuS966owLHt5o;IpZw{@OcTK*M{LsLtKbc+7j-b7E^!R7mU9M@VvA_`uW zdb2MfS@5FtI z(5fwnrh}@@zjiSZMTmn8Qz>-2lAX8zP<@s7DuH4m`3v~C917g{o8fY0;R&0xBWjF)dthjvIm z&-3LW+uY2YV(FModWrUuvscD-O+>C27K74o&xCxeF9cSKMM$4JE;=1|}Xj`l(DtB6>4%ZF@m;^Kfi4cYA0& z6Xe6gXq+X{V%tcv@f%^Bv3zn>_>x>|DRt0e> zcJ)o?`ugWD`$1ntQHlaog$#pkzl|IU6=d3&xXCBn2gG`g3Dnevxf;N=eY+e9P_T`0 z4bhTIZ*G<5H)z{ZaTCwuuw{L6JV<@ul5Ct$;SFEql7qDiG!?A}o=64!V)T*k?e$|Y z0MQf^Nlefz)2uvLvDUeFOy&u&NSlJiBUsx~0yu%@ivnW|gZu7o zTVih7ym&AmTaDF_e>4XT`2iMC#X09p);Mjv#f6A!!=4asr9^^UFnxbuWMv677r6b| zS)h>T;1Q_rS*~KRfbu;&BWm7H!SNQQQ=9rI^t!}7Ll;{aI_PVX?VAS3yC zLQLOzP{XAM87Q&qo6HgCtSN3Y#K?p*;8HUm>Dx~PWXTut7*7!3y2R(Gj`-H2lV{5x zmoM(;%|LnJhDey@jwr!ApZ`XU(8iP$jS07_hXXQ}K3L=CR4x6Y?8!v4x_!>oA(Ky| z`B6GmbalpI%a$q6_X}j|ifL|nPBSl6u-I1$J2&lC9!v4P2@b}`2TXwU&-OU29|qlq~%lCm0XQ}g{$LEX01H#!uc7akJRN(Sx+y)Mt=(I3%ALw5||5O z03|yTs^GBJCiG%WwK~u<~N7nc{_Pp zo%G`U*JXqxJ1OmL6w^VLDFeQi7hw?H($pz@G=THfdPt3b)x<%GsJpKnnhe|}leBQ} z7ZKRKn*>R>Cx0&c8Vp*NI3k;|cIg8(ah%bw6vGS!?j@?RM$VHfcv9t9#3@k#%XH6v z4t}?;(b`_`Nh)W?`rO=c{5EWDZaU+V_O_^w(p5E8%WA~!TtC5Yy{QHS z``acn(YHdd)^!%Psm6GLCEHt6qO7hiA1LCY0H3_rE_qs!s5m{;2b4*=i`ltitt<-_ zHi7joZ`ub^)9mS7Y5DaStcU|srT4y&MY`OAihE-=Wb^IM8PdiaJxDH;&EPgj|Q*{+K1d%>)| z_kK=mZjg3)+2<6iaQ#WQW~kJrSSXLzOkfyz?OF^p0ZqngmP~^l8^$}3gIpY_CCWB3 z>#@=8!GK%0`aX4OLTDps8n)oX!@B;oGYa>P2OZM}BgT~D=Y_aaX)L+G@1Z~1ZkNM~ zaMF=pZWNn1>~$9OU^(I?Yoeg@dJu$@MaLop zOvT#~p6d(bsS^!8;1z$(r@U8VdhYcAO7K(4OvEcs+Q5CL0R5PU~Qa*`(n+H>l3J^%c`?e8(&ZJn>#4mHRj|E*pAHn01>8Lm zsmvQ%s~vRPXdmgvuek%@^!q?e4J~RFslvAQo49Vl-|xfO8J%N$UdkA?=j&h&&H@3| z3ahiK;!ZW7G(vXf>Hz@uuR6InOMSN)KZRJ8g1jyj8U%N4M6rB5aSz0n9(9bD6^!lG zZk1XVrHWuJLBpWU)J4iJkf#<7Z}V#AmV1?NR9nB4f6RijxAj$2rYiH`1?m0}TOi0c zsJA{S!_jQ$NN3wO<`J;-Sts&&B%eCG-WE@;-#!XGs_XTnk%3CR%*7HUg1}h5liVi? zHAbs)PP0O}X_fCg{`W}WbvZph(~FG~eyHy((_3u>EUxc5iDR4`@3rl)2-qk1FqqFp z{K#Jzpo7(2^Qmc>4(156{F*ag?-qQ07@v>NCXCChl1b^&GA5wSXQy(x}6ljB`AMj^KU66XAWlHvS)Wkw;Uf3yDgj7fSvVUE>o8` zv@|htf@S;{8ax{V8-V`zzkmJd{Pu{WlY@zY4Xj%hi^9-0v%>lI_B7ixi^?RM$`FJ@ z_fLF=Z<2_q)HPus>L0qHrXUqM7-R((&^7u#kbtt01xC`Q!F{0R#CZC9z5HR_|B40w zPNM%G7R<7MfjC0wCkHo@C@-#M#XBALqj} zRO&N)=z*qM`fsfGbJhQ!8HYdR_4~Z?Kc7ked&S{D=Dz=VE0}=)oW9DRL z<9yFmdR7KDRyH6fD;LLm?XfZZ>8s!M@}IS06H|@g2ZRUrl;46dT>6;PM>|;qE^P3I zIRhXreAsq+^gW17avlD#p)5N}kS#Zv2gX~%dgK@T7)a6E5D^^-D_qezNq!71zbGo8 z!u4x%C`3xeM5RGfr;R5Z(c?oc2LR zD*mzd{V$~A|3xnNz54&l10uH0?~UL4L?dHi>Obk^ z=3rt93k0w-!vg<(0NB~sSl9rjfPd3|_cXr`z~_I^nAo}4INn|HpEM38=J#duFEnQ0 zd)@qn#>)0SBm9-d@poBPuJ^X;&wRf>v%j}bf1$B({YCcuduHI@XsoQve;M!Hj(3Ou z=Xgx)oUFjV(YSzYf4774zma7I{zbp{@i^K3=08p#(|b1j*$yUl4))*e-+$6L+1dZ% zXCRREeZl%qJ|GJ#JI7yS-}$(>{$d9Z$j1CvAH2(Q{x0l4Ul+*E#m@HE@mSbcSpVV! zAPXBC=U;VU=i=b{%Xmyc7WTizk^{){e$Vrt*X01R{moZE7EYGG`ig~>1NayHn1Jtf z^B4WzX>5Pf<=x)jmH20Snb_ae`-?8`g~-D3*SN8;vHv}vx!76$WUrHhfrYh+1MKfx zE2+<>wtzp%{=MJ-WNZ6-w)ms>SF-Rhc`v$ubm9gMPJfi)dp2@#0%6I?#pK0d{|9#F B=F0#8 literal 0 HcmV?d00001 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_moments.png b/docs/desc-0000-qp-photo-z_approximation/figures/graham_pz_kld.pdf similarity index 100% rename from docs/desc-0000-qp-photo-z_approximation/figures/graham_moments.png rename to docs/desc-0000-qp-photo-z_approximation/figures/graham_pz_kld.pdf diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_err.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_err.pdf new file mode 100644 index 0000000000000000000000000000000000000000..301013a23a76901065d5c2a419d7bb167dd12d8c GIT binary patch literal 205320 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

xHe-%%&`%9#!atqLl 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

XS(+q4gK&B%P-NQ;22+2{m#fTrE#ec=UnBR2Pv z=tJsK^+L4vMmm{s%r=BDY#J`{Y`sB^2No6id)aJgiFD*(9dT9x*G&Y*9t)JstdZq?}%$g%Ow)3kEwQ0@P z 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

(}qkRRT`(8~Z?bwrX=?BTC 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 literal 0 HcmV?d00001 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_kld.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_kld.pdf similarity index 100% rename from docs/desc-0000-qp-photo-z_approximation/figures/schmidt_kld.pdf rename to docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_kld.pdf diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_pz_err.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_pz_err.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2bd5b2389bef6f0abd3bf8a0e7863a90b3828971 GIT binary patch literal 170693 zcmZsBWmH_v(lt(S2oM|whv4pm26uP&;O_2j!QCaey9IZ5x8Uyfkw@;m-&*gFnm%2% zyLwlhv(`-SGo-RY!ZZxD%&??CR{>=$unYitfVI9kEH^iRPSMrI2tX&O=b&d{Z33W^ z)iW`&2QYpBaq`B>oKU}R?nVEHqJrIWR@Hc&8f z0BC%q5)%GMZ{*?tpcAwFNGtHqDEQAP2G9b~eRFXTQEy+Rw*V14YeyTvpHc)B0CYk|PG$y1@**FbeasZ?^sMY{^z4kR z3|#*$^=~{7_@~y7fWzO#!qQ0@8Jg({Si5{s|C64Xo{^T7je~=pjfIh!1;EHoPs{#? zFu#?RwS)Z!=;K=6$llt~&fueAe;V{r{ol>})58xoAIv|}+XFcM#Qvw5f9C&^7dEr_ z=pKMh*y5uFLPiGGh94^>jjT)@OaTmkZqr{2?H%ll^ekar()TpvtZ~^8I}RSvuT6Pf zh{VxIfepXw`F!0)aW?Un@i*-=m^rwlPwSvpD?6i^YMHQ4Pu!e$G~qSjh*^V)OE`xAJ-| zH`8XL>*zT~+I*`p^K;^8ju8ysU=K>>>4&Fv)K=s{-%X1L!?GL&na3Q(Q&ia#Qwj}$7dp(C9dyEdP zaH+o1uij9EN-%87oycFxQ~EpP#;)#@4&y4zi8X>;g zT%(%44eT2|Gq+f8Qb8Z#V|OD{Ds(pSJ?OBtOlaBd3XO=cX+-CbAhS)k*~rlTs(VLK zuD~Vz3Ey-uwTs85(R1#qi12A5_C&4sP2|VLo=;yMooQo;C5~gC6`aaGNIOOgJP^77 zJ)ZWY;ktbGoAUW|so1xwW7ECzVfKQ6IgPy*^S@)_Jq2P#j#5tUmr9rd$7$NPUmTK# z2ja=ZF)lZVwx#P956MB+|HQV)EGT_OzXIZClFh>i28qu_855^YZioGBGvA#^*Pczg1fxq7U!`azA5(_$Nx~_jB#91f_XzTwOXT(ewc5C$ zD%o%TgsIuBo7%@EEAfTNap*0CN_jMS4veqhDNeJ!D+2QiBi*Bkc^_i9#_tjbg}5>d zA>?gbr53uOIXD|sHT|{~KUD@nGX}SE2c5Viy4h#&$*&+~ByxmIKLX)5#T@xKyA3|A z@P@QwqFl_~iCinV-@Ucn!aUNDlNz#HPP{d(5xriwwHJ#n+#ig6yO<`dtuY?>6lLOE z*{zDotGTYTuI=5{;mvOCZKmzniH>FL0B2K13n>N_%OEbLrRA&&BZpTl=%7E*9EpEO zMI1}hlGG7<5I&bxU=-(NW%xwrT5I{HkRK!N9i#OTh*eL5QLvHe>z<}SF! zO+YDj>yr}%$V2!fGnzCchijJ{NW0g_>!$<@QzCgGcE-ieG0z1e>r7fcx|9cmv2P&& zW6CdYfm0XXMJeN?e1$K80Js{Pvq%-K%&uYCR7|D)fEw;&S34d)xPL#+oX4DYb zg-bYz*ULmMLWYbd!eW?@UXUZ*{%*itGC%B^QZbKMT$*aGD({=js?(*KQy(qXWrSRx zCgKRhf@H5!&f_;p;C{O%v4 zMLke=$Y&XjPRn!@bb$P_OlDCzLR}!8jiBTyd2(^R0p(jEBFe1ksFxZ~LElFTwMw1dOMUBJ(y%k@3h+{V911co!mb97BaYM(jhJG%U|@^E#H zntxeWEv!r67_&g%V{SDKT2yH~4exBeOKT0~;`(LAhZK|(YeoDSgf9aQgkfbArW-$$ zk2o$&B)5+Y5plD=vH>4&g_vMT4!p{mqDjY#^%?JU+9)vsuPXgVhC~@*#je9n7r9D|WA7I)#^?$(2Xu6%pR;*jj zYh7E)t7VHiyrp>vkG&h;wD8IaaOae+KA@+Cnt=n3WM37rTo z5CmtByLdi2734Q{=#-#(wZFK)Fy?hACZQ}Vr7V9uJN3Qc);kRlDRSE&4rELRs+69| za0RJ6Smx0&D%*oE*Gq%#j7<*8!eTWxEH&>Y8;drD5nvixsmDLFCKkTtwyqe!mIq%O z1J}X?Be`x84|>R>Gxqx3Mg@7!QIX`%1#ukZb?_y!tVOGS2bV-F zC4~C=ZaF8Uj_GV=txV2i$Zw*ipIi5wwOU{4eZyG0~EavwyGDrjc%BYqTsy;g|lb66;##%dKv7`{x z$p1~7wTsxY2S1IS?YgTLO#Y{Bu6F(?3@&7mx{NZ^xS6C)DYg&=*}`~~y>GqAvh@$n zXn6yHZn$Xj&~600_O0Y25IpR!*S#qON5+CO4e((w{2oN>2|~U@)5s<<#9I-#W*97v z`i|^$BC17SnPK@z{Kwhs$`wXXevQk@>Yn6&i9;two0XAoS6!es8!XP;#(`VTz1U3d{QUI2*6U+PzR(#z8EJ$`x#i5Wr#`vKFRs53xy4L`29Hg zIocV?nqYon-voDP{}QFScawCfzBJ53x04(>T98w>I1#24RB#t9>t`*iMC56uIa@=b z{KW1|euFw%WjHh81mvGe57CjYQK@)FUqGu*|#;6^Rb>BJ5D~ zS=C$|!Kyx00RLxD2;zYs^h~cpdU2#P5FlBk1HH^MNl&z#A`*JAPi8$XSH%O8beQ5u z_Vm`iAfRGY&{V(4VZnEQ0zc^j<Be8MU z?KNOVBfnC*N(RcFo&J)_%VFkf;;1@p5CNJ>OX5YaBX?>Zk4=BADJQaoHqmVpEt@DO zXly3^Hb0L53R>92X(UCG&%5j}6t-eD|5<>r!qY!DUxOYRKGh97ZG2{^J?;2lU^b{I12TD82y1=1m1 zz}&I{6{Eqfy8EZal(^%vbOFyWhAGxzr_uWz+2TFu+yIB#3 z(g8*>!SS1=O$7z6dC|xucq!qsJWe*Yvhe_H!E%g^YPhmi4*vH!&=|3b*+ki-{@<*p zvj>aQl=bEd_67wc)%Ud$4FPHxPPKwRzgf*rd!HP<=5*|fgy)$EUNZI0mK=r_@OQn{56lTcxkJN%c;oH7^A*zhU)9t z6xGj39SSFkdgZ1@i$q*;RLsRGLIZF!;Vk<>d7F2gdb>hFpXNLTCwsrORZOeY#S&+q z@ZdLnyp_{u(#J`2`DyxmCE$A4z0W8}Lgqkgkc?dWgnrQ*JAqXrnmbt*S%X%VZ~@v0 z#L;2ty_!YYG`O0n#<13;3~F2DI`LOL7+PMfTW!&fHheA#FOOSoF)y22?N8v70iRdK zDHD4}Z%_lPkMJfS#iH(%&ui(wEaP1%d0Unt7iMRXMJS!4^uh75#I5Kd8Y{JUUaFpk zr+DO26t79aXFs!RcK}PBM5LpoeN?e}bDSCrgqM|sC^1`-Uc26oi^Kpjl1krQBWhDja&Zao2PRR^VxB0lwUX2p^e^h1 zgyziapD+t5xoU*3x7dN2mQEAZ?egDl!6lvr-uYlw*CI&K)?=J(5^`!yY1esG-N8{E zVxQhX__}{{*T0`9QC=3j$UaHwX}F{2Agg9Qm3Nu z9z^zNtx)mPiby)Xl7o&WT1UVzA|1Qi&!*)4AQk}zUftVMq*Sh?efcG+joSjguoBu2y1#_Ajx^IU7slXy3axJM&GKba^>rlT=Q zN{&G}UbJewr)-tQLQLg{n(wfpLs&Q%NVv)irmx@XKh#RLYTtjoG#BkD$@AA<&+f`0XNRm6YwO#?xu>2KNA`O8!Ur_~+RDj|TGBas1D@ zor!~){a;~(@n0!L1Hi_{24MWKKO+l0{r@-q@%>-MK>q>!1O9ix2MG560{&mVzZU=X z@o)6Mo_}(}{@3##;D24LA0_><|9budVq|0f+s(?#3ivQsc6N5aANwPXu&}WFWq)FS z5ocrsu>G-rs{E6aje{M)%JLCsWc~0ne2gC*U| zpTd|w*8Q*j+i9kcLjKsF+x2g!{*eB2{l~}7!~|et`QY<0GJo*+caMJy{NJ2^75h)& z|HNUn{_}YJQLg@@^?V3IA9{}w;DhxaVdq1uvN!l6K+$lp(tk)mA7O#N^(Puej=!A@ z3?I9*v9SQOVCfVbj4YKuDE=iDnb?1H4M3+VYGh_&>hKrwf5fLhY5pX(GqZ89{-Z2? z%%$}#{|Hi23Th1Wupe5V%|FZjy4`;vg!L@VEL;H;g4UKcj(-#>sShQ}&WiFws{0TI z%?$XhOg@OyFfh~7GsDvH|IPakvHyy4e^vEwt$#~cf2#jS&0_p$EIkv$zf%SPGY1>f zzcTJlRf#M z``Z%=pQR)?h@HLt^t&xCz!1R>1P5ms#1J84lz%>k4I4)tG{G{m8$f=)fe)JPWpuV{ zIMDlR_vmQY)bw=F^jNoFMi9vck}Cx~fiDUGjS&O0>C417K8bxp&L)f|?i0qbcPOV&A{P-BshR^9DGVOq>!?kR3=Ju-XBq4tLV?^P@g zAH=-cTT6Ls)0V)|P{En#q*kbk3_S!#LN(zcQ^KigXA+ganZW!Ma21l`n+|d^x{8Z? z!Ur;l4`Ro}YU1YN8`g^V8|i?6J|Lj6D5D&&3#|uy7l9R$|Be6Bf!P5RG#xjce?7C4 z)2mU|htCIQaS=xMq3F}@*#qdlXG=F-$TDhz0xgvXTt_<^3FW%g~qWK zHh`SH8zDVfcr${~H@~Q%&3ZS$BWyORfF$o)5ca`?$@0#3ATn{)GVIcAzMmsL>^CpLu0D@m#@CV`zqGfqUJLhS`xnMU013)PQGKSe=!7e zYIsZ1m>xo&CKg~dj^Q)`sbOHOeLV!>3iDs%BZJi?H@JSEo6bU<3kKGKt@xl>;B_PA zLEA;8JZ4FY-eYM9?1vNYp1oc80>*BiPs5flS5mnh2;sP(yC%E4C-ETd^7ulA5HA8= z;LPA-RtSs`b@l729sO{@_=?@YB`xt}@z0X6x(pE-Y@Iy#-a&jo$hZbsmQwjr@vp=H z1kZFxa3r%!!!Q=mu8%sHR6awKD4(I6>H=1a9yi!=e1;(4Q)06_QSP9BO)k&(?>6!w z4j%tZ$Mc@>y`IR&=l1s31R*o1@~=k!&6e;?cSAs({NDeb!kEwd?(j-12pHKw)F={3 zxTTwY$Z7GmJYGSezUm@18#;s76vb)_soIIfqweC%}6*?7HQJ znji0vCIw5e@kV(-FfsBPeMfWyVeMf~} z0S&$QR6V!^_}R@GbBf^Pb|N$Q(*TVB=?kM5KEo$9QS9u2QiI@_0BX5j-k`G$z%lWs z23yx(gz%Pp#@->^B2PiO?kntmDrdQdq#T zj3y~Qjc8mY0gb3tT=W+bf)Ww9xbT}i$f0lhQ+~Td&!+r#vF>$%=0RRs5K&s#4+uuz zAIS6{$m0hj_v!;8=lKCC=J`lB`;mzj`wwhvpdNha+wm0Gn;c_9G*92ymF$u<(#+W6 zAsh5@R*v^cfk^V{Iis8Gq<8O$cW*;<(inmmwmc1Mlr-|;>x%5={!8EWv*Kn@6+?YZ zz2n0x$bHuD^KK;lfFVqXpkn0Ojcwo2u1>snZm=8+h!TTIUc{<5n0Ka^9DU1Ce9c5a zk$1Y@``rD6Kk}V$X96%L=U85ODO)`ZMqKycPT*8~ts$`rQs#9O$h~e!)+jjG3D9%4p_`#JT0YXr1-IPqK)` zi77DsZgc`dK;l>ZqjrjJ@I&;4444e~*`;$k>rZP_$Mhl5? z5sV|{9m#BD=*j#0N^tY@#`c{a)O&D?CuaXUjWq$(wfEslFv=@k#Pj>NE#Tylv&cO&+2Y4arV$xoDpZE1_xt$iRJH@cMxY+qx zcB40539q*4o}=GaL48;G`YCD^8v5IOzYu_F(3S;+Xkm3A5K>n*1ooLb1=n!NNgcSQ zjsOZJB9`EAk`<9X#N?7G5%4pvhzfa{aGhoj2X8dQy)t$nNax#WJ$}V3csnlZK@qW3 zlQQCLNy2Ch03#Ggx|t_~X1r3efwxQ{wegN+cC{A`W403E&s<&DvK~>l+$oEc;uNi? zT#^C%_F+mzpi+20O>v=56;05^=3+IHKiS*_+DMRW{djJ1a#-%#*4HtXafUq>>u^|b zj|$V(6yQcGIat!!?i|nT43VY2&6TV6e_B%6T`251aPeU44xSy0^*M%HkruyNjpLj0 zWEl+l(lI(*_j9RDPmuo3RZ~s5F2d_N{m8b~DEiq7RX{_0+Jif+deFv?dA06rNc=;H zUktj&YdI9c8qDg-cb>}SCB#Eivtsk9_H$eZe+GyvbRMM*E?7Ej8g7cP-KVZEH*)fv zYzbJvJE0d-;tA~b7_N}!b>TQHsw!F)awHUHC2(yUBpAxjx5PKhiSV#e>}#3(;zD&7 zRS?)ASvAKlR4#R*K)gc)1v=t_9eL;L#o0ImyW2x_4>+ z&Yg4GlTQtjvQx4O)-Dm&7!It-J;W1((mdj`3~WYO0%O^-q32SbOQVg}d)6nM8q{Mo z!c>o_#5-@?KfHrSE*;vP*7gPap#h`U1@|=gO9x$1!FAW4sZF}~e5OLUDt=?3E-w|} zWuK3KSQ_)%zpCOB7v}wx=~o8yCmL%(mJrYMYKo@;OL}t87DaPIstiXm@y6vn?cYXg za+Fzwre>yp`8L#D>l+yWjX{FU%gvgkpq@eep9%C7SnM;G%$+>)@BZVk04J6Np! z9(=?2^o(f7#p@ME?#r&}-Yba8@(?;EpD&z4J5v z>6qJUdIzxK(wCLEOat+_R5&S{+EztjhBijQKk{j$qnyT;iJ_YrX|xIVpzzKQig0%@ zS-N1;1MaZSdnPVAJHx1g2e!Zrq7dRR=guD>%_6Dwbh7KDy^|o>X=*E6BpT^gkn$7qesT%jYd284``nHPuie@iK#4iuhDt>CYcuI3 zV1R5kxm*!39!c{Hl*D~gmzsM`LQd6g$;Yn|HTTDc^78J2#Be>n4P&d=HUyt>qDNe# z8$IRvI}^^A@l)F7u(N|qiT5O06^pvmBhm3ZE?IXCG81ymMl?&rY`*PYoN3hAZY>3K z@bcCURF7aU zU!n4m#1fK4D10w0KiLDXq6DdA-bI*#R`Q8+V{x=>UIS8_B^uH%jP-gU<$f0;N$DN? zgGisU>^g#aKP8&;S+L|<^<-&+y4bAeFWIv5R!)_YG=H}t{4Ty|SuH|8oixHI08NMb zOysBY!}D7=)oGN5Yfb2om)4kH7&@|(Pj5XCQlNFT@~nA>1`!`c^G1=pd=z{m_|x&e zez=FtV2e4c(P(_y_b>9di)`eJE$-N#&ZNLb+(rs)M#qUg5I$`#~&6cpO3Mc*PTlmeM1^fYQw6o?0}za zD@$qnWNRO>_3xic#;w+O`>=S4_SH~=Qax8v5g7^a-Yb!Vpjj$V#D z$qRXTm655Xq3%>zuDWccjL!WTedH+O?Hm2@+JN5|C*hw34!g{I7bOu5I}|`++VqO& z`P{p@9DK&wZNPMw@3V}a5M}7|mI^q*$-Fypd}ayAGUYjJ{uImi6hUoCy%b~KU@$bZ zb#*n*TwdACh%erHKi+?chDEPL(`NnflYsky$ltyP)OftQEqb~(esR3da`Hmu*1Y%Q z$ue7no$YY1GAN?Ol(>kL@SZ9NCsywN_Jb+tGn$0;>fY+jq?LQo*vhYwC`e&cmC6+-W;#9tEl=-#x5H^&u|C zo7%UpwHXXet=`>(j$@r;Uo54s zU}0tNERh+QkA}*xmUWoi-4u@LRq4l%@^a>|86{_oibqt~O#bh-fdG zY%Gbp>X{mhE%xPU1fjiAgNWer-Z<`D*&g~m4>~Pcu3TAz@l98LsJJs$QjZ*SV%FdG z?0lv}h!s#1Bm4_{lz3D{sPhi<&n@5CdLK2$+hJ=Ke1=>HLRu1-BjKT-2rHAUOgfFxjr+#E@z0!yU)?k^9!B0qNnQjxrPd>u?;Zt262~L=CBY18K zS?ymb^lv10pjKOjAotiz1QH(b-_w%eQfI_>8BEE)_$?=D@oHwzN(S^e4Ef#?P6S`D z2zyMHaxPEw^ALQdkM$>nDZ6dNCx-j{IY?or&8+iL3iobDPA6l$k;h5)$+vOa%Q%Uw znEf)P=<_g2=my6@lYtRwgvnzD&%C*NhDqK~n*8I^jH#LFmONjs`}R$r`NkbPQZ5^H zbZe>kvu)xQRaO;}A4EsL1Hom$gMI3Db)z@NX}QkiIlHX&T%+ylDvcQ%2b=5!Fm$pKs+urDcd;JFctp z7SXR&us)L=|C08mgQ`97Q1dz_eMYfy3#mGwxaP|9^VE!laDmB`suJChN=AW!zY%}SsUsFT zw&;p4vz|GzWz0)<;%JaP(#n_I%PLqwwo#3X3qtCF`n#mNYRP-D?G(j z05p<0U$oQ))zS{Ez&5+4nogLHdFABDvkUf_Bl5;hro3aua`B<<8kotEezo)LTAke} zx(8Op=GFdoCcfcHKH;_jQB}2Utb#ElJdw!z|-fhW^;1 z)ehk)aU#&1=uDdm!? zF`4y6-hMX=^KimjMeLWac@YviGqO#d{(GP!Ux#*63l%1(o2P(kA@Vb|{b%l*im2ZPwV8)U zU*C6)aD;KS2B>7Nl$hDw<~amnVu$J=Dsi!O9!ou>b1^wtt#oeiy9a$?!W>&RHTN%O zGw}@&8Csng+*Q1sfk`vMc6pC95#8)$9oC{Q)aE~{p%G1xbU?}yyM(G?MwpsH;*-Eq zrL}-d5~$90mma-rdE8xA-M)*@lw>p9C+?{> zk5CWv3B*DV!Xm%R2=_2?cPe6-(-i5twTuuxGsR=;w>HazE(fk)4rrf%DEmdojT@R% zcf=08D2W&$M1$TA2=0Czp@V?`Hsx<*7hyQo)E!&Wd&|DdmHk^rmYYW!1{+_-!m8on znJAddk+C|+>#J6RhfONj_=40_I?8P`0G9Mpwg2wKBI35N%faNF#>eORr%(&ILS?y5X@W5D(woQ5AI2|{aioJ`g z_g}`oUg@DcUNK0w$QrZHK* zcWXhnsd@hNcA%HG-=USY@yz!HRSQxoqj8yRg;mr$t0o>)8K>Vrf5q(GR}|yQ?^|UL zYU-$8X~n?JuDkj;5VpBXDAb{NQ^|O|#L0i_=sV{m5GS(9>;)nh8>~0jEAXJBF1)iO zHu*VAzjdHC#P1aZ=C5A{3zJ20A-Xfo=Vb&O2?>#7L5PISSBs$vEF5wBJqpWF$0kti zfC~Q(BIk^pzU|@l<)ml8f!#g92r3A-#6U0GTUqbA_uUfbF9)4{e%Y#n;;*(}9NMy8 zG0E056Ia0-=5+5QLf$!5(S_TnzoOBN;E#<4Fz=|rnxY*PQ15%@7`}GddTv)@IGQZP zM2)g!SWGh*Q-;}x&wUrZ-h*T_NS0s}Us=!uzV@x3jb~!~a$OLmFV1N^Z0<#QGMLBi zJNtQ9mlhSW9VyVpdV%{;$~It_1*>4lxo*Fi+B^RIob-Y$?XvXy<@OGe#ofA@SJU{r zEhO;brL0dCI4gmXVNXVIh)2pTE4C2z_#!$jhGY=wy}y6eun4N_&Sudi-Uf57L8)s@ zqlsLCdMwZr;*=rDo0x}D8*=tWq1loyL-#&Orh3Y#yaOLM|>Y~(6q*Q@Bac$tl5E!>(|8rIWlij6y8dj_ct2U}~ zuX;V|1unpS@TYAXCKoHemAG}k2&jBQiQtBExYba7EC*ZD_01{DC-@+IP11r3@kJCfq@!vOx73#Uq((rE~!dO9gH#CU3vOk zs3Q)YkR?Aso(FN?6-Z5k%{moE{X!bJi`yZrBm6o9(y(rel*zUM}|x4X+bD2F-x{%#(%r-BYpJ zS$cTQ_loWY#i2mh@38Wp`K}rb;>`Dg)$MuBQ|HdZ*#j=u^$Zn$M})+z2Dnr7)E7#6 z^~O<-DLFqq)jA+a=gkq0YQ3=^P(gun$1#Xdldeaj@Ddu+sS;=j@4E$=Y^l?}(S!

G9)=rx4(hW9R>Ou()wsZM;CH=T%EoCoDIW_=Mk~*g_slK9OJ2oLXB&ZZ1mEe|R!#*yK&8BHsV&uS%7VH_@(JvEP16~McGwnw z9H3OW+#+Nb>OChq<=v@qhz`#rj+m;{-I6LJ;QOM~m zdXluCFm#2H~QeBrw$b*~E$O`l&xDa1IR*VTq8++xOYr@q6+u4A4WY+sWB9pXGv z?jk6*PTM*A3s;qnl|Uth?Ft?=A>J+*mm1UfWpb9Bd{of#V72CsWuTrd%(!ZGJH~}Q zkyOu=`U|xwRmxj2S*R1VT#35t1G0_3h7kg(t{>N~CnRy<=}a9vM$R=GgQr;c`Y$e+ zRogIaH8IRmXJ8B#uDp$vCFi^>afl)aVh!_qd|fO*$IoQ?P24eP^aL3|4}@O)f@vGn zNM{q=dlu5bb#j>UxDZxJqi|XrnMSys!HWW)2wCW8+U=P|6Jt{_0IRK#y#1+us$m6O z&VkblC9aYVTiN}(3K*MrI(F84=(Dr)h*Zugm}QgqsAKr9D%hc1FS#uy6h^MEXo3S) zwgvn}q$oZ);6jeAQ#1Z87um31aqtWohqT2~vNb28*ZSFA2)e$KsC=s6%U)pL7vp7h zvUr(Dy1rWV5ii|VQdE4g%J@@Ld~ylt=l)MgN~M;Fn>NxsNFc0W9wtlZf{2xatmJ!4+H&Ga z(A6uXI6f7{*raLH8#m`EIgnBCrXs7WDvR~(Wl+(Bm)qxQ5%TI`a?XF%u}uWIq}T@& zUj)7O!W5q!q0oG~kWl32qkps_XwBbgj2pkF+dC_3R-m5Ru4w*jpdI^YQx@^OGL7QY zTm<1{L#Jpm9UpawN%MHuj7zg#)3S%HJ$<3r*IJk!dZ~q^MqKA?;@)>ndk*XF5*QLn z9S_^vPfl=JYIK93%DGRqJScwDA?+bWc0cNB4^+rdE_qcVYc^he4_8fO;Xu$ z#Fqlq-X~+BNt)G<$#0qnvQ>fs(0C>p?dLHnej!20ee{V+09~v#Q2ct3;a+6DZI(~% zK+&q1dduW5f{_BM;^MCSn9@bE zL80mi$Y<85j(Bb-F2%2FSYE5A%gd3K6P}N~R%B2enn0NCgTsBWTaAM`WE`MHZHVNa zZCR4BOp6DXOMa>Rk|0pz2UKP=mTd7Rbc{#SFU684af}% z_m-i&x34%Ad`BGWO)-ty-`$i2TBeC!HXUW&jItXS4B>6}+lJC-%;}H#4SF2Y3#zmj z&q4jGy^bVij0+B|Dey@9!k>^*E88wh`YAO6H%#+ce1xz3juYU7j|V}_r>yCvC28v< zJ_mK8!BPXVa-axN3u8Jz@pxG>9>YyOrgJDh&d- zs>saO`OA^}}oq2DakORpT(gX3vL> zNX|9bKM-g*Fm1FjKmy|J99h=wDJ zs|(tC2J%XCyv#uw2KxIsi-8E^NS7G8#rxVBnWMC#waqyVH$^iJ9FFlS+e??>&@Dgb z*Vm}uj)|@2~6r^)T3Lx6!riCn!Gj|Yj7l^vfK&v&_3eqRnAr3j`W!ycKS2W~dX zgOWZaCaT_(2iH-OF(p(2VKkuteiFURU9A!TcVVa?p#Cj&-kv}qrsG%Ky%?eO!f3@# zI>gAB63560jb=NgXYSR{>%A`h)ns`CUXoI;uGl)hQ(2(8ZbsfoE~OU;J>f}tm0-Zy z5AMm%v$gE}Qo!qSvRXUH8#@+wICTFDlyP>G!1pssZJ6clE-PUQE2B#H-y&Vp*xaE5 zt7*@EEKin14T&H-gr$~4Q$e?wJ#AWP5i&n*r5p){Q(d$Wt>fw?sN7Y1<63=Tk8(3p zr~0Z*OiGMo!(OjlD=(xTw&cqyCKP6LIcL`|u;_P65N1YIktt-y8{E7rt2_^TkR#Cu zlAiKtC-mFRe3WWw=v?kYhtgZh?S-5j8=9+aH8;0hmNP0_)~5W(RcWmvg*tmuX)%OL zbete>J&R9^#73LXhG6l}ky}vEA>i-wNKreIc2EL?RQfKxkuc`Tzi?gr{pD@0<8_y;hQGF+GF~oSg^Bj5L zDgl-Wenx!TulsmsYq~_rOAlEXO}GY0{ZuAg-I6%7aQxsmGh{{`Xq8BsYH5xprL&lq zMSEnA*gxn`jJpZOA?TJ{z>#AxapNDjB_ZYf%C<2=x}JB;Sum8RcLNGn8#c_S7rni2 zt+Sj|c4$96+M@B;Dl#~aPum@q&^EK-E}rTFNrI3qJh z%_%er1c3+9CyhI=CkB_V;|g=sk}QS7n80!y@ml=%b@;$~m~z^iCC%f~)FA>VgqKt` zJEqu`dWv3pnJkyw_>NHQi`oKSIyq{l^k$S|tj1dLJuz*b5#t=$%hLggFI(_gHI=+I z8>!90;5C*0xXnmRPs$Vlb+I?tAA8PW!vsal4;Q7C1&ye9g zs_v)w6Plp!@QRavuNeM`WStA>c+R*`6z`R^J6v6A(^e@;E`lV$7=+kc)E62LjWEr) zP~ZF&2)A$&oE7HoJ#G>-Zt+Y;^(@-?HSxKJj>Hoay|uGA)G%O zZbCZ%1j6q-Wzk_15~z<2>qFdq-W+SoQ(5NF&1D@rWAz+~mQP3Bd^|E>D7|))+%6We z{AD^ibghZB6_!lygh;YnqvEFOA;Szkn{#_t(Kj3T<4dSzQK~k2LynYM$K<%z8)fM1 zSI|CAQ4g*(mEK_?>aSZMz_zgRd4F7XzP>wy5%UneU#v;a;Lo$!0%=Cc>lIhH!Lwd# z6o$l1)g$``i!f`aWNPR+UeU`0{CmV=U1!1g~T3o)*te3)iVU_2tVkBQ-- zSDVO-7J|yJ+pI(6 z%GS1mvXrsD9?$esCL5||EYf>_L}lnszlE)++`QB+aOp%4qOpR7ty1|(m`MW26^Jx% z7YiwFNQm|x^4{vh@MTJww(y5c+jCS?xIMFjug2fHy3DAX(v+Kxty6h6-M)&CG6j2G zES;(8ClsFQ`H)h(a?7pnqbVJ!L_55*E^i->D|VWgU0(R2M~=}GuwD!Jv+S*i>&G)6 z?AE^=Z`h_|=DHk=CXK&XBnnvOMct@O_KN~uEnad^fu$>9nI4jzSi|Kjdg(Z~ zw!)6^;`+`w+o`hW3Iwl;Pqk}MHe>w$ zYA@rg6q;Md`E}B0hy_AqBs)&V@Ef<4^W1!>2=I%y#P;mYP?QZ>?JssOW5fOMxm1Pp zc)z#XZz?Do-4r5BZD2~lheL-gyIRJ2I53_pVg2UuGw1gg`aAHT>5UJ*AojWY3tVq%ld4A6=W%#c;K zG-`#9$^53@x*$%N*JLULlj2dNceKxR&wB8>oRYfR{R85O^GkVhL2gXmUi3pD%d3H9t5MA7&N389TF_A%t)MjbaoCZ(RGJM@LOk3yA z@)EV}JCOt@6z28zj$#hO)GSTi3IA-XAG=I$ttQ?TM8yz2?o|hbY$ZYK-trm!z zV>Dt7p5YwjW1dN-6xL4{bFJ4-;j((lD(Ot?h4d83bNP|wS~%Hht|?GGDD#1jpH%cG z5nZS^)f|{(Tz#CDIWzLvm)6DGMTdtQ6&LbrekOhj9{q41QEj{-Z4> znDD}F3mr79Y@U+>+x=pgb!@l&YtP(U&wgW;MB9Ad0lWR~giXKF00w~@xEy@)uPk;q zxx-OZ<%9CbN~z`B-vaA8xuc>4?_srSkQb5D?1Xx7Zu#S~?!#tI#}n&C<4Bwxs(_s1FyG0DxwIg^QonqaEh9hoK`VtaF^AJKXg494vf z8FEkvK+j0XGRg=#!^O`XG`YNDv7U+X)F%!)H8t5yPnea>7tktZJran(u|#cAX?=fp zo_y)mAr2(y+1@iG>=Q#Q`=q@5A(=v~z1{9Jl=O#`&@Vo|f^_mYnWNyow>C7)3(sQ( zozcSjO9PNw8PT2lnIlAp4{MM>j2BWwZSA!8V}xg}n6Yp;-3|&EC3nGzJAg!hXAhTFDf0y;hCT`W@9oxk?P5BhQvrN{}tY zgnHglS!iD~hylDqPfYgJE^b%CCbZb}s98SW?qj>w&?(7y6vj=SZ)8NoF6Nh&oAVEV zh&AYY9OqZVwrmZ;stdGv%dn;mIM`!ZD^v{U`5&L&1|amgaO9#FNb|usoO*LL?a|_$ z@|lLI(5mtaQ)+f-kWKSO8IQ!w?@PZL$>gpKXkVoE)+Nso<*S%Ah%c-yA@36UlyX<# zc4s6_w6B#94c!&kt?n;%(BG+lYWh`JCoB45S}gMz^hfB!@>31EeeLG>YhA4epC z0p*Co(bQ+gQY}Q!FFbO2%PbJoGIHQXV5H-571An#G1qk}?Ka&uJa^P4U6?DxK&YWW z`DH*pDF8GSwLM>jl&}^uT8&=l*)SCCws#5^>;oZZ@Uiu+7=O)ru@pCzMS0Z3wi}cI zY*47YKF*>_;=@8#{Hlp7v=Q+gt0@ZmvuxeyZeJU|WeaLZ#G6Dt@RuU0h7}u=D^`>o ztH#gS$ZPo)QuOD!mEeNcMq-2a;RQc>8SSxQyfEYsz{cVrSLV2x6== zrO*f?*7ZAD9Z%?Vnwvw3&q`3RUdKlBDFph2= zGTmQaFdGrpaMwk*f4!&A40Y%TXnn@7&ak2UVFvLf36{M!erq;UuZBRt$}6X0*^@RF zq7B9!u}?luAD=SCg~woz&yp7ojF(3I;KA47r$Vx(NPDN|iJJJv$#v_5f={9^?4TgF zX2G-NcAqWL_S5Ilz%OhcS?Lgx1hVE9cC|gD`C|d}BS)>OaQmZZVS!b!`T+~*a7H?Io z+(AZ8$NW$$xLY1iPo(^d*zKSSs(tt#J*xw}_&zNIQZgB|8Uy?a9*9A;|Jt)*T#9V3 z%!A(cddwK;cK+crsTA}^9;#<*(nUKMfx(526k2i>ie&HT-MwtGQOheb+STetgSRpj zY=UAFP2MX|OE0R}{q;=?h|1m%Z0271EpQ8{9gxrs8Z5}4#E33j*Z1pc-3r=&(mu}q z8E(za8p9^SR|s<{L3j!^;`mHjb$;uDT@H#NXkiv-qO6Gy=6nX})rY<-db)UQY&Cm6 z^=x-5p>8B)W3lowy`KeHrgC^}&DQ8>n?->uKy%+!8!JO4ajaLP3zcCW0m(O3XszUG zxGSiQLv&2pX}maePfb`X_K^=uFIRN zQvsu)E`Ou;bsCd!lyiLe<=&iCI;W*8en*-od)I6V35jG|MzlE9dJ?DNQO|T>Ey5GF zPIRg1-n8UbIp;jh(>PF43pL2PS$~+Uc zT}-i4gp5whW8yfsw)1>!N_3pZHg9|x&a?Ltx;HiMcLBQBccGN??$&bAe8oe_<*D;j z$pJQo5G247Y7%;E(M9H?Zv1i+VdxZ}3Qr9uZmUU1zLm&X14%Y>0_m{fUZzU9H2WwyPnA$_@T{@WU->RmxRufvc- zgE9d0oo`3Xv@dJgMZ{AJ3uL2eG&X3tULZML`o37|eE-pGL;`ICnQ-SQ&nK1uVUp9} z+Aoz)&Rhad@KY4=(VJnO55DU^i^|b&Gn$=FQ`U3&H(Hh2-Po#Ea9uVO#~f=&P0V7%Afg9 z9@lj|?bWdN9*-m>tV;X5z^}VgFG75snDaFQx`BM*JFcd|C2ka;3;3BhW8Gzr^1|TE zz@azo0xwdBQdGzMst9=GwOd3EdP{=^J@bM4qt%omrhVth;nWfj)67$Dx>W&g=#i{( zv^7}8n@mATI#J1PeDmBcnbvZA{jZ*7&8U+7>}_s^;8`R|n5)fZ#rjo4@T z=0=;p$?CbWAY?J-jBJ*|qxbBNAqS6c+E1F( zlekXz5i_Rp>e8sXcxVb9kQHHT-YB{t6W;@v)n^lq3H!X&zHEeN+67Z3$a#c4c6Cym~cJi?>&QmK4(k zNe{j%d6gU2Vi|6r{)ph6fbV&>oqdyMOOhS=$C8Mbm;#uqKLTdPqqNNOgA!4Mqdcfm;cy-MUkK-z;HSeZz! zQ@?oKA)Y+UO@xO&`Hdo+_**!>38Kw-5eE^aaWl@V*TCgcrKy<^T8vkScyzsq=Cp~$ zHg+NiBA=11?9YqY)|whC_gT{0{jlm|hbPc#9GEL(aoXtXi}&-_U}(Ma%1>NN zn;x}JI ziwbz`zgQ(l^eAGgOrJ=<4HsZVD+%AM3T+Pdb4OwK6yFLqpljm^ta8I+?QbQ@O-Ud8}~2`hvuj$vzk=+i}1m0mt~?ub={P%lUglUh|6sqdtF=F6m*{rhrn2^F9|(iYWch>f$3;?rx3`8InU^T{9$mpyLT4r z6N^g)x4!tCjWW3imW=fM9C_}V3X$1Wxco8(y^v<-6VTspm+pm!bbP6y-H9q z!)D=%7KU1A=vH&T73eV8YR{D(=6Z8&hG{OL=s@3L=wGy6i`S0o!($8^I2*Sq)nLh% zyTR9f5OSnzp2WhQEGC7c8k*r3s8O_L?Hnwhk0cb^E`uC9DboT3)D5c$M%uj!5_5dhMs-ZOT1%@`ZFlPVJj{j_ke*SP%Mw(i zW1D)-n=DCv$>+vg%5~RUk0~ZyEu!FrI9^R>HHIuZTjrSJhw5emLdQ?L+xb`VEXWd1K!v#FKO-lpd2gaSK=b{^PViz6X^_$}=4Nru?1SXD(5; zW3*IEl6h_SrE$riwJA0!;&zT9h56RTW+) zJ(r5+E2)Fs$8R{e@Wp>}_OLT8@r5fe;~6lnxy|*WJl#(o`quoei8h6t$zBjOLgrRR zlz>(2^r?<)pxyfvWM8Y0cOfGqmes??rsw=OB7?Ui`f2aobb5AI^fSrO z*0%*N@u%6AiE>--$7wEKRz_<~Pl-`u=e|=o-PgBnSM43}R=RVtCEv9?V)zgsyz1Dz zXX3+kxUeDSpY%f^vx&mPW!K+auY5bu#uKr;!hu;Ip)>^FH+3|fv#eZJIW-b|>x>I6 z$1s%6(E(F(mi|JGh~-MwHMV5Jc*-RG4LY~l%P+K(aAL(UU(Y*Nn{oF}xr$(ea>e8- zglj~f%?DUo9U|dR-z9Pp*oid_1!kYJMZeYD@W zu&!O+3nU`frWkjxK0WT4@-xEsAuJM%Cn?W4D_IcS>?KuEe{OU0QW4X>cNB7RtThvt z9}EnjY2hy#xR-D<`pG`7efTX1TG^2=w7H03^k8ak+k><{)m2E{1>_{MNG~SM7v5~| z!h~)NHh!zxM)^f)s{VO<_VYq-^nJ=5CM8bv-MB$H0qjU5h67_25e<6v=_kYqQgtah zS;28%@2H6mW;&9qY~8%4boMEACxN;{i-6!C?BI|ZFOf}sps=gA@`wU?u! z_K<5ct(0&m_l5Z@*~kDEDL?f|OaFVtn66paOWkTSn+9B^4O?PC(6hlG0^aceM7R9Y zMj@#ySNA69)x~d#rQI7^M7-LYxb7HnR1UmJ>$_BX7GSkl*?L3FG%wc`Cj0FDjL#@r zrd{5*ofubuj?XL?fnnMJn02etuUUeJbOKYSo3D=glN=Rw?6&$fKsgBwlHHC;$P zMm8qWSw?qAvpJTsu0bFdss2<5Y!H<-vLj1KE0c)GrYJ#jnMQ99*ZLfnI_uapx^ zx&7plaikAKQ}iCp7~bOYQE)ViV(KFZYTdTy{|Qqstk7cBlYeBvaU2~cS}c&=R;>2d z%rnPhJ+piLLw{U7c$Yq5qF2Lt`Vf_Xb$RY36s{GoTQnO(h%Z0kk~XEDl4TyoNnz$L zPy2e0fD4N}QeJV4ety|5pnL@X>Hb`xSPXIX;xgthi--UyTu4;(Sc_iGsmhaeK5=VYbIki==I;qUl9Ruf5ljn}<>F#}ZPsRR0$M!}h+1(piHa}kKhW3*tkAG{K@2lWj=CaUYf(iC){ky^AXHj47P z_E?ZDJ1F5p#Dv=qBJp7x`gTFWl4LyW+)kF-x5sk9eKCbfmXUMPQyLUoG1ly<4) z*txmWL4Xvp(V~S6V$^djASBc#FU&&fs@gk{$~oXRbgUUfJX>5zY)XSNPl6_rxFfzI zpO6}`%qsbeL$Kj7dDfF38lsJj!m-b6N(otDDum^$9R+pY-*Dqcsirudr*myJJq}V? zr)XE>X7zvZ)Qpc2qrbM}Tz9$C;_ zpmr2}t@niQ^;3|v67;%6kCRdlEkV1(%~DZKj1s-fY1G95TQp*_GXO?{gP8)KVtJ?# zkTkN`rLWBKu+Jbjia{7-6pj9!_qDoW8UCOl*{l$uPK*z`-JQrVxEcTC% z->3|+roII`Gn#O*%#s-$6~fcuZp~j5TI&6{JkE$oP>OKF{h}z8kZ|b`I*1mR{Ld<{ zX`&OhfR86>L^G?*uTUzB3vUNsbXnf)tNVg~b_{|**pBrn^e9VAy17nz>0eqPCM{d8Hue4Kn=zB{GQ73>Ythbmyh z7dH9Bl!I}x3XnbaDxbq(lQ%~42noW#k#hq63ORpfg7qBkwF&f~a8zt`BHwR98-N`K zv&(ON2;Sr6Iw9IyL1uUt2Wjn*;(Rng3(mfe|Jh3|Ya-~6(|6nux*|M(FkEeX+s&d( zrLx$dxIJT;?CwXtL?NkOYp?5mQ=O(g&oYix^dp|y{(t8pylX2gPuP|t0z8i6t!OQ@ zR+fV@&*v0ebCUK6u;#VfPd-+X^SBNN1V++jiIX-7~A^>|A7Nsat)=|5lTZlpF#HHF_N{uW#%Xq=4r*sSxr zM+LNEzW*gzq~tq#5g6tX%w)TuPb$cH1Befg=}Riod>y%o>GNsYbHCa;E7s<^UeG)f zB?aOueeC*o08rMVoC)J9KVb`T<;H53K~Ld;F!!8gEml#4ayN0q_vUqAC&r7o@HQYL z!Yh!mrnf@V)>4;@@-o({ZG zxz?OB!Mr@XF4=tV`wOB6Yu5)0XcpHhb`Wu)u>R8B3U z@^p8hG*?MqLM_U@j6%3hJ}oHDn~Kg*MQjac*Skjor5zGFl91O^77^{&&?5GbJ!?Oe zbi-3@Yp=CS0B|pz!Ryq%TrP_dKavO>I)5(tE(GwUK4-z8-zVK=y^MhJ0455mooAJEjFF?o8w6R)e2(fh*To_>dny4kmag74nAg9*FF@4J(zkp%^$e)~T4X?^o%V zVTGw2GoYhfu6>eQji`}zHSx9r&x&1Z7=lnCvOv0)Vm6kj_U35C(lgaJSsz$;t1QcY zl}rV25O8kdX#v(tFS;GAobsUOtZ+(}qr~;r%a!+yp&r@!jW)hWX+Ewn%^Uta-^72k zYP#pva%bJ&3NfDeT#=8;_U2bhRv{sc1pXLg_f+C7t{?#J6I+*FHZTT2c&FdshwOp4 zV^;u=33CwCUwjavQ>hJcI(ZLk3q98Q WBQ98fRupiT7@qt2h3N!yGHA6RkbJ4&C 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 literal 0 HcmV?d00001 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_moments.png b/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_pz_kld.pdf similarity index 100% rename from docs/desc-0000-qp-photo-z_approximation/figures/schmidt_moments.png rename to docs/desc-0000-qp-photo-z_approximation/figures/schmidt_pz_kld.pdf diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 6e088095..850e03b7 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -1,8 +1,8 @@ \RequirePackage{docswitch} \setjournal{\flag} +\documentclass[\docopts]{\docclass} -\documentclass[]{emulateapj} \usepackage{lsstdesc_macros} @@ -60,8 +60,9 @@ \section{Introduction} Ongoing and upcoming wide-field imaging surveys such as the Large Synoptic Survey Telescope (LSST)\footnote{\url{https://www.lsst.org/}}\citep{ivezic_lsst:_2008} will -observe billions of galaxies; studies of cosmology and galaxy evolution with -these data will rely on the method of photometric redshift (photo-$z$) +observe billions of galaxies photometrically, without follow-up spectroscopy. +Studies of precision cosmology and galaxy evolution with these data will thus +rely almost exclusively on the method of photometric redshift (photo-$z$) estimation. Photo-$z$s are subject to a number of systematic errors, some caused by the estimation procedures and others intrinsic to the data itself. @@ -71,8 +72,8 @@ \section{Introduction} Given the tremendous size of the surveys in question, storage of these probability distributions involves making difficult decisions. -Each survey seeks to create a catalog of \pz s balancing accuracy against -storage cost. +Each survey seeks to balance accuracy against storage cost in creating a +catalog of \pz s made available to the scientific community. For example, the \pz\ catalog that LSST will release will be limited to $\sim100$ floating point numbers per galaxy\citet[section 4.2.2]{juric_data_2017}, with plans to store \pz s derived by multiple methods. @@ -99,18 +100,10 @@ \section{Introduction} recommendations for the use of \qp\ by the photo-$z$ community in Section~\ref{sec:conclusions}. - - - - - - - \section{Methods} \label{sec:methods} - We have developed the \qp\ Python package to facilitate the parametrization and approximation of \pz s. A \texttt{qp.PDF} object can carry a number of different parametrizations, each @@ -131,8 +124,8 @@ \section{Methods} Large-scale tests can be conducted using the \texttt{qp.Ensemble} class that provides a wrapper for parallelized operations over collections of \texttt{qp.PDF} objects; parallelization is facilitated by the \texttt{pathos} -\footnote{\url{http://trac.mystic.cacr.caltech.edu/project/pathos/wiki.html}} -\citep{mckerns_building_2012, mckerns_pathos:_2010} package. +\footnote{\noindent\url{http://trac.mystic.cacr.caltech.edu/project/pathos/wiki. +html}} \citep{mckerns_building_2012, mckerns_pathos:_2010} package. \subsection{Approximation Methods} \label{sec:approx} @@ -198,7 +191,6 @@ \subsection{Approximation Methods} \label{fig:qp}} \end{center} \end{figure} - For each format, we address the following questions: \begin{itemize} \item When/where has this format appeared in the literature as a published @@ -339,16 +331,29 @@ \subsection{Comparison Metrics} (For a demonstration of how one might approach the distinct problem of evaluating the accuracy of a \pz\ relative to a true redshift, see Schmidt, et al.\ in preparation.) -The loss of information, measured in nats (base $e$ bits), incurred when using -an approximation of the PDF $\hat{P}(z)$ instead of the best possible -representation of the PDF $P(z)$ is given by the Kullback-Leibler divergence -(KLD), which is defined as + +We consider as a metric the loss of information, measured in nats (base $e$ +bits), incurred when using an approximation of the PDF $\hat{P}(z)$ instead of +the best possible representation of the PDF $P(z)$, given by the +Kullback-Leibler divergence (KLD), which is defined as \begin{align} \label{eq:kld} \mathrm{KLD}[P(z) || \hat{P}(z)] &= \int_{-\infty}^{\infty}\ P(z)\ \log\left[\frac{P(z)}{\hat{P}(z)}\right]\ dz, \end{align} -where $\log$ is the natural logarithm throughout this paper. +where $\log$ is the natural logarithm throughout this paper unless indicated +otherwise. +Because there is in general no closed-form expression for the KLD, we calculate +the discrete KLD +\begin{align} + \label{eq:kld_approx} + \mathrm{KLD}[P(z) || \hat{P}(z)] &\approx +\delta_{ff}\sum_{z=z_{1}}^{z_{N_{ff}}}\ P(z)\ +\log\left[\frac{P(z)}{\hat{P}(z)}\right] +\end{align} +using evaluations of the PDF under each format on a very fine, regular grid +$(z_{1}, z_{2}, \dots, z_{N_{ff}-1}, z_{N_{ff}})$ with resolution +$\delta_{ff}\ll\delta_{f}$. The most important feature of the KLD is its asymmetry; it is not a distance, like the root mean square error, that is the same from $P(z)$ to $P'(z)$ as it @@ -362,18 +367,6 @@ \subsection{Comparison Metrics} We review the properties of the KLD and provide some intuition for it in the Appendix. -Because there is in general no closed-form expression for the KLD, we calculate -the discrete KLD -\begin{align} - \label{eq:kld_approx} - \mathrm{KLD}[P(z) || \hat{P}(z)] &\approx -\delta_{ff}\sum_{z=z_{1}}^{z_{N_{ff}}}\ P(z)\ -\log\left[\frac{P(z)}{\hat{P}(z)}\right] -\end{align} -using evaluations of the PDF under each format on a very fine, regular grid -$(z_{1}, z_{2}, \dots, z_{N_{ff}-1}, z_{N_{ff}})$ with resolution -$\delta_{ff}\ll\delta_{f}$. - \subsubsection{Individual \pz s} \label{sec:individual_metric} @@ -384,6 +377,10 @@ \subsubsection{Individual \pz s} and then characterize the distribution of KLD values (which is itself a PDF) by its first, second, and third moments (the mean, variance, and kurtosis, respectively). +We also calculate the percent error on the moments of each \pz\ under all +parametrizations and use the median and interquartile range of the moment +percent error distribution as another metric of the accuracy of individual \pz\ +parametrizations. We use these aggregate statistics to observe how the approximate individual \pz s for each dataset vary with the choice of parametrization. @@ -399,14 +396,21 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} \label{eq:nz} \hat{n}(z) &\equiv \frac{1}{N_{g}}\ \sum_{k=1}^{N_{g}}\ \hat{p}_{k}(z). \end{align} -Here, the estimator is normalized so that it, too, is a PDF. +We refer to $\hat{n}(z)$ as the stacked estimator of the redshift distribution. While we do not recommend this approach to estimating the redshift distribution (see Malz and Hogg, et al.\ (in preparation)), we use it here on the assumption that any metric calculated on a more principled estimator will have similar behavior with respect to the parametrization of the \pz\ catalog. -Our primary metric is therefore the KLD \textit{from} the stacked estimator of -a catalog of evaluations of reconstructed \pz s \textit{to} the stacked -estimator of a catalog of evaluations of the original, high-resolution \pz s. + +As the stacked estimator is normalized so that it, too, is a PDF (though in the +literature it is often subject to the fallacy conflating a sum and an integral, +first mentioned in Sec. \ref{sec:bins}), the KLD \textit{from} the stacked +estimator of a catalog of evaluations of reconstructed \pz s \textit{to} the +stacked estimator of a catalog of evaluations of the original, high-resolution +\pz s serves as a metric for a specific science use case of \pz s. +Because the accuracy of lower-order moments of the redshift distribution +function dominates the weak lensing error budget, we also compare the percent +error on the first three moments of $\hat{n}(z)$. \section{Photo-z Test Data} @@ -480,7 +484,8 @@ \subsection{\Mgdata data mock catalog} sharply peaked, as if coming from brighter photometric data due to the conservative cuts in photometric magnitudes of this dataset. We produce reference \pz s for the analysis by fitting a three-component -Gaussian mixture model to each \pz\ in the catalog. +Gaussian mixture model to each \pz\ in the catalog, where the number of +components was chosen to equal the median modality of the gridded \pz s. We then calculate the three approximations to each \pz\ and evaluate their accuracy using the metrics described above. @@ -525,7 +530,8 @@ \subsection{\Ssdata mock catalog} The exceptional depth of the dataset also leads us to expect the presence of broad \pz s. We produced reference \pz s for the analysis by fitting a five-component -Gaussian mixture model to each gridded \pz\ in the catalog. +Gaussian mixture model to each gridded \pz\ in the catalog, where the number of +components was chosen to equal the median modality of the gridded \pz s. We then calculated the three different approximations to each \pz, and evaluated their accuracy using the metrics described above. @@ -533,17 +539,81 @@ \subsection{\Ssdata mock catalog} \section{Results \& Discussion} \label{sec:results} - - We calculate the metrics of Section~\ref{sec:metric} on 10 random instantiations of catalogs of $N_{g}=100$ galaxies drawn randomly from each of the datasets discussed in Section~\ref{sec:data} and with each of $N_{f}=3,\ 10,\ 30,\ 100$ stored parameters. We then illustrate how our results could be used to choose an appropriate parametrization for each dataset given constraints on the distribution of KLDs -of individual \pz s, the KLD for $\hat{n}(z)$, or $N_{f}$ +or moment percent errors of individual \pz s, the KLD or moment percent error +of $\hat{n}(z)$, or the available storage capacity. + + +\subsection{Individual \pz s} +\label{sec:individual_results} + +We compare our three parametrizations on the basis of the distributions of the +KLD calculated for every \pz\ in the dataset's ensemble. +An example of the individual \pz\ KLD distribution is shown in +Figure~\ref{fig:individual} with $N_{f}=10$. + +\begin{figure} + \begin{center} + \includegraphics[width=\columnwidth]{figures/individual_kld.pdf} + \caption{The distribution of log-KLD values for $N_{g}=100$ \pz s from the +\mgdata dataset with $N_{f}=10$ over the quantiles (purple with dashed border), +samples (green with dash-dotted border), and histogram (orange with dotted +border) formats. + For the individual \pz s, the piecewise constant format has a lower median +KLD than the samples or quantile formats, which are comparable to one another. + \label{fig:individual}} + \end{center} +\end{figure} + +To distill what is observed in plots like Figure~\ref{fig:individual} for both +datasets and all parametrizations, we compare the moments of the distributions +of metric values for the distribution of the KLDs of individual \pz s under +each parametrization, summarized in Figure~\ref{fig:moments}. +While it is obvious that one would like the mean (first moment) of the KLD +distribution to be low, interpretation of higher-order moments is less clear. +In a science application that is robust to \pz\ outliers, a parametrization +with a high variance (second moment) may be acceptable, whereas in another +science application that simply requires well-characterized errors could +tolerate a higher mean in exchange for a lower variance. +To meaningfully interpret the KLDs of individual \pz s, it will be necessary +for those using \pz s in their science to calculate the requirements on the +acceptable degree of information loss. + +\begin{figure*} + \begin{center} + \includegraphics[width=\columnwidth]{graham_pz_kld.pdf} +\includegraphics[width=\columnwidth]{schmidt_pz_kld.pdf} + \caption{The mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of +the log-KLD distributions for each dataset as a function of $N_{f}$ for the +quantile (purple), samples (green), and histogram (orange) formats. + The moments and their error regions are offset about $N_{f}$ to improve +readability. + Left panel: The histogram format consistently minimizes the moments of the +log-KLD distribution of the \mgdata data mock catalog at low $N_{f}$, and the +moments are similar across formats at the highest $N_{f}=100$ with little +evolution with number of stored parameters. + Right panel: The\ssdata data mock catalog also shows the histogram format +performing well at low numbers of stored parameters with little evolution with +increasing $N_{f}$. + \label{fig:moments}} + \end{center} +\end{figure*} +\begin{figure*} + \begin{center} + \includegraphics[width=\columnwidth]{graham_pz_err.pdf} +\includegraphics[width=\columnwidth]{schmidt_pz_err.pdf} + \caption{ + \label{fig:pz_moment_errs}} + \end{center} +\end{figure*} + \subsection{Stacked $\hat{n}(z)$ estimator} \label{sec:stacked_results} @@ -635,8 +705,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \begin{figure*} \begin{center} - \includegraphics[width=\columnwidth]{figures/graham_kld.png} -\includegraphics[width=\columnwidth]{figures/schmidt_kld.png} + \includegraphics[width=\columnwidth]{figures/graham_nz_kld.pdf} +\includegraphics[width=\columnwidth]{figures/schmidt_nz_kld.pdf} \caption{KLD between $\hat{n}(z)$ derived from approximate pz\ representations and $\hat{n}(z)$ derived from the original, high-resolution \pz s as a function of number of stored parameters, for the three different @@ -670,57 +740,12 @@ \subsection{Stacked $\hat{n}(z)$ estimator} survey's \pz s. -\subsection{Individual \pz s} -\label{sec:individual_results} - -We also compare our three parametrizations on the basis of the distributions of -the KLD calculated for every \pz\ in the dataset's ensemble. -An example of the individual \pz\ KLD distribution is shown in -Figure~\ref{fig:individual} with $N_{f}=10$. - -\begin{figure} - \begin{center} - \includegraphics[width=\columnwidth]{figures/individual_kld.pdf} - \caption{The distribution of log-KLD values for $N_{g}=100$ \pz s from the -\mgdata dataset with $N_{f}=10$ over the quantiles (purple with dashed border), -samples (green with dash-dotted border), and histogram (orange with dotted -border) formats. - For the individual \pz s, the piecewise constant format has a higher median -KLD than the samples or quantile formats, which are comparable to one another. - \label{fig:individual}} - \end{center} -\end{figure} - -To distill what is observed in plots like Figure~\ref{fig:individual} for both -datasets and all parametrizations, we compare the moments of the distributions -of metric values for the distribution of the KLDs of individual \pz s under -each parametrization, summarized in Figure~\ref{fig:moments}. -While it is obvious that one would like the mean (first moment) of the KLD -distribution to be low, interpretation of higher-order moments is less clear. -In a science application that is robust to \pz\ outliers, a parametrization -with a high variance (second moment) may be acceptable, whereas in another -science application that simply requires well-characterized errors could -tolerate a higher mean in exchange for a lower variance. -To meaningfully interpret the KLDs of individual \pz s, it will be necessary -for those using \pz s in their science to calculate the requirements on the -acceptable degree of information loss. - \begin{figure*} \begin{center} - \includegraphics[width=\columnwidth]{graham_moments.png} -\includegraphics[width=\columnwidth]{schmidt_moments.png} - \caption{The mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of -the log-KLD distributions for each dataset as a function of $N_{f}$ for the -quantile (purple), samples (green), and histogram (orange) formats. - The moments and their error regions are offset about $N_{f}$ to improve -readability. - Left panel: The samples format consistently minimizes the moments of the -log-KLD distribution of the \mgdata data mock catalog at low $N_{f}$, and the -moments are similar across formats at the highest $N_{f}=100$. - Right panel: The\ssdata data mock catalog exhibits no clear pattern at low -$N_{f}$ but the moments of all formats decrease at high $N_{f}$ with the -histogram format achieving the lowest moments in that regime. - \label{fig:moments}} + \includegraphics[width=\columnwidth]{graham_nz_err.pdf} +\includegraphics[width=\columnwidth]{schmidt_nz_err.pdf} + \caption{ + \label{fig:nz_moment_errs}} \end{center} \end{figure*} @@ -728,11 +753,9 @@ \subsection{Individual \pz s} - \section{Conclusions \& Future Directions} \label{sec:conclusions} - This work develops a principled approach to choosing a parametrization for storing a catalog of \pz s from a survey of known data quality to balance the accuracy of \pz s and science products thereof reconstructed from the stored @@ -856,6 +879,8 @@ \subsection*{Acknowledgments} \input{acknowledgments} +We would like to thank the LSST-DESC Publications Board and review committee +for helpful feedback on preparation of this paper. \input{contributions} From 5d9a29c7497fd886d03a7d4dba1755f29b006415 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 4 Oct 2017 18:31:20 -0400 Subject: [PATCH 86/96] lots of description in the results and discussion --- .../main.tex | 241 ++++++++++++------ 1 file changed, 166 insertions(+), 75 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 850e03b7..0070fd85 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -338,7 +338,7 @@ \subsection{Comparison Metrics} Kullback-Leibler divergence (KLD), which is defined as \begin{align} \label{eq:kld} - \mathrm{KLD}[P(z) || \hat{P}(z)] &= \int_{-\infty}^{\infty}\ P(z)\ + \mathrm{KLD}[\hat{P}(z) | P(z)] &= \int_{-\infty}^{\infty}\ P(z)\ \log\left[\frac{P(z)}{\hat{P}(z)}\right]\ dz, \end{align} where $\log$ is the natural logarithm throughout this paper unless indicated @@ -347,7 +347,7 @@ \subsection{Comparison Metrics} the discrete KLD \begin{align} \label{eq:kld_approx} - \mathrm{KLD}[P(z) || \hat{P}(z)] &\approx + \mathrm{KLD}[\hat{P}(z) | P(z)] &\approx \delta_{ff}\sum_{z=z_{1}}^{z_{N_{ff}}}\ P(z)\ \log\left[\frac{P(z)}{\hat{P}(z)}\right] \end{align} @@ -367,20 +367,39 @@ \subsection{Comparison Metrics} We review the properties of the KLD and provide some intuition for it in the Appendix. +Additionally, we employ the percent error +\begin{align} + \label{eq:percent_error} + \mathrm{P.E.}[M_{m}[\hat{P}(z)] | M_{m}[P(z)]] &= \frac{M_{m}[P(z)] - +M_{m}[\hat{P}(z)]}{M_{m}[P(z)]}\times100\% +\end{align} +of the moments +\begin{align} + \label{eq:moment} + M_{m}[P(z)] &= \int_{-\infty}^{\infty} z^{m}\ P(z)\ dz\ \approx\ +\delta_{ff}\sum_{z=z_{1}}^{z_{N_{ff}}}\ z^{m}\ P(z) +\end{align} + of a PDF. +We note that $M_{0}[(P(z)]=1$ for all properly normalized probability +distributions, $M_{1}[(P(z)]=\bar{z}$ is the mean, $M_{2}[(P(z)]$ is the +variance, and $M_{3}[(P(z)]$ is the kurtosis. +Though the first few moments are not in general sufficient to characterize a +highly structured probability distribution, they are included in this analysis +because they can prove useful in setting ballpark estimates of the influence of +different systematics in various science cases. + \subsubsection{Individual \pz s} \label{sec:individual_metric} Some science applications rely on the recovery of individual galaxy \pz s that, -for example, may be used as the basis for targeting spectroscopic follow up for -a variety of science applications. +for example, may be used as the basis for targeting spectroscopic follow up. For this purpose, we calculate the KLD of each individual \pz\ in our catalogs and then characterize the distribution of KLD values (which is itself a PDF) by -its first, second, and third moments (the mean, variance, and kurtosis, -respectively). -We also calculate the percent error on the moments of each \pz\ under all -parametrizations and use the median and interquartile range of the moment -percent error distribution as another metric of the accuracy of individual \pz\ -parametrizations. +its $m=1,\ 2,\ 3$ moments. +We also calculate the percent error on the $m=1,\ 2,\ 3$ moments of each \pz\ +under all parametrizations and use the median and interquartile range of the +moment percent error distribution $p(M_{m}[\hat{p}_{i}(z)])$ as another metric +of the fidelity of individual \pz\ parametrizations. We use these aggregate statistics to observe how the approximate individual \pz s for each dataset vary with the choice of parametrization. @@ -398,9 +417,10 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} \end{align} We refer to $\hat{n}(z)$ as the stacked estimator of the redshift distribution. While we do not recommend this approach to estimating the redshift distribution -(see Malz and Hogg, et al.\ (in preparation)), we use it here on the assumption -that any metric calculated on a more principled estimator will have similar -behavior with respect to the parametrization of the \pz\ catalog. +(see Malz and Hogg, et al.\ (in preparation) for an alternative method), we use +it here on the assumption that any metric calculated on a more principled +estimator will have similar behavior with respect to the parametrization of the +\pz\ catalog. As the stacked estimator is normalized so that it, too, is a PDF (though in the literature it is often subject to the fallacy conflating a sum and an integral, @@ -410,7 +430,7 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} \pz s serves as a metric for a specific science use case of \pz s. Because the accuracy of lower-order moments of the redshift distribution function dominates the weak lensing error budget, we also compare the percent -error on the first three moments of $\hat{n}(z)$. +error on the $m=1,\ 2,\ 3$ moments of $\hat{n}(z)$. \section{Photo-z Test Data} @@ -419,8 +439,8 @@ \section{Photo-z Test Data} With the expectation that the optimal parametrization for approximating \pz s may differ according to the properties of the original photometric data, we demonstrate a procedure for vetting \pz\ parametrizations on a pair of mock -datasets, each intended to be realistic projections of the anticipated LSST \pz -s. +datasets, each intended to be realistic projections of subsets of the +anticipated LSST \pz s. All \pz s were fit using the publicly available Bayesian Photometric Redshift (BPZ) code \citep{benitez_bayesian_2000}, which employs spectral energy distribution (SED) fitting to a template library. @@ -433,12 +453,29 @@ \section{Photo-z Test Data} output by a representative \pz\ fitting code. \citep[See][Schmidt, et al.\ in preparation for other work comparing the accuracy of \pz s produced by different methods.]{tanaka_photometric_2017} +As BPZ is a widely used and well established method, we assume that the \pz s +produced by it are of representative complexity. +The default format of BPZ is a $N_{ff}>200$ gridded parametrization with +resolution exceeding the available storage for any planned survey. Because we believe that each galaxy has an underlying redshift interim posterior probability distribution that is a continuous function, to which the output of BPZ is itself a high-resolution approximation in the form of -evaluations on a grid, we fit the gridded \pz\ with a Gaussian mixture model +evaluations on a grid, we fit each gridded \pz\ with a Gaussian mixture model that we designate as the reference representation for our accuracy tests. +\begin{figure*} + \begin{center} + \includegraphics[width=\columnwidth]{figures/graham_pzs.pdf} + \includegraphics[width=\columnwidth]{figures/schmidt_pzs.pdf} + \caption{ + Example \pz s from the two mock LSST datasets. + Left: The \mgdata mock photometry yields largely narrow, unimodal \pz s. + Right: The \ssdata mock photometry contains a higher proportion of broad +and/or multimodal \pz s. + \label{fig:example_pzs}} + \end{center} +\end{figure*} + \subsection{\Mgdata data mock catalog} \label{sec:graham} @@ -468,28 +505,20 @@ \subsection{\Mgdata data mock catalog} and allow BPZ to use the $i$-band as a magnitude prior during the photo-$z$ fit. The \pz s from BPZ are in the form of $N_{ff} = 351$ evaluations of the probability density on a regular grid of redshifts $0.01 < z < 3.51$, a -subsample of which are plotted in Figure~\ref{fig:graham_pzs}. - -\begin{figure} - \begin{center} - \includegraphics[width=\columnwidth]{figures/graham_pzs.pdf} - \caption{Example \pz s from the mock LSST data of Graham, et al.\ (in -preparation). - The \mgdata mock photometry yields largely narrow, unimodal \pz s. - \label{fig:graham_pzs}} - \end{center} -\end{figure} +subsample of which are plotted in the left panel of +Figure~\ref{fig:example_pzs}. As the figure shows, the \pz s from this dataset tend to be unimodal and sharply peaked, as if coming from brighter photometric data due to the conservative cuts in photometric magnitudes of this dataset. We produce reference \pz s for the analysis by fitting a three-component Gaussian mixture model to each \pz\ in the catalog, where the number of -components was chosen to equal the median modality of the gridded \pz s. +components was chosen to be the $99^{\mathrm{th}}$ percentile of the modality +distribution of the gridded \pz s. We then calculate the three approximations to each \pz\ and evaluate their accuracy using the metrics described above. -\subsection{\Ssdata mock catalog} +\subsection{\Ssdata data mock catalog} \label{sec:schmidt} Our second dataset is an independent simulation of the expected LSST galaxy @@ -511,18 +540,7 @@ \subsection{\Ssdata mock catalog} Buzzard catalog. BPZ produces \pz s in the format of probability density evaluations on a regular grid of $N_{ff}=211$ redshifts $0.005\leq z\leq2.105$, a subsample of -which are plotted in Figure~\ref{fig:schmidt_pzs}. - -\begin{figure} - \begin{center} - \includegraphics[width=\columnwidth]{figures/schmidt_pzs.pdf} - \caption{Example \pz s from the mock LSST data of deRose, et al.\ (in -preparation). - This sample contains a higher proportion of broad and/or multimodal \pz s, -as if from the \ssdata data. - \label{fig:schmidt_pzs}} - \end{center} -\end{figure} +which are plotted in the right panel of Figure~\ref{fig:example_pzs}. Even with six filters spanning the optical, there are known degeneracies (e.~g.~the Lyman/Balmer break degeneracy) that lead us to expect the presence @@ -531,7 +549,8 @@ \subsection{\Ssdata mock catalog} broad \pz s. We produced reference \pz s for the analysis by fitting a five-component Gaussian mixture model to each gridded \pz\ in the catalog, where the number of -components was chosen to equal the median modality of the gridded \pz s. +components was chosen to equal the $99^{\mathrm{th}}$ percentile of the +modality distribution of the gridded \pz s. We then calculated the three different approximations to each \pz, and evaluated their accuracy using the metrics described above. @@ -553,10 +572,9 @@ \subsection{Individual \pz s} \label{sec:individual_results} We compare our three parametrizations on the basis of the distributions of the -KLD calculated for every \pz\ in the dataset's ensemble. -An example of the individual \pz\ KLD distribution is shown in -Figure~\ref{fig:individual} with $N_{f}=10$. - +KLD calculated for every \pz\ in the dataset. +An example of an individual \pz\ KLD distribution for the \mgdata dataset with +$N_{f}=10$ is shown in Figure~\ref{fig:individual}. \begin{figure} \begin{center} \includegraphics[width=\columnwidth]{figures/individual_kld.pdf} @@ -564,16 +582,20 @@ \subsection{Individual \pz s} \mgdata dataset with $N_{f}=10$ over the quantiles (purple with dashed border), samples (green with dash-dotted border), and histogram (orange with dotted border) formats. - For the individual \pz s, the piecewise constant format has a lower median -KLD than the samples or quantile formats, which are comparable to one another. + In this instantiation, the samples format has a lower median KLD than the +quantiles format, which has a lower median KLD than the piecewise constant +format. Note that the distributions are over log-KLD, so the ordering of the +formats by the breadth of the log-KLD distribution is the same as the order by +the median. \label{fig:individual}} \end{center} \end{figure} -To distill what is observed in plots like Figure~\ref{fig:individual} for both -datasets and all parametrizations, we compare the moments of the distributions -of metric values for the distribution of the KLDs of individual \pz s under -each parametrization, summarized in Figure~\ref{fig:moments}. +To distill what is observed in the ten instantiations of plots like +Figure~\ref{fig:individual} for both datasets and all parametrizations, we +compare the moments of the distributions of metric values for the distribution +of the KLDs of individual \pz s under each parametrization, summarized in +Figure~\ref{fig:moments}. While it is obvious that one would like the mean (first moment) of the KLD distribution to be low, interpretation of higher-order moments is less clear. In a science application that is robust to \pz\ outliers, a parametrization @@ -583,37 +605,106 @@ \subsection{Individual \pz s} To meaningfully interpret the KLDs of individual \pz s, it will be necessary for those using \pz s in their science to calculate the requirements on the acceptable degree of information loss. - \begin{figure*} \begin{center} - \includegraphics[width=\columnwidth]{graham_pz_kld.pdf} -\includegraphics[width=\columnwidth]{schmidt_pz_kld.pdf} - \caption{The mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of -the log-KLD distributions for each dataset as a function of $N_{f}$ for the -quantile (purple), samples (green), and histogram (orange) formats. - The moments and their error regions are offset about $N_{f}$ to improve -readability. - Left panel: The histogram format consistently minimizes the moments of the -log-KLD distribution of the \mgdata data mock catalog at low $N_{f}$, and the -moments are similar across formats at the highest $N_{f}=100$ with little -evolution with number of stored parameters. - Right panel: The\ssdata data mock catalog also shows the histogram format -performing well at low numbers of stored parameters with little evolution with -increasing $N_{f}$. + \includegraphics[width=\columnwidth]{graham_pz_kld.pdf} + \includegraphics[width=\columnwidth]{schmidt_pz_kld.pdf} + \caption{ + The mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of the +log-KLD distributions for each dataset as a function of $N_{f}$ for the +quantile (purple), samples (green), and histogram (orange) formats with +$1-\sigma$ Gaussian error bars based on ten instantiations, where the moments +and their error regions are offset around $N_{f}$ to improve readability. + Left panel: The \mgdata mock catalog. + Right panel: The \ssdata mock catalog. \label{fig:moments}} \end{center} \end{figure*} - +Figure~\ref{fig:moments} is rich in information. +For both datasets, the behavior of the first three log-moments of the log-KLD +distribution is highly correlated for a given format and number of parameters. +The \mgdata dataset has higher log-KLD log-moments than the \ssdata dataset at +all $N_{f}$, meaning information loss is enhanced for more strongly featured +data; this is not a surprising observation because the narrow, unimodal \pz s +of the \mgdata dataset have long tails of very low probability that are +emphasized by the KLD. +The \ssdata dataset shows almost no change in the log-KLD log-moments between +$N_{f}=3$ and $N_{f}=10$ parameters, but both datasets otherwise exhibit a +steady decrease in all moments for the quantile and samples formats as $N_{f}$ +increases. +The log-KLD log-moments are higher for quantiles than for samples for both +datasets, except at $N_{f}=100$ for the \mgdata dataset. +The histogram format's log-KLD log-moments are higher than for other formats at +low $N_{f}$ and steadily decrease in a manner similar to the other formats, +except at the highest $N_{f}$ values where the histogram format's log-KLD +log-moments decrease much more quickly. +The error bars on the log-KLD log-moments increase at high $N_{f}$ for all +formats on both datasets beyond what one would expect simply based on the log +scaling. + +We also examine the percent error on the first three moments of the \pz s under +each approximation, using the base-10 log for interpretability. +Because the distribution of moment percent errors is highly non-Gaussian due to +a small number ($<1\%$) of truly extreme outliers for both datasets, across all +$N_{f}$ and all formats, we substitute the interquartile range for traditional +$1-\sigma$ Gaussian error bars. \begin{figure*} \begin{center} - \includegraphics[width=\columnwidth]{graham_pz_err.pdf} -\includegraphics[width=\columnwidth]{schmidt_pz_err.pdf} + \includegraphics[width=\columnwidth]{graham_pz_err.pdf} + \includegraphics[width=\columnwidth]{schmidt_pz_err.pdf} \caption{ + The $\log_{10}$-percent error on the mean ($\bigstar$), variance ($+$), and +kurtosis ($\times$) of the \pz s for each dataset as a function of $N_{f}$ for +the quantile (purple), samples (green), and histogram (orange) formats with +interquartile range error bars based on ten instantiations, where the +$\log_{10}$-percent errors and their interquartile ranges are offset around +$N_{f}$ to improve readability. + Left panel: The \mgdata dataset. + Right panel: The \ssdata dataset. \label{fig:pz_moment_errs}} \end{center} \end{figure*} +Though the $\log_{10}$-percent error of the moments of individual \pz s also +exhibits significant correlation between the moments for a given +parametrization, the behavior is otherwise markedly different from that of the +log-moments of the \pz\ ensemble's log-KLD distribution. +The percent errors on the moments of the approximate \pz s are overall lower in +the \mgdata dataset than the \ssdata dataset over the same range of number of +stored parameters; this is expected because there is simply less information to +capture in the \mgdata dataset. + +For the \mgdata dataset, the quantile format enables sub-percent errors in \pz\ +moments at the lowest $N_{f}$, a level that cannot be achieved by the histogram +format until $N_{f}=100$ parameters are stored and by samples at fewer than +$N_{f}=100$ stored parameters. +Furthermore, for the \mgdata dataset, the quantile format minimizes the percent +error at all $N_{f}$, whereas the samples format is better than the histogram +format at low $N_{f}$ but the histogram format is better than the samples +format at high $N_{f}$. +Again, this behavior is expected of the narrow, unimodal \pz s of the \mgdata +dataset because large histogram bins are ineffective at capturing small-scale +structure and including more samples does not significantly improve +preservation of such features. + +Though the \ssdata dataset has an ordering of the percent error on the moments +at $N_{f}=3$ that is similar to that of the \mgdata dataset, all formats, not +just the histogram format, have shockingly high errors, meaning it is highly +inappropriate to use so few parameters for such a faint dataset even if it may +be acceptable for a brighter one. +In the \ssdata dataset, the inclusion of $N_{f}=30$ parameters decreases the +percent error of the moments of the histogram format more significantly than +the quantile or samples formats, to the point that the histogram and quantiles +formats are comparable. +At higher $N_{f}$ in the \ssdata dataset, the quantile and histogram formats +continue to improve faster than the samples format, with the percent errors on +the \pz\ moments being consistently lower for the quantile format than for the +histogram format. +With the broad, multimodal \pz s of the \ssdata dataset, sub-percent accuracy +in the moments can only be achieved with $N_{f}\geq30$ with the quantile format +and $N_{f}=100$ with the histogram format. + \subsection{Stacked $\hat{n}(z)$ estimator} \label{sec:stacked_results} @@ -673,10 +764,10 @@ \subsection{Stacked $\hat{n}(z)$ estimator} consistently higher $\hat{n}(z)$ KLD but one that does not improve with increasing $N_{f}$. This poor performance independent of resource allocation is actually expected -because, due to the narrow, unimodal \pz s of Figure~\ref{fig:graham_pzs}, a -great majority of the probability density will fall into a single bin $c^{\ -h}_{i=j}$ with all other $c^{\ h}_{i\neq j}\approx 0$ \textit{regardless} of -$N_{f}$. +because, due to the narrow, unimodal \pz s of the left panel of +Figure~\ref{fig:example_pzs}, a great majority of the probability density will +fall into a single bin $c^{\ h}_{i=j}$ with all other $c^{\ h}_{i\neq j}\approx +0$ \textit{regardless} of $N_{f}$. The quantile format consistently produces the lowest $\hat{n}(z)$ KLDs, with a larger improvement over the samples format as $N_{f}$ increases. The improvement with larger $N_{f}$ is a surprising result because the shot From 8107e1fbd0c1c0bf1ef8d90c35a2b1b4f60c92df Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 5 Oct 2017 16:32:35 -0400 Subject: [PATCH 87/96] updating analysis pipeline, hopefully for the last time --- .../research/analysis.ipynb | 606 +++++++++++++----- 1 file changed, 432 insertions(+), 174 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index 382e0d6b..bd364273 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -108,6 +108,67 @@ " return(pdfs)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(Sometimes it's nice to specify the indices of problematic catalog entries for debugging purposes.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# indices = '17973 55916 27263 80958 92 105911 8785 33319 65920 40503'\n", + "# indices += ' 10352 80751 34891 13496 25851 132 11069 100722 27470 68111'\n", + "# indices += ' 106503 8712 22089 90708 23051 9397 65576 24531 47199 91570'\n", + "# indices += ' 32487 89396 99692 37710 61251 11427 71400 78880 2908 45962'\n", + "# indices += ' 928 94445 71626 107949 87846 15247 73184 22959 19501 74407'\n", + "# indices += ' 87224 46537 108482 49046 79293 96142 41955 3846 11222 98502'\n", + "# indices += ' 1435 62134 7695 23080 46586 79245 107572 3463 49494 89434'\n", + "# indices += ' 87071 5758 67784 16225 42432 17900 64149 52005 30800 107278'\n", + "# indices += ' 104994 101667 72678 70245 101053 57744 96752 79002 54929 94621'\n", + "# indices += ' 42103 45776 107058 25019 70930 6414 68584 105571 13166 1207'\n", + "# indices = '27150 11288 54516 101230 61485 19623 50259 48744 6427 62300'\n", + "# indices = '92250 3847 83378 12742 43667 10569 31701 26828 29136 11683'\n", + "# indices += ' 43998 96531 34802 14008 5083 94955 106754 86870 23547 93601'\n", + "# indices += ' 5869 5157 100074 316 96728 75727 2662 41331 41474 93074'\n", + "# indices += ' 784 105537 39558 108553 46954 41754 47130 54528 34920 58321'\n", + "# indices += ' 70453 108822 98370 74756 25879 80431 61434 65169 46466 6126'\n", + "# indices += ' 6466 101890 108524 96272 25660 81478 92854 24288 88348 7223'\n", + "# indices += ' 58928 49020 2141 25304 75384 34641 65491 45164 44332 107756'\n", + "# indices += ' 91896 75871 87481 24340 7056 80483 49792 20459 70865 109372'\n", + "# indices += ' 34026 53985 60089 4565 38033 5947 51576 3856 24570 3438'\n", + "# indices += ' 22431 60534 81397 16680 88137 14027 86049 21710 96081 13413'\n", + "# indices = '9604 43445 88556 50193 1408 76204 104276 48054 104136 58073'\n", + "# indices += ' 10084 32784 101990 59630 78907 27352 13652 56942 27011 101717'\n", + "# indices += ' 105840 73315 41895 21820 105664 18054 94791 29329 99846 56379'\n", + "# indices += ' 13504 45749 32028 45607 56649 2589 24215 9117 97779 27706'\n", + "# indices += ' 75812 14868 59759 41794 87621 99253 83269 23886 83001 67509'\n", + "# indices += ' 37047 28435 72226 64501 57296 26271 13468 50067 26576 5017'\n", + "# indices += ' 827 22780 65501 78088 75632 28483 108573 6032 60818 26916'\n", + "# indices += ' 99955 8065 89647 4756 91047 73095 12845 10803 52331 62513'\n", + "# indices += ' 6845 26550 94541 3467 37175 101384 96101 109303 110300 53161'\n", + "# indices += ' 41110 31736 70330 11116 58618 52321 68545 87421 61994 48439'\n", + "# # indices = [ 14619, 66891, 67914, 20931, 97633, 7202, 46756, 109704, 93110, 59915]\n", + "# # 35851, 65657, 3292, 3838, 10862, 50447, 5316, 49503, 39363, 110951\n", + "# # 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600\n", + "# # 94746 59924 73186 21069 2579 34780 4623 93464 44621 29828\n", + "# # 111140 74609 34411 42554 32981 34904 10264 1667 42037 23986\n", + "# # 51790 98555 94971 58683 99752 87479 67286 89575 36950 84283\n", + "# # 89866 64959 53221 102714 48642 37379 95257 11874 70743 15107\n", + "# # 93651 48304 93829 64956 94703 107021 88900 7849 88808 71397\n", + "# # 26862 74765 89470 2741 56888 94275 40017 85989 94077 66553\n", + "# # 74666 90417 12553 21928 14720 53798 30290 109516 37033 95242]\n", + "# # indices = [ 59935, 44820, 26407, 84617, 98728, 35216, 73968, 105130, 844, 63892]\n", + "# indices = map(int, indices.split())\n", + "# all_randos = [[indices for size in sizes] for name in names]" + ] + }, { "cell_type": "code", "execution_count": null, @@ -372,7 +433,7 @@ " inits[f][ff] = None\n", " \n", " qstart = timeit.default_timer()\n", - " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=False)\n", + " inits['quantiles']['quantiles'] = Eq.quantize(N=N_floats, vb=True)\n", " print('finished quantization in '+str(timeit.default_timer() - qstart))\n", " hstart = timeit.default_timer()\n", " inits['histogram']['histogram'] = Eh.histogramize(N=N_floats, binrange=zlim, vb=False)\n", @@ -555,14 +616,14 @@ "# kld_hist = plt.hist(pz_klds[key], color=colors[key], alpha=a, histtype='stepfilled', edgecolor='k',\n", "# label=key, normed=True, bins=plot_bins, linestyle=stepstyles[key], ls=stepstyles[key], lw=2)\n", " hist_max.append(max(kld_hist[0]))\n", - " print(loc+': min KLD='+str(np.argmin(logdata)))\n", + "# print(loc+': min log[KLD]='+str(logdata)+' at N='+str(np.argmin(logdata)))\n", " plt.legend()\n", " plt.ylabel('frequency', fontsize=14)\n", "# plt.xlabel(r'$\\log[\\mathrm{KLD}]$', fontsize=14)\n", - " plt.xlabel(r'$\\mathrm{KLD}$', fontsize=14)\n", + " plt.xlabel(r'$\\log[\\mathrm{KLD}]$', fontsize=14)\n", "# plt.xlim(min(dist_min), max(dist_max))\n", - "# plt.ylim(0., max(hist_max))\n", - " plt.title(dataset_info[dataset_key]['name']+r' data $p(\\mathrm{KLD})$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", + " plt.ylim(0., max(hist_max))\n", + " plt.title(dataset_info[dataset_key]['name']+r' data $p(\\log[\\mathrm{KLD}])$ with $N_{f}='+str(N_floats)+r'$', fontsize=16)\n", " plt.savefig(loc+'.pdf', dpi=250)\n", " plt.close()" ] @@ -793,6 +854,7 @@ "source": [ "# include second axis with mean KLD values?\n", "# somehow combining pz_kld_moments with this?\n", + "# something is not right here with limits, need to check after nersc run\n", "def plot_kld_stats(name, size):\n", " a = 1./len(formats)\n", " topdir = os.path.join(name, str(size))\n", @@ -817,10 +879,10 @@ " to_plot[f].append(klds[f])\n", " for f in formats:\n", " to_plot[f] = np.array(to_plot[f])\n", - " delta_info = np.ones((len(floats), size))\n", + " delta_info = np.zeros((len(floats), size))\n", " delta_info[:-1] = to_plot[f][:-1] - to_plot[f][1:]\n", " delta_info[-1] = to_plot[f][-1]\n", - " delta_info[delta_info < qp.utils.epsilon] = qp.utils.epsilon\n", + "# delta_info[delta_info < qp.utils.epsilon] = qp.utils.epsilon\n", "# log_delta_info = np.log(delta_info)\n", "# ax_one.plot(floats, log_delta_info)\n", " mean_deltas[f][i] = np.mean(delta_info, axis=1)\n", @@ -828,9 +890,9 @@ " indie_delta_kld_min.append(np.min(mean_deltas[f][i] - std_deltas[f][i]))\n", " indie_delta_kld_max.append(np.max(mean_deltas[f][i] + std_deltas[f][i]))\n", " ax_one.plot(floats, mean_deltas[f][i], color=colors[f], alpha=a, linestyle=styles[f])\n", - " ax_one.set_ylabel(r'$\\Delta\\mathrm{KLD}$')\n", - " ax_one.semilogy()\n", - " ax_one.set_ylim(np.min(indie_delta_kld_min), np.max(indie_delta_kld_max))\n", + " ax_one.set_ylabel(r'$\\Delta\\mathrm{KLD}$ (nats)')\n", + "# ax_one.semilogy()\n", + " ax_one.set_ylim(0., np.max(indie_delta_kld_max))\n", " ax_one.set_xlim(min(floats), max(floats))\n", " ax_one.set_xlabel('change in number of parameters')\n", " ax_one.semilogx()\n", @@ -845,20 +907,23 @@ " fig, ax = plt.subplots(figsize=(5, 5))\n", " for f in formats:\n", " mean_deltas[f] = np.array(mean_deltas[f])\n", - "# std_deltas[f] = np.array(std_deltas[f])\n", + " std_deltas[f] = np.array(std_deltas[f])\n", " global_delta_mean = np.mean(mean_deltas[f], axis=0)\n", - " global_delta_std = np.std(mean_deltas[f], axis=0)\n", - " x_cor = np.array([floats[:-1], floats[:-1], floats[1:], floats[1:]])\n", + " global_delta_std = np.sqrt(np.sum(mean_deltas[f]**2, axis=0))\n", + " print(global_delta_mean, global_delta_std)\n", + "# x_cor = np.array([floats[:-1], floats[:-1], floats[1:], floats[1:]])\n", " y_plus = global_delta_mean + global_delta_std\n", " y_minus = global_delta_mean - global_delta_std\n", + "# y_minus[y_minus < qp.utils.epsilon] = qp.utils.epsilon\n", " indie_delta_kld_min.append(np.min(y_minus))\n", " indie_delta_kld_max.append(np.max(y_plus))\n", - " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.)\n", + "# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", + "# ax.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.)\n", + " ax.fill_between(floats, y_minus, y_plus, color=colors[f], alpha=a, linewidth=0.)\n", " ax.plot(floats, global_delta_mean, color=colors[f], linestyle=styles[f], label=f)\n", - " ax.set_ylabel(r'$\\Delta\\mathrm{KLD}$')\n", - " ax.semilogy()\n", - " ax.set_ylim(np.min(indie_delta_kld_min), np.max(indie_delta_kld_max))\n", + " ax.set_ylabel(r'$\\Delta\\mathrm{KLD}$ (nats)')\n", + "# ax.semilogy()\n", + " ax.set_ylim(0., np.max(indie_delta_kld_max))\n", " ax.set_xlim(min(floats), max(floats))\n", " ax.set_xlabel('change in number of parameters')\n", " ax.semilogx()\n", @@ -940,7 +1005,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[\\mathrm{KLD}]$ log-moments', fontsize=16)\n", - " ax.legend(loc='lower right')\n", + " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -980,7 +1045,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\log[\\mathrm{KLD}]$ log-moments', fontsize=16)\n", - " ax.legend(loc='lower right')\n", + " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" @@ -990,16 +1055,17 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "def plot_pz_delta_moments(name, size):\n", " n_gals_use = size\n", + " extremum = np.zeros(n_moments_use)\n", " \n", " # should look like nz_moments\n", - " path = os.path.join(name, str(n_gals_use))\n", - " loc = os.path.join(path, 'pz_moment_deltas'+str(n_gals_use)+name)\n", + " path = os.path.join(name, str(size))\n", + " loc = os.path.join(path, 'pz_moment_deltas'+str(size)+name)\n", " with open(loc+'.hkl', 'r') as pz_file:\n", " pz_stats = hickle.load(pz_file)\n", " flat_floats = np.array(pz_stats['N_f']).flatten()\n", @@ -1038,27 +1104,48 @@ " f_factor = 0.05 * (s - 1)\n", " old_shape = np.shape(np.array(pz_stats[f][n]))\n", " new_shape = (old_shape[0], np.prod(old_shape[1:]))\n", - " data_arr = np.array(pz_stats[f][n]).reshape(new_shape)#go from n_floats*instantiations to instantiations*n_floats\n", + " data_arr = np.abs(np.array(pz_stats[f][n]).reshape(new_shape)) * 100.#go from n_floats*instantiations*n_gals n_floats*(n_gals*n_instantiations)\n", "# data_arr = np.median(data_arr, axis=2) * 100.\n", - " mean = np.mean(data_arr, axis=-1) * 100.\n", - " std = np.std(data_arr, axis=-1) * 100.\n", - " y_plus = mean + std\n", - " y_minus = mean - std\n", + "# data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1)* 100.#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", + "# mean = np.mean(data_arr, axis=0).flatten()\n", + "# std = np.std(data_arr, axis=0).flatten()\n", + "# mean = np.median(data_arr, axis=-1)\n", + " std = np.log10(np.percentile(data_arr, [25, 50, 75], axis=-1))\n", + " y_plus = std[-1]#mean + std\n", + " y_minus = std[0]#mean - std\n", + " mean = std[1]\n", "# y_cor = np.array([y_minus, y_plus, y_plus, y_minus])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", + "# print('before '+str((np.shape(data_arr), n, n_delta_max, n_delta_min, y_plus, y_minus)))\n", " n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", " n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " extremum = np.max(np.abs([n_delta_min[n],n_delta_max[n]]))+1.\n", - " ax_n.set_ylim(-1.*extremum, extremum)\n", + "# old_shape = np.shape(np.array(pz_stats[f][n]))\n", + "# new_shape = (old_shape[0], np.prod(old_shape[1:]))\n", + "# data_arr = np.array(pz_stats[f][n]).reshape(new_shape)#go from n_floats*instantiations to instantiations*n_floats\n", + "# # data_arr = np.array(pz_stats[f][n])\n", + "# # data_arr = np.median(data_arr, axis=2) * 100.\n", + "# mean = np.mean(data_arr, axis=1)\n", + "# std = np.std(data_arr, axis=1)\n", + "# y_plus = (mean + std) * 100.\n", + "# y_minus = (mean - std) * 100.\n", + "# # y_cor = np.array([y_minus, y_plus, y_plus, y_minus])\n", + "# ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", + "# ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", + "# print('before '+str((np.shape(data_arr), n, n_delta_max, n_delta_min, y_plus, y_minus)))\n", + "# n_delta_max[n] = np.max(n_delta_max[n], np.max(y_plus))\n", + "# n_delta_min[n] = np.min(n_delta_min[n], np.min(y_minus))\n", + "# print('after '+str((n_delta_max, n_delta_min)))\n", + " ax_n.set_ylabel(r'$\\log_{10}$-percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " extremum[n] = np.max(np.abs(np.array([n_delta_min[n], n_delta_max[n]]))) + 1.\n", + " ax_n.set_ylim(-1.*extremum[n], extremum[n])\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", - " ax.legend(loc='lower left')\n", + " ax.legend(loc=dataset_info[name]['legloc'])\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -1090,14 +1177,14 @@ " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, color=colors[f], alpha=a)\n", " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim(-1.*extremum, extremum)\n", + " ax_n.set_ylim(-10., 10.)#(-1.*extremum[n], extremum[n])\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[name]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='lower left')\n", + " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", + " ax.legend(loc='upper left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" @@ -1182,8 +1269,8 @@ " plt.semilogy()\n", " plt.semilogx()\n", " plt.xticks(flat_floats, [str(ff) for ff in flat_floats])\n", - " plt.ylim(min(kld_min) / 10., 10. * max(kld_max))\n", - " plt.xlim(min(flat_floats) / 3., max(flat_floats) * 3.)\n", + " plt.ylim(min(kld_min) / 3., 3. * max(kld_max))\n", + " plt.xlim(min(flat_floats), max(flat_floats))\n", " plt.xlabel(r'number of parameters', fontsize=14)\n", " plt.ylabel(r'KLD', fontsize=14)\n", " plt.legend(loc='upper right')\n", @@ -1199,18 +1286,18 @@ " plt.plot([10. * max(flat_floats), 10. * max(flat_floats)], [1., 10.], color=colors[f], label=f, linestyle=styles[f])\n", " kld_min.append(np.min(data_arr))\n", " kld_max.append(np.max(data_arr))\n", - " mean = np.mean(data_arr, axis=0)\n", - " std = np.std(data_arr, axis=0)\n", + " mean = np.mean(np.log(data_arr), axis=0)\n", + " std = np.std(np.log(data_arr), axis=0)\n", " x_cor = np.array([flat_floats[:-1], flat_floats[:-1], flat_floats[1:], flat_floats[1:]])\n", - " y_plus = mean + std\n", - " y_minus = mean - std\n", + " y_plus = np.exp(mean + std)\n", + " y_minus = np.exp(mean - std)\n", " y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " plt.plot(flat_floats, mean, color=colors[f], linestyle=styles[f])\n", + " plt.plot(flat_floats, np.exp(mean), color=colors[f], linestyle=styles[f])\n", " plt.fill(x_cor, y_cor, color=colors[f], alpha=a, linewidth=0.)\n", " plt.semilogy()\n", " plt.semilogx()\n", " plt.xticks(flat_floats, [str(ff) for ff in flat_floats])\n", - " plt.ylim(min(kld_min) / 10., 10. * max(kld_max))\n", + " plt.ylim(min(kld_min) / 3., 3. * max(kld_max))\n", " plt.xlim(min(flat_floats), max(flat_floats))\n", " plt.xlabel(r'number of parameters', fontsize=14)\n", " plt.ylabel(r'KLD', fontsize=14)\n", @@ -1270,16 +1357,26 @@ " f = formats[s]\n", " f_factor = 0.05 * (s - 1)\n", " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", - " mean = np.mean(data_arr, axis=0).flatten()\n", - " std = np.std(data_arr, axis=0).flatten()\n", - " y_plus = mean + std\n", - " y_minus = mean - std\n", + "# data_arr = np.abs(np.array(pz_stats[f][n]).reshape(new_shape)) * 100.#go from n_floats*instantiations*n_gals n_floats*(n_gals*n_instantiations)\n", + "# data_arr = np.median(data_arr, axis=2) * 100.\n", + "# data_arr = np.swapaxes(np.array(nz_stats[f][n]), 0, 1)* 100.#np.log(np.swapaxes(np.array(nz_stats[f]), 0, 1)[:][:][n])#go from n_floats*instantiations to instantiations*n_floats\n", + "# mean = np.mean(data_arr, axis=0).flatten()\n", + "# std = np.std(data_arr, axis=0).flatten()\n", + "# mean = np.median(data_arr, axis=-1)\n", + " std = np.log10(np.percentile(np.abs(data_arr), [25, 50, 75], axis=0))\n", + " y_plus = std[-1]#mean + std\n", + " y_minus = std[0]#mean - std\n", + " mean = std[1]\n", + "# mean = np.mean(data_arr, axis=0).flatten()\n", + "# std = np.std(data_arr, axis=0).flatten()\n", + "# y_plus = mean + std\n", + "# y_minus = mean - std\n", "# y_cor = np.array([y_minus[:-1], y_plus[:-1], y_plus[1:], y_minus[1:]])\n", - " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[key], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", + " ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", " nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " ax_n.set_ylabel(r'$\\log_{10}$-percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", " extremum = np.max(np.abs([nz_mean_min[n], nz_mean_max[n]]))+1.\n", " ax_n.set_ylim(-1. * extremum, extremum)\n", " ax.set_xscale('log')\n", @@ -1288,7 +1385,7 @@ " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='lower right')\n", + " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -1326,13 +1423,122 @@ " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='lower right')\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moment errors', fontsize=16)\n", + " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", " plt.close()" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def print_nz_moments(dataset_key, n_gals_use):\n", + " path = os.path.join(dataset_key, str(n_gals_use))\n", + " \n", + " dz = dataset_info[dataset_key]['delta_z']\n", + " z_grid = dataset_info[dataset_key]['z_grid']\n", + " full_stack = {}\n", + " all_moments = {}\n", + " for f in formats_plus:\n", + " full_stack[f] = []\n", + " all_moments[f] = []\n", + " for nf in range(len(floats)):\n", + " n_floats_use = floats[nf]\n", + " for f in formats_plus:\n", + " full_stack[f].append(np.zeros(len(z_grid)))\n", + " all_moments[f].append([])\n", + " for i in instantiations:\n", + " loc = os.path.join(path, 'nz_comp'+str(n_gals_use)+dataset_key+str(n_floats_use)+'_'+str(i))\n", + " with open(loc+'.hkl', 'r') as filename:\n", + " info = hickle.load(filename)\n", + "# z_grid = info['z_grid']\n", + " stacks = info['stacks']\n", + "# klds = info['klds']\n", + " for key in formats_plus:\n", + " full_stack[key][nf] += stacks[key]\n", + " for n in range(1, n_moments_use):\n", + " ngrid = z_grid**n\n", + " all_moments['truth'][nf].append(qp.utils.quick_moment(full_stack['truth'][nf], ngrid, dz))\n", + " for key in formats:\n", + " all_moments[key][nf].append((qp.utils.quick_moment(full_stack[key][nf], ngrid, dz) - all_moments['truth'][nf][-1]) / all_moments['truth'][nf][-1])\n", + " for f in formats:\n", + " all_moments[f] = np.array(all_moments[f])\n", + " print(dataset_key, n_gals_use, all_moments)\n", + " \n", + " in_x = np.log(floats)\n", + " a = 1./len(formats)\n", + " shapes = moment_shapes\n", + " marksize = 10\n", + " \n", + " def make_patch_spines_invisible(ax):\n", + " ax.set_frame_on(True)\n", + " ax.patch.set_visible(False)\n", + " for sp in ax.spines.values():\n", + " sp.set_visible(False)\n", + " \n", + " fig, ax = plt.subplots()\n", + " fig.subplots_adjust(right=1.)\n", + " ax_n = ax\n", + " for key in formats:\n", + " ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], alpha=a, linewidth=1)\n", + " for n in range(1, n_moments_use):\n", + " n_factor = 0.1 * (n - 2)\n", + " ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], facecolors='none', s=2*marksize, label=moment_names[n])\n", + "# truth = np.swapaxes(np.array(nz_stats['truth'][n]), 0, 1)\n", + " if n>1:\n", + " ax_n = ax.twinx()\n", + " rot_ang = 270\n", + " label_space = 15.\n", + " else:\n", + " rot_ang = 90\n", + " label_space = 0.\n", + " if n>2:\n", + " ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", + " make_patch_spines_invisible(ax_n)\n", + " ax_n.spines[\"right\"].set_visible(True)\n", + " for s in range(len(formats)):\n", + " f = formats[s]\n", + " f_factor = 0.05 * (s - 1)\n", + " data_arr = np.swapaxes(all_moments[f], 0, 1) * 100.\n", + " ax_n.plot(np.exp(in_x+n_factor), data_arr[n-1], linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, color=colors[f], alpha=a)\n", + " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + "# ax_n.set_ylim(-1. * extremum, extremum)\n", + " ax.set_xscale('log')\n", + " ax.set_xticks(floats)\n", + " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", + " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", + " ax.set_xlabel('number of parameters', fontsize=14)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moment errors', fontsize=16)\n", + " ax.legend(loc='lower left')\n", + " fig.tight_layout()\n", + " outloc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", + " fig.savefig(outloc+'_final.pdf', dpi=250)\n", + " plt.close()\n", + " \n", + " for nf in range(len(floats)):\n", + " n_floats_use = floats[nf]\n", + " plt.figure()\n", + " plt.plot(z_grid, full_stack['truth'][nf], color='black', lw=3, alpha=0.3, label='original')\n", + " for key in formats:\n", + " kld = qp.utils.quick_kl_divergence(full_stack['truth'][nf], full_stack[key][nf], dx=dz)\n", + " plt.plot(z_grid, full_stack[key][nf], color=colors[key], linestyle=styles[key], label=key+r' KLD='+str(kld)[:8])#+r'; '+str(all_moments[f][nf])+' percent error')\n", + " plt.xlabel(r'$z$', fontsize=14)\n", + " plt.ylabel(r'$\\hat{n}(z)$', fontsize=14)\n", + " plt.xlim(min(z_grid), max(z_grid))\n", + " # plt.ylim(0., max(nz_max))\n", + " plt.legend()\n", + " plt.title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ with $N_{f}='+str(n_floats_use)+r'$', fontsize=16)\n", + " outloc = os.path.join(path, 'global_nz'+str(n_gals_use)+dataset_key+str(n_floats_use))\n", + " plt.savefig(outloc+'.pdf', dpi=250)\n", + " plt.close()" + ] + }, { "cell_type": "markdown", "metadata": { @@ -1367,6 +1573,7 @@ " plotname = 'brighter'\n", " skip_rows = 1\n", " skip_cols = 1\n", + " legloc = 'upper right'\n", " elif name == 'ss':\n", " datafilename = 'test_magscat_trainingfile_probs.out'\n", " z_low = 0.005\n", @@ -1375,6 +1582,7 @@ " plotname = 'fainter'\n", " skip_rows = 1\n", " skip_cols = 1\n", + " legloc = 'lower left'\n", " dataset_info[name]['filename'] = datafilename \n", " \n", " dataset_info[name]['z_lim'] = (z_low, z_high)\n", @@ -1385,7 +1593,8 @@ " dataset_info[name]['delta_z'] = delta_z\n", "\n", " dataset_info[name]['N_GMM'] = nc_needed# will be overwritten later\n", - " dataset_info[name]['name'] = plotname" + " dataset_info[name]['name'] = plotname\n", + " dataset_info[name]['legloc'] = legloc" ] }, { @@ -1411,6 +1620,13 @@ "moment_shapes = ['o', '*', 'P', 'X']" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For debugging, specify the randomly selected PDFs." + ] + }, { "cell_type": "code", "execution_count": null, @@ -1422,11 +1638,12 @@ "#change all for NERSC\n", "\n", "floats = [3, 10, 30, 100]\n", - "sizes = [10]#[10, 100, 1000]\n", - "names = ['ss']#dataset_info.keys()\n", - "instantiations = range(0, 1)\n", + "sizes = [100]#[10, 100, 1000]\n", + "names = dataset_info.keys()\n", + "instantiations = range(0, 10)\n", "\n", - "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]" + "all_randos = [[np.random.choice(size, n_plot, replace=False) for size in sizes] for name in names]\n", + "# all_randos = [[np.random.choice(indices, n_plot, replace=False) for size in sizes] for name in names]" ] }, { @@ -1442,80 +1659,80 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ - "# # the \"pipeline\"\n", - "# global_start = timeit.default_timer()\n", - "# for n in range(len(names)):\n", - "# name = names[n]\n", + "# the \"pipeline\"\n", + "global_start = timeit.default_timer()\n", + "for n in range(len(names)):\n", + " name = names[n]\n", " \n", - "# dataset_start = timeit.default_timer()\n", - "# print('started '+name)\n", + " dataset_start = timeit.default_timer()\n", + " print('started '+name)\n", " \n", - "# pdfs = setup_dataset(name, skip_rows, skip_cols)\n", + " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", - "# for s in range(len(sizes)):\n", - "# size=sizes[s]\n", + " for s in range(len(sizes)):\n", + " size = sizes[s]\n", " \n", - "# size_start = timeit.default_timer()\n", - "# print('started '+name+str(size))\n", + " size_start = timeit.default_timer()\n", + " print('started '+name+str(size))\n", " \n", - "# path = os.path.join(name, str(size))\n", - "# if not os.path.exists(path):\n", - "# os.makedirs(path)\n", + " path = os.path.join(name, str(size))\n", + " if not os.path.exists(path):\n", + " os.makedirs(path)\n", " \n", - "# n_gals_use = size\n", + " n_gals_use = size\n", " \n", - "# randos = all_randos[n][s]\n", + " randos = all_randos[n][s]\n", " \n", - "# for i in instantiations:\n", + " for i in instantiations:\n", "# top_bonusdict = {}\n", - "# i_start = timeit.default_timer()\n", - "# print('started '+name+str(size)+' #'+str(i))\n", + " i_start = timeit.default_timer()\n", + " print('started '+name+str(size)+' #'+str(i))\n", " \n", - "# original = '_original'+str(i)\n", - "# pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# # plot = plot_examples(size, name, bonus=original)\n", + " original = '_original'+str(i)\n", + " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", + "# plot = plot_examples(size, name, bonus=original)\n", "# top_bonusdict[original] = ['-', 0.25]\n", " \n", - "# z_grid = dataset_info[name]['in_z_grid']\n", - "# N_comps = dataset_info[name]['N_GMM']\n", + " z_grid = dataset_info[name]['in_z_grid']\n", + " N_comps = dataset_info[name]['N_GMM']\n", " \n", - "# postfit = '_postfit'+str(i)\n", - "# catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# # plot = plot_examples(size, name, bonus=postfit)\n", + " postfit = '_postfit'+str(i)\n", + " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", + "# plot = plot_examples(size, name, bonus=postfit)\n", "# top_bonusdict[postfit] = ['-', 0.5]\n", " \n", - "# for n_floats_use in floats:\n", - "# # bonusdict = top_bonusdict.copy()\n", - "# float_start = timeit.default_timer()\n", - "# print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", + " for n_floats_use in floats:\n", + "# bonusdict = top_bonusdict.copy()\n", + " float_start = timeit.default_timer()\n", + " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - "# ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + " ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", "# for f in formats:\n", "# fname = str(n_floats_use)+f+str(i)\n", - "# # plot = plot_examples(size, name, bonus=fname)\n", + "# plot = plot_examples(size, name, bonus=fname)\n", "# bonusdict[fname] = [styles[f], 0.5]\n", - "# # plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - "# # plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", " \n", - "# stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", - "# # plot = plot_estimators(size, name, n_floats_use, i=i)\n", + " stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", " \n", - "# print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - "# print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", - "# # plot = plot_pz_metrics(name, size)\n", - "# # plot = plot_pz_delta_moments(name, size) \n", - "# # plot = plot_nz_klds(name, size)\n", - "# # plot = plot_nz_moments(name, size)\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + "# plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_delta_moments(name, size) \n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)\n", " \n", - "# print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", + " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - "# print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", - "# print('FINISHED everything in '+str(timeit.default_timer() - global_start))" + " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1529,14 +1746,14 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "floats = [3, 10, 30, 100]\n", - "sizes = [10]#[10, 100, 1000]\n", - "names = ['ss']#dataset_info.keys()\n", - "instantiations = range(0, 1)\n", + "sizes = [100]#[10, 100, 1000]\n", + "names = dataset_info.keys()\n", + "instantiations = range(0, 10)\n", "\n", "all_randos = [[np.random.choice(size, n_plot, replace=False) \n", " for size in sizes] for name in names]" @@ -1589,7 +1806,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true }, "outputs": [], "source": [ @@ -1598,35 +1816,35 @@ "\n", "for name in names:\n", " for size in sizes:\n", - "# for stat_name in moments_to_save + metrics_to_save:\n", - "# clear_stats(name, size, stat_name)\n", - "# for i in instantiations:\n", - "# top_bonusdict = {}\n", - "# bo = '_original'+str(i)\n", - "# plot = plot_examples(size, name, bonus=bo, norm=norm)\n", - "# top_bonusdict[bo] = ['-', 0.25]\n", - "# bp = '_postfit'+str(i)\n", - "# plot = plot_examples(size, name, bonus=bp, norm=norm)\n", - "# top_bonusdict[bp] = ['-', 0.5]\n", - "# for n in range(len(floats)):\n", - "# bonusdict = top_bonusdict.copy()\n", - "# n_floats_use = floats[n]\n", - "# for f in formats:\n", - "# fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname, norm=norm)\n", - "# bonusdict[fname] = [styles[f], 0.5]\n", - "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i)\n", - "# for stat_name in moments_to_save:\n", - "# save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", - "# for stat_name in metrics_to_save:\n", - "# save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", + " for stat_name in moments_to_save + metrics_to_save:\n", + " clear_stats(name, size, stat_name)\n", + " for i in instantiations:\n", + " top_bonusdict = {}\n", + " bo = '_original'+str(i)\n", + " plot = plot_examples(size, name, bonus=bo, norm=norm)\n", + " top_bonusdict[bo] = ['-', 0.25]\n", + " bp = '_postfit'+str(i)\n", + " plot = plot_examples(size, name, bonus=bp, norm=norm)\n", + " top_bonusdict[bp] = ['-', 0.5]\n", + " for n in range(len(floats)):\n", + " bonusdict = top_bonusdict.copy()\n", + " n_floats_use = floats[n]\n", + " for f in formats:\n", + " fname = str(n_floats_use)+f+str(i)\n", + " plot = plot_examples(size, name, bonus=fname, norm=norm)\n", + " bonusdict[fname] = [styles[f], 0.5]\n", + " plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + " plot = plot_individual_kld(size, name, n_floats_use, i)\n", + " plot = plot_estimators(size, name, n_floats_use, i)\n", + " for stat_name in moments_to_save:\n", + " save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", + " for stat_name in metrics_to_save:\n", + " save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", " plot = plot_kld_stats(name, size)\n", - "# plot = plot_pz_metrics(name, size)\n", - "# plot = plot_pz_delta_moments(name, size)\n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)" + " plot = plot_pz_metrics(name, size)\n", + " plot = plot_pz_delta_moments(name, size)\n", + " plot = plot_nz_klds(name, size)\n", + " plot = plot_nz_moments(name, size)" ] }, { @@ -1636,6 +1854,42 @@ }, "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# def just_modality(dataset_key, n_gals_use, bonus=None):\n", + "# import scipy.signal\n", + "# path = os.path.join(dataset_key, str(n_gals_use))\n", + "# loc = os.path.join(path, 'pzs'+str(n_gals_use)+dataset_key+bonus)\n", + "# with open(loc+'.hkl', 'r') as filename:\n", + "# info = hickle.load(filename)\n", + "# pdfs_use = info['pdfs']\n", + "# modality, iqrs = [], []\n", + "# dpdfs = pdfs_use[:,1:] - pdfs_use[:,:-1]\n", + "# ddpdfs = dpdfs[:, 1:] - dpdfs[:, :-1]\n", + "# for i in range(n_gals_use):\n", + "# modality.append(len(scipy.signal.argrelmax(pdfs_use[i])[0]))#(len(np.where(np.signbit(ddpdfs[i]))[0]))\n", + "# cdf = np.cumsum(qp.utils.normalize_integral((dataset_info[dataset_key]['z_grid'], pdfs_use[i]), vb=False)[1])\n", + "# iqr_lo = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.25)]\n", + "# iqr_hi = dataset_info[dataset_key]['z_grid'][bisect.bisect_left(cdf, 0.75)]\n", + "# iqrs.append(iqr_hi - iqr_lo)\n", + "# # modality = np.array(modality)\n", + "# # iqrs = np.array(iqrs)\n", + "\n", + "# # loc = os.path.join(path, 'modality'+str(n_gals_use)+dataset_key+bonus)\n", + "# # with open(loc+'.hkl', 'w') as filename:\n", + "# # info = {}\n", + "# # info['modes'] = modality\n", + "# # info['iqrs'] = iqrs\n", + "# # hickle.dump(info, filename)\n", + "# return(modality, iqrs)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -1644,40 +1898,44 @@ }, "outputs": [], "source": [ - "indices = '27150 11288 54516 101230 61485 19623 50259 48744 6427 62300'\n", - "# indices = '92250 3847 83378 12742 43667 10569 31701 26828 29136 11683'\n", - "# indices += ' 43998 96531 34802 14008 5083 94955 106754 86870 23547 93601'\n", - "# indices += ' 5869 5157 100074 316 96728 75727 2662 41331 41474 93074'\n", - "# indices += ' 784 105537 39558 108553 46954 41754 47130 54528 34920 58321'\n", - "# indices += ' 70453 108822 98370 74756 25879 80431 61434 65169 46466 6126'\n", - "# indices += ' 6466 101890 108524 96272 25660 81478 92854 24288 88348 7223'\n", - "# indices += ' 58928 49020 2141 25304 75384 34641 65491 45164 44332 107756'\n", - "# indices += ' 91896 75871 87481 24340 7056 80483 49792 20459 70865 109372'\n", - "# indices += ' 34026 53985 60089 4565 38033 5947 51576 3856 24570 3438'\n", - "# indices += ' 22431 60534 81397 16680 88137 14027 86049 21710 96081 13413'\n", - "# indices = '9604 43445 88556 50193 1408 76204 104276 48054 104136 58073'\n", - "# indices += ' 10084 32784 101990 59630 78907 27352 13652 56942 27011 101717'\n", - "# indices += ' 105840 73315 41895 21820 105664 18054 94791 29329 99846 56379'\n", - "# indices += ' 13504 45749 32028 45607 56649 2589 24215 9117 97779 27706'\n", - "# indices += ' 75812 14868 59759 41794 87621 99253 83269 23886 83001 67509'\n", - "# indices += ' 37047 28435 72226 64501 57296 26271 13468 50067 26576 5017'\n", - "# indices += ' 827 22780 65501 78088 75632 28483 108573 6032 60818 26916'\n", - "# indices += ' 99955 8065 89647 4756 91047 73095 12845 10803 52331 62513'\n", - "# indices += ' 6845 26550 94541 3467 37175 101384 96101 109303 110300 53161'\n", - "# indices += ' 41110 31736 70330 11116 58618 52321 68545 87421 61994 48439'\n", - "# # indices = [ 14619, 66891, 67914, 20931, 97633, 7202, 46756, 109704, 93110, 59915]\n", - "# # 35851, 65657, 3292, 3838, 10862, 50447, 5316, 49503, 39363, 110951\n", - "# # 12543, 52661, 46216, 53296, 95524, 84574 , 2607 ,56017 , 64794, 7600\n", - "# # 94746 59924 73186 21069 2579 34780 4623 93464 44621 29828\n", - "# # 111140 74609 34411 42554 32981 34904 10264 1667 42037 23986\n", - "# # 51790 98555 94971 58683 99752 87479 67286 89575 36950 84283\n", - "# # 89866 64959 53221 102714 48642 37379 95257 11874 70743 15107\n", - "# # 93651 48304 93829 64956 94703 107021 88900 7849 88808 71397\n", - "# # 26862 74765 89470 2741 56888 94275 40017 85989 94077 66553\n", - "# # 74666 90417 12553 21928 14720 53798 30290 109516 37033 95242]\n", - "# # indices = [ 59935, 44820, 26407, 84617, 98728, 35216, 73968, 105130, 844, 63892]\n", - "indices = map(int, indices.split())\n", - "all_randos = [[indices for size in sizes] for name in names]" + "# all_modes, all_iqrs = {}, {}\n", + "# for name in names:\n", + "# all_modes[name], all_iqrs[name] = {}, {}\n", + "# for size in sizes:\n", + "# all_modes[name][str(size)], all_iqrs[name][str(size)] = [], []\n", + "# for i in instantiations:\n", + "# # print_nz_moments(name, size)\n", + "# original = '_original'+str(i)\n", + "# (modality, iqrs) = just_modality(name, size, bonus=original)\n", + "# all_modes[name][str(size)].append(modality)\n", + "# all_iqrs[name][str(size)].append(iqrs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# for name in names:\n", + "# for size in sizes:\n", + "# modality = np.array(all_modes[name][str(size)]).flatten()\n", + "# modality_cdf = []\n", + "# modegrid = range(np.max(modality))\n", + "# for x in modegrid:\n", + "# modality_cdf.append(len(modality[modality==x]))\n", + "# plt.hist(modality, normed=True)\n", + "# plt.title(name+str(size)+'modality'+str(np.median(modality)))\n", + "# plt.show()\n", + "# plt.close()\n", + "# print(zip(modegrid, modality_cdf))\n", + "# # iqrdist = np.array(all_iqrs[name][str(size)]).flatten()\n", + "# # plt.title(name+str(size)+'iqrdist'+str(np.median(iqrdist)))\n", + "# # plt.hist(iqrdist, normed=True)\n", + "# # plt.show()\n", + "# # plt.close()" ] }, { @@ -1689,7 +1947,7 @@ "outputs": [], "source": [ "# thing = load_one_stat('ss', 100, 3, 0, 'pz_moment_deltas')\n", - "# print(np.mean(np.shape(thing['quantiles']), axis=0))" + "# print(np.mean(np.shinape(thing['quantiles']), axis=0))" ] }, { @@ -1783,7 +2041,7 @@ "# # vp.set_linewidth(3)\n", "# # Make the violin body blue with a red border:\n", "# for vp in violin['bodies']:\n", - "# vp.set_facecolor(colors[f])\n", + "# vp.set_facecolor(coplors[f])\n", "# # vp.set_edgecolor('k')\n", "# # vp.set_linewidth(0)\n", "# vp.set_alpha(0.5)\n", From 06ee783fca20d1b4d90cf78c240ed28b2cd1ee5b Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 10 Oct 2017 18:17:16 -0400 Subject: [PATCH 88/96] updates to paper and figures --- .../figures/graham_nz_kld.pdf | Bin 99279 -> 165446 bytes .../figures/graham_pz_kld.pdf | Bin 113947 -> 103114 bytes .../figures/individual_kld.pdf | Bin 168627 -> 168664 bytes .../figures/schmidt_nz_kld.pdf | Bin 116001 -> 165439 bytes .../figures/schmidt_pz_kld.pdf | Bin 114580 -> 103126 bytes .../main.tex | 202 +++++++++++------- 6 files changed, 128 insertions(+), 74 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_nz_kld.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/graham_nz_kld.pdf index d8f4a9482f333b24c108e81de228bf4ee4f76424..1450d10a5ab186220ad912d028de7e6b07dc9930 100644 GIT binary patch literal 165446 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%0D$<1=QD5+ulX8&Er0sJ_ukduLA>MZe$9P1DEO-r z8i$*_ zjOS;rJgc2k$P<30*H=kE@vQf?PH&PR9()wW!gc&#H2vtill*~62}A++!Fzlk$5F?! zn5O8B#tB)gm2$A~dSsKo$cavreU5<~&)jY`kgb30?C60Xiq zC<}Ao0&jLJ^?gayD<@)6$8G3LO;TKGFRV1La}kJ@n* z;yQxGADDW{$o&>ZkYVp)9=PQqKO5@Np_2kGA42E0H1e{N^{cd3p^xZp zVEZk5J&nhD=FL^`cE@1FS_S?V4~$e(G^BE37%;8LPs?wgtlpx;U7>|vU_2xzjakYa zo7yDjMLp#%&*u=~@R%4Pky4Np7s@Ig4_&VA&zdrba*@xp%)er?93PZhlY8=_$zV9Et$eJw{GF!$!`b zwr4c5@TZji@SsBLA$?U$t$sdwR+zs$D3taw0>P?l2^_H!84VmnMy~z-EPI*Ehh*fUphk7m7v@sfUoE!jY-W@;ZwWs%f-ANo=Qosdx2GBQ}7kgap z7Bfy(ZE`ZqQ)>$vr+Rx!!&2L9FJa52bg~ICCkbZiCDZ$f5g%%}oBeFKD@1y~V^j%T zLaxZWqV)1fI7Y)a9^NaUu{ec!74Cy=q4%ybgZ4t3lI3LE#eLyf-dkt*fC4 zn>HhT?kHTIN->G0LH`SPmT~c7Wq->~Lm_R?keI{yXSEAxV(=kRjLy6>W4QRl zM-_H@yic(Bgo6h&MzoMdDS0kU6qj$CK1LEXjm-x z-%a?7cbEoJCULpmgHk*L&`mZ2SM?DQ0jF5cJdBS_;4noDs?U_z)Ld6r!M2usWTZ)% zyyp|^oi(|OFEn^BgEDdLEy>d7*H>MxtRGny+{UgCu3fK{zuHO`CJ%r0yYbFIT&caL zfS~UfBzxvyESBTHnT&YFs#yRpbTv(4?6bdd!^a{y(_OuOga(ir*cOb6j_XANh8qeb2<7(W-qx%*`#t#kTAu)^_BE$A^ zEp9a;?1p95Y9q4hWN7Wch}OivZ7WJUYj%`b{rUvJu)*-gF7@sdNV!q(PdE6u)m5>}>1`?DIH(B(s9Y^mC;UQWYGs7w$C`rA387mo@% zVE$+e7I~a)@`IeEN5p2=H0IiW&;fMQW(einFWvrX8x$*LzPv|Zmx@-DdXEXbp6;^! zbYC8pIh&_zx{jFb?7C?QQ=6yDM$KYcz*NmE=Jl3Z4WzIpy7eG+_*S3b1xZ4(J{1@ z2In#romZ1a{|dw5&GybRgv*2qmi&z~an9HbSleAegIiVnVQKd1nZ}h&Z6lPOV-WIki&5B)~oTo8 zC48AEVxarYZff+%jXaoe@|!J*Po89r)M?;^!lTp{X45%jTAu9b33iocUdXU^5V-7wnH) zFwb}^Y$HCx7y0MBhYjT~Q0?VeYTC|>sRy8?a^)?7vIi$}b?H07Z>mQY<3zQ3yfHaXfe|{BOS#bU0X=T9w63D`5`EzIDh>d!6=J>Q;N_DGQRpY5hDT_z_4yGl#x61ug?Y`c&MeTx!!%(d7- z%zMwqC2LywvCKu4iYiC?C!Si>?|WYEoh}-oicRcHIYqoBX>t-g3zaPsc}xaQGq%_Q zkaCeKD@Zj?2yV7kt}f3N5sm$Dy%twbf%KtZp9{iax2dU+=X# z=>LAusUy8$yK0(SWElZgM{t&;-W4$jM@dS&&4KT`%7^EBDEO_Xh3O|@GVxUh@idx0F3Lndg(yvyW);*X+GjVyO=U^P%UMKm7F6IKHfZ0OcVtW8kLHaa_xf zE}K$R3zd#c)!-RB`4$+#@N>&4b2UO0hg0y^S%s-3RV8q!oNHK39x|=LNoqw1PBDm^ zvaUOK0L=^gNh1$Lx>s4Kb`g>c;pSC>2aTCEh6k6#t_ih#7!g!s zPRwT(Py*t1JFdDMUFo`6c89~Es@|i5WZ2N267<=%UaW`@mf@hoE^E!K=aXlnV>jsD z1`?p%sb{Cx35&y6Z(WYGoU1QNTYo%+-GLS`z{#nK12*92ta>oa4#`=&gIj*Ow+wHV zTlQHdnd3pGa+SI8K{UpEeU=`oQG>;~zpqV=b7fa|f>))Da-%Mgckxwr&3t#EyeJ2l zt&#oIwib5XTt6O|czg`VSTADccxrglNlwO<(3OW=ZSN*FFV~UoV)tpJloc%HaN~$I z)2jGQYm`rY9i$gF{=p$dpBlez#FpZSJ+H@;l`hd_5FSe$lY-;(ix%lgSVZsUf<}>= zq7p4nKoo6zJJl3oIlhaI36Kl6AJx~Tg`=z z>HVaTJtV%-nEsGM;O@H8=dvh@MZ=!zu14Nm2tDWB6ga#i71p^auaP2Yt=St(j3+X) zE?!0p{^j(Oh`u8%AP&ncpyvoG1dTZkWvXBrl9n%zu>D*?6Z&a|_8B6z?JY1+E5}I_ zBRiT`UiW;Avo^Ez)Lnc6c;;bhB}n1X+8{NEwXD^fMH$HYKBAZMwCwFbp-+g3<9<1q zMN5!fq)<;IuGVjuh>-c)r4(#?Fx`;TvPb4D(E>WAsXm zP{h96A9Dtr%ahnB_#PMJE1mao*^M_*aVE$;(}%evihh1npAvB9f{hDx6X6cC8C{q< z2}8^ZT$)w3w?qEeq9qVq`C`x2)Io=VYjKSdY123m5N67I113BHJ+$ zB+cVq&|zcS(YjNeoWXtT2s&}p{wU4Lb~VffJw@udZ*=#58Loa#|F4H= zB$zA0#CF`1*w8hk(YwQFT^VT_x?btna#x;LZJA`GN7P&$$8@;0LFF>Nk(wZ&u(W;3 z>HLnGiV1TQYA56Spg_T?+&O$o1rgnQ&@ZIW5XsP~DHbFjDwodi3B4Zz3+8WIpOp0N z$SeM1a$Vv}m6@BN+<940)ynqN2EO!p2m8>3Y;#yAMRopJa0N*pp&9BQa1ti(Si2}| zpe3*;gXZZZeMA7MSndH#8k9~=dp5=q5lTeGN=}KR?poHBL~v_xiL7yvb0*rz$kWm! zklq{>6R=7}1VU^a+Qx_@(sKzLk)QEDvp|T_v8R{8FmI|@q%A1Ssxi3+$%O|gn|D)V zatX1Ul2V_XN!w}LmdWqxJvu4Lv3K(;038n{ zr|5=G+L*}!m(kX^)m@(YQaO3F!T(M+`@0M=v~Xlo zc3y>9grf`}H&iY3bx<{`2ev831f-3e&YLZsK4V#^)&U_vlU>XMtZ@wHWqR_R3|P_) zNS2fz&{AYYHv!*BQ@GV77?|SbhYr{p%h`9@JIzmQ-+7O;Kr>$0#i>4r?$VG&Xxw3gU3k>d`yS~D!%@FYlG=J2UI)+ z!qGbzh?gNAOu1QZCN8nFPGY1=h@w)>qCVQ-3LiYQap~8hrB%S2QDVrOcfUY7M3>B~ zJMv`WwKWoD5Fg|PH1)I{T9c6DUarH`q=zWHVD;Yp#W;W(TAbA7^ljRXFXy&eN@duI zaimi3oi3|#dldycSu~XDOBU+cc(6Ejow{J*iEFv*lU$9XZKojEaYWXr;4WETLA!3h zsr`d9kN}q;)8{`xSK)*$wml2~Fdb<-tn1OCH`b*X3k*6o!3M85C1F@3rCzuxg?9yR#Sp4jLs6|;tx4ng%JK2bv6%9k9{uaH*6SA);Mb2Y%X$sht_aK+J7(Py8?Cr;6K@VB+Z=yM(l7lav@(jhaTjoCnY^`IW^CLZ zQmGlW%Ltj0r(1v8-vr$XggYocu8TM+3(@KTe7Pb(Ppf zF>>ouoHR)Pq*-OyzJGpx=i!{pd%FGRN>&C#@t* zwuVyS&=HWC#n|7`b~ahkw`!km)zi1jN7Fm1Qx5xjGo7`*b%RpM>)orL2ym!s1r-fg z8CgQ`n|In;_SY2(Vc6#B1k=?(#AxWT)X)p^Bz+1lzsU;X8-s|aO_xZDkatz^>LRk>g(?eM z#3#6YIG=bANZ#rSr}oz-=X5AU zFCj6F3J>_uCloNHUgnU}C>r9XW`yohl*CK$ABt?XhFGtnPbHy_wD-xRM2arxwPm2X za+Mq;sbmNL@1iZqAc8tTecL(7@{_&>X_MIBBgYV|g*I_^p;Kuj-;8-9dyZgG_;X zJDCq(rs;3o1BohbBV=fnC91Nka>z~5%n}_&6Iosj?^zlL+a&3|o&&aML^8Q?w)ECe zv$gkB?z!Y{+J%s$`(XoW-x{59q}I;aqXD}HbV46Hto1)>!6Xhe9uZCGELFl1o+D&b zhcZg?TD-Q|a3I51JgwPG$T(6so9qS4Un+*7G%;@zByputITWRNYQ^F32rB*Y{nUiwG{t1IaL z6H#M_T}RP~%w6?Q*b+GSeG@08&%a^@wl2hsT38qCk=jcXCr#G%k~@s9lv;qha>HpWkbgg8$5&tuwdm8Dy-0?bPHW3YSC!_c{n=QJbP4p=beB0*gv`oh}JAmZl%Oz}Gd9w)|@Y#1HS>_;3jlDb+Ml)?8 zam+pZICM7jwwj!gdDye0-9(=62pvC#2w^gEM6V{fE>FX1etd$?HP`YP^7RPOW^DC7 zPBGx%gDsx1sLQdV!^fB}j_cNpFwFT4&s;lJeb)HPx<7rZD*xB({0`Am*u64SIRb$x zrY*W!vQv>Fih6D8uWM^r%fKsqbm=%3ANjzMP`-ZTh5Wvp_0$0J%|SyE?n2|J7PO`%lfvX>6?XwR74Jd_f#1IKN)uXQedfcvjm$aX!<%+z;DE6KZ-k~jDjInft3B=XHFY(I|`CSu&o?T|en%AXpS#UR^KwQ8(iLUZS zp`23{m1&+L!d`=!i7{+8U9EC#Vml0ZRhHerJ7oHbbNgtxV6~rmM5PLm(L86L5oXzK zF?@Ipx<#`sC3@B0da0|w$)I%Wl$AO|jFn&SDdq+|GX`JPzH46}UI(~m#O|l06PQ>5 zb5I`&%h~eV|DNd?Dw-6|5;oio`DzXDg&jp5`SDnn(%Kcic3~*3(U*>JWPgI6p(#FE zoWLxkk!mTjGeG2FeH1ZPiAc>Jj>w)sqb4Iay;>0Rf>`|A7wfF{C*?grB((^!)EXd1 zFWm*h85h>r`MOPuI1ZjNNpHF8j%kigIHi(|AQk+xUrCYtb&)|!sHDF%ZA`Fq?<#fd zt6u(i_AW~PmBZhaWY^#FLo6sN9(XxMgOk$O8Y}DVkF_>dxv@{bU}nVwfgWM%5+iMyMn2 zmXo7a6{fYX#k<_Tt06xJxJl_aY-}ytJ$c zpSGA+dZ{j}WV6OvY!R40@wgB-54@(d4BH%$hV2UFDls8|F_jtMB{@O|vEI?&If0~P z(OO26mi>OJ&2kXiTeTx9)pU=b>0=qX(AsQnOVr%rusqxuwWy(>N!=3L(PH$^8|-m1 z+a~MpSjxX&$3A9tl=MlpJsV!0v3q@07+W{`zhU+}7wtaC$c5exh_Yj|cx+IE$n0n( zk0-I(jhHD6mud~0w-+1pg{isN6(RCWnTLduE@Ml>*NF(_zZIyqE$nSOa7c5&Yy4g9 zC!J&QgC!zuER;V6g!|_wt9iai2hw{o;_r~3S6YwtcG7#di%r-DcF86wfmp0qvL=7f zU~M`83`A7uX`0_%oB#&Dn~grhcVfSAJI4TpRNPX6KAe{z zJ0l`kecZ#;$Epk9!o<3;@w=M+xDVgBK!o5~B{V9#@O3s@SS%}NsXceK^$|zJhZ&n_;K+Nxt^`^gAf)cJ<(NaxX6vkV`v`hR8%i%7 z*7(U{1f}1MsGD@UPCtajbvcNU%=z^(UawAtMdTvv-j{q-fQV zkMCV@m{rdKfgh0W*hkW%MUQD8r47LTuu)uN$d69_v+%Q$!SH z^P7+;a+pmI3BO9wP(e|?cZtlT*z4lPn7uH9_H1we`wU#(JW6iCP1;iAjq^Z+sB6}e5(8(4IQapBI z^Zh15Em~t#`yjuP!)+KTgMeDuNvm9BXhj$V#db=b|x-xWT!@!gf60&`!t7p>xQ4=mP z!{%4V3orvhonx_+mwzbq(;kR+b*PIj$Ik7#KOrDmMhubTc3dY_fWGvAB2&5;QqG@!(2fnB~uA)h;yZHxpJzvpH z+l+z~A=Qak=YWSkC9w6N#(JLy(?}Gp@rv3B3Y-8iOB#Wt<0mTxmf?jN)&0Y@mQaLD zdV714WLT}f_aexq6XrB$g2s=K(3jbzAzR&LBdT3+*;DrU$mHgPCN{Nyg&`kTJ(soi zr0q~!m&WYhnar^AU@(YnUbECNwi7~$1|YU6ED zE+pILTPizE=iPeYM3M8bNB`26jibF9aTK9vI`+0oqX#~0x8b;GN?-4MLYQft%dF|T3DwS>5jcHTkyBi++w_l z-`P?%ZdLk!o-2WVUOYWHKgmWi51TqsxB}LxY+4LCWqi)9Qf0ct=Sk>|X*H>&uF#*; zN!A*ZefqRG=VIqmI|+}9=V^m^yIKC;*o;mSo#x4076X{FD3m9cXWju|415u(>vE`T zWTDT}D{3H{r+#SQ?jj;+H)syCWo zD82GwwBza7V<-NOO~gh#Mu|0e;A^+xq!(MtObFkhX12sC%DSncTjL{>GZtWum|ZH= z4oDo=bWbVWa$LrZ>>|5MjV%#eZuvw1v-YM?lr8+|NNYH#MV6sARGH9Y-kCY5##F-@ zD!a6rL~wG^ogO(LJtj$i2al+T-mL1&@m<8ASsBf+zdG?O^9Bv9IUn&o9V#(6E(W;u z??W&}Tcu^QB9+ljYu>uNxAy=%RfZdoWUvBv!s*7FCg>%#<6lj6gUIyK)%!pfxl|Tn z-oon?=E>j;&x#*qPTFGoV#-?wM?vZg<3xCy!nntig0GOmrZD9br5$1EtNi|-DC?e+ zQl^s!i?(Jkala}bX3AZUMS0V1u6ETlmI^aW45>oeZk7qjdAXVk1^e(v$v!_uJ2Kl` zet6w0@OA-fGiAxpL{pm$4{W9zpVO#&OL$l}FVeyG+(!9sc1EYC(g>B?GAUGNbY7@t z%97cfNS;#Ry}N6iA(Z2F>z2@rVFGSb_8atQ?CR(&hfjT@W=2reAz75AgK(f1K^voC zUv}#=Q)$zr{LVzQx{rTLoF_v&RiI~;=py*JKhdFDO%nlxsMIRp1R8`)dby$9jIOfB z++=jed-kqZS$JWN9nnBJ6Bd(G1pq{%DrsW{=peVJZ!Xhg6*rC)k;henJVR0+VxeHz zDho9o1yoXbZ!a)ZJ~k)T_)8=f)*dlatrS$38hU+n%n4+JXM^ zPkP&Ncno%smWC}bwLd(?}>ac_#{MU=#q75gc-hguuL3Vh_A5T=|? z0Ay?}dMaZ#AMQcyy6KGhb)CrWLb(dn%G{4xZf$QmtuF~~+_0Pv>iV#uL1`za5ZNq% zaKl)Qp95ehXK0e_fv;FDYl3##)6&2_qMRgG#;s?1y>~|-?7OHc@b6k_( z3l9!PA-L9AhN->T^35jHkr)V-rI3e*o}t0dFwbmPx_mb^hhQt$)y9tM14f#NOh*F# z^4Pllw9!%{{M;j!kBxgEkqnv&_5x)+>3U7{jyc&@txPmHM*>Bz?AMO)f%zX;Jq7bC z6C#S|kUaww*uJCY?Ud4hNljsS@$KFq1#&ZYp;ARS7D7eaC?d!1UYRo_2TPHYOZz|W zVmyN>H}bka?(8AW&Ok4?O0^AD61uiRQcW>UPl03Vk^>7B4XIYxC(y$yfb&=CIUR?w zDV4!m4EjY|lB<$|Sv7O(RN}EAHCIZVYH}+zjiL46LjDlyL;1Fh zoH(Q$5M>HAlIXiN9}FLTMK(f&QCNzJ)A^;>_T;Tyq1FaJ@ua!8H1P8R)(j4c#~U_; zUYmSuzhL#H-oaG=joD3ez5%hJZIlxm28-mC6hUFH(!%B(exhdbr5PJ9stc0}=QqPs zdyjN(A`#4zc~Sf5?M0Er-28`a%r6TAtEjA@O|w1uciu#quKu3Qmu}G$Z}AWT>jvU8MJjIB<8T!?9rA20FIE)a15G*K})|w#F;Rd_RFyJ8@Sd zUy?-#_w}Op+c$od2&s(RSGG9Y!`XJO&nOTeG#vT(&ou$$+?nEq~_g$%j<8FFb zJdOqqP&FYj8Dxp&3=7)+V7W4hMW<~V_u_`!@1u&;Ki!T%D%|=A)T^8^Wg@B##5xa7 z$w0OGhU4lVwn7wP$_Yrc;?&^)-Ji>(R^!Ju&x`IQI&wRzx4WQ>k>*AwMF}SVQ_`j* z3yMP^w{JW019w)=G-sRhvmqV$5iWi`ZFmNTs~t5zljZ{)>JEkmOzYX|$9KAK6RoIf zLvKOPQ3m{ShFZ#n1g=n8BWWK(b+BO+!`4fP)5#aICs2e>Y4@ z3pr4N=%*G9o5s8J7fhQC4nivW|1~7mrluPEcN%`a@PaSdQ_CGRt6l3p7fmp|Dm|!> z&=q+fwYAu7ACKRQi{v$%b(fxxhF9|`WzX76x`?jbrG-SKz_hZKcCkCBm^Hu)_qVpe zyn^xH9!C+=`8m3s`C41o*TX0{b*^fN`0t3g-{CABCpb7+RtpJ;fJ46xj~uw$rnt-4 z>=c{?fRwDz^6M5=#njKm+=^>Dr&r*~7vd%1;OZRs#6~eyl0(pI)Jc{)SQu&~q6K4b~{zL*9fR!+{N8uIy# zw5jY2;9kzm`#cbG$IQG!@+>79GiQvEXINS09EUgtjI@065^VAHC$U`%){)`BlTSeX zAj$Uk09$E!lfXP~APL=vc)gOCtitO)`bo@u+Q@%{@pkik1e#0V6E~DphO4*@dVuV_ zUr4cf6R~R4@0Wb_*TzuJ`4PG&{y%T4o{4&rufEGD{9~EGWJcJ%5w1{k4F~{KPUXice4$X-?P0s2sA&=1M z7&UrZ_ffqmY?I#J&)kKiQj6+_G4eZ?4#N{USF0BJIMD?-(@_tu+RMFKq*6jKOeKKj z6v80pM0#xH;_fJZ&3-a+GN|xy`|C>-=;;!##&~+E#g7~Iu#tAP>&CY6ulre#SHj#1 zW8f5vpYvAB!rZKgdz^Wq|D5L&#+^H?Hwe*_++s>Kf#{^9 z&tM-hzH2^ttU5w?h&;P8K0+0?M4YQ*`StrjLwzcjwxHY;m#5L_yIPiXZkp-QRR|CW zA)!&N&K`%oV%iYZR-83T&?F0(EUn6_s(;easTGN*is_@pCF^aqyw&f_Fny}jMjjQ@ zXME^UM%+=3&M3la+aw`wj?X8ya%PiM<@i6dk(O_T8D`fTNifrwV~rItgEx%a?O^OW z?w)u>JUGO~tFXM6qqDrqla{M&+E(v~j;XQvsoR5XST=MUt*Z=~?y*=EeaRCV`pb%u zq4Ru|+Vi>Tcb_q2?LpuA5N)$wzV7=wsjpPt)?6UbeDkbhreqyw3k>DgaPmpdR51dY zkcj3`9NVo_DJc`(c`sfwchY~7V=XOqaYr7ea9yKE-5q_s92|FR-=QnO-p@zPb+&+T zQb9rZ@p5A_w0h*?2rCyPTvbr!K5N{dqh>4qWkL#DDWKp{n1URdDC)t5bxODi?-*RJ z0zGGN$j*2hRB;{IDmE{|niEB~cQ!@lCa0nAR#@0PDn|Z&)&m_=@dh!#>3+fxzqI$& zPt&*q8N#Me^bfmXp8tV4caGv}8?rUt0J>oKsrkcgKl02$ak~f)arJ`pjhEPKh9&QTPy2L zzRU!Ed^;gF0H_IN9tb%a2c4&=@L}3xz?7YSaxt1tw$|Hs#4)UVS@2+dG9#d>;u(R! zalF%+MAZF;IZ`%>2nR{gQ=V$!q)2zgds60*y$zFM32wrK6;QJjZ5gl23@wA(b4J*i zw*WjIoovUPp;d+>m(;_TY_`kT@W5$h^G$V*pvoU;;&Ja!!$IKe6|{Eq(yZq(`#X+t z#s}eG!gIO1dJ9Jje$KC^{ zVyyHZ`W8J`?jiknFg~u8g;NMzY}9w9sYpwH;D&4RNVgJM`Vbk;>f~HA4%c+S6gAEX&qSV9;h zdFqZk{Y?KpgjBt%zH=&=Zf!WoI264-(`_-VS7NH0MN7w1dT!6L)@KV3AT63+69z9v zL{Xz5QhK6GoSA;y*g18z#N{CLeuoZ@^HOmqbqSB&Haz5q5rzG_{J*iAZ9iW*on>8& zXr8}=X15b*A42tp?5Y9WZn{WA$RqSF3txRVn{j{=rSbp|%x4K+qiu#L z!&GJOxdZZic#{fYo(KAoNZu=IZ65J}6;jA!V{yu?NTQBtk~&gF z-CXGHxAtfjk89fyVrZp9qW)x}tDZ*~S8wk9a8SlyDW*d-rR50m&x=?1yn86f)OFzE z18dMNk$i`HZfeTl=@gt(lOJP@}{LKx7Ra={#>{XR6y}!!qQ)ifu58OcKrHItD z$Fg?QDLr)b5Pi-5exVA~*nS8Ui-NS&Lx~Uug{0J?UyB0xdU*w1VnO!eVI_9uX4AD> zr0%o%S1V=n6h}~vh@~)1iRJMCbE89DM%s*1!$fIG2@d#>HbtiJDxcrFtKT)7JY}NM zuj(9%$<6ZB0w&AOS)V4TE9kMcG#CnRN?!|{C=VUb-s@FOw*^f`5qiaX7Lfx|2JlXp zdfI(dz1@$Jtf?BBW&MYWXjk{jvH>r7tw1mTp2>ApX^kg?y>AYE>NXlw(2p${T<#=B z3--8~$fPuYM0q6@W{XR?=zD5=z^N5ZhZ`5VH>mMvCPP$f!zbuH{Tw?DoIV>6#z|V(~zDk_s2IaRs++j1~ z)uUNTBJ;g4=YLs3=^j5*t1VomHlTQ1IV5LduTdMpri9Rh2ht!WzAiGfIKmOiRCL1< zBlu!nQIn2Q#19foI!MeY>$#hksL=}~1z2Sl2AMjY8ypeIkFb;JPNL1~^!5iY(^3sx zzt0z7Xo;XlK7&O^jn(##rIp8GSO0dv52p%CfVE{JO^_4MtB4BTi@sy7dqUL)g-D;T zkI(2BDrtnWq>Q$ZJG-!!USF$zdM_5XKk~p2GDJcYpa$@lUm>LGb(l=b6zDOPmH9-nLv7sL377pW?8NR4T z=TMc?*XGt!GQz40%top$1$hr_IRsu#c_>NRJiszjppEAfF3xN4YeztdnE@wWD48xcF@G}8V{P>Cb%#%n7$*gg`hK6X{EVuyVL zo-Wm*y%JQmp}jc;-sQiTu3uc7dPOl!%pBPE`?uesuM(3{t7=2++3dwj3Pz6uSO*40 z@g*^%eT_(Ir_HqJiP3)>^OhvBIO*LJLb@(~)%=FgfSyfUqN?;4tiA`VvUbMp$SI@G z?F0P*U`>OLnYgq;|CwES04F9w7$C}rfKg05C3zV`77y5lxoM*KAm9DxsEtu zU9JQT^z!JRGk+)w!e@83k@^MnkCsPs50w-)zexqs zDZwTc4;IJ5k)0*?zh|lhU7*;0R3R({!UdfHP_~8g1+kY!CjU-Htfy&wBM-zgon}f| zi#f~lk^96k;q&_RVa&~?#wk3UXKIDiKnJcg2r%0RR*kg=HGW)09-d{)y_O zr6uJ-169g@P0WCwjOOQU^ZMxj2LM7qy}!)&%#H)YWl;^wy@9(kS7-?n*uMz@u+}a@ zB_aY+!kM9a&2p7xI8@YA&*ii~rY|62ep~WNuK8}#w@X!WdR`VjfyTM;n|m$}-_s0E zU0>KZo6*wcgcjxoz$U*~2Fm0}ygN*%>xB-7eIdu^Pw6#7R?c4=)R|g&X31cGCcFS( z=&07~xoMCQH{T*^apjp1K7Vc3C;grrAFGJj%md4=)eA)~;6MgF$eyNoUu}sn1p}$1 zj);FXQJtpvbcAhV-1OdU9m=xmbl9-_MR6oB)_0|++_0zvDYYSxOlURxmZv@Km?B5( zL*?7Ra&YX#Z$YC{$u>W!;Dru{n$HXPb9k;XYac} zoeAg8_Z}p|2TqNyKIcf50-XZ|VZ&=g{ooF-Z2u2~N=ds)uo-1P!!8lnH}yfoqC=5#AN1+9$r|dlBjA=Qlv2AfS#W*9rO%k9YR7s-Iwxf=ed%HR^SBFHYm)~*4&fb znCUxngkU)?n6&V5T{R@&e_{)M9>2+xvlcTbm?Ev)D(Q&|C;k;?QEbdTn;0^8hB^gM z`K=aB-i=wsh)`mSPBHKDI$ZU4&t3QaF4^EvTU#8zWMnjqa=G9~i*)6x9%3b$pm*XW zk<3|?2JgvxzO~p)L=WGz8VtJjr!mw1zW@+E@4^1{u|#|aSsbV=$DexQ#eIo#7O35C z%qCaA6Bm}hvslivRQz*vRh{Rw$a&7X&L8#0=poR*S#N+xTE?#N<_HT&4s@od9LKT% z%$*yp;-U|;wfPb*{K=S*#j|O>_DTjt{WfMeL)SkNZoi_k_86Ybtn<@DP0)HyUV zUazpPE#)M-K40CIe~(g!(h0VKADdRT8Sv@~Ly30pYlq0w-}SO6+JfZSU*a^5(L}>v zC;%&V7^bh@UWXdIsPr38!@M5App(A30Dq8Ga(cIpU{iN|LM{i6VAsp-gEvi>`05aB zKq)x|qGYTq+$(2qy<-Nu9eA|uW39hg1|B7bC?!16Cx=e6rPIl?v#L;T`uRm_oChBW zs&zZF68ugn1x^jZchbtwDsv&k)6Z2_-48Jg_rW|4Q(5keAy9oTkIFz4eT0PIzyj^u z_#az}zfRee9aRc2x4K}A!1!z{3ISra@rWKrkO?(yQP3VXv}92n6v55D8gF<40g|gV zj)7-~mlwfbBIwtL0ZHY{3+Tr?7r|hg?aXlI+aB7aHk;!L#9t*@OEN|78=<@p|}f*MyS89OO^DOpOd!Vk=Nr zUVW&1w8?xjpn{ubn$S1MVAA3b6^y{<^!Z)xg&ab(n2$)l;6^uu2)h>9{7SQ`?;EyO zLZSy_94(A+-OQMW$Ficq$~V`3ZeQIi6N(Nc%80FYe@&Nv8|pst>u5Z7$*xtS4?3e+ zG>;G{xo1-Ve7QNPBD7OXu6s;jh-Cy0I~x{%K-Ojy$u3G%Xu`pI%<~0t^Z;gpOfw352^X|r z0tdH!(ke^XH`v(*}tp=T7B1unzV@ur1 zw!I8T0i57TqLi8kJY*vALU<@cKnzNbMiOJ{As>AOGadcg;F!p z4Em*K|LD#2fM6|xu1w?FQ-or7&}Y0YcawdZ{n=gbi!E0^G#@4jQS>!+tncSvk~Uz> z<=4+j*iUTA3G1O#@pQhCcs(xjq>C~Qi_OXxfCKX1m%H|m2&YxaV$&jXlI(CBXTjwV zVUw;>-wF?yOem*$)HfkbTgWPXyOgd6&YNs`pO>&Wb0$6KYyH|bjUjl*7qXq$%3M)0 z_#(F3iO)K`$%eRr98Jazi&CIu!V=1|&`*Q7z-_VYdqqNEfJSO$8#3OegY^I;L~CzB z4~03_$C+WXjS#)V=?iU!zL}bf-!GHdtGf=faZgrsg(Fpo86Hj<))j==+L@2{guGts zbmdK(p|s&CdlxxaWcCXLc~F#&{ncG2s5g}# zi%QltVZkt5@hO;ukNv}(LpQ(_)HoM-Xesy|rf6|SS)TA%VetsUsIJ%swp`L)B&m6n zSgrzCu7LlO8VRPe{GMuCN-^S7xa1AC)M8u9T48qd`I*@Gie>3nJ;=bP|=%p0H^i`9$H_Hdoz_7V$Jh zc|!k@Q~J($EUW+p=h}p`Cr%>sdc*!I41~zoz*zaJyhJB!)4}j#+C~jliQk2ncR#Ug zTCk&CMxf_s7$uh3ky%--pLUt>wFf^|wIaPWVX`H;dO|npKiVFO%r%I&c5i_$NBZ-~ z^7@LC)s%|lV;bS2iYRteHTNV(H==coyEpPclAA7_KA1gY^Ev$W3t6PL%|1yn_`e$HU>=JzecEIs>0aYz)*!dHxi=K%L~Glo zbB8(>oIib7_AItR3F(Ea%m7jI{7Bw#F?kiX=xHHnwe@~LGnVvr&j z2w{6|fu=MlQ|d#=xIXfA@?~^hufBSHN?mO2WR8pqYtLjA&3((8y68%h{NgvD3H^08 z+>7Jk6y>`qrMbQ0Q%gruylonT$GhCdSB~vWs08kvS^oixmyjU|lbo8XbWcLY`VD?Z zwrrI70-wK-^RrO#O_eaUXK}^ID{mAA-ByyB?giY543o@MpHEH}gq&@I!g8-1-oMsab+Q{0o&-=c1!vt+;E8Dd1VTMe`+XfxkSe+% z^uQk@xq%!)w3v@bzTjjg&wP#;O#^3s%Ni$b`K;MYG3i^+J%dN0PuzZ1Pr1<_yVxz$ zxEYZ<4mvvp4$%Cye&+yO$KQLKSR?f?RY3!+{xxA)s+)!RT$R48GED%NI4!R)PZkYC zaoU=VSRY%coKAvnkXC2Z^1F$zxvFBuf{;e>{bm;+y=Mhw2-oppjW}_W&@!x-!2ec6`Fyci$Od)J$PK2lKNTUXR7nH8%^i zmAxJPSM{F^$bm@zOymD?6qu=n1fH9}WcR_G|AEUT%4kV@7t|An~at`0Db zKsk3A8#r_-YNNHtM~9^}A2F9Fp+?gyb`?z>B(Li*@gVnz0|wE5Qsifbptc;e;ck^} z??qO@Rx`ieN)?Uahl^RBMr(zwhgylQy|lElO|7~=p`wkThd_C$)$%9|xg~$I=5@>} zY$a%3xtvRflI0`;DsG_-oQ-s?;;V?NhFj!MIJKoHzKOE>N{Q;TF}@xJ4Lvx6f{|8Y z+79EtSV+Qzz-0;6tPV&B$hH0a`kZXEX{QfWn5}=3Pi0EV4@5twuVymjhyN`M+FI7h z(AxE0Q(FA;iA!j7p@)e^$tuj_;ptseJvD^kwSshk9Q1ZnAhVL(aO(A?z zQkeUCqxM6`dZi|<^*d8OO3AbvHUfOZWam#XoES37mv%g&pnpSy&~rSlmrZS{9hWml zfaE*uDpQ;ywZbO^E4=?b!U;U1gjhi@k^o8oRZoiLK`Y*GV?B2C#Te7hvp>+zTt4Aga)?ed%ez^w7Osl=k2}>x+UM6F|sj=9jMli8Pb(c7$%f z7Qydvd3Dg;{~bYCQ~@)p&h9!P7%xL6UEG`N0T4P>QF9&H8vXwn!PtT4ysFX#mNHOo zg&GAoffD>~5|++21Vqw<#3_YV35)PvNxlmWy|h$?bnFI@c-fR0 z)M|3YJu}cM@?E^=l=W@>2(b*3DZ4sEIFqf-5C8zYTuN!lhQ963Oq&AU{uqXEUT1mU zN8D3cmQ)m1E5UGb>TI7<8UzpUN}$^XypW_I3O$I`(=(Z^>w7`!Op`Dh2#l&V;Y60NPc4pf{-yP- zJ2HWngJ1wI$d_T-j_gnD3dY|zJvLAT4oN?ufrj3q5X90^1Vk~|Xy^PQ2Z$%~JSVS6 z5jDMn_b}&1>4%F+b(k~;^m@p?=QXtDIaw1dm6J&s@=MIT-KC_puV0$-y)7qFX)L#Esh2>Ys>?BAWq4|N z7qD0JP8}`Sci|>vNxvF-00GyR|>(R?Zr5eZrJhZ~={)sGWYOZrNoP#KJ7ILxU42)>2Rs>#usz~%-nC8dG-+gVRy zKLEkox5qvq-K})h1osW%{}_!bI3+h4sm3VzzQrp*2q(e?Bi*5zOJ+fV$F|zXPTwjU zI_U+yt+K4j(O%DIqT^4}i8$GH>xMU>I%*iW&xIIv(HImA2VukcI^*W7Vd$%@!*97+ ze@8)QglMMv4_t)8+8>eKSmZV28g`gU&fj8cFXd(BX2A|8-K zYX7@2V)pV+6JAs;%==cYUhm`}NbR~YU=9QAh3{JF8uaz*Lx`zjY?DJF?G@5z(yw)# zU+FSbrU+JdjI}46V%{B%_4`eCyvLh`VRdc3_eh}skkR*UQXm#ub}=VOP;XafYgmw* zAeHX`r6m>fN*p{iy3Zjw7DC%-bK zog}qRae;`4s$fI-VAa(~v5bJwemRPdTEEOniRT~3pD}ILTeu*-BcJ4BE@?1v+lNz8 zR)YD_nV78y%)$Jp>i;K1gcN4L5{z|s27auJE``Ezyx7QC1CGQ+`>z|_l}iTB+)VNb zYXbC#G*O!uTVJA!VgB83$)tx{2t%4i)e*fmZgbgC~LL-yUM9h&Tr zllv5bYUdm;tZxdwOj%Tc?v9&F+1}We6APq>kB!$?AK1BZDmsbOI03_}s}>cO>_JRl zhMoYt-c2W8l@kT5!lKq4J$t0tcs81ruGx9|DEow7O3wuaMS@k(XZe*ANxARX!LTxP z5xBMg14F&Tf0rrecR3&tbzaDg6)}MwuHiin^2RRj-OEj^2wk{mI>)oP@XaqBaHCv; z8+~B~qrJE>XbjWwfs?^vcuz;MKN?v*{a7I0BK8KW@j;%rolXL zANYz(SKK+T821V+%Fq$kP&dDkg0ebqj8*f`O*Tf&x4^I%IfE*NB#i992Z1LuQL*73 z5t@>}Z=^EE8N*&GO4e{n$EDHS`vu6~VUQn*q%jpB^?Twk4E%!U31olPvsgY&S6JWC4Tsb&_lq1$CXhJUOYQDC$|?*zSmxU zA+TtCEe#r?&d*&!Z_c=OiAL$Zs>l4_(j$o~5PZjNuZ}R-`Cau|IpNlz6_xrJbt5ob z5#nLd$oa<>t&2ALkCFIgbeV|7c4Ihk`MeE4GKA1erC5Ct^Ttm`FI174yjos1@^)6V zBI=bL5q#Dn7ee3ri=3Zp7FHw?_pB{q8ZWl}@X=G9AJ2&c-hd~9v7pwyu|LfM4Q>aA z>w`Ezo%##Xo4PKGYa-y(4$?@!ZFp6>s-wS}N79t*Ni|_N%_*;Q-V|Zl>NBNPwGZrA+=NyKA0@`te_n9isF(gYHLGG; z%X4b4sRtNIF43|CpcoN zalMq%+kVvGd@!J&9#FdscezmljP2qw)ja&@AWCl7l`;=f_;J7UP(OGC7Kj2D`=68e z>-yJtlK%uXWs)tS%qk^#T{Y=HpR417Ico+)W{LlJWf6?*Wqv(z5WVWGVh{tQby30g zM>hmk4aCQ18J+(H$6`zfHub^LEh7!y+Y zlQk+74kK*>?9wR7D{f+^Et6tI91QOl6#4Yoi8r0~y8|TFP6l06rw{&)Ft0b7ahb!S zhvK@-18~87a!f8mfjXlpHbWV)g%g>Yj{g3izSfISTui-t!603Oq0?ja?}F=3KKwUEOTD-eke)XN}~Kc;#WQQ-q&uxZX!lOTLjA3H0zm&wwCEznLO zy*t8E`!MM)cl796s=IV8xbR}(e&!ldHr*x;6!S1*#EEf413NSmr3Pk%Vl3#dlwkdB zs-?g5Hx6$6cg}(IwizjmcO#MRJs%?_K2vWJAvb~|aI8GWG7+0G=`wgalMt@aBoq`q zTj7bj%s3L&(B?3#HJh;m0>9|FocTLDAI^lo&dQl*7ytT!Mn`{*v3ZT2ja4W}Ooh$D z+%9(3=h{gX(o^gAjv?U3h$^c=r7P43MSIwrdv0SC0mlqJu?-0H6Z3coxR zyK+?A6Y50op#i)_B~5k^zFH~>EM%$Q)F4Gwy-Y<}4A*=o3nWqMd3XHj!Dr@?#FADG ziFkv^aCgqbA=~R~V94WOEl@EaOz|>|oI)qc*8rb|e8yF-Y}BbW|7HNEYl3MpN5Af@ zzAbSdPO|CI?dHzqPoZH0mmRW+BnQhdEhC(~gS>;flZc4wxhGzO889GNyZGN)vv6CV zHKf3c4Q6Pu*yy#)OR)SwJi=c-qe4c@s8Tnw*z5gWDGNAA}xe|1n|T3j4^wxit(bjD`-YSmvoL`%Tp$y zyK9;N?WEwbXGi00l3XmUFZ@)LCNZ$|k$d7o*Nl!3q7V%_-vfI|7}sNIa)U>NhUO>B z+ymPc%z4!*&q<g4AgKk#_b9x%Zg&D(xi(1FaYlRRksK^F1Nj6j>RLu8_#f)5XQ&sO8H-_p zegXW~Tj;`)BauA4T%c4AR=iaDTS|n+ZA{%Gyd^x$t-Z8-fQHv)eaI+8h!jk0Dq(CSo)cB*JMgA*hxa4qSUej@ zoYoTFfVc>nwliL-u|MSqmJ|%wtNY z_c?5f&kH!430vpphnxr_n>fxgMkF6#W)BR6?T=p6V~a$Md^t3efPT zaB+Gu29Ii7Se#;VpaoUVoc;Ejlx%P7GAZrNWeLu(M#oP^RY=M;k(r|7}%Hs77 z^@jcdRg9r4keh{6n!y%{A=ZxR1}8B(lx=Qz(^kkFdjvyoPBy`!eMOvh+Da8~XRkM*|fDL<4j0JU~tX!ST0{qn4`4J#ugRRJpd zoD&LCVBk?D%KfFp^|`QXY(kWT^`&wj4va+Eft=1?6SKys$Gy_Pb!rO9^S_v|*YcX& zO9T-;>Kq^@Ke*WN)a}@rIb&7lvwNPP4j&~{^j0Qg|HT~~d&jk>3JH+C{ zSkF`D8O_)kL>JJJHd7|V=;uZZ8Qo`ueP;WukvCFzN{qX=0;Gpu(_a-%2+T7g#DxC$ z)*~2Ou#$c0uKR)*18LO|zD&^tRapI4Z8j_gw$M$)=%fo4txbD&QT-}qK zgk=1fE`-;(s!Od$XqN+E>B*3j`N{S2BWkZv1n@&Sy!+89?sSNSUY_mz5Xh0fDd$2{ zUCQuXz7`nMZrfdtK>J!$e%wX>KSVZJP*Hl28Get1FPW_K=(9x!3{~kF`nx#njM}@1 z@F(^2*mqB++!UIE;v<{f8z8`HFd8Qyl;1tSn<9FeP13%D?;=JQVh`tb#o63%R0Mx7 zu3A17>c~CjqS%^EURk8o1Mp$fBM;WT(t5E8zE1iM?wSuMof8|n9PPj^F`73c?&*)X zOWNEcu$AP8Aqs`gNR>C6ihWsdiXGWa;3`V~K3m`xZ?0?)R|bK59J1Zl=88v|zTqUu zujt*!*RS`}l)tx2la%#ThhA@k>5)rKh!)XqVyX;TJpl)KjJh1am9%5*h>lYaT_r!1 zQe;;MeEIBlkPV*^V}43Q&;9cUJ`|5_*eVLuq?RtSH*IvZKG#QeE1%{spW+JEDlX<2 zm(^t*ZDG@H6${%KxUQ~jUS za;75~r)^cws1Yo~*VVv;CPSpv<05sAX6-2OKua8=tTAX|J7z<|1tVl2bTPoxnhtB4 zB#eDa>Eqk{2*m%>{8paHV^9}LzllAfpy|{KjbwQ&G2r!1l^B2}wlhAj^WCVznUo^Q z%Y>Iw*l8^g;gJfm&}3ecsj?9H5g5_E3Wq2?X|giq`L}5&f=gz7Ur$08pUuX4A9v6* zZad=WXEEp9E+V9bj(%iI02PKtxhE#E|fR&6iwC{OQRekRMtcW<;WB=u!N=$ z12-)Z6G6y$Aa<8D)K^>*uWC1`cQN*BoMs{ST{d-#vTKA+ez+lL4ApC*;>~w zu)}`-W}b>IMm}k9B4+!~lGg0D26S}hM5OOJvmd?xEY^P9sec2g`+zX13CPHRDVx+l zyPAU-YMM6?Q5um%>5b@=3ryESLB$#N8fA%E(RqR)t;lf*^lVE2Q}rW~qEfYDU>Ln~ zW>_-K2oe9(!nEAUTu~s@`aBN*;0_clCXpqP?rSdESf`Q7;XJ>QW3lxd3!SVkwh_$H z8qjQ&?aJe46?MDXX>EX~X9a75=Q0&mP~`sU;ar5Y{vd?yicz;nt~5o5>k?j|?v(+` z_#h#XJ#3xspZ55zmZs=_U!}SGFf?0n4q6-}(nr$|F{bwc^`|1qE3Zjxx^2F&`Z+p> zvuQ**K^3wU7O%m8c;WoV@3ubjHsFlAZgg89AX+fEET#7F{`~54GEH3BMvR6x8pmWN z%bb%{QU-67vl`^>=p)(##z-$p#|h)DgJm1&Hs}%MfSyvUe&TF_g5IecGA94C5;&z= z`RlsI24RKOY0>b{i#Wvi|Ei8)`ts#sSTb#tR&lAE6A}zqqp#U+FlxITZjum99?TA@ zc`Bs?g)q&~Lm3?x>2SlrW?~9ZYRK_MxNgISU5l9fxz!9*2tTC>V>h`k+cH^ywpA%K%lf1 zzmcnyL5czcQifHVEv*Bm);UhR5yr&(A@Z?dJ5+~WCGgf;9<@_B~~$f0bnKfA!)x zQ$qBh#;i_Gh6pPDchK0Z&*lj7d()*yXDpQ47rM@)o>DM<+IRn#em6lc8`jiF z>EX31q*s&dhylhLP%WrwAsu}LBf1mGX`x_2K`#0EFB_DnEJdGXJy2y1}np-MEl=X zA0HS*h60)l(=T`HOGN{u5rBZ1nYJe&o??{Mp~rvhc!dRk)pb<2iV_)pU3n*m6E1u4m5@{fXo*?X3qE^; zxiTdiG_2)i7`OS2jECx8`QJTb@2;onITgcvzRvps_Jx+{@hy85Pe82OvauKkaT+M9;faFcoSm$j!aYNY1z7(mT?bv=o> z5txp(N!edeLW4Y?bQo+>eb2|&eDfB!e{=7U0D3FgA2awoAxjPz1p`JREe%n;>fv1L zf<+rQ#V!3?xw!n=9Nl-M>j0t_LGrZB$|4*(s(<4e5h*n&-DjBytXZc-?DpV_2>Yf6 z&+$q2L+oIFX@_?4Sdu#;Z9NQ2kv$3=8&&V4vYH+Wc&vjS4zlr+LdY7S1IxmC~tKgcnNil?| z4bu_nPWZGNw-ulCFKq`qmQ#_L3?~BB)Z;o%bWT=>h6BuM1|NwP<$i77LsUaZR* zo;outi=x+sR@_8HW4bV924!OiJ>bfs$mY0n=D98X@)rdKc{M1x*D*vN@(5?vf4A9x z+KE)6l()Open|0N3aWht7q zcuh0=JEd!+G;CfOI}y6^gLK~Mjb!P4Q*z2pgNt8>M@5xkR-i`GsG<>U&EQZ)0EhA0 zLMO(NGg-5+lIG7Ix6);5*+jfCfS*0mFKd7RwpHQKUmBnVuW{e>Q{mE^-WeR_9XHJd zwFn+#$AhIbJ?JU@F(|0e-?t=J#QLZ#8{@WO@&x8q_F2Z1jK0H-g}tNQJC*9QutB^( zQsQOK(5d;kEA^WCJH#XPG6Zrg16qtUFLzNK5)NlL`s$qjM z-2q?})$STm7z|~*XXMHNk4n-Vw!CIzuhhmJ{#RjPU0kbSR%urPRzksSx23J3lSj0LceRLHoqbBPdSB)jt>_#P24r%4@#5p)`!-4LNuuSnG#rRLz z>hS%k591S4&+g?@6E-?HE~KNz(*u;9PfE@0OYxz)wm`lO5wt)OL~U4{~Ro5D0tT_%i6oR38MiXNd>EnY74Z zvx(|0a4hPUNDNbM^+j1vX>e1?Rv-MF)nih>wav^JG2qD1gnO#wZx;0raW2*)QOytV z6=VDC&6zEn@Q-Odggx4E>Z~Lrrk@auQECB#H*>mf`RRE?&qIb+89P0Eg8cGb%^!Bpi^9kXu>^t9Jq0&h!S@#-^8sd2?Hx1C*^U}%|# zP50piIpEfss3aP#1=j^Ti>`a77P6Lpc@Wdo2RuUOuMBm#;6H$^!^*yPQ@Y{eqjo)3l> zmhnY2CWDT3+)LO}6Q^4?Y7#10wgdT}URiv_FSWjw&g0Td_SjRB8iA;3%@m<%(6b)$ z)lAv3tnyqQ@Wdl9?8teip>xr7BD5jLa}QnPu}W!}$-|)0&Qm795oULpeX;*x68wTU zvhVtGsoaW!_XY#&AxF^6u~IaX2lm}wubEaoh7`|z{)@81K{K(Udm+`i1DA}-HjE>z z?=4Pa1YlxnCkhgYjEo^E7t%C@HLQMvLKt!rndNtq$hAtWW=(a^>FO2iobGKPh8Lcv zF2*Zu?H8&(kejCpY36T+McZO&)o*2aX*{;~f!H2-^Zp2Nzi4BS*kOU`nG1Zns`@3F z<#rg&`n}`g97FSX-_#cBAU>~MCxL@tqpx1`Ocmod=S|dVS9ns!V=;sVRLkR#9ie3y zwyz!_EzD?o|Mlcp`iOqdRt5i)sai(FN}KeDVA?2%2mlcW=DOV}`IRlagRRn~jJtIJ z+2Y=Uz27p&TvoO8(RoO#Bw-KA_&)I=^1{f>AKF8p`#drV^g#lzEL8Lw*UA(@uo(*) zjH|AOv7z|=dTcqHuhS9GmkoW z^B_)Ru`Wht0#k>;LEEAIHWmF@)a4ud~~@^U7uSI9egk32w0BuQp&D^=N;=G7iiG zt&%O*0&GOn-j=1u#GLp)JEUgCOH*oa5N%W#^h4d7&Actp3+QJ-8{AO$E<1cx;B)$qL6t+Kdpd<|3HnO+thGpVX~dYSmzg6;6FyVD z3!9%P9qJv7qEj#d&gFFwBgMV436DGvIb|4gWYcq{TSXqr@x;%CPe1B@hOH=QJCqZ> zo_y2kx{m)B)7}MVf#1Pn)-XCA3I-L-SKwXop6a`bErLU#8DsiVF@&kYOQW%>t)-|a ztu*;RHUyh@pdOnT+fQBXsc4Vwlsjia1BF-mXM{qQsOBO9oh4;9@VAL|XxVqUQE^W! zl9CGH*}+mFX1>R_Mup`@ zN%#poyerb!6nV9QgeLGgA4-%A?(I}{01Fa_|#)M?uc!=x?owBbx7`2B}1?mk?W`l6$fSC~z$ zSOH#$-$$329{3u^S5Lj%mhwFmn}*pORBH!4qFBRvsSSG~Jr2DpbUFEHx5UEGIG%`Aea?lD-cB%~ST% zf^-+mC5S+kL2U-)(f7$dmBlD(dMX`H_qT~BP*4BxzK$c@Ixt`-;NoL@b;*)=KUmF~ z;sj#h=R5c}paj^efk;&ZsDOXyhr9!mzCrg7H3WGQf=!e2gd_YRO_Pud zv!D@7UZXUNk0*I+;-VJ}AxCqsrzw$IA$-O(@8!5nDOVgloPjuM5K9~x0U@z-f^y)O zi<6bOECDV8>od@d^xS)8Dz&lnoL%oJb_kPiW{!^s;ATjRmw|=&e2u;Igq6ck6OQcA zjLWAVL21$8G1LWPsm>{-)*Fj5^se>Z^@gMP7Ypd8Z5dL5JBq_#uQRFRJg^u<8vES+CM=Nl>-h`Tct@7%s29dLa@w(Vx~Q->6%GQWa(R_YxD`&E z@TNL+-h8=1_Ry{YUGJxbDHRCcM>QlY+Ln=DI%m{z7XjLxN9GCa zw!IF$Lh3CKGDglAA$*z}#{lsVrHp&R)xQ$`v_z?cGL^orb^6W7Ro+w^>op@Tw+1ZR z3m^HCOtceZHxi_+6{@xbr?xmBfF3&+zL8VWlXhF&ff=9g@4a>4!#_EWS;2VqhB<{r z+qeGg(D^V&S2SptdK%4wzp^j5QgE|8jY&SoT{TN{zlq3I5&76_>c@7a7$c=N@uU35 zhFZMeg)MCfn37hV33@#{vs1{Iu!7?mk+(S5h$)|90k&6-^&w5feOGl(Rc=Nd05S0a zSofMm{#gu@cq|+-$Iyx5Nr{9Ak zUWcv}t&_c{>c3MYqG{fqDBbAJ8^nYRhqm!Z^))a)sHd(5VJ7;;1{ung&5xJr5R>Km zcB_U!(c2G?yXvS_%%r%X2`zO=?2?)4GA8)Ss->T`t|IPT!c}o)vtD2MJdFG!i5hj} z%3G-v#os%3l2uMGU8*G{*I2@GKf|!w6X*y{qo6G}dtTom+K4KRvFAG4!ej@K$G=9a zrWTx`M{a$m<)UvnSEgXUV5mUdTE(I*2;3mCaU`6X8=!T@zQ%qmxm0PY5akh@dgR?a zeyu+Fm0b8S2{}|>aRSb~Nm8j%|4VJk(vE!nj_Pe* z61j|XYv>sX4o~w8JzAlIo^G#hw)y7yKwZW1JB|A{mmibZ9q&e@=0rUeuH5LZHFo;o&7(U|>6%$?p z%$#SM&Wx;ITwDHQG-?)PW*rKRz;m?WXxiJ9An#73ZK^KAtwAI1DH>|2V-3gx8m*Ke#r zT&ej>I?=Hz{T%WhYok`bFnBu7w{)zQhbcm~!4!7rhbUy+trx1a3O!+yCl zgnp#CX82&vI|4BUKvdH@)g)ud?$(u_!UD~;f7D_ZDsU=qk=wQ;s{N79Diviut!bH1 zS>JF|4wD%yEzY^@t1Ts20AHJnLVP6~1gD!7 z&AQRV0pCoN@|ydMjjk{La8>5MSKw}1L{>$}iGdEgV;Uj_C=~=#K(sBPcR}3B05+N7 zUjh?fS7?&((RdUq8xBtRv&+x7x~B^*Cf13Ra|kl{Lnh&IrCqFlxhJcJ7jK;d7L!*y z&GJmH5h3Kz85pTJ&>Gb8+t=@cMtH-VvEc-PWmub%<;Um)mIQb{2t%U+&zgEF6AM7z zk={dosi9mx>F5iw?3M@`vX$1pNQu4wAjk(^!-k)3p>TJ+57R)+t_&iqMKAA)2NtnC z)ge*#ql4qg8D^P{RR- zeSx>d%0(VVqocq-*6Ah={4Y$I{zaq)_*EG=I_@(IIZ5D>_`Yq3n-vzu?HlU$ASNu! zIYisCa1vO4P@*z+sdd8v>rHv!maN=PXQfFG=2uA# z`IJe19@9lnZ`qLDhb%8omZt znXCDfXX7Z$bUsHiacdY9{;hc2Vzgw@;_9p&2~fgJz0x3x?{P{Ox&kg}w>fZIr}{v6 z#Ab7_g9*CNnLTmf*IIS`nB@LfPs6rX@i*3zgxN_}p+HE2W{V-eTw4w0Y<+WdWzEue zY)tIr1QXlNgcIAgt%+^hwry)-+nLz5zsz&*eX+jxk81p?y1J@%^;&1`eY(5Zr6y4i zU(qoo=(1#c%$JBj6FcE-t-5mtTD}acdnnXIg8YMo=H$5&YDme(qCLhi*F6Z(E+8mR{5@ENs>UN-iTNV(S@_Z@XU`)(? z)k!KIJfnmS#gBjj31eh!=-_B?q-XWFWutEn!@vfh2mEbta|7rE^c;*tY^)stbb?ay z4D>P{$CMJ%5Y8G~u|5g9x{a?hu zz{C#tEBv1UUqUedm*D?}{WJKV;y>K~M*gi6=D(5u68vw7jh-Fwm;M|1FCivIj(@>y ztQ>$Zf?=R%U;+G7{PmcXne`v~%l*f6CI$feU;4M7f3Jr6 z@Q+}bNu%l|MBpD>ij$IKloSu&jZx@uMA=QcZU4U(!c2_VrFRs__FGs9Q&Jv zMqgP=!@=_Jyc7_yaRF!mXuiVz56Hmy#bNu3lNJn}f}@d@GJxePyG1PZOdJ5L>;O7d zQ6n=GQ^zm#enp0gP-6?5zLkGJJ)VmE}J@03!!82LsI4Dzp4M_h0`Ujf9L0zHInA!M_*2 zOGZQ+xMJekBe?i4s_%f{iwo-*X)!Yd+oOw%q?ilT*o2D<2(tnWesO_so4u!(d5@c) z?l$ZY87xbiuNt>&R0n#Z{CNeV0DXN6u!M$2JAGX}!vpY;k#ci8;FQ!A%+yr1SaS0D zAJWP_I`qhaoYTEXh8F#=Yak4eIk_m9C~S@()$z@Zz{Bhsz^cnY)EOPrnjPcgK+49( zS)ViwPJh5daN2w%fo>vzurzRTh>-(RDl^+bhsW2U-%>t3!DMmffK**vT8_M}AwyI_ z@qP>ju>!dYk~!qCJcSMhDFZ2K7<`)^d52853ZiV9ch>n&#>lm}Fj>W}-`r(`9SsR@tg14OS2&Iqx}?)Qs* zEd>Y<=ua`IV&OhenDdYHZuGJDMj!mE(|sUSOtlZ*i=~TT{~xS;Y&h6BYwBxQt1bSP z<3L3KD!>mp`KXzZiBNo9Q-hnD>FLoK^p36R-`@<4Ou@9TnCu083PKorzKvgD@ccA@ zjLD2A&LaLiup@Ib)8J6H_O=ji?jILVa{~H$z$rcvnLr{xm}1~( zcaL>3O<$7XySyM{aDD`1Wq48p9Rz!Od(VQCrG!>SCcf_8WMjOApKRrnlvLvM#QO$< z_Vo1kg6QgjfBxAq26y>v{j@pwGMcxiY-w~qC-d&m z+x;H22%vh@q3Q`eI|HMIan-OjTYj^sgt)4fPl8PI$*BC?PjY4iOAZc+#A5%ArMirj zy5i08BPtHSmJ^CRJhJ>&E%dVQ@+|A848X~Wt0X?kJ@$EIVEUYcrsXz}ur;v*+gg_) z_@=4iy;&I$Sz9?G2wZ1x3j&9S3%3#5^Ed*+$^n%1XX{THP}}>s9S}->WF?9V3XtRi zj;{Hs&z)`mI1s5tOl18o=nIN2F#U=z-N+)C=H(w15U+*L+Zw-QP7MyHP~_K?0-2 z6%76fC%HU5IoZ2-PGCV$wb=VWILL=pW6#6+G2-(|2eCLg7){YPddud^XUlr<;~BJQ1hfcot9 z&wQV`hD39Y+A3`U@eWVUy!}P#-R7l5=YrT$`z{^$+6!FgC28+WZxI9U;^?1&e~Pkx zn&R`P4ZJz~%PDkRh%1Iu_8yX6l=&-@xpy2xcQAfd+GzHaT=?m;;tq!fMn{hVsIM!> z7K5Clq?@9@rKHuvAL;GAqjL`lX14kEbWRRJ-*J7!)HWF-I*cDQSM>rLLx3%{y8E#4|? z{Zd1@)ph0bqR~?#mh-`j03W8l#K|sa1Ak(^6VTXJ$Va2I4`X~4tj9lLaihoc!J~v9 zWV!a!BYRS3P|EQu8KmxI&7k-I^-~1KX{}Rc2`4W+H{}So&_$o^HzT}wk zzdoI%eW^pQ9I6G45`LZ0e@YK@e7+LjgbgS)L7Najav@b0fIJ~qDTyjz zVB5zR_}!06w)VH6+qacdF9#k`2;wWyPs?xAi1xkrdM_#d>1m<$*EX@-P!N!U@!8l9 zNFLL$O`qDY(|$cVesJFY>>r~@Ou>8)4jc0UXMO0=)dI{ne zZrK1*NL|1_s*3R)ee*N73Bn>?yGhx`1c||`-?V6X8fLsjdxA+{yhYWLf~8+&t31+`HSA21vW%S1Se!qE(YS1=)YOL|zZG56P zBl0})&7TW0eb~6ZPN#fIZ1FZ6dFye1(!o6D+I%(-7(I70UkGx2{Y8>?Owi%8dGt&9 z%_oI}8b0TT_o-%5@WW@eK=QsG>YKuG9k*n_XIvXKV*fT@BP}fA?I(q^8vfv5_dM-b z|Irg&>(~uF=SSf$HGI+`K5#l%#3Ap+iT*z>6*YWaV%S_<>^|jthiu+89Z%Wsx0jqh za&V?G&GZ%*Q|N|w1ZBsR3ZZdZf)Kbe8yvVQt#h z&AzqAjHuCptmc<9G^=D{eNc(f)nx)m+}MPpvFstMr#L5krlc&hQzIR|2ixd-MJkXA zuuc2U7{U+9 zP;17BPU z#jb_2am{7}{6t!kyM7sQ{aDfJUC*l=c-rS*^%lw;G?Xls+^cD(k%qJTu;lpRT=CL` z{Kfuexr!~mWqE6%&qX7e&#K;XAuN{0k>t;{BUdVer1M*uob%H2j4IznZRg^vzNL86 z?+6+X$|W~dnMvMM;-gkD$S+cLD9c(Uf0M$p5H}8Hxr9+8+z&DeS9MWpaF|`>d}8!o zYwr#l?J8*(FWw*6*DkQ=_n=zjH7M99j4vn6*8HQ0iTq-Z$|**m`!a8Ab2YZ~K+wF# zCgRz=dH3#>%Q%4V?bn&ani$2ahYm&|ck&>iwkchz1?fI>)T<7l-PxZSQNai5%DNq32C3YdO+BqtPc8$|JH79!iTZ9}|MM zBg*)hMz8`EpdI=QZR2EDBP6yo`J)=|R>1iIKxR!7wp zDMdlI{41PYczdnUoIn-z4XDxeB*$kOhp_Kd2Ns~ zb_;NuGOGr87eWd+TXNzf<1>nH-Jxt7EHy_|EMs?VDUod>%dxQ2M|^0}3DLJvDpO>_ zA!@n&{TGH+jCCGm_&-qy1DeFU4F>F_^l8E-zc%HXdXH)4=;j5ix zk|?_0E`Y}^l#&J zGWXKbf#K|8pvuFEL{$nMxv6tyj1qC`x1?EeqebZ`*JZ#xo z2?JpqWg3N_$BBP}^o^@)2fW?*!B1@!`ZFZIp-xBP}kuUYdF~`is^6N#iH2p?eB<#kl6=3bG;H@4BcN zQWuL2gOzH`tu%#@FId4lf%EsPx}3l0GL}yY_<20v8F!1Hj>~gzXd(U{6QE(@j9Ho_ zsl(E(b#=0+Pe8=FwSl)QA);CxtLwW??ikH05s|a3A;Ef*bCRWuy4|5C{k>i$Q)}Uc zj%W5d1M<%wzB_2f#N!>*RH^n zizpw*drm27kAYEt%EfE;0XuCt$G=z6|)qp2nXFD_{eS}ZZRd}Nt z*_Xk@ox7YY{-?~z#3XI<8`P6P7Pal$jWcE7{gf z5;eLrR1|x|io>=MwJv4TxZ!dD9C2eYfFS+Dh0Xhuh!!X}%W&$t$HE!2fFfjeLP_F| zcHTsJ{8hMC3d&%ES*M)W$RAJ(M9lQD46ES#GDdTJUjYPJ+q*%QWQ}&>$y?{tJr%KR zNRH#2zFYB=qWua^p)rZ$2%SN=<~BKDOeF1$?8!dKGSukO7}qR*n6vLeHrUD2+9~m4 z+ncqsoTD$>&bonGvG-a;a+LO=iGb|_qkD(2vvgPq>m@7z+&&%o208e*Oe~$Ee0b~w8PKfG$5_ne z-rBNDuh#Oz3CFX%`_AxI&}U6)+-!y!$W=jIp3$2eRmKhTCLXK%^wcWTjRF3GNGU2O zgNh;cQoO{7Zdro6C#mT}<(c+A7z$;@b@cU#)B9Y`6Zn0#ZQ9UbE;E`0#ECp4+z>?%I-?Y5zx!*TgprUB8MK?7G~AP` zs_j;X30cj%);SNx|In1Oe0^^+O35=PqO;H_Nxl;A0!B8>^)lXOb(rtQL0`9HK&6a) zubcs|9|3FD9n)_?F;c5-%k|vh+TQ_+-Q?mj)F9BLimum=uGGEyLZ7 zAcM@3wzKTURg%>N#jAD0n>L$=GL(9G^ z(~Q5Ieg9453r%fpEj(+sQ^mv54WaYm_AZgV)ns@x%@qUmWyAF0f(_cJ+`+(;{$>6u(T#}6sCG$Y(TgA6b`M(=4-ny1Bv919sISEmGO<%s79b?=3Z|KZay+gHX(Xr) z-mFvDelK{YoG4)Umwavd%j~M?CBAJ4821+&6Fv(xjPF%%`6=htbFsCC($7x)wKwa z;P+e}{%YXpGA$<*iJT@c}xN4VuyDFd34@_H z45uAcIc9eCp*S~b+?^nVQ0-tj*b{vjZO5gOnnK+qNl3P0y4zAjI*1>G+_n=}V9#-m z)KTEMgqynLRW_4QnuIRXs`0V#5U#7=$G(S02~V;=BO#q1TC^&jP99=Ay4k-n%L!li zdt>g~W->_n17Wc{keV8o(vKY!(^D%Y)?;bw*AAnxRsL%D%+cDPSX@OcfO}+_BqYHLBVrko!-? zx3;nIyv!u=@O`gfJQI=Kv2m$+4`(rgs5xCoOUuQj=TH)^h|Tb4%l=Y!BJ|k+%Qt|# z-*r#s-l>75gE1-XM^a0yOhF zW>KZ+PVyN;gnRDa0G`LFZCor!J`RY4n)Qk_xlS1q9iT(&Jr@J<20@znI>m`)3rq`` zMQ1R8I~$ui&-JuLpoZltC7q0N5%EG@aZ~*8kZ-d~MjRjD!t8`>oh?x=Y@82w4j-%V zLfC^A*E`T?SAmkqa~3T@RHX^m7Zc(*R!(@F`T?Aoax8u;8b(aEJ35fZk!6glUl>0i z8dRervE_FQP(Ve)6RuuNGfDu}NX>dXxcytBNo9g`k%b-SxPr?Y_jb1uKqz=|xa(CRbW zX5+coNLPSpy?}~+9Vf~`Dpl^K^D}whUU6O zdQDE0Nxt#3C{IS^1f?myg5oPfb;vsANN1bBTb=Uh<#FSyypf@^QH^5dGDN!s@wqcz zqg+aI+_FmcXvV`A9e_p-Z}2;rb^A8KbuznBNV6>fP6bqCj2C8Z0ZY#;I5_zJnoXp8 z^b=7MhbW&uAw&pj(18`b*j#_WT<;~`oLI$%czxA-`Q%_U7z+!MY;vp&?*@&qw@`O6aUx*qH4*tTu@$sGFH2csd z#52FPoXTjtHkCV3uaL-tMFXwtpFTQoSpr&v?1sX0(V$Qhg>N;nb9MG$6wDA5Js4UA z)W;X7!!zhwlT4Y5SNjuZk2U~}^bL)vI$3Ln_p-$l3Vw{xJ%tE6dY=0oC00i5#O9XT z@i}oAOGF&Wts(U*AD`Sp!;fmON?aVkty zvk}3KXyw&P#_y{x&@x=d*UA{$p&R;uJId<7iaG=tvXsfbER1wEvxxkX)H=IQ=Y2)p z9vrEWe13&-EnIIY$|K{9k*0l`O+YJnx!@*)&Wx~cLa~ihjfBM9(MTady(2H!dfguv z6Gr%Xl|rwJ+Y!Pp!%8n zEkQf(Nq{fe{qmL*GcXGLhApj5Q;Y*=kMXkkq)~dx{7lkVPDqE9D4!zO|Li9CVlQ6d zTEuJ&H;l@q0L@l>c1`mn{h?7V=#Y#y+#`%?9D!}{R=3W)8AGgLe|YP;k|Aij_!vbP z8LA`f-~#qfu$wk>BlxyPz%r|g*hJD8mI;apQgYQCYYv&0{ANwsT;i=^g?9&Q;iPsN zvs$tF*F^;@_eN)HYLkmD%aO<2Z|VT}Ki_-i=#ZzjFjE7Vki`V)#%Fqe?B5G>_&2L( z$=_k>LtezTCZywLbJO|VDVPPGE5Ea`>f0MB9w+*3FLS{=(@vtoa-(ZmUyNZl3>TH_ zOWtFtv{=+b8v&3(at}Rp%w0G3py_1B^+5LfMo&E!e6x7OLN> zjCHgXU)x_u{bB+hk$ly1Z7JbHSJGfCUpDn^hSm^e;ThkqqxzmU-cm#!9iKuwhoJ;s zPT1%0z2N;2?8?CUwIlS^<+D!m#hW+bt4AHO8SXM}OcMAF^J7Lj?cPb7Qzh5OaW*p? zEm@Aiu`K-7NH0I&f4&~Skhk&=LqbFcWJMaBP>y#7$p2WbKzn{ZV*3>9C|XE7`a0{7 zwZsK9yLLIWwjfvRh-)M>#!$4vupI(C&5CU!^|7u`e>@0@YISwVx22W@M(<$iNPFgT zY3i5muWn%iKC}6Z=5VOA$T5;xTX~K`{T}{3webSAcY%Y3rOCVRl21k(g^*5nm=`Pe zlo)D|UJ9r>#^k(ju*BdeM}<pE3gQR zhM{=_PAc@8lTuNCPC!KK@PA9%t7gjb*kzm5g{!Kq7v@K@5}_lXCb!}HtZGEHq{H8v zK2Yo;5=B>7AU-#6=9G4A)l+Ib~#aL8n^ zFEFA!(#r>`4x3OOpCpsVX0#?9tzv}Q3wIrK=Cdy_7K8;_k!r$KAMR5%HLgG1J3Z&6 zBxmF6yB>LIe;vt=`2oJ5GeyeqB9QZEu>y81P;!jAtiu>zId^Exw>t6g0WZ+kg-H>a z5ASJYryOIICF|4)!0-UwtCbbcq?YP%P^kbanXNN<#=1#*J#1WyPhK8->a@{Zb$RoZL=E49 z@7a#D4@F$wXxRGfnu|96-*^sL-#><0F?d;UgoR>unwI=3YwV8P+b(%^^eNj4%PLKd zgMJ^%H6rJmo})i5@&`pMF(C|cXgCMip$EtTJUk3SRt%mgk&*k`y!q>$@@ z60e|{^5)Wm65yGP#RQ}FldbT$sVC)LcR>YMk>nuM+`#2n1SRWgpnKfJeWOAU#n~0< zYasC^T%xv=IS*Gtb5L5@wO<|CL0}_b-m~ud=UOmiBOhirw=S&5h7|a}^Svc=-b|P* zq*>(Zccpg*tzO3TlRW*l$%M9~ZTBA%myPcvBi0A95LcRfjNr3B=#z;~#3USNp$304 zTdb!t*qQJ#Y2{JU8e(d`QoqdJl1KI;^C7%j;pWIU^P_#+j)1-XXp-)KX~*1vYVGKPST}W*1XkH=NU!L9K&^9|~H1b?c+(yPq$Q$xuJ+&fo{X}m3(1_5g zbyqob7s1FkU5WhO(wImvO!M_^VZvqyT{3e4RUhiT2Is0H%#C^ro|K5^`+EOnx_Mxp zF#EU3INw~?3$m+*w~8|T5?SrOhBZIaG2#tA8LAWb(t;l(v0&z(w0hfNAf+^XFto>w zT?@ViB}`bynmbu9Mk3lc3+XFurD#3P0&Zz=g z3@br~GAK`faCRvJUqJJ#6HF3>Xw)u@)`S+E~*sF~prv+Y=rKmZrtQaair;e zRU~4DVurf1$_7ezUOBlq;t^3zcgE7)EvC0+ksWMi7x};YKRgK7$tLGXRXepyQ7F>5 zfz-wVZZSI}`906>r_<1^BdI=uRxIXyR{hgR!^8-+Jn+V3W}yelZ!zjs*m;c`Urbm{ zrJb&Q8Yuk^4(@>$WKgM6Vs*Z=A~fWK8`�DUI~m>rB`-OU=w;v}4_??l=690ub*x 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�|axrQ>D*{kZ0hY#3n@X!R* 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

%@x zaNAL_`+cBjW5RiOhMN8k4c25n{Om_P8OyejfA>xz`_&pDEeZcS7(&ks(>jl5ebdFz zs{akVply0@wD<_QFK0t>p51rjTFR^0S^{|alxK}gAL3?yL$z~y{UcGSu^+%Wz*RC2s zvab4;lLBOx(1;G7Olu~{-e&ju1>R{mZpsJOK2UI;krnd;D!%LbSOj6PTP4nlqR$x9 zL`EH?+h3AEsB6&|hF!L6S!D*?Aq=kw$dy!ONVi*xFq|V)D&gk&RZiq!7E?xo&1?bz;Urh-`})1^$e;Bs&m3df(^BuXbiRqgrp z+y9(N+ffcGkVH6cbg0mk$ijpHIkrFl6Yfh;zpbTIee`2#j;3_@FA#Xy(vO| zOBeL*btj!>cnUTl<8YeHT`&A3ryib14?gR;(ad1D)@r1eAvvV~;u@15hmFySm5QFHk4`2X2nZw$PCE^AwVApIvg|2Q1LK%!{NLp^w5i zQE#gM83V)5tJz>?Tj|fU9O1~2aIL+4-MuZMzcVM0tu2Aws*$;p71kp~zE4`KAFhbX z>Mh8|!kE|^J2^X=7})$(voo}WVd4ZZ0RF0Qa|7rF4V+9w?QER^^g=Q+5{yg$dSwrL z69E0+F(ns6=f5@o0vZ2~3Y$0?Ia=5|+c^T589sYbgrQfnFm^U~0x)s>)dbK>8#p-& znHx9)7@62Vbu1kJ(PRMd^8S+q^M7y4oIkxXG5|3CMS@;{dhE$nQC{|Xz0Fc%X8 zBReC*=ZBq@nVF52frXrbft(VCUf$8p*u}`i5kO&M;B0Sg=WK0Z2(ULc1sEC_S$*c) zr-;yBU416Ye@ZaXG0-v40L-18?YZdb|E)@A=V(UxADrABO-x}J0L;uV4F4(sHda<< zR)8tsUl`+Ofc`1~+rMLsY%DCCpYizvV`Tk|?jINv^Jg;sfw3@uCe)wU|Dnsm{)gSa zblCo|@d>do{K4fDV`BK6D}R-La{h!^|H|<{G1kvf`!9@{`TwxX%)s$KHkg?i|K##H zbpOMJjh&V84}Te$Sr}P9v*Ew(vM{s%5i15Zb~ctjW5CJ5!2CIx|4WyRgOT&k{@6HJ zK39kTmgD4L{4;)xOq>iXfA+`8!N&P#{5Ux{nf~DNsr#9)|83(lHyD`y;PNTQ{%2f1 zG0s2je(JKa{s(7gM*|CM6UV=;qY}2Jc7VT4q0dE1(a!F#nfJF9P07O3ptZ5%N> literal 99279 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 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_pz_kld.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/graham_pz_kld.pdf index 0b85ecb1da2e1a0be5a2c2d247ce6a0f363fe5e4..92560de7836e40eedf1c1b1ccb34a686c72fc2d4 100644 GIT binary patch literal 103114 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 Bc(MQh literal 113947 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 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/individual_kld.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/individual_kld.pdf index a73b924f7d1e9fa175380628feead4dd8f8204c7..9b403af11f742681913bb9249fc2313b1db4512e 100644 GIT binary patch delta 2598 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 Ae*gdg diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_kld.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_kld.pdf index b2613294e64a93e0a8c2a38e82f069b6eb71e6a3..17f42967c71f8dced8fe6d3095cd7595c6c1373f 100644 GIT binary patch literal 165439 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%0Ahc;Q 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%0AhD6+H_q(-t@+ucwo&P#$22pC5bhl^*rU* zKBx;r)u}|Q61RJ_VynC<8wY*AzI=S}dZ|Zk9vxA=&I=~M{_&w2hJDI9kiOv5)1i-> zePo!R@WWLzfF{B1cw&3IKP`5SdW#%vQrg91kBt=$HJ>-c@g8=$KK_t*}%kR1E z1cCn2mWrqRCsJ0RL6MB)oj_~Op^y@~)HzgSu1AE?uaF`>t36&=vk|~_%wUlEBzgb= zcfBzt`rb%YSISJrFb=}H!$}1w2!6$pTZNOJ`}U-#n>R9o9_BOD(|9+L*}&B%zDtM( z%|3v-#^SbJaVyOgmNe{6Qzod7v2Nk(S%?E=3pJvHm+k4B1^(x6OvO-zAaxaB_s)eD zFle?4DVCA||G;6~1pwxQL88{5M1yIOd@dN^zJH0--BLj2r>JDv>}c4-zKWxF>wnC} z>zJ6LM4)Cx>GmD+Va^7`H1JHgF02sN`S*`R<|y~Oc6 zqrrJh0rn|?~SX~i5qHB#7yXgm;3D_aDYUu- zY)I-zw^DW`X=hVEbt3lYY(o#DvjRZ2_F`$AvV^r$@S$>zg!EZ4v}bAC*!r3b{4LA& zpSC3EJQ@aMJw@aTXjK^RE(^o&M?rtiLF0C;niQtgSOP+MV|0`9#S28Qoib7!MRkMk zI4xBg8bSWbhY{%4}hN#Rl$eC^lKEttHW`ZzDh0eOWy?2px zi?5x-%5#nTu8bg7J&-=0rD|5Q?_w1WgpO)7*b427e@F#3bX4+fO-~b?3C=5tgf~lt z?ew^caB*Qu%=PTXkj<|Yp@!JX%r~^0@t$7YHS~a~dHEJbx!Ys^4;59%%x^Zsvr$27nnBMyNm(3m@=AkPbLo9LfT-iG=L zC~+gE`h1$i<11~yabFMHY1B1c_n|v$NG}hFBJ}5~m?4bn;^%2KP{cb~F*@{~Ns_fn zgk}hK_ksqXF$SGt4%i>Fl#9eHeq$XB4Q71KM;EsT3t1!Zz8EH%+9HbNjPAZzU;XWl zgf`Sg_68WG>`+cmS6x`b2exA2XzU94 z=`$2|!hh%JsQp3q9Mxw^q5XA$c4z-)R5qU0{mU?gEx>4hEbfaiZuR0Ni-&y%@JxPb zl(ErCauPltzahtgrbFq=gbezB(vW{ z8!C9OxfN7gTji{Wz02}3;F!y(>F)Hm1QBsttC+fOlo%I{m zSpOX)a|-gsnh|&;5P}Q}FlOifrz?bviFg(7sGm4ZrKP#4q}_9LWKr8F_}I2>+jcrm z$4SSwZQHihvF)T|JL%ZAG1c$A-<@yG+%;=v%^$VS+0Wkf)Y;FeRjY7z{mRqFb>!q~ zipXE?x2VI}$wqzR&?)OY7^Eu+0gNHfKTccM-+~0!YlQ{?m+B( zzmOQ>&wk7PWo1?t85C_#5I0-Zw|@<;)ySkdBAOY&QepHuO7!-KZ_2DjKog2$PI4bWMu>w}EOx`zaz`Yn31`|EM9&CPSG}c>#Gg?0cB!& zTDsJx$i~Dm-M_IVgKO|4_N#inuAn<-jSmQE`(IOU8#+EhguYmu$7N)IA3cqK8IB`i z-Fc0vMLFgq@o7(8#vgRje(}b*MHgm!Z*Qcjm<9{|RY}K&v8`LEAa_}JE)xBt9k*ha zjW_2r@%O$G8e~_G`1kjz{zCp1ZBME#T9sYmZI~~ZsR3y8-5BpR%kSJ%L+WsGGhUeU zk`4{NKLyjR776(4Ni*<1yglIc0=h7uR!q6DbnLa?0jcyBFwExx!_PH9(DRarf>EHF zmC+EJU3fW+Sna=9plNuoB3L;nhT->A3zj=M>Fq?yBid#AYMeq@FBPpIs9`QZdtZv7 zIOuHJp*lP)LLT%A{YW|qkccWdS~0BESicvku%$b+joX~NVLwZlyh?(tx~<^sQctjF zwbSk=JDrCgy=*Sy!^kJgx_^APmW7WJnJulT6=wX7-I+5HN_-8rvv|>IN*IvxcqUfJ z@90seum77U1Qu1!j215?QkTM`7K0NY$l>F$WAE{#7_k*~;zJcaP>tyYfmO(GGZ?q? zg5Q^#Q{PCH-(GyYQ*LIVGj!J^Va9&n`yQJn?)z z1@u>c`7xu>d_{Y=U3y=wO3r{fDc`?9rDGJsfk%rM8nL|E#Nq~CyHkEYhuW^S(38BR z-s;J0!0Oz6dxQb?7e~o~3|`#&X2F6;ONS(3k;Ix=m@zT^B!Z9gWt8(|UU`>PM0K4b zmDg+~F}WYuGlsISl>dm?k7E^co&t7rRdTXSK>B5ZkLi9>+pk!*qMUpk2iZqek>xzBWa$C;+a2$bcS3gzeK>0^YmK3&%;y z4g6uhQOM{6p3C1*=dvs!JWpV4)+ZEKc;enu+?6q{Pfh|yllNw;a;SPBwWI`D$a<@m zjz6N839}E(HO{Pd>}gfN-!*9VST;{QHg#k(5I9uBsq~(L%a@FDz4QDqfZTtq!}IBR z6YYNG?oae2zKDcXnx}v)amxaY#$p$cSqhf3FDvd1qbO?eaq8I<1gGDvfyilHFJ~FN zMEJJ-vqwJ4gmaH9J&F&}0;p~-B`2m`cNXkxZ2!-EqgxW{ z8O}Emz}30~)(KBccjJGUqD-ymrd{v+=B;d*xB(xAsr{O>gG9_?z6wfw0_R(PJ|LM_ zR$k5_ZIj5J()=yu6dRMKc%I*m(fi#2m5}qWt%b2KwrS%fL9xWP?sx7~Ka!i1SPeJ( zmrBKv>4sN z?wsSQ2^kGwZu!^=DuI@|lIr0hR5M3H@_bfLrR#R^Y6d#GE*<(mMi+#^axE7zRfTKd z9uH5Ev}li&hN4S_AMDn+^gloBf_;}|s2%DL2V0fHN}Xpi#8qynX&|^g={UW@5@x5b zBwx~$-z94kwK?sG@S9QG+dElqU}ZxCgB3NNe;2(~2>3qdA!6N(>@X*gx!+nLa7O5< zH=v>~)r-)4_|v8Av-s)dvm7FMBE)`gvkN>dD=GIJ4Fy)+#_{FUMBJP z1QBwMVDE<=zIP-@Mweb#0IQX}y&R-hC2Q7-Gdc#*S4mvf3ZpwgPc?VhZj%;FpB5r0 zwibj@?FfxcQ6`Q%y$5hAbxCCWzBTY9WIZ$Y9;q%Iqb7u@@1wRLfbNL$@VR+NrB({r zUEUfi)J1~&RLtq6J7A99N(5fuf0|{hluLHM++k+T6V24eBh^-YVn9J4v0*vtssa| zTiycEfiN;1e9(i&7D^?8S*NIOce^NRf|s|-kvIfC(5Rn?3H#zVAaKnCtolYKjE^!f zdbfmz`XOnn;8E1^+#Ze=$|L*LW0X%r{Ydip?f8u5E;QIE_}Cz z(#bxG$RE+*TRizz>8=$~1X+f8%6|apq+%P3P?RU<7khqc9n|w}sFi~2| z1iuReHb*IbVr2TXdgo>*+u#w!UA9n}ThGBjhg%x)BW2YmZoEQfYoB~@CCy7$$S@tJ zBiU6)Hy;zo?)%b3!)8ttuVo3XQA17Jdc%q7>K=~ba| z$F$#QQ!duBMUJD4MCjQ;VBFrKMsko8w29l2pN}(Q+grfQ{>BF6u4T+omlIV@uF$Pf z*rLqoZeeXeY)dmjqeI>K&F-sWnqfBRR}+YwGW?th(-ZC_B*D;+Czj>MSwi4vDNzi3 zJHHh=digvO-f0=h#oNvsfApwXU)a+pD%qO99AC#JpsVXDB@QvutJN--X@06E`YRK;!(PovdkA>)A=P<*+(5_s-6ccNvl@z_+M*Ddua6ZRKrW zt$k3YGv`^6(no2vwmrW414O>7jUB0y$28ww0xWIsJj`AOf*p`TGCu>dM^r~Ye)_XL z@lDC6NEZc0_Xxpx0_8y)Mn40b00*pbzw7dl;@1So0?6P_dt$MIcZw7|v(dBzUIk?& z*eQdDvj1t?Me>I693!8fwam~pwA9doGw~SyDq-xPEU&DP8-7&g7Wy@FUc}$D`N>VX z&g+to=DR0dH)jptB?oG-PX%?4?`hUKQ z-W_ouiBVx4WnZ~L6SdsprYi%KHkewVadJU52ub=DOp{s)F>i*^VX5)%JpBF!&>Hrd zYHg&W%T03|7;gGU+LYQA)W+pXuu_URPa}Y>h|B0vZ zXZe(TG`m8EZ~L^6^Eunz@Z>pu=ot|jF%4a&XECW9_kEx&4J+|L7$dJ!$F{k6QE%A1 z`Sd{hF>F8Oqiu#sY;`nNJA+Y3r|n)Q&%zX5P=%#<+TMw zu@xB@=58v>a9Mg7k)}?gNOFL0;z)NYjk|b$6d08gc@o>6w}P{Rw+cHg=)2A^*!ffX z%+#VXGAE8uF@si9TWv0v((^}tr%Ocqa6Wn+LnQ@1MMBdUyy0Sla>4i(l&gwNxXn>W z31hlWIlr{rcsRGCL+s$J?I}zJvlzL6JB+gWn40Nq7D-YIf{Z^w% zNw;KC2X&L9=-07HizP&v##jd00*d@c-;I+4*$M0St0>tl5&B{T5mAXkzpLSM$9!?e zeU5aA$7&1MTT=8%bU3^X?&T*v8TMF14_l0?bhC$np56q9O9U4qG7%B;v2oOd_`2rT z|Io*iKLkxZfy_fMi0uk+{Z)=68R`|2m=ktvY;aR*&p5|W)4c+}{s|c%l{R)kR-2K{ zHOgGwd>zXs5cx14HgI3hUc9APB#tV4==r4Pnu6+J6T23MtT4-`QT;=(*2FW7*eEjW z@f3eZ@qYd2PjSVJ_h$DHA;kvUVxAoJ1f|EF-BnT!1zWTpBM1C;16;;^XRxn47{VwN zNhE=I+&~72quBXF`K7fQ%5KcGPP9#bcL)b*9YS1aw!GiH*;CUrvqo0DK`d;!q?Ei; zqh-_wJ-8zB*ql1-Zu||h#{PJpJ}$bhDpP8IxSX0}Pn1(J@~OnOxXMp`>!2~U8TQCx zTqcz%?jd@zmTFM)#6obO-SnMeH{=O5#7$$Ry~#XBt`TlVZmdLDawp5UV96SykC6oIt;r?ma|+{<65i zir+Kiyd<&&PS{s#p|;eG*x+%}7C8rLAVSWn$m2A&lk45)!bn3tzmMF#IA803@P{&< zpFU2oo}1!;sXS#NYjjYzLSE#6d{&rE0h&AfZ{Qy1^~{q_aMdz|(*O{#LyTI;q9bPDW1Zitj|P^}WJ6 zwqDa}FJ(|U3a~OInSz}X1Gk0TnBVYxt#VPfYHm9^Eut(Dr!vMM+Hr!T zPkfoe9R8$nSQ&-yr=~c=6Gz>}Os5`GmQu?rnLw-C^2;BgcG306EAbpSIs>bt;V?#V zuDdC%JrMGe$`=F+F36NENnoDYxR2ecmb31W!leSGmJK|5kVx$Nq@S66+H`F{(_9rZ z+M@p~BM~tb(#%qVBk|N&-C3VYX#R-MEnS$h$0d&^J>n>qIdoE2H7S8e5;~(3TQO&Y z4fsg#A$U&Frqh$|9j(y6Fzjc#wDEfBK3tg;4CE{`%Ro6S;t=Llr5vFGu~oR9sM8^^ z@f517Eb5f?Y?;v%`}|>GN(%KRpf#)#TEk3u%dM?=02vvx_ zESAV+ZX$({_=k|WFDTa(G;T_YXr z>+i1@<^{$)DY4ty2!F!5f?Kaa!%`7^Y+J7K$5ocFUcHP!#Xo~OK>0LURnI43eL2vr zA!M2YqrYwiOvy~bZdOvOdel2mUWQm9#>3IpLR(KX4KM1gE{FhPzhWSMf>ndmX} z$(F?kyKYwk5#=Vt@HFn^7S&sIUc2K$|H$lwE^$)|4mPJ<}Dlu{) zK>012Ovqnl-~=N18x27yfAU8{=RXcFO=6{BvG_wj$PV6=mSOSuE%I>SucPWwsC{x5 zvoFsNd3j?VxrJRNBa8{DtT}1IxN0=4FjtsHuR^mTFc_j0ffos-;y!gBbW^teSciUC z3}m*JL8TsLp~>d!O4K-{FAKqhCaqV#RwC7q(_)9x240_!Q(>NaVD_4ASO6zYLQWZhB9E>5fa=G}%VJX<4JD;K0J^w295M^Yf6UmhZ#BsvEMD> z9}VjRC^&9@816B%8;xdqc9{G{Av|+O2h`(th51T}kS}bZkrD7UwnsY)hparS2$PP6 zriF1wO7W}2Og*cM!yuPe>Cw9164M(_SsO z+fDw3=b~JLYkowYh+?lCrYGMlFXw)jyBfhu#0HVKj+vG$mIYWw0|no3wg7+GBMwi|h5 z@hG7(B3r;a1BVIN-d6{AEfm=ny6G?H)kWXA5LxTb8j>Cxl!>?iMkIAzxGwbbWpR_R zK_h#3L*{15%@Ri4B)Flc$)8{*KVh$Z7zWxddqVC5eTS)P307;2YBm?CA0lu+nU`=E zN%NV=WjOmPiiiyyw4P9awNAPk--TIs)d|id5V>xZMj#66gKS7-|F8lr#VItv^+FTC zsI|7+t{M5Cn>v_3+e6P)HYnygpy8f14C^{zEj zyM?LEV;1L||AvcW5LujMkK%%b<_<4vvX?N&>P?R2sfSICLI(-wSEJf6EHt|muKAYR z<$n-CiR#2#oSZHPCr#GH3qNomDm>kD_ya7KmgNVm5ZyZ9Y3u_fI0O31Q%8uB)r1KX zspyYbKqA1ey5F>KerTZ8=yR4d`f?DQew20BK?-$Zs>v{JxD&t$ju$bl8~l+WWWPNT zn4#RRf8#RZQeC$=wcAUFoDONw@48&%5>7s-cvkBD#r@cT|7*+RF9ww_@+&6V9{Ql` z7W8PLS~kMoXIJdq?AhjAZ&wj-F8`oBmu>DU_*5aShIU+1+jkJZCyrXW++;UMd%?vRXFQsEEt`cbMG5;-pGA8bReZP0(F3~o` zGy{$?9%wB0#ScsaFjKcenzo`Wy%>u8`QNh`1>un*R8^56R6XYs)1+HjWHt?>9bft9 zxZt>0`AmvH7cFJKxh|&@=|zIfNOZ)r&_FQBNjUmoEZ6=XH}Y5vO$nKnjFxG~=bIUax|tPj zMyni;{=|KZ8C6j+!lBj9hDiqXCNYC3`53~w|0A4azCnJAPPLD&d?qxTx99wp^8uFR zc60|F$xXFaTU#lQa|zW%I`m~Evi|2gQfBNo;ZQ;JerB@*W_nBV1ZioZ(v^_JYQ>@) z0#^If>iloN+!_h4&o%42n?1C(s$%$W-Mx2M+nOGRV(rn_M%k>rr_R>So1bG?)_rVfDyJy5xWntBD?PlGdR!vmxo9on z4?a&vOtLH<)m-VaHIU38z&fN-mLQWI42qb?>x8?`#0-L3dNAzQlkzu{hG=^_AIhzDP7_>>M=B+teyP}+>(`vGJ}V+ z%*T>_P^9FKI_(Q?mIFcQC3owht3wGK3;5SdV6rg@FI?P7syeYd$sg2oo2SR9rZ#6) zuvvj-CvNgfG+@sP`=UGIwPBF4ly}yp!Wr|eMnT$=KH)*7^H->utl(Ak%900fNKwcs zMxkVcn=F=A8ewdaAAt?Ww-4;pq2!c#!WvFaNy*(_>1K93EDx(Md_m8)nAr`IS-$Q;=eSH=2l}bIA02wZ5630jX8qk99}kuf;mu z*v8Q{Z?PEn31{Hl`Kq$L%&QX>hUXt6%sy3ir}{a2at!B$`)~aeMclLhDf_0Lt=o4A1#CT_hK)b769zqJ!Acv$BVRwjb4RdAYQ}tg zHMCho`mZDwp41Gk8!WvAS*1>uDnkWy4DMIS90zE`;Wk4XX!9nZ`z%Sg<^8L*SGR9j zq2HLF&o;wTal*s+kqXi+-PceM%)3f+vMp`cw}|>e`m{_bjGICp;e8LB#5UB!6K)$=b3y&Q)IqL=C4pH=d$mluXxActy|wg z4|E9RE_$l?W@@cJw&3mwNj$uL591p~lLpI-xI6C`r>-gGhR%plSMd94Pvk8-Er?E{ zi`;u@AMXJ9&)ZfA70+uZZU|?3zh-^m?FqqkhM#UTyWKIEWN*?&qjWtbsdxd7905Ff zhx%HLt$G{*MVLc8Mz9WVds1@cZp7NVN|L!bWK+e8I@sjFo}ZtlG&uFR8&bvAkM9wR z_{VnNvJssmb;lzyoAt{dTWnIRiSrsbg+F-y6bp<4bsVZ=^EsQL!EhH@h}z~Ar@s5l+7ceYro)Y zjy(sznHEO0j@s?`J49|+4VEK$en>OOl~k+F_>pX_V+ZUex|8WwkIwzmG0iQ$=z&QX zv%qZids-(8LgTnuiHfl}@i(IjPa~g@2R+lIHEu8_Se(uIw~l#Rr1Y(I7tFQKOckjR z+d(Tqp8MT7HB(?K>Ft%hnd--85{BhSp`f)^WDUBVZbvjB!lc1$1-Kd#?y)?G?Gw5B zuNn?)zhQ<6UcLwhGT9JKQ`-9+)x*ZoATzfg*C4XGB>|E z;4+@Vp*}w+UK%h&UYen-<}}i9P7mWBe95%c?~JX4`X9el9yKjxzAGtP9cuj3O-|=F zRTZni-=c<7T(@6jZ|;#gNno_etx!}yYqgC~nw2>+l2IP(yc@djcQ_95T8uS0=2TSLEn$OPCAx-#BPJjD#xk2WY&FZ{gG<1W%?r-&~uhE29dCru%@WcNG?{RkQt8W@!86VjK~hy)N&sFw;ld8_7K~ra-Kz=DY8fptx>bq)%8# zGE)KF{WxVOT0cjeSO6r{Yn)kQTsv(HO#gdyCHd~!37XFEk%MAnb9IMLENV+xbhwOb z&-s-5{H4UVEU%E_9crdM>43Z(de1F@Crp<7zWzBFr&(NabDfd>C$D8~j%#dL0VGJ{ zpu_ab7q-PS0p=b64|Z3Gk>QV(X7hR?;eqh(6}Har+)QO`li4CmSey!3)7tb(d@>7{ z01HWXT93Z8DEl8NAwt+0+;7^JfcIu%NyM2*i4fa;*0I=Ne0QJn^L zkwaa)p!g(G-HyE>!B8*S$vFvnnSA;E*Tja zs2p+m=i#bS+#GX#n0e`cvA7hEB zX34(O5p=|PR(TfTXyl8u z{$~u?Tb0|~7!%VNe@A}vNRn#}`rrCGIKe~y{R9%)-`h32eJzq|0!e`1GDoTHik1iE zUDS6N(;Xl3f62Y&YAMhr%1Qtg5tzr$Ubuu`7ePSejEiz&8Sum&oK@J8DN`Xua8H`< z@`=kIKBzO1w`ah#ieOmi!otYzDUKGNM4~Ld3hh*aT!kn^uULl9d|o_bDT%Xsyt+3N z)l;xhMe3I|G;PGUgObRP<0YyX=?22bBWlr@AuIk%De5EduWv(L93?ngTE%dCNT6ZE z_?UsLfwltBp~6p7LcZuPE0$8iqxQJtl?LgPb>Kk-U--F7bVpGJl z9jgrdfW3@Oqqe4^**v>Mud`TspSa?lqsV?tfh-s&yM&lNt25$}fbH;wE6Lk#qq#Om zQ}4sDQpDnl`r-Vz^?l2|TSd}4|LY+Ntwdn+7xUJ;ngIO9Irru%8x5o7tkeE17!58# zDHuU5)teQb%~&yUO64T$6-*fa2~vsA$r7PP7g5pX?PX1VCQ6-YD^w{*^D{?|d?^~m z=8Nappom1;y;H%y<{E=i$QjR300adWlC8N6;g(PlCOuX zxM)yx67~Y|6I++=kMh|O9wBFzXQdEHpj8KU@zkb_2Uc|vY;75LpZ7o!Fu+0e!rlFT zG`eW6O|BvTmFbPvetyaM>?5tUR*+{O;fKrgLuey#6}dY}Uo3KjaHJqyua%Sz?d=iC zd#{fyv5M+qzX};$xo#%k=@Q$A%!wQrhO5$Helq(9S6ca`RnGRsOT0uPe>^e^_-_q+ zP{iPC9y)l;0gL@C9*qD!o$06sDq9C8$S@S3Ljes-TdDYHvD(L%sn%pDkvKc({XdVMvjMhZkv|3gItAXF zW<+sjLD1EKNrMry86a7v&6<*;FjnZeO!aW;^r zYh9F+X;sWC(O9|m>Bjj+dq^GBPECOV7fhBV#N6HFpyaq?i(U8!K_fIulR}*XRu3W5 zYf6sFCWBN;3ViNmMoGmp8IX1>v@#xB@|&FKc1z((U9kT33@7WiwcB*sD^YR8d&2o2 zsO0E8Ey#r_kM|KYxz>;O3!fHJfHYXjh2Hda<5 zR&Ic3%mUcwVufL22jIMH0F0Ld0QLgz$NnF^7=Zo)`q|k5xtIVqz!)|b!1iD4pT^A0 z3Xq5a8Zi?$5gR)fAjV0=#l!{kZ!9Z2KrLnixVwOH|NZtKEEtggzazi@5BvW&A^D$X z{BQh!ZU5oH|3QrZqZ=~;<_?gXSpbg>m>(x6%YSOY#`;f&W`^Mc#QurM+yF(HlMA3A z|En3GkCPK1OtY~A<^iY;=f5%kYR5#x4aoB^A3H!=<^Z(+OM3=vVg74QY|H>z8Bhnd ze~2+a&t_-h0@MP~=3)UT&VZT#>d6W~h}r(t4^Sr-Ze}7bKpoiukIx3k$;QnL!}hNq zP%AdT-2S6E1I`uOzvK9aD*vlFpss9yda?qJg%z;R!SXNv{{Wi*7m&=#^xvMB{|iV4 z%W=J6ZtN>pK3Aw!DE2phr|rPWu0!kxb9b#=yh|^S_6Z|1+!q!l3^*P%W3Tc-@h@z{%lgzA7SrX&*0ae)sH?=&FLOb0=E}FPae|*Fv{R25W=W+$Wn0D=R-gM zgBBQSV*Ce)CeY+$RrKT}-6$Fw4Tk)3{`YzU^`a0$EQY>zE+uI&zEG$$4wZAig^gNhkvb1(2qMKiVqBLAWe2T#J)i9TTft z;KluREs&)V4p4knR?=7PDUdL3d{9Vz0lm=j>=>Rg=-S-sEKWWgM+*>l`*%H#MshO%G~To0`i6aQ)(!|j^(Z~f+7faAfAp8g@0H&uwy7key@>{SSe6>x;EF> zp8_}z7e{tyAYdX0D_EoWYEt9K#%kzMV4yXEd^&2-_*T%hFSEKyKZse-uW1CJQK*k? zN52_gjnRRp+Og1)5q(@leHje7cKlJZyaWDndhJPYsAfGbL?QgSr^_(d98@?AL(& z@DR{ZtV9pD(%!h0af}Pg^H)7%O9LyzH>9wLM*O78>X2?$DdmG}W+c?RqA9ooFnzP5 zJ>$bYApZ+sB2FWx(lB_H%}XIa?f^tnDWt7jSAAZ8YBGfQ)(~o_yMT*R^AivdE^e-% zF8(~8FR@V}qQ0SlRcL)Mmc}}9Umbiyh>R~tQJTK~0r>nWIBFpx|JU7Xzinq?c2kg+ zW>-JFuNCZX&gE~-kl;RBAO#3DBL9Gp9Bd$C(_J8YkskN&_P%eCZ@X1LO>{W=uhQX< zw!-3SYOIE7zZ22BCpRb{inQL}fp6EmqM$EEh(JkrSjtmGK#xYZ=S+>PxT0Uc-+p=l zy`>*|A>Vc5-)5KJQHkk|&5wGZ<=?D(+n{hZbX9-92|%dL%qT~f;=x53!Y_MADuce9 zicEwlFs3=a9c6g1MHnLTtFen`vHh*1C$0T>>F|c>Hial)Fyu#$zNt%l@hcHA=hg=> zih*34+-C_!`Am=ec!*bKR$)k(V&ezjH_T3;+N0(D@E?MJ!P;&8a$C!*nO6^XbsOrO zfZ*`);Ql5Mo52MOx%yKcpgO7w+4`Xi_(#lPT!3YO`43&eGlBCG3F7gv`b%%lj*Q&& zzoh{~>7xK^^77+o0LjuE-!#MZ#RnJiF7w4%J7lo(J(=YmNiAO+U@ zA5g@>HhDr&+O2=^>V(SI`2&y=5sr2w;dW16BvUmBG;jno5eMd82`$V*W}Cbc-NM_L zumy*aLR}RQ0?|c~KmG{UHGDD##c@3K-ruMHREvdtQeZmPd&t9T`#Sm_8v4X+mjuNP zrY|1ouURJgNlD3c@K7yBnA1loPg=K-C!gAz;}@~iTiPJ-_+`bgv90UGw0dT6D~b4y zI^$=2Dk&FYujCGhNB)bS0^(GH zfOv`|*lyulIFZgGAZgSa;LdaZ24%(tBJ37E0^+jO@Pt-*xFUZ5FO_S+^8_C=Pxg*S zp$M*VsbPjquC7cVnnAw^t1rImac}~D5m-gyiY&efULF;}i#*row-GzX5X_18^LyA6 zdCTPrK^e@VzSzg*_JyS#K?l#W`GF9B2ZU2ILE#^3UqFOx2Qv^*FZm?j<^leQFon0yg0X_@L_0x|A8Sy+ zgvAGW)krtOO1T`OeUM78Mfjexv3?Jth#+@yp(n!PUl-v7$p?h=b3xf3MUJRyhemMT$XHf*sM{y&7{Oo?N5`B>UuaZ_^-tjq<-N-k>?$&vR(}EqOJ3%k2 z{KK1mPm+C*;BSq>AOfSa3kc9JM55o;3I2#Y4^5JQQ2Z?+#FL-OdeF;9E5`T9a!d~3 zL-^%~o?shM^@rcBo?wMA5obK}-3Q$2i(I^ks^Wxd2vGv<;4&2Bhthls1ni(xEkKmRyr|Er=XN6M*pN~6R)W*DrAy_ zxF&C1kAnwXcwQusLjQD+sgi-qaShrle%2+EEaO2xwc#3rcdiv%zsx(^8oc&+CKKG7 zEYr8l>=BMydXm+XMq&+h73D?4<$2AZ>Votx#p~vf69u}E5f+luE(veCP{7X)L3=O`f zNXIt7)v`J-;EPRg;BH6q-F7<5SUq!L3Q%PFDU`N!|W&4_X+#sek)9yTdl!sqUO zq^)BSD#^JfzNlzwmW3i!3LwG=h!S!ghVJ~ObHG=Cy6Nhz0-L#oE;Th2>OyWMV%>Xj4dN{4%c$7S-r`c+>tZk(9$j@VUN*)GTaTL`c&zIyFGxh2kB)0V=Vu?RV@H z5BCams-*RyYPVsOU(ZMB)J-QYc?;VYSBdd5qatDLgbwP*ge83iim8cAYft$pi}AOv z!4lb)azEuQ%%~9@>+a1fE;*R>8+6FBfu&F<_1aQ~W4}b6CZYv&H=#BBzGUV0b#s2T zPnL-XuYl#~{c;wTBiWB_@Yon@zkli5k$W?YA47`_HTyXz{Yd`JPU(rwoA?B)xF9UjG(2VQ_cGSg6X(`6s1JicnP15{tj48UeINZFj;X zx=!hMy9{dvLNb!=`K7(^D*vHoJ_8ZAwcio}< zMxL zWq11{%ptTspgn)0e(&A%GqCqpdOTV;`^Qs~b-f?GyV)#yy~S~jtZ{=A){K7_kMxO)! zrICuX&GN+|u4gc?wO{{t7n64%N6W8X2a0 z)ssK$XB>=cPe*FW@^vzFGdd2DQ91@vHu)>`R{F*r(S)~CO_O1~m;bPpRTbq;nz)2f z`)a}&5Dm3q`y$g8%r)WFFEn@)jXn#H`1_K|+ugg&!X4#(g)u^NH>sv9!c+0>k=thX z*@%o{W6km7>d6Q}1BR7Ms` zVc!T-=;Vdns}z7=bL%KOH-mjkqOnkRI6Bn>b?hb{Z?RP4MY#Q(PbBUx7oT2-rzIf1 zarUWw|5Hg?evXdTr4}uO-5ZNi*|;tyc{I&OwTh6|Ll#RQAzXa!9UJlnm=%haP;(&c z^+P*nA-2-DM&4Vk8#4=H7O{v*LRCoo60n{s@Ry%MlgbsMlenxmE?d&K;%X92t*@6= zh3^HKP67QUo8L{)u_!0Hqp7TNUPf_HQM{FK%ZHT#L0Lf$rmR=Q-3CWe`_#4qIXMbV zcoV`CIQ}uuMpCp01sW!&|+hkDh4sjvLw$>_kY=SG40vHqgisTkq?W`{q z+JgJ%sr(UlRk2Rki4w7hPVC8hpp@ES+ZFVGPC8&)p#UOOQ$V6(>563MR0*{OX#wtXR7 z`f|O6{`_f>4^+Z3u*4dYP9}lr8$XnZ73Lv(#!O}S5?ggnK2G6BLh-!dpnrAuuCRPd z0b$7TF=F*yZ#q4R(*TLo2hB+Z??7 zOzh!@PP|9TES zbqJ#-`8I67)oNS@3>O!pLyFE{MZONB)G0*0# zYupcw68HXc(3$7Gf%r^(Ag4t)S#Ft#jv?{Ao6H(+2FGiv`Gmb@Pvz-b?&mdT4HC8s zpaY-gAh0sIJ$w&fA;3RnbT=EraM;Nd;$kDVp6e!;R%)1E*2>|3WWai^aKx{j_^DrA7-L?>`avY$@1 zMYm*kR0Lg1rdIHk%6Lx-&3l$wrZxY}6jf*d55Y3IY)@Xg{m5ie9yZjDeuL6vE71lu zQ=%t4W~rUgRhNq|D@hjdKD5U7=0p1AmK^HfrJ(=KsrNwIWY9Ht**c0d&l%{RL~hRN zoC~ZMt#q;}uUY|PIK?*0p5J6g>Eo;zz%*7^q+d5k@}+ClxTj2YSbK^BA<98ABI9-A zbfAo$6$HIbP+Bxjs419iT&1C5cNlIgLB<%k&Nrd?zA0ak5R`-lG)o(GN1w4(1Y%TK zaxn}`oUs`GhkaIWe}Zc;s&c$y^4w)%9I6u-jdE@aHjG>2p%b-=Tim|o@4FZ7iTI+N zGJoWu2vJ#9kzH-M*Jby!VemYk8N43D%h_+!H6IQqYQK6GliyIkm~xM!@*k!bK`1+% z9qhUo6+k*t?Z)C!C|@7c5f>Gn+IJ6U{to~zK+wPOInrOGn6$NujSLc$)F>>^i%Nzs z1V!HpekiBHPUp3x+ijDuql9<*YRq-d_FjQ6ZwdFN>*wc|mapk?jTmU_lvz2E{HVDo zzDVmlTN!K%oSZP-{@$+{@=D1T^fny)v_8-;+CgUxRT%;1)k1MVZ7*`kR^x`<>Dmm> z?jt4DZzN-NZ?n}hTZl@=JDaetqFyCk!pgQ@t6flvtqPYWMu%i~vmol8S(@Ifnh2ep zaehi(DW}|9F9qDvm~Ta0(GJ#$v%|7)PWiE{H%p%Ek^0}R2Nn-^m>JfDXY6g^WTA+u z)ePq~@qG1V?o1JK`m)fI;@SE`xxaTd3jK31GXk4HpFXlQ6l|G0C-8_Cm^|!g`UbxB ziodGii}UdyAE28aHJlSYy^#zqvU$(JtdF_?syo>BN4xJ`xLG%h=Mm9MZ=qiNk`AV3 z$K3KC`sy=nq+bU=_erR>=e1UyP%(R+a~@-qqsF~Y2(45m&#?W$IAFZnw(Bq|n`GpZ z{+qL!V&{_~y{W^;zFi7yBMX$>34Jf~;UsA_0(*(VjA;1AyQE{*-Q|o+a=lA5W9l?_ z@izU}4!Cjvk5p-r#Z97DvJP$7p=?GKSm%w?=XlcglAtqdLFhiaqao?iFP~POWJqEv z>vP(TTW^EVwNanZ4rAVl&*v6%40j+8+suh8u>FMnu33%w=4CkWrC;s*;j1tlawlzd zz8Vg--;P`+!+nW<&!z*BHmfM9!=Dc~7WZ+3`Y-A(HL&? z`FN*2sBX=#v9{{c?n$v{QJ2bovbFE0dw_-s&Cq!04|P9=s)iFS2y3(<;pg=kN++&r zV2E?#{Jf3WO=?n#0lTBK^EG&WB#<$($MJ~wGL@y`U3n2VwZ3|n>|WY&nJSn?P4r6|Y>6MQWGus2t%pzX7vMnNUtF z4phGMDVZd!qn||z&t?Ew%h|jvAuh0n7#_$0YvZ(O1|+-O_7u;>HF##i`w?TyhE&>1 zoRFCmk3ER#we@)3>Az)$K3~~SUi%~_jn?VR&kX%GEmlc46Z9e}KX?(g+1_tPY0$i+ zM78~e0IhIXsKa%qb*9(PHFSh(_7AU^CazZLZaX># zBN+%3o%lh4R%tVD@?X7aepNa*@{wrm)fmHT?qQp8|-Adb%xvbbLj@=-A$ZF z`NiZAyIn>`=U3Hg)!7yU4GubHVtFmdjI>Co%Sxv-$4|*IIpsgsGsX> z0Pq)kzhqNaUnfdUw-76D^1kg5`r_R-D?(-y-W$}2!N}CLD|^)&pz>+zqdV%1xm>df ztb)Y)qI2AqQtzQ>m;jcdJN{>}0dcg^)`c5ik`rFk3MhD^P>f}{B3}0u2f}yFr{3)z zi0a7|&nuyNG|#*dpO1Q(+ruW8 z6-qq8b1n44B7;=fJD7HHhhrbZZlb^L_5K8x2y;s%&iDdv8$GxsFx~YOZ74ZK8OBcQ z8{uI?&DMZ`SZ=Rx1dPNtX9euhf?gX3iCEOHuz_-M)U{FiyeN4k;@$NlT{+B=LlKtu_u3MR8%cvco=$pTKRlv2U`ZFKCmg) z(M_K5{!J0@hip3jic%69a3zR?CWjBJu3Da&$!UO94Go7O0`V4G}WW%Je zdwlq_z-iQM>sd_FW5Rvj>NMU8XyWQE`{#G4A$!jQ6&N=KivA$6kh(e2$9W4Ymeh&9x2-qwI0igbQ`#t=PlhZBk|!| zUP#(g8(=r_N1EDZ1&00T!#~5HOH41inO_!N-I|qdS}m0%b>Me2p`89aq`P@z2D?t$ zJ~CQ^dom?rEagDPmBO`3J0l1!ZiD~4K_v$;5X4%d+l3rNv}fI-9BI5JLhEV*EgQ^p zRo*GjfSDv+lW>|&Om`A#7|#2ahOw%s9~F?wp|FyoY>W;r0|#B!|g>sPVGg63G! zA6+4QIAPkIND88u*jT(F5#jmOV9!`9y+LGFZkT3rB0g$d1&}6I8O|rR*#z8UgydZk zn~J#4*%tJJS}ddSH^_2CKtl6Y*p4fGCgaWyP&lU=G)tJBG&vg1PpvPlxkzF0ZJJc^ zEao|lB8R+vA5mz^ZiUah<$?vDiHmpN2Lwz#F)k)#+ zu@7jI%SG4k!!A6N=TBbwjxD5A6hW%;Ya^2QD}VlGQ=}Y}I%4+wk(EqbQJ3Rt0aV}i zlSF8eTgP;24T9@0i60YFd64zwbSm*KqXv2G-Rz^nYzQ-y+GW!sb8e_8aGbD5)NFcX zhaIW?jJU4aQ`}H@bl?lVw!RZW4@Y@!K%VrakKa{`j40wjZUG#btTpO~9VI0keE_Z+ z5IMFn6;PVeW;#6np&?DR_R5q`nkiCZP3%LpLJ8{$qO%wj)T9?PYI*e)H?hb`2?w*& zP3Ib~VEZ#hHS-c=A)Fp*d_wvr1cn3Kn@Mb>T-oHs4iJXT+;Kd^_UcTB6JOFPPUp89 zq~$|d48QX0w4^oYqm2e-C$CRZhRlT?hwOoxw4cRCvq(_1U-xju>dh#I+4ga|E)A*` zA__>?)~PO*u}biK&WWw{J7zkSl=00=-@e^Q0chXziM?fSd|K79nkO9S4#Xa{BL6&8C~gZ~By);+b6;}5K1B=UvT~`zbLhL2W0z7O-?yn|^~B181D$_T#3koYicK zr+)W|6QOF|@aCYlNEvY-)$i1fz)S1UP-jE9oq+49)`Kkg8bq}ZLkr=(S|~>~-iXi6 z^9(7AsgVVb???CG8qIKeE2plW-I!o4FMNsssJ`UbQZw=5@$H1|QFUh_wJ&hvpXHEO zI{?-;U{m8>kS`^|KEHb_e(+5f_I#LrK4nW6r2)T)*Z#7bi)R^5mFcC5s<)&h!X!L; z|Foj~sNaztcXx%$i6u|GjV2~&hlv)r`)n%T-mFH}q`fRnAUbX9$2-p6>WXr5#FQ6q z

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 R@0K{YKnRqSqVi%0{}1KOBRBv6 literal 116001 zcmeFZWms41*Dd_B6+{fm0s|Cj1*Jm_q(o^+6%j!?l{P>G5d{fpr8}fkK|loo2|-dp zy1U^W3;)k^-Vf(G=lyWLy@zY>YvcA8Yu)!f=Nxm4G1v2JS0yOO4v>*ZBnrtZ7v)K$ z&0WO5+qdHX(7MW8#(y?jh)XJN$B+H?J8t;%4$~_)EJ&mi=ET1njA< zjOU7ruMjzu%hw z?+gF$^8EkeP{hm(HL$?SSoxL)KH2klSpq4 zQz2uJNcT!zDHfMH*GBC%mxyqtTQ8;X`AZj>JfF zTIsKI7QHf7qir`d^DKWXO!YBIQnM(oe|d&}y;u|(Ni6R2`j`J^nVYQS%%}Qu`32p( zrLkgdcD0P!{IQ}T!E4r(oc;Uv5W%fccFwphHd!;Dg_BdxyCGhQ)u=i3 zJT=JMO_cY_U+k}LGAW$#3w2!7&sW$&3U7#5&k7n*99jjjFAob2#)LU~Tk31& zFgVVi$5)yD8Y^)jAFPY=_|T-`LPkB^?Ik+6IFynttVbeAal1xu+-@*2F=5Vkh{Nme z-@jrpTi);&6*N5v^W*sO<45#b%BF3*HVd$C{=%A4(8X3FStmGFpuDb^FgaaDaE7aqFPQXGvB^`o#0O{X4fuiW2$j;+dk5o%~`9zfh4tmJ*|CI z>MvefN$IeklI5Gkl#QO`1rv*~zPv0(c>@N6KT*?T$uLn8L7Iu$Ri^p}RT z*W$;=O~bnUo__v(vE6nksk-UcuU`kw8Yq&uHT+mhUYO0)?DSO7?7+YI=t#batvt3HY#>q(wR57U*w6n}A$-(i8aqrbK4dNb7 z^$z~}5aYUY|9cg!hnGI+)kODkk&1Va6Pf+@V3t86i|*aKc^PG8WpUyzWE;M1|Mb!> z+EBI7HdAD6*}^}oNz0C1>{m{V!_w>lp$DnGRd2fu?RwwpS+*KwpJGcKcFZ^+>R1r! zwED2p$V+rJ=Y(wF9rZ^^k=QThlP4wi@82(AHTcGQq(!%-ujPJ{{H@tj8DTWgcZ&ejF*seqzGCM$Eq9W zGT~armcUjkX7#)^WZ3^3eW|iBi?%oCV=c+D`4}tsb03u`1dQjlC~6o@8g2 zRfxIT*bt{cy>DMcOsK7tm(Zl!H-Aos{sz*UV{gWZ3f64!r^H1q-#SUUb#0|{Z42|k z8q4A4AG*nWlD0FAD!w5hhr?e;U3PRVqPH79U3o0H^iS>69s82wkG1*A%ggf^G%#lx zG)j5Uu#;H|kfiq55_K^wRh)$+=eeJ|yvNGYGGi;n0jh9Ap}8vVntKynWz|j3C>eet z9;fp=S2&z+EXZBG`qGu+V04YhQdI^!507Gfv@EOnEw7td#_f6H*}8gqtlZoRC*?vL zULTjp(5cvE)KPGwHQR*K(&aZcCr&O*#C9~dZyNE#%EOZpDZlO77Y`Dgz?i2876v9`9;N~W|rKGEv? z*{03R$H$nMnBFRrtyGAv?g=-vx9R%4qpYH02#NBnQNoQ6(aMRc@8;(pEbSvdv$8l- zpJmkAkfJSGIkNABOzrZ*lu4$=BhoV zMLj#(o*)}^ZeaXR>9?vX#h!1zRwJ2B@kXs#20s&Tgx8Y?VD${}g)R9uDObZplBTCE zU0ht^E_)t`zaHTlc=moY4ZB)^tFM?jC2&L z>s1F|zjDRx{rmR~(Xt1vhMTY7x>e+0A8_`*U*!;T8U-EK$C!XeJP*ci`ZsD*l-5?g z<(}#C;M~f^S~J|1tH9f7|3O|sLAEvUoKbv~w152hCtEjsVasuGbshAP6Svu7T`6*wy^DQPy;#;TIcbNC=FZD0M& zytmw=`WU%`Ys-D2o_mg8rt>^-mSuMJ%^ei#`kbk1K?hqos_~w}-hnio@)u@9i){~I zAf&l=md-Eqg~_%a+V!krjnd_?iYio(ay zrA)@rw>R^Oyff~6-K&u7usCh@>m(~{WdKsxj}Lls^)()q42=mYyqCS`je-SjsuMJd zmPQ2?s)CI3zQzn46tIl#9Q9;nIC}KxWm{X@*L`x5lBW+hW#}t}C4Z%LDO4f*VAg#( z;_mlAzY5F#+E09r%Q;C4^FEq=S{e6V_dGnnbMNNg-rmI(dyO>T(n?!{d1LthOn>SR26XgdD+H%sg9{ky&tE-#qP=vy!&^p;uDf}%rb%ockIUFZ0 zyPNUkNmfqInkaT$(@kMsB4~dmsSkZU8P-r8BIwb^%fxhvvtax&zMyBKDJ7#h%P45; zPP%YZg#Oi~v8L&PdReC%oKFM7()&FK|LarKcdnfd zhmNl#L^Fv#P=m4-%&FbszHJBM}G_FWnBy}XHaAteW#iSH1 zN~NWx(L0Gr%E~Gs0nUs$t>r&GLmmu3djHeoEqMqKXH zi7bAJm<#a*T+l}aik=04XpYGV4dgWm?ds|h;&7%aaJpL)I%2Ww-x}&Exec}DeyFRj zx9SVAG3c*-CxFZ+aoT32CCYJS@!_<@QAs~mv&AzDPS)1eX->5hmnvQ!Zf~iH510>I zTdwFFm~VW%g}fo(#-wts6z>=aGAX)#=gu9{8P*W8rHA8Atj!9%;S?6DGF^n)##3Ca1RdEz=oZ8_J8bvNs}nAVr180YOc71WuN5fu}2 z9|_dB&tba%hj_MKU4EH?b^^T}lMz-fZzwsRY~+UOJMk@<_kM^2O&T;Mhr}x-^ri~~ zp5T4;i!(zbS9qBlVy|CFQp=RjHg10t5DB`?`6^CsC zl(mFxr(<@JHtiyfxemJ&;Bofs{H4_e99n6%3L^Xd z9QwfW8A<+{u-z6kAr zUd524lB}`c*^snZkmf$=+Fiu+K&ahl+9C5j`}fDuYCSklphr|h%`D=GBNaBGWEu@p zr`gRJqon4}_>Us`9RLzIj4J&(d6QD_Mx}O``d64$p!Ca@MhrHkq(sXGBzRciot*DX3{TlIgb;!f$c8(|*dc!){DiVeCtA@S%2#8sV07UFq7{yL9~Kk;eHW z=lX_lSP)k_97|O}ymBZC?B{;=jCG=Pc^=}IcUq{_)|h=OU=_c0*P(u;c z!rUr#T^L!>>042gpOd-%tz_x6uyA|BlXTmeLEGPtwrMC=yzua-SCA8q!ioXblacE9T$OY#RYp+Yz0L>3}@wm<4zTb)BYa=W%i;{b7f z(ai8t7ugIqzpJW}AqygDY_W6|AThgg?)&0(;OsZ^$u)BQ#y!8~kV9g7n#|_M{}{_! zi{2{PT>8h9ia*X;Uo-I*3Um3#N1HrNidTLnSU4?DR9s$|?2+wb;581GFdNoL{3Erh zDir?l-Gyf|KHr}`eM+}&*P(Hi4u5S&{clNF#LIW@MypH|yngfM&chnf`QJ~Bdrm)` zyi;80^ti`yrcc-+_hzn$Q`#cGc!#z_O1T( zXnX4$6;;)M2~?w;!zTp=TenkE@|OK7w6oc9*CZ)+3z?R~Or!Xi3$3>Ok6C-E!1g{z z>>*oCHd>~=f+wBpp1+GDeTxLN*2f}6&!Tr9MEWvIkhmCh&M3ojK)&+1JH9gM#fulm zyvC5Fq$#Nf>I%-&a%eD5<}5GU*Z(b&6J5zDDOqiL{)_9yZM*N1pH8z`A3rB1a_pogCy@vR zW=2|@qS!@6wb4btQ<;dq8e(8@@SI`5v17*y-238^)Uyq6j-zMM$E&0Dv10YAU~p=S zIQsO`siC?1H}XXiZpCdO0NeK<-UM_F#$~oEGfhenmnjsMItuLytD_J{#)sASa%kj) zBWb_wO(LhHY#RRc!K%|?F86SPMy|P^@ONJ0wtkDy)ye64xgnhCGnq))vH@J@QJxG) z=`8A~D#pJY=f`gaac|f?45pCTr{iJY;rigKKnsEV7STQ1o|mA`eoha!8ExZtz;U@m zub!;IKhyuCG-{-)%p>|wyvibKTLQOUbxsDwA--B3ua|Ar2;?_V zN-3HVEEmNE;81`^;qnUEN4{~T*dw{~!$?iy@Nh+&fU%Mq4Q$>X7X*Qjw1 zxYK&*LBb_l_dx$lM%_DiVr|AcqQfG3D*c;~*Jak6MpN@>Y&_mr2XNhb9LElpi2H6; zZS3`kjjyi%Qb^GfuC%tHUEF9o1Ku>e>MO_=2?mEd269qT@?Z&sUfRsH+o;nxpO6dH z7*10ztZ`=z*SsN=pqZbgmThe0uA~u+b2;$)(-RIOGzv5QPyAB=IHzlzR_hy90nlv~ zce9Vrwwf#*PdcNIV2wVf-FKBG$+&Pv`K)nUbJWO}*T?BoZt@$o@F+|q;}jeGN{_1H z&+A4fwAfUH#19TRg+Bssr^P6?8nc)CYPlukAIdUSa^n_ zG*#nmX6nN^sk&bu^sFk`vjcjk60W^_T(mgI3P4hmkfSWBPOi?(qAC-}BZ-1bZh1hr z+}GnT6`#{;!S}bM?baYj-tZ4KrSQ%$``8baO`;hMY_T3~(_i@1W!^#6mE1;PA21;b zCVneRbF>T6j$AvXHPNrfWnX;oAZN6A%`v6RYOp~P32;urK=)aGC0o7UEeE%$_r}g+o1%lZD6eyzneIATUDWMsjWU%(x7|>f-n}j zkHaX4*M!58SmcbiFAM8{IfqG?(h_+p&@DEuVN?}o?;@ulF zin->QpA)`rq7(`TJkQS{K!LGSzXl+`zE&7GsC(nTKRH&W@e#|L*=|4eU2Ddb)fC5T z$=kb=*jKt_6A+5uzJEWPDLU6?p;ggV>{J}bE+CNC+?`1Fz#HG7n_@B1@YUxex)aX& z0;AWjU#k^7NZY%2uf4m86}yY3%@Ng=T|QuKa&q_-#vVTC`*!L&St=R3GwXG?P1kx= zX9UKhwx85o+>(Voi=OQwGeZh+_wusQudJzQ`sT~ZKBt{+95TQev&AI`w-Iz=H)rB* zJv!F`bXTQ)lm|l7Sw1hc96zaQJN+iI&~9$9-KMiK!b>C`c{0JQyBv7V59#l(DIXhy zKWFdtBLO0tTar*B2>7SbB6K6;lfk1sg0%Xtq-vI85<63(W)>5BpWUyI_B1Y-xSZ0p z-}POX)9SA%f_DLjp`Dr zw4m)sKCM&E3|^?Vn`qcsPf5*k)E&7|!`U;mRMFH;j+2ndrV*xebQI8YMxdj}VM!*z z1vy?7>;vm;a|xN5HC2{^f`TuwaeKZ^eul)QOZo$KQH~2MV(A=NRM}E_A;x(FCmc{q z20M$3Po;o8VG$A0La%MP5V9$Bp~qjFt#xF0VMn;-de%!jFnc50STn3!?fY6+wSk#( z>3Q;@uhzOtz7~0!3ybp;-7Q59`N(&ghRa>9QN}G9Ux(-|7#yZwdwYA!j3_e*rR4S= zNU6SlgoQ=w&!0a8vwP|)7b<)q!q)+Q(D_xH7jfA5Vo?$`!WzXXimLW40&F!k^p0-4 zg75Mh$<56*rk*UY8vlJBZAK+eWEPkUwJgK819~x>iH;|zt=k{fAzs$kqbWuEby*JR znJvtvbtC;hBK$_IYh1P;nLo`#E%sJt=FizPXX^TLl&8+*D!ASM@!lnFch3DL4v<87 z8K^D+wptns@8Uo=M?X*F96PFVgpS7GRU*0B>U?pme3X05>BnV28j+#Gc7Acx$De%F z@e;mkz-sWr6(|Jt;d_HI%G?&I!If_57epiCJ5>4g>yO!yR@o8WHq$3fr<2Ic4hvda z4yh*G3X=bN^>(pIr^w9kuX@F&pteHMV)ry13%=97lq4S|iSWm z2HW$qUowaq=N4jn2Z`nj3_W7~DvH2$FqcRMY<6l71m_fP%(ix}Dig?{axj8uD0VT3 z7%u!_rlZkkzInFum8dPHX0Dq{{Rm+Um zuRiM3wggsjYA}a5BvI&A19JsmH24IJ(sYpp(RYEti`OnLl6$DB4?aUmMyBEUzLOd) z2hSQrf~_FhBS&HFN34CizK`v$+%_~!1Pd7nNEzhF5fdFP;9({k$g|^`Yg8o&AC2hq z%(ckd&dbZB-E9!D!mHx63iIN=w^D}s3);;l#(i(^*rHr2p2Ai@%`2*LYh++xVDZm0 z1~N|t#l%WbyOmr!Q|OhaN+r)wMEKgT6@!xFEE95?yjzsl)}|r*_DorWh-Lq^B-ON% z2+9?2yVA%MW#v)@U^nByZKK#nA`|Fq=hNaK%&ev@iu`?!a7p<`Al+}$J1ZK@>5>Dy z5tMxD#EJ4r`b>GS2$iC2QBhG3LwtMzpIJpjIuxJYZ^?*LMrF8tiSO&8n$)EIYHfrB zCA(HZvw7aLj0_%JYYg1TPb8N z+3p>A^9 zU0T&m9jq#|A1y0D0n0EL-v5~xcS<3eD)+tKEo7&jiPI_`poJ2E_c#bj_FU2ngUl-z zKw&ikweGF?AqA8yYXq8W;#4n^37aSz4N)z1M;4dck5@BHypM>GHBzbe9rU0$crF&z zFj^}ToJk$_(Gm>x;)sTFBAJrPGOf+$6OVCY+k+WBDgv-OPK zIAuGVH7+Up+*1Gku4{+3SN39MF{kjb<3bNDh>eH#!Hu8$Y}(A8HC=E^5@GIka#znd z8h}Wz1+So>9{z7{rJMZ2!ia(%*y3>N^FsQy3y;njwFI=-v$N5v0#q6oE!?f&cygpA zQ^DLky(Ymbzcjv2wKdB~dbwcLwA+){0PLAxz0o0ITSX8`E*uw0`p}O!j_)HQl%ONn z-tCU-m{$2x3<7xoy^L0cko9mt59hm3svLI~BE&~r4;nL@>(;XB;7YE(efyTspY$J( z(hJ+p>pr$IQBA7NzWe<^*zHBzg2rv0Nd6BGo8X$X4(pvgY7fDrpt`gvMfwQ;p_h9_ zE6@rkB`CA|XAwMhwHBKPE$7cqPqt}hp-c~ec3_)mBLiEuT;6cEvAc0!2R(z~Tte~K z+nf0!+QTiGl^L(D0h&`&Q}~7`)gt#9(72+|4oPRojft3D8FMnp9eI8-^xBo} z4A~n3CPFrdy{%7D=T&GOsE?T;h{B7qon*D(~9fLJr5R+Zh4K3Bm}dV;K7DCodX8e%kyUS!Q!Kfg9#}G0@Vh| zoF;ai!JlG2M<;1 zqE;5FFX+Y}2@jy;26F4YRH@k7x-vLsccMADhITcS;VMh6cyQz2*-%v=;lXBS*%f0bz2WN?{Thrtblwznm;CTn9uZM z20OA#`pI*oE5w;OZ`6`;9nzmHAxw?4XelfERl0j@G0yFw$ySl|jRed1*0q2u;CwaI8(u7LSpH#vT#*lVB6t5dL1 z4-O3hVMRBZw(DArJ+L!ETlYx+in9Lg#-*umls{L;zZ~}pustagbWS!dF77$NcXVg(bVO!oCU4N$@qb=%@Pp3liNAZV`?Uniwyo zv_tl1M88whVBOQTVYK;!p4TcO%g*;gYU<)gy~fgyDuC+*WvST$M3D$iE0AUw#H_-H zyWf{XpTs1(Kf+qgB*`c!8riek zZW}-Wp5^-qvq&=N+_%xUa|WV=GVc92)@t`2L}XpV&loudb&GKj1OoaX*8IphLio(Y zv39`8c8IoJNwSt{;po+V&GJT6QC6 z73|Q^H-en^no1uGvF_obwCS_VKl2l+flR4hcX#(D5mBPEyg69t9Tb#6=)xnuTc#!_ zc~DkU?5=9)qqmICLf+AbENOfgMh3zMkn$`_Dn0n)L*$c1;EeW{ul@X@!K%KwGIm<< z2D`0!&->%6lTf`uYC`Q$P(MPepVRj0=mj8bavRc`mY3H#vkE%Fz za(}XRC>o!uRdkw7{lIedftuSAh$pMD!nr`#V{-%b62!g3_EGrlyE;NP+K%(sF@o*S z>iuJKSirItVZq)Jv9rQUNdj<@>iGT+N1-eDb(WeqbKlmc<<1*W%y=NYPACan>`7!i-=l~6}Jfe7b3y4 z)B1Ic5g_?o=;y$ZEn3Qgj$ohk&-FaWn|B!Gn)RjfMewcm-x{?ir=~nXE~xj?(bF66 zWDsdn1+)k4eT%pgK9uqaP!Ri3dJ^}bW~Q$>Z`i~}ekzozYiB7Jx^1ogrX&yr$o4wUxy47O6$0Lgc6D8!F0oDB0!>TFW=+*-{!oD6C5Cz@@=d~2inEVzD@oEXs+o2v8Z|4CU@}PhpWFU}!Zo7v)|IV-|a^dJ{bg9DtQZ zm#BXxPD9_Q)t-NnwELu{TBbSPZ~!8s#Fj)5dj=?F29O7}r{Yx8-qWzDhQk&2JtO?$ zE!b3eOge-LQMMcxQZ=EWI3RBl$WlVv2V2#jl-*HBxQoJq3m6q)bn0|kDY2f#)EFb1=zBqt*D<56@8u^Gp!&;N0vZ-}6c z!Q|hsYI&A%)?*z;En1+ltwvguHf`Nm3tdgd#TSHj(8~pMC)&qy{URG06u*ZGs~_Yw zZa^?vPX3hy@zxK8G1{R5sxUOlU)>h=6J@l~T4vZEc>@E3xc>H6XiLB?X%J>K^pM1- zpbw3MeoPQ0EgAX|t;YGX=+Uk7zYNFy_cmHQyG5r~>{uwRe(zrFz*5Y~*|AQO#f7@q z>&Gj#u7~nj^u8dJK3oA`>*Cy)cE3~uVbucB=pdkH1|BgA)}oxkHPA1L#f}dCjq2Dv zEe8}Yrq^0=zJY=94Gj%@g(cu+dYpcen?&V`3YnmG`LZj>U#r#Shm!Jl?nJJ;D(n*9 z-9aiSk9uW_4xZ+hT?`|c*{5Dag8;x13PuE=6D!UMzMR}rP4{w`h=Yu%An|lWS zNnz*x)MLO|92X3j24I1_^YRSIxs@1#a84jfeH@NKV^k7&Ffiaw&Sy3zYXN>7fc!1p z`uX`jUq3&Z@E7j9khJ~d_82t8zAFYDx}j=2=~~OWQ&YtS@NM8bZzoSCA~Nr@a>QxVc*){)9g0+R-XanpcC)l4=y3#(i~i%>oh|rcE*@$ue-zOsDLjSm z)H&(j%19xPucEylgxiP0k_E5K`35f}yzBMY0i{d>rL%BbA*mAy7wKkW2<*V5WbvwX z*ExP|c7_ta{_}rq;^Ya|$~i#-0^S=e6HL^E@uYTO{Y!Rpp#oh4F8~tRa&>t@EM`*> z-@oLSyzAY&cZ5IR^1%8_H+#N%wY#UMXNv$u^HX}WRN3=KIT#r)g7cw(519DbTm_Si zFIbA&+FG%gjR&v0Ju!jDIhzln9-__6O$@bNnB(~PpE-`r ziU6~fgRw{n#EY2lqAy>r^bO%2`%IPo`&A9T47XX86Y0WbNZ}7u9KF!0kzYH(>`4R@ z);AU$wSN;^73oNT=7O-h_#vV5>!xM=UFrsx^@$P^>En8GB`%9}@Sg`9zZr`CFJ8!8 zifY?q$_EMc4P4H-a$r6!2=k-*)TZPU|JLUJ^=aW$S1`ITt7ZpPZ&S!F66gQ;mfbY{ z>mG2p!TC*pi-jwY#@BuvCw$fT`JY@O(_Jid9;}^&KOad))8hNt!JkP%Cu9P`Vf?t_ z?d{_e;<5XpgoJwespe5rzP1Af16QjyA{`PeAHlf7J~tS6KlwUH5xB0H2r`VYcoQl2 z_3J-B&(dbamLP4f&mCNkxa{ucb`3-~^}&M)D5K1Rg88)%&@*GqWDyl6#3-d;(!H|j z@1(@73V2$WPM*xSq8KHZJ;%BH&N$$uc-YC&^QYWTDO4sb&?l}2$D&QhKYSnk2Vuf* z$h@yY6dv#f3YcqAjJbN4nCl=C+})~xcSM;;X(Ba0=U+c_Bu9VHD=_J35Oy7XQ5bij zZ6za%=$Aa*0UlAy`AorIK%PbrIPc-St2ZvJ3|WK`WM(A0(*TSeaT_q~jn&UI>!K3dVjdvFyho}&3o+PFXd?J~ zV(i2Ly*t5fk$dXWxvtJvhz=4aQ*_0eSv{ESU}cp?lB}f^T@FVrje~^Rg8sTQWk>3! ze`nBH81kJ|@gq7eYFjO#MX)r*OOtcJu zaKtrwTY|SkSEG&g;V0}M?A@O9!fN<1n<8tzLk4w`&xzIw=|2QiEEE&7*((LBkVotPKz(ijj5npaQ9q;F>(N?^m?Tq`wR$vW=K)F z>{z+AIj6Ngwu{h3l~AYC=wa9Kr`vKt9{!Br8p6z&x6>}O5>(H7aB_Serig@kFs_Xt z7h&5Mm}||oh#?RFh8tv%%L!v+1Ln$LTdig40N$9+E?)V*u=ws7eO*FIQT+Yn+;Uyf zQmzcEA!RTJDiAAKKCy0=qOtf_It&+>=PQZa?wrnwQ{%K)9~PW~-Ay(rS}2DrL=yX6 z4~DA|&Q3kA4`L4n<6@?9SO@V1>6qz~2NFU?N(3mB@+QzAuumTK8gb`nLNeg!@jn*K z2wwXteA|d$nus;V4P)Uj`G4^9y;M;?cLlt@!ROGQVbg7sqnMLL6yX!+9p=?fn z7@Qg(jioP}7xf$O$-8fmbZqYJ&$U>N(7D9jO(SVntegrACItPQ!72%con&N;MLM`N z+6nJ!rhffp#2)KFgZ(TaJ}uZIGK~+{7d*5;&Zfz&@#O7@B_LE^AFH6CI?)EwKmGI@ zlm;P?Fai-dVh+J9tpcMu+JwH2>_qt7z`gO?eUw#t4RD{zYs;Y8kv|W&y%nTo|R%D+`yaT=(d1zDBCH2092^cdQgy;8Cc>yLL zJcLc)Aizuv(F97?;k*gSb!-KBY9=xU2SaN`rg6I(qRwZ!*oB_Va(Q1Pt zZdU(_T+=^~Tlt#_g}u5D4U@&L81`zARv|Sh!IWI*&MCvFfoYu}M#+@o)w~YJB_r4p zkT0|be?&aPOu}bV#W(x^Q?MP)bmfv`W0|vGTG$kOr-E(AQnV&?sStMkr8ls-bmxRt z@3@C(S}0qv2i>bx#)qh=ybo|f^tG5$`GNnk4b(kmz#=uE<}hgnN{?f5>pHBe;B$s_ zXT?l!HY#GxNzU2?r`400e<`+v#)4TNUV?g%G(G=jya<~s-k*tyq`q3kQm$aHgkLx^ z4liGanP{mp2?(gc0rwL{n;3NY=2(M}_GmGA;ACOU3X!7kBCT+W(pPc@@Pj0;?f-{216b1G9 z9%^RwO3~V?9TOwtJ*-zeJPV!Gl+FJEp7KfdJ-dBV47LBn-L|spi;vgHpRV#$0)iwm z6d;RtBziJptf7p)?sjOr+-SG=b>-{*Yz{i!ZWI-~|&yV9^!6j;}?a<)nYayQ#& zYAP;iafktg^0H+Y!}0&}0#Fr$>iXa7lerFd)53<0uT(U=hLq&@P4h;l=J)kQ}R3ErVZ)7Bj#a_i*W>0%I?|)Yx08qS8t|8kOW4# zo#4f%e?Otjqvqz|s9vxK=>UQ^sK*hgO&L+6ep*@{Kry7opY6tbM02z4D$EWLA*vT_ zK^fTsdW9rZ)AWKj48(94)C}2HVy3zfgRnq+rms(9=5!i#nt=8kJX)p0kA8prPs4~& zpNHuX<023}r;t&z+pU9$*|kR<->4OA+-*$ ziBRl6a}nHIBjgN4H0E%+=wqNLP}nXD&~JutQbCGgInxVGA`!?}0Vf*Go(g7Wrki!V zPJsXV^TwiZ~-)$Sds){IGzCR_xjgpW&%W= z9G~}?5?2NEZVNe#NfJ{MMZ_F3ab3uu3ZSkTH3KV5kXZ=+%#TAe9%+d$TXPhO;Uco{ zJKl~57l>DCXawWSVjw@95)#tDa@PZ|oz*Gdsppl0wo7>7uMd;8r(h`OEitl*l7y6h!_OrR1z7v|Zd?HwS5S?}o97kULoBt<`=VO)( z-T_JAOuyEM_wT2BgG>yt*~S&a7_dhZrRjQ4D;emR@ZRelP2xg87Z)v0N@M&+)i?!t z41TMf&RXj=8}nCj@UM2j3$8nVd+6JG5!}~i4R{S$YXy&hD8(o(|l!gP5^Zuhcpd;>~&nKBE|$H<9yJu4fDZSr71;-VCq*cWKVdpM4(^95|HohFl9h_?6`` z^|ixN>fhh1Fp-(*s-hRQ!VGrb5awe@cZoT463Ns`=Vi_rHjpv3r~bY6_u9W_MBq<& za!j!Q)li{@wdVY>`Plenr{xsMAVwb<0j3@LuSoBX%SUaO+Cxo#DQY|OFD0rsUfN~U zb{CePZy!Czyq8wB{gRlN>A<@umam@Dc)ubW(7juCcXZ4vKlkpJsyp5?(v!9#^mBjM z`$CsOW!&D{bo3osMqi8}Bg%2i8@vbFuXB$)^L8iVM|N-xKpbX{3xoQO zE$uTL!yCPqcJKN3^ZL8#%bcwsPd}kSgv;Ts@2V0DHEc4^h`d#uiRVW^vHpYPTLwNo z&3?h0nTjmo^ZASa`SB~esIke{-(Q`5M@*x^1mMO^RHZt8f+GWk$icyJMMmbLq~s3L zZzLg!yLV5(KJ+Q~Hw5|hpTG^fWQ`t&haZ9HOM`Bx1cyARtrOpu zO2u8j@%P_E5)u|pgHRV?)CtH6chUw@_>X(U1n3POn*Y8Mp%Yz)K4Sr+R-n$5c6N5& zQ|IO7tqMFVEzps!>!GA`{68;!AFXq&dV@xxEj2vquU;a*tB(mIiTcc@XcxbP+3*I_ zx&Qvuo%qy`c!tLGOO$)XF=6brOHfeI50QV%IDGWjv5nYy`~xzZX29aJ+aCEaoCBHx zAGa^`IjT=Kf$j31ZEtIfTT80bd9Yn5R8^_ioJ9c!|>_6Tr0rtw8eJD(3OUPWYTZ;d2!1#+_D>=7d3rPQ;!M z=z%;}V;A1=@uS%ENGmO%Yy}X>6V%hfrLOL7toSsI0qKbF+~^48S?&W*loQH;^tj*w z!OYnCch^3)wjKnYD1je36}rn-x#N+_3B(cIx&O@O^XJcxkB^HX!x3*7hPrIPiw40~ zN9M|vS1k=%8Jwq1?Jy~r*a{}W6A{SA&%a-zK`!FQO_T~C84=fAhuuL(o#*hs@b20X zHnyE$A-McFwO^*EpZTB_^e(_k;4l$y2q-$l+pEf+?PO#n5aZq9I6gSs2grayH396@ z5&z0RV`ENdcpO7G%wS+!k!oPUA?DykGP^hjYG+vRDL-Yy~<9x?O zMCkGKk1J1ZpJHbI2<9-!|K?_Am?jK6iw>iXR)EAsgKk3F?PCqTwE|Wx&6A-K5?);x zshG#`+Y>^EJwKJc@5Uw~1OS5TU@{PCFv#pMRnmdB7qx-`SXHL1^3+nG(0wTJLdDBDkp3q!Mcwc$rkH#Mc)l>z;2|gMnT&B`=0}_=j7ys z=j6~K|A<|`zK7Hh_lj)Cj!$@;1M-?_f9=tMW&FNVB!wV#s{!+OB0XJ@lzeVk4FL&e zBbTc&7cd26IfB)r6R>0kNO%U;Zoh*ja7793=(?&ZbI8=}>}6CT4NXn6nL#B8Ft>q@ zV&miM)EjCvFtfx@JgSJ~tid6H((z|x#1s7RfN=b4P-gy5G2ldj6ZCszgu?Uk69n2( zPEJbafNOTJ9*ma0 zZ{51}Ju*)1fF&`w_r|b2+k^p6I`M+X;OzX+g*(?b-q=afSBH!F7kp~ja$_CXnV)uY zprbp4!CRV$|MgQ68})l^j5G5srYv7Uwn$CEw9$5= zG26XwpU$|gl$3i%AFTy74GkG4&gvXGIyy?woIU;aO)Adwa>O3=4=i7L%;PjMs{lA} zoLUnf&+-nF`10zx8XWczHy&S(c-^9?qC!qg-%n@m+PU*hOEE%m>yohPZ|8>c($Wj2 zW@dXdG&G*Vadw57oxSnCU3WP}VK?zdx-)m&2-f8&1_5ub;i73Ud2~ehI2YG7Wc1UE znRejlqq5G9=@dJzJcZiP@H}d^DFP^?1ZEay(r&ba$Cu&de5{<{+k!Gf4ok+5CHj2Z znfM=kRl0FuH_mo)F288YGkwXot+v?733oG)b7IQm8;Im62NZy57;{+C)-wZtf&1QY zp8EM{?$Zs)c_q_@zB5&3N`AV_TCzn0c4rr&!;GYSzfBi5T0OhlashEesNb03=d@z^ z0;M($^Jts5ZQHb)wE;MzDYh?|&urtCEn7&RS#r?49)m6NW-A_Epo5bG++x`9;l%>b zRpd8O6&00bXwLz{cIR-8qt1^?_A#WQyQwwkPrDG{brVP}(te38?zn8)0hprWD*N9V?8`kMsaO8ulC8W(BpdgL^rrQr|b zlanPt_!ICCmwX+l;dv$>*Klw(p?&~nk*y!Pj-=DgfX=%}&HK4+5>JAbn;y2-m zVpcwL4Xb}nLx##v3N&y_+rh7M`}UxWn-q~=8t&-%ZLH|zb#$1u`j|4xB~JPn^5LV` z6VFb;$@}3o8r@Az)*D!cs(rVR+-x^Lun(HBn_H#Mnf>tRezoyO))U_PlA;^!dg+Qq z7D%lzyJK>sLy!e@WMXitv|m=1af`5Q>Tkuf}NuOiwqU_Njv{OftOSuVH<46x&6!{a&J;M^7&1t-{ZihG!y0 z7=Z}&06hHuyYQvhyK8i9FIH;&*HMI8G@jf=CKXk8CkVkO*HR44Dk4-NUwjyGlDa_l z7LwAN-cX;fcL-;0;ao##4F@}WQuS>bP*Hpiiy4;7C^}IcBH#6Ot{_+=MiXklaYU}P zq?Elu(j92myE3xp77!rho^ygPf!x>kT=_G<8y4$5&P|T#pN*u6ZTBoKEkhC=t*y_2 zgFPV|@C*KFA&?2@y#8HjtO(k<_-t7uxeRTeDudXT3v`^?MKAh7?RJ6xA?WafjoKFo z0=i|aE{YskaIjGC_s2(g45%1vvkeu(b8W{pMe%T%3{Ib~To@#?T|x_mIcGj78V7b4 zI-bcm3IZqCF@21b%3h9HG<u2nXa$8%Q z;cVhq(b6tFk>GVNiKvYbj?(Z5D^izUEP5~o0%jsS*aRdrMpzP@ok<_Y$Waq!$;rt* zX9tFc?pwomDsne_3(3S}Y-^^dW&dv6Z&U13WrwhcN3Kpa&69R7zU&Qfv*5zX<%7TK z30Q~yD32*qOZ3V# z``=p5D+rA&Ph@pY>$K2pqX`Ik1_>!aY3W9!yWy-G{r%7ToDXm9;cyI* zea96m=A3I?)~C-4kI`xPiax0Dqw&r4-;LCCDdDIO-hi;$6o6s~r0@ZN3=0iK!zCsl z+Xik-GSwAY+tfnp-~g};#Ps~TrG=S46cmHAlC7l{i`;Z8dzSJ`O8OThmUFW5Qz0k6 z1oMi8+S%P5hnOoMBt&4Kiot|9xz{gHh@cnXVAl+Y%R3`Iyx9I?fF~%M53#+Gc-2Vz`ndO zqZ0jGcs&wq_K?-*GyJ+r^!a}xVZfhCdCxz~mIP718aGeLnu zCs$>(>ZSg2&1liR6&BpQ(e~!%i}L*>VyL5XNEwkRcb-d*mh%MYLCx6M_Qp%dhtx!T zK)(9}45`Q>h(=Qn0ie4Nz^LrLnD3Do1ZM{JS;{}5xW%&ip^L!-Bwd159{T*3l4k<` z?|VjZ>H9$w7j^qjX$-*gAO%^@VvweY*v2O$Af46bo&bOaVe4k&3IMF~`=HML1}0D) zAdxgtuem2p0DRP=yBEq{%a{U-AE4L+be-e?H0sUj&H7xQ@l=vhNK@16y$snD_5lJ9L5;sVOQv~}4=5wn!xgGF30y%vgp>{-J4Q*VsE{J8^#FA6DR1`% zIRS*=wV>d{l`^Vz1~Ni+@(IM{tB^;=y)Fd5++XP_2z^ps12}-XuRT0W%mBL>4;eQo z>S9e;UtPWa%k35(0f8d%T|z%Jq~BggyR$nGRL>WH$e9iLLe|RA{xlZii{xsD`sgto zO%LUhr!|u&XH}_JyjuAjW+2vPc46T)bmW?ZrE}7=&ow6}2evjDfDK5+SPCpn@Qt4Y zNs(|Dtm#)k=#?8gVdiWGi%5{xS=Q?1Fcp&^sNI43lWWkM1{W8%W_Xwm4r$bo%!iC2EGDM8qbd8e|HtqKNcJy^T_z{5%lK<7zGQ&R z`aZ1JEm9m5QZJ2EeLUhN`<6`5rEG?nhLK!5d*{FZF~j-aTb@1p3m)*l|M-9R6`n0pw814L^r@gH6bO0# zZzh@?;KEe1)6?e5Xa4;t0IG#Qp8N04zfhbLO%p9GEvFOT1O`e&Nn3CV0J|q2$J1E> zOs_QADDVYilpZes_0~jtfSb*k6TYbzyBE65<YY_T}{uzf)Ba)%Ic~#5+?(lucf8cP4f*Jf2Rt8S;IoXB19}H0?$%Y69Jrn z0QX4Xid5X^-!*xlrK1D2f1B@am=gh|_Cbqdd~Plftd-biwAq*byA zKs7&446X)f5adF@s@5QwG30*vRVp&v;ZkNy@Q&ChhAUUQGujBkw=akZ=zbo?R zu^B+GkoYupbVRrB?(HQ59J#W!_0k|)7P3bu#K0(UCaCD9C4uI-QUWIE2gvN$A{Agr z839KH;U)?dsqg~4Ix@&0g?ac*#JZR307|FuQO{q#Oa_<;@KXTe!~nfVp^ibN2`UZ( zE~An&0D-Y1r5IQ!=*@D5h6WjQqcZ1H5Z7JLkeZ4MOL2k~Sy_$B zT}ePLh(be#^Z@FDg}ipIff`9G?P`LG|D8+jxFDYnYcDM?PXSMZxD#z{N*MpghkGt_ z^H#sbS*=JA53GXGxH$A2|1Iwcn618!sMq996#y%MAV@Hj-;jU_Bt*309uzPcGSbpm zJ|O5410pZ9*$jUlx}CEkt;e7@ZOZ%iC;;%k0yF;@DmTHh0Ww7lfNgyD5ftX#0(4N{ z0diV8=%QHt6GHEW!D2E{g+WSM1Ia=Nq%Nlj3lK@bM`mn}RM-Sl+*1h78F}t*bmyU7C)ybqpV&b`&+{&%kpGAfKcD-H#fa_oH zFUrePTiM=@9w;jDkb& z^rva^%xUFpfUP~>AYFx})4DEtyMi|E3^g@J;V~2l>8E{%XU5FKAm13!wS76VKI3;w zGo2k4#fi0!E$j@^_{5>@8eH4ZjQ2E1D#CV6%l%XDoGy8(aCz-$*XWdYajTu+6X(FM z%2@WLZqJrJzlEJ;>Dv^_@Njr?VZmq?ab)v%VX<=Qf58QY2_I!MTt*2Xda3@l50rL2 zf^KlN)>Tzi@Axdwf#M5K%BXt`s=hg20^D3s4LcDUQ=radwznZAkFW))E357|5J4ww za=<|Wmuv*X;}7Psf8oe_u)s2c?{pDNjUI>&e+J2*;PTu^&o3lCMGI-UK^?G%E!Sou zc_BU$D*qQDAruzPom+^n*iKQN3Ed z>T5yw(cjB=QnET%mirsqX!yw1{oCw+h(}E~Zvn{@x@8Z`7_L!LS{hTqdhOa7q>`#x z02v_>7Z6M9K{Ab0H75iB3YbtJ3H=*NO1hJ%5DW+$!Kp%nU|>H!WM!QO;IwmdpiT+M zpa59s0vrO#z34!pFG3G|OT&*^G_tXlj8Gs+)>WmEl|2a)dR^f;02jkSp+RD93gVZC zy7CvDAdp4&A~bD~0xPPZsECn2w(h3Dh0s1LE6ao20eaY}R?2@mLBJeKX+h#GP+mz- z$i~AXtELv(>j1jydq=^2&7b2YT zNSEhQDFMW9IH(G!QXnKHZ3Irlymy|_%62E$Zy{xcTFsemg%szY9Oa0q{6|m|0|!|3 zHlW<+Py~cp5>UPHV4?r>1p%82Knz+r3;iAjCiXLsrHBmOK)jn4dfjXmU1!Bt?T{oU zK=Nm0t{yuwlvQEbhy`S$l_LVEAJ8+!(j={m0lWif0dLHYP{Z*GoquxBJ9lH^xD*kt z8M-rU>nEQ+&3wO?-!}%OE z3(k`}CVrgl`HK*I6M){Xh_?jMz*%PzI@EOrH!#)d$w>1cWP2c;9t!M7NA5{N<<^Dk z_i>?|hKBYQIG9S?KQuQ6y0=hmv4dCX>1(p8mh5yzKRnEd?Xj^26PsJ>jdCGR07u_n zU`YB^tvhTj=tGN=?_(>?NCK1KHX;oce+3fC?$VqdE2MiY`zhAw)>Y`3XbN)8631yG z@NSU$pOQY4$}J`~^e4BKx=neddD^k^fm3*}n`Sy!{wH~5zrrFg%#&d2pFq=+v$V8E zvmUat_(&Oa3Y3;39rE>i{A9S#LeTm7(c06tlnFKM>UQ*v)1lW*l#m77_2>wtqP<$W7D9*sE5pq$jMVxv^6;n_>>!YS=OMgbw&1BWolF{jt**1Fsi}M!#t3qI zkX1h0Q0_Dva+}SZeq#jO35s@uVf!JB5DE>=2F3xm00{Y$cB1OkCp{~f zkZc2-sk^9fU&;u_p6RWBVuM(q4d{7zNTH1PZ97QJ0L&ooTm@Ju^$?=Bp21m=m5`7| z+mQMkA8z9puWxSNhIZu7k|-%Co`budE7|HBiUru{I+S0-QdPaWS`6G%oLEv*7!1+( zXE{Vos@Qf*D7z#qj@AXbzmXn)Ed-vrUF31J1#DT%|(Fg;)ubvl6T=(_3G=dzNSuu(x;6%mr;xg-qzNCh`px&ZK5 z0l;Yjd`XUzEyTjk2gtn^ER1_A;pB3tpPuwrmr6eX($3)0;8Vgx7!0ST6aswQbaRLfTX=t32fbg7U6Pj&> zz*aT|XUZ~o8(bn}qmNx@X8EnWAj3 z1U!;u5XjeyKoW8TE=E*pba!?S1`A;ZpmExTiqWnva)jDi1$2^$jjf4sb+8pMp8$x- zvB0(|c$oCkk&@kujKbGQl`&DOx+D~L34-iUBc>B#j%$0z ztbav-!Ltx}0)u$3292fs=MIpIP^xBIbW4@yD|j;`=Ld6XbF=`eDdb!V!%CsPdqCujBYCg4bruDe-cT}R>DC_ zS=jgIV}^~xI^h{|$Dl1E%fCrOKtL9d6JNw_g&!~2))bSU**){a=e^LIIPw3}Wjm0N z|3iwtfCBOVK#_WrSm70Cqj2PD&;i$_`f<>42`q-$Y*>yeSnj?kpPy(|im{;s*0aq2 zuJ8>k>R-rgzY0-6fE z=z>bAJ!vVIK_7>IV4!+_eGrUR%<1177tU;63-!h>Da9eYbXrK5raF!7Vo3?nhTQ%>u7X;l5BZ*3!NSjn~4@9u45>OU``}O}RPf1_F_<5xtMFnQ^8!u)35VVEh_Z; zZu>mf{?q7^KBIJ)+8Nk5TMQn#g_M52KZ(-OPGUmL>EjeDwoihsq;DKOirI4F<0G;i zH!Lw6TN)hL?CQK@Q>iAG-}l5`Ad!|avv50p?dUpVG;SurGVy75B^Z0J;TSoQR*Cgu+djD`FRIIJR z;6Pv-={JWDwjEo=19D=D9IV}oZ`Uf~-JEz%&kP#E14PtQs4KN@S<0AIm?C}7S3 zSWdflTgEk|$LfPlCRC>-M?VKW2(7FtNuvyHp-~Qz)Dp24#l@;i*V`RlzW9@Y_T!Wq z=dWSC8Gon!d+T4%`0I6MCMUvNgoQCMPr}owtEr*={IEsu+>uFD1sy6M9|d^xEz%dU z7YUkgp3#@Czi@AA^y!EbmihA|{_|w?3qD=j(dP}g`BHF)k9GVHNt#4RAMGfz!ebX+ zf-D#u#q`i)nW-OE;g9d$C5ERXWATN?ZRU-qz)z7z5OkDCngY6{O~0+z6v4CwO$e-F}T_mxNd0r(CQ$$i$QJ*oh`|jq`^O{Tbm)E3b-_ zEBLj3P0XA{?YK})&M0L5dv(_a8QL&mGZm?FpO1r&GSLObzL$ta=;z;+>^7jn$gmdi z`(67pST6sd#Tlw-AQCn&*)jMx3{5l06M(Rr_lX3+8^C-EgfzbV5)yPvlZ3qj|E)Q; z?cRXES>2Q`6ive1JWFHek-rwK_J#gkz~DOK7b%Ed)UJPtlHglw7w+n-lMTFOyqJ#U zVYq7%sL_!78to&<)FPk4b1;01!leP)rXtyuOrNu=a#8L~Pvb< z4iQ@kqt2gQnSk}C(!%$phyU(Jdj{w%Pn8_0?mDSv?)O3$Ke2swlZj%8z>==4&*r;j zWXV7I{@sR^f|93@fxZ)w$XhXH!C|%~+kGRQ6*M?<(V5L_dx*MtE8XXEg z_U1h!ayo$aD$AD5?F3FcM-vB(_A=@H!pnb0=`4R>L?sS=c(+#b?bm1hA92(z=70T^ zJspqT?e-_JPaCUv3+v7Z#d-a_LL`*G61qmC_9SImi}N4t_3ISi57&FNnk_wxD>zEa zhX<_pJbquRX{ZzUd_eA1QLrCJm(PB zRdt~J72q&&t>-PB)VTJlL7W6yH*eLmFj8uQ42hOhQ*9@DED_iGlcYveDgKVi(u4oa z3I78m-JM*(-?{xNPDE9ysSqy7YC-?xeF^0VO2Y^5t87da>-x3OqB}ze<=EB@mXAYb4cp& z8Og7mrrqRAgMWl@zTxUxq$0f~eq zJs!$O##p0lliPm^CJr1U&2`8$z3x(~J-(eaQSL39_3j@?X=Sc=_D=Sz4;-bP8#Ch3 zG38f(xZn6Ocb$HnF!T#ffLGIoxG?L}*43KG%TIrd-}lVDH~)M8A^;M&@GieobD<@JQ?qb6mMK$10|)&(J44>;_#$k%L2f(Sy&%eGSi?5?6PA`Q zOWg4TIkPzi^p9iyGjBldt1D)PBf+0sD&<|ApqxH&-`T7Zb|y5#WMj0OFKUchWnOw(r1-T*M;+HJ33rVr@Rp7@BNnU0;J1GP zof$Jww--A*Gp4MpB~falSV0jaCU0o%2cInIVDOjXan`QBGVvW%*^)o~Z;R<)0N#4j z64q1gv!`3n&|e{(G-_WCop}pmj`g{5nbKKmroyx1(X*{~tSNiT9s7$wCxM zPKBu)!ZAul^tIKm^ys43XhN$@jKq7o4{S=$qemt2C~EHy{xC(qDtCGC-=1+e5<2EV z4}B}^I8n@l!^Z~xpE`wEyV<=6t4y4@UMa(u@X_}J#|*BqH_PZuNo-Rx?6VKB$b9D; z*$KgT0<=pG(5`f^H_KlW5QcaC?4523?sSEmD$^w9Vsyo;z1a*cskN&$-xnty_l;b| zRuS0woZNC&(9IW&C}mru&fm9a8i#M1vBNjpL*FJe=AJTmpZr5WzGR?<7@hS19Va+8 zdQt7Aq3;q>w*sGJ*$LKO9pI|ZBV9@Sf$Rn*n;v)ss0?U?79{tVe;9oH-+ohZY+^d| zc=LvjcuPoTwoVkba9YEMd^}w&+sMQF|I(xzH(7uqU#4&JK!`2?d?p|aM1k1S{!@?D z31JDH>`%@Wyb=X%y+GQ*2)aXn$pzd$*8R{add(qhiw99_RtRV7!Folq__Ybe$y0Zv zQ7!8YW{KQFrPx)+hL$}8ujK#cMEo~1k6sT26{2s@-S`N_N}%dz11k0zh?9`Bl8{&# z6l8FkGZPT+(7lota`8g9PuwPo>ETXMIOAm4b=9c7>QlH|6diX$cn>{@aHo5@wUwElNV2ej1$l~CD$3>4JNm!NPCPDFbS6(^PRS1UKp zAs951kkAEyeI5faXC>CQHHyJ#H6IW25B=8{AadxO?p=Ouch@~)`q`qFNj^23v?`MHhDA4!fp#Wa(c=$OCEAgq+{*lzTJN4SS!xf8kVbiGx_%(9l zwznBVy*rCe$+_@^I$V$&=GIyN%=Yf@_}DxLr74_P)Bx(Wmq1>lkXeCqJjr5|SZx14 z)o=EA`T`(jB})fKb`3u&kF^H=LOCd!EA^uSkE6|cPIzYa7hH7P&Sujpx~<;DI-QLw z0?jV^^eYWIXJG64-({hmc|WB&#vlZaB}9r0fa2AeGr?$>j#RksKq1q-5%e#;3AaIT zz_vtj8c=`v1NqpGobFU`nU>aO!=1m+s+g5v{34s3t;Z{;W=dwkj@tx~7RrFbzI*Z1 zL`x?Bl+T2i!^htl*`jZZBB_zYxBB#s>p8*mrJITWL^jz}MDruhwe<)>8r zBdI0p$_rrke3DDPX5Kir@&?O@gthFS*`rR0dE=g+`~P>1s+Fu5&eJWN`qC*s5B}=X zsi6vV$Qx`XU6i*8*4Indh9%7Xg$g$JI%=xUKV3gYDQINVq^J;644;X3@r$*AA?u%S zp@I#CzqY;o4Tw(%(AqEp^K<|3;lqa$PzCii1ZvnqpuB6oP#u(ypyk6tUH0BMiyDLf ztcRMo`O}h{Yir?KJy!g06)?5489i1gbg>(+;_m|2cDwrxQNBv+S>aBOSbhX?cA9r_ z&FBu-^>n#OZNJN*u*-1N$*^qq4D3n8rO%vqVk^aC8^Ag;hH!FT3|jsm9|Jt309PZu z9@q-*SlD}TCR9pA1ua_0$Qe!!kR60&Gzbzn927_}$B?c|T_0WV^T6T3k4*UcVBwE` zDrv^z+vX5{(CK>7M2g{bRPS|qm-A}Q`MX;5e{T|Y>(R%gPQxe=<4nMScdi1UK3{18lxyb^ zRCGBk4)9mbLoWP#v|18127P36Yb5|#1W6qs3d(D=o=vh4^bTcCnccXzLLgOrOt3>E zcdpz6>qDLGW!>Nwjj^qZkQdS)6TQ#=V#4)zio0###ZbtRg>GVxe!TZso*OK_3WEOE zTUaQdpYTwKXd7w`bDg}QQO6lvtlHYz65w-bs0H{5JhUB|Vs#_q+fF@lyLxR${NC^T zkc-prj}q06lcCxjC$}>k(JA&g`rjHF&SzoDjIxHxOL3Yi*)IJ{E-wC5k_aodffI&1 ztDv%&?>LU#tvGY|PB3T&kZMzm#yFtujZo-<6|mj{N5fn|>M2kT;{>|8eIKh%J31#y ze=k;OXC?Z*e(u_z%TgQUQcuLSQxLn8S@Y}aQ=E15)S^`6fXC__02i6}Z}Q9*=w1J3 z1f0+3#Qs4+bx7(V_&iIy;yq9!A}lcq5rof{8S#7rvE?;5^Z+Rs0p8IM%I*{}ema~w zr;tNhfk{>8d|y0a#iQnxznfL^XNkbsr^PvrgEG`-tmA<)PiO&YNs)TI=vBw~5~2)# zLXr1Ew}&cj)<^1yzwX$U`#S^K#7NC$YO2ft(2&>nB`_N7i_uZkIW=>=*)&jg`5fN< z0dPey3I1>1kUMSF3lmaXZ6qH3&VZ?UzdRvM`XeB(vsblH)xjd z_e%^BvhnRT>i~eVAS5uTF!}O%#)w%Lpu6I&I6Ly|jYaEI=}ryGOE@QJCSQ{K-rud+ zlnkXBC~a-uoRZ%Y_m2!U%59+blICEG+GHE;>p z5$dVF!}_Gpe_6g53%U=m;{T0+>@fZHWS{uQ)1(N-=H_6eqT{On++Qprdhs>+dJJ-m zvtHi4r~0-~JgzU^7thznAuPyz=J3jyO}0>PBO|E~S8iAIj{DT~)K^EYVLR}YHu=}L z@LPYe>y{Rw?kRnTyl%MaslMD`LIYJBf>A#df^!0v3 zO5R}oQ@E2W-c5fjhFeelu8hs(O4SQ>ZKp1sn|%kMiIKj5W5tdM?|C)LGq#v_uQ@A- z*q9ogr=?$E_Pq+aZs7%Xh24ZT^D#`5w#XuDt*hGKceH{tv(P%vf-rI%@q?XxX zp3=zbd2aOk+Gm9yoz4b;zo^A?>5T8X;179oAJhJg9>0h}-M$nk#xbCL_Ja7Xay+9E z_&3FUM1rhf6KrZTPIw}A)z@~)3g=~>Jfo(qv+bqN^4O9e5||5B-6A~>=#n2Ye}iCM zgU!=l+VlTSEDtiV5Q+4NN`Qh6Xl$FcL}De8NUiBR?)z$-{LuT`mzP3Z{409|Bv!Z{s0SL9%_y| zMiTBcd-u9k9c#I48i3@gygReZ&`Lktyt(LFqrlxzn+nu3l2!R@@=e&!YrZEa-mq{a zyk;TSt|UfI&tTLfzjW=?*wjtJp)rzH&i?+!C@5Sn%-p_RnGv0FH#2kTvWcy&wzi^n zb;jL4ha$7WOF5&tJ{?`&LdpAGqqDmT-!JFo_pAj)d)|(2oDO&O(#a^5c5K+O__-KH zJ({%Z^8K}f_tjs&TprjK1w%JqXxM3Wwmusrk)#SO`y{q^f%hwz^5m(o0IsIBm!CiC z-n9!(z;JVIcZRZCWKP8{z5Qb!c|h_RCnqx1ImP+A@7s}W<@9MuF1vU&rw0>GgEM{_ z`;!_wopISlQKj;hWBi!|G{TJBZD|&lko!p)WUq|A&i}?Lu^Q-fxq5dd&I5SL$&qrX z!4f~(nY=z)e(p)-$h*3R-m-;)fs834&QxwPx$0fr0`dq3Y;feu~-Lfk8JT}ej;z@j>< zlfOJV^6`f5lzm_QY}JvDh!SgIZ_Kl?FgN&-`HCyom8a%dxU1O2;2sy=HGdn4ObZa?S2 zc+5&{JrRQ*BBj3*p_@`k2b5JOAtz8Ns~SeW8eQ(QkXXNnoZGqfM9gD4Qg;K+57orM z!3j?VM(}Xrd^OT8TjMbNMsiM$N@ZnbMs~Kgs%nShRRT`wC$5`rMvLCk9)~omxw=No zmHQo?qc*j=)=!O0-92WJezIePK6lzxwCb5nK^3q5n@UlLR!4}oDrGINP8ZLngG(SB3=@;{GwVb-EKy8Y_V5Mb3L@&HIYk z^{RT8lACK^8vQcTrZ9n-RX#`|xLC1a(;=rk^FP}|$v z`+(_LYjJFQIPsRk;v4y4$>RL+mg4&A;z^6n+GV}E7au)SV`(t)LmOF~tg1vd1>?=C z9nkF>h2ps=ZRE-raI10U&1u@t1{qT`x5Crdd@zQ5jN;qA@*j@YbEl)_f|rXIb9R~M z^rJ=ZtO@=q^(r0NXhWvzp8P>bd_sR3?mZXwi~{viCv)9qZc0azB@^1O@|_DM&I|sX zfk|?k#qzpGiR*?sOvFWWt_P_Jwz_5d9E3umC(E9m#ZL&8*(EBP6OvG1`+>7mVd-XI zS+?wqZEF6Y6(5JP^RJbhh!z3G+uCz+WXMxXoguhKB4o&1Y|tM5N_N4hWL1D&jBY>i zqvws{#2@T5c;-}1yH;H^*hu3dsVK$(oIKa8C=TIh!-1_+>6mt~WWjoLr50Q#3{uH4;0Dvi4{em4uPop_vFL#!8+TYt9k-y*AKd?sI^= ztYj$DfU8)}s_KqanWD&MM)%PtJ`b}wtCA`c1%e}$4EHy~G>;ryjh&>ypjb}Xvgb7? zCgs@WAQue1{X3TETWM5(r|g{zTyg2rmRYvuI?W0EBX*IG;AG$VpPx1ke2X5hW_{u0 z3N_r$*;!V6G5EmL=w8HI!`}z%$SUBH>FZvQxlM~+P}eelz^vOG$;VtJ;rPgbkX4^@ z`1jfUfmjK8{^7ZWSVmLJjZe;dB`=TGUqnm^%} zI-Tf63)&cc`W#%U9Y)9{^6<~r*E-zI z6`Yw@wAIIpYOwkgF3Nc>ig7(~*|J@&xaVGOaI%8+!kA%FjQh!Ip=5$iiIy%}&86a< z<;O~~zrVDUjGU(;aC)k&VQGD^eTPY4i1esSlHZJ}y1vS-VRKG6?W9X{FAA2(leEaY z%(M2Pu3oZb6Av_I@1{S<Y9TC2>awFe%%-Y~6eKK&)*^ti5I7l{uWTHKY zOYQ+{>S~0mkI~%2bo#LaG33|th|a+Heo$kZng98SuZ|O|(*~y5nC)DY%4J0_)w1$z z*_2+h`^k!HI*R7H{o5xa^@UKHmKItLK0%4)QO9S8bJ|9J^w+r?89&H03|h%!-CkRl zh5Cv4hE0tI?HEJVM>Vq2>3EJ+2F=qgLkB0fRf4CiVdv><$qsk&OdX)X#L{Ge5=@-VXj>oX15UD4t%%{nlb=P6fyn- zf70yi>_7AKtt(b&^Di2iQ${%r7DF!L%so|ttDXaw!emJYR&t8Ra+au?HOJawXZ$*A ztUH?qHSR@FJc4eq3GPVqR8$r{uEXQ_KALjg!=#>1msI!w2RRoSJFWiQ`6f>1LkPC{mIWJ zNo4Y@z8nb>Ji{v{2?@OCqGaC;dtOIj zKBu+Kz|UKNh_l_gFi*yD=AJ5-l*yxhZBptn;kWHG3|no=)qV zO2239Qh3FDyne?$SD77InY9vGIvDc=3S| z7RZbH$Jn&Nvb+`N?vWV48!S^KhLt6%c&UC5o{JIvLLZz^upF4%PAy7-+sS)!Gb8X9 zLhZBb+}r2S3wh@{!Xp;MN{x@3+XHBxD0hn9+&Ku}z;m#;oziJmOk!V%=Lmiy;iMsc z6xcje=CDF$xKnBBTDHK=wA8I{m?aC$i;LwWJ3j2Jf=Bz$yo4wy{oSFll$BC4RQ9juXdQ3t`{qO6;Uu~==n$k2{wLTdI$c2q37M}uXr!3Dtz$;}_Aorx7FOBwu<44RN7b)b-@mL3`85Q54 zzFJ+qng{>=?)W>imMpI=8;D1CHYY!WD$KiN9lkH{cgn5Y-szSG;_+) z5d$VY*iG))KBnl-B5iR#wW}feLdV7@K3*F`B~8kOe04q31f9xx9a*(gaDjW;h<|xU z+z}o}T_9yA+z!)>`C}~5D4M!;2Xhpi?Qu11>rQIXoh+*AedZfPTwF0jbGYl||X zj2S5V2KSKXpg)!K$XQrrUKVK&rD<=UYh`WS)76zf)Qa_(J*r$`DQlOVy_oH2bEROT z`*Oc;2M1g6N{(r=E|yD;q`BvLzyf)2OnsZ~)&*NI|6=sUrQQQ%RB*5bn*Jf!1S zEFa2<9C*+5S1WK|4ma@S-gIeGm49Y0$K;4&R3edixC>joKWUGz)(W?5mLnB$;^2^}M;sNZ^IIU@TB4IpQ8ws@6Js!A`I)COT zZc^d=puiLLsJjT$NWM@QB$CF}rcg(K`N^aqpRe6KO(pU-PT;&GO^c#;LKe%-b?N2^ zdP1jZIhrMBpAk7d5pN}GQBz7!Oq`}Q#fc&8flY=o8&UWa-pUzeci==^KX55>&m=0D zcs4h;`Ys38o8zMw?xO45znrF$!+1^H{HHQMH>mMCUaYqxMK_>j~}(7d3eYI5)UX^G_1de6Xnpg8N` z0+dmThL=JGyk)4pj5&rc9FH{lbsv@RiC>}HyEE5Mmb$ksuk0p&Te~^e)T5tTZff7Q zH3R0bJsU2A(xCviTGNsrukDzKojxNTxGcPx@#3+?i!{vEo$TGZviZ~~G6UY1X5Urx z(t17!V!~P2e{fAV+93z?pzduVgOFv^YRr6Ibw9;{M+T!=9lnN>4wjs|%^Ti@t>AZT*~@&o!yzEmV_sL&Te*=WOJ}-Q-S%r4*P7go6kx9Zg~sY zM8+@~Jd*T_N7a}r6NBQO=A4GU%-k@q`7Xg@FF9%-MQV3Lj+_VugVf}pjqk{MuDK3= z8Qo)Dnla_Lmby2XT4u<7#@bVcddR*n>QB+Y=4)FM+p;?u{fP$xU5{iSnhi6#Kd5sU z3@+6gxquFbj{yNH%LfejtfM@o?f~JI{NYvk>A{K7%fSYZ&M$m!&uSnk3NGAYA>Iz> z7xk$seOCSRX6Zrr-wj2N#EU5FR?*C&kK>aQA3_+A(N%8sjxyp}Ez52XR{Z9B zMVU-qRC2z}sH;u@e;p&0&;O)}+i?a;JW;6do5+~$M`gkS=7lJeAz2=TZ&VPqQ^gCN+F9|cnuflU$|5-&J9qu~wz6hHSKn^P4^RR6{NQmM^V{k_x`k5#Guj zZnw9rL)o`~&@il{7;8ggDHg^%XgDm~oXa4_6if@Du-wR|fQh<`6$ul37qU*6>ze5n z=g9bK>4BsD&Zswr7y3&3sJY~HNTS)!%zLVftaWJA+0o!(nsb?`BO%yb^U`6M9i?|) zi||EEYUpibRmG6lu~>CYH+{qBYV^lLHly_Vs;9`d0xwhN=gSJ;j+G6z zd5D)=iZMDr1HIr0{=y7PTfue9_M57tkf2yu~U@*Dcd9>Zh{oQwG#u5wxY*xk9d zJ#OAtf2~(e*-e3FNy(P`XMpysva`Z27V*>pNv}6z{Aw5v-kwIGBW@T&GEiZc8UEsV zoqgJ+dgDi~O4Lujb4(uuQ?*R*CwNN0FXy!&RwtCF^_K%b^=I3ZKpQ#D;-01oKG&}Z zuGGm$*{8tc=5b<{bxwgbM0GBHcRc!iBIkanM({rte&ZxeS?Hs`t*J4@qCxRd?X8u zpmf5r6EJy*j$z^KCRv^gaBBA(xC&IgrVy(ka_oPj{0|AXd0V zkQ(+(!=dtp77K3*yc0@ZMq119g?YL-5|ZoHB8x$f9a*+|B1u{Y6xTSo+c1~D8nZ#@ z@7B-8R%n;mu-V>z@*1dv=ftQQ1!vPpqff_e`i_S&F`{BjrH-k;Z!XLSTmC8HkmpUq zXzr)h;uM+l|6rV^OtVKOj{d~O=`|bih>m{OeV|O$IFJe>W-8$AWOpo{zRC1ATJPLg z*|o+qFXHDa9T0dDfiIL zw6Q&Q-b;f6TIG)LWLHZRE`1umNW3RYrZ_^K8P1vUB|{o{LQ2G+-s5lGR@4^71T8`? z#OJCJdr`T==(cuXZpUl+w7aD{n_YKoY4=#?qH^VTnbWh8{aOk8wb!=L?3NV+blX9N zVj**$g||dYoT4D0SNCjHz%sc@B>bVmHt#Bpn4HGXvhG_YZn6I+y4SK0>=WQ<2pCbr zaPnP#Jd8$dA;1ltX3^Ts-$T-T?=FipS4+qK4)FHAMGY_pm5t}p6Myf+r&Q@B46E+0 z@Lj2w$lA}-nVvGBr+gIl@nv>to!J|T;8csMSen$$<*>$(L461Bs|k|DJbe~@=Y$VB zG^VvRc8j{(z2k(r69!mGF69x`O1*lk8-HRbP)I6-3MC2Ru+ds72r66^80?+ni&o^Y zE&RM$j9Hq^GOa5!4(xbLV;!M#;mSDXL> zs3w*~uXLMyJaf%w02XvxkerE+(&Z}jQnRYEmLtJ`WAlrDk*#3 z^}<3WlEk?^12)JKn7?b-nOb!qnI#W760Z`yxL(!dB49=3RigtBvv!U@Wl0fsd-m!64&mP3kU9LU({a}=bC|QsgA1Z>0cI(b zboGU;3<}-W%Kf&bSi#&dRqZ&2qf|2{u6lNss;t4Oh$bT z8oGD4V11%drN1!V3>ueGh3gOe4EX?r>zu`Ot;o5nuW?i1E8YJQXz0?548zcfb(% z(j8cr-11KS@8D0!q7Bys``;zx*=CX_C<>a$$*Lr3`DO;M3II$v#UASTYNDF8-|fh& zlw2|l_R|b$q%NkH&gG$&2tNl2UFZQ#s#LzM>B;LOE(OJ-TxF6`HNY{=QqKK0PBbiRuUKrro%#pU5*j z4nz#2)EYFHbSY15p(`?XIY_lN{r>z&_r9Q;P-dP+#=zV`#ki&Aj;-ZX=u~E5{!~y# z{7E8aO^TQiIb)R^t+Jnu-FbM95#kzr;Z?%c_66&cBHIRinzzrJ*bhbQ#FxAf7LDf7 z|M|%~I6@rY$M+5G5v|S2M=|gSdR@pPpz}|5%v%-_n|Z6`mO``Aq2Blpdj^(PKiXf- z`^d(|y)_cnINU#1?R#u8SP7Bne6A`CSX{xi$2;8VCABw8{W?$LSu{W7QYciaKdTAH zAXj9OftrA;2GOQIb4*uI2Ev$SZ!4zxm|N6ON7q;TdgxIckpjcyeQ@yNs=4%e94IzPWRJ}QE|jM=^rA&`>vuTUsFeVCrAzebU2f#mvGLda6N=RUog z+LDpV*Do(x$8C&FgApH%Doe`8C)31vl`A;JQc8Xhz$eZ)J(X7UollILq?$XJ zHr%VQ$hPnk$4T^iPa84*D9&f#NN8-@RP^Wtf3n}6Nl4=CxLW8XXLW>j5n1f#Bw5I} zCh;@XQq3%#^RIFq+FwU7CeiD^OH z$qPr`w1lK@(?v6#RiNL?i@Qc{0mmk!WmYw+mjlY@z%It_dZ zSE--W8iEql1R+ToN{6TT4u|EJ>rMb8H1n{389Oj~F|9HDJ#cx>XKR9}a#djNdvye< zw=NR>? z>VK4Ba{Xu|HlE(iF>ycUA|%yejw3?kasp|t0?2DcQ6dXR&)Cs1TOrFih424j>#d`r z?82_`0Vx5c5kVvbr9(lwLqfWTK|rM&1f)Z0K^o}>=^S7{T1C3M6&M<&o8KAqdB6Af zt#7USuV+0n_kH3z``UY->*9S)W)UMo9-BM7`94<1)4?gIN;m*u`L#q3V`WMa%l3x8 zB%!zC`bXEBoAP?b4p>mimjt*WhPY#IU=eMsr5cV%^g_25Ds`bos6@zAtWgYfDi zQ$zjpJj*F;dug0V(BuKQmb#>nMBI;heX@6`ol)!!&XaRoaHMDz1KM+dmD1U}G}_dn zgGNr@M`Qg2VWV^F5I|YE^QM|-Iem>|_*upuHLpai6runnWpSLr`|0eLII*yIgl?dhBx*oD*$FQ7G8}$=%<_WuAYDtGa zSH*yCM$9CV`QfuKq-ihCp$u#wr+PK(JX9(s@5PQ<0~_F&h;Bv&1o8EL5adw08dwTb zD~^iSyG5IhZ_f4>;bS^VID0`ztij@DN>n+|m}z$T3^<(D8C)Z(P>_G25_OXMZbl(v zSjwWiY9|r4uO8*DE$;W-H7GYFev&;jv-E9z7NI^{vX<=Q{#CY*YHWgT;N`R>IGiFK zP?JV`R_A2Bkq0mcb!}Hg$n7EqCr^%#)yrr=99$bID;Bif|8cUx%cm<&0l=-Zh0V+> zvw23V|JDGyz|QGXe;#Tbo1o|_$Rv9+0KL${84jg4dT}$GpZ4~amK5N8lb=>A#Y>Oe z3jQ2^-P!O|uskaW@1j-*dFCi@fz6X!sg+UsuMLb8lNeMa{_YFL>i`m2?8rV~{mOkL zN$9zYViYD4xyvUv?PEB#>%ja-?9vNwPyOf#QjA8>C_4jYIboBX!E=J55CIhxB^6yZ zR=5<(661qnKZxmr_1hmldUOD)O;~_VVaV?b3mFV+pbph2Xuwzh1rGx#2P|w=Y6z*M z)oK=mF0vulvVf%;kS{9_IlR39QF$l@67MxHAFEr;>O|qXtNfGf%V#Cih0TM7$EfL` z@UP?DL^T2gGJ3;IHwa<}U7axs;NvMP#W^OdTD2asjoQGs9h904Veih%#cVq>i2bfQDFW=0VmV&n`q7!gpzg>nG)6pft|;Pd)Q z$&0@kLu%mJyIfOJutt1SpCqi}X+b#*7i2vfDFm0`y?_!nLwVRr;Qf0>TT>nv>s@yp zB?x3VDt?;Y0h%>>NtER*2-RlNaE^<)ZY@On_x<3JgX-|fVV9D1DBh2siPSMKF4D=z zM&~{qv(@K5|2RS6*-j~hk(3LwyPm5b>KG1Iy2{G9vm+q#zvM_*GBA4uL_@n;7R2ul zdrp8&OWpxuj@hUKP=KiB(vL+9`sH4A0K{DikcqST!RW*0hyXo{{oq?W?pE6i24?dp zMwadRn55N0$f$pNTHqN*x>+U8!2?7=+mF?k?o=VtAYIWwiV>*DZ+)C(nt#YUM_1yJ zAi}Aa=}m=@afyJ*$1KTbu7iL=i}$*hjt1DZ+(Gf1gSawJ8Jg39pla_6cLc1|=@-q_ z9~uq!OVGgnvx?Wc2CB2txpy;oz%}+l)PF%)7gA5?!7}e!ahw*gbmmh8xpZ#H*l)UF zFpGIXuMDZ&^xZdhQmy#8#Z1Dfftq*f!>IHv5hc`EHPdf{)|IH{rlXUSiSfuFNxF+c znv1BWz0@7pn=Md11Jx|{a*^gzqWP?$xya7*7uBx2fC?rcz9V(mw6-EyN@M*+T;gZ; zrrIGs)*z{w`E$m#|OtBw8vU!Jxz2>j*Wi%-%&0PpM&c^fc-tTvr(4}<=M z{f*kXx}U-I{?1>2fLB!tbW@0A@IngBs{vO3zSq85pY06@ZE~FxTjVaELe(z-&)z_F zhTcq`1gZD;gVV}r=i4}yt;+dj0Aj?ye$v6hsF`O!&ui9?91n?FVz4o5rMMhWjcC>l znR*JGFQ0wDtpb%3H^bAR1o8m;^z)@hKsw0QG4#>`KKW>%80~-K^!_t*@F?xAq#-DH z_e*p~fBrOH_`Zrds;m~Xj|iBy-d)9CJ^t)L8Q~ z$J7%kqi-&qwW60E$o!oAOL5?*8H=Thvn`J*$NWg`ky~n30_`hcuK;gZG>}vl4DQ(t zH(zcvuN&;RCs0yRQG3{eF=ztK-qX*{`F!^H4!~`Qqpd^~SMh(pivcYdM4yQ)%C8q$8>va^bArbQE>|pSt z_sAfja&*(5a65BTQ`u-x{4WRf+7TW*2~GQqAem5%&dbj~K)o^d&e;r7G~b*jY2+?5L)|xM zawaQA#wxh1;#_P#%8PKywO)=CZi5lij^d^Hn%n&mGy`^`0Uq@W7FO0U4?ECY%^T_J zjhsP>oph=U)dO9+9Cvw1J~z2|+VX-OkQ`doCPS->6J}lVLx8;7!|U8KiV0F})|!Qj zafIKCYOCrK0TQ$kCVjAC8>r<2no)%~rO$)4qu7KjZP*qBF4bQhptD&;bus8qTZ|^7 zrQUm>&8Xv$8>=6i=oUoqu<3=$2|<~4?AvUo=OR09 z{n0xJ&{Hrr!S#~!$BrjZy!qO_p&K)BK_@0LaP^$(LAWwKV0gJ$CkT`afWy76HAm8E5M193)B{}#uNVAFkWN(|^_>8hc zSplV%kd4c8T>9dGwL#-w$MF35^OUo?oTZ_w#~Vjy{a(TX0&A;D@!jK1hrC`}R)!5Z z9%pA~!(YIGQyJWCY&1a|!4O{i?Ph1ccRukYPG ze!bBF5F{}Q6)}OxYxGg;qteIMwwHfgiju+}z3D2POsV8z{Y&P`Y~&1utE)M$H1vRp z1#)&BLr;Hy`q{)U#J=5Pz)@eX!1?&P$Is+8iWrc+kUG~X%x*=E8QMLVF!O`;J83iP z)G%J2(HpO|)RrWbdL{?BY|NSTE6Vb`Z2cvjueFE?Ehe$9L?tiwgkn()nOQ&2?>NmSoP}gJo6u8d6wV_B7}H7m~~WfFr?`HyLShHn>A~z@Xs4p*YvaF zP}Wkp?kR2mx8Y1fv;3%8%mQAd;?eIT8Cso~9$P)U`A9v>1`Fg|m|-$?OvIJ0;3bJg zhgr_4zJ~rY2Db3jay3onxN5m?@G&fhW+Cm2XW_utX{(hEgsxUz}y0o_Cgg zbdJGo+{|w))$r*9kR4%h(8m z*H4o40Z@16p**V0+X1+fv+<7R+^EOnXlK3*)N%40^cb&vOP9?$C;)S1Mt)BFd;*|`sdX;GJIh{iFoD>2 ziw2mOFaLSFkLsQS`fcZdmQ4)u0RaK000(6Pte<>Yh4`f*h+w=y!}%D5`2Vs^jq#D6Zb~WB|sI0Q%TwgDRIB zpwy5-Aem`eKQc@J0Kj+;3-Ec=xajH!aP0tXukcvI=(!V+PP6)OUb@)>C!hAvn?%ZJ zU;vo94`;93(^yLeX+bfwUIj0&2IzBh0IF^k*4FAoYXTjT%C=4dxHr4MRQ5m%nQxfX zfWi=t`rYTICX7b!37}7tG3t0qAl%0ubP14sdXHztCOc2q{+BokCY|= zmMN=n1ki^+aIKYkm4SE)`%+Ty*SYtL1}uO|`L|<9_dldpm*%WJ=A&~KGedqixH8O1 znVC3}$sXFf(o0$`?{ECenltw&oC@xG0!He!)NU_51fu6h%OOPcmG0H?Gc2GYl7}m3 zyc>F(Ou7m0PiO}oBF^Twe>S#-uW52+=7E$`VUAjxkL(svxZUa?k2UIDbY0qvCF=zT zDx|#UuSLiknq-~;l$_shOveWie1{uR0!5$0q;rbI5>AB&gL&qRvol8OOUTC+ZN1O2 z0M7pt1O7GSF>9?V%REb*O_bz?OFV2<^AveYMbQiBrDpBaef>gCP(io~rSM-)@I}QQ zpd5V3KBD*;NO${kv?uS=6)6-`!NJ~>XC|tW`DX7bQZPN%J*`TBbIC3iJ^5#|SS2lU zlBbsb>lcDvGqP%Nz+Xu@{T&w!B07pZfy5h@>Hw}l%R1(v2hcS}BKP)=Epz^lF4sZw zG~u;@CW*7~mXDs`{zvr-+X9D=nz~Wvf_YdrZ*f7Or9uQ;pLfN$*Hcwmu#XAY4Mj%; zqfcY_t~uk;*UBIfU$=vEk3Do2W54!W0%^7C*H8$J;v;W*EkmnCgJrEw9e99Q zPL$Nps`17GrFn%VLfVfOuww9Q1);xoMiIQSl>}hJr@6CO5z#3)e>iM+|fIm_%^ zIo($2lm!lGDw$D~M=^k^aueOCfmXJnOMyu+pIpb2D!Y{gBwGh5|t~USQ7}{NrNqDs|vq$KJvJ zn3cibQetL`!!3@kQ2>TB5T7&o7!2$WZPehYBzIJJ zURv$(F*FAz4i6Q04K1J*;p11!xqZ8y12#MqISMJZl_7h|;;KMGUE}P`;S%6I1hXx0 zPY5rNm@b^U_y7PP?_64)UOSLWihP*kY->Em4b#sj?f$pC6m3TiM(J_r^>VX%_a9TP zd(D(jj;TK)(~<`k9q3Mi@&$_nZwjy~F|O^aQ3YMf7d9vX`POZmu{okZf(oeWIg_%s z#@D#n;+h@xg@0R){xbS>B|kUB#iCdVS4Buj1!x2w8b3Yqus}q()BKc=8GbP$yR2+6 z?o(;T$SVA*m;RryxTpQ-3h;lCPf`3CM7O~aFBbsnNpj{9pFD+a&6SlMcZION7>|58 zemLQ_b`!dh+akO11?(CWOZ!h8b3XM1kj3})k~<)w0X?!|DmeF0=~k{; zX-PAq&3XCAMGEiRPn7&V?9H0cTGmUCY&Ae$0c{+x`-qbVctdZ4!u{3%DM^kfFvm=X zGOaZ+_^5&v@q^)it4M!}#-rnq2~bf6UY{105#Zzn;(g$e{5FPI#K-&bDDMrhodb^B zons*ST+mcmG5-Zz0fF*0S?hy3#Nywt*F5CJyWrHaC^mVsM%8wuy2`0;Mt%7<)o{CF z`m9UMv?Y-8e$}VP0q4>8Y4%Uuohr7}s3pNoHD~FOSN6ST2OXeSl(o*k)u?Cue@SW( z7*=gZ;WvdOwqPnDW}qyQt2_eoeUqrr!-K2!pW_`W3U+C+w|!LVmy6UT^ei`UP_hFw zAf>sJ5&(1GYTEyCoSw%4H$?G6OtU`wq8Vd-?GBYG^0DWu-rAuLajrtgt_Au3r8HpH zeC|RZ!RX0fuLkj#0todrSt^Zoz@Qw;4a%La?2kcT1yqn!l-Z#?66PaKHJ$f`#5e}% zPxvN|Ao_1QKrH_21pwIM!}W5n)BIoiN7SX`IJUUC@4IetD)6WHr; zX_s2vOg2{|duRY{x{}g7YS*(<1n-}d2E-t`TGhgdhd^oa_X4MpdCQ~#j02dDFAq+b z3yx003_rfN@vz##8w&R^j`J+g{S>22Q?*zUuK;B*RN6%Y61|@P_2}70cQcZWPkq8m zD~R5R1Y)h2>kcPz|F5Dr^yHM(Cp<>&8s_>IVSI9KGAK7i3#9}~F@fYLru9=k)Pz~2 z%7ILGxP2|TY@M>eM04GHDvAAz#;>ilA}F4UV!NGU{zpX+RLT`t1fQ(d<3fBH{P}Yv zm`EF(bVt_O!$8#1#{0W@sB2el0|_?$$OVDY^=M+CK1zZItU{c&`@sg?odAx@pI=`1 zJRplz4ENZaX#j@62?`kpqvqWi5n*ZhJQ#pD8R9bBr(~?Sb5!>;}D)m zw6;pX;FGP{*nNU{V9Y#XCsoN_Eu)2ehmh9t1Y7U%&3AR?JcXbhML}bu0l3lyxXOY3 z{c3 z@_Q9mpIAC;qO}cT=6F-!Tvqxnj~cf2U^|I6#b*8jD&D4JAV5*VNWVI}x^7^L9sAw) z*yL_JT`x*XN~+JnKJgSaaGiCoN2Yna0dlNq##&{4$&sl*?-R3 z4Qht2g&Ce_-S<8=mZ3kqQ`^1e=vMO+#nYm=Tb-s|GL~g~Wdnm$cMlIhMWFn4%P#;1 zYgs1-*ztxoI${es4L}5;yHN-v9W_@VM>H{xYXe zqD{yG3im?tdsI@(fN+*$79lrLQ;c<%qjdDG+0Inc{gj~JF8zR1FTmiNOTo{so~MTP z$cd*@ZB?x>W@wRW1H%2ndmnPb+N-N1prDm+Y2zVOOIw?T5a)AswPuu@^s85|0N*Kjr-I5N zGW`N)^I)x^C}^6?-$4fxuReBeDcjdzR7#Cpx=O?`00JTuV3)eF@2~-urSH=vc$N>P z$#Y8cK@v0+oe2L*oLFmmr}f3zjD~&FniO~+{c2B;&c9|itexaYRZXD~;^O%&N49sN)5lW)CmQQX^SqnO{h{q+_DE-S-M{qcB*vfQ() z(VB8?+k{XmV!i-5t+%ouiKUx7+O&Q))^@%4hWeIW8nUAUEI>)&f!d}6b`)*TEV2*E z4G$tkj|4y(%3k=PyR#ECcsr{GdvQc3LJMg(2Z_{BEO}q(Jk=bADv} zv=l!Gp^>qZ4ghWsT9`HEwtLF0p9DC=MD*QUv@c4ABE&vi&HcK1NPW?I(!Uo9&aM6w z&RT!K;U_UA!TB0pM0ADEW@a0w5IhY^ZHIYTRKalpDCU_V`0Y z#JV5${Q*!)#i5i%Ioh`Q!bRlISCWVxzfqG;T8;?evJKBsScN_&qwVq%G0H3ltCZ6P zj$~C^7d8FlAkY#_b@8D4wK<=`sn*t0I-vWREb<$R;|GJHvY=N!rz&~0L%+ppCV zms<-Z5Feup?pEfgou+PF%S+w|m81o|z4iI;jj`9xWF@=+J#s0KjtJBh*}|Wds+AHj zwlwr{glcKVM9KNf1V_A+RzQ^+$q#3b%@|is_q}z3DyOBY@rjujJa_tOeFXaymv)?b z9OsT{GPG@1mQtF(eQ&zSz4VWi(Q@%E6i`n{6$TZlPl0?F8UGL$>`SrpMFQtu-f{D{ z$LA-c^B3E$2cu=)qkm4yAHSEZ=)b8~c(%Qa(=Sbyrl)GYdQR|h8p{! zrp8kSynCFRKazA(nh>D#T_95Ba!IAy*1-RUrUokg7Q6f&eg?t7%F&d`F3 z;x%#3OIu;dqMFt~ZfYI3Vci5%_J>Aq*w(i`^Hin z?T9zb#|JSQbqo&=mjU&Ch6Fn&CO(17c7OqMw)I#C8Uq|u5U=hFTdvRq;=I0w#%@F& z;mNm}#<)B}fWS6D=J)6JbiJTh+{}|cTcyT(sKnVebLO|cHv3UiGkmL{f~_ZYa!ios z%-y@78o3kix?%pJB9&c7laWko>If6U0l2ZvC3#nHxy4Uh927V&Yr4AFN%zH3U{aiL_%rL)=HB_gn7ec67Zt|>)=i@yKjyDa|NlB1#@ zsP-bp#@?eSfcUdRBSI|pKBkxj+@-m5Gr#%4`b1qyqFHVGwA*ETqzuX&%KcwR9H8I_XcDo;jx?Vj+{6lg-m z%qABme=!gR&xnmEhD0(xCjV;Sb8!$RDh4{F<>g^Tlc$BV2uol8{cnz8Y~_G`z&tBf zu(h;z8y|V|Q4_{_i>6xD*7WtC18IqwwiF)s36}MTLg3oOmeFF1tcT$!uewE&>ozd6 zaLkWH=G2x5?pQz5wu8qa^B-)00uIT~_*@c>u67#C4Q;v`mh>Jcb{1pE(H1kaE8R3y zmsA{9H@`uu;DafN=V`IV?5U^#RZzM4C?C(})MNt?eTp`v48K&-9Td(W@-`#P_5vJ zOn@=Pr_@v%2dwt}hg7%$II0Ktf+V@{+qv+otO%uP33Ii&Af0Bu`&Bxk1hzu< z7I(4W{o2TG=9`62tz>`BoYrVdRr%96?zOZ~Z_Qpo-^AUQvc0W~j;W$Ktm~ESo9)nX z6ZQA@RzC&DFx>QRo=>5vshe1K9i%X&;^q;TUssLhWquW>ilZa$E5zW)gaQ8VcCH3& zGYEy-ZLKcgXH+OHA3FWwLW|?;<3Bc+Zsm2c9CMiPEMn5IlmSiWb8kqo3@u4MW@K*g zxnPz^Yxmo4B)Wqae%?QzMg-iTJ#up|D<(P{Ox=SWl{?anDn z+flbb_3Z$AOpGL}dx^si!Fe7P8`gx6vt_q)iI(vxFOJ_({xx+5x%Lju!u_Ap z+JVNO?&oFGD@PZL;Vf4w&F~N3VY0ZU}sav6ptT;pPUHnf8PMZK`^LB)WKC^&V-btZ&T|eeUtea-_;0weWNvPvn6da zlmwT~|0_(qTJ*muZ~U-SZd!*Xju4mRs1+x3Djb@mF`xUWhD^1VvGRgyffL^90zIMen(|l@Vv?5A)kd#Y>RVm)6(a}p0@VWck z;CCZ_-41!XMlF%^lQQ}V3wSE=DDfK)5b*a|hs{k2;Lhn>j3g7wXm5(siK~x3DC?Kmw9_pz~# zbh$SyJH<~cLq|S@E`11m4U;jIcrtHfEnOE7toU7vG+Gc>o_a68q(-~nS6ALD?o_#N zGEfpjx=u<{0=fU+<`nT|x^d|Mg=jfx<-)w9q;>fm-uhK+m``Ssvy3_^{l=fJ{k(F= zukA6Hefh=9;!ino{LknJwk3+T#-5DKow$HW^71{8`skT6?O{amLmBOz2Q|e^!;3z~ zUo7fRG(~jcocu8`zHhynjCm4{3?n5L#0?={v6_qBG!yu57B?wg^94|2KEq2_><=ci^689wb$9jnF%RaJ| z>s`qz{Zvrc$*;)zQ}~c-ADMjLGKpXgxiLn;L;6yp-lco;0?|(G*wkJRvXTNM`Mv08 zBv?t?mhaFBoc{7?1CtK+*3bQ6Ttk^5IeA?&rvMY!pUoH-qB(+@eILJ(s+L{(q&v0l zW5hvJshs&_e!1xb=q#-S&-{?*PeYnqvaJ|IobdMHOVx!ZUmjG`fHm-)Jn3pdS@0$O2r0GNN33_!k8OT-^Z$ zahG^<$d5GMkm9uM%`jt%yr8wWGWV*^I+rOEW?WBQx9X>F@HmwYO(p47rwf=pV`8Z- zUP-xZLU)ZUTuo`ZG`GThN{+jT8*J}>hWu|#XcaUIv{D=M$eAfJr@E$!m8vyHFvTXy z-O0JCS5T)#Z4gIl&OlgZJ44r02oy4uV2-9qXBLVea_>Q{j)-&6cE-hnpogP<=g8Fq z57c&(I=e?Pr87U4lvIKx2}?}D>)1pNt|j?t7^%FQeU7GaYu{rGY zg999!sI#aqzME6kS%))=9CAdMQOwii`B_GPGaDgrzvV8CQG`0D@SOt~2b%QC7 z#ils!#Iat94EiYXEjQOCJuM#rTY47UajI~&Dw#8%Mf@l8>CC|D-dBy56Q4Ynv5-4A z`cJN=t|$tbZbFMx21z9PRb{%uRTa4(RX)Za#{R8O*i#eJYf5!r>~Gt^nZ?F*?K7|(utmBD9?pCieUw}axBRvps7E0fX_yu8=(Awo6Kky=gk;K( zF0P(Z5cjLLjy;n{ zN#s54SBj1h0C8y3Er@x)RY-EJ4*Y=zUs12zey-`TVa^sYHu{EQJ3+!M1#g)kq1T3F zW~*2j70nEqyrlFE<)Wl*WaWj((}JwX>)mskPQb5)fgQqxESYpfU>0(0$N(@vgIW0` zoU;}$bRe`v<4VpSAA+tCXCFe6deeI#RNOR>9K!!ao3h9iBXV}D(Fbh8r{J_b0@)|Q z9nKdR;-hMYCtW&%Zb$gTPjAmIealS#!o(`5UX_$MmXx9vrC(ne?X#n5mAIeHX&UuO zn{{uccuYGeznLMH4A+>N#6*|9ByLIjzY{_qMB0HDP)Kh=5tbNfJe%97&0%w3e5Jyu zLwCN#_moQX<3|NkC3lNdM#Um}cuKsgLwdr^s?99h=lF zE#jWe^@1=qtR%?t^S;{>QHrn|aiH<8!aEp=)X5<_A)NaE=(yXa5O2S24T>BH5|K8NYKEV9e{hUd&04>&I3B9dt zPXXWe`uoe(`0u8~6fMr2;#GK?dj^;es*_2FtE2Cj$ER4?&=-x&UU1{L^JM-iDUhwb z!r^`%WWj{QWkB|b2iJwpJPygW@3~Aj(Hl$-{W4P-G2?hM!DmRfF95)~n2Se9d}>v7 z!Px%^0Hzp3zh%uAnKI%)UF4}Qs5M>7RFfFmZxzU=^5!}1m2L~hg+I+`ff4FLMXuG2 zt$2YFZ5n#HzPJ($cXh~|wk2+R8&Tw$t=0vTVECE9(z7X9Rze+)b0D74G|>Y-*|^mA ziK1@M(_@cy3+!YxGBgYs1)DmSLV5YzzlOA!(=@%BU?HWaZ6o{nZ;RCgFVX&4E(~2Ek{$t{W*U8gPPXFLD=@2X#O6n8!xB8*5^F@ z?kOMvxjidel!C3@r&_eW%Z%%79#>QES$Vn9Moj4Qo*W{4)!1@;YirWu!T#gO#^-n$ z89{}ydl8V^hRDMD^wt;#Lm>~PEt zclI07YY6vfx!iTUEhjpA?l@oPHPF5u({gggYE%5kcY#!-)AG^sy-3eMa`BR)Iie&R zWQaXIYdhC8ZWw>wui(dA-aR4et>OZ98L`7^eN+RQXOn(dZ!jx zLiPtAxSth1?p!3|_Jjv77A5~cC>+4Nb6@mfK3a;8Hn(B5wv~ToTkw98M#r@8rf)MP z4p9+9jdEAy?8V+inK~7&v8Yn%&4ABJw#)xkDwMv<*X{$kcpPkW((DA&l4^?=|3=-4 zPC>Zy0UJDEj99?b=klkDZ*CVl#4LmO)ILSK;T;WxIPDv0B)`hh^8I2WC#kJF@BWRt zfkY%m-8nkU8KNP*62DFDP1Cai8uE|LMx$*BgftR zLPX0aFWwYm3ORU^ycuMYk$MvDXse5Y&pGg}i@WZsB)DiJ?mz`%8ShcGg1R@-V|n^c~+!?Y(8?Q6GaYh|?9o@!l(CTdeCf zRP7n$i*2~&j^u=l^*;SL@T&T@>jRB!P)yr@?QWRV{d=AaW4_#s|Wwup1S>{j6CP{G>O$(oL_4IWU8698-lgi_8u zDsdMzDHpZ&&5vvXwa5StVPwL&j<-icq+_c%Vt|&EUYxz;9&YP3z*J1}hAtMd>@5>( z!(qmVv%O`8{J7Xq!%SS!!4*bx0YiBU8%elUb@D1@NdFAFywso?&G`bZ3u?vh3!`!p z4OP73qN__*NK1wpp~fQfS4nR0JP*i!F7OBkJwU;Y;W+TKqvANrR)*j8 zB3#^e`j^355n{AFk+WK*B$f>@0Vja`8;>B;bEA%~yO5{-Tl%^1v@2YAjcmlAGxqJN zu;wjs&Kr|@PzbHZ7(->vTYv)hQF&ZxB~&a)7^FH z6wqO4Xr&NU8w;(lk?+t#oO(xz+KaQs`0uTR=wGs$ciz#Rw-c8(14}s5^1cG$dsBcM z3sUf8wywJ64aa^@Jkt36Q4U9E3Mw@yYHNl0AKfA^9RhvimAwzwt}I;M4g1{FyUO0C zgVr&R#g>Y$t*j9&$zCEo0~Y^Rjp{xh%t%UNK>jVrH#+FVle9N;U&E7ai ztm>gSxDF+k^*g#R(eo)Hxdh8Ekeebz^#O6ewZ;Zz7!Kl&?|nQWqz5Z@K!V>k+mp{YF}{`CY+C_xLHX z1eGXQ*gYF>TLA)w{&AY&Q0?FE%qWf%n=LmEsnolM3LkdXw=q0xd@y1VLxZqv9Y>UhYpasav3E5&hJ)B3-;w(u})+H34BK8I-+ME z-qEd32B)CXOk%+lZ?x@5FRS&b_u3>kez2MU;E8dn05F55TL3qJOSQ|=oD!FaL1Mgi z{=qdiWxFRzTm3QKSXBWu1Sl<+E-9InCiMFa>Vv#cv_W?nvOFlhc>YCu^bPcG3$2>u8u2H1GhTcc(FUbK-R8C;E60X^g-yi-7pc;PmVeVK(tNnaxC zG7Ec2a)vY4d-y3GMOIV_tEn?-w0n0~Yy8a;IC#BmVo9~TH@I(l82;Q2vy>6~FXxKK zL0`B%OeriaSycX#v67sGVWVEYsH*~QQDkMo`15l9nV(~P=^cUF_|%zhc3WQuEFuhz z6IXtPJl5*e`j*1_6}(;*o-t9!n-pJG-;d4fzdp(L(x!zzNDF->C=i}IL;QjD?)I3k ztRu(f?PPTh@=)XX7SXqg=dDB2#4^`vgZ z7~v!sTHhVXu)-Qjs6Fm0LVLZ!3myi}kcp$ASx!;DcLq$-aLa!@Ox{N#Y0%V#)$v2& zx81O@4+! zV`JT}cD;gVT`aFypp7V7V~Kqj`XT^0KvX0uU2u47@4RFQqee^#=Y7UCRe$nHSvlF? zmb;3N1)Aa7Id^(q`x8OZZ{R8-LAtPiGh;xzFlo4JtQfK0QIgYABzu?H zhKxDc2q%3t$Po9?fa^We&ErV|0$Sc|b;XSjfg>NFchv0}-@h!m^6>b%A@CMk`hC`8 zf0Di?e-fC$mMTsashxgD2lFO+FwW2I7|uu+rZ*eyc1f@ypG}K?sfPP5LmcO3=1oL%`)x}}y60o>B{kpCot~b3MV%%Wf$ezj4~Njf zaRPXV07mzqvShG+Y4YL7ys`0lOZ}os+&ZkOd0A+mhOf*zNEPk^v`LL3OD5@l*tvD< z*MmIRLg9gcj%HY1O0u%jgS45tls&;O6ubD7FOVL?^X;|i7f&IytGG$*C1S1z{Sw5C z{4>7o>}YYx+&njOEfuU}1}xUc%*5J5)(W$J zb1e347S`MT1}kB+O-o8=u`si!=amdRcyhlOXg8@TwoJ&EnY!Kct#4Uuz0)}I9NZUq zeirb*@LCx6}+G=~omLSj`Q~JYwmzVp$ z-31ar(id8Uqcjy(mv^&-7X+43@nHMsvivM`6FZK#c{2&a06B{8&%Ao?ewt7RYSJ1g zB{04aLHQN-mT|kuxN9M#!?SaX?zYDu11$H%)fG^3`dNta@=)F8K;H5dI~&@cXBJxh zVfV1J_|zZUG;rgK%MU=kqP=gY(JA&Iumz6&jNLI34GFoYl{gZt-hN3P8fR=M_pui{ zB-rNrSQ6*-NAsRXn}@aCvtizz9MduCj{%$0dT0wx8b_@gzmp0|7F8+IxGv5fBvZ1nCqL@K(a`r4(wN*a7If%o}S0x7K(a zx5=9C1d6ro2#yUsCe2a@+~Q3_=}Z0VCE7sTX$%iR7e_!y$xF1g;RCZ5Xd{+F0Ok9> z9^17@;zm+eiPh@qTRl`}t!{ooZ_6HddkOGIanfVPEjmO_eY9Z$AUUEg3x4Gy=Ivvb za{`c8iTC`SN<5~GW#P|OYC@p87+G&EzI@akuTZ#K zl}xTUW%zw1ip!5KzGQCFG~;0T$mVFzzQkN>3ytAt;mbZD^dH-Yb7Fu$_itr%=y^I^ z%zFS@q1SnyJO=k}xt~aFr6-lr<>o|cMpxs?Gl>xTycklbOKGwWl$dcmCdV*n%^Sb! zH@hM+6g^m0noXEr)u-<~n4A6JM_@AK7O?-84v0!Ib~mp;tZiA$Ot z=q^R3T+&YjYIjU*?={0u8iE6j7xZZqGGMwsO|&n=Q(}njCFt_=W>Vs+-FgpnBL10% zs@WtIS#)~eAos)(q3~OZdvc4q1+HL~J_S8_Uom8sR4hvu23!1^l2x zgoxNt=Zapw!gc{yPrdKSbN25&H6-D(+(JV7N0f<^7yBKomU-F7p5Xz~+3PIwv0SUv zUo*zt^FOO{d{XDgWQf!r+9>Ru3fFLaxzqAulX{{db7LG!7{)xQPHvXa_j7YdZ%-GT zFaX)N0c4-Y#U<^iJkB!ehzL#TrsAsJN^nwoM~6Y+sct`xEmil9e&$&Ug~&_z7K_C! z{=3guQl!JO-S5ZFL+4c6(BcxE5_oesty-=|FeEjXVEhjskj4?EMACM$At?hT`7t%R z{z(Cw^wM{KhYzAd;O1K0%XfSon;On;$f?Ri3<>VDR_9y(ZlA#0?6-MpSX%x(lK|Vt z?d+&QEtDA=vZtAfykGq_#Uq$R@2)A{8>O#af5HsEmR+uwxom7F-v9pVcgwHeM#ADZ z44kE&LFFHSAz+KlVBK$19jA==a1RagHO2wf2b-(pw`M?k-cAQmnhb#Id+iIWv=|b; z(CU?*I7g7!Kh31TWU|b(;F5-i_5t4EX2S+SwGh+G&0vyOR!b=(FTc*o5<{&D;+%$g z9Xa@wElNBLmt^_B?__HZDquNwA7m2xWBi}*C4PN}@WUXwuX+vrGRq9y^Y z-ab8d_>|nCCy)@6$XJB}JQNwILr0pyl$M?d+vf7f&&G)@Yu4Rl4N+x4*6B zlQo6DR^zt71P6_WM-y!Oajyxh8I|FE0b3vMbE1W|X4TcU1>P}FL9yh?<5{wf`lys)Po4qa8-IwHXJ&ChZvT+ppr$w_WDZ zN?waAY(h5EP}Ex3T=WwR3D?6l-_ewMxgM?5cWx_CS;_PWe3_l>xb189_23b8N$}Z7 zzG#4JsK5zspSre`Y2WFUgp2;(%D=qDg*FT0Sk_{Z zA6}BQw@hBZTRn|KPdKHr(P9OzWd%m?h?S+>Q19nKu-(YvbmoIeX!-8*u=^I0H$L#q zPx`UGJ~u~^hYgGbXWh-`ieHc-J8L7e-1x9cya$&=AC8$VesJNxR@5VQ!X$Q@R*#UtBnr3J! zS(M-iD%to9THA1am7El85~XM(sI3#4QzOAZON+!%k$bGKR0O!9aj^V>n8|E)fe*!$ zf^3)#tx-lM4T8sht(jfmPD*4?p+LOT!RJuF;z~gKi)o3}l%kAv7C8K&#T*P? z;=CoQul2P=$%Q=@kH6OQHfNH1l-u+Fp~*5Z0ZkUM(mU9LPzG~@Ep^;WK0Zr~uf~e} zZnX?kc;+Z8#ZuZPW_iUAuk`Ej+~`sLMcC#O^@HO8|usSm=zwAsuzbU$(NiZtU z-_B*fIzT79`{Tj1w-0`m7C4*c*MjEPp7BVVY!sFzfi!d-p`MUE$fzdCLn^~VT2f?Q z1@ivJ?N9nH4}OMCq#gCFKjCk7ypPoB8&AD+ONI#V8y8tp+mbG+F&#Rb_LDK8J2pV8 z6kL(xRX;ZL*y4~qzf8H_ukrzu>e270>ECxI;_-_FFSas{iN0CE{7f1Eui&lnbl=mXG zSfv{G`h@-f>Hl@=dm+aq9F%_ZZ(EMe$bvwc znL*B#oFt={FJV2XO8PQvXy>h?7h`G`OI^7m+8u46EzDF>4I0H3t^ii^?JJyDpXrhK zv3T`cOkplYSW+1vYOtOxki2VnOwq>2u=u-|X9Fm)fZUPkvM_yV#a#P`Mw;JLtkvk? z<=rbUJFF~xj7P8EXUC0=efrSC)GZJb{vPFl@c)PIMS_+f=OopT4A^JQZY`D-&0GKi z)`3K+D{A87R&?Ts+<8Rz^vwqroaz6Mskea2dV9WyAG*7x5u{7HI|L-8yQI63?rtfS zP`W|sPC@CAZt3o>|KZ;IeShy==f=8gxz^`7F|%jSo|#w;=pWTJ5YfxghdXKd`_5IX zCo)3wFNtW~9WWSz0X!|MXxFD{?WigXw~u>eJQCV8g(WAw-WsGyp^mb~K=mnK<(h7Ruk5t>y7K}s3+ak)yI;;ft&XFS za_q$Zv}7y^LMbJ1G@eXyVfk&QG5izWgwR6*JkhnsG>EVV)`;U%_mxPR>CJkTt6RReYA05*ePOiaE94KgZiV08KSUY7& zK8%dJ*Mod?fm$FaU^hCJwFn~r1Fim$&pI|eEDCZb$qa<~Q@MJC1@nkGbT8D6FMD~~ zut2fdJ;NXY*u;eXBO84@-b5`OJn2^Q^63x$rtE zR`Ru0<+%hBcyge0zT!u^0{#~RjP}6<)xmWRTc{Ijo+M;oRa-0axK>-UXn$2#M$uo& z7lN{YI5b_pjVSyZK?``s5!(;K25%TwKTTR312eP9UbxOVuR|Nm9>f2N-6%$s8S&5f z91UlYtPN6LZO8}UhC?*-;sy8!#W7($5oo|t$oOg+X8cvp@*$6%%f;;IdY2&~T_aIT zm5<DxeyPzlG+WuhX`_k8Ct4 znHQj5fWf`R^d*Yyx`$Slo6k0#p0eInOPR7uhAp2g+_qRPrvBk24JIuD#e+~FQxuh} zK9AV~=$wR-Jrdr29o^oLLwuXLd_xNQH3>nKX;&-SAH4)Y0W)H_z^KSDn@|j01mQ8N zQ3nS^Eu-e0#$Z$NWA>}>q;+}&?cibG*>pm+eP9>Ih*}shSqUEWJ1>D!2aUd_XKdz$==Xvi? z6wBqDk*D9B-Aw2u6~qGN8RUoW7FkBA_};83=zey@55IoduUY#ipbUip{OH;`TOAfS zS{RLO0o{Q(OSi3Q7QnEifaiJvMEGDkZwPAjM<;;=LYEk0CQ<)$*Z+a=H|qm8EJx$w zxRNmlz3gO!eJCcZ5M|b_zx3Fy9K{ETE(ACPPV7!tBblBo_Y&9;2IlF0AX)2Huw>qF zb8X(Me}S6V6ZJtM05N;L5-IGsn- zqi8-y4iktmI_2e$iH~+R`ivX*FR`Ib|GN`~iHo9+QTU=rWsP#Rfb|?5xZLtUkwEA* z5H&{njiPn6E>MNwINNe)$Okj%8;>tqy-U?+<;HL=rWv?E!VF2!1HzrSnZlvhgWOc@ zpbw6uaCV=-(g`}4G2GwKeAtBI*G^7;-GN~1utIv|iSS%^4!OWSq+$Jl^xQUw0&~UF zIBb?Khk|MyopK%hQ(u(zn6*W@+K83ck=hW~N0;bXDQuVDRz0dtfE-i)Qz6(P9uQzj zr{kgEjF=z}y+Fyp{PZ|@b#i_x71NwUn399I_i{9PkpK(+yr2_v>GQ11zYpj-4CLLY z6$HcQT+q5_k~2{1F`XLCNCybim<+4tjA>-JFvX?m09pM&w^frAs7B)%{I5mXr^tZP zfk7yeQhTEnSr(dd(N(IeX3;@|)m&LShIZ>B`4&a+%`VP9u=xg~LLB_><`YM@PMSe4DYw^$z{XPC`-%A7 z)%!QE{%$`ZZV!AWq#(OA3$Z*)5&q!+2aohs`w^O#HoPa0e#j-fm>7iXW=mi;E4Hpk zkQ9GIq1o^DA?+d}DB?Rr{Z^m6l}xlXqjWeUy6`Xa#zK_?;UT_1tkO_+SNxWrt=|DA zDRA|x^@=UT8-mIeYQt964ygU=G0?cR0qSmJf^}blD7hK8y1vKK)J)~16qj>3S;c02 zDFdl)6B{G7Ad1WI1Z%ntX&TRPt$rXOVN+0giOAVE$bpDTT7X>9^&{n%j)J>)cu2SW zcp1ZR@_QTOhCeywTs}tLmvwmkA1K@s@kR0cvamXM*F`@-T6IJKc^R-#4)u-o^G1 zNP&ph01Z|;vg#Y}H;jPAQg}{tD0?$;w|>gd?Pu2J*kVX=i7H9oQYX(PJyG+$_tIv~ zEy7<#mvux4m`j~{rzk^jXk|B44Dm8GvH>cb>}?*4k%JzihyrK(&~crKG_LEgeSiGl z*S&s)wXYLAHKhK|zTn%cVc4Q8R~I*W4^+OX&R{!GtAnx3Y~1JB09P}VHo%&|y9=jN zn}V+@y7}&G07f-nV3Rvl2}a4ke7xTa74h&uVOyO2?K4|mT$=Q2ml$qALMZ!J|2d1> z27>=Ff`5P>OE~zwB3xz}6?>lZ^GooR)6s^v`G!FSR@WDXPi{Ut@`ljLtgC*P7XJ8# zcXQJ#?k-5Q-LBY$>pkG`yW5N*8k2f<0yYKdJEttuFOhS!4?OgfmsBRuNCz6tI8dLN zuKD?2X{TDltd#;}D1B3;A4#AEjghkYmv2P8u34_%i@Xw4d3IG)(!g6?D&Xnpvq=s) zg|Fo8HjIF?O52Kq778bQ9ph^?kPa*el}tI23n`Kx8^kPS zYWE``o@Jl$$~()O8{BHKsSBt@w`u)f8_o@&_)meT(CWp~c>#}Ds@eUT$m7ey<|E-} zd$ak)q4(ix86(YROWm4n&_1`$ng#w=LVv1XmY&{aNl*OE*RqQxHZ2uQ_P^wv5&p2# zZ|kyfu$20U$+D4WHOB!zq;blq)rnj%F(u&ogU)n;C(ua=H`f{WWfyf=kBY4Lk)&5@ zEOyea+yuBa>(AkUJR2-zzkMwDSnboCt_5dN|E6xNkTDiZ`-4DnDZzlFC){!ZrS9z-tvF6;LRK!-v4Zz&e%)Ihj}6e)}Se%ag&|tX+nX!4qQsl zty2-N!1UWJ$!6ag#$&)bj%E03tvx@iBQ>es!!Z$IQ7~khM3I=`@-c(BmpY8pRETEF zI+#*43*x8a>j`QJI={f<&@!sa8eW{*dQkUhzv zf8s*}48dCsT^+NK-0_Me7q3~sok>}{$0ifwdJLJq2QEEbKb}HaJ=Gi1!4*&e)h|br z=oTnW;RW>@3Z#AA5dRo3&b2t{$-(SI53yd!9MEJKyB55A3p5V{H4tR4qPOqej_-YX zb9NXL+aKoJrGU>OXutm1^vOxIHKh4sO7}$R>0HT?*Ij86uKOHCxDW%ZkKf)vsK33F zE2+q@Ei(8pZbeIk60vL5>D)5p}a0f6$-5fx^#crr8UT3hgkM%g~bn!d96E$}9R zZ8Ni@!3O)~yJU^{-+U0d7jU?CK|pRm?#GT;SyLTE39AwyLe)v0$ab^PKghQzYM+md zsDczKJH(ypvRd?DsxA-z`Yc(oEG1wvnn8ngYB0k^eO<5S1u|u~NXywz^_TQpHkS!381L_pvH`w!1-(qr|B0sr{fJ3KK*#QLA%fDp#JvikBEwi%{n0_A5=)?p~7}h z31r6#R5^ z1X-xvw&>c)?CYdm2_C-$Q&~6O(x=f;C(xUJy^{NM_X1X|=u3))Om$R4Y!1;2a~G$< z&E1WKA`24J3OeZ?y599Sr~-YISLqqm7y!p;a(LU*!bu=f)h6DCPY(coi3?8OT3UkF z`ibL>p@y+0NeN!yq=j0UaJBaai9E=06Nb%7{VTSBY-FVLem2abB$pR+H^oTYzZ#X9Wj7sFV6R#7m2F3FO-_sX{9jGCR*R!~$lF@H%l8}>gffO*0E zyfJrVfsHJ|goeBgrCD9@A+^R?X+v_$`!I2UUe@Om1Zj}4r58*IJ$l)w6io(+4&Lxh z$AE;L@NbOx?ckZnyb^BX?UY@6;!mz80&p3(yHoz;@6!TC^Fq2SFHIbmQ(EsBB3f@2 zV*UdruTg`O-j+@}htgQv0l^rltcbk0{SEH#+U%Pzo9b@)Ovft@Uw4{IAK$DL9@2C2S>0ilve) zt(|N*a3*sCQ!LaF#}5PBSH^pyMzaJ22-~nGXfd#54j%|{}HJr z*|gepb1}r)d}#Cd;otDB%5@?ckciB`U`eVh9Jd$Ma{R4}D!8~rxyV!$BL=x0bV#O#niy zjVF_x)y2{nx9T=7<73IX=dM;C|1sRc2P$ z#x_siv*xrvTU~f)0SX#b=x`l32Z=KHT;M^$BdhS;?8x7`dHcP;ik}uE0I}}fh3H)d zo13FU&8|top7!pYkRcZ>Vh|t4(Ojer)aa9cq2&(7(FN7fKVeoTSZ=amWwV*FkB=Gmn^0i4jT5T^A(Xkq{;X`T~g zm}VU!RFrJ5x_SN=*l{Mo94n1N2RL^=t7w(k#8{m#_5wR?fZjq8Ds8)Zl_)!SC+CbA!<^ zQkEK8UHxS7$dBO2@2c79bp1`s&Rd5rFqhit-ZPpq4YgVd(C@jADlxY*V3S}zne=9G zq$y+nN~tRxFUtf0P+hHofC1}P$vb<%FjDdnp!|HX)Yc8dD~O$%FExl~!KRtf`MbYf zIwa!D%gR2a%AsZtA<1eZ#QN?0{zeeEu#7GK%(O=p!^I>_d0xJLra;i}t!}6!1Em%* z42)ffX*x_VA=DB!>^;4Ct@tEQwn|U5)|W{rvKk^XzV=QL?!Sjq&MPQt$qKag1#fo$iB#?&AF{FCyweF2^DdL)Q~yRiVP2Ne*#v4D3maV{U8r|~diTqFRXit!BMvsU z06^l%Gyw8vFK*yR45*de@I3BBaJs*CVq#`q1t_bxP~>5U zg{J&Huod`4d}O@eu{4n9b z4&>g5$>Kvz06Qb7h%|XJ4XInA??q;w|sA(dxP2Yc}W^8W~v&Bew6zmrt8>zH8J&_gHX}=_azV7|HrMTW#TV z)Oz(7w8LNot&7R7eYjyL1%9>P545i!hH+lNIV?j*gM=2&@^}0;|eRO2P^toC8 zIbyj+6{0r8|BRg*FH8+Q`Y010jdAUF{M7HO9xvzL+8s+U>I|nFyP|{Mg#a03`2rC3W4UJ4hbcs1FuP!Jt@xx;FK$ zuGyqdgF0sW4b}N&wQ>d%gn(X>E;WlGiR*_nU5lp`zXi7meZY>J%i9Rz$-JB0#UYR%7D{|l+0bguAa+qS`NKCmF=?*e zFOBrZ4)2ZKq+lIR5G6pxzisr>Tc+U3ZH;#Hh`>`w_s(M0EX6#*} zPp_TB@c6!v%_{6~*iaQc4N{*aSpBZ7KpxT1*(tUF@&FB>QT%uCI_#PkK|HYFd$qVZ z-F|7)9`;Xj_~y8gt?uWJ^)LbSYlm%j_Rl>RTriAEY3!iN zb>wzjHNS}hQ6CO}I2k-CRIx!y=Z?UWHN_ZGmoCzMeR>N^QFBEJ^SJ*k3fd18#9m9F zAah31V6>@>$w?$hCKPam=PAQ(uC0qfrrPt{^|h7`w@4yc~BoUe>b< z3dZ!2d82|J-iO;{|6hv93SNgzfi;(ye_U=Z+2svQq#uvT#2<+3gzWOivPc;$=z24wUW1WeYhqO}IG|Zvr>&9fzDAcVN6@IG?%=!JcdZ^UoFnQvn(8#dT)v&E zKhD?^EIhaxU~9$$3STWFRMS9qh}vuly?I&clsNQ_bK5}kf?({rUR`?r2bW^2>Q=Yf z(fi*DoP=Bw7@#k~YGQz#eb_f5Iy_XSMm+>9Xzg!Xgaw^WTW~G<^(beQH zY9)BPlX6lGBitbL>jlKvc>veI;UIwVVhubgc} zere?4GU#i^5uhPvipwNdW(N0$9utX;mu?Vs$0`S#X1cz|Y@P^wnxQyfW$x@~$n0Ml zRQ|A4tX5rbWl~A5{C-i!|_Iad#ed3M_H7#a(9^B|c-L7rp0`!#B7>5F}F;+d&aF&pb-=Ql%Ry3FY zSmULalE}k()4V0Z=YrK(2cMUZfLq2Ri$^egx}82rN^8k0zXGK*t4aEVC-Fu-N=F?; zVS%>vHesUFC~w|-TsJ#{L#;@b0H*vG=?@_f`uaa?-`tmf;Zh-xu%QO)=(se^PL<%J zS%!tNGTozb79kEu5V|PpM3%?V362jZx?FZ*`hkj1XlDpZCra8%7!z+@>$_3%M8_38 zG7`^FgwVXOMpZTX`qLO>TO+UiYp1Qc!$Q@vkIvoym(!|r1Xa7jI$==B;~K{j##Sx9LM|OBsv)k^+~(PU}X(vbB=&1i>c}0)t68aI&v^!YTxKc&1Z@ z*aj7Q{>KhOlqdBnGB~yd0WtpiCu&S=@~Z>3xHz((&Gw#}iwlh#_pb}YRo{+a(LkZ> z-nvieB+W4-g{li`SFP*Gz5uY#ba*@NqYEh3rtIkbpmvsT=BSF^|-}ClY)YjR8VQleg^8Q zP-;1y;sJq0ezI_c@Gy+k(PPRpt+wRwKI80kP{q*p_fF0VDGwP*P@UI|Y@XS<0*fX$ zB1r>w^d2b(mWU;>WLqyNoH~>KU^`bL&zdJ(Msoj#r6=nsNQblP8h0r9EMAtmw39VE zXIWjHo$W3c+Z+fT)?uY9oIs$5lPg2w*dRcx^@Rg)ZQ>X` zV?u%F!*-svCjYn*>yKhnsf%VevjZC}2KY<+?Isr&7q=A9!e{1Xw6p#siD(x?G4)XD z6o9RG>MjNrdpGv;T$+`M87OkA{Oml3F(Bz)zwzjWhQ@H}h5w=T=Bj!Qc@J9%k5AJo zT4=wk^CcOt)aQ+9h29ht{?w6jhuSH*uYaaK(nMgh`HYIaJ1oLsc|uQcHhDV=^PgQ( z0@nUJ0^&Pm;wUR1bZST3CdTMAxy8YE`qHsiYrw|P-+SP3;O5)5sN#FFbk#-xnz?)P zxGq|9_D{M12Bt-k6|7f}{+EYLbwBRgaPF@Br^E+x^Zshyf#1#ADD~5}A z>Wk{sr45S@Sr7MTj-EVADeD{VHxCfl4;V*{Zof=4m+v+leoM9|qI5xMn*U%8^F6+| z_r0y%@<&UxaI>}c)$)qCn7eHwZzjQ2sf+TQ_A32Q#*qbflQrv+Nik3P<16ak6G^|B}h(}D%| z%wQQwNlApkK}m<3!W>!@cS__{PQ@AA?qdqZ>j=N$-3H zh5~HWbU6jCcV1;sW8!tHvzjiVb0)_Yu?g{`tW;w@#8OvE3K@@7varcjTgg- z7h5139ITn^ajy>e>dUcnetxc1xx>4|^K{5&K82-%tMT)~6L1g7l>P3Fd=?d!c*Zxm zPuQys(R)sUTxYmhpFfm*D8m}A)f_3Gp1NA>{h|@hx?K#HqN>U_9sj`wrMFrak*sfZ zaj3iXqf7(4C%jQ}7YunQg7DJK0RKCS01LlYVU5v|iC{EHoxwLfF9Rv-)NdqMSYyQn zmZH||UNAWyoMV+M+MWzaCVux&*ke=}I-n6QFDyuc4Yt%g*aFPpP`txJgA>KHJ4w}C z{I;h`NRXajxSk-wdah~Q5vQ&;iiR2&!7s|z5L($v$KlI^B4_*N{0rk9%Bd2YX5=lF z5kpa`+^%x@Yj=+nV=lTijI<{RJ=X-g%VCBSl9Su@6YZ-=%z!#eG2I%>r!hR(J@y8V zv*W`}%(6J)tZz-w3+iprSN%)wjJ9Q5)fK)HW!S+i3Ppb{8Mg`hv9PdI40TX{=|wEP zsNeZxj9HJsIuM^6o5#aqMf+8vuA(^$ufvGLogb4;ZYrQ0wU%@I9G7V?KmRe0!Y_m^78Up+S+{UrIa}; zbmC&%sZ!ii)~&8Sg+%>$2UJn+Se;c!_p}P&bWSqOd9PGMRcnWGTtq~~cFpsN6{{hG$z0f=aN`jfa(p_#y5`}3<$;iO2L6*r#BV1* z?UlKWHS0rL-5URVc!U=R7miCY-(dbGMAC(<)Se4@vy3jiw5c`t>f_)a1-;C+sL~0| zFMTA-ojPu4P5cc>yDAsP)9m_VP8;Jyu&Du>X~&s|*3I?1m45{`o{%B33|35pTUC}> zePzP&HJ>GTobOR({ z`F?1*M^#B^vNpun%?+>pT)sVoA|mT282v@wH*!BXLUMb7jYSG8!Nv9^+ZZcscbv01YBdBj!u1jt-+xFenWf?a=H~12O5MSFInrZNT6e$ zUNXWNs7C2bW)FO`-yrXW5Op;eyzmk^QmlBQ)yG@Xoj6|l3}1tJJBfY%1#VlOhVJ`G zjkfoAC_w|H-}fk2d@o(wg3eqh}?I zEI~vkIE$>W3b^L$?t~8+D_eq|>8UCv6iCAF_s6>J7rNK?V1D4+iR0&7jQ_cee+aEo z76kJ5gtzUY++p=*D|`7U&6O%szyp0?V1U>Al8H>ni}N0q>NBF>HV@X_0608X!#+dESg3O zOrq@uAxVO_42n?sro^_m<93?U#q0`0uh@KF1rBBmKi^7A@nf#j9ajd1zk(xsh>Kn) zzT|D~&9r|h(TP-0}evxAvMGKn`+%wcUq7yg{dY>g<~S zmrrC7!rL*nj~Sf`&IKRJHm7t}GxQ~AS(I!i7piX3-Rk2wK5=;JeTY$xTjFojJV4+}4s`ZvU||M)(n$D4&&Gj_ z%Z2RAB_*NffU;eqb;exLXKein)vaeV2^iXl-d(kt0)sTPxwNZ2 zSWe4PmmJ#Dk8B}suRC5g9_F36I$LJ;M|sM>CeZKmH$CxSFCV!OI;!3EI5s~>IXI}) z&a2gPF<2B+pL&A?YvbhUaq4)qiCIA-&ChzWfxss6oqfuNk8}Q;o?s!x6n_6jE^;j% zxSivlK1Vj-JA}Cxm^-iWfky{rVzax`6V<@Z@Bb+1cev$uSj4*aOTDzUlqWScwd%(Y z=Ua-oL=FCN{A7D-A@+S9MW!c>(Tsh?9S4&osR`1!Sz)tOh(mu9U83x za?0XAS#wB|jY5OFn`-!tcAx^}M!lWHbx8Hz)NfY&O+5R0v_+iawj(@1bBR5L1Z8=K zU-JRwgtd%fhO=IxQ7|aweRehVIq^^7?C20PQe*Y-Cau2j1BKKp$r8L9j(N%~2~fKR zq;8ey=Qks=q8)z*<4T$gQrt_%g-p|)56R0EQ^qt+;nFX$d$|N>%&#aa%11EXM{rrt z+}j=GTsj%P+NNRsI6pycbX9WR7W8ml|`J9{uB+N@OTA z@sDgnCv};>H;cCVi8o=YHA+yG5SNM?@>=p|v1^UJ&eFQ(&_zxW z^hryUr$J~kw*6a)3fy4*EUA@4KZej(oINS9WmQXpsZ;QpV^G^V$lnQaL){q0tqUx) zcydR0<}D^OP%b!ZB7Du!jMam$f=LzxK5S2i8y0%dA_sOSA#IUwt=_K*N{$EnUpc{=k^aPqdks4qmfr+!Ms#dp9!Os z6JpI0V{7MVNSCeZesGs;1s%Jp4nw=; z+E>P>J+a!xk8m}~7m<$f;H5@iXvi#KS;(5aN1Fg;ZI8xP?;l+g5CP5K>e4CM_k}Fj zd0!4Q5`3(59|id4SD%YNr7I1Y3UgsV65i$fRr|cE*U5s4itsAY964`O4J_EU5LG1O zG;!V(%cUY>j-ExpO|SNr zB2hDO#@^Vi1Y40Fc@x_I2~U6ImB`px1A#QhUQR&8pA1b8Oyk9>Q0xPBZ{R5ElSX*r z2b4v7d}Nz1{#bE%U@W&^h`iMPB2gk7t!9V*dyeVdg?3N5V2ek=N-GCk5#@O)%{EUo zKrPCD`^u=Qg_6Bp1;rc17CJ(S8|VZ!+OAaaYWeCbh(-@AW6cl=^-$iocp+=}L!Okm++cWXEad}%jQHe0aPG3R;rw#Cz=wWi7DxOjT( zHD|4mv)|zWV_k4ODL*-l&jX8MgL$N&=icumIUx=VKjs#a^HWlcLD~GPbHuhCqN@s|w+^o5qpSdYhZNj@f zLgh_Iv2A!24q-pq-)nS|Wg<`Vw_{DIa{FaJIJnLdD$>E8#c@0zDF~YgIR7tfqT=WM z&!6vWLjuTeRVMXx<@c%xj%gE>;Y_pxwKM{gu?<@B`fo0Oqfm)t-(d@XyirjLdd(n) zW!4^{qZL@(1D~bI7ZO_q1&tfbj2m2@l|5oLab3>Q&U4IORuz{X5nK7A0$e%5+REM^ zDr`JE;86Xxb9XgV+`L5)p!s!;=XDJ|G-jRbNx^2l|JM_|@+RBDk*E6X`Z>p#pFMV` z$MsBWv7ASuF-TqXXE6my-RE;yEb$ImWWqOapQM0U%8*8}xmfqf3^Os&`SkOgg<-Ga zrvufuSMzg5@>Lj4#7t~HSa6X0leMRSABOvu!L7K>Ve`dG@f$B*eAC;(l4um0(=|rX zIAV~68Y|11=W7PMsc3oxn>*pfjdUV8iD9$Ol95g38dnA6&CK2l5m3 zxOj79%W8(CYKE?_c>S{*m^jHI&=C84;ZWUcwLW$pSAK@Q7xFayepqHa{Pxi&p>Ewl zyz~-k_a>UeWv^-g=%a)2slL9b;GQw&*dy#ehz|)lmz^-x#?Yq}r z`nMP1o*Up(I2r!=qHtMtwe__RVCnUmK>`kD0e-P0Q2BA!4iR~St4@)ni8WH1@UF}5 z3nM`TZDpt%Zm!ytl(BxXO|j%ZE?>DqeTDErmt_7Yxn6+gplGvRpmKA2;YC##L~Qy* z?Cc2g^@ZATX8+TKn@{p5x7ez|QXbYQV$hGR)h4swoGwjWAq$uFC!lT8W zITozw9d@SOXe|X+=m?#ees?0Sdia5Oomt!ExVbqW6tNl7G7=AQ#OEjl*bn?;Tcl>( zP-g?*F1d}ch^{6+g*_MjY?Q1XmB$H-6)Sw}NH?{QdquCNKafewn0~J9dJi@8o)tdphp!clP|FuDF*ZSW;~?5{F-zpLG2sK;K~~rbLAKv+x4o zjHZ%ql$NY3K&=#5yQ@#vhPxG*lbuci!%a%|Y%q(}c8gen{SF&dCv7UZD(6mm#~s|{ z7nn(Yi{PJ$1SRy1s`V?Cqwcp1RWzr;W`{mGx&XgM=m%%Glk8i>&RlAM(g2P?jP?~r znFx1p^oPTNz=qO|s-D^RoqUO$Z}`-(*dk=xDY*gZYD!M(ycG~0REyAJ(YgF;oyoDm zZB0B=B;$bQ^1Jby*n$mXrI`93^MJJ1@APyWWl5F;*92fn_i(>;sJ%_UjoZN9bx&Em zbk};jDo+G%$A@cwR$#t%sX}<&)!j-c6F~o@3>8Wkq~^JFMp~?_9DEH*$bk>q+|7&i zcoFeq-Zp*uG?|96+q>6U3}TkS?W~ve1gn1j_`Bk0w?kAh#BfE`?$ZzO%;}bvA#N(7 znsXjnX;V3T?uuN<2J-O`j(pb;XQ}4q(7I*YpYBgP2TvhE`j$&mxaI2V1bZ3keN~6Y zp|4{enNJX&T59UMxtCCfwsrVB-NCElS0wBin^7;F%<4<~zeq+B!7RCizt7{AB?XX` zLYk9Ez^JKXjg$bRR_?&+Ll=I0po-tmtTT$w+|%9=WF!QCWly%0Npk)rG;pgQ^VknF zRHJi^I;ii>%+m!^G7(B|EHnt2i%{^Thq6F0!(~3jRkA+^;-0zI*;=7wjwEQfQW;DF zVv?TF*OI??^b}UY{WQ%M6%UN{g;S4^4+y77+b-Q_#Jrfl%*^836v00o0ydvR=(g&`E*<36 zDaC0$KDQ}pA9uVH0?lyy>DpHxf;Ic^6U1Yj7u#8S-kNsJ6b5*O&~}h%q`p@*$k(3&RD>F_B$y6OuZpb zw3NWIy{uj?;UB1P3hS~d_@@j*LyEA5VPoGpLTH_pcB-nZuUVial!NKBV_P+3O8^Cv zo}f3D3hb990V8jbeY><4&%GbKpWh*mPI=}05yup?HL=*Awh|A29OS7Lxz2}~w^~;y z_5M&wLxOHb)8ft5)9y2u2UWJ=zy_$W0US(~V`>9VRODPhqKPyxvw$yRtGg()c24IS zv!Spsw3c9pKHvp(r)6MZ*$YR5Pr?6V7!jWXnv~N~ZC3;_9DbI*R4>1Zn*H3G79mxZ zQgG|U2#wfVBXaaZHb@`2XQZ_XOBW|24h;1D@cf@vmpyDlhWbt$guO|__~)kdUbMH? zbRTBu_JNC+GZFjjv#>HPKj%=|6(DF#HU^>$R4ZTY4kc9RRpeHwNPJh8Y276`RVQy< z*A$lgOH0<}&5CfPh`w~E-JvSOuc^boFm1lt#*IPDB3fBCYmAZ|M}w;{y2)3EbF<@5k(ij6rFGIT9^TI zO;gTGtMja%^T!t+?QuutK9wJydTpEhh>eM+NJ)_zOWn0p?S@MBw79?fW*mShh!*BK z!ldHAFmWQaVBK=ObVfI(P+3M+(MM6%$H3&pekbQS9^1tS*ehZ&eb;#;JI`^UT~<@W z5VEcYtlBUAq8;toVcxVDM+l8s@}zS_JScYt>yGJO;m)lV{Xc7FD!Q7aMK!CCNudn9 zXOg(8B_uxPESkQw73AUMv=JFW5h|OW`fi|m^JyKqEP(O<< zFX?*z&qiX^s{EPyfk01_@k7#0NYw3Zs0w?cbluj6K-ACbu5q>~yNX7@MbVtwm~Bt@ zCm23rKFU~mdbl_qty3~C+9lq`9*!1ep5v-LO_z?Q$pM=9>-(nqOtO^45b$!j%jO%6 z^3rl9Uq(cu8CH$$wTM02pt=t3Ab#*&61k*xf7Nc6WJJ&P*q*IoPIos&TyKTOo=}TM z|AY|kmxu^OGD_HgfO+R27ikt=P7~SJI--E-som`P<2qfuP_u+62q+txHz3>1E2q{IJXTJm;sn?eR%7vbiWKC z&`LRNM75O~(-I*|D~7y)Z9v2cd)-hnjFxH6wiV)zJ5#%e?&MlM69TDm;j-MaP7t|7 z?EJ{vl@w{5Tinu|8I2UQfm;SvyAXz38~TGZRPPXUvi99fO#|6`I-V${th@D!k>X~z z?UJ|-k^Ah#%c{f6zXyR=&lz12-vgyD@*1zr;XweY8(q)#F`X}uu|O<{O;o51AVh?^ z?%k55$;YPZxwz+>ocZrHIS4F4$s^zdOP1akFSpUT_5xyW=b*k)qKu`96Y+BFO4wk# z%N}LZy{^0I)RAEjd^{YA7NMY}!7cP*b8D~+1Tl*mQ}9j4IwJ}NJ5=eTZo>42&~8Mi|F%vrgh!eV^*Edw@9b_Qm_qZIl*i*iMAKu2!d%t zM5!vN5;X(&R2*@JQc#TWB#dGvh+KaLpu<>QyjPpNxti#RAlB+0BHV8`40*VUR{nv0 zPAo+TzH~%ATw{?mwL+Ptlp<9Cq*(u<9KWX$aL`pukS>eK&=bQqDpo8+HI$ihnoR{sF#W#4?n!MAD zEd%L9Jr}&$-DF9k@I~Iuw&Cjaj0fk0^Tv_eJx0%wfuw7Inm&cMw8Ui$Jdxa=dYwt< zHeb%b@v4$0fWFOixfbK1_yuaDD@s(cg$I>vJMMen#pOe9A3j5niuH8A`^#|8nC~};jlI$Ketc&VpY@k;tQ37KN@0eY#i3W{jo{gg_seK~ zR8f^PFZSRoOKNB1KA+FcZCal*X$?=aT{vkC<&<)By(kVADd#`Ip=7uu9rSM^Jh0Aq zpbD{vQc5cjs^lMnqq_?b;n)*J72cd{Gh(4_dGMF)=0r6~J8tzK%F)x1b+oi1on5}l z%kA(MA+|H}WkvDKt^GnY9Ue|AQ!bP|frE_Q_>sK-VuGbcqPk2m{jH!bmsVJ-~bKd++`H9sglw z&faIov!3;=b@sYkIXG^C=BVR_@m=ode1;IbHtM?tJUb&58g(2M`^?vegLT-axCma*ahY5 z|I#&ZEWJ2eeEoBbo@+X;4n(VX^zTz>sIMgP{NO~t*H7|57zLqsdwNO;>BwwOD=Nn` z-S3*5T_S8Pz>5Bt{Ugez-b%2XI!8^EDtodJv^=KD=;XG}0UQ;~fBpem`_qP6rzLU3 zE+boxx}!KCf_}v9;TO{EhOqqAd@;Hx!Cpac6`jakxBuEB?2M8iqK|1DY0u)e5SZ=Vo;m#mR7y3;SwIkhOM+t zLwvAFnr&Z^gZO=vH?-Pj(7}WeB|jfFoJ+myNR-95zjG!;G9$v1Y+nh=slP)*7&+r6 zIB9PYzeL5N^9$Ph-f}9#q zO4BI|FD}+L;Ja2f!lv)u>pZ$7NG+qQ{Tlr&>Nn8(+fGseehnK;GKw|7 z_7xCr+N?NjRoa@xqW#1b^NQk^U-x6*!qU2}5oP=80Dh0tMs4zO6%WGuhAwS*I#$EH z70NUB-1Swt>%Z5s>0ffFEYIeXe-rh?HE_GjYHOF;SYU=0AOLVTT?cm_boYY-AzgM$ zP1XaS=TfuM!#p5Xp-n*Kj+A56&h@M;#6t?!Ulp4-_*A1B*tKg{!~|Bw1nx&T3@lTw z@?sCz*odcB2E!VuZwJ4ZQY6AwF~Mfykv!@ zpe>T>dQCizE5>BameNQJ4TlsIfjCN?NI&6eK#h$p!=M>O3u014aM5Rdzt(%7+>8B z^*gN9uZbGf(BI&@JGyY>qJQFo*6-nTtp2BI3jPoZJ!#oBW5>eka0#~ARS)E_vqAO_ zpX`c0=3qStyjC;XC-GWJtHk-C_vSI*=SeUGw%|0!2dQILoFs(9d3CL(ccm`sO63iX zQ&GETKGG)08*C@|XtX-qv|#a;rsWQURs$E03E#6);? zYIOj+SZ^twu9&htb75`Omq2H*^I!b6+T2ou)w3K1_co*X+Is%O^He)2+;G(ichMMa z=XiC0ZKPu&Q(eyDTDk2x*~)1ul_~d0-l;YD_w9N)IF_r zzGw4pq?&pk7rMgjL8KyTCQ`h1|F9vt*`}T(=U+BKwj^yLA?h1zf9t4Vn%Y(i_asyWB92rQjS^+-hlqg`Y0p672MV@<%MIep4=8mrq&QdgC6#N|3uWl#N^EDeYwX4Cb+GOnLgHs(!D zqjJqydi^hiVa7<~aJ|sONvKT3hB{TTmjHKOg9Un&dU#O)o!@%9^)Tk;4*OG&oWC$C zm@tSb%qFM&a@I;=yupqyS}&io<{B&)gJH{sQT!?t{oQOj<%a#pqKUQAv~sK z+|UVR2?XD~Q#A=|9sJ-tgg;>xut_!!R0aj?oA`o{ z%Q=Zz1rr=-F;0)DwZVlsn&E>l$9_@l_b#f+n&x;!@zG{~Q4uI^xf06Y4QV>DidY(K zzefAgbENk%N>6>o@oC&YYd*`nU5ZwL1!$Zsg#FLra@)Yt*%o9wQ`m)(x$1ImrdWSf z_{I(UD_I?)uDbcN;z8M8N4A`MOAXbd(?9hmkHaI4P*Iua;Oe@gRY~9F=#1IF-G2dm zubG)U6;t@o6!!f-jXysp>we-2!rC&veyaOVF2HZ)1;qyux*TKmj@prOEYo!SBPE+3UGHIdgTfzPL5JK+|#kA`XSXG|lyjmecwuwR# zq5nAha38fCK^&Hj!(=r>eWcZ9GPbYH_>A?#hEs+l7g_ndhA-{H_N`kgCM4s=A8~(w zxd>;Bc^Q*E1>xss(>)*k z_Zq_X$Vn~azVAHwqes%iEqajarUtj$=T;aC#uiVgtrT8xrZmGWpCfd zg|7-$mu-K^reNjE)&&70K*=TR-_n!ZBLgnwI;K$Q_)9e=O>Kf;8@lvcm9hdhXKIvC z+Zx6v7<8GM?j%`zo!_U*wO{o@`6{QHQuv|N$2k0-DZev?{Bi9M09hq^?9s1Z89W-* zC3=`2c)!L=0_at97#A(=#F7gpg+Dv9b=hP&Wt9SdPd?Ok?jjV&Ee%`Oly)JcfA?*B zgvp4!yLSP6E)h^8>ao$E#o{jY0pP*Z?%@U(NR6?X-2z}`lmP5n5yk}9T%!ZdV^O~fse`*RL!kuo4LvixD=AMB;ugCuw6E@tPwi3-r}~Wa{+#>~#mi4}WIgY4X#Rax^F=O8S$XtXzl{g&iv=S#O8r%#l1qR37q_jH*SUFgPu54&U}NDF#MVL zUf{a-Lf-F1_T8aNP`5h{F{(Lhd&UPRRGfDHvQrSg@6y<$kJux{GqJEMRG-2m>}OJ{ zqO;Mr4t$S5h{WBGCj>7;wSu-1bV^U;g#iUFHdaV!_la7I+}ED*B$7LL}Bp2IF;ohJzUae$2g0d4z;Y^rqX z>yce;K^oqY;J>f&3<;|$Mn-ZB`dl8B2f^i-YW}U=d+I5Gw7ZLuA%OgpOgRneLF|`D z{JNQ(Fcs8?i zCJ3VGlEXPkVTMn+dH*%3$N*Z#Sz_6sFUN-O`SI(N$ImgnyIOyPX-*jbpp*PXRig0J zmmfU2?UX5UY5wEepQf^)RlckE8HfhTD5I-zg0iH{%bB5~RMHK}GpPeH2YiBe%G82~n?g(S)OpVPY#84n7*m?udGH zW?@FK^f3m8-x1?{CAW(%%*ta^{={$m$Mtw6#L8}@+L3=EWIf;2T#HcuGo z^cbnyWY@sRaGQ?g9B@Z9P|%?R`?V|mBBK8$H52vQ7rGWAA#8WLaZBas1(ZE5_Tyw>-n`FWA?d z8{quZ1HaksluRH}nn|koZ%_OCLcVx9%LNUf=w;k<%^alxDr>oC^MaO&;{1&F+6=xB zVtPavVixRDUs}j8&T>uO9j#XF(T{PkcgVN`n+UzJ)kQqra39iwX}-Bjw&Y zc8M_B+(nEdI*whqJ`kd!23!iBPUiQ|IV6ezt#n2K(0Q%lm zYvKvyY)soHI3z!$cOuvVS694sAo8c*mE2B5B^&nWQ^qK`9^?nAe`H=N-arAiGw6Ne zQDmU$=KMxn%QA)tkLbVckxON%3;*DDq|Hp@r_R=?ABe38|LT!jhI$VR9B<97iv972 zbLs{WTL~X_2>)dtPQ#aAMlSL|!dDd1^bzzxz(zyd?;=bv#lzni=jp^hb-T}?v_bmA z_-(+1jo%iztIh1&%BIlXljQ*iJovpjZrJwpfHPUs(Bh44>Bt~N4Q&XM)NB7sJUb$x z22xnG+6iO%1ob)5n~r8yl=Sc_PJ)q+hZ=R1-jdo;r_>xB4dP7S>0MtT-(gy)r6`4H z3k!8Dp&gXirs~uZ{x(Nlc=YZt)&5S{f|=+p;^i3Mgjtaj8kzU3gC9D|2mghaX1rFR zl8h3=Qv%F3`L)lTP3?HQbQ<(z82}y5#y#Xl>;J!;(cIE6f;^oC5nKTXRgfJ6tO`*& z-%Ih?C9v{N=_VYlT62}h*}tfi8DMw@#4cM+Jt zWsgf1?~=pA+dRQC{$RS22{e^r1yXY(J3>>pk?bG?g;|3}Smge=`{>HiOv~DjD?k2& z0+%{jC#waxK4nWb5?ULUmZH~NZVI8OI520pGev&Z3(IXHHQ0Yb2CVlV_gR8cY#qw4 z+57Z3=Vqs6x~RS|->-wqDP~VX*<%K+)lJ2CpQiapNxdM#_C5~ru3gY#Y|BQ`oPyF> z=P5furQY=NTPe`UKe|qBDqXQ>db|=cp#Ccy29qxRAr|^&5yV+ zXlB&H`pQB@H!XEDX;ryR1H#ZWJ46Y%1^a$cnx2abZHPYr3R-%&z4DBSJEpUEG*umg z9FSXwYIAvP=$+0k;>0>_iu~Ufynl{LfgD^U8S;Je`j?B%FOig{DjSE9Spl89n&)6Z zf#~dTnd>bw6;dWY@`MF>UL^p|D(VYe1^ zZ_@okhpkln`wfIUrkBA16P3H?Kb)o|gy7M?%ZTZ{8YKC@YfBD1fyZCndtB%}rE;3! z#{m!2tg5SF-@)v*ysGHkubDj)q##pQjt(_``DTkS5Cyz&WoDoW9N;>5^u?L-mA%l`LNk4@XLcV8olJzhElBa_>;$pmRt>vKfCL{C zgT{JTVuv(k` zywo3A?};NUFVe|e?NCE@5enp>XaDUYzITwdGNOHP+QFbK5Xka*;pM9XoZm_Nmh!r9 z-hA)s!Uk``hD$|JQ|+iDcf$Uo{6JM3^=|%nEav$8%I57Iyq6(!Y?!2YN%dt$bFa~G z`tPw5PoZRju!IYtrkiI`fp7FG?#jnJ-@A88T>0}U0QgDNfqWQ>4*tt6$K!aKV^S-T zu|>;8)nHPPCGhLr*A;saEM$yz;T0xGn|hF-&h8)|VrtFip#>Np37UvmJ~ z-?t&?D>Fp$BG*VSX}wqDe})dgUJOV|ytxN(V4((5drV@2OmUAChBN9o<<_NwTTbe! zM`rf_{k+s`8#cxZ@2B89mAL)ZeBZbH=-ns7OCC+(Y3wBmL@&vNj$-|JU-NyKJ?z|B`sId_Dp*eIqSwZG3AFEA2n+D|z1m(_ z8~tFuk7YHr`^BlhW8%`3O7!^DElFbece(}fzjb0gVKM8*UDaY*0kHB&pM(u8SUKch z;J?4nm8t>8Me_9LH8hyr633+9VJ3DXt--IUs^Hh`V-8LV{7y_O$r)FFJcOl2jd9I~ z^{A|!)!)A~#H=RpV==7t8rN|NbcmP;>++3sRs`+|w?Se3YWfS3+5IWLZqR_l^&);a zjt0~iW+2GKM7CHy@hG&ul@vIdDvo(2esSwuhTbZ^j{{ez5RrrG z%feggWJz^7h9{teE;?RHE4w)%IjRCfpel;MxXxg1FE?r9%3&P7KVc5{r45;TZ?olX zH?K(h3o7{=*;Vp1Zyj}vlj5r>SEmx#ip2@Ln^=tTXrEG)w};6VT-U?xwSpi}+gdHJ zq4s6r=3EN9ldjpsdl{r}H=aB8fhmRHh@*fFD5pEZ?)182*f>Jnsebk~aRzA?Y|u?- z5WOePH`)xEC;PQGKJqqLH7~CHJfetbrCTwa%-~wKeW@-7uQHnp&`tT+73r$i9#6JV zv-6fxf#JtOb*_@lxiG9&vee@a5G51zryK6DL1a(iaHRluA|PW+nUWq2u%1yn%#C7 zN<npVI)vdyQ`E`Gbkj%+IyQmO zJ?UVv5ZXPI`g`A>qEdA~B$2$YbElMn$Rx(P%(3pT(}k|w#MHSt$5j>u5FXwFr@fMS z{xxZ(B8rW$q_t6fP!%ESow)A&74EzhZk-dWJ=9@lbkL4%vm0aStpM5e@x`ZR5^Wg- zO~%hTZxuYXeAQc20$v}yVkO*=5dqQssVWIy- z!VQSQ<-mv}TY=FT5IlZTvI#n1Dq1%Gws6{J0+B0EGijs59OLarCFxD3pCEz@V{s-JEH za0NoD2`3Z9r{)3d<$|Z?0}CZ10%jZ#WcvCo$8WV^jI8j91j&0vg`4Vd@&S-|dL6)# zbQH&={gk8@YOjZL0xMo{L`5?ZodVtvBscJf= zo!6kywa%_E-inl*iq`EG4h+-qur#_0vcNQ9wZwz=H&n|E)$D&zZf_-YMLh744pEK% zb21Ofj?07HnZTk&c5qP&WD%vEE77RtBf~5 zn!*mq6F3pEw=fCAAW;Hv6bt^(LeE*WLTb*$aTE1F(BjfFLs57pmV5Y@rh;Nanb5Z< zXPFyzilek%`bEEkPe#Wg-%MN=9@oJeBF@0v*l)?v zIW?VJoq;Dt(gWu~nvV>-m1ZAivp5WER+{ZGc-gI7*}Biz;M7q z>rB`D1Pt6>u2}Jxf3$XrQaDgT)L-VL;9AM#MUf0=gHeC;ubr2mG1TVab$U&6l$1f0 z^Nl!N$%{DaguW$YCiKLx_hXBr5$A?6Rq~7Y*1l)-5-ml6cFbZOJepS3wKgFRFN@(@ z#pGum^f^=iK}Z><6fp~h7ZwWO6%pqm(ym(g5K$L5$a4l9Ma%Uk1OmAHcJ@q3N@^3w zQNHS&L^ERK&1cpxJ9Xjlqq-1Z3shAy?N*%&|J%LqvK-Rf5&})p3pe?utsLa7Y#roz zV70(3T)lCF+}VHXJMG{59P-S-$~EN}0gdE=$lita;dwNT zpq=l&i*QNv21>;Pk_R3d*08S%x+6rg4t`$3H^@oXEiK`+CRmx!04=9Bl1h~^=Ffso!Rm9OMdEU!9VsB}*ebJ$JmX5nacDuUm z_cnt>OKGqjw55+n^9fAY<0+E?tQYVhmcg}_Yl`sUHb|WB$qDYsK}O+mCgATkP#R8{ zSmHMp4n$?=)_h{bz~Iy-SN+Rw{yd;E=-Wfyq?W4I^ki-Vr2=Uu?^~BCE1A;gUhNe5 zyB8Y@Alk8+mPQyIqxkzOa3_%c?JiZ%6eP{UvMfzk2%SX>V_*S$+2&qSJyCBmj#udK zuTj0Q%@P~yBZv7(H@spVK3BK>CG5W{e{@izoAaJWeMtx2iZE6^qam4JB(nheV9bZj zb$-r#Nm8gZig9N@7H~dr=gt1!yk3WNMu<7{TjZF);J3LjbU~3WFp>KiLrD%6FhXD$ z{n&oc=1W=&|5$crtah4_u+9~1NUIY%GERvj1}*^bFjHx)5+|`9R2ITum3o7O{lysD z#)F19DAmk!8UbaB=FbLse9B0N?T;}Ax343rAVW|bX%T?BJ6N&Z6f)m-kt(T3NBc(G zg3Vh%z$8(^O4tnDA%6)nl!(zE47CoN(za$$(!&Cm-6bMdB9tk=_6$&>;NdjvZ1${V zdgWB8q*o>9fI62W@Xl0ahL^iCQF7=&bN_!L3NU6?#ZTFNhLDl-s`{tv+MnxnkpI(%0Q9seE!G7C+&=bQg-=Ev-v9~~zILauka7lO(2 z^X+yorbkBHokAZYTwQk*NEVsia7As6UGjvoCQ78?6Wdu5+mr%w&Qu4eD+8a$C$pZT z@+V05f{3bcuOWExV;DGsAoWn_)!oj`?)}UUMkmFvslN5xx)G}4j}Q0!N>4@h_*)OfjOo~bS$br=2Z(Szo0n&7k%kBeyS`N0HK0KN~_buRI@$kkVsax~~ zYC1_O_H(g=)}JW=5wzsA+>R#TpReZ4Q2o?NuodKW6oxi~|IF#Nlu5M1vcmlv*mkd~ zT@Qs>mrZc4{aKb7rnyGAhXP#gLMfpdqBI7Zkr(tft!X z>f3jI;i48fY_n&r(Jvg=Z%jmvL}Dkj=IAwgz7z`2^dVtQ8V&E$6k2u%^^P96*=aE@ zLst}<)l~TR+TK%w?7jmzj+o1d-4t#O0+xVxzexwEo=`!~J(?D1xwO zFqBxts5#CME*0^kWE2k3SE%%{2{S)7^O_Yf&859#2b}H1lky}u0_A=-%Y{55f5Z^D zHyTJke8F(rUphSE%adOT8eiZ2f;B)V^!gA{K~)i>b!C0i8Byf&ebng=dwLDyX~qv($Gy>^m^`I`WUM6%O%IY1&NYAkyuA(M zWgQvLmApfIhy7bmwR*W-y=z$7bd)VH=Rs?b#rUOX!{7R#>pa?YAtv1XKkeZ0;IMUO zizn*CeZstH^bs`SY$qp!gK;^zoB|i8cd*LaQ3pz9i`5Aefd(ww-sL1Es}+5B`zT!$C5bRW>bt(26+BNF`gy(118 zxSUy=W=X}OJ)UfMS-eKX#=a+^lC~&0JbOqOyAZyi!^K)uXS5ZSHK-~*1`Z}+-|aE9 zNu*jX{@bS0NE;jULW%JD@kuD#xYVl0bM3JCyoeI{c(@o1Ja+T;n6La&bk@Kq3?FzaL zGkbXT?EFE$vxwp`A!(QVAjCv1xk_0#2Rr5Y|FT3@Y@F2dmE3yVa3|k$vmxC zcOR3waC!Y4+)F-eh)Rm7o)F7qeRGjd=R}n8-f-f`HmD(}5K3LJk?C{0YB%YX4rARmMgJUp_9IyOhRoDtH2S z{IjBIy7_epi#?50HZH~_m#Oz<{_3yrdRyye`__j<1)kY^cA68wfy$@7o-h)ymerx9 zO1b%8jO^1zGCrAoV$muvE-YxvO~H>EndGWguJV~)lCHIbo&KKq7 zC>Hb~Qx%S$J^Hios-ab!MvCFz04xN?BH)lb{~_zX{5{Id`wKS z5n*|zCBATO&tRJ1+<2^EhOQwglM*4267eWMI=tEV^kewlP%V|!k2xKJcfkF8bM9JH zkd*9hIQocxj{Lba@IdpMRc7`Hi%@a%L*Yyv=C##HB@U{d{Q|VQ`{@v%wvaY^=E{22a(N|86~Ss1L|iB092_L0@O z*Yc9D7G(U)$%`#2)!`W@2AljC1^c-#?i+4=3WF>ce}u|MZS0Zeu4YsRY+> z6Tk4~gcWQ4c9SDJ??~!E@*OO=Q~$X#FS(1O$piae7Y>hO1zb3aE-u-GsYhsdII?wg ztEJ}d$_7ibV;HR6G?6A2pC9?8;8Ac4g)pV&`(Rpw{I2_4RqGVx8oCSdark4)sU83l zfA|NpD=PAZQ6{M`wv^;K4rmXVL!F%jlAt!##;2Ie5LU|Pl*kc}0Z>-_#!8*%4Ta#{ zQCA=FoabeWuQQGVzI>TJiYZG6Bk0aoHrRFz*TwMPbra0PH6!(TmZ*$u*Q-D##r(d- z>UME)??`8M&D&hCceVszN2Dc{9N}VexD5FWT=D`;YdxX#ZR#kj_paKFbmg4*PcDG( z*V$5bIBf9qYEj-xf?f+AfUxhE2vRM)niWeCiv65qnKEl&MHnGiQSIwQvxoClJB^K# zROCA*X-cK=d)Fs_a$um%*&yK&+BPNyTh%Agxu*c zA#cuVMNF~Qhu1sS8FxrY{iYdj_a?$;%=zy|5W^@BwWLEUz4Z@B|q#zS>WbW zy(Tyvqu~HCQx1ynnZJ7{$;ruSVP-b4+?(nIYOJlXUCguX=sp6E_lXxaI#6ucaJ8vN zN(vMzQ_!9oCj~R7g1H=9pG=wN_2L0*t;TVVcNJ zbkr(1>^55{qxLckX>j5=eBz5DpLhcR;X2XK2_;{SYMVS$FL*O@x-4wd;IciH5WB!6 zAK7m)3*WQTPz=f*FLPuc^(@uQ4z6tzg#?9rj}kj~KdD|tHcNBy5939yvb>y}nT3VS z`T6;Hm1QFRnw02Cbkjjq`BJS4XflgEFxA>=W>Is~B2`hg6H7n8XnCVyNBwDI?h}!< z)x}hMDo<~fg^qdt5`5nY+zxw?#gtqJs^EMBl?+Pt8s7jlTX#EibY!FeoLO51gIO3D z7_|FPgIiZnR>m>`dZOt_pNvpZLZ$3bMs8T6H4wT#C6;x!K1WRJ;EqJkdrr^x|Q(XCf-NCkdr(P|?WYDan0Vi^YKwliWRa zgEav9h0`kF>PXmYN;Z>O@LJI{5q5Y;YZ|$>*gz}MdQz*+?V+DB60NVmqU7bBQ9Ev< zJ*VEoi9v$uU&8@&LFh^UUWY?>b+AAaN;UpY33aejr)5d^{BE^0G5p#&oMa2{OwC@z zu1pMZWn^C(A59M+1#w9tm+sKbgHHBk{GsXeSetb@nE;<8_$gRyEg5CfFEp5B%YGIpP#IC5ODsR)O5aSYkK#+>uPq$jt(iZ%YVQS$cIS9 zL#-mHLN|KE#2-dUL;@nRZz)u)AFC(VFU_BFPr>3$OCZg1HQ6J&@!jNL^1>Kd$SXNP zB)9^k$zvin0%cRw!%)U2(ok>bq7{K^vng+w+$eVrF3`VR;PxJPy9 zCSd#E++&NkZ^dJfJ+?&dIsgZ(-BZ$>))N}4s6AX z12e1SMBzRKh2utP_4-^0%?PMfSp9bcSpvO*F|ZyS=F82_o(0aUww!753X^>3el!=t zIpee4PPX4k7o~IHjy%%#-NZpmlk?W3+t`M)lasltt5#cETS`jG@74eea3HqJ8jk*v zKab61AsG9or_Jcdu0}Fz<_pHJm;LKxgeqz>N^Yil)oosu!6SUgN7Q}vvJ0TXJGT<1 z2Q{Yjb{YkJH)JlVi(xR0ev#7>WF18(XXoX=bpZhZVLdcW`g- zFR}T&j@gSZ_k0oa&EwF<>!31IT~@Z6VN@<(MdnfB!RPRx4Aa*MV1ax#&2W3k&CPuR zYNeG$fs>-fn|(x|fSS*c7UCogcfIoByRx|<3j(|iKb+|wV6aAI*V#m^*9pgq z??|4zY`@sPR5K<{MnI;g=iEPCAXaC9aC9swckVLO^2ldChJHwaz^!!ipb#)?`Oi-j zedkITX>Qref`hsJ!l`X1VAj(PU@bG2k3z@B#(KClI6lbI6Mx;Ty>z==%e;_QaaV^2 z2_aonNVt(3F1PNIx>IUtv_vINYAQ}A=McwYX;QuA6K&o}@jT++e+C18Mn2ku(UYsx zjQvj0MzxsvtNokX@2&XXhFfH19P9h;@abt01V2L9CSQ{on4Sw;>zO89(W6!Zl2A#G zQ`Mrli+>@at6+vkT$)dHrGJAHwe!H{BP~Vtfzh-{Ms;)a6#lifzC@kXPkgXqB)9ic z>J`-GNPWuYi5J{JD&+%x{5wqEu3J?0vI8?SnPWDVmfHV*#8OdF3ApbS=Ix1Nv4A$c z#;a|C^F@fscn=rA)5D?o$I{5vfb+IV0JM}vsm3#gJ)$izl{oO{OARH(qEcQ1X~CPa z-J+#BM>6fVKL^(qfPtezM6vK!{@Vbwmr5}W@Uqpp8YFS6p7<(sYn)L53^n_+XVGJ2 z#l>&_xy{+}ReEhr)~1c@=~<4J!83$C_PX^iR89{OqyPR@{Osr;#k@5Lw**S8)j89jB~qnLfMmDsrDThTn9FMdmFwYhc@YbgltsEzGiaqCQN7Y1Dv*3E(Gd4uPFp6 zM%NawLWS@d`mUT8L_-H)9jiDPo%eD& zMcp$7%u{)>hIZ;!Q5?N|hJwj*@_mH7*;~Ha)vdvCHw`mT+}WIGnNh1>$e~jhOoUdw zv$ctbm6aUmAQ_%!W7?g^3h!W}rP|dGt4RI3pGeN}O$s4f3MaDoMpANU*}#?!e1Cqf z&g>rbVXflAFT=2B!u>j)%)dS8pz@bf6#70{)GtSh2Tv!#{Y;H^f^p$a9>Bj+ zt9k>x9)4DW=aa-bPH=THVej+((JHUg1O9$;O3LBY)m7tiWtn@xLh^Z7X^M^BCJxE>8UjxA*{V|0=Cz!8#Tv3zQyD$$B^SlV*{Z*2ZBF{z9Ti5*gvsCn}A4?XXJHEe(3t_|d0Y#y& zRB~-Q;?oSV@6Emk4xVvrY1bp|bnO*UZ}*4!zrLUcPewXAKPak1liqI{@=#Sa%^+B= zvkszQC4Z#rz!z2M9E#+`JqPz~8?rMm_C6;HA5@L%4dJjgeA=H>0W7o9``Is~f%{x!B7XP zC{%f$pY$wX(0D3^;8WEt)?{bXP65Uy^Jr+7&+1RbbDHB$DIF+MMG;&3DilmH>JD$5 zDmMs-N4)pV(ew$Ds`kp);JwULuUkIA=GNbc=l!-<5L4`Y`{DfCVAb2Qucv)3&rezj zyzPDgKfpDXegbCvI`M*L6r4D0Tz-ml0y-k8fOUzX4{9^?TIS3gjHD8LHv#j$Je}G2 z^*D1F)azi7_7f8W1%hn9x$Q15iR9-D|F@U*U}gz)55n-+ow;aGqB12S{;Wf&g*$SA z(V01ad)n26=)>yj_uz8xS=(X~n?CBFQ}6rZ1>Bgwn=W#w-W{|OqHbn%?0yveiZMFL zGGam2db;7Y$HCvhDVLejq9P{XHm-t-LqkSU!p^_GfR2FAm?jAEL6a?AIB;!jo5PL0 z?La^ax()r*4aSg8SgQ)SIs`YK_NB?1H?T!xt@Pp2FE%_*tvm;=^r~8Wd)LDc+R~uv zPl%q^zWO;_|2*FNxLbd{5idB{&}^kI{bZT9xyWf_WT{BTrTy(#M@!=K-K%+a2~O7I z=9skF7@n|Cr_#}BL-9R6W|jv-ufAKghP8xr%P18wfYrfD-;ynaO_*fg*2!TFE~r}q z%y7Kkr5q4F2IgojL31>DRuhD`6)5Yzh_JE%mO zJf=DpPs~io%r06AjjW-xu(ciS0Hta?6R%*B{DN6Eo%hIzCuX3i&7Q$zwH>07Vo0&` z#3&jg?x{cDqR#)jJs_`CfS}&>Qr4(ro&urximMaFcLQ_&lS8Wk`^Lp_a0$|;XuU45 zF3j$L79;iX`LKwuDQJ+IwVipaS;0iHj*0L?KOx2Ir z5aJ+bLx-?LK0r$P)Y@L*>9TL}_^Sno0mJsw@U-yux33Qc@u8f^dj@qKP`q)9 z(1dTofa++m&IRR%h?Nojpj{EqR%(((-lanFqT>IOB`&h?A+_SyP1i`)jA<0M{sz`` zp%IC@C@o)+zs?yn8#xyi76!h~Q%$6}VNfJDp>$449i+_~K^@8B&XJ6Wfn*gTzw6&> zFmfK;`gIk2P3+l@Mv}$Utg01jQM818?@RM2G~av!xEiu2E&jJQSe>j7i?*4g^!BGj23c?0$`M5&x#cOy;+}z>{CK!iEr6=)@rdPI5jWu zJ=H}1zC|7=%ia-E>Q5405_CA(@LfGn7U6#n-6tuak|pem$UD<>zh^H?b^y)z{-C_l zdwoe&l#PlUQWfPjJ&fIxMDZc3A0+x-G5H{q-yuipnU8D~}F7gVg-I zj*2AU>A9hveW4a}%ci?pA+vP=nOoguKc6B6X5?0e82d(EMN-7{k`l7(xT%rqP)&Q6 z3qPb{{#rMMxGim`S~QJ(j=b-=6Lg$}o#nWVf5p@pG5suL)3v=U>VC3xcc0lqWC$Ft z1Vjins2~O8HTAJ~=6}s}K=_FM@r*i(n9Tsu^$+7 zlok09;R|>v788rAj$B}6RE8<;)S`-QKLleIB%bY=i2O#@k3b4m^o=v5YEYDG&;QF) z^A;q$W8iA>h$*wnNmNZymp1Wd+2H{7l!QhA?7l%Wu8oU~44^R)B|?$YuVev;(z2yj z@zyJgMFSmx498EgAa?^F;PaCK%d^Fcn?Qr?^Cv++W?3rUBtZMQPn>mr0ksZI>Cepw zz367g1sZCx)mO*$>&K;7gpe>UU#XrD65$~pp!-6%?w@1xu=`N@ewV!7O^oEz*s9j| zy)32{V|hFG_#oIgSAHQRYcX*B30V11!&0e7u^cFjgx7L0keri(E$W5V!9x{m{N{rk zOWoYb94ToYy1{GVY(CsH0VsMVMFBN2uBWdn63Eguzpr}C{pR>7hFJ20>t~63axKXX!+t%s{V-Py z(YPz28tnkM{Dyajy-pcY^?}@d1ON)!R}SJB0{hN7MUqV{s7hf-@XJ$`vw_aePypbgLI}Bc4cL>Mnhn{vnZV6_=kM4cWm>N3)B#sp9fhk$)!6%U1qxqZev0>))Z*)oF23)>>v$TZ1=S6;;0^E5uy>>4G$Bn93M)Q>;;MJ7Dlba&%Qi*0 z^_Jq-3@Jb=WZU&7hp_q~fvJMj1_q>R9a9B*`Vj{RJBGmg)$g=!cN-P1F_+iDj@6aB zJFFmy9fDT_2H~HDa>2bDufYjd6Wxv}xZtXLpCqoq379#vzgjnaC%KuXPeuTfY$A|- zS0A%ls;7jY`(K*^U($K3B#YX<&j(LLj+u`!@#6%iuVx*hWk|}MAW(fg>{z9lka)b{ z`@a3A?=>x85m!$X>lm*M57q$t`bwb*iaPt~rt@~u*RkBPO>gz#?Jty!kI#N0ksk61 zqv=!8L9aImemw?$f3X<9ff@7rr+34Rrx1L5I>_&|cmz>ALEkv1KwLis2Uu)cOvrfx zJ_&*td6%rhdj;8baHPQi@uIR&Omj-5uzM-k$j`+5kQ#*khH3|%$nkg2cNj8wNVqWL zN^$a0RE&BU{h=Fv^}TH@HSP6D3yX&_!>bb@a+b7?!HE7}%i)+2`8C!!Fi93w$Q9wt zS~hf!bfy?B_G+&NT&V>B>(44ZrBHG;MA~?nDMb2_4>gQPLiNgm zFh0z_E!!&4tZ?`kx&QHTN>E<}T*E3P>?1JBn+L#Dp#*8)E5jzixsF_e0N^#9r_%P? z(cC4XVRSr8xbDFss(Jzl0)1P5Q_f1W+kp}k#(%wj7*UY?w_U^dD&iS&_&84u%#a=J z%?vTpUbBh+;Ed9%8+c-T{@*xbr=CSfc)ib+zKic8)o*xBA6+a~v2VkTea-qoUI4tu zs5)Ex!r}-n{7$l)PIm=va(@E>GlA+8(n4Bd$mCC3D&&wtjDPAIBdzOyV8#yTyzuIS zxT60LX7VF$#-=Oj|A84s^J|=gh=C55A`XkJE5X)lQ}>I%PG5jPIIiV-xNE#rL5LWB zC&LZKLddSPD{A$!uiVb`Wt?bOzka!>i*4s#8$QT8V-GxT-A(lsjb>DCNz9h_+uGMV zZ+Vd*b^Xu0X19B}l_+Q_|346<^{Go8=8u;Ez>z}qZenbg%L_4kT3~rSxTh7FG?{_I~~eZQu~@p~2`0iu|AGB!s1x9Tx=2v3a$DGgk(nmALW_O5y|1 zA@qROl2g2Z=8wn$7h|dv0?@fr43v@1?AP*n>h%f01 zU+ve_?MqbO%(1LA4}yA(2H3W3a5 z0Cq}RVtT@)qe-Nn#r01HNxwiw35$|-(ZcOajmCbK z?v68iMw_0SA;M1izhI-|4zQW(DB)5!PsWIi?E0JXy6RI>D}xI@5}KQ?E2%X+|36mV zPMw6{KOe;1?7oT-x`5mKBq;y+`#0c40~s8O+$4}CI$1AzS3i8Eno2Itmuve{)(k`O|5`6t6dSMP!tu`F*) zKyX}rhwt^mV`{D%!#O>y)0+%mw!xL*TS!|>rj87`=4F2&Y# zlyenR>c2ee-_^b1$`JHk;C?v;0QbvlC-{THC&7jknaMwYl0*(``LU`+3heq2CnaYDk?b8FtVg*yws{^yz5g^Q#n~eD1x&=^u*-#=nU{usad!>BfnKgUlE81M)PEH_3<*AWQ)=nYV@MtE;P!u@3JGu!brGP?9{_PN)J;LPA- zk!>vD?H_lrZwIibbS#~%_*{H$x;#f%wguxMgMT{bV^<>=M~oycAdWX-oi4-&EgCBF zObmRe_WSuHP&mSZ?7&=u_;biUs9yZAl8q2^HN~qP*I_@_2;XUR8={BL}k7pRNKg6{U zs7WJ3`5>fG975x*1>)(GU&{~M*}S)N2)8ay5u+_FzR1WwknWg>LsvmW4g_1<$@GWm zqJ-X$ZFp^H&%{_y$exUY8j}p8ry)K^7*rr?Ng(vk*QRDJ*jQBms(Cv-ke7udQ!YVL zFURs&w8~<(K0r%L;g$U&(2eqDz4Y{S{`#%i*(_(obh_Ia2>9rLVwS@%Izat1FCc9s z(0hS8@6q&|(~a7h=YLJ%zkk2~#SMZDF~1gL*4+?ppc;1Y#c}54YfvokWL>kl4&;I$ zoA#~!f6Pd}SDDl?<5~|7CH_XAAfm?{^Rcv|&~{+K=g$n%q@<+C(3|&|QS(tdTXAEf zZVVSUx6@d>EEvm6mBy zSC8EC+ZB-9ky9keZR(1Nd{ZIUAdoPNj0~Ebf-1d*7M7N59wnn2a8Qmm(d{huf3^1| z&{(#6zmE!K2$d;BhEj$~6cP$0r4pIPB2%W!b0tHGA~I7XbILq~A}JNAkeLSaJS6k^ z-Fo-8_q*0U-}=t9);VjPXRW>V`@VRd`?>Dx`u~5^b=?Vz#tN4A9>HEa@yUlyI<>a8 z_GEc5r;P9k;`>Cmtnxe3{glL}bA1OAfZ=PWpFZC$tUzC=2qWr#FuO#ks|Re;I`=xO z!jAhbUJE0Ij=#ry7}IE1FX%@E(I5)*=Py;HAF={6W9ACbd9;>tqwcf|T%@V^T)Xeb zT+2G&>GL$t&(HU=*Upcg?I7wx6rOC07nk!NW=znh#NglL=Fc}V4ZymNvdV6biCVD| z9y>f*X}S8VS3muP*WWe#ryaI_ujM$>&OI|bYgzz5-k61Yfp4(C|IOu!L;h^5zt2w> zu3S)JJ)N;kb%#cvtC7oK*n|1(5+Gb_iYZ@SB*($dBFK zhILO?hf_9f>bJ61yobg$4`MJ}q~co&MtoQLO2@y#Op9#_JJVyU39*Y>(#gzBF-^_F zS73Ekk@!!ovkO#HQ3+{@kB`?McV*tjMnhq*ttvgznt!s?X+-FhRKXc}&MZdqhCrJuk5{x(NPM~N&VLV=g>orh_G zc}^p(?|-2{qVn$9`ov9Q=jqrtm$P*WtraW;wnXUMuC!y15Lo>v5>yQpW&;pu=p3fS5a`VB<7$^6NG&SJdxBA@u1C{H@gi#tC{|K z@s8e=%ZO0mXSI?yR_Ppx-s-lzTW|Ig&th5wLWNwUQk%`9AZ&pk}DHvhZKO1ioR7E^2>?$+$= z^fdpbn?<^R%7U!Xe<0mHwwzT~NIF~lmx2daN%luLA(6V*{DopjFUa3B;JsGm&*1M@ zR%Hj=5+6d@q4J&7`*Yp0FOB}v9Pp?AR%C!3O!H3;$?``Igm5JO4+Kgoy84G9{`aoq zFPKESO06lzD8U?9oipmpUh`9Fb&8XyDF4P5NLQ~{{gJT1o5>yiow$k*XZeSe>{Ye* zFV%(gz;>@F5fH-b-;c*Xuj4Ob2%+UKKujVD|E2JdNV5%SvJ3(f8K(JX@4&BD)oPUA^%`~ z{{th8ihT9c=Kt%5_BYqo ze=I)~bvZdXrQ~yyE>h8PaUYx|Y&RTX*JTK-MysCG`-`Cv)kbC3Zi{4WQy}v7Jk2m|#vc)#* zy9;%htd*^!p{11o!n6}BhR zd33MUF0_t2HMMwhjKH0+;inB&W(=$&s4yCCZrTV=3tSo5<30CozP(R6B`OMAlFXys zx)wT9I1V|bVpZC=mwPVcT|_j9jxJk~gQQfC>meeqtNdpmamqzXyTYr?`uW7M#>PgI zU_3s0#d+y%!s5*f&oqPM8A*b=`#P)aY&1QHehRCdbN-|M^cU4L10NsC-8z;eY1@5O z-)(?z33Q5xf{IB=W$y9lq0SLJ8M-Ct7?BLM`%M1ehp4D%f0K?)V-=lDCKB4#TFq`m zzBGA{=dLM&DM`AFKUn@%WJ{1?(YLehJKj0Cuj`Ysy*RWP!i)n%*_?hrr{C)Av?cquiL(SRs zu>|MX3BGgqm(22a8R2;endON)5%X#!t_)w?)eHMf8`IB6eU~1;Mkjt#o_pw7*V3r- z{u)-lp63up1m?EDnyq#qK6@gOXQL~g(d(&X*_8QKig-@#qy`P?hoU%p69Lof>gr@`7ryeUv(hYM%O~S@2}q<_})myRm!>4 ze>`erbkuqYVa9>j8iF50jSvA~A|P+E_G~=U6*}i0_hw=iBJuFS^#gTRsTU%)CcRQ? zu3pGLw>oL}z~^v)-W&>}}-U(khW|Cnsu6P!i>fPJ!)VscS&(h9U z($mw6s(J2A#(!zW+ueDahCLsUE+6%srZzY;Km8TpZDU-zP;MuG1I6K5FAWF z0&ni|URmI5Z*M=3AA~D8uHcdP%N}1+RenQmq^GAhe5KC75Ot@r@@T`e zz`(#vkNoD#D8m+?4lt;^YyRq7)an^=@7`uXp`XgHjsEow#l^x;S-iQs{r7Ce3az)d zx9UOPfYg@VyLK^fw6(Ont!*xGw2U*MXAtv?#hWYzw|h|=5`XXi*9D1l2h&*pcoS0O zxp08=;Q4d*sHmtShk;FBEW|c)O5aB8mxrH!eZ}&8hMAo{H+M2*$@>faFFpA$=U4_gg2()NgH%=D^5RB3br?AJ>h z+ro>TgF~Uld9*zwJUcH>&6HJMe*Wy_Mvc<0kTx5#;nINApL@R?V(+5;z_!-T_#9SU z4W1*LF4381zIk$T^3+!xh}4^cKA!j;Jh-+tA}T6vt{l-<<<=eCC53NY{WCh88JU@r zii$MVTZs2d{+IW=az}bTwRa&sefO)HnwY0z_aI%+1YnCX-WAEXym#$`_*Z zl;!1V%c`D@Vcx_&oImm_yEo{XxJYqb+@Zi=`zu#Yec6P|NW%`A#A?U-SP32hgQG{U z_qxl-RP3-}X6R_!>gJ!(Huh$qbhm(j-DtZ6ajT;?|H~TC$Ys-@)zHw`oPQ%A)ivkY zvm>^)PkW)ARnhjoegFPdxPXRe4d$tsVp~9eXXD31vDw*sBpnAIN!gVSFz4W2$MXume!UqnhJG5u%99(_VIbx%NSXa%fS6l)D8J$z!%X6k5W}iHH zvYw9apeFIIynP(j-(KB}9`jxpIjE+l_C@E?NO{JY1Zj^wyxh5_el4I)MfNT%)xy| zmFpU$X0R8f`tAoFZV?@P=Sn=V+s#IJ zxu=X%or_+)kZnjU0vMq^9?TvRtD&hGz`Fm^gVfaZBs6Bq#UX>0b8eV=AA0luor$~8U|v_~~HSr(U;dPYY#y1Tn?VP@vx<0F6e?Ah01`<+TB zPl~xh77GBDcu`qdc|${1{);G+pyt&ewu4Ha@T_UEu0o4ODs^@BP?rg}ff!O6&v|6J;9Gu&AgvqxK= zH|Aki4+ZVkb>T|BZ{8@z4Q(PPC*OYH!2KiQ+!i4;Gk-pZ!OnOu{=4F-Q}RkmR9CKC zIjgU~k&==!&-^o<9_7{FoXv^tBd0n}adYQlPst5v%v^^LbMW!;^?!W07PqjWf~dhk z0q-O6aTv~t*)H$zuY=f9Q&X=-L@=*eyS5?Mw0_5PDy-{wXUA+k4vNyz5Rbz9^I|1S zd5qJ)|M4$tiKjRIc^!KpyLvVv@uLuiy?>53B7S7N?r(qp|IVL;gn(YqFflPjXA}Lo z>s*GjqaBel-qL@q21`rJhFrUqrP-L0DB{b0xuG3ZLPq@4Y;+*=o(qFt(!`xd zW7A@e694TOX5#AbBtLq@B`UfFck;0{6)|G0tbfMkn5g%%N7fPXGiS~em6lf3)+*g= z%Fx(z@jy^&wF{i531A`fU{4PZ+ogHO&tf>zqJIS?5C8v0QEfNl#%)skN^H^|;>04N z=pc@~7$y5N{H$-sDprIgog5rq6(A*Wb<`oir;PoJK37{*FYyiXjq9J1@rT{q@6F)>NJ zNKH*m)L*<#U5gQ;XXxO8!^yzR?4Oq>8Ws_egx=NvC2cb*M)!{&#)G}A@+VGg!1DFO zzk!ahVVRHr`t=$vN6*ind>J(P+CevNtmECWgZt1SHawHttgHMm#YXmk&N6ql%#rI{ z-KfN8)70M7)lrZfhQBg&lsL+vWC#kyEZdmF$q2Y}=eV}^)|{N2vznUg4<0;-0Z#H> zSstI6v6_^$%y{zT^}y#8yX8e!V-u5yKpH^X>#3>bu+@=P+c{`)(IZyeZVlkao7&pz zr~y(^Qr$m)`hNU)_G?=kTQbMvuzUA>zSrPX%f<|TVPU_R7&dHm47huj9vDJY>##-s zR&0N$nw#ni2?@CdB$e7|K`dMJYz0|ak{gog#xsq;Y>X*q5{_9|?7kHkDCSv>^m3D7 z=j7xS-km$Yf2$6R?qb8MsJQrLRn^*S*RG9EPmBH*0~zL#mfnW^@#kq)VBzD2hFtU0 z13aa%0vb=a@Do;6R$__!`%}8j4Ei4Npgj#hRlm$Q)~Cbzo3 zeM`(eO*)Fp_C46;p~^2PsHS_oBggA^59Nn?>-M7UQd95uU(d+MXmX1X)cVBRoOaUD zF@GEscD<325oStw-B4j}?&jCQ90I8II_kx(@v3|V`3ZrKKYko*MQia52v{FC`vQxd zMa&}XsrQOkS=-%^knNdTxyK^+8XfhiXCuA*{8`lnjGwz%{6 z!h&U1TXnU9Y4OdQH!E*33f$N(=eNG8sfkwqI4mPy6nF!m=K}rap6}mzcH30nVvJ5; zWMZOv7qN#K8>&-sm#&{49e2q22B4=RCK-lnVP+^Lw;g4Y3jbqjEwB<8DtB>p-9UiTaahw-e0=W3 z2KE2Q0`T3+_6Z1h1&YEgVqYR{#>C7_t(tN=e2MJQ`3&_+d;$K_&fcv7ZBLDS3~g-o z3`LI&58uFE6UAB?&-uLWp&@~V&Rw)y2Ig%YF|Qv2wdM@X{QA{26yID#%p$KvmugP+ zwtUN-m!S@+=sCVi-SCPKifpf3vG}x*A+M_&`!U-46m4_Q{{`$nn_c z7Au{nhS$!jt3OU%-mrNGe|nPjN*?&#kt}tAbXAR&$ouzq(6Ea??Uc+X|3=IjRIB4- z-l~AUMt}mho*bcfp!{|^PLj{X-TmE@6%6$KFbGFNx3?YEc4EbZZ(6uR!ek=uFxCg9 z!t94npUwdY>HE~j?ptFA*jc&1UW!M6q_gnu_3L9UpoPAu@-4F`n^zcjhb#4Cwv^2b zP`xUf>y5b{6cp4sYX)H=rwxxEX|)Ry=T2lw&CA=8bo|b1n~J3!ht7av0x%`zm$CbE`l#^wHB5W-Z}(LB6D{?zSxM*VSn+ERJ@o8{2L^85+`KapUCykn zK*+kQJO~ZyBH$+)R8y>mmex&#N4R(G+TiNy8YyZXddc)8@cnI$Lrf@L1Y*P$*`gyZ zVn=@{UB%e*sf~|M$KBE|bK7O@ZeqemD5*bw{4o18KRb2@DHawK_-p8mpFV$nhC>gC zUG&prAk8$Jcbs~GEBRPxW1uy|A??9}X?FiIyWz!)J}7`Zyu9nc9&RKh@etQY%`9w) z%2nhtk=Uzygnqo$GW#JGdZdK?<8PMgX=>O}m({C%*~)6)g;(oofYCT49j^NNlH*3x zb8uMQbxb2>8CId9^eHri3y>c$cCu)WDtdZBU%sdfw-;|llVysFiHf?3u7kV(0NpB7 z5}2J>;3}=?I0}w#Zf=Qa4ccw}BO_UTjc*HGr!HmUzzF-{A3tuKxVK~b-o5mwk#F9; zlfx!hf{VFHlXasGy;z)^dS+BbQ9aYz(y|@;M49{SF?^$*!9l8>J9mbKhi^Z4klD08 zUO`Q53sDSe3n2zS#}@mW?*#D2AF_-YSvagoxVk|^So-J`F!V>+-L zb`yPGR%T>n6$IJyBGgzQD&}y8&6|BVy%!n4Ktmckb8FJFudp=rVk%JWDzl54-7(v(iwLDJ~sfv>pT9M&1QXaaL;smv7J*>do;7{7ut}x>*S+44`SzB$t6Qg&B)<_OEXzBCT6W(%@#85 zgp6@FA|gf1#@sw@9Lk1eT)KK!>&1M>;jbz#ixV}zSR(_AOPR`9>eNK4MJgLqzw+n1 z2$M#wLhsC_cKqVA&Mq;l`VR0Ya%X2}qk&J!l_&?sOQm?C5fut!SfEcku<&Wqr3CNg;zu-`oSZGHzRW_}yl**K zSoqmxyqtWlI)m93dZtj9ixD{Vr#~pd~G2q6!cIhP%zP=^1(FKl)NW$zo+VD z4rg%+{AZ1#=;ASk$^AQ{_8bFIIA zH#Syq!|S&jWC!PGqfrPG#qLE{3S>X$HutZnsHo#ov%)uLk~(~NreyZ|$Hg^vVg|53 z@-juRjngxWj8%fOccvq?8%#fxd?3MnR6@(uapn&2Sd-<%A`(UY94yif{dbM^o}m!G zsnwY+PMeFC@%HlZJWrrmBsc>mTUuMGK#HQTY92Xq#K+3zSBvS);8ap#V%~BmzS-N7 zUl0@PXgDEnls;_1^*4xX{6c_pOzRMx4C zIDn{*PW22Du{pzTj{3Y~NAzLS++?J+u8;%h+PF2){ym zt?L!h8d+Ug*{j130=U*=3k~s^WIDp@QMeczn;$E)X(c^#ApdsZ!UdXEeLWoev%{hW zBtTFgp+Hs_XC|0Xl7rhkoRJn67k>knBq!$vH29m76_d3Bw7qPS4ypWSpnWFxDbtSz zU&vx3t@J0|8T{~B?OG9r^#qqoZP>0`?@pXK6LI_2<<$D-U*5g|ao_an&hHL?#IBdb ze>33Cc#+mx1{G>i6l03!$}}s$snEQVAtNzo@BtSj6pa&PTqljQ29VjLAmKI?XI z)ViCW>Y(11(&p1{6pD0z5NQ%B_WjE{B&PX>pB|OTj7h-{SA@gc8UBWfPJC)58hYf zTm~8e0fCl2ZxFGkPoL5!XBkwKr^WDzTzby}UTzsYH8o`ikX}~16-E14Fnf!dvg!|< z2}RG*tp83m4J-RaQO8DZR)tvpb{N_ro6NF$VqkuiB{5zYH%u<3{BLk>VRF$MHKZ}8~_W};9w8Bbd9OF*Ak(|tj zg{5FVLmoH8$CGx6|L8;L7L9%Ze(B( zqaBS_lK)Z(;BgVhq1>9()YK#}RCLD_DZt5OKc(Yw3(;4=EJVTJICrfy>3vx6m+^^- zBNr|t_G)%5s5{>XXXiO~`znq_Fw66K(*3G2L&I*WS6M~d%q;brq@}}1>v@Mv2VO%( z#em@kDdn`$^^dT^6LAH%-mzj<5O?6v_<>6f_tFShBT}LqjDhcY6T%by9XJGJLBX>g z70CAYxDg>6Nl37worAy2!@n^z?cS>KM3;f1xpPkKrcssOK=_#mC{O4j?BLOaoJ>Vc ztpX9DHKaru}YHIVrjN3JC$ff4R&%%dL6Q=s=p+} zN;TN_zpp|VIuONxz)Q>f`>3Q!fvf9i)6DL;LR4Qu{@eV3&3=xroZch#9f zJ_mbOk(F-_yI_^X$%Jm`zSUaKF~zyJw|94KwkYZ27W5jvm+Z+$hPJ}+JX+zkBtI*? zefvX|k^R0PRzu-u+A6vreVKIBM@F)EKx80VBcO7Y#u7>X2zfD1d!d6MSvHjUP(6e2 z(=R|<3yOc8UGFHWVDR(%_oU`64XuMiW9jMXw(!hUTA|6sOgkHxS0t&qxk(ZTR|)xz zv8SF3PGz;9nPNYD_z=z!Ff}{dY`G;Dd?DWD+lEZNQuTXIsJKuxctk`t?Z5Q?1@5Jh zjZJpZWp3_s!Pf|iijs7|?PqR50TTz?mFTGLMI|M>>r`i>V-jgRM|FU)8T-;2FsD`a z@*g^+Gvo^0D^%38`Rk`+1C-xdhdfyW3l1E(BpQ&AkkH@R_w(lw`gLW;BBO4V*T)wu z+z$^wZxat%{XRj4vtn^FP~WjB`OL@CUGb$5OD{|GD&4&gN|bYF2@fkO zr^>l=+!EQN>kA&M&#rZr8!TvJnVg#9GY=}BbzIAejD|L|f=%6YnU~dy*G$lGiGAP3 z9j78c8XpmVu*`K=ILLDpm}9TU@9`bfm1OgJ{u0y9exvpz7LTB!UMJchSFgiTQuILf zMCxX!UH~i*^fyyGp9*;TC^Q{S(TWhG%r40DO{eNSE^tKkE0Lh;kWuaQ95Ek^i%MMcFISgvPb zTVQ0@U+0>qqN8ih$jTS{RU8AzV;mL+l80V!6Q&^d?%h;<^$EwVt%a48lpd&O@HN|I zn^}7XOGmefiT;`!Y0O|In2<$dI>o_QC4@LsEA8a zvIK`s=SShn)A*((gnG6*Jj=^_1(9Pfh&RdE=M`+f7a&_fhuwd10hxG@%FVnKETpZLnA5U39fb`v%H_k z#ZJ-%tlJgyC9}A+^rRQ(`>guni1`nokr$!qxF8E}yNCzcmO9ZAn9-PE`GSa)StY7( zV#udi9YOuPpv4AL&&&*s>;nq+@3m3208Y2`sb)07Q%KB%-fedHAZmB0x_eE%`!y6} zW9Lc$rGfM6j*eoRHg8riFB$c;zmL16QNG`_PVtk2o_7bS_3n1LEzK$C(oRWc<)TbX z9!jrwB$!HC^q1j$>yE9S^V1B;9B4Wg`K|Io=boUuh0-dIhI@Uksi6eoV)cSu{k9%6 z>e6-iHTmp+E*Bz@q4}<58)#Vyb`qd2%8k6a1(wai)vkmGw84vloZS3yA%vgMv?!pU zLtxyD&6agX<>VAEq&%nj@e{;>xcFhM4R6cBV-zAl3SBUOL&T>2Zm74cw=r5%37moWCnJJ zZNdFwP6pa2Z&E3h&i7ADe^ET|ApKgi636b4q z$PH+xWUT!Zr_?WMpJ4QZBal@*2JpmcK%UKe1)ccuU81a%zY8F8K2e6X?&3L6tfs4!hvh znk3k)M{XgML-gW>3jmd9B9*?>F(q0bI)MvUIoc;=UZ&@(e9k!@7i8M9Me%@U$VG^_ z{a>FY@mnp;&)iyG`k;5|(&K*3X6;Av^1O7b_oc8TDH~OE9LcEK+673@-%yi8WHa73 ze?B84WI1&e(*LQL1InA;6EPk=8)-0c`D4eFYTZ!DX7tyufU8Cxu!`1qRVHkhP4v6= z?5V*vHSQrfH`vq!gFi8k{bp^(R-y%19Nooz@%J1@aSO(=jU@0BM47=3kB8P*Ct)6F zAGf#2g|*`WyECUwEDv7Q&0ues60tJg2{#Cq5kP0%~~v zQUqC^aRO1HsQ z@vgnB$}h0Vs`%y5zDFfThM~0Ex=mtoz~21VXIX0(I%(lA353}|7?Jw!BVsKvdFLJ^my29`YQ6`aC>cs zzwR5xNy@q9x3jW@a2W03=fA%NJ~s2poxr)J-Dp_i?!N>@_V1tgC`V@mE(5B{UE(mX z2F>zOO3FoSTnz{c3cr0Lx3I7VdtL=vq~zGZGoik7Aef|Z;>67zhrzT0nS?4~S_MOh zCn9OEQgLnaMn>Cli=p1!{{7n}_K@>N%wJ_M&fC>5Uy?z4kauw@GQ05xDm?v`EjQ5a zq06oT7d?um0=xVfrY90wCu^@bI#y$P8Fwu7nh^$GgEap56@-d?p!4e}C@MQTIH2L9 zSAESf32ZW~0+;0_yHx@Kzz1m(l@|pVZcOmkSl9$THJ`tUHO+p=i3YMCgO%StIH)Mc zJ%B3~i2@qdFezM+YEVczj$N$`n>JnFck#6$XguNA!xMlzc@11)5t?ygS2zI#)n7bM zhF(V-8XC&W^QI}=;0~wPZ!(CkNLl$879Ksx-3PlRx*%w3H(`KJ108xG)1`@zqoCV%8#W5z z_oFhxpHlGhk|uHnApf6J&IHcusv-*d0%hgdm7hw)uK{(+!_sdk_jD)RcLWI_JIf+> z1Xz_9{4G|>Rm5*2hsE_KpsUqptCB>-bibCl7xF419WdvXVx^^}WrX>tYe_-OF$n*+ zkOKIyW<2F|T)MM^IxQL~VKz6YJp^v(hA9;(<(gw`tOu}KaJl7zQ&M{v6)kP`6TMO- zgm!HWPgKva>;Jf&9c%oh2-wygD5``M=x3RF4Sa`|koC)df1@VJVmckT{PpaZS^icy zIT2+I)fxt#zC}gixOq1}o!`xpj@|{hP}G4QBJqE`@yk& zKUH6dXv}3z9UUG?$*qv^bEd%CE&%gKN;;;K>0Ht$G6h6Zs=T~BX9^DJMKC!Qi7Su3 z&97OrhTxRYP6|8CeQC`&sv5tE@7*|ovj~`ivWQ84T}v1 zebST^%v~uQU<{`x-Pvx|{d|J7=Yw-;Pf_6zB%- zJpBoZ3Vo};B{wD0173Wz?0W@lnbXGl9e5ZN0iLX1!JnXJ5_|!*X9DGe zM@otvZJM^%4q^%vsHYI?;8Ad(<>mO4Kr5F$cWx8$-oDgkROyfKkS?|p@<-H|xy8j< zu>UvIJnafrV^5=ofdV2k(u?DAFvpwQY`)l{VgiC(2b0^5NeN@(8j>LTR%b1MhY;bZ zgcMFxy%x_1Bz2gCbpz1ddSK$-%Pc;QFzz$@uwhPE!Pfxuae9}zr7sbaaToP&}EEs+AP_RWV63h>PV+mR<(1H{lYAd_P-@Sz~}pu0YJz?JLz8sSUZ>3$U= zcZpsB*;N)Ckq}GPk&{2GxYvVr0xO6YHY!Z)K;R%E5_J0X>G8?Q>rgylHMV9p8wm;u zzCtpTxLo-6TNoK%c6M$94no!5zqq*g5oc>EB%P)e+PRYw=F?Fkrf6@kqN_^?zT$@t zRek=vd3kvmMe%s9#eN2rlP^~@aSexMt^Yivi6&)k*&N9G&nuOjki`Cay;)BKFeLv5A&iStE{ZW}~R*hM6 zRIQ!tJ;z=lmK7AHqN8SnCjPw+_|*zc2cQMm=$k`xasp@+-E55jGy-~#dX_dO02*06 z6C(!z{TDzUz|9S9WNr8t$ohX4sLJS@8yPqPSpLC$EpT)+vbP2>{hdP7$lBW&C>S{c zG`>;^3V)?Ha&-jIh*^E5<^S&}@ZV7kpaq~2a&;6@aMW`&0x9@I0Sy0K|1TXn+Aqhy1&G+&IN1XJmLi}4pb<23HZw4i7x~)kYo=(gXYF9CXK!R} z;P!8+|G{%}|E={a;P{_np=qRy49)cTZCt;o|4q+G`_(X3dOBu$ItDrh06i-$HS1r( zeAd=Bjt*a-uWNZD2OB4QgRh4DZO~Ws|7qsm9)7X;V*Zuh0l@Y*_J5lBcm6MVVKd9G z?g40oEx%eIXk=hx__b2f$lAow6hQa)HvO~E!O`AG&kEW#^FTw&0lNul!p(aCy9iXo zG}jLz+L_HRDFHjN^e1ErJgn4+yyyst(b44*le2R%9Y@=`R-BQtkP>AW*ORL$W9usu z;DpC{zUxx!6N%^Z+~;g-_cF)*q-$vEb#kX^EgA-jXM;~vro38(i&d}ETift$}@@X*KD^fszvS*3BDS&a8eWmLCE{W{W zj59nhag)@SIAx?Ll^EZ+O7PK_D?91Q&4;` zZJ@YMj4Q(v@K2yQ$)LsfCOWLxAN6215R5q=-Cha(14&6<42#$hJAj!#^u6S?6_#Zy znV=o6!(oNLFHGa&xvCu1FQR~(&y12A&K4}!Hnm}Vixboq>Mg1|p|BobI)7^8*!*($ zJkEzrj2OCFyu>8mw%o9Ov|@=4lRE44n(KIhxd+c4B6Y4zobPg55+cjpA6C_oF6gSBTx-fB zfi{tV*N-n*FVVOw1Ua(};L){LDbsnIHLx6AnZ0s zK4ay3dd9(|4(ig})Y{bcY3Xe9S?N08e5>B0I9x|7t12P8audxp`X+IF(%M&9;#)N3 z9twscI#Yt~SsJ}7vmo{R8QpJc5;KNVUP1+HNa>T=pb~?Q(2z0JSN$#hgoB}HN}hO>L@b#*yNN=&u_TgNQC$jBQyAQckdB+HdQn{9YGvtEEiWbY2ww#H;4?J%$#JI zH45kMe9)DfEuTa2{ep&)0AS$7qVF0jyc0>rcGm$CMX`sU!;2$mtVghQy`)SsfhJ`m z0db`JR=wm_t*(%;#16+ji@XhlLy8H0Vz7M=xb6rBka9-8s5=TkZ7$|q2BzzyY7@}f zCV}^f(8NmQn&68EL;{YY5yTd=sHJlGBnycQ(LI&O17@)h&st=1hGgGJGhGtD)j?q9 zDTlC^t$GJ z5hFZG+$es(RhEs$(24gsW2TvAMll3&i zvUR8*rT)r!Cw?ye_rUsPmgd*o%CgKxtJ^a^Hk$=h99b%7{%v{ze&&Y7)(w^?iJVw? zV!SvfE>>1o4QJ6<0{d#qbe@gQtP?QHc3@ThpSx&l!KP5(_C8Xl@xT3y8@*|E!{wCL zNJfcSb9U$NWjh(gleNO+WH`O(^G5_yKX&6ps{KLn5}_%DiB+|^%cRW^vZ@1bM+coG4cj!kK4<1;o3?tAO44r4 zUdk%%2SiJx)7hH!DEC-d1SOF71fn8;~JjW=5dFP^#`yMdAry*j}VS;TD# zfwq3NH&zM9Z<0=&fhF$!I&W_~A7e+4E-6h8N(Pz}VLfKrl6jG7?75kF2j~xBtryr4Os=r zYYTDLsjb`v(wWZa-3gmp%MP4zRh5BS7Lu=O0|~eN&C+P)?MAoHQb!Ob={OtHaHs<2 zK^expwg21_aSfmLKG}#>6HU@LG&ev#~|)ds#BTgh8-<3Vp65>OtI( zgSxn4;WN8Y&lhzm18y!c4^x%6Ns7>(d)5Qsfo!P(y4098-&JxB+r!9Y+GQ@28!21e zHq2>zamV_0)YL|kbIG$_rR*iepUfz%yLX}$8&Iba9z&T9`SiwaIB##oge=}e+;PIw zVVaHS4<}NHD`L(yxy^iY>zg3o7HBC$j+_(C$rY;UV61AbZMr@@C5VeG32Vt5#EIEM zxNfYruPf7Ia{&o^QE?|Z50GQqxr%!<5cCYxz#n53rP;?>x+&MdnX#In# zX&*M~$MFNE7+Jle!J67)!G$&y0x83PS&cVUh9f1(dH)!I^wUD1r7=^Cc7jTCx!tPZNQDcWU z1EUm8G~OEH**Th~W}u4|#D0h55MkPgf_7`vw;4Dc7FWv}(B~Ssv#BX7RwK7~p6~P& zup;EW=Yr<h5puuUkR!&s?eV&zbL!tyyEm~^g?$hQ@^zr$l+^2Le=ZdpcYF{$k&S}}2Y zGyoFo%Lz;qV6UW?DwNX{L85fjl(hT!2ben9hY*K!;jf2)K0|_2kHi79sL*Tt7$JQJ zqMaxCO+&7U@-g4Q?lHysRSj$Gqsfs0-9u8eufN2svPg>IMQ9J{B$bTTzoOKC`aLc@ z`g`^-^XZI!`-l=qk-9xn++fKjgbht6r``}4j5BU(@v3={VntRjvUr4BD`V<$J!!Nu zaak#;xfl!i_4@6Xc;LdUayrfEE7D1SKC2nmZO=?x7{_D~Xo|jwkMM!l-uN_{@S$6a zjVL45 zBM)8#xC^~sGpE0JUE$~6KFd3KkXBp9Z6w}U!9_K3YTY-)N+K18)>4HCxstWI4^MsN zbq_~d6J}-o*VqEaXKvJ9 z!+_i~4Vl)*SI0C;>^Cq$H2agH-VJWfI#q;AiCyvl;?lWU>oXVb% zC)uuPIEjz|qqsMS2#4Sk0yh3gbg#}Lzz8`93fykd%uxs|kzv@UNdIX&_GXwwv81Vc4|I^}j^+Z$*plpKX7MP|*`dNprYIzI?j-2hNt) zB=X%Qa$f}W%r$@fCRP%_c&>CZNmYs|NQq_KLW5EgFVTxQ{AB7tQ=y^C zP`U+(>F2|g_?sPu9AO^|viA=|rm{MM!xc3w!rb_6+-mE7;8!y1z`_&SVrJfL zt~2@wJ8oTQ0?SPizZNA~a0N3Tpr7Iz`a+g3*w@*_C;m+QF0;{izR#y4rl>Tc*BIla zi;yy8R`KkAUV`yTBfOMEQGoyk0VLOuf^^4K>P{EPFcN$f{mx{~zkL5J{^!TP(f{@QHz)M}dj1Fa zzb@vllK$HNdj1DQ&%*d0H#0Lc;LD&{Sy=&p?XO6|#KiQE{f+%YoSq)Q^4I=b<=>nv zY^(rgrmr|X^Ov9QYy9c}9V>u|jS-rakrBZ3Wz2u^%wHT>*#LC(UtM6O|7siC*M@9N z09HC?04pO4fSLAdv%g?^rZ2Me05;aYi5R{}u|l)ZfBFAI@c%#lw=l-9b^q7??KHzz zA%E@f?fSP#2p6x$QI=ZjjSy-3=TF^8K zjz(6>Uljk5ZA=`#x(1+86*V$5F?IZh_{d2qjK?v(vnOV94$OLSxY@PmULsDOwki9kemuU7S(U}?WS(|(jr=nw| zre%bt;rkEozr_Am9{Z=Ne{21ZnDn>$|LRKgUyY?@p!;`92Vi7lVfc3jpl4%XV1lOk zf9X zg)$^)88tOM zA2vPJ9h4D3um$Hx15M!+-jT8he;4-+XIsAZfj81nAXO27L<9m+ z^^4+Tj*caqWF`SX0`1=e8Hr)|w&M&R`t;C$!sJ4}Jv#yM3U6=4yx!jR1#~m}U^6o^ zH#Rgf)Z0O>r2rw8}(r>93}e%NnL4vE8a2#ZuNfQl4{4Doi>rACE?Rx~gT4~`&#AK>%JRf7(r-yCeDeY9&! zU}>meO?6Q!R7Zs!gCd}qaF8frRd+Cm%HK_)e+#?`P4mkHIvZcd#y;Z(8pZ{(XJ9sQ zcl8Tz!})`7ghv|~*i@2Lfz$oH7jz$v8JzEf@7j^k5g0fVJCkoSyNlhsN!FLw7ixJK zO84u|uH|xa;^uAm^Kdn4nXXFyE?keal~gb*0(S?_(1;{!ucGyw^3AG zUWD5o>F$No-9FTX0P^F72O=fq=ze{Ke3N>oS@p?<4&LUOdpQV;XD)68y7)9gc((MR z2cm6xQ~N&e(+CT<-J}APx^Ia;01G0^v)BpGz)?rHPqY1b3IDV=?6dIRr|`ie@u@=| z#-XA1j>P-k73u?tt{zaa{t4@+SXYNq$Y5xN|E_mirRp^OiK+g>5X8ChBSm9&1aX#- zpV>H;-2|wXj=t{w7>FZ0V1t(gT9?$|_H$u22Yw-hyB=iC_q!!d4?+Q?eRSG$jj~1m6mr9Bud(;C0Uey<_oE-3&;1ZUgOIf~QyEBgyr_^|NJeXsE4q zdM^R(T|t61!xjh;f#qMGo}BDiJjbg+P&w6ojorJ1Rb|D)`84dl=Yd$99E>3bNwf7q zdV(`C@*e+00{h5%A%wt(K8Dj!p@==+Yg1MG6#QhV`3PS52*l_4jH>wzOXFo8B^$ z!yJ1K=j?taGyK~Cgzx1Cy*Do1H#Jer+@W%Vkk~*(}4g7`7{)Ie$LGo|D zAaY(`kW#L%bn{=Cs4@S-CWab7M}$siKtAN?8)LWzCT?U`q!H#OmXBE=Pjm8o&Wc1* z&oAlSWv6}m&V2eBV^SvI#4zQln4_f;kKfm1w-4V2ZeJC*gRAKpY8#xM-hm!-{#^DT z=m(CVg9Vo&)@|+jjdyq9d~$;1S%Q@rO!L53e?WaQyyfXzjpJ%214?`{^*$FKrveZk zgu4>CW7BRCfap8Cdz!t|CaAl%*Sn@#bua;P>eO9zGXB)B0?V*ghx`MP7AyC%49qS?~f+KAC?P zykE9~KINi*tk!(mbC(ABD3f0CQKq7&r@hmg`600H_$=GxJn<1NW3Z$1&wd)60pSt( z*Cf@=&)NM`4S3h_|M5ht@F_71f;V{DB}8?lH~FEl2*TFjz{ZZ!Vhk&)yRrm#9dn;K4w`cgw(f^7t ze-t_UA^h6w+W(3;y-8ex;4u&JfYZcgyz{&s>e+ERFWYp9VRCS=^0w~BY`x>(?9#l( ze69ogt@93&)hRR%w)_3S1JR)V6&R|8(Fuo7S=AUcVD21J%ONLqeoI(q)KYRB z{{3FVHR6J9EXQS4MeAa=#NwPpj$MO9LmArEgvJFCE@rYrEptC?h@O&4JbMJ|mbj&= zl`bT(Pq5%1Cv1=tpF+KOTNiF0H^o0Iq|$>99>-a9q*g*VXNwq*t{oPfdFQ=_lt5{F zW$Pdv65&k|+_m|~IARc*C%jfcEl4XMOgpx;9LftB)G>Om`uH=$ddx=X>XB7AmraMq z53q>kBm1-3ejrI2PTtsLfqr>*!RJ8 z72o)9pOY zjr7#{MFm2l5h3z$GN&l0XAw5^MQoSLZt@z(l=6Yy6S0)9n*xRdG+(MOnFncNkrvW4LOXg)hhLj8I;1a;`Xt#O8IPcw+uQWl;fuKta-B?<~p z-g#SjjV6l7j#TYs7Rp>t1u3>zK{qPuWtRWy*mqN6|LB#trvkY;ulQBKi2?Y5QYLY- z$P~z*#R*;#@!``mUPZ5p;y~ zbrm+lPy#juR@%01eDYM7jdpd#*i{I+l&9iAus1rN=GGJHy$dG^UkL zA_RL)ZH233BmGKZK75{Uu3-lq25Jw;9XPPsZC!!n=!@+r1SI|2DQ|&8B=e~iitq^t znm-^U9-F(>JZcm3s`tyjK8>h(JU3QU^b{pW=<#kDTgSD-`A!l%V;kM+DK|Wru)j^7 zQ@4a)9A!&QZNUtXj?!F0TE}W zq?;-U)BNR%8C3jM%0)oPTCFE__10+Vx!gd-B(2WS(BsN6SYDCt8RG3HSTUAdMzjop z>y6zM4O!?NmIhw$(wwr}3cC0*AGv!1r7Pj~n;>%VwBDAw9WAyxxG$^kG{yIrsLOm4c z(Hd^GVI$sJ6aL|-h|a!!4cy@TZR1rJEqhe(xJa6Jili0epj#o|P7n1XJZ*MItaS#mPz@^g3w+#!!{+ou>Rj#`CrLLS|P%8kwKZ5O;Aj@~V%TWDKgH!iwxm_dZ%!$FklydlZ* z&}XETh-2qnf2hd0GeZ;0_8pykS|)!z#c0`dDQofzZ9Jccc61qIv-NP9%l#+Dr?_?8VBuqVzNlq??B0$(! zZBlnG&0l79>CYxaCb$ii9DCKoM{c(OEgcI;4|*CUpT+iIq_jY-K%C|QzrM-J*3wXS zF0N2rwN^&uL`EGuiTn_v9o-o6|KTkByU1~$@!+Z~vT=`$TbMet@^vx)p*|0nzHS#V z+wJ!%qbEon_PV12ig&i?L70$T2DD0k30*kDWRWJIEvc7g%o76g-E31`%`2ZrHaqf% zk6zMel4y9$S`2kglD`B@5o3a93yKUa>~GW2|>N3}r- zHM+!Al!VVrQ3Rp#pimM+F!FZ^oArbByJ>5WlINSFmAe+8A#mX2TgQlVzQq*I6DKMr z8k=)uE-E!%x~QNQkIwoTZ?E!r4_nELRb6xQ5(ycDYgj2nz7ZuAU&!JRGU%}Ga!9^lHA+6Q) zQz3ZLJ2Pz|5}~95d`O#`FR}_=E`;9NTz!2HBk>zYu<#ASTTu}_A#=>#CAG%bcc1Tc zPFJE_P!IkWjL5KVgU>tKVrq;yht`Wt@Qgw>LD8%DYPk?p8-=kq_Nn`s4`)Q7??Y&o zbv*#0!tYm0Ea4BA8#LP72*pAT<};eMEb|L(Fc!_HBpmI8W?(ViRJj-u4>fbOXgjQ{ zvv7h3;|7r-6@BrX`LeyV2c9%q)ExP;29w)vd=T*$%*38~=7h|D99VfxN8l?VrpEY| z4#;sRN>COZ7hhW~So)qdCOe>OmwZRuhC*8tn@j458ar(_FL->+Cs;1Rei=m!*GP}l zR|{WhHO(aD?7UNn1=V7hO~6h`XqoQfB}_lV`r}eup9oBual(0R3tAuEC=70;cB0f+ zha&dcP6go~@jX(LU{hu#bQ{dbzxl5wYw>92&PxXNI*$0=<4=WLF$sH4m$R=<4RYZj z)5ZnhL;bpM!X<=3Mh;fkYd7n9mcoA6lhetXY~pg3eerAB^)^l+DP_G*D?uJb3fp2k zYBn$;jx>4B;#xHK$TBGy$&i0unKLyr-I3?b_t?D~FyDG$MaXBNjA<)3f3-{Ap~$I5 z@CVB)rwn;#2!F#afOUy~GNQCnz!M|FN-5 zAz^w|4J!1e2<}IPm7&48$CCl~IAfH{6j{R{hI}s{CM`qw-g#SHu#9@Ef`LqO+Ar-x z15tP6spfr3{EB4j#-4GU+IAMe^nn3mX_fq3M(>-*bAHjDb&9=?Bc<*W{YRh}E51)=I z1uAZ;O=`GD{+iU2TqCu%uyI`eySOCLx=KuAItdvX?pDG*yN+1c#IhT%%x3n~jxi6( zof9ve$K(7(sWTLxK`kwh+l>9}ul;P{b_WjVtI1T~W3n#z{)jX;e&8s^LeX+t6f1j> zBD>t$8X93<#80(F2fb1~+xz*ZcY+ zxODG{vGfBYo;Vf$zDs_=joY>n`=4VZSlrdLK9U4od5kjNzfhlBwK~AOB+mF-l6_0Y znX4bP*yu@40bH@&=|tGUxq{KOhJ*A8pv7Ur#*|08s$_!43kYW#f(=h6&Rh9!Xx>sr z_Qcb3C!V5jlFSm|C~R$ycRBJ3x=k&mEFMebihVZNOD+1cbd>TBj}7sOXlh3p8PZop z^QKFfFsDtz&jyza?R>P|G%Ao)M@M--my|EKh0kdgoMhti!#XvZE<5a{ zUIQM0Kg6O$xLE-$A156^wre!kN+dvi@vbxViyC)dbr~vQGVj}J*eXlpqcU9WUF^iW zCc`FW+;J?XWNtS@#E@Z#bNw7Cx?~r8k%&@2?XY)6Kuy%#I)SHb?KxUc%zMNkh?ayS zP!%PdKlplkG&v;q4HJL^OYsA|w+-M*(8Lp74xVL+-o2a>DCHBYF_;ZR-CLN2`@0S7 zCz&X_jkOjZSJAe0aCkR6GVe%H%SG&UnAoXJdBi`Hi_0$e>b7~vE&o8f1{Y9s73=pi zFF`gh(hK@ ziILTPk&Qn#ZloTp3L8`Bx!hAaADx}qTIUY8XV?!a+^Kb2^YCgu8`l7yuFZwcL&e*L zJ7rGTzTlZEvWJzV(?-;l()@P~B)kcN4$!aUZowL;F^1;QgcOi8`BNFO5kzK}uc!4Q z&m!*HRnxRl*1DjWrM0+MBv4%JuRZ%%3OKv1d;FGP$w}ro&pgs?pCO)T6A1;Mghl@R z!aqRA-m8pd%uuB1(K3QVW=O!)Z)=eUUJY79AJRSpQudFOn=~}1?2H?EQxY+PivhkL z64?JaMgs;bG!tNCA89zz+!I&Uch9=dk^4tRmXk{w3KLhx(z@~Kl^}$~iM}S-`=?f- zr)@gORO&ag=LJFM>4fN^hWpYkx|2ip7s_-y4nnSbgsYM@99~sM{c_5S~z^kc=)*rfY3U ziQ%%;*%O2F!RH>EpU9Z4@6iOITJKce@iz__OdZTkJFi1N@Y&+xt5&TF>{&BX%W{^^m^|De zV!=ZA_5hs4AXS21d~HdS`+Z>ZVlo@8-)%{hwluHlxTO#2#b6P0;NtgjeMWTXZWMnz z^A+|}Im?h?4zz+H`=-Nodf(*hYswpBxBCZhCJ&ny9!+BlJ8 zSq>z4$2i2CvSLfo&u^l$Vh9FNK8J@ljmyBg9xRsK;_XnE8sxghRGNroD5w0rq0U*7 zJjn%Ub)gp@WSXs+GBlslB&z51%6qW!BOZrYoG5i-dkEGv<4g1W6H{7zWYQ)wr3@LX zDZ$ibIuxm$0+vI}yK8hi8oTg<#P;L58%LKxm)mXl{SKlHb8iq2c*I zH)=I@Qrj_cb^7)sUbhPX`&q3UMpj*BVB>X7b2^%(ayaYneJOE$`ExdxmQ9k-;xb)W zTth5H9Yv!BqOM9E1WJ|IQ?~}rbV2cZ4!`HW9{F&snS~Z>#;A*~I;h!Sf+Ru&?1PTD(DBIoXMH(neVMjqldvkU&%dZXj5*0!qIepgs z6mL{{eD1^2jWKS`zkfA!cZq}@eh05V+_}{bB(qgXjTwZwi6vCeB81mf*t+k*V9Bso zymkX;jI`O=&tAXNYG9SE&mE)@&tQXw_halF=$fLu+|d}l!;Ndel``_!8By{Z_+>EX zLy^=h$h>oLbU(t-L;N0oJ^s%TpvFx*glq=7s-~;_AJUfkY7L`4XiX%bL z7SQs@yf;k-@#Y61>JB{S=?j+;tbx~?dWH&rB12=>13k!k8;T{p`{Kzblw4k3>KqZI z3l{LlwLVynC?G&NNB|6%%3S1k^Cg@ zBqbm5;DkG{8IB!y3G90S zQpAw1-HQU#Las}d(6?OKsfhSIkp%d$=drB&d?bK#!o zEw5szvkON&hU@%lC#QlMs8UhC(w^==V@cU7`2upgq3HreJ!*$L2~et9Z56Z+^H~s` z@#)eyM!(4DM=yv25lhx|^FX#$7@sS6x%X1AX(#M4(pbG{a#{JYrs{2h4WtAGi@lo{8G#MK?Fx;OfCre>H_CfJcmd=rKmc$~rx~_F;y-J1s+xMw*QIwYh=(478r82H7ae62; zKiKYR-Pn9Div+$ zOq7XQZUj9Ifw{&%!|}N(Zl5=9rzEjqX-u6u$1XLSLS~o`2CuFdRol_+G||k`=b#Lh zZhVZDB^SJ{um~dY;tUIW{ame(6Xvr0ryl4udV>uhhr+JO`E~$j{>)^K(rE)8H(z~3+NO(7-w2C*_)nBDvIGF>3;+|P)(L~F(EUmmD z1filOMCrg<(mKWPCzRkzC@Eps;M5xl!a69UYxP3h3DXEtCu*4!*r9P$H=RM`zD#_K zgnJbD>m=iN47Utx19*#Avdx54)0FniC^=hVviI8 z+%|Chb2*6*OLx+XiGJ7?)-bii9<(ihWO!Jai~MS!OWi1A!SAKm4Ra+NgR+_oQ9i(F zOGeu9Q}gceEv#>PC){n6C<%<-lYm=8KTeg<1rnwaw6I zFm5SOawH++Nk>#yRTk?#$fBSHt#ByN!spRLXJ7oOW0wqcO?C((z6^ZpjV?YvMyC04 zC85a4OZ#k%*H*aK6hHY$b8zviMS*f=x3UG$TN*`^*@Wn0 zbgJiv7Hq1`+SUV1?b$2Efwtnzuxl*@HNtuq6OVyg>Pu)3*Pzfa$^_`XK~lW)a-%yq zRrW)Q)nW0IPH9hZ10rms5~KG$AUOj^$rBH8PqTxk(=&Z%PNJ&L6W%n4jsY1MCh;JFiz@QQ!;l3h5M)!2R;$TP!Z=1aRrsiXnsj%&L+|JyS(3T zxxzAM59(sxl1p8EeV!Ar`Xyo^&PU;KX{}O!2t@I#ii^APp-Y#@28XF9B3{^_IN`XT zxt6|fV0f>eudYT_O?f@{S(89?YH~yE9vvTo+-n>yAYyS_)`dzQ*!@Z|mTC3ma4jsC zUlHIINrK33!H_N8hK%)W?$=zxp;UppmC_dU<3hCiwM-|s#s4n%^Cx2UP2z!bcpGOL z{K=%-FA>o>Vai~{A?_G%OpgWHo66xD{UHUcKQLX!o|2`0gj?`iE+01&YFPyB<)K5? zE(J1%EmUjDa%XJ|>i1fQhOXXRnJ_=5F_tp8jVwd(@fw@cYSp2&fgY{Gc<$e^DtS-X z)SF|Qv@P6~`CDfR-nN}&K8$jkmJDI-4%ENJrrPU{&W|Gv1HGVy(lrGbibG7geVUNxT(l2)(6Ou@Lpp` zENeRKOEiuCUiIxRnR+Jub~{t7yyFl7-sV>@zh8*WmGDK!B zLoDJZZ~l(~P2Gd4e)fS3B@ppLf!;GSD*0Vyhi1+e`SJCXk|nlS~m(lUkU zJ(XIJjl9ew^@-$Lz_~IePpGn149j!-g`q((+iY&G>%m0cOJw7T<;@j!1089VIZpO4 z6&>y4g5^-8ag=K;&GKX2oXkl^$;S4AhP$E}8y4GSwcWMrXxNUw%lmuuAE#uuR#)d= z1?Q<9<0F8fWr=*fH_s=Dv9&$lH?L2*cRoKhE~Q9@5yM`Y;3rNN@}sf=B?gMVvnRK4 zq6sAwJmK$xfqX=I+51{$0M6nt0YJk?`l17#LTqP${G%AY&C+<~UMASsgc94>7?oxR zxmW(p@7sfJ{q+Lu8WP_!g9d- zYN}cX&<869XawZo8-#IgGrz?Jxi-}5Znw2CnYB@s#~+dISxnBbq4kVcf2J2Jg2rT^ zJ^XU3k(uCo^xk%@j7XW^c2Z7wqv@_%@HX)c5)>Y)eerF6&?ouX=`#a0CMIP@vf=Ny zZdF%OPdoCzDyJ0YblK-OuP|u$%HZb4RT0T#CmY>;s;a$?dl93)xUObZwQkJ#ld4i%M+tWIrcr~;wa<(C4db7aajNL zovrB#F%KUh^m;M7hc-H^DZh>#X2)AK zp4&u*7jdb3!V}x)wmihsU4hA{=A~z!1aD!dPy5@;LyoWAo>EOBEDg{qn#mZy*4Im5lBtJyQetu>JK(aPkw z<|lN9VP4f0@zBUoGGw+Om0~p2i64k*bB!72$zGoiN&MJ>&8e;8sokooL;w|pk+{Bg za@TKjSl)aS^&NY>K>0c zsYT`JZv>lsK<8`Lm7;i`r2X;wO1rj7Nool=9@;S2!Lq*KWLTtW)|L8pe-O;lSx8Q} zhtH%*@TBD{3B{{u*U#kFUK$EV;R6U%RGpuR0qwTcwr{3O$3$itF5p($Alz~5x(o%2 zeK=k+R-)WW?QhO4u@KubYRt0ijCwYF3A0RQ*KBYJb*`5)z?H&<^ART0L)_f3ht4@P znD}_=6QlZI56IgS?FA~UY`Xc(BNxnGV=?lXDBI5`26W}O&XT*OB3AvT<0H442s`1a zq|Wd}tF50wM+K}kQttV+_gQ5*B5)Hu0pe~CuUHJgX5}4tFc>or)$3eFd0Etw;QD7>(Jy~9iy!XYom%=8kPsxKvOU_Etut?MKAYY}<|LWXtiXTHOoTPL z(=Xln&QL&>mSh-24iuP?)Nkb=Bo#0NPDw(IYssHx858MGh#g{MxoFj<3L=Nyv_+9W*^aqg-OeLs9lUcf6o8Wnz_WO($#&++xXpZdRkeHI(F*!Qa^`+}O=XRW6_bx5s zhQVq%nHCs7pM>EHzP(ncqxq@d5(k5jV_i_}V?*q+sMoYgnBC_bBUZJw7yU|`80huN zJZG?_Xu%+U41iaL?DAjQiOw%b-vO0Q1|pa!TG}a>pN5*o178En@Nu=2;sgil=q2r| zIgVH*muZi9%C@^iF@-rWJNjuX)ZJ}H*_@%=Vr-Mnwe9{>e4HV~`)cJvO+T^tT+f%7 z(v4GY^YFXUiAs#)C-ds=@uXsxiP`m)A8OPDEgthNe*n|Lnz()f z(Rj+_n`JV;RYCNf%JiTp;N9{q4~4sYEj-&(vI}FhVvY2C1yL^(>)uY-307R+1#355 z_EG`wUGW85D*eSY8MLI7U?%71*ZLlqpc$Q?w+rq8`FY*-IgeQjqg~aDu+@xs|9>-ryPNAE| zLx0F8Wzi>0(k{paV0q94;#OLZ$d|!Tj2_J-+~rEsGmUdjRv_6Vlm4Wj(6oX%od~xi zZNp^lCwspzF_e_L_;j?!$m5JESf%sm%A@DYZ5Wo8izN8YePkaf)!#MB)%M0uswost zpqyhIGN6{wysl9}0e@&OqAjty35Sh&X@8TLr?$>BDCA2q8H#^eG(w-AoDgE<4kJ7k zAe+R@yq39pQY1%m8qu3<7AMp2%~Av<0%M^;Ps^$k(h4fb(8DynOvf3gf=s{Ts3k6$_{oy84b6~S(^_Ysg7G&Byb>iu>mFR(wL78(W2R@g6kdlB9&Pj4;#Tc=EfN$*FwWK zJ%R`kC?XLq0n*%DRzaHhWzRUf5n}>_P^sY4?D@WX1x_PnX0bY^MklT$nhxEU5NJ6PKSIc0At z`2PSfK+nIT1n*(BYLFL^)9i$LaBlhIvhKrXh3!cz#4AESUj8Uq&Mh*@R^?J9o;Rhi zaGK#s=pW`!9W=STVzHiy@zf^{IyE)fO;4DW%@@!rW<3&!z_CPaQE7dDcbLq{2`e_ti9dtGnDj)l+Z6ezJhe}IGLm1zPC0s%nQ$B1)b5t`bz_lTN%-v z`8`v_nO=@O5l3WLj&ZLVm$@_c8MMs0HqD}OOgaFwmjyrv z9wo&|w7(hjQu*#Qj}ChOZr#CNk~KMs`$?t1f&1XeaJ^-d3nv&+2X1FK!qs#Sbcu$u zgylzWd6ReLD1&r|8aV5AIw>nVOu5O`A8A0X z1ndQ8qs`vBbTkG9K*D~zgIdWHa=liK(E1(KM7c@~pCiwfR!Wd9#Dsd@QCVnTGl&7a zLr+Zh)h=#V!X~uX^r%@r-|l0(*3c=*cofD>o^NDC#4hHSm7DVqfQU8ddmQIi!?tV< z!m10jdCRb-4LI0iSu0cw=lLI>-UcA_xp3s77fAELIGlQOHSN*jo${H6snDwO3sY)# zXpl|wMj4O9%1D(yDiHavIKCS8~-#6YN_K>1}rJ}Ce+6tz8H zg_N)sGFpvZ=-Dt7?Y4Ic7VHBdXYjH0tr&mJda)EYl|^~f#I_rh0c=pHygtsNO5(#p zR{W}oE3^^u9jhq{`?GA_=x$#dzGVw)NW_~&J@A(zs)iLClPgw~9IM99*~n}87E<)* zxs~98*G6K4_u&OUdKvApVZC1kV?T}K+Z?>?ZdUo!Ng>duY$j>hE9Mon{cKXLc+D5a zS8w(HSrh47cBqjvB4rP3E%mSN*VH$GdQu~BC0I3i?2%CH((RR!*b|9px-MAKpW3H< z5o=eshFLxYq$pezoz~y6#e6y?XRd+LeX5PCi9j|z)!l+{eBt4k?I9gk*keN)ESW~b zRAtwaNEAWc1ka!)xesW-go00^FYKTowr0Vz<#wMf(e~5l z(ZDZkA6e-Tk_58m7UP^WnJnLR`JDLxD+XDzDwtI{>v>F5a3Lc0-wg1|)VO)xAugrtq_Ik`1=yv|$ zGpQ8xMjonXYSKkJ7=gisjucvQ6^dl<=-s_+vQf(`GTPPZMuWF96>NfH6HVSLP)jeW z*!}fQ3y8|z4{YXM`7Lk@s2z~d4H_)SpTvkRT-W#OYTXLjf6_kA{uyq~&Kkoe!dD1$ zDM5G&HRAY8T6KQwf?W=ZA!uP1XQHf$4(5CY>D7n6D|)(kY-}}qKJ{#OE1_;AWn;1O zGQFP#S*CJ$Y|Yl_Xq!cWD?oGKRU0cqC2_1*qYIT`9s$WWR%or{YPc(?jYD)y*=f8) z(C_>*GHuP$sV7(iHP(oa(Y%B>)}rVTFu~FpuzeiPg~dpi@RLKE0h7csc5^559 zY|%yLqi+0i6Jh8Sp9)V6CvK}rNWPWGSp!Kna{}qG;a;bk%dF;S@@82g;hpSkcshbi zkNX5QO?PH8G868FcXlz0q{|CCXdgM?>f&0Cdd10pSscP3Ui@2peEdob;Zkg?xPgz- zZ2fTgegv`0o=Ru$LxVB^^qp@<%(O3S z+C{`u3kzhUYBV-zxn3YSUHZOQ>U{svY(xTW1DSB=D91;vHJP6~5yYQ~hnjYDL&=aDY&{QRF? z7n`4~bxt~>VFE~|u^5j`56%GW8VJ=dhb-Z%x=jQfhR#HV8OopePafBGJnhx6_a2WV zB& z{Hh3eG!z57W$3Zn{+gZs?J$akMp9#hXk)Njg!< zZhZ6HE}7PHeEqMUWzDFP{p@XY!=RV%D(hXBC;9J`+tn9inP&w1>B4tEQpP?{Ygflp|R%BPK}MU!(Wzjv)t+ZrV?p)04PP_YpIu^6Jv4 zx_D>`9*`AbYu+fjAQRsMnAK+!jtTp`)xdjFdHcjzuUE#UMAETx`As&zD8oZ>u~2&H z3`QvvTBEAJ^DkQV=s&rALVZ*Gj%^8BZFXf~dc1lyQH!@%f0h)}1xXLSDtVO~*J2rN zp#F&JvkkCYbS=U=tf1^01wpX-))~gB+!>vxv4t2kMpoWLo^*~G{}^kbMMQJI5~J=D zyuc_$Q)#ziL~hj533gGF(~?r65G#@}=6Ebs^#RNy zq*tGCQ%S`sCoN-i)c>^d0cz@v`qL-)Rdw`O2e>i_$qO^r(JOE@i2g#M;;F)G2GbH6 zey^VjVbCp;H>@G*ABT`@vU7AMsLPR6?tMwshFQNglD~uX-2`?SrRwg8!eZv&3VV#} zd4|~OZ5g(5TgDeHv|FoDF-U4AhQSaV<9ESG`MpZyK|tDr9ax!2u2a8w-65Vl%uR%c zKKYFzocLQfz6qkuco7E?rExRPtJlEgQl+Vx5L%2^h#2qK@6t?bW> z+18pGEB9H_+x@WWV}~cuY8;p=V{zK(>x=jE*I;P9^33duTIp{>4kk{09nv} z`Y5rU$Ob`m5=vZrJvVUacs|zsGYrjPU2=8MNE3Gh-ks#`FXA^}LyHP{?7vtgNAxIS zs!X3qzYP~)MJoy4tO{)o_H##J_Y~g>HlS+F~)6CVfQHEt}|7 z{mDKUD%)|uA_2$v->;woam)F8U6%*hJ552K^l2Gh1-HKVoQ*QM z2$qcW{T{E;o3Q2*x)Hn3+zK@rc&ev%%WKtZ(UFFVnKwTYJSL?%OR9NY?fRKhIOO$% zlACyctVrOaU7ZJyhJR}4ltz8wjBfEEoJ``dYQ?g0EHS#W4{L4o*|n2mGi&~J?DYYm z3evNIgo4!&$&n%yCTHa`V<;3_!n^niG;~R)dnZ0tAp-rdr@aA%rk!>@VO*IhX4Dx( zP@_0h<@}_vJIKzVD;;t(`^^{l07f0%$}}JyDc5Vajrueatc4v)+K3obCWfWTE7}m6 z47%~0(bwVXL%nZSC18{0&}F^1*V3`3bKN9+W1x5hXu?MKuf0l8F~erziWY`iXy{gR zzZK{(*=o;~9_D&;ZH8$sq3A&0Vd!79UW?a`>ce9U8#o)cDb--fmb<~%o;UzU+Do`i z;Rk80MKU>%VUesxu^G+CoHn*@eF11iU;6iu-gNfsmnfy+Zm_Vs_|U-WqRwqu$x63Z z5PV;yU2u;zwMN>#3KDaC(?)enx>`%CRBd>q6_B1$n9CAWq+^?U&6_MqeaYv> zT*`IVTaPIwT`i*Egg9PJXElZ_J6qZ17n~|kl={basLVLE{N%is$(8+z zb@gx8@A zmD8QBFX?883&fLjC6peMIdKbD`~Ks!KfVW*Ny;-E{HFY!+Gj3NwqvwZOpk zptUJBDdKjHA%*$Y#%3s{<}0a#-N$b@ zxbVe)a`vz@E%AjbFyk38uDQ+iqCDMC9{Se&u8B5}#-``|XeNe+-wt=!2A}J$@-n6;_%d~Ml$B3u(4u{~DS*4tQ&5zS zV)~}Ns-g=k5AaA{Hmvk1e}*t-ahC9nSR#YBB>HLZ-E?|(SM)Q<(AKvFF7cyl3LWb-1u0=AZOK zA+w3X!)4dsT(5jP(8d$7yuyK5AE7h^-#2wMowKZ5Ryj2ieCv!0EypmF&d~u=a+dx= zjfmw+)-|?d!g$Ig{S7*|+RHDrlW=0iFkjC*SDSJ7PPvL;gL1{>Duio9pUnqYS{)+c zPv0eS5!i_}4FzVOvPHku-10)-QgmKjN;z?{VxT-5pkopx&Dp-JOuCvGaI`3@@Cc8R z`3P%I6|+HP#CtbaCI9{X&H1(AA`yS5s;kUoWW2{`G76U*zyu%K3hpG46I&{_D-MyX ziWg0I%gs?`K(HK&K0N&%bi;TW;r$I?A0cxsITY*bCVP>4jq})0Sg@{L-U}om*QOYE zuRcBQnesEj_aQ72j3+72IV)KZ-0US)QGaf8^HLGhzIPOIa;!BImmdraplRVR8n~Bm zGy2Isu6_6|2wK^ZFSNOcVf0{XZrg*jJ=Il6-38<%vPdr`%@^Km@4|#`3^snN+D7?B zX{!Etd-n4}Z}ff29VR7C^xe2YIRWfQB!&ZH6%h@3_30F(MnX z-^Wuf!UtPs%!@2l&qVjOok}~Kdld17e>(-8I)b4LTj$9lC$*QOqV|w$Gp&?xDEEc= zE7`~Z7AZgVNlX8G#h9*H*h}4NGn)onr43tRLC~|o9|GR-07SR^(?%hwD_8d>=+(t< ziKX2eT133so4D>6aa0bxN$a~*dKO@{SlN0*%rr086(;-a{fy5jTc%y!x1Ab9BvwYc zcZqm5+zTR_0TWLS4mi=1$V^et!r3aA`QBno8EH(2TbQ`BYhVOVlh2Y5@wPodRShpp zK>K)5TR2waDUamjn4eMOf=XU#sEt(@h%;RyS&#e~e(Y>6&&Ag`VJ zu4j5u{Fz0zzX!GfUtZ9LVn2K!Co3%8i|0YyRnNA3-GduV&oy00K1Mbs(&Z(ke{|%6 zO}v1Ouc!~Xix0IniqLR`*SVL+Qd-DEsaMaFAc!FquJ$$8c3=h046?uE$ChW2RqkKf z3OqBQnscxmO96T zJ$RQsVWL;VdHN8QfOUE9B^0g|uUj-5Lx?Xw;gU9`o|0uA#z|r3E>HVlGa*I}+zM+r)n>_JAm(kA z%LGS!1xHz<#@@5~wX^n6tj63LSM3X!S;-}AYxIyDXgDw1C92Iw-ktT6W+QAoOTJxD zMqRq`IrQ|NEpA-8pGVbLy1;Gwm=hbn=>Fz`)#Rr)0v<~jTO7G=(6z7;yw*9%b#II? zudTXKVx*0aP>{rFsNwJUK2{S+e2v$=ds#f=L<~j(e+6N&hxcEcI}C!EBQXP1<*5Vu zm`1^wqy?4=z;h9Z$YZo%wI93^vjPqy7pL*EjuXTL&mbP z;j|RHIiB{Tn_9~*uS1N$vyZe-9I3PyNhY<0zg{SRi$ZmZzLa*UZ;m1kjgpWHgv2RL_AwuNo-1kGEagglDH$jBA<{Nu*@p?j6<;D zF?rUL9~z>Kjl!|dY)T1PU@C;=s~rV(-`{ZKN2#Vbo~LtdH9ZbeS*K`gP>6Vgv&pO@ zD-F6m>RfAC)i8S?UmAU0*%!~VqUq*ffWPIlYoHR)Tyyq@OdeU#T%dLoeXaL|@AXrV zv=a2XM30kF4=q8v!_87rO^gz~%xToc0b4X;vNHfif`gd?pJI8a5Rf#o*rl(`@vzSz zH;O?RV-$`4o%gl6Vj2FRA=#`DvO@e-s41{e?m)-LAv_mfh%EMxj^C&Zv8KKSJ2RSa zvCNVg9TmdU;cm@e6k6*2xIE5?Nl=P#!~LQtl#p=g5ITq!m;BEvuW6zawt$Z(X+$%t z%&$-?iwkcDUvydC?5q2Ne|8LlK-iA;DfB2yOuD&FhEctgQD6o4B51)omMCZMi+MTW zuy-Uhc=$O{`IWfFmr#zEG=5&mZ~b&x!F-&2U%oq~&lT(q(uXQw!xuLB!<2(@u?mnq z_9~ylV3RjS@(2mSz>#wT{t7vNW`gw`?zIW@pm0=dbRyqxLK}b`2D8g=eF)y;Y$bK?}~lkN??AEo&m^kJESD5V|5fe=uBaeA~^UOr^5eptwC_ne6UI zzC~dv{sgbGSBA}Tyv84 z39#n1+fP1LlJmF@2L;StaU}=VxLz}IrAZMpYTOsHgI=`caC)%<{3~`^F7V*$^OmxF z1l(ak=V?b!3H5kN_(_fYaOpo^>29PpOErbxC;k>(C1{+C_}HxTyGI4IV!r<+S)}AU zdJ!1r5zJ(}pie5uc>{w7L(NVU*(z60!ti8rh^EuId%QMuNfGr_z(yDr&$ z@B0h3%1F0{5%>pnGB*!#r-S4at?9z3;t~tlgr8D}EM=tY|5Q#bqw;ijp)^-XUqUU) zy^KP*PChLt&YOzPP(^GFXV<$&0;L@iI+BprQx*~J*U%#NkUeWZm2|^XY-_KzO8{^$ zox$tWzFaPg5kHa$96En4`7Q+Tr9NlDpx-CmWxb4m@&G0Zs-0)2iezsFm{7%S=_}&= zPyFd`3PF8RC@E(ZlxeY6owV@a|HrA<_vhP>vm|=yf95bM!T&{hR zTaBoZbv5y}0?&$FYZ!u1A+kWamSQ%RsP^V)#nLm?H(4K8cdIPRew9oGa1d~A;%Nca zOE0<|t(@|p=d5r_mZQY=*2|UmjiDad`HeQdNNGNDFp;0=&&#)iUWATAPbqX{8C^bVjesj^l2H3u@?;Gk)$i-_$ z>tE1oh3X?t<;#ReWx^@&gx`%j%3zE%bSuWFHZNLvl&cZgRshAivT~b=-{9l4dcTbV zHhWW?C;WFPIM@csk;bq)oNDm~cOP$bSoW`^qua{8f1XAD!YXJVJ_DLZ6Uu#?q2Q6v zazyajE>r3gBj7Ml<{Wa}_{LH6!$7lNqd~ZWcBes*44wSI_y2}$`!tWMzPzg#dq0Y< zAR<>!D03vwky^O2Fc?Ufo`7{{#=fGRYRjD14Qo`AkBp=+JZn*%emN=Smx>h>6(;)}b|)?8VHSKwad`0y*||xiMJmz0E_tFU3^i)Z zy#-dI=8A~wtU~c-!ejG#CrN^P3HN+k+qe_Q?qc>Owu}4o@@28n9ex?g9vv~gY~jli zHykWr^7z$l3=$wT!s3aQ{S2^2Kg}qUi6R-i$C;ut-WUn)#wY#fT4u*bTg7+{e>)Q} zHoP$zB8`*c!ZB*ZL5kBWbQWd!ALeJ#X?>4bSxACHPXQt*+f{vU z+sT)hy@A9HiN%AufZkEwIz^2&3;(_~M=KR^_l;Qs7RVCr$|ziFv;~?rHn=0u@VqUP z9)6JGwjeh^nWQ_6lib##jN-t?6#GI1g7WIr&4;s|6uZ@R|Ss}+I{i8@+1&yDf z%4Z}I@ADqsBD(WHwk=v|LAXfjpH{|E++@`mHZkaoYH+)FU}~Fw$<8%Sv=F6+5(XEW zWik;aJhYurD?{USyaZ&D*)1;HixvI9e%rEtis%n>bv_Qu61>bf;ZI z(=iDfNR+{Lq%N?i^U}p?sa;RlfjiZ24?(&Nc9j;q%O9gCN}iWIR1`1;mXdvFP?eJ6 zBo{8t_~{LqV!T2pHEA+eO_d*N4(|HzuXh?-$e?t9#3ZF##XSGJZcg40Z;!PGwSqu~ z*vrtvp~4LYdJ!G&5j7*bd}$3m$sZ#P_Xjdi$9dM%vFgA?Y11rtev~D`eVpw-QA}B4 zg-wg&y_*P`Xk8XaAhwKu4SnX2v8VE&M=cSA=J;7ukhiX%vngq{WvN)a3)&%lcF?Dn0^kQYZO^}vjlSQ{~ywcz)2O%^n z-*x|1|G*6}EzNay&jAw2@Z%0iL&y;b9UD}IH+Q$XB%W}D_QluFJYh!kqxgel+MtvA zFw#g9J;V?N=4=~Q!I9>Lj?Jah*k(30*OslFHAo13hf}<(<4r8faAwaV@8OAOP@PXd zZNo8-cqhOb(UkIAAlxdQ2;_&2#>Av40?rlE-wu(~cig*MpwceeM;`}%8;S(<5gzIU z;j)qggPa**3>32d+`-n`vsS(ji0H#F}q2D8-GD$Q-cohl)fKF6r3;RR@rTsu86aBy+#JVgL+8HVV2(^+6(Cs7SkgW?yB0c$`i7`YTAegKvExA_I_mpEsD zu@VhA36ra@Bz_m9Og|HAF}OH;7`pALJN}90GVi>!Y4S8cj3t+h$ks+KJN7G0DHiNuz8X zsIrckJ5Hmp2SQRWujMG89CK}Jrree5%8k@o;rc*RK^*CU@US*IQ8=q?;nE%=|;y>jk+hcQ+{c(!oy(&l~5(QT!{4&?SnqNZFSw89Diodto)c z5U|zz`uD$ucM;uKbjbu%P7>BxiZJ9R)V*5Tg7J!_r;b|keksDRgr%L*{f+#HJ18k{ z?jD>JHzQ_zsx)bH4d_27W}vtBa3$$M<^ZG5RJ+h^dh6L+fTr+U!PNid4u9>FQTjGZ zC@V^RB`+7k#{E#f8hz-F#-5Zm_`56awg(1i&I(npQLiqVxQ)Yrp8Y$^`apMpRPD}g zO-BgJBYucMQ8_&Dx2 ziqXc`DQ)zwdEnVHu-pQ1WbZ1YjMYQ?f!avegz#2BQ=*GmqN$)%Xa)6JV6xh-T&W3& zP>-CBQ3?J(Y>W7}Dqf9}hURl2W|r6wz2wa*|1qU?-Fw#jMOAJv0Vgqi(BB73C0S13 zecSXg_2be;k9HlfDuwLrfDf$dQWKgNK-h^C1rie$@(aZqC zTvMGcf`FB!#a{sjarTtzuZ~=aQUt8DT#zpWeW9IEiFi_s2RL{rsduTUMWAXf;fx-v z=2gSy_b{rwL*Pu4pL6cJ|9cy&k&!JusXj(ZtNoxeUB?4(6|5H_U404ysz_`+d+L}L z!5;#9S93wU`Va;@dbMW~D}#F2Twh0HAJt8QF+9Ld8zM9LF6cz2+yR&8m#H?*(F|C- zHNiN?#rQ#isqbebZh>7(HCT66N(c8&j3f^K*H_+0OYhXiYCTZPrMKH(c8{xU%ap*_fnJ2&a2`-Y%7cQ3Kx8{3hHyrw>{w z*J6@KSaw!CUR!<=vfHgUFRhNp=DhDu%zgnzo;j;V#k0@N`e5Bv2X?u1iltZ?SMu0| z20!7F2axLAqQ8TO{E{+uZI9WI6;j`z3OYeDPcZRSf|yJ@ZSyezjm1ZyC}qRJn20MYm(Vyfq! z`HC9phnH;n-+Kffg8Nu2U&g=9X&8HhoU*(a{H&OP+ZjrNg1;kbiW(o|d`w)HP*(-A z(wndwa4|fB#GO%M0Uf$@U>VUd?TeJ+0O9K@a^;#=$Jtm*Mwt~9^82ljMZ3T7b!%gR zcV}v_q^B3koXbT`E){){p;m~h9ZNstJl671G`{3fSnQ6;O@m_sehp3-(L8E*+1Yyz zRjq3+%no~Z)~Q1Gzq9gVD6HDy)ZX44Zi5h145N+>N}JNj+hN*gM;7zEufwD}_2xTH zay;}?BoGPV=!HG?Z@9J|mXu+ndGzas3a7K&q9x4KUW(`F1HCyP#F4;-+OoNg=EN@(~n!p+?t?$>0qx8CJnsm8wn3rftTjI?CUI zgN6O^%LIIC9b~J;S5#Q<_o%Q@k42ln%<3;&=D~bxFZJ2hXB^v29=zP`;}PrI#Bcsg z<&sf!`)Fsqhl2aH--)B(n+`e?QOxc6TalkoiFrSQ{TA)hHc)}lJIGB?)AP!d}>*BT_8vZvoOVKDD zwtl-f&3kY3l~9M-9k%5KC#*HniQW)~JDjgC7@|u_dM<-|lHrZZDUOw;Qxz(dprG0+ zC5gCivZ4Q-oS^7PFD}_4p@3X^WdgzM4B*~<**%>D4BQkYb}$I_b6T&{zPi4l?`~n> zfl)kJRriNw4LBMF(6|QD`$sWLmM(F8I4IuKWjo#4Hs9hC8m4uFy_MGpa?z12hBd{} zh_o%zUlrwV(6`9iNdZ>?du@V2qyMAG;G zGgvY(px80uC|eNAKPCH&w*i`L3-DB>`Z|}(YPg@>k`7U`-HOY}WucS*4++|kz@EVf80D%D!6;aqpSZT7BAilo={Rteu zfh6CLLq6BxA7T4#KKr;cjEtI^*k9}GfmicBIh^|jpmc|#j-Zrcg=Tx?GSoqp87~a0 zBw*ztj{M|4f0tOlkgqu5N#{_Brk$0 zPDhG7SbN%@KT;T&(A_W~!wi|1A*ABns&fBe4%kQ@df1#^3OZDTLZ#ss$N*dWf)?$& zh1?PbG7XS8RlNRE?nn#rQAc6b=L*dy>^3P&j_5IFcAFb{5!A+}=V+)asm8kzPxu4H zGFb~7`3{l(*^4aqgLtk$jZhPF6-UKL>((pot-~v{7nZye!lEz;C&l*{)T~pp9rNLW zO3}sCV~wER6tUT@yxPh|%>qvpCoJ>-d-9j;Yr3FiX7!nfFG9ge{`<@6@bD>WpRddf z&`u<)aS@L0AAnJHT|b%{-T_l|)uzWsI-)U&qg*-8LM#X))A_yp&5q+;n+n1ZD zHQS}0Pg8iX0)zCLg0&$o;|$`v1Ak(RoXyZ)pFmozHcxgkwZJomIJS8A|CSNS=c-wy z4k-1`HG)+HQ?FY%H<;i%$5p6YG4JXBe|m*c1F>(+q!x;ON6@f&E5$AAR;vt%@#Mj{ zY=eTe=q2&cAlE`EvR**9bfM2~;3_GEN5bXWTSx&xZaODaF5p-@|7$Gi4W`PR+l?k-cv4rHoAV%M-zrQ-L4*fz(gZ z&4HPJKB$|I4&!--9^uE)hG*s~el|Sam1~ZCslA1HOBGJV?y1xLxnSaQ7l1?b@Y)tX zt@|qao9ZLFZae%MF4xSz0ZW$Ui=yCs#f&qAvyaH+&3JPm7iA2Oe${p*hrAYJy+*A? ziQ#*bKK)fOggG0b(MW;q*Dx7KU5E}F5R~U2vkp=0Q)TFEHqR>sB*=t!z}Fru1?aFi zi>$4S!Tn}4v>F(tJlv{=(x=}W3lK7EIgTKX?b|-SfKgzP`+P?4`0$Rzr!Cl{{H%AF zmBB_Lu|YJ9c9p#=h8{ArA3kxS-x9E=t+{T%$i#Do`;crjU@$}OPX4U7wh*t{r16nQ zQ!62p-qDwvammpoSq^x`7c5eFh~D03G#)TzIL&H7HEe_5Bf0ySh|d{KCF|Lum%*9lf# zziAJj!Y(+c<{5E}oae)tnOm?Fc6Vf2Iij7qsE@o5q zu}|yxbyPq{KpL}VsQ{&op~HKoVp8uIbhDXs@Z%7MyC9Yw6Pm}>dyg-Uj@DW5ri|=a zj5Q;Bf(l42VolY?C^MNxpxkJvzryBV;C~U3Zj~CyEaY8&O)=8?Up-vdA@?v2yNg!0 zD8a7WiqrG2@(#u1rLE&yUmh|b6r%f`8TZsLnM@u_>P0Rk zppfN~m$44|^*5r`gxGBP0QrW(>l2m>fV_08^ zH|uGlOo%{qH~bZ4HK;VgpTKSIX4^%idMdx zJB%UO%mm?wzOU`2Z!tC8Oz}8p?Ziv6Q*dSb&uqoCXKp%u12MKX400(NJ)V_>pyVVH z(oEJ;($J4;yW77Y_O(K%X1H56 zCrp1?BQA!xo5e{Iwr7ZchEL&3WnEwfbmt6ukAbZ(xhDbBgpM6c%gE65;}@=(*77tr zKpp`1q+UCyp$ytLtffV9@oG=0x<;RItP_>fc0uWbs7B9y;Eu16>hZMgt!;8= znfD8Qj+rpZ4`8+FTGvhJOPuh_sI_){61FRcUZ0lD3dJ`iVid_XI+VN#AHe9eU#y=M zN6Dg&DfmY1h#^x7wTX?N-wIgO2I9!OaP~mHxFM}cJ1QvnzuTT!06lqyTC0-hQV4$&j(Nq>ENOQHKdbHTFC-cacwB^g z&zng5Z5&lCU+_LCxN9?SSfeQ&FbikZ@9U}P{?%$IwT{VwGzx1^!!so{UF;QuQ66VtX78l&+@<(56A-l*w2ySP^K6Z0lg5%!Gj>koeL{~_{ zPA8gRkk5F$8LO|xh*a(^Uc%<|+UxUvX-MJhtD=Snj*RY~{?(reH>Bn*8wfL}&B0|B z&a%$&P^}2Bb(J2vkH8oszN#Z5CkUIF06Cc+F*rpVxpK8xtWXj`oGoKw!D>_wYCyD1 z!7VkEJD_)&P)Pn?D}mS8T^^z6MsnmnGczS9o_L7=Je+=IFjnUh0c4wSgHN&Arhh#F z!pP8jUt5veZCy}$O>%fKrT#fc+D9Q{#v%ATizs;gi}@gdwj|N6K!Rh$zR62_SEPQXn6f4M<(06^m|x!bmi;8jnvZ?E8tBCnwsgH1eU% zfEM+Y#~sm{d1K9zIbZzGB!!s~hg8jk6jY0s-x#^i{Ye%&XWtjB;9*N4gEN>sHx{$6 zXMV|^d#eeu7P+BPdd%Gue^B7le%3UR3!z-_Nsjoo-ai|JZrc;$EVWct`&*MDvz12+ zUpK%M)>kS#Kk*A8D1fi5c5{`xGbQ82QKB04a=ZJn7|B^mTFfKBvr;}o`fArJD5H9U z`m2~W0MGU;%Sr^1UE`7KT5*H_UQa$vSgBy-nk$_nbnI=V1n5+uwvSvXC9hwEcme0q z`YaNL>R$z4x6&e}6*nCj(>^A>Q+^IIFk{dhAO2$*4INFk)$~%B&ez(P@y=j@nFhVv z`^C0-(pU_&0vPb)u8-ExZ`$~A1SX>-VG=w=3lw?*2ncgg9i&c`-gRr><`r>vt3$oz zspmzJHQ;01)u5*Lcbw-w38IiHF9ZzTV&Jedr?b?G9K(!h(i!|j=nY}P-NxhfQx=I6 zm=4naI9R@HI4oQJ9)dJ5SdHOypL`(*6gQ!frA@hj&?v1i*516PQZyV7Zc8B_<0OB| z88d(tT$K|zZ|()N_%mbQAYFYBl>-4B#cB2CFGRY19?mV)Q$HK@6@Rlv*uOZSbcKj? z7i9cU=j}k}wTkWTjOlHE3Hsqt!HfW7FtfJ*646qwP|`dZe?}eZK1=oL_QUUR56r#y zIIkNnOenFX6ucRus#@N`fJWC)lEUhp#|&+l((EP80yQNxfc~w&L0~c|X_fWqNrI?! z?g>(JNaG&(Paz^tUj;GvREDR2?YzbXIih;@8Op08;%S#yQkxZge=DkW5;`1O^7EQ0 z#2bEhtqZWxDFp$|@KsfnSUm*fN9Rxzkz7TTXy`YNTVY16R8g$J=>qD=?T3A!=Dt|% ziN5qYhYlPSUkLcmDVVgB<=BUz;HL;&!I5|C@5Uf)HzukPNa-+dHcN6!_thpltp5&| zeL0-VSnOpy_#YBkiR^*$B1$$mM{u5MxnJ+^1veHQHqI{}HWWV%*0DL8F~BbT>)2^E zm0-Q*dm&%QjPnPsf%BbtG)BYosV{-#9!yHcCl1i3)W(+r`%G-CsC=MJxXun@%AfpT5;+$%HK*6$9*bcY6W!{@YI(oUh@< zSx2#b2ztHG4trQNuY7{T*`%$*XxEA>9Y(SK@SFHSpBk zlE5E!2py&xVLsiQU4Q~5GW>m`y>W4JMqcUGKRxDn7c(mLCEY}es4{wDVA9f~fioENZFV5--||LWMc-My#z!jdp2n$F-|C2&q741;_L^}k{Jr?2dbM2vQ*K7iiy zmKjUe&H{A9G+-m&nJ^}Y&tgXec!5#){@0R5JKTp7>U7$9aSg9t1)UmlzvFFg9cYJz z+OAB&<<=H)GvdBfs#bkrNvsAFp0W1@!jV__^`=7{<+XEkzi7eLV{^E16ml-Em@j^q zH^nXeTfJx#5wW(4j(7zMmc10CbSMv07kGD%c2g~XpMRqtL9SeZlhgp7j`D^1Z$@Z& zdI~nFEo^WEtDcQFOsn+Dnb2~8dbgsc@i(`jvD~4VQ8@H6@r+1~AmqZ9fYAl#U<#C2CtO=)(DS7$kaI0EJ+HxC zGT{cj2CkRea_I9l$Ngh9r@3T(IJhxOD0C`~Z2fElc@xS%5Vv~)Gsb+8Fv^EA|MO<= ziPQCbB0MO|Vk*g2MKE!=Tn3F39+)26xxS`z)VX^`7B_{m~9f(PRuMNU* zjT(G=wp5PVkk`h0**hg_Hq@6}$;sz***z^1J-9$4uP*u`_xO@Eg49DwYW>NLgB!c( zpAdd4_VVbzvlPM)*k%u<4)7buNSG1?kBZnQy9^30V?$g>jq0Iz-M3v$cD4-pT?gKU z^>#~Cg!6ZJk4df4R9cIRxE!$_Qn8jrcjL29H3hP*=WFE>pzF=;5Yt`TB@nZ6t8vP4 zt-ytF9C}*E^ndc~5s@y&?^CGXPA`HwW=EBj=MEIti!0_3iuBNTWei{7Jj)lX1eGaw z_Gq|=$;2kY?c|W+f)UsQOmZgCD51Fj?zXGFfQ3=muWP>^CN!ZJYW$ zsddc;!Ji)^uyfUp1{ELi9?fy`1VzH8kP5lYRMg1Rgj{dx2o6H`SRqZo0Vh~5YHhL! zSlUg@^F=FK&IJ^fl6>rZ??S*PjFlJMq|rvc3rhgkmkWa1!FEdL;N$YSM~S^zy+To z@%y}}gzu5pMCD42w$&b~@PpWz1#!ja*j>3xs8t9k=UQQwbSEyK%^AU>Rs zC+aoHj7mFJBB38cLIk>?2=l&$B!tJN9ewB=S5oN40La^kZeWYZy{)5mea|{-+A_p~ zxXa;tL1%-j0fIyQ?_0}+qA5vK-(4R`H=%Z!usOMDN+4r>{EDrTVRP9vWiMi8maMit zjM%F-%CbqHM5F$vikZ7R@o%LrqGx93A*4$Q( z=zUJJ+?>LZ*eS0PQLbVjt6=BXQ0Tq)yklHx$wpS@IIp?dYF*uhH+S-D3t?xp%E}1r zu)63#XtGWo>W5F|gP{+%&R$p-kt0+mcuWo(@r+nY_3|?c{2{__n7{EbRAS)h{Q}WC z(G4>L9bl3~Ggvc#q>GnjX~BZKV{Vw!pP6Rcg)msY0;|XAc*nx@U5^c?RP`LQMM@>h z?t)Lwmx9owy<>D>&lcdDq+{Dj$F`l0ZQHhO+qR94opfy5w(Y$1|K2-u=dHJ9y;<|2 zPF3xy+O>C``c&uC{<*Y_n*`d_b9H(8818T!gzQ6Dxuh&01I|IzTB(QZ2-^`ipK)ai zpiEin*8e;*A@elOsO_jBo`R(&IIV?wrdf+Ud$))|6;q`Ylr~^3d8LZiG4T*TCMPL| zJIkVb(Oy++u>@5`mm%^myUr?9Xo(^=CvyAxvHXL@4-ZmSOW=3eA!ak8{w0_9nB1%W zBCvT5vzj@Gz~(Rwk-TgSOsS>zV>!GQ{KrpHGg(ZTDY0Peu3|HbG3U~~W2w4(?&3UK zg_Ad`2DJ+BGECoH2nIH*9FC2AZW?jyhs8FB1{Z(vF4Q)mL%uscU|T=(P1DXs5%7v^F*8~ETCW!tOP=ZKHReuTIS!)q`Y4NjL3@L6v_{tFY>S%> z7Tc7X{Z&wE)1~Z6&D*RTkaT zpR#G>REyCnp2ao3Maxu7EGS_(NA_GxTKaTanmWlxQEdxhL7&)&1_y8_2rvK#u3jo_ zAcF%Q-%sUW+Bue410qdo0WKZ!wsLpBI)0z@VKv26Wat)Q^n|4udU&TTe(K45j^>|; z>tPVN6|VLeDfY+#R^VDf<{%sx%zC}%T2j4RoN3z^Ol5D2p()-MIOtc;$BStCQLR9! zQCM`w#k6^Zz52{7;rPv2ra%Ou#*zuWd>!s}G8I(>-B5p7pZ_Z<_8W!zKdGPmdJaZ^ z8Jz#&Z{qzIrxTA>!AalI&GsA4srdc;reprU=$#CI37Ybdv?^wXj;0QH|IlW?!J(3R z4vqq*diLMcRMzh?X7>NC()~A%llk99X#9gt{Re6KjVWbe{}(d#FW&TjFkAn_ZvD=g z*%Z{Ld+=Wcf79QF zZ-xIT`j0{XDE~K)^&chw?#uY^iT}#}H|c*d>Ob@R&Hv8J#LDnb`dj|TVLG;d8Oid^ zk7c9#2Go8-YuT9oX=7xehh+Y@y?c5=(uK(@#PyJip-}2uD`kw4x z4t}@)CFnA;(|;$Xf8e$MPg6S(H`4#l?jc zn$A%?!Z83Z*O3*ROjOiGw0Tx*mip%BB=?i=(dXi8*MRys*ISiI_toaqrhr&+SG&5#3GX66_9h?sW(IaRL0?c z6n!LCyP$Ce+gh;UwiO^>O8`7l+SrJcAdsHX-rl>dFxbfs0K0@GT?bzvq+g4FaQFQM z$q%=WPoSF`?1QlHwrT({8Px$|LqZ~UY7PJpIAa-?$NO<}b$87{>H;!NjrE~q9q4`p zXmWoo1O4i=IXFEX9veTuyqq-DKkD7zwj>uF1F!{aR|iz&qrp2`!gJ^e7y=MN;+*!; zG~mw%F4geU`ZQ2+sI_%swF3pj1J$U-7~TY_>z&xd-iP+hgq2N*10!SiKmTG>`{YGJ z2k_B>1sDc?H)-!y;k5*A`m*>PmX;QfRS?!my1a>~3)ln#m`HSxrpc{|0YLJ22!|wP zsfCSqCZ(O>Yb7O#kMyZ;4HSzk2blVc>wS$IjnSmGpaLoZYWeYx&|!!b-V&9b4b7ph z30R$r6Cb}j9vQ4NXc`~QX2J`vjfKJ0w)NEqYc0UqH_*gY@A7cCQV-7A{>Mn@7dMDL zzk7q4za}6y6%~~xmnA?f62QKm@xXg+XIly3aSh*g0LHF=O>;p2VGqzQ$S|5EpuZ=c zTYG8;D4=H6#;>kT8L&@5(O-By*p`QobRcT}7jd{QA*p<*Uw>kcTtGbl?p5(-z<_JH z-aqap01$N#VIP~aW9Gixx4X4IhR7&Rw*jw>4NU;)>g;O)eBo{eKwfs=j$VDZzG{|y z)RLrneCpln3L-m$e)t~o?&CK@)qkdym9fS7WN%^=PN=7x_eBcRkjH1WD{v8@ct3*)D}^!HD`g948$ z{ug|sur%9Xoq%-wxR+Z2v6+nZexcz|`!k=IKltQNr%aM+SsmznhPjntrG3Nd>%&M9 z_Z{(o?EyOQb7BJl+}=?(0gOpJz*L3_0Qx0#e1ifQXZ!Z*08)!2&(9@sD}6A00gUZp ztIi7iPypV=Mp1m}ZV6B+)bdl{h{`r*w0t7m!% zPzFUKGqwLZWcpzmc-`RWE&Az01z%2L99!zvK@G0Ph;&3c`I~<@og*N-Qa|Xrk&*t* z05P!su8;H6z_*qqKrp@PA|b_>t{Iqpjn8moe(_)i+OB7R)L`FfuodDIRL7;3faB@}HMgau>>d3?&6yTkwpMcLM z!2BDV6O;FR{8T?TjNi^K@p(9S)A8v*|>`{tq@k~NQe)L0#?p>#H!9P}C#_YkL7&x$FL6G zz+Y{X-V6ZdodK0me(8d%p@{ zZROnOxxmp5zUBG1-*UyD-}2SJavwqXZy+pquh1O=UyCXC_uz}ao$kn5;Az@oj%oie z(ANXDe#Y^0RmQA*909EHLVb?YWQTMBa%Qxys4e^B?!|@d(b@&wN6RE+hTL6Ue63^c z_8Y9;{K};JwwQE0I}suj?NDZ00GP)Q&g>4DpG||u558FWdoS$F0RiVd7DCtlVq4+z zgO`^Xg(&RP^G+1p7I>)h0m84u&i(~XIYfGmkMg&0^j(O_`7SJx!uO6|Km^vhe*p8V zw(^#x!Yku`>q|O90@piu0OlduaVoqxCzIFWgeMw*sI1 zN%wP&&NyBy*f6x2^XQ*Q+Tm9R**&8o@I21F*VrDmgSJHxb>S+?makw?z@p><9&I z*TGX&2{FapFp}Jk5mZLW30SP<_OOdZ9wmuGDb?{gTLQ(4N-Pv?2eCHdgXjg!`S%}C zq-6C{bEG%gf7%%k31{_i-E*ZfvtkU4VYd=S2WJRhE`{n3JkDr-4{A!ePo$L9w>9i4 zY@h8S^kx1T>8c@?1J#;jsIeuE{E&o+*5LId=O{?q=fakkA=+PI-Z~11X$us+W9TL! z^_d$&g1L#hJe2pA)ff{;-ewUaqVlH!NY?YW3@sPbZn?-=lWu%Wt zOoocwrrw_IC1Hj(azK`Ruw zX@ex490rc)+WFd;#GI_Z{y8b5BPX-9F9cX~A3pI26F!5|npV%mn^gS8g#x96_)#{o z{C@9VX8Lp|SKLDn1f#0Kcfd?w(6<*JvD`9cn$}WJ`zVzu&ZW?`)m~FQ;SLEeQof!W z?6FwYLT|`+vGd5cIU#OMAqF44(gfryM&!fj6`7LJxS{%ZkSU4D5a63aoUZfbusPuV4E?P z!gS8a!QsNeZqR(5+ro_B-4cTTV!gp8m68u*xoL~+#h=Q%HpNDnoKw(cZOd*viCrvK zI26-@W)2lD!3pv05)+lmojoOKjQOw{Umq~Nqcu_ixyv0Z6G}e2t3t!K8U3L%>mW<; z>wtO|JB);O$d|a2Xdy~~Csn|{1%HTe8SeVAv!~^$whL`e_;=7)2K(Y_?<#i`V9 zc4!g`c6h=$50FliXU)jC=l*wB6)0**NF2he*ZKv_RTWf0<3_~yExGe!2?miAs6U~O zQcfPstS^}<$i%H_Vl&u(EVcoyOl0JwU3xti(HOU;^yeRVC_;`8ck$*QuyLVB28rP9c^K z=qi(rqw;_Nk6ol|7TQb7e~>H+#cM)jVy2@bZ&O1yJlv>6*8PF`#*);@8w#wOPLZ(s znrPwu<2!tmv=2!K?Ao>$j!n0PugX#e1{ZJTtKn8(OtGyxAHVkq1Z#SKG^YKZskIhw zomaHiAkq9X7`HELNr|4DHwM4wi_z=GyHlCPv8#Jxn*JsfHtV~P5X|CBpfpVhHyYN) zTZL*roePh03>qQHhf;eTzUEV0_k>*gU|cK{@=kFIEo7z^dz!gKevV4z2>xW8E4{@LieACA;(|r%$pN~9F+o+phBynWT;@GG^? zGbb2P_nDk)op%J0s9f{E4=Zu%4{n>}>EG0l21L-W2=rS=H8@qigGnqhR~nF1CPHcY zhc(ClZdp>;TCpL|=+(vh0TT#k=v3=!WfD0ptvGClbD9f9lq5~l;qilj8(p68TF}xm zWU0{`SIolrV0T)L9jbJIge6&%*~4K_0fhm4Pj@p*`0QS83)B~N&Mb$$MYf;4_<+#l zlFC%`7aD+e$`rng>$%HsO}#>e^rzP_tYYD^V$Tu2=i_abug>%R5=YZib>|_It!)<# zK}yq9>4<3zGw6z0`JC=z%RZzF(?+`6nn^i?GgC`XvoO!8vFf3xjfkL^hq1x9$C@!x za6oAx;eAJU&lAdwklBFDJJw$gV^myF=4)riCay(&Nm}~Wl3*Oh!m}!pXdfZi+?k#k z`mpJcf#Nt_^6XPqeU>&CP#~A1Es_Et3S+4fhu)4;;HK3VPgIgh3ngnG*DI&fF2}4( z2-?2NxD+XjtZUuRO8J=-Nvd$PeMGY&CiFBpzr}Nz2Vm;f+rSwvs@j zlyRFiM*1I;$X{-E$h~UXTeG;NXGZ7G6{dd{!CUo3=>+=Xj_|HFmM+du z)Dk@4+L35E z3p*b^OaP4)bsW0al+8F1E$pXQ`5sh99)`$FDp8qTr2jl(4by94bhDg8+ZFkE2hbo$ z=!0lnBEDqxZVq=e)FN+q;T^xFHyxET>i%6ASNP5JGpd~!qlDva^DjC=|}oGynI=fg`K zSBtK&*c6pJ6cBW4niKq9+m`cXv4K)-G*~6g>9stvEHtcootr>>)LXTzv|1rC=&Q|( z;pQ{71u3id`!HKje0tbf6)`{bc-brN^fQC9R&HPyA8yS<8)X)~7KvuKkSLs`&b$x| zF`geK2dY$Huy1dxlVhA&RUP1zsUyC_gUUL2D>|pYI+3510!&v)ziV0wILM*p-5}KB3Np`S$)ssu}7qhvrMVn}pi8QO`QeFn=gp9ti zNzf+8t{Si;*<;P>aAl;5HRy##6GkOrd#P+ubj8i1b#g!gw^dMN9|H|re%CPE?^7s(_ln*z|Mbr zRpEV67}>0DM|oQdBe+r_8H%M%iAS3(TQc$y|0Gn`uu6i7e=hhi~ z#=TP#olbzRdTrr#{YB)RCi0F~{r4yvdxp4A^dS?B6NR?n3l)4J+frYQDKHLqLW96t z9N>>s?)ya-?s)mB0M~Rc#-a$?*0kT# z@{VOr;gZS-XkG)(!8-L3^&J|bfpa0VY4jh^dciTFf4B5VNL~*;|GZDEiGQjvanYAK zEeWVt+MHPXDS6t)Ixr^P7}8EwnR^mgM%44oF8KvU#NZii6JZIo0Q#WUIGLb}03Z>~ z*@r=e+^%lRLO&!#jv!yoE_Tpa&Ab#3W(g*iF)DP*Kph@_T$}*houy<1S}qTdkA+QL zA9g@|DrP10HTr8B2thLX_&gB$MH!R037JtjDqAlxe=lkMW@1FfuE@hZp+i}x#_7`- zD`c0@@_O78V9tslt>TBc#5;S!X3C~{;;U+xR#Ia0&Fm6D+g;Hyn!bZ3Mxx(&q$N&e zhr6ysRt|OGHy^jRLmyo;FX_cXMK9HVqrJw!NGr;l!sx>mn^R=#S&&IELjQhE*-Tdp zMXj=LlWc@f(!k-g(d^+pnu%f+5F8}Y$<)shTW?mXE7w7fDOHbXLGcbXNm_Uv@P#;u zQ&o(PA!c@9kEOnpb*r`A^vL>^`#=LE?TJ;C;(g#I1xbkNbsvII5h_G6vIS^)7#j7y z%#0=IM`Z1XpHij@8+1OH@}fa&VehqWbs5!wpTlCoi`VL03U4)0ay1&nu$|J?dhX%} zg-WUR1}33Ds)w9klYhy_swtgJ;;Iiacy?*hRxVgPK$+Px~(XC3f1n(k_wk+VbG&_ zeTkk#fv&YXvqR^JGbXN>rkft|=EJA)0cx6^3961eniRl zKrMLXbc7+Ru%e1H+?D-sN^T^EEPi?TzGpD8@GFO5N5>IXNX14hL7-67d^6S_?izF- zv;~nO`l#KBggwZzgz?${adhZGnm_@@(^R_b^HJQo8dXAwKpM8ohR2XW`DqOzX~CLKX!U0-ll6Eh+_wKtfn0u_capNvC!(~7-UHgn(hCK~ z8&wuMl|HDI0XcEZ&XYHtR>78;olY%Ewuo>v>aU18t_-l=jQmxhFi5utRr=1sl|Rxed9sEn5wbO`p%sCDYTfXS0-}VO3<2Jc75m zS2<4kAc|*wVU25zal_g2(b3P4d;M@*YLH=G8qHjEC{Rl#1Y+r(bS znYq1n9?iqQ6LXg)bP(BzIs*6=p_%cje0umUu{g8>Jeih93uXIEBj9Es$G{aQ);*r$ zG0|g=u3~>jrYx;xCZ~Vi^T75yMmGT2kMaJ4U(y(lGh+{Pk=R9B+20LcL9db7fdYk; zGra-SRmbVL){GM~_F`AG$@ZHl_1s5H<2yJB&Kx#1gQsTGl$Fa}G9|rc2|h#OWb;?+ z3%^UAU>n(c%z_SpWZL+fgB)wgRg#dUkD+gBtO#6pJ+L z*Z23&9PFc6+-X#@Cw`=w4}6#O+61!e5p}*j^NxL$I|SJw1q89>0hy5E^HMU7&#wgy(gr&Ig=3okJ8axt{DBBzA z_6Bp>X3gV`TH03GNLqVU@Q4~J)Q}#P|;Xr0SHGdNKVuG1K>!B#!B)B(Kw;U(?6tJRo z^PP60x=jTtUVQif!jDno&=Ww@9yPmqY%yEgHpZg997(a@xm#56!YMiDFqoZgBS?m} zNmtLv`Vi0@Oo0MsfqFX;s>Kd)Dmu%% zD?fzX6Q`nj0CoCZ%X4>U5tunnokjy$s-*A5{6%YLnk$Y0O2KXJzT@n>P%xLsMsE7c z<917)R@8Te8P@1pQ}#y~j7b!lTt3U^t9cZX4&#T~Vz2Zz^ z_Bu_2;MF=8|ME;rVPmwyDIV-q$6T28$*xXF53!#RGM&$$O4>$bSvWIY58@z&|FK=e zJ?`kR<$m8A)Zapl^P39hh^U_Cq%z$}UVd0+{=(Ddq4l}JF%=TQLqJ5W%ndI10U1=G zn=z<3f{L)A5x#R6IsP2%i!4*6F508uT|uBN<#jwEo~#3EWf7>RR4Ge=l1C1U6Ylyp z-+#IBsf(!N5OgP2EL$l2RFy+eJ+|Yl8wnetfswfp-RVV3ON-k?Cge5}YtJYTLYsuQ zll|xgGX?e*#Q*XEBn$s0Mp7ffP*#K^cB3i7qp~1CyC1$nFP*Q}M(WL*Ve%7aPppE| z011j|fuiK16k=UCy-17RNSa&CbDGM|Ize)$YmX%ofkbAMCAB%&WaTxPb0)EqdM+s8 zc2JMfyGm;mvAKQvpwFfb4d2TKbM;qBAdwxFTUY}cQ-z?I`w$7mzLbKj2Df!4Eb!n3 zS92x<61D{PIx87c!k=J%D8DFu#mb_0f&LYH63bp{cE{&VF*AkKEuY zSuE>Gzebke3x#DW6U)*{lC|vw=G&!HnKG3q2!^fFvDWDM46t>$e5WH$u|Gq^RDU|0 zgCN;}y67*|ca&-wxYwt`sIZgl>7)y2yiZi-@iFiT7v7RVYw~)3g;m*L)sWRAaaQ~h zH2)F!x{jUH<6AZbQxjxDDX0y4PiZYwRD-*^8!+|eQq*_aFvPayQANPnl_KqY&KW{e zOv%StzUHvu&%2wp<;^#P(s9V?t$==x)#DW68&SQ&mi_MLYisor$S!#_4+taLg-Pwnrkup0c5X6Vjy6g z`^Qgr`WnZTwBa>=RQm|2`JA=))B-6&8jTGvZDp#j)<;7X;svm4SiL4#Ve>V!;v_$P zkPvcv(oL(2;}R|BOh2Nx52uh-#q|a-z(?<)M5(q=63 z#zFU@RwG%S1GJw>1n}eGLpoK7H92Y)v!i1)&e`UV5YGn)RwK)|G4g(UZ!EF&1s(Qn zZC-{vF&x(>_#uujxTc!Xs?&xamc6MP6}jK1&adEI`JGEsMO$S_!YG%< zzS`F2)pXo~2j})PvEg@YaiyyV9!Rf?84q>9pKMfQu^v*}cZ18?9groH&t%HHQjRf2 z=~Gd24wx}U*;9Pr%#W7s*-A)FY3O2L$HWd#X9dPrDo}0wv#zgXe6$3TM&}X_)Gnem zF9BN$@-*Y|Qb`P6M$4~p4x>>8jrOjkEWFnQAu>dd;2kx(s9#23KqDVgZ1vf!xlGrP zd1&h1--H!*D6d^`C_o7`1G;dCi7r*$$7_HPc9Gwsq%Zwd8dB~sZ}ZDPUJsNuNCTSK zB`vXe&MkR;5R+}OQ3k50a5z7S>~TFNt{HU-YyjN z1C@;q){C&H0wyoh`Fw_~b|Z*XRoIg=`TVrlH)H1GIWqhA-@6OV6`JXZ-C>e}49*G( zAgBom05Qj}RIY5+u@*WT3p8t1F&3oshU4|bPwkvhksX2fNp;L;8sb7Gn@@f2kaj*B zgzDJl5|~XL7CgbeDSIDS5J*?cFl7-=YZIfa*f$i*3N}x~dna#iu1F=LC9C4rp?d@+8nMB0jL`7#a_6vjF7@H=%T zMusq%G}VgH@vYFL6&W^tuMnwAj;+I?{FOecVdY8$2D9uv1{fvRg>a!&Xl9Mp|p&p>m3D@9Myue=3kf9<4TGI;{-PKdjOP zE1FBSz(12AHPEWaOk3ul>73BAp95CsEgww%mh@8uN+>#nUGTMJU9z%NDk6()7oL*z zBSq}cdUox^yy?erZmEblxq%XZZvx}b+fK_#rPi!%lr_X-67ab5Q)!nfnqtVs9z~~F(M87hz>JxtABJPMhf4YBC zc6_#V9IUAW<~Lj6lqGB{t6YqMKB(zRAzYT&sMjSc-Zfi35;|Y2{o@tfwdnD=4_rX3! zWrXB+I7JrR97EUIiV&7gv_FHaH%^*85aDy(ZQvz`Cb3u`df}Oo3T_V~)oW1`=uVYt zRxeLhrgIZB(MtlP=~8!bMIDCb`p;uwioeTHteaR{wqOxweys3zv>vsO#P$~nwJ?!? z>EZ959xdm1BkoD=NQu5eykBVC*V;(#T+cUP>DeS2CHZ4AV@ezSLWQwv1JDyvqNQql zb#eqmh}`v*n??5Ty5?)(@_f0F5NtGf58aCXz-b==6i{+W3V3r|fM^d3WA<_lQ5~tw zgAEbs!1~$I=)<}H!T~G*$1JA)K07ABiwI}`yeOzC=tVA>b~i$HVS#;rz&9dNxK?!9 z5YI$d>Ow6K#Zp41%zm|W&jDszSK( zb_sqSJb;A+w!)k&9dl7iZqiZOevzG|YzHoJ zqbchcg2eM6D=blV+js{u`-c}P)6F8)2S0<{=Q>ksrPGVwGg4o2;lTPLBuvLaNtA91 zK3mS$-VS5(DHnh{nT>aOHim8W<4TNqqNg_wl?DlMP?oiW^e#!GhIDl2jLoES1_*4A zc*{1N7BzB2^B`paMj^g=|B`TN{cK-O$>v#VdCj>XSHX?85fxG?;RqSd8y&(=$lK|b z#Mx!Hpo{NwwujV)JS*|BElT@C)o})bs9cK;TX5At>HbisY?LglAd}aKNS@7PazOA| zf{Fr?{Ix@9D#=zGr)#5pwhg#D1EsI}ExC;fv}95xFGl>OUBQQ3lyZSn-UcJ}NsqMI zsRL>ng*Lx7EUK;tnW4GJ!4Y$2b;K_!FDXTpMjgowk&8w;ub=F`9gAl|Nv&XoaW&?( z6;Ds1TNWm}y2b2O{8cKggjb>h0E7L^I;|#DiCH?OauNI7q(6SZ02GjIl`G;>^FCjv zl}{y+shxR@5mxLNnE&C3Qb~$6TDHpGYk7meS|Z83)=mLWyZPxEe?MIBQb%R`?)_r% ztx%i5Nf@>JLdSe)ffmj|u;AsKIN?Iykp&$?OhCZ;k*1bG_e({v$OMbCl{&(Um&MNn z2xW%JMppJN-$%1A(%DJ#z}f#7C>14dse!Up=9J`RTHB#qR$MZ1_XT1T0c>MJB*fU} zNFr%ULJm&1Ofo2IgMcAl>phT;bdtKk5f9kB_NbCNrS|$SnAKc)7fll~V)$eSLajY6 z+9dzxy(-IHDhvZ*)cOlb2S_kHzzj)vrnaw)BpA9UMikdK=W2W*63NZYaiT$$+U~Oe zt9Iz)tT8Gde0*<4r@Bm4r?rSy{zZ4`#{;9QBdX}+-X*$R9Mx>*>Z6u@O>HWZKPOUy ziv5AW);Xyry#ynhl~S-)mr~T0mC@n(qwHq!uhH-X9U=G^bISGC1=$cR>o3WyRP8sb z`C|o+gKoVG8&>wVDufaE?x|RtO7(6(VLJ6kg_C-^XT!>P9JQGyxHbCLfd3%5-APQP zRg?O^|Dtl?%E9Uly>NyUa2R`ZQ~`6El@M6@fw)Pn{lVqKtPk_*fefKg8i;I)Mr38M zxCwaj6BS*edp5<86Wca&DjtZp7Nj}f6(KD(6HsYS9>hv+O3ts%8Kg~SEgV=B=~eWF*72K!9( zY;rsPLE$WQAa^Iz?<=d}NrK}Xsq;brVR zal$)DZjz&m_!pag(SEJG$Q5J?-rG~__iK=(=?s*|b(yxO_p2~eu?I^pEGOU{opq*$ z_eqY3)84=#$fGqXd$WBO(5aV4((NvfJxaYm{ZO9``mL;X-1zgxpQNeOv|g4> zZ=*45S=!yb2bL_w2}smmhBM}H?38e~N3# zhde7~zI8t7rHw5wd5V54v_)>z?Lp34KyF=-{DIsCzxY{p_g92v*HJOU(VbaKBdDlP zg%>0Fw%fd{aVJNsatc$K2?n}EK6NM4nE0$r)tQ`a=)HK454{bEbv7@Y_61lgpQVYS zcyPS2)tVa?!?u_zXJP!JYKZ(ubTRG>1F3&KDWD zA@*&NKv`pE;}dxR1j0%wBY9}R*T*kTlOttU_GICQ75rQS5^o~Gpjb+CRc(0`5;-qV z&=g))N0vVqh|DbAq9&TjD9+V%dT1EqN`%QOnwP&nLk#bi8`rAu`&3frP+4-}f*-iq z+9wq31?tQfhKYwfuKtPWq+=D%Pz8EZ>$JmzS0UK-fGd|GWWFf5dK_x~WbY6`{0>(Z z-zsr@VZK8F^u>q+^niKvd$OdNR$WS#6q zR+L6w+sLfx?<@PDvl)X+X9Hob z-vnL##Z^dJXR;f30$M_hK4E`IpbY~&Q0c0Lzk5I2dkJ}xZN<~Qx5F^r^vcf3d^ziV z>~fzrb*Lolzwrza5;MsBt-zxfZQTIKUjcWMu%L(SS9N8XbtEHVV~~h z6@PSVqh1llpVo1SP{oHr1Pe=?t3p{J1yM!$Uh>U>=DLtPFPR7U35O#9DQmN?^62%u zTVR_`8be-f2a=m$j(n98*F&aj>#KIlbG$1TOvk;N9xNyj>hTE#7Be865N5+iKWOqP zss!5~7fk0>0b8vpDPV394&qCrmQ&rHTEE<`SZLmMJL6#TRXO3ukrsHae^aM(hNJE29P~oN+r#8!-J{uZ?uoP>mqla|?!;OR{!vRN|v^sq>QIo@b zT*DR*4Z9!^^&0Ya{H5J#x{Y)W*;$q?jMUhN{Dm%TR}Oyu;JssZ=g%#V3oD#Ka`%&C z`HYygQAqhgYz)Kw)8++&FFSo3GFgaiE?BsQEPUkVnK4bgzZfa8xcBWQ$~};LEvNJC z#umcl1mujPSW{mqu45x8*%-t4_(xPtqJO@;KE)F27+PrAkKCnNcKbmraz)T4yPy8ARoUh0hEO`NLB9xl6zPE<)zV$M_J+SoA-$W1j_i{52+{@W ziF92W_XZC>!t239$jn7VX?#+vyK+`8P^tqTxKdo3>Ug;UtNQyzWA*ETFOA+dpD=rp zZ=frGM{TD#UIANC*UN|uf`)U83n8;sXkf7qK2S1vQ;m!k)PzWc@|xhPyoNhA5b=nM^3ciwci=Gq>rg%&XdnSihr*I=)b+yW}i1}1r=RqY;;|rZM-o_UFDHwx*JEV8NaQTE6ybF<8qGm zw3crKCVWXzH6au>DxgT@ypv0hHq^vf+9C^V!@G0;1v!IyLsiLlkOXO03n65?i#W)_ zyNrc)aFF$t$5X48JXcL&axd6ikx_%{$`%7sm8o1m=13%$`&FTh?PhXNG=>TmP&qC> z5qN>=1QW`3Z?QaqNvmZN=j@8q=dFU+H`NADBGmE##G{lxX)K}z*fIxJK~K5zitXYL zmRtmW(h+c^{KS4A&9C!>X2bgy_p{Cg8d4jImz#jJp~iX!c`*jxW8#JbGqQakmrong zJy&M-6i2JmlL0NbAr4+0O*lHbi!Bu&qsBdK$~L+>49n@t`&XJzBaMhkeNTS(VY;8C zbk*c@aU8+ah*)D*NnhoiWF%@AM&OPfr7@+T!07-|0Gz?TA0ru<3!!m0t{a!OF&Sygopq-f4 zZy4>+oilFK+Y2h|{ZkiTot$jw+phoq#0|D!ODVJ0sB)?OSTM%$tZ=79L{s2-(9&eH zc{qA2DwNY`(ph{u99qevkU4ED?j*c&lM)n`1l`PB+`;OYWKstw*xTF!{S3-`eHcMV z<74k~;%#YJTMI4c(7voDD9I=J0K7(?-UX%QHdj2eqlT_A*C^BZN2og zsJq8bhiHSRb8@Z)VRVs>t$vWFaoy2+_~1H4tN@EyWxuU<9ihy4gbCw%U@zpgq%r26Dq#YoCH%;X!$tzzeqoT{J)G$IntB0IEM zs!&iQxbd97WNfE>C&gTt@8AsIPvW>li?})Xc-lMc)Vx8HgSnlJm}zeUW~YDz_u=Nm zplf!^#uik}i@PWz&wf<9LPN=v|IL6HvXn>0B{u;vFjmlo1LF{P724LnSOIcMXP24w z(y!z^v{7hUfH@~}uDu#n z*=GPQPPcEYNO2AeSw>lUC!b`720G2G7LfOPud&7TkY1tOZElR)K&M8=i)@Jz+~{Up zv>#9d@+=TiBsLmXLH^yOTc0s2?f85ojdZoA_mF)^=_3E$=y;l6McE@fp8aUMBayJ{ z6=S$`0s%Inyt^#L+);t{lIOV8K5GjG*#hjC5i_8AG3p|2hY4yLr~8zkBX=HHEE>s{ zDP6M^TQ;$qH_3E|q5hu3()x??3|@sV(AfRXuev?|=?f^$#)WD3L)KSp!?ZX2{Nu~#N`qEySD_qS)Z^Z(8Q)2ID? zzSJh&*X`hN4M=sSAJ z<1!*x$T>ZES=m9h*F4!P$7fkK8sV8SvpCfu=S$m5JjHeT!F?x5zr++oAI?>C*zRNe z`!1;BS^1S+&UjcH-sSM`^f(jtI_)XncY#^$$;wdGhli% zp876WXTYWsz~!ogIEXY%=RE(}d%Y1GDE^c}?og|5?NwiGxC#nhMlD9G&RF>ItkZmG z6dxZlM_}Y~8ou z?xd~lqLdEc=S^nCE1($~C{95F>n4P#fA3y@hz#-==6?qNkTB#x#0yoIwl%lsd`2Wf zW!277m&*Vy#v~MfL}cB00|phIzhVK7m#`1ORC@$ZkhwBt1RYpNRJi{@u}YxUrj?^H zR9+`oyXEy!b6*;HQDWcZTa9;0r(K0|LMu;V4hC4cxF?@4 zU>}%QNDMLOsD;)J+->{q_#Ar40s)A*)UU`4gh=sxOaHhYi_mDW|Eh0lwb{&ag?j1m zg-t!aua(S}%+aUCwNkV}2|vdT?La8!8KpXhu+IW9=)S%%X<8^=OE^Ilv8-k$`1(_G zID^Z%WdI?#+%8^sJlx`*tuO?Y9KOKB~fEnCSc2GhEIsBt-J+kHS4mkPV?+ zyIW35^4g?(eeG@lvw3ko17D1~Od=YZ%*VS1)e*y$=7xn9fgdiIsx-TaO1TU_gXB=6 zF!FHbrtRh=nLkDk2-435oe^`_*Wj0}t+q0kl{$2OE3QtQVBFtv0-Y8kP*NXC+e{{P z(a?hTH2V4k%TZ$az?04MQ&SGagX`rJQwo2~^ZnGx$?FgauoVp{vMDv0tll7YozA^j zDw!oafUHL-hHi*2jRlw)9{3K^K|e7_kdhE*_Y=aZz!*;H{Zo7Sv+6tWyl~{RDw}*_ zqiiLg(V}C@s z$f4moGA2t|0!BSbQP8BOIxoJhzoYZgVfgv^Nz&Q3vYA68)ugPsC8(d3X(( zkXVc~rHY_?8PYd?p_qC9&Dgd&rfmftI-MlxNBE1|gk~WNA>&L0Wqx%{EgVFNR4OjU zNyi^Yyo=0oizD+%GF=ig6xyEL>=lgDB%vCo>tUK*yW2R4l=KbEm~%$8STAtn_s&bQ zyu7@j3@suH$NYpw$YfXI=1f${j@Yrf55|^6Nd~x@63Zte(p5%6@<#d@+IkAEgN01$ z+RD#eVpCa$G?mDbiyQ8?(5-c3`W09(HFF8@!S*Cnt7fd1^pC%?a_-guX0FC{%%|Vv- z5}l9Gb)di{-$d`yOxjS{}sRHl+AuoQ2E;ie6-6N`9bY#Kb|MtlzUex+Op*y;n!@dwzH`# zEIW$a6)%~gsBH%~N%6cSv2|%uIQiN2Zi$Y~bH};+B@~Y%y&kxs$tmbx9t2Yh# z1J0&fE$u>7Z7uKU1K>aF&al+f&G-~%lA6Qbf5GCmU{#Hou2yX$dbN8!B?d1X0j~xM zDE&##T<#GmZ(K6edKkj+jro&F)XaRog(ccZ?X~$3vKO2qrB+k12C%*cs;<#U<9 zcl#If0NGhCGb5(5VD>jm!yJu?L;#C?Hqx!i(4s9q<;qxue67gBX1lZ;mBpRR#1FM3 zJ_r%gsXcfrpRl%PI)Sj%pMvY_@#7e-)%%Eu!=vD>!%d1|3oJ0;j>65spn)>aLzIH# z678m?PKsQqdm>hy9*ObZx)6K^@q=>-!;nJ-+-ASSJU{l2X!s@fi&nbz;x0mi>Rm_? zubxRP3(oNiT&q{(HRNFPV|;&s!n(H^*5;Fq{4%2)(>V>3ptDw!5_@!-%mo>JE>jwx zPv6ddGTWV?@O)ndyJcdVqo94>ha51+MYF((mc04N$U4&9-lEMQpfxaq&5vFN1%+zo z=pfuGJQ_ID`!S*VVUILE76+;?PA=6#M1vb;D(?|EzGJv~s8uiW}V|fwjU9~Ar zY0+xx$MTZNMC!1Z#u?nzv&|kH_A61Af>~3OY#B3{cvAbAK>!p@QPwO{=#`d#!pp3a z)zwtQVOA-@v@-$xF=*$z!= z5jWo=YH{V65I%ox*C+j+93QKQ*~|mWuGI@gF5o~0J;d0%abFa-mtq>hMxHBp_W z_;iGAW8C!KZ5_(8>U7w!`$cgiFxGdar`)ip11Ys3kW6Sb`*Kx^*}U!m zZyzpc3wk5~M~U7Sd&ObbMd#QN+rv9wh(*EKg3zkv!rLhBTAiT!2$PlF1!gKSr%?Yn zWhzJW$bI75`kIeXHD#!yBp4A;Z)cpIf3J`vi+LlCB*cpHLB;_^AtKWZ7^?OK-cR_| zZVjBz1QM$s?J@O)0qQ4R>{VK-9K}<+jQ(T%z{8AIJpI@^WKSf!8E5aiK%EKa&i5W9 z!Us-`u0H2TmI9pv1!2Q$ME&3nuWbJhgGx!eO0XGaKf^8&*f;e-!=!vIG0dF{{T@FD zeJuS*dAi%8w<(sGkDf2ve0prVdqenBL=)`2^ ziymHBr;?~@Pg0~X;((r?F&*>_WgS97Ki!w|Yv;L=hgRSO(>5r~)7IRR-I(b+bA(_y zE||3Naa}be;D2HZejdNcld~2xD3~Ix+bZda3Mc**W>IX+J)0OZcZNCzQ2DJEP2P=J z#fVU1i%v1`@;Y4gch6n-{w~?zP+MCZzhq=IjB>f)M~igjsvcq`nxJ>$C6UZolm_p~ zd%m^UOhgagv>FV$_NOt^{=WbaKJUT)^|3^J2U#4bEXSXE;>CT5au%rFZ_FlFzY`ah zzq44*vsCU5& zv$gpWF8s-ukj1lUz4l55Mg2BrI78Pz5^leuviN^%Z5l`$jI8d&_sk0Tmj>k7MB%2a zp7UTByApwy=Rnrp?fUUaj7=^_{3qm#0~Y93{vp1(Q?l?JlyXsYaiszPm&-(yHF~p5 z%Q`k~iM8dJ&i+`>DLkoT(2xnu8`OCcVgSR_LKiIjBvF}mB&-!1osJWDWwlrF#g(&8 zT~c(|pk1x1-7|x1JOjML|C>*>h5unayOh{Osn@d8sT1wqQRVd7^wc>tGG4E+uPx;y zx;|gsmVb{@htdhQfghVzwi)p13PXu@?`wz1)8F;7DB6PL*nE2`tY(ObF1)^lE zE8Ht*Z@ps%yB&D6?PIOKSq2^@hA1UG(I92CLLz8Y_M0s)e%HI9L2hnE+@ zUn1z&hXG0D%M0koI~T!Vo9)bS=Gz|Hq&A!53dCO}Reqq@(-9z*ozj~sB2B?_$&-31 z!HFSrWwZy-ezq!7J0G?$4#;3k1CpA4cd#$L&$DnC*oE~(`~I=PrVYRoJE|l#^|UY`Yb#7x7#s3BP&g}+{8bjH!Bpvz z0r-9oOk7{ey-2wCuMcQw;-qAhRLjy?Yyd$9>|6q#KXNnwO5&CQ1u6HWyEo>82dMP2 zIhb&nxm+IHRSZgS#ZZ!`&Fn81Isau7(D8csZr6m8!yM#KyiAP@SYj(sS6+Rne6-1Y zGN6K+W}479$Y9dq4;75S=Jfep?u8sew3v@bzTieTgb2G9+5Aegs_z@NRzji&V;n7v zaNW$9hsUy_!OAz+er{jgD-((iCCZ4cc7IKme;evP^6O|kcFC?)qYpZxSu~FjD7j}- z0DQSQsUoyfOs;!OVTfe}4m%qbe?Zn|6v-}1RA|BeV~aqzq%o!Uhj>!BEgTVmB5&Yl z-HYs)^&)9nXFW;dYC``1aLHcXh)@N8EIb4`)Bfd1x^?b0vrUQQ!>q!LB z#DiTlf~{8`#C7{^#QP+D|Ca>cY>LlwJ<|}qZMMOBiZke`!B`JUw?<#^L zNB1g$DTJn5`6}zrX-sy21MlWvk9i#&1e)7%l+s)>mZX%b|(8g>BM**DR zNurdR2RvjV@k9nDsMzv;(rLMdYz5xCSa$rF3v==}%KT}*I!i`mg@sZx(hT~gXaDHU z^?+b4g04*C+EavLchG0NEq9ZBn*G^b?~5&0J~SUD2~qSlb*%5_Uy?Rp%;ne5O4v_q z$_eYCQ}J}Zk$62W^Q4P14U5gn7k~ru- zm`o_AdDJ%{O8$QQDm*vec{GWa64+lkLQ zyvc^RfgDZ74U1BsWWo~4vd~Y1xWH|(?0ZE*V1PzyWE(Qxri1kWBt&a(K@WvF*2kG) zvyBkF!|4lchQ67ai{CGk*{iz_vvE&WbcG{Ti5VVF8P*kq+1ivZK!o1wJf zDSH<=SY-AK1bJ5T)3+!yruebol`^BTA9kyoe#0bRkU7EDk70%uzDT>w*v``=oCwXQ zs`ob(@Gy%EZ{vt3TISFYi#u>1MW_+bWf%f%0?zfK7TlSYh!9!lh`lvu6;SgwHo zlNt%8v;3ZFTS_tFQ@G>}w$x%<%UWS}^!b_C_=;ueZ>G-s9a6h>fp zpu+X%CAxg~XE3KQn&aiE&=dItoylkuS=}946OPqPmXhY9AA< zLz`=Rl$4$au>@2AaiPF+OE4MMa_cBNrF0UN&z`Vp9{EJ!*)~_*ju!DWM0rC0kyHB4 zcr2^{1?Sp?vnNg>^LoSnDh!0k*uYr%s=P!eYtzB-W7Yip({Lw{~xVE=T(F$nyG%lhu@p znE%jk`DUK$4p-oj#a7iakcD+Dis`ke?n0egrYt`KaDh{1-U0 zwYId~*z-C3^$S^~w#`0CG5Eh4=wKd;Gkw}*B<{x0hlUV1ld7}K< zC`6Dp=tD@0gn5}nU(JJgDIZY$ZWnK7ZX{qVn~=Zcur-O7(ekNfFJh1)7zkl|ZGomV zC{yY~$hbc8b@F9&Ua!7-eM((y?PQLO3Tw|~70rFio4V*qlKkQ~pb7nTHr$Kj;S}Y& zDW$o+;!{gUQoL;%gU7qv##fH*OsE9zomu|@iA?zF2k#W1t$qT z*V(HhB}V!9i-inOBBe{Vb zLbRBVNWS1?CeM717)=9be#;ssZTYO(Ofl(O&pm@jqEFm@R!_OnAG_Es)3_OtI}SQK z1rE^swSMOST*u#gn^+_DFjYYVto}7&S*n|b`COI0tTIgimpCo2FHaT?L~+`hjaVOB zsGLrMZje@I)bhKDueqvX#)6PW@%?5OAiZY=WeC^tVUD$o<1ROhBkYHqM1hiOFEw?? z@GLT9=v0=TB#rUYQs)k$SPdK%uD87lZ`bvrFvoXFN1r0qogMyJ(V%iSlzgS4Z zgurD9)~pUl2*|bl{Q8`1v}vagRhX@Rl22ty$`3?8r>|x*?%{7 zBDKON1S`D%J;Dh*ql8#NFOmRC098+lj4ltRZ(*t*&6--8Nt|r=e(-Y1(q^UZiN~JIDr!U zZW5NxH3US`gTyI?Rtb!Lx8EV1Sw3Yvfvx7*AW6Op4ZXBfg>>u&ka*dY8PsZW#XU37 zD)L>t=altr{RpuPk}117L^zYJ%@6P(X`8wiZ5HQ_{-uTL$GbN;3EtUEG+mxEvc zF36W*+K%i`>n?21lV-%13Kt?24QIHb#n^|2zIF9xBnv1fZ+v|piZAx6b^`H;qv(0 zrgbp62|)BvAiakAdv2&zLSkC9HPGc#9!}mhTRwpqdgH*%FlfnzeOnZr*u;ZKr4?wQ z7vJ9B@_>i*02CreMVh?2vv=z!Tj|e{TaFIA4Z49roizlC3h|dg-jHI zy8anYW`rx?z3Y%P@6miJ5)lbm^oJXtxz&#oR7?6wp->r&W;o2ZR!kIv3wU`&LZa^B zdXN;+HWTqRNhH%`Boo55)Bi@UROk`aGzh+h&Z^1Ln!x4;E+wUb`rBDgVm|=E+qcI) zA>FNX)dcqq;{O%$0?P(;1_OdDiKXGKTZ=&hcz3F_1G({2dfD*ASA^Ndn}7kkZ6Xd)hvLu&uKF=F=e zPZM5LEzJ8?tzPfsAV}@HF<=e@?S=1J=^FI)>O+XBVr-K`A?+2?XVR~AoL}iORHg`4 zcZ{_soMPS`jrIFYcf7}&g<*AVzV}F=|B%u5Zc-o?T6QrfNlwleS0C89aVk2A)HngdtE(0jmh3@HUxuClyxvVG zUzHODtiqz!9X)%b*?2aZmaf@(`Y8K^UP{je1x12Y&}aFT6G^%6*uk(ebP>3<{{ut4 z!+)14=XW_E5p`b3jTJG09j@U$4)Vq>@7>EytO#AWXFA8TxbV#{9dM&uf*XBd1*5&V zF=!0a@qv@UVt7wSu|FDFJ^ff9-Xit}tMNgexSdjR#C62M3QjNu?DNsxaUb}KOIO@E zuNe0VEXvRk)=)RUk%F>1Z;Vy*&rLQ)&9}g?7&(I~g(QsZzz2aRGf}bO9ub<7zi*^6 z#~H(3DoWOHO2?(q-1`N{-(ip+iKH)jLYa{6rOrr%&U^dRG=1}rdCH#QlmF*elZ>U_AS ztV89ZT5bMomC;e0rt5bEy3S!oQzd@*h|oj8fyb3m4_-VwHz&6jPrlb)ej%`Ed@T(c zqR!7zFHu82>v?A)29T9xi zA{Rp6`-_~PYZg`{5%;VuVj3^D{qWIKogdGM1Kxlqg0Z01y|F*d0u62lhwFnlK%M#v z(wn+2i)$j_)DF@}zioI`xP+83dY(<9fd(&Xmf}3-?c#sY-*jXoWBC5E<}05%@T#M~ znn%)<>q#|XH_a)pbKVqT+Uhf z>EY=qI2w^P`IRLq0Po!x=Xhfs0wloTr0&s7M;DZgH?Y~O%8IhejX46eXhH?4LAE5U z5~*0u7RUO$C=Z9EAyd_!{&jmjE(7A90=7s|zhociyX?J>C&3+V|5n8hL2}7sEaS*-gtYQ!Yq;*lj_D44aRt?0* zXBnOU1;=52Rtj-Vyeu2)P*R#!k7lQHCERihu3@a+|#OQ`-RPJaNU3`zWpP&i<4vuF)x* zD;riI-+C|(eY#`SGF5we0ZvIX1CeMGlzN^kXL65Cru!+N$94Q~Nf;AS`I9v&6b>V8 z0_@T#$t!MRr!A9WL>vt77ZmyQ*@-uu^}7Qk)=mapRHqOAjxet`nsJ%KqKD$T%mZ-2 zd~!@KLxDP@DKv1lQS=&d%>7FHf$#$xHS4McG6Ry59*$b zX$ttE**OaPm)`RU&I&v*D~(+!`{rD;Ltq7{+4u!&@$x^zNXnr`tiyYUN=9SVNu&Yk zi~IrAVg=miQ!5aO4%EvalRu_<6;a^>VX$e=Rg)lmQXe}jx0lJ%f-TTaA-y}oQu{FJ zE_d|kTdKQsEx7Pv;eO^CQa0Tt4ixh+V#JAYL<2iC6Qu@bgkmh{uasc@ZK|ce^fwM} z{CCcQ^tKr(jCUiE?mZtPB|cMc5+OH&B56V{&@mGRaviKuzNI1jIMn*nRA%0M4X+f*(l5%s`e zz)<%#SN)Snt@Jx8H0_Y*g!CN0Hcjr$5;`Wk9RUZl$do0|!rbbw0Sdo76}xg&+!N|V z@1X&_MI}vk5WZR}2rOi&-_#&QRlQ6_Sq#^FCkrG|>Unqk>A`2_k;IZ#4T*Sz$Z&Vg z!y()2YhcLZU@cHFAWZQxjGRIz%GUs&g?z?Uu58q)HUDM+r)z>~F-O1dtiCOAA5OCA z(e38WbWOggBdU&SiAV&TC;FlpEabwiw$OI zvDoOf%uBHRK|I20s+vZ|)Wxxdz3z0+qJ-j3%X*<;l>WXOL6{F41n*CeAr2L>7K?Rz z2HhP<6jZ1tG>S^nwa#55g4g??(+t^oGBOw?qJFDBLdFsE9qC3COx-{gofrP%iIIo70h|n zDbGowkTBAKJn_Y7*velTx$fH=hdfey0S9AK4Eg|;~ z+#sn1#rG(@xo&p?Te&t!)^SFA=aC#NH3RtsEb3ZDC-@)gtY@efn;DB?f_?$~*IVeq zk|U8kyG<+gS*+WQn@E8T`O%)WP+^_!7ctsK~5- zS`-H33qreBzB?`E3)qAZ^;<#eVsLFKhdg-Ch4}qaP~*|GRHG&j1Rh!~{KIepm8pQi zB^n`BER3#6KDDZ-rX3fRlF|OrR=NHCxq0bvwcLg4qbo#8%bFkbR23i| z#>`2Z$9;W)%;1&xW4&BRU(#y{jbFsqM%KDgXy9aIbHYbCViqw1v&>^kr}sH*i_Z%< zn+aRz{44o>{bn1fQ{Y{^)+xJ9j|6BQ!$lO!iwxA9OiZYo&TP!!_*NU!66ZohT1iuaLDKDK!Da=WxOjgKI}FVcCT8oO_r&1DaK)eDV>rUlcQDpZ)Bx6U8zoiRbIM*gE)B_nVR z8!hQEDX#A5u_)*Cy-bA77d9_GJ!vL2oiH~Mkd@ach8v+||NBD#yWuZBmc^;Mt7$1d zywOYLYxA*5C*ix*G#GULT%_%35&|yQr3Em3?x95BqXPU`<&5nJCd%UV4)uoq0ac8l zE0CLoRGPsSi6PdG=>{h;I+Sg0chgqL9D4*qZ%}qQG%oD6FZ@t2UWwAxL4sG09Q>$J3Oc1ZMegr0ZOeEvf zuoTNLvTFyN01@NnQaT03P#H(R8A=lgeS9GJL5EL=&nvnIGQ42gNCo$sT0Qj`Xlsh= z0&#_x&8NvLt@{nfG#e6q>HFU3=*$H1mv&ZM5-zPCimM-IW6mF%?m*~Z_W*p7kUjjP ztdre2{u7AgQ0Gr35EDP_Sk;mnGGQU~>Mr>}A`8+XsQXR|P>+JZ^@Za2Gck@2@K|rw z;t%?QDZQhnxJ<`rJ8)L+5Rdh?>?uE#FaWi7U}*I?6#eq7vJEREBvk<_`q1z;$X0$@9OMu-EdM+)D%zJ?b1F zCO^2?@YLP_=~K>p?4R)w%7F$-cZcX8SYu9U<1%62>uZ6vYAi3;11o2nL<81HsO`^f~wJ6>rP zzxJ|0eeb*eMxm{a5jumWb=}5Rs=qS28~{2^T40&a*_&C3&3Bnb@s{nEYO|VVX%V9k zL@d|lTn>LgnefFt&ulUcS?-Aw*sVxU(;U|P6*61BE*FL_tqmATd1b3_N3P@2Rb;p-&%S^u6=KpCJ0vQVh=@BgRujo=BNx z^)m&sz!ZEJ#JKaVCQ?nT`KF=wZGPWNfeG4ligkI# zdK0z%Q9rk7Hsm=!h4J1YXcVYsCo%{$p2ZT6&a1^eliq}6U3CGj*F6xCWbhWNv|Nzp z(Z}cP6T_<_`#(PR;Tfy1$SURG({bXDlp2zl^vCvjyvxIBleq5D^<3SPn}lTim@b6Z zxT;I7M`)J=VCl(_lljT@@*`@mQ3UWqIlTMPDeiQLgog5o2a+#4XkYA_lnAe7%dznda@noZKagYP0n7h(_RcE#D;Z&U<-FRofX73#=6 z=Azh|O4_5|(dmOUe*XD{xnZDs9$gk+#$Jej- z)0DrrOOurKREJ(~gXxh=O^6oJZepqoSv>&eM zc90F95o3NzL(l#52R;;!ZP+Rb)ufg#vNvsXv_98Ibt|9dFQ4KH)+#RM7?;&$9c^LL zrcKUS*h@b)f|?!({wK+Xwn>E4asZ9-C4^#k*M(0_uO9cXX3$B3k7kZ%9Ctt~R6I1C zM?`0SF``e`Vfkx5q;elu*?`1C`3=b{m=bdmeFhytJ~#S}2+;I%2ml4UkOvu=kTgER zQ{IC>%Ys2b3-ms|gZwXj1E0P5j5_77mU?;4F&!SIu^j=&)qfh!Z6+99M`mmjLY<|H zNK;g8=%)j-j|>(+iT-I`S5y6;)pDjI7^iJj z&!`bB!`IcogeF6z)#D;{j%MvB@IXr(qO37!VLN6+!UZE_AapUn)S3=!nk0;UOX=g= z{0PMV)BIMR$zxC#O23IcqM+&23XNoWEHU8qPL&vdCAKp@uk+og!kLsJ$;*V7QrKxN z5aE#uve0B+lBu!~`4Je=y$XjYJ!!Hs<@vX1CxT06eP2&P7oW|>dLMVtGj2QL=w~tK z-7X@eg^qq?O9HL0@duD9xjwO@)S+h8B3!aBUIKz2Ia^UGO&cE4+A$X5feek zcp!F{G}KpI60d4Esdq8cwgz-`=0v3LI#o zXBBn3+G%Zor)LFgg6A?7R#4>r>ET?2wEiH3?TS&iNUk(RhwBnvpzf6c%J?85kv(jk z?w|Jft(KB+^II4>6|q0rjUM$t$l(Y`Sf}u=+VVhqGx!IYAY& z6&A0-fOz5j$M3d2@;2a%yKZz_ARt;WxGbgi@c#VjaxzU^*+z_pHyX!eCd-_YRZ<3T zl(QP-?dT)g1I9=%O2-M~t%GG7=r-sP<$#`2tbXEbfr8$t8!{&Uvl2L^TKVg`#s*=9 z)oIc2&x<(3`2VVoVEXdqVpuY5lvZ)6oD&iZSfj7mZZK-Q9Bz^jO&-h+sd*};1BEcn z&_fv=7wK@r!DeC#P-@8WM!0UnhFy!UKVXb*6k@3UDv6;Dms%0_=XYf(4*L5XgW&vI z*icH9E@@({w3?1n=2lhHH4t97jDf)KEY`@Id+LR;*pajY1-#Tg96+G77Qd0JltGFD z15$=nn=P#ar`9=6yb;F4`yukNVLMcZUM2A0+*+mqS;o|H@8Dw&Tkb-X)2leiH#2>L ziphKD0I7&)B&mqsjg$!aM8AFVzlx6;lk|dKed^-}9`bpI3&^2tujN=|!BxZ3f52Pf z*yNa^9VDx_DF z?1%xz8c;2$X(1hb1S7f=$!VcrK|wD0`7v7Dt(lDLf48u^xw*$W3Ku6vjXT(%R={~cRfsohg?GG!xn_x}!+Pv&fnp>;Oe96L9ZktIByZT|_esXv8|~uKg`UeO z5ayv5F|{e&{yJOq+>#RLt)AxRw`%|?l=j+so*Qfjw#5tVB6mQ=oLp7eY*Hi9L#Wi( zO^+^HRbIOBHGvLvelhbIFt(QzuOds4WC|YG)&(>xX|c17{;JVW^-HO_b~4ac78qfD zN`7;v>dNnL&I7EzoX-aXFhsy7Fg!Snz!FZkpP2f*6=!9{ss<~=r$qbTRv#Z2M1}&I z4AU=n>q|ugq!ECCndMC5_gLb{geqU1ounwU0QYFA1`1gihnolz)_0+EvH6fw-laH^nXe zTe-OW+8o_?r0W2p7D4i~%*rAhI;wx;8WAZqDBWk72&`GBMC|t9iU|9r2G8+H_CxGo zerbnx@mP{OB5gekOOZVa8;urCzMd8J;>bD~qDn zg;v}|L}R)zWd>zq2tDA+qR8gBbLP1%{qh$D1$i|nxz{m7AMyxi)_=Fzf7*#uqLjD0 z)qf?dts-p*rNKly8v=Cw)Z;Iq`+(u;JcJy+0Srjl@uN45Z>EG|1vc&o zV@jJ;bb-_44Hur^o=Oz5KsOw_S9~Po8j)-hPO?R0#tV<0P5&hd^kpfUwRlZ4`#Ys; zq%>?^89NcW@q={U>5XLReN%GEO@oVHhet(~VOF3<(x{>lY|Y?MMF5BK+d?PCkuzDd zu#)D_9=FnEYS~1*F@T>v(l2X(0Jc@(&|ey$1+Q`6^i$!|o8B25$DKT_gl&d{m( zx#jX`hX4HlN`)Neaa6=!RCSosF{{wzN=POQP!lujS7i@46NQ=t7`6I5?Mv~Yy0$>R4H2|J5=3opSgv_MQ*_|XUj@Hn zOBh`HIh1&|1x*$t-sE%X#VjgV@egumo)8Fo-uN=;$W$K$v}cJ2z?rnjVY7+qEpROA zmPia!ZuLc3Pib&d$yOiyoYiAezqQTG7%||;(1d%cx{@D*eG?9G`i zobZonJ%l~laq6rjB&MGbj8SR@`QU-9ZQO{sCkFt?pun_y^}hfVk41v%i> zny4fitp(Quvd1wzq8?8VF^?rDp5gS1UAG>U%tK(471hJ8_U+nGh6oN{G5ID=KPc$c z`f;84X^XCh^O8`^M+(6PHld($@Bsr1m+!QJ!WY02uc;gF zTw^xdJWd0UnefCUC{_{~VMO2CNE1<#NA*3qmv=Yr#C#dh=4{0x*q#rD7nbowG$wAr=fGvbt1GO$8!%|mf(b%&}55lLz+QUay%}J%$v|eg2EG!$C8#qI)6LxdWGs$~KH6tnV#OV+3Gg zY9|U3iHwXPDHqZ-gf*;wgF+Z`6Pe|AlE}46tY%Gh&*|zF?40gxAchy7r!K}TZS5DT zK9HNI3TftVhDF6r_Bx~lpmndNpE&HBCL z;v7Tsc;D0(>L5O^T_=HqV56^I^Gp@vH|I^%YFBtt#$z#r22{)AkR73A7`Cq-AT7*j zdjIw0So(;5&sGKhlc`!p#7dj=hhW+$hzI}?2j;rnDfyKxyo0UMrHs3E0NLW+g1z4| z$6Qvm^wD`pt0Z9$%J@F4<>syt;jE;U&|^g0?JiL8-%lQ^<2g6M$Km z4HG#H4p&tFr7`qcf?rh5+x|$_VS}9%8YPpi&N`#@vVhEz8NotFbNMHs1WUZlwOpdB zotyPO7o78KGrOT0c~Z2JN&&Y(W=D_aW5?sb(v9e-GhVwbm^KR1OEZr;c=I4mW3etq zW&%@(z(L!hG(W(QXod5=jM^SYbQKs3io$;sFcF%_CGc|1D;YA{Vt}GgEf)q}_(E^F z=%CKq__a1**6Ia!9x;U8#ILj4xbwia1Fe!R*8*%r z)83Y)$HbiYKRcvx6I~sx4VAFjSyziP&21Z9=-Ftjis3`1AQ=P(Kt9S8Yt!_fT7Vr@ zJdz@j-9^sJ7K0$;Xq@BN=Vj-b9C@J`oUH!XRZfQuI$V-k2F4MmI+U{7o)sSJHu=8> za_jB62^-u{_bxkpRp4{_k3p3~q`n@ zjG|L80nX)h5F^FCvI&no4>@HRb7a$VrCUWF%kjj|g-<`~euk|mXgib>y`Fs2>AH^p z7t`JaXMx|rW7aS_9ts8(%va!D@t*3tiY?Wt&w?UXxbLIZ_Y`e%efmZ;_;0-YsgHt@HJb!gdlxlwUXERvE6;n~4b zA!feEx8y*OA+Y{c*!!AssyY=0yO(wqtBy6%Os%TQc^iwbBcX<}NweHJT3%gDauLtV zZ(J^7xJle{Q*EB6hal_wso9IQfIfg$=3GayFOtrL`u9I72=PVRCY5)sQ0`HplD=eS z#!vI5NJtnBV#p+arUNK6^B^6U2Hg>ma-W+g$8LS1c2P<&pMIm=$EnCq;7RxiJiT7M zL#|#1EV7R?5jJG~yWUD_akaG|(>7dJ?W`5m&P&RNCL>UvETeJ3G?TCbqb_LA))rkY z+MhgTQSbJ)Q01A5p3?yms_!TY6LA5QKwTP+5kxs~5Zr;pD!-aM&yV7i4OMqB z9O?CQTi;6>{W}y1Q!oYa!_;Zp48x=?@wDMgB>4S@E$%*CminTjl2@2btylqGh~Gz- zm>&2V$5&6i+?Mh^6q|bgN5`s;W^MoV(Ax)Ez3$vgROkSfj zi;pLHYvQ683?WBzucs-IS|NPKH1FlOO(|C#J)D6!Y7k2t837@&bAocq(2UEcA3g((#X-$ykhEZUZlUpi;haTfvWz|P8{n@0MBm8J;fQb*Cs17$JO`8^-|g5T%TJ!qvYL{j@}>gEE!Au66p&$W`7{8|yVAF1H3O+Y2B0l1#J{ zWH%C|tre=a1gEw*AAlY^7rv2G(UW#t+<_UN@9({J;KM&Tj#roe6q9JF`>Bm#~848IiX**oY~gVga^SjrAc-#C=zFPE~G39RM-$0a*8%MgCa~ zlXxr~F~`yAolsPA8!R`Y3Qe@d^ojYZj{LnYojiHy?Lxju3+t1jN~hn0BVLED6s?oJ zr|Q2`B%*2Fo+#bu&Ktyp42QPyNcA-^KB%Xz24N=p#ReJ5mCcWr>JXFV`*y2_K+)R| zkGtxqRm`Ngp$RQ@N$irD>M|zy%BrQGwXP!WUBXpyWwTyi`8+A=-#4jj`uC+QMW9kjKA9tELv5p+|0g zr{$t=Iaj7&zhJ09-CD(>EePBov2i4vnH!*W#=gdWEV)!^su1N7n|kEkJbtY{`ITJw zF$pF+pErGppp@rMy91i>$%l3$UQSht_-(}aCvcx6q~Zfs8M z9ox2TOq_{rOp*yFb~3ST+qP}nwv&^2-uF4@JLk{&QCD}}UEN)E?^@To_Fiju^?Efk z`+Mazn>^`FaDy;{3#iO;&65}oUo6CD^ni@ld(RnQP}x!0Mz1!Il)OhzP@x&~m76Ck zXl&XkBgA6S&`va;mC}-G02vQzSiCL%^yjH?X3-S{gPzzw`J5;6{7gRgdq0l_HWFh} zWQ4eYH%PB8MBIEZBK$0RO%%F)oP=Za|IP&IYS3Y&T_zk*EKcTig_E}`Aml-c16G)d zHr_Jb2fQg0ca!oO9#KL6VfX!@Lv71OQ$$sCD8vV$)exHqoB|C@S)h(K+eL6~1c)tp zTNeaHSIsQuYT6Z*8V5n{sdjX-v851}mTVy;&Jl{~NtkTgK3}KIyP3Q+5W_Yd6g^gr zd;CVG0-11c3JbHCV+wojW_9t>SIo6Ht$G{G$5=fzW`FPqGy%+&4@x)}WHQB#3I$eR zBYH#Ft2kSm@AwF|`YZtoyC#02Ln5U86EFn%qcOqBjI6cW9f zcb-rgQ>sT+)YL9v>~s0(J0dXj9Kkg?IFQPWAFTu#_a>Yuw! zicPy0cfAzbgy1u;tB+%u?n$mWkMd31z_df)U9u~S6P1)zQ2?cSkZ1sv!6*~;``c|< zjUG>$Nf5|_kW2e9R%XF1f+yYaqC63}%m<=!&NHk1VsqpQbo66L_oIjO-6nl@SLbky_g& zX+_7lakqITRnL*(dyu#)?fF#un0|>+73Lpd{lW@rFHXP= z9m^9jQPz+5v4>;Pt7tT^3eTom}@3_wqdf zU9F|@Ms3(fRSwggX)Cd7^6d>&_a?j7zEI0k4g@Q`7VrV>M?f2Pibr-_k=NOI7Jsli zAk>pfpW{q-DaM@m#F^|ZF;PFtUDpiijHY)^%J85SdSu#X0HK%mQWz~DbY_j5c3Oom z0bQm4n|f0I~yZ_jhz#~#>xa> zXJ!GgGqC@I{m+(_oe{vw!u*f?o%2_izAz?EP8b#rPQd>wf7fAQX8i~Mcb&gB930F5 zPR_4=zV`fQ{?{7+;9u)~wJ`ts^LLDygW(_fJN~ad^B0GI$NpmfANk*Y{kzZK_U}3@ zY)t>i-~L}e**Ka16Eh1tfQ^j}z{bq+W%ngtW6Z2yF*7j3{I&guFU~J+{&MtJ|FZpO z4JL+vc=;#Jzhhs*$iVP5_+N#UljC2fVg7agU#I>C@t4@YWc}NIk@`?FYy1$^8b;~|75+KzV%oB|GgNPVCaSQ?fyIKi^;EP|2U;@{dMLq zfI`^T+U}>5u>(NX*2vhwh7v$8>7;LEZYXGD`sMYPvEYCF{p->HN&J7J`S;?JF}5*v zGGqR0{GTq<7ttJF`SD-%D@m9**#6Z3%wIlyIrYWL-);X!=432lZ1}bP-wpnIk-Mga zH-anRuFSB)0E2Xsb{kJ^T_CNk^L7FGwYEY+A#{@p__nsT3WId7^EL&&^)?^k4>jw~ zyNjYRmo}Dfw7UO9@9LWv@9Q2Pg3>cF+IzVa z!Ev|w4K=kq1_h8t{8Lj6!PylHySmh}oSK}(UsRoo!i1s@qEX?nravw;L`cHc@ z;S@Fi)`f=hW&_>XqU&i1rw+ zEU**+@=rVS5Y*KXqX2>#_)C=K-PIltnlf|H=Tf|NIG)b$2LRBLp1BEBjWbZCT@4$^ zGH6#JXdJ0A&`ks2^iw9`c@j*sYxC>nlN{3*)7DNkej6i`_eF!O?Cgkm+NqWCu@x{q zD-&ptp|Ig8?iQ{YklzbpQ7AqM2y9#T0;XBXq*FjV+w=zlzmu|vfS?|(Y#(vq&d06r z@Q(1tXb5zST-P8x#&Z_Lde~G|0hZ#Bu215=L?#aa;j8{u# zfv6vtoXbo_nyJg2J|vVqyq%sz5^sKn|=d#;$8W`p41l76G%l zSZBV8LFEy&U6^O!L!)DuU?0C9?SQ!afFd8{0Q6CZpx#8TWMsdile3AtfQ$@G;6LlQ zm*AK_5Fz+G+mopUQju{zWq<|-JH0#FAt95ZBkJ>4XYV@kpKR4W8DXH8n?QJu)YXBV z#;jz3=;Y*pAaRJhPAB(2IX-j?KWnIf#y`mVpX##n>Z{>@pYpGDCqA%y1Nq%<0t-I7 zG$;UnaDa3HOhF?Jk$&G$p8dpJ#)R+wO#1MK{M42HsQlx-w*N_e@);DJ6q~=VyBp^% z`?P7F6`!2Hy2;#Sf3^oT0j+^!XQKW&sr_@xn@I!R$mqc6p1(IHQozm`N;6gclCX=(<%fC_n)`_2jh zVmg;ONo8SeW_Xw6HfD7Ol-15V1&{B+g@RcF%+r;*ip0mynWH85pl+N-yj)fl6RJc3lCAfUV0=td>bOeS?s`861FMl_r`7i`i zhJZ{UojMr?BeOm<+JyqSeT@QoV+JX(IX5!Cq97!bx2b*m`KU*5o++dE(g1L`OaIk? zeFi!OWA)RujPg^x`GfC#GFQF(V#&8Oy`FUFDLMYw_Oz4Cj~A4S$7Wma+6c_u#PaxV zkLq;SaEWK~n`#w*flWg}7P+qa@+Xmv$!*^sw6oDn_F3wrtnsm6xf`=?qX8hdsf#c(WCH&p>GYyYwpJT4yqa*y7G7G@CzvZ>N4Z49|c8Qj{ zRLaLQP_{kpo_{6O*z?*L8b1`qr(bvK>w#6&$eS?O{z*r(N z$D||=H75E3?bAHOL&$)!Ob&KH^yuHEy_d;?I3~LNg;Vf-;rU;9&f6ER^0jE#$=75> zcOgBxlfRR9zl_ZIpy`sr7EoTKt9}Qf0|xn(g2SFETR(C2o=v+mm;3LN*i9Y+MGx z$R+_v#mCH0CQofZKE=G$py7IQ=wH}etpmt~9cBhe^l`PD2EU)4D%%$tf6n}r1oOA^ z{?!@$+u8k^yMG7gtHJr#h;EXKEGhok@lY@%SX+hcvHd8<_>Tyfxu_dde0?#v(iO@ z+?t;D+)>bav(d{$_1siG1RN{sWUw;GM7`u(;X1yxhUmM+C3`nA%0yY*wngi^p{DU` zCX0{TGdRDg9qYNF5?K0qH$N2#exA5LI{gNr3|56KV;1*ZP&kZOLAAhL@H*iC(@V*z2iMqKLN9ntx(Eq&f zO~Q{q`!w@Q!e@nlYGXHi%SASDo2&Q!DI^n>@=%8MHJ|DEFzMbqg|I;U`DGK+Gp>?< z=Q&DjeQFqg&7I@pJ{2ZS>a*YbT@S)XTQKmdR+%l3$LAp4XMAzr*OksGHTRNih>$|d*BQG?F9f@nl2yxX+hUmFOT#i4 zKXc?VcS1Y8`n>QJOs1Tu-so*&dSOZ?xC*FID(bI-bQJQM9*l6yL>v3Xl8m0`?W|(i z{&FT~bN|<#ODE)#Z7#20v3nX2$NW{2Ke%R)yA*Q?T61K6Xv<}phQE`=gl79Zas}%R zUr%Z3N47n0cc_>3oJ~av2j&LI0{sLgzAuhc0CwUXtr|dn^yHJ(kXB3YRllCe1eZJ0 zd4!QpDbKy4XwI%)=-8Mbll=8Ayu%u~;TM)$pYeq8yr{!L0_O zCRx=b7z9<1nZ-10c%7I;*THVaWUGokH;>9U_C%SP(Bu#@Aw=^%QuQWW5ZLt9Jv}PQ z4QZG^{AXcet0%G7SSE(@bH@iNh?ilA+Js4QUWQKHNPctUygfl7lPQ*L{R?Pl0at~4(z2gfneZwg$PPPEql^&Ac)s`#xOL9mkVst!jEE5NhIE@IDy7veYgP3lE20^NUFnjt*2aU7`YMB<(MC{JE)S%o-o?f0bL zcdXx?2|*=W4}TGT~5Z@(D!H6_2Qsxneq#8f95@OK}` zW%wVzHMF-RXW1^5BRWsOcb0Mm*jt{$J;uIq%%8MUB8tw7p1U3>qz23|*FYuu_5iyc zpfy$9RN30#ew~hnRqP@5gL_u6rAhq7uG6_`v2Y_>%n|GABX5Bt{i7>g+;3fHB#glY**sZ4Y)h<4y!5pCBhF&ro|DD( zFvFECF>YH|1zF!!ZuM?Qz<3K3!Au!EZ+gvyYQM?HJYu8ldmxqRo!>=i^J&YGBAlk_ z9Io2doYGmNHoM_m&y;g)nD0izz{$WI8Aa!NDN6csD~4IA><6*JgVFg}oi?yI)ns(Ni-PA2NdY@Lav6Tpm^32}fK_Zr=Tvw4WVn>QiY%Rc-XpkQF#G(Lch9}dtK zGRBMEZaZLICgtU}#47<1advbHX(RV7tK~JZMwhNx$oZr0-U$6{&+XTVVq1mQ_hvMo zSBo&Osm5QV@;VkFTCBpA@GN!iRxV?5wBw_1=M~535ZCow_9-coxaE9JDBV^<-E(c2 z3PAh%)+$OEf-B0?NGI6EEpKFeXDQ_AgA7tz+GvCtCi{mKrr#~{hiumhWjeC0vlrj` zdwm~w9yXF*yMBV6X@XMXCh-*KZiaAlvGC-muBr2-@i4F8?Y&}nhi|rFCd;~I=2#Ry zVeUR^M9#o#n0sZ3tMt7PYdlf7R)kx}(2&iX3X9aoLdxP~dA7z#ogfkACbBrJX)t{IvITnaUC0)G(n?{S zz9^w?XbPpD&A_@7+4T9H#Y|LCBMl7;Rsww~( zv=CJdh1vzv@)?`I(Za^V6QuOpTC0N>2IJlxH9Ja9tz4)c@{>g0NC>mXKV|oEYIEWP zmwa}qNwh=d3{|uV6Ac`dYI{)vI0}X%^7FDDB8t**iW@g48D(V;Ha7!YoHc%PC$#63Y7GEbVB^pl}#?`eb3-Z;St zi%2}lMWE#$21$6{_Ma>&S8fhuN?9&Fi3&novbvfAn`>M?3^Im|;mbMlxNsZ#nN_c1OgegdM zz4n*ynvR4^CMg?MXg>Dq2;v16*ju94`VLIV@^hH@$zWz=aA%;#&nj|M-z8U0$B=6U z`dK2@4JJpO3{RQ9r1dUgMcv&FZ$pWhY`7AmHRc7BZFod?<93_@UJ>3md&+~iMC>2R z32;aq09@2*bARMY3n!Q}+b{91W@yIp@RY3CH<#xkR+C{Ohy(F2KvekL&XO0dHlUyg~S{ zJ- z;rngjeb621T=TWSeiOHXyz|>SO8?b6KPPm@*bbMOdojxSR1F{CiM80+2C=0>SB=n8 zp3vs3vEY=@J@;S>a^LsGIsJ3NO-wL*>wp#T+O!-p!);1BMbM{S#|H|^u~t=bM(-Vk zbzrZE*(A<3&X8fK95nTN7rg3m7t^oeDYhNIU1c&jPzOJ_CRakgw_T9A$J+(#RW zo2Ne=wQHeV*z6Nr&dDY&38nc+-iL<+Kx{rEa<*zBH1?`T)xL9A{{&CPZu>Uol)K!b zS>(!v7GKCCgho$||C?JuG?&YeS!pe-q);$YAO-H$*$8gbu>)9zhIbLQy<@&F5x6$m zp&w!yoP9`;c}S>}Bz=twEc#sd{HEO-!Lb#L%-&P<2g~9^32PT?qGmn;W!pw+bA#uS zk4Q}Mc)46`ouW^F_~{i$0F0&oiY(jOvJ_V%G-s!%{QjGcB+lh9V=lzu=s1@6H_6*t z?Ns)wR8E@e>fve*@yXUXQUKLctO$|1)2wyWxDBw`^Hd$#4oUj8!E(O#tZ_3AQ* zz;0PnNXzS;9qL=(YtFniT!wCBMYReka(?&X8daHG$697i=kPnr7ry8`7b?Tffhh(n zq|Pa^pSCFq>iKPE^DJT(%B-cbY0&nqX_jt@)nHg@qqWSd5?^{uxquyb4>pHpUZCN^ zKrv;r&Rlb*tw0~9ZvbzVT>P-ENLq+*H*n!=kQsPj(qG`v@X3P13+^XA?5>iW6AM5u zvB}oSyYVJll-E-lj?F z%U7RWwm-QgSkBnuvmoTUvMBc$9?!k(zYJ=u=DC=QT5ixdkeIoKHjLJ93{%1wLP-pI zZuHAWM-{DWDnGc=o3k6dD25$yG3DOT22fg{+k(M0uPjb;ouHxYY~^e7{!Cab}Rm*m^ zp;+R~ExaG!oYjQK_hy^CyAI!teW8`F zU0&Ug^u(yXK>vfS{{=+qCL1JXsSAZ_SjZa&th7e>PV%st?U4KyB~&x;JH9}HLIBW1|w?w zVc)dmX8XiMmyf`r5bOiu0;dvFHR7I>vek0NLo`e6HhhICuDQEEpBk6$W^H)Cat&2G3)lWV(k zru?MJFt*XxQuLBc7%A0UFX$=SrF$Kl)-T>97etbI_QKlqGAfXjF^rk)Jz<&AzPR8> zMtpTA20$S;ca2Qp%-$%U4j&Ix><-^W`Tk~RrVU7QfJ!DwsFP!66-~@hnxDWh=>xtY zXa~l|a)2yOUkp^xMt2R-@&9nvDSKO*(j1ioq~ z;{GC*)=cRSNj>8&*wEKqUx>7~{;F|FVl^9lpdoJ9@WY<+$B>Tp0`(3PRhcNm`@);` zQ^p$K3&nYIz*Z36@eM)b>5ofBZDcko-_n-y`KB`XY_GM`c**XT%7#RusE=^Vw#xEr z%^H%_{RYp`8s@MGL#8OP>m0QzU(>l7*!)00Z;AuuqM887=@~?np^8@nI)n&AOS7=% zC8F$A;FdB=3^~f7s-m-L_DkmD9i;ERSPwaj^wL~TY?73V$t<_}Sl&t%&gmA+O%k}^ z9s%M|Orz#F1x0h{AhOX%8weTR?C@91QYIXh-~H)RR-+0Srgb?jFPYdUGI?7kFvSaY zh+;2IqCdwgV}>9$!|Me(rhQZMI(34SHlEG&Q@O~EfLq^miFV+9N-uK?2ho; zs7ckc=8QyGFLI{8Qnz(>4#+$DwcfGQ*mJI%XIqf-j3+DP_g)gv)HE=Nmy1v5=k|LH zNv&}lsJ74F%Z~7Vt_W)dIJudE_AK{<5((RgpcOAQv55(nw=@d~Cp%f4;fU4oVy0hg zl-Jf2@7qUZeIg9vX~rdTVLW^i;dytic}Tm`i>D;0oL*s@C|LFtag{r^>dQ4Su0zaS zmoPw&l5Hkdn=S$3^^&R?rQyV(=aZ>Qjh?n8kZ7FfvnxLLwn?bif%byF{-31loRu~ct#FY5NLRIiJd-;ls7 zzmhDNtK;0g{Q&e?c3ewb{#gQ>Ga!o0o+h<-;JNZ+SzbwwL$u)rCUJ;&9uBzl{D8+T4OGqIg&V15(1F4-Ajfs6 zgBaPGYvNb`06}F$h6JhN=C{3ijR19T0o&}`W9n%3_IzB}vH-XE#3gNPes0KwQ;`$=rUkbCXBIebUc{a!N>}eMTm} zW|EX)btu{EspXD35dob}VTo*>SHsl+BYZd`{w5u-BB+e}40mAZitgI4KFq9WcJXy@ z{AExko3&sggA7;C9A*MJ4#89_qJ6d%H*je|NGY5|sN1=mMrGizh!z&5J{Zd_S5`_a zHiylHtNn~hlGM?bjptJM2RCN;xld~Tb679T{Gy3}UaWVGHIGY>4B%cjZU9zS^(5W) zC&B`0xIYDZF5P^kf2_6$LScnxa!S@@T{Jc*&7bSdXC5x%x2*K%i{G@ktBC0+VI%lj zY76*JW?3mmk-%cM3=m0^*~E>cq6@x)wqa;T{o<9h)Ne^6mG!P^XCX1fQ?s-b`GDcM z#2Q$SA1J#3u3c<&NaPc@pT!N`kVZdK18@!z;n*f{tIV367hlfekd|gG(S_aDLwgAv z%cJ15vihcD4nGF$^)=Ze%-R!-o$=nr%_XDUaAi-2db4ltN0+&7os&(DaB)9|ETLX7 zHug71H{7i0%}M8ecp8vGn;BkMMSGo_7$h^MJt!WiC2>K@eVuI`#4e%$j4|AU4Xm5U zs9)1OJLEA_S$QbNcZWk9Zrv&;3fsHtA6ZjZeY(_tYuDW7ac=?{DwLSEoHA#{G>rkx zwHoFN*h4sY;mw*|^m75Pe#hwSf@k=>RSpjd{|hOHB~6Rv9O@^;GoErAm#8hT_c>1S^-;H1>cOS3Wp`sgk>Dkl3+g?C@b2jta&@1=v9bHr z6(UM-{2WSJF%atOMbKmZ>RG-cT-M>=@TO3yhq-Fy2L%CYM)en-h!y~*=kVvM5i{J5@Syb~QD{nrk za5Lwxb1SfDBk1Eia#9`Cq14oL9!q!zopn={owJ`aWIfFa5{978(UhI(swdp5g3VMaR_oxJlW-1 z$~_%TKonWM>mz6rj#KekR%%>NUMtCd;<(a*!tQ>dR9r@s5AB|*{o&;NKE0#vXvh(R zClX@FJPVuBUFvdf*WlIBK)NI@1h-RbVj-5I5GYEV zPG$>Y?QKUa3kHUkLMWawrujoqWR|%MV2N{|-N?Y;EG!**+L(^*u#2Egq#}+zGz|!QSdbXQsU7qnCrxTCR;g>1vH@ zK7}qUr>Cfq04ro~sQMUT=e*I5G{bKfzLRqF$m4#b3opC}Zmf_agl~q@)^x%HzQ?On z{_;(QbJdzj)(ZG^>I{T7#gB{0tMh0HhSSh?AKbke_8z^Y09?kc1r?cmX*tUv>0o`3G}O@6J;n&VO8-(z;Wx5KAA3a{{)V8cs-L%b z-cUG^S1k1pl?a{G3TW+Z_3@{-v`)ovFDJ=kVJpuXhe1>1F=^F&hsC8J_)HTh^Bion zeyuztH%ec!rPo#MUZC(6=^rZ-Q^MpCsj+n{Qh zfB))D#&23NhumRdx&|su(*WIIc|sRTfx9=5w+buB(5x{mMk{t;?x>g&%7%E~zw`2r zCkVxIs*<6W>GXG)2a?OQJ@ZT!L+96|QFS8=jsm|!6Q^E-^k-Utp+Q~gouK*2qc?RT z@OJR#)QX1@{5%SQ0B*oMP~|e-MjK(tGpo^^?b45bvmZn>l@+bGOghWmJ0$BC{M5ke z_j_lm7sfQcJE0tdQB7>-bRBAHI2|8kNU>8C_p0oKP#Z)}`q$|uWP^C1mSCE>vMgPZ zp(h!#I{x$8Q^*J_E!Q(-7s7G=xYa~zhdH9ZHY8~VJJGVXQj?eeL%aw)4o8&)Cf((NiMmw^9QH6|sg^=qT78D*U;?U%`bAqU$ceECrdeU~w*+ z4NwCRchMY;bQ9t7RYJVbTF)u=Nqn1lsj{$vX|rXe(8p#s^?Fg!!`D?IJSwpBYyNq&^8UE&a$mENgHI}8*5xS2NnOke;c4~1=f@ODV$ zL@YfDlGFCpkcg92g!oEzhZdd_@0pUcg2N7>dF0DySF|u%yXh<2vce-yEo`#lqA<(M zMwfFHbj|;-5nLX9IUcF=KdZZKhnA<3FdCSR~IFjr`xN|>Ea*do1E1QVrkXQ z0iyAi{5s?&4K6-U`&a$1sRNnm7*RnTcy2ouD_x#&eQ94~Z!VFVSRB!6q(9c*to%8- z$4k+ARDxwLNef|pK^*^4^3SsCA6E@G z1>k&DQ}6N2dqnmxVfD||#16fOL!2aH_egFfXXrPe-`8^AxERGKNo;FkJ5m?wFfrPv zVZQw_%(pOrN{-F;hbCLp8Tq{-vo`F)GcA2fMoK|gip4ALbYEgoLelchXqd^&JURm6 zh%O?_XvF9Db~A{=Q~EaHsO%{hIbQ)JcaPE<3SoF@`vh6T$f}`*CKI0I zHyF-Wxtzs)Ch3sk*OZi4u#duX$FYNI2b#MUiW+@_2Xt)S)r?dC0$kxD)aq1vQda>MjP&vZcW7c}HwY z-{oP1nOLb{0}ws9-ITBQ-7fg-M+iB4CfGH%Ijv=?ZQRZle}F!38(u0q z-G0aa_HH*xIkWtoitJn>v6_Iwd8W0GO+_G_bL0ptt;-zCg|!%mdE%yp6%Qd1A{VWe zI~<+55p)TG6m8TgBV(k`U`C-WmnapC_Ss(PxMiNoS6+WkQBh-XJAgft<2DBtf=V`) zd}IK&E`gu@)&|dh#k)rr-9+m9)LF%G#FL&~c+k0fBLj}o%EcIg%{c>0KwzhsWrimQ zIgY{j;rkyu&ktegx`1r|4Hm@1*J@}k^UtP62obI)#%D~mnvB4KCl9UiS0ze2ZJxz1U%bd@SX<6qNmegw6I9UnAjySdmE_c> z#=plI?ILgs3S+}_ixtsUUiUpYL(0LL%8|G36uLYG934bXxL9x6(3J-{x`v5NB)%55 zSn5;C+jqjnOIpopAo(&FU0?mtekTpywU3op>>j-!Xrn~0utQM?%+)yPEMVoNyD6pk z^qU#n(#pmXlHK3VAxEOfLRKVCxwj_BM9nuKcV2>nF zNu=#ySWK*fl}t!;j{tDi%2qH?Ys}o{q#kpV_szY8qiHAyOPFX0YDu^heyji93e(JocO4zpeSw~AzEvAzhYxqN{9QN{8mkZ=9YK~Ps6RRZ4@+`NB@3@DmsZVA)dgFE2 z2@EKf$OqoNa{54`w_W9!n91F^{Si|UvLbv+^($IsxZ~i?-mpUn zcx9gSddH9IQK7V$BP1mjT=nY*<@yi;1x5ijuf@wP&ix$t;Z3@fOV&`Z5$I+NifgRb z0qAX0RqCu7o8#6b1#=>a1m`-$j!~U5(m~Adf(ZqiW8}oQl8^a)>s*CORhzl7RqJXV z5d@D#sBIUKi-sl-v})2)9tfc)eNFnCj?Fx+{ZfL87iMp^<5M-*M+C7Md*0goIN08x zst!79YHPUo&ca*SkTZ%n#HvkiyPK%tDD++sDtp@mQJO$&cVZQI4;?SgMD$O`Sz^0_ zo71l|ImRA;AQwe#LPBbQAYE~Q8u$OMgwKL_=kY`96bKOaLtpNEj~SYD3(3w)FnLqe zRe(^+;>3CphOZ}#lL)OKGq2VAg&zCO^mgYApVeE@;iuj+23cHVF*GK<*JC9#7a+0u znrN-Zok`bK!nEqBg*%DSrwc8v^thI z)P7|>HmtU8%(~_b)U?{3IO6)ueaSIlKoI~L&=-_D{%S6PNc5p&T(r7$P|xHsSyb?wBUI& zd?|GIUwO&2ox2PYGNqQtm~x3YCM&mWq$wGv8#&dDMWps?No)A$-y67WQ4enNnJ+AT zs`TM?WOmWDD1{A;-jrPH+M>Qa2zuW)c2i4^LCrBt!ef4&4wFI~b^c-;6_{79R(1J@ z{TWDSW5qNO)NdOvh_NdPT&)XHOu~ha36v5o&H<4FvIR4Pc|m>Sm?fO$goNv{H}9?B zDV-4gLH(E%Z@ehQR=FUM`!E1=N=Bw3fzrnoE$3~HQpUaTz-F^^t=o64D&fNTgA1Qo zuURd7GemfY^c5TLm{7+tl^2V8DrfW6fT7#>WA~S6_*0ns{Mjk5x__jB)9DiedN-!p zv!K>Qjuwjj_2SnpR}5)k zAq;g#%|T&Yth09H3i8t7&6+-JvwFe|yRyLItAY$!G8w6ic6ipoykgZro2oA3j9&K! zudZ5ARd-tSoj|&9<>k_kdN*<%!BHWUub&`}m5$U@nRH`qrPE&k6%uTvI+u%h_r{%(Yuo+w_kXj_6 z^@O?o2ADCro&`vx;APm@phxmf*XZysyTKdet|;$r<4k^E|_FI&4Rz)ISElw z7e%+xZTOy@c&&pcA~iQQkwuidaWcIP@Mf2^&I8tGyB(MXU6EcDFZK9dpr<*P{`I`6 zr!I!3j<)-cB3e)S#7 z#0v}WF?sQj^31}1?fkl^%{(GY|8FG*ITxzA2KDT8=B9>ThT2D!S>L4c_oi}m{dHUL zqK1in^ReZS?L&qr%GnSvfag!-Dol30(1-gvv}70=Pae6B`PjyMjr{pL^K&}x}F=#Bi1w@!2bbYRZ4 zMK`#E7&ZMRSZAkX=V?9o=f(QO>0OU)EAS5T5OG4yY-A)j)XTgX6|Zj?TBirQ`lPif z_4T3A{w0ff>?pF^&Q|)qbK}5y{W~C^uQg0T2{Md}BAoQ|<$_Iq3U7TdZftT2bUoF( zzvL-H0&Zd!>#&;wyqx?FZN^eVu`chHA*f;V1JN(jZ8`duKu_g)UOd~K5_E2=2eA_c z3@lk;%OgF3BDr$RPDtX0fCjX`P$B~Eo`VQ)4Z?Efpvxq9uarEFRVV;HMQd2jh0u+*R6+svF>Uj`!NhAlytpHR!j>nZ~M|uLq}~Ibar# z4$HJ&PW{B3>lFTP7YnB_xbr@GTh~5V`_M1t1FIATAL%{htedTZ@~WygMD$aJ0Fm`c zGhA4L4Ufat6gSY6(@7}<1EHho=`^ut=Ht}hfcxA{hjAD3M&x-zU;}8dmC)nEJTS5?H@m;yCO~dC#lo5#2T^igBx6No81W?U!*JXRsYqBl-prX{9fcikuU}{8bv-kkX~zss%9vXb6Km?l+CdZNN&LN!w(3Ni`HHM6?z0W!$V20iCLUB zA6Ql1`Ogcg(+B+dJ%v$V1Or|=sF|!?9F3i`tkd#7K8pA|R$q_UC&F4d!9?z7GpXha zROb3n4Fuw{B~EG5(Q@d<8K>9@Hmq>9r?@!w;j{=-^_$1TUTHj|RUV^d-Fo_qg`^ym z3KzV_PPQ#iBfFKdEJh7(;XomKAV@;xp6gHO@su+W2n&}*p&VkylY}+oN=Y*)gZ+FB zZt(h_dhm4M6{=qMxzlq)=s;TTw*ZN&(46X1k%Q* zehH_2duY>oU|#~pW?Pz?4d9sxt0kHrCNuLvEvjT`_(LJ;3r}gsUL12p-a)E{xK24` zE=KK}r@8qOtr3CEZV)m6ol0q!3eBu88}Y7KHld28O=MS$HFj~F@pSfd=hJ<)!Z+aFsqY#lQ~V;kfap)IasU~UxA;G+k_IKSgf>E*OwBW`uzBWA7Tpq2Y~b?NUOVDH^8FP ziU-{Di0q0QI@FmRaHkQ9d#S%(XlhtqJokB}lX?q9YnJj1tUie$p@06__6yYg<_$7w zai?P=ClIXbaq2hU@pn#TZm@?KJ!qL zm(19UJ$n7Ml)P4zC9{EBTy+>F-=SnEHtsm95)NVeSbAvQ+GF+VntKdwdBIY1F+taX z=X@FT?hxD4uy2xxb)&+qOI6yAQb2l~MbnYdI0UPNRcqA}6>C(59bE1cL~=igc)E?N z{sSX=b#Uw_H(OUKyxYB~Ywq+w`SZd++wUot%2u%ZJK+)I&@os=Q8QW(x}{EZ<3)+Z zAafhI(vuI_m;F*yYB3Bu%HiLbyz`-G6uwoKIBm)+vr={AxiI0Np&S3KY)4fPKzSSU z%ua*dC`9(x7lThHCw$;jp?5{XhIwSwtOwg-i&Bq{sW6=AL#_QZJ0IXiOsib>VI+no z@zd2e9TczU64SC%R$wa^|NX#Y!M^ssSH^>UphiPg^Ns68H6l}bIMxsOh0F-)k&YN( z`qgxU`8yDFh_>-m;mea|gWe9c-!)5v{bAXfUw(A=SK2gtmdDxgU3bFXGmVNL-!{E- z8P6eSiWb&6OcTZ#&45x!aQG-0ougk7xt}luOMWI*8wHOsxxC zu(L5cEZkqTYiy_u?pyxioEkLj-Q_#=Ym^!vPEg3}HR(#GP&rG%ZpwYAICcW{EB(foEv5>5H@DFx!7sO6|=fc4dn zkX|*o%5pBqJ}by>lPU1o)#9Qcp~FPTLzU@LtMbO(>ip1M9OYEh0+s|u5!)lCtw}Xj zffHpLabJzFZDWo-XDFGWJ3K9_!^3x@U zg?T(aQ1x5b=IHo!ySpvSy3CdYX@c?woFk+S95+Mo5in)B5k&usP1X5j9Q9(`s#QW;-XYR#wP z19^38ZyyWYUuZz^Lt7K$oLI@s&W>KJ1sF2h6Mx}0lsDY8LBF;xXnCqJRk$PC z*aj{kU)p1wO0|x>56~cCXcfDtkrNYFl`%$7F zuSY~f81n2p*H^?_><+v3cJ53s03V@^%;~m1PPD7b?<+(#ih<9*k0GzMC&7gx`bv5IfPoJjn zg9bWg{s-X84z4?QPdqkv+TmsU$Vzm?c7ZDkl{9NB3(6yfcZl&z00d>!wl2LLNw}gC zdE;n$dXpZzP@U9Z#8>xwGxy0IQ3P8MovvC8y13z5-zE+fE45%6Q;eT@RioN+wa4PR zGYQ;Gu-4E-6H}h0?f_;Krf5PF6(8nWHS2UWaf} zL0>=tS$#kTjq5PUWAMvL2_Cu$KA6~wY5Cux@w0BVzRw=&gf}=_j%1V zv_Y!HT#{kzKCk$7nLfz0R6SH$7@Xbkp zOHi%cX;59fyeC#DwHhC}&0DpUwpkSld5&p3v)bOSXCpSX^A^ovM=r;RWig)viFS4@{KbVK;C_%3OF#TeWj7cvAyT}a9i(|pQ?rP zGMW5k!}Ron>k?#-F)U@^nvL`(^4oCd&#Z4B{M7QQMKc}wh>efoLL&8Cp^roSCTgnl zR;a#eCP#-;XewVq{tyRV=;g8upQu_oCJ>7Bf0ja^Ha14boSGo1+BkiB=Wq4dUeHVV zUk*yB{~Sbz>_*^Izqr!u?eG3z5XPXmAsH7#9uD0oxij9t>{zz%#bCttstdx;)HSC3 z2_4pPju$qVO+aL)ZU+7OETDHqpbug=(A`*%<;-wovzD4b4mS66b8QqBmrWY>snHCN zR;$|adg z6h2ZZ^w#;?2g<;=(+n02_(QLmUCR3R%ibwb6)t=%u?7iYdTUlmpPxxRWU%mgH9w|$ zo;)il1cs)_*VB)9xd$zW~EY|+84k~L@Sv7%FJ5xw#X9b>mo z$bNJCp>Vwb&)?~JpfgNmxO27l4E&~OS4L_Zs9$~1REu_Rl743r86nEh$(r`@{eWlU z$$se}PC)_!S$mBUInx0dtba^QBw2tP*!C$Q!PgAc!`dl%t1?@(s5X}bLO&s0M4sHcD@+1k6{Ncp3 zFu`f5kM*2E3|#1z9km74Z~8M`^~Uh~wK53ELs@ffdG;3gO5la&N`=3nHF?w zPxQ`F?%{Zr3d?&bw%+36EHyQaXuUtIEK>BMxgr!y?y<=AJm?>HqTPdLX|wdb5)b@B>01!&TlP`KtaCs>hu-54|q=lA~Q znnA}!i`PX=d#GXfOJ|L_9FX||_lkKjg#52>R=$8Gr0-w1m&228Mm*%-sydseyWDpA2fG4%j;gB5scAm z&<2+WEOJ*K)qR0;D^?Lh{2pc!Jv=m_Q8cphok09XFHpA4l>8rVQlNL#UcmjfmA6{C zJyLP@X8~Wifx)d{mstc9Lp5zwzC4S_k8Ow0>97kPZn|X|b}5S`)nPv*0LI|R)}M_Y z&ZTvW<~P?RBNOU?Ad%E>ia%z36!&aeXZZngQq9SCtJL+a5SHRc;!O(9A-*npFc6bTf2}zv_b*uF7Omz!P!uKi`D`#7x}tAaT$I>6#@D zKuBuWB{!2@LS(w1bnz`!^uA>R$&>O^RUan8iORmCm03l|f>xbTF*~OEaZlj{@*)!}A`BWJ}q{17+ zmsM!4Qg?2EffNvB&aw!18tx+w$>ykZWhE{9Ap>@tHZ*`;GVt`KIn35h|MTeWNq@{( z6?$&a;_xVYea2;$&Km2@*HX8KkD@Ir=41`R;0u78a;*K}6sPqM_%6$Z2C}ZTuSZbP z9<)wIR1cQNcg0_{F*u}86GcM$tpsY$d?D){)<`{0=bga#!2t-oDTs4C8$72bBYa$}~V) zB&r~TyIgJWnn-#f(!YVwGQ{T-j zk@TzcW1y3VboEec&CpZzE>`!q=kZ^>uB%ejR_lgtG}tmdfqOV)MtAP^Irv%fB5;Q{ zXYx7s#p$cF$(ykfTh{!`2q2LDyQvS|SvbJ@cAGpr*bC}H%G)fVW=g^yjgPR4c)+(v z=x`(e;n8P?TEqRcChukC9MV^z53@yKlMly3H`{jDP*ISpjPmj$hrv-@0$r}H?`&EwbZZ+DET=!=wD>EXsRmUqEs3`$)17&-jhX8`@iky@XfVU9pOx#lpDXq@cb&3c}84Z+O8fEfx^% zEtO4#Wl6XZ!)ARfiZJz7tJ)7f{q9|KvAg?_*|NaYI=@UXit^mA_J&X90C&}whU!X& z;)ehSFg|!IrVWS)b;UR@$>xwQENm$)Ng39Xmafbv|8>1i9l}c1|CvasI!B`l`ry12 zL=7MQ7fK!BNB!*Ml4jFx3&Wl&*ym*C?Kv`Dj9tcs{0z&V1oco(F)~>f!KN;CGI9&7 zGLq({9owgxgw+mKbX={FqdEnldBf_6@?G$oP@8YRNDS~N-=x-LM^c(CX0Hu z4*^wbX*Byp6a839j2`=Oo^D}W3E?kYKB>XTY$(Abv7xLGz){~Sg<{JzJ-FWCOcV1;b!$d6A(~r*Oww&{}@hvqV z;%L@Ft6*O!tb*BVf?PoOP%WsDxy=6te%FL6Wnx&<;&`y0wB+Nf9`|CU&==(*dVg`V z5hFI2KBVP3m=|wqOci(V<;>|&_kfM&M!>ILqo^T<@;^x(77iy-rJX^uF7K%40|++&(j&M|12nX19&@l{?ZU zA}_;pVJSkVZn)#ZRyCf1-0>!}Sp4Pq2}CdMPRJTQ z9XN0cKo&e5Yt@@?61^E5@YuKSz7hm>S`7J9IJkOQ1k`FfUM3?}i#8K14fk0nGaE%8 z;cExjbKS=i`4f@hal!tISVLixD)WMUj;C1bXF}et!`$4H@bN~By9vJL}hGE zA1zgw-)5<>C0aGVG&^>{zZ3#I3Ii-UED&sxeqv8*CSQ-XIriOpSe?cMlaCg6e12;x z4jCjenOjiFOZ^tLIc3Bj_Yh!X_Diciwp-loo>(@gwNtjHW-X2%BD@5M9wRPToyesU ziR1f;&C6}m*6mI%bUpm17gb1i1*QiSRvyDePxR(5{O?JbHFZ?+F18}#1gB21`VrTI z5U=oOUzL-7_%YBc=F3p8>XtXjiv<{57>XYUBjVhn9lZ$9NR0Bxr;!q_*Y*pFRt@X- z_VS``1rvfb8Xh|{e|e}Uy)h=0GXOdFoS)Z?DzS*Q7L?vsV1FVRe3{y?2OmqHq9K&_ zT4RXtQFm0uom+ujDG=DyB>Kwo4bRWP4&sukBq{J$DPL8xHrvbbszI^0TL){)F%)`s zE*^+riM6EyN`6%)%n_PF}9gdndyRt{9%qT>7&$Ud#w|Z=tRYr>+N!!XuD2 z%BNRwiAcE+(7}S4IxLT7;ppy%j>K>GLDox+^d!HME_EeW;I*#a+=4-V6ogBI^_*OK zr^ACuNCd`Xkwlr8nE(KaM2OMejMDDFg(oq&56)AhGU`nvM%UfjUtny@WS%2;qM3yq z$3R`2{f9ux399@FYMDK$r%z96s zXjW-hmRmY2ox87!Ze2pL1U|1(%JkU7UK7171L1y{PB{;KUb;Q~ZqKFvNF8 zueETC&JnKkkxJu}r|x#cs3UC>ofl$sC8B1tk<>?|mYfftA>1|Q!+T&8sV;G##6?BP z$NI_mN9b97>^BUcyS?2)h|T8&?gj?#zth9M^g{GomYi>`(7 zp`S$wdQi zH|~7pGi_lF;Cw$BruJ#b@E0_Re9bNN@|$i{yg@N7D?6P+*&vZRq**Is7ao$JxS!sL z)cw{96PtOnq49A?c-6{7lwyu$+2`1yravn)t^#3ljY`R$?c2%4Ll#!R_CxN6z>6X~ ziYx#3>t)!&(&yI?=v904v(Z^Sn=z_Ou6pI&8I@!voS6sZBa&*MoH9`(RD6xqg%y3h zA582C$#a<9<?t%=@p-C z0=(xXsqJd^dYTl1iyS9XMU*b6X`ndW>DWDjV<*SY#C|0!Jc(7sX|mf8;WwbUwzM%_ zz)J=B1<0x0f6IR?<@3JJM#j46-vq{zxn5czv4`ra)_%a4s}ZDm{z{j)!{noz!?cIu zmXLi80sBz+%1^^_rFR2OqAm=J z*|7v2g{}c|Zjv5nnymwPTe}t2XuE*L(zJ+qT>E$azw@pyqIEJx+n3f?C z)Ve!e8L049eDq*qqIu_1gBxCY@kY0Z0^hLYs#1bTmHBlrEht0do*P|QZ2lx7xMhlp z7MGL!dPEtEOwm2iUA3B#$lzCAeFEp~_ou#531hfSw>(Ll($w27%B`;t#%X3TJD?rOuMVkzcX zi7CwOTCJM+;AlIl4kFbB7=h8J3T^OpIK#^)TP>r6nJd=lC;*QtVn$+Z=!eu#84+6q zS`=f$;2w+m&7#`iK2cE)Pp#4`b=i&u-#k<#ujr7iMoI_UaH6ls`fnl$m-1Hy;9-{1 zgI~RFd2+K2MB-BLcEj^(Daq)4W(XAPPpSM@On(L8^q|SPUFD|Lh=~XW@@+tF(1izq zBjua#&lcsj8(VN&c_Q>tBGSHPUi*s}3O~wZrUVcrH;(W+L1D8M;m3ugjH|Y-wz2f= zQ(R^67rS)scDK4D6W>ynzu?BmrZs(+2`Hoa)gIVK$8Jw{*4n`X0NZ++JE>jG4Cgj4 zq&2LqY#x1dz!sfkZ1;K);1I_3QWgHd?19`{Blb)qH=5S}&^nS`(QgDTXvz6&eygk? zis$v(3XIgl&)J@r`h%BAEVSc68N9cQHJs!r$H4d^|FC`XH}o+lOR0SOK}I5s41Wkt zPa#8TXbRf64Y8No3E_=(P~g`u`sB{V!0^+N@_J|3rf_T_V2Vp{GYHGv1pi=fM^1z5 zqOf|f6~@^JGP@)%yX^RgD+x&e?CnqUl7n=9$fLw?2A<7tvaMY_Zn00ajN~HC$911O zRV+_z>Eqd43SGUTMO_@%0Aj5<6`Fng^ppo{3PI$2%?Upx`l$y31M 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 >9)-mpWZ32x0ASAk$5aBa39D8XK0YB%sErse6W* zIPa8rq9N#UQ}yHxVrWn}qf3%Rp;t2ojc)R{~ z$+=Zd(lxDp6OLZUx2g?Xe^TK?Tsh`kJ!GL_G@o?XnS`LhB`AU*sG@qbz_S`EAWkeB zWj=!o=KYCM==F1sP_3OPfA#XTGA9kK+PDd(h^^tCEmNilonrNu`%sUdX!5l~?vDBr zgM8o-*S;?l1qX_?sU+b#e?BHXRthDrwSb2z=RzV(Db&hN@Fk>>e?&a?4DlUHyUyp5 z$$l<=N2YuEKrxU-J64gT`qUd{RY7b`Nms8YKS79hr@9cXzTFz0G*l&2l53}VqPHBM zvfq12Xe{Ms+lKn!0zUJv_${J##On!%^%M5zhUhkt(xE@zqIhn9CyOhmI@u{l#Zai8 z$Z$h0l?n2jnk_hTz&RHkB4)SQPCA#G zuddd3crBH+9RNBQ4P=i`&Dz?%lG6tEhGb>*lQ#sa@03#S}1G_VD>ptmgEgYuEx8~q?ZJZj;o(^R-!CxWTOeMTw zB;^hw;wE)RIBByv*r?J;nwuuxp;W&Nu@y4v0_lsVWyZYp0S z)XM|ETBb0=OW0t-16lqh)(i2ex=&+#xoCT}V?YLbtJz6EuJ&aicEF;rN8A^Ms=Euv z3(a0ta2pj_3S0;&ra)6yqus)T)^%2a&jfX_X!Wwyc37Q+fQQ6PrBw#;#6-lb)6~M! zdomEsCRhbLmV`%Xp^e78h3Wvk^9gq5H%piC3!4 z@4({U{O0#kMBlNze`DkR3opy^Co2IU(Qm@Dkifg_?^tIMS4S~L$9HTj5u>3#5%4!Q zmQjH9pK1&o|6LLAzT*#7rhln2|8x8AHh(Xi`5zYVP}{$urT?oBEdNjgF#NMz=KpT- zZyJ1je`4$Y=1>1UWdDlDpJ3Pj68;8P|0B54Y(zkg_wVl!m1ZRZ{=u|<{|F=k{_cX` zQg$NX-#bp4i3s>R#J{EQbmc!f0*+A{@Q%9vyOf#eos9f9g?HNW-#YDI_5QK%9~J*M zjxXask=vp+_E!HS|Gs0O{~kRxSp#z;Lq|Bqf54Af8CZ$vfB*Z(pZ34OfSKh6x0&QF zwzsEQXPLo49U!$81GN~w=pdmXj}LD#iR=*DZAw`h5P>_{UBt{Dr{!J7Sk3euM?+H!%!{#=k)j^F#m&A00I9T1plQOOsuR-989dg$uMGW==R z?^gbM3$3Ew`LX~62oKpUNP{JrtX|s5S_nb?w~sSK#Dx#dZ3;XHEeFQae;G}`mzV$5E%;-l z`(NFHKi2jCK@0wGTGW0Y#Qxt7!Ji`_WaDJ*_?{#&N}7FfAkriP{_SY4{f|{cPT$1H z;ZNxY^Pf{TA$uczM>891;or#?l`t0*0LTsm0GNRQ763C7J%EK00HCCXW0bSE`Ql_~ zWKTq8rSE8KY2#>VWxy9N^jfB`^9Wa{W>%f-m}FH;5^ zdlTwE`Q&PEWDEx&VrGE@{Bt8>V`XJ#B{C-Zr|fqk^Lrz*{+kR4U;?tf9~=HG18{P( zzgzu>jN^Un`m^49BLOV$Vf?F%?L9hwm2tf1Qh%2H{>=8*I^KiE`M$#cMUM&aA2JqZ zz<<;MQueO};PXD{?eXKG4PP+fmzmE3$W|l_waKBGo zB&>~Xi2j&X?+Lepjm_`b_(yK7Xy$J8KB)he>FV1%{xQtoOJZhYg(D{ykrjpe{{UZP BO2q&G literal 114580 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 Hq}=}k@+gq| diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 0070fd85..2f436e93 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -358,7 +358,8 @@ \subsection{Comparison Metrics} The most important feature of the KLD is its asymmetry; it is not a distance, like the root mean square error, that is the same from $P(z)$ to $P'(z)$ as it is from $P'(z)$ to $P(z)$ but a \textit{divergence} in the information lost -when using $P'(z)$ to approximate $P(z)$. +when using $P'(z)$ to approximate $P(z)$, or, in other words, the information +gain in going from $P'(z)$ to $P(z)$. The KLD requires that both functions $P(z)$ and $P'(z)$ be probability distributions (always positive semidefinite and integrating to unity); this may need to be explicitly enforced for some approximation formats. @@ -379,7 +380,7 @@ \subsection{Comparison Metrics} M_{m}[P(z)] &= \int_{-\infty}^{\infty} z^{m}\ P(z)\ dz\ \approx\ \delta_{ff}\sum_{z=z_{1}}^{z_{N_{ff}}}\ z^{m}\ P(z) \end{align} - of a PDF. +of a PDF. We note that $M_{0}[(P(z)]=1$ for all properly normalized probability distributions, $M_{1}[(P(z)]=\bar{z}$ is the mean, $M_{2}[(P(z)]$ is the variance, and $M_{3}[(P(z)]$ is the kurtosis. @@ -398,14 +399,21 @@ \subsubsection{Individual \pz s} its $m=1,\ 2,\ 3$ moments. We also calculate the percent error on the $m=1,\ 2,\ 3$ moments of each \pz\ under all parametrizations and use the median and interquartile range of the -moment percent error distribution $p(M_{m}[\hat{p}_{i}(z)])$ as another metric -of the fidelity of individual \pz\ parametrizations. +moment percent error distribution $p(M_{m}[\hat{p}_{i}(z)])$ of the ensemble as +another metric of the fidelity of individual \pz\ parametrizations. We use these aggregate statistics to observe how the approximate individual \pz s for each dataset vary with the choice of parametrization. \subsubsection{Stacked $\hat{n}(z)$ estimator} \label{sec:stacked_metric} +In addition to considering how the choice of storage parametrization affects +the recovery of individual \pz s, we also demonstrate how one might use +\texttt{qp} to choose the best parametrization for a particular science case. +We encourage users to develop a metric around their own \pz\ use cases, as the +optimal parametrization may not be shared among all science applications of \pz +s. + In cosmology, \pz s have thus far been used almost exclusively to estimate the redshift distribution function $n(z)$ necessary for calculating the correlation functions used by many cosmological probes. @@ -413,14 +421,16 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} of $N_{g}$ galaxies is to sum the \pz s according to \begin{align} \label{eq:nz} - \hat{n}(z) &\equiv \frac{1}{N_{g}}\ \sum_{k=1}^{N_{g}}\ \hat{p}_{k}(z). + \hat{n}(z) &\equiv \frac{1}{N_{g}}\ \sum_{k=1}^{N_{g}}\ \hat{p}_{k}(z), \end{align} +a procedure known as stacking. We refer to $\hat{n}(z)$ as the stacked estimator of the redshift distribution. While we do not recommend this approach to estimating the redshift distribution (see Malz and Hogg, et al.\ (in preparation) for an alternative method), we use -it here on the assumption that any metric calculated on a more principled +it here on the assumption that any metric calculated for a more principled estimator will have similar behavior with respect to the parametrization of the \pz\ catalog. +This assumption may be tested in future work. As the stacked estimator is normalized so that it, too, is a PDF (though in the literature it is often subject to the fallacy conflating a sum and an integral, @@ -431,6 +441,11 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} Because the accuracy of lower-order moments of the redshift distribution function dominates the weak lensing error budget, we also compare the percent error on the $m=1,\ 2,\ 3$ moments of $\hat{n}(z)$. +However, this information may be less relevant due to the broad range of +redshifts and small number of galaxies considered in each instantiation. +Furthermore, we note that the domination of the first few moments of +$\hat{n}(z)$ may not always hold true as the methodology of \pz\ usage in +cosmology evolves. \section{Photo-z Test Data} @@ -584,7 +599,8 @@ \subsection{Individual \pz s} border) formats. In this instantiation, the samples format has a lower median KLD than the quantiles format, which has a lower median KLD than the piecewise constant -format. Note that the distributions are over log-KLD, so the ordering of the +format. + Note that the distributions are over log-KLD, so the ordering of the formats by the breadth of the log-KLD distribution is the same as the order by the median. \label{fig:individual}} @@ -612,11 +628,17 @@ \subsection{Individual \pz s} \caption{ The mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of the log-KLD distributions for each dataset as a function of $N_{f}$ for the -quantile (purple), samples (green), and histogram (orange) formats with -$1-\sigma$ Gaussian error bars based on ten instantiations, where the moments -and their error regions are offset around $N_{f}$ to improve readability. - Left panel: The \mgdata mock catalog. - Right panel: The \ssdata mock catalog. +quantile (dashed purple line), samples (dash-dotted green line), and histogram +(dotted orange line) formats with $1-\sigma$ Gaussian error bars based on ten +instantiations, where the moments and their error regions are offset around +$N_{f}$ to improve readability. + Left panel: The distribution of individual \pz\ KLD values of the \mgdata +mock catalog is most well-behaved when they are stored as samples, except at +large $N_{f}$. + Right panel: The \ssdata mock catalog achieves equivalence of the formats +in the moments of the log-KLD distributions at a much lower $N_{f}$, ultimately +showing the histogram format is most well-behaved at all but the smallest +$N_{f}$. \label{fig:moments}} \end{center} \end{figure*} @@ -656,10 +678,10 @@ \subsection{Individual \pz s} \caption{ The $\log_{10}$-percent error on the mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of the \pz s for each dataset as a function of $N_{f}$ for -the quantile (purple), samples (green), and histogram (orange) formats with -interquartile range error bars based on ten instantiations, where the -$\log_{10}$-percent errors and their interquartile ranges are offset around -$N_{f}$ to improve readability. +the quantile (dashed purple line), samples (dash-dotted green line), and +histogram (dotted orange line) formats with interquartile range error bars +based on ten instantiations, where the $\log_{10}$-percent errors and their +interquartile ranges are offset around $N_{f}$ to improve readability. Left panel: The \mgdata dataset. Right panel: The \ssdata dataset. \label{fig:pz_moment_errs}} @@ -708,17 +730,17 @@ \subsection{Individual \pz s} \subsection{Stacked $\hat{n}(z)$ estimator} \label{sec:stacked_results} -Figure~\ref{fig:stacked} shows an example of $\hat{n}(z)$ estimated from \pz s +Figure~\ref{fig:stacked} shows an example of $\hat{n}(z)$ of \pz s reconstructed from just $N_{f}=10$ parameters under each of our three approximation formats, evaluated on the same fine grid as the input \pz s. The strong features in the curve are due to the very small sample size of $100$ galaxies. As expected, the stacked histogram is quite coarse because of the step function -interpolation. -The samples and quantiles can be interpolated such that the stacked $n(z)$ -estimator of the approximation is almost indistinguishable from the stacked -estimator of the original, high-resolution \pz s. - +interpolation, while the stacked estimator of the redshift distribution based +on \pz\ representations that are interpolations of stored samples and quantiles +are much closer to the stacked estimator of the original, high-resolution \pz s. +The KLD for each format is also included in the plot; in this instance, the KLD +is lowest for the quantile format and highest for the histogram format. \begin{figure} \begin{center} @@ -737,28 +759,77 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \end{center} \end{figure} +Again, due to the variation between $N_{g}=100$ galaxy subsamples, we repeat +the procedure that produced Figure~\ref{fig:stacked} 10 times to generate a +distribution over the KLD of the stacked estimator of the redshift distribution +for each format for each dataset. The $\hat{n}(z)$ KLD values for each parametrization on both mock datasets are collected and plotted in Figure~\ref{fig:kld}, with error regions based on the variance between the 10 instantiations. -The two datasets share some features: +\begin{figure*} + \begin{center} + \includegraphics[width=\columnwidth]{figures/graham_nz_kld.pdf} +\includegraphics[width=\columnwidth]{figures/schmidt_nz_kld.pdf} + \caption{KLD between $\hat{n}(z)$ derived from approximate pz\ +representations and $\hat{n}(z)$ derived from the original, high-resolution +\pz s as a function of number of stored parameters, for the three different +approximation schemes: quantiles (purple dashed line), samples (green +dash-dotted line), and histogram (orange dotted line). + Left panel: The mock catalog of \mgdata data of Section~\ref{sec:graham}. + Right panel: The mock catalog of \ssdata data of Section~\ref{sec:schmidt}. + \label{fig:kld}} + \end{center} +\end{figure*} +Based on these plots, the two datasets clearly share some features: \begin{enumerate} +\item As expected, the KLD drops as the number of stored parameters increases, +for all formats. +\item The quantile format minimizes the KLD at all numbers of stored parameters +considered but has a larger variance between instantiations than the other +formats. \item The histogram format leads to substantial loss of information relative to -the other formats. -\item The samples and quantile formats have similar KLDs, particularly at low -$N_{f}$. -\item The quantile format achieves the lowest KLD of all formats in the high -$N_{f}$ regime. -\item The samples format is more consistent in terms of the variance between -instantiations. -\item The samples format asymptotically approaches a limit in KLD at -$N_{f}\geq30$, likely because that is the limit at which the samples-induced -shot noise becomes subdominant. +the other formats except at large numbers of stored parameters where it is +comparable with the samples format. \end{enumerate} -Because the data quality has a significant impact on the behavior of the -metric, we proceed to discuss the two datasets separately, in terms of relative -performance between formats and absolute $\hat{n}(z)$ KLDs as a function of -$N_{f}$. +However, there are also ways in which the behavior of the KLD on $\hat{n}$ +differs due to the data quality's significant impact on the behavior of this +metric. + +We address the relative, marginal, and absolute performance and consistency +thereof of the KLD on $\hat{n}$ for each parametrization as a function of +format and $N_{f}$ for each dataset. +To guide this process, we interpret Figure~\ref{fig:kld} in the context of +constraints on the acceptable degree of information loss imposed by the science +requirements and constraints on storage allocation imposed by the survey. + +A constraint on the acceptable loss of information due to compression and +reconstruction of \pz s corresponds to a horizontal line at +$\mathrm{KLD}_{lim}$ in Figure~\ref{fig:kld}; the best parametrization would be +the one that achieves $\mathrm{KLD}_{lim}$. +The \ssdata dataset enables the achievement of lower KLD values than the +\mgdata dataset for all formats at all values of $N_{f}$ considered, likely a +consequence of the strong features present in $\hat{n}(z)$ for the \mgdata +dataset in our subsamples of $N_{g}=100$ galaxies. +For example, if $\mathrm{KLD}_{lim}=10^{-2}$ nats, the quantile format would be +optimal regardless of $N_{f}$ due to the slow marginal improvement of the KLD +for the \mgdata dataset for the quantiles and samples format and the high +values of the KLD for the histogram format. +If the \ssdata dataset were subject to the same constraint, the quantiles +format could achieve the condition at $N_{f}=10$, but the samples format +achieves the same limit at $N_{f}=30$ and might be more reliable due to its +smaller scatter in KLD. + +A constraint on storage resources corresponds to a vertical line at a given +$N_{f, lim}$ in Fig. \ref{fig:kld}; the best format would be the one that +achieves the lowest KLD at $N_{f, lim}$. +If there is some flexibility in the acceptable degree of information loss on +$\hat{n}(z)$ and/or the allocation of storage for \pz s, as is the case for +LSST, it may be best to examine the asymptotic behavior of the KLD as a +function of $N_{f}$ for each format considered. +For example, if the KLD can be significantly reduced with a slightly larger +$N_{f}$, it may be possible to request additional storage capacity for the +survey's \pz s. For the \mgdata data mock catalog, the histogram format not only has a consistently higher $\hat{n}(z)$ KLD but one that does not improve with @@ -794,48 +865,29 @@ \subsection{Stacked $\hat{n}(z)$ estimator} high-resolution $p(z)$ and for reconstructing $\hat{p}^{q}(z)$ from the quantile parameters $\vec{c}^{\ q}$ -\begin{figure*} - \begin{center} - \includegraphics[width=\columnwidth]{figures/graham_nz_kld.pdf} -\includegraphics[width=\columnwidth]{figures/schmidt_nz_kld.pdf} - \caption{KLD between $\hat{n}(z)$ derived from approximate pz\ -representations and $\hat{n}(z)$ derived from the original, high-resolution -\pz s as a function of number of stored parameters, for the three different -approximation schemes: quantiles (purple dashed line), samples (green -dash-dotted line), and histogram (orange dotted line). - Left panel: The mock catalog of \mgdata data of Section~\ref{sec:graham} -favors the quantiles format and strongly disfavors the histogram format, with -quantiles being slightly more favorable than samples. - Right panel: The histogram format is not well-suited to the mock catalog of -\ssdata data of Section~\ref{sec:schmidt}, while the quantiles and samples -formats perform comparably well. - \label{fig:kld}} - \end{center} -\end{figure*} - -We interpret Figure~\ref{fig:kld} in the context of constraints on storage -allocation imposed by the survey and constraints on the acceptable degree of -information loss imposed by the science requirements. -The former corresponds to a vertical line at a given $N_{f, lim}$ in Fig. -\ref{fig:kld}; the best format would be the one that achieves the lowest KLD at -$N_{f, lim}$. -The latter corresponds to a horizontal line at $KLD_{lim}$ in -Figure~\ref{fig:kld}; the best format would be the one that achieves -$KLD_{lim}$ at the smallest value of $N_{f}$. -If there is some flexibility in the acceptable degree of information loss on -$\hat{n}(z)$ and/or the allocation of storage for \pz s, as is the case for -LSST, it may be best to examine the asymptotic behavior of the KLD as a -function of $N_{f}$ for each format considered. -For example, if the KLD can be significantly reduced with a slightly larger -$N_{f}$, it may be possible to request additional storage capacity for the -survey's \pz s. - - +We also calculate the percent error on the moments of the stacked estimator of +the redshift distribution function, as these may be more useful for +understanding error propagation in cosmology due to \pz\ storage +parametrization than the KLD, for which no such infrastructure yet exists. +The percent error on the first three moments of the stacked estimator of the +redshift distribution function is shown in Figure~\ref{fig:nz_moment_errs}. +Because the distribution of moment percent errors is highly non-Gaussian due to +the small number of instantiations considered, we substitute the interquartile +range for traditional $1-\sigma$ Gaussian error bars. \begin{figure*} \begin{center} \includegraphics[width=\columnwidth]{graham_nz_err.pdf} \includegraphics[width=\columnwidth]{schmidt_nz_err.pdf} \caption{ + The $\log_{10}$-percent error on the mean ($\bigstar$), variance ($+$), and +kurtosis ($\times$) of the stacked estimator of the redshift distribution for +each dataset as a function of $N_{f}$ for the quantile (dashed purple line), +samples (dash-dotted greenline), and histogram (dotted orangeline) formats with +interquartile range error bars based on ten instantiations, where the +$\log_{10}$-percent errors and their interquartile ranges are offset around +$N_{f}$ to improve readability. + Left panel: The \mgdata dataset. + Right panel: The \ssdata dataset. \label{fig:nz_moment_errs}} \end{center} \end{figure*} @@ -844,6 +896,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} + + \section{Conclusions \& Future Directions} \label{sec:conclusions} From c36977ae4282645e403f442392e9deef2d30d35e Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 11 Oct 2017 18:43:31 -0400 Subject: [PATCH 89/96] completed the discussion, finally --- .../figures/graham_nz_err.pdf | Bin 205321 -> 172932 bytes .../figures/graham_pz_err.pdf | Bin 170701 -> 170590 bytes .../figures/schmidt_nz_err.pdf | Bin 205320 -> 172958 bytes .../figures/schmidt_pz_err.pdf | Bin 170693 -> 170551 bytes .../main.tex | 354 ++++++++++-------- 5 files changed, 206 insertions(+), 148 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/graham_nz_err.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/graham_nz_err.pdf index 514bba999947c5d4374763bf68e28161a1ee8d7c..51a2c0e50a8d0f9a4311f5db924ddce339098dc2 100644 GIT binary patch delta 5073 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 MU=kC%Y@osPe?3>HZ2$lO delta 37362 zcmZ^}b8w|?&^{R3wr$(CZ6_1klM|a0PcpG>+qP{xnHZaSzu&jDyH)!~SKoczS9f3C zLqoI1h7FcAZAH5|ZjEDRi++}uo@>?~~Ti6X!e09gkzPJ}I&k4T<1$W-!3Z$}5{ zI%p&##6)}}L}?61ykXY*N4dRpvw)AkZ_4_J()ye3Pb;+n@=P_8Cemoq354Rwm)mYl z-BL|6lGu9)IdNW)M}uw>aWo^VkXMe(|aOxZpBAkK|yoV)Y}RV z68;dbonjAWq>wCItO~6=h>5Q5_Oq|m?(6Apq7hjAj{Y`Gexc9L_wsVVEdzs}Pm`%1 zhr?C8`$qH>J3R+J<17OQ)ZTPIe91CbSP2RP07P*m-Z#M)JNc|xP1$JyzL5pjMt?JQ zk0hDXPVfm{h%p$GS%Qhfn=QOYi+XujP?`;8L>+B&Lo3ti8qCOL)=&@`q3g%{=@oNc z0It=q!?Qmj4ZU)%a*^SX6DOlwFuukM-q^%U<>T*WCztY>$imMr>m2KbURu78H5e{} z0J_+Y)A_5s_D#Xt_a)d!S*R$rEgx|>yW_x7lG9e4adzkCgZ9a^^+8*(`aCiU7m?Dm z?U%l^2w5R=dh9=-R@~eVD~GrWgC}(l+jJ5&+}B?;NR930y!7igr@9?8X1xEXR|_|5 z2xPemz!7|@BYPCR2p2i7|6GmP?+xBe1yr}+SKGxQVNlgDljH(EWRJa=gh8ur9j)&` zw>U<%qy~b;IPJTev7z=6W4g}Em#$h5z@&x2Q^A{a)8H{4K7)scAH9#$iFXn%B<}6)c7?G^@xX#rv9vp!;0`2{*c)_%u^oyhAm`GCx70Q48wb9WNjdg^w{0`e_95%@Qz}7}R zItfcmG=RN+(nZF}*ds3zb88Q40_cY;^irJr#+Dfy-au!@fXfGnddo`L%zzXlf#;lp ziCw>l9!Ql1Ql8HTHwP~li_6>Nia+8u&mEdc`UCCxbKF1_)c7K#PIb=C+BRhX;W%`-Vw4mL z{3xh%T$Ikck~~8+ zYpo=#M>{lk`3Vvbd0+ zuvv(ss^g@Q`qGd3LiR(!6OPgXLJKBlkyb>AF;9w8B^*5ZBaes@&KOR9FXgqarvf5b&gub5>JpExwNkQo zPNasI!+IbuI>>LM2?xLB&i%(i__Hu_I5~eO&LZ{)|C;JM8hiD^ny78B1wv9&BV;%G zED1R0nkj!2%BUn`B_>H6n17yx&x{8c(?Lrmf8v7?EO*5$fWW;KIEl<#?b1oV!<3kx zWRLmnZPYAq`2c{pNu)>-9z9mu_{+U@O?4z7U0_+xyoa1WZl^LQG8f!mG)VZc!P`HH zZ2yXe55-aNZU>F;EI;R}SwXe%Xu`{yKJw^v@mKHP)aH+uZTYXouylN<31Rlo-kcqg zX#%7u^iF$LfMnR&5XG(3T<}H3AUKS$nW@Xy$_@lsM3#1(HpZ2vqD61epEf337)l9) z`l?!7;*wy0>(<%~VKLShrRFAGg9s!-t0pgRNqntegoJ%+lCDd#2e z333UqYj?~&F4tNK-I^&ERv><alwHvu^xp z_GZLH57)${b+Dl^%WUawt^z~#TTIf+KfNcfL-*^iC-2@>VMwVfNVTDzdb<>8 zcrbXG0Ljc8BTmw_f?9$?2%4Det1W}>)he2*D-D^DY(@cnD(oRSD${V$J_D|oWi5eB zz-6=ej5pfJCQ#43nt8XObs_yDu$xcd{*aaA6`_K}WAZGpGult$*usd9?smvHDlT~v z_`7^6r5?m$8}Zq&^+p}pIFr{?sv(E5Re4fZK&jK*3dChYKpitPP4XGstVsqCI>P~O zJpQK?Srbu^!;yHUu!JI)j7b_7V|!qQ(xMQ#AM1^XB$6@OdN|UcD-46=l}J;dw{}GV z(Y9*^Ps@2K%Lfb-$=0P77iGjioW6Lexqt zKtj3Jp}j_8O1I&puAws-Uy^`1iCU7EPn%aG&Pd|x{qiX)hH@wk#7iOV`CxuMqkIhe zJ`!;ldJqL(B^fog%3x2#FOwXHY>JOy&N5b*(qYT*{bBd@YR{e95=Ya;=uQuVR0?b5 zd9S>YZb4EzQfQV3k5X;Ki=2?r9x&++NM91({~5|L{-#aAe;$mLhXU?%V>IP1&v~W}ucro+#a7+QmM_vo%aC0nD`s zkt;0sa+|qTX@3Z975TELhAZ7M?4@+n zzk1v-kf2qBG-R8jQuUv%k{gAsW_o|UJ+&(m3Uqz6_`!7pNsvhs;mafTBxqa%u^&Kk zsAV2HNr9Fu)Z-68(#@aj#a)2@0pK^KH7W!D^`;Vto&aoevlw$HAm7Jx0VIy_@qdXE zBhN)h~`#Q5@f=5s1@S3ty|$ zPlWg#up~T!Hi^#Z8oysG0g?)c$V1%IVLwL9LFDrzVKk_ee6M2UbPnsZ61>yFKU&OD zWa@GhY${COHh}ROTl-wM3!X!K4@i{d65A@k5e@`t?XIo&vav5y)(HghO@Y89fsnde zk^S$&{~kcA2-YMTA{?6uUF-tolJzzT#qTweJeUx!O>WZ@z~v!l1F)H91r0?Fk@@^P zb3_~^&ObqVyBiq3Tz!-fqnt|z29rgSf^Srkt@BPtUa48H6Ap@#R9)+=m0X$sd`JB~_msUw7wP;`l~vi0>Q7sf zJ?dbisC%^{nX61#3?ObZI~sZ@psEnOD~J{^M#hR5n$fXA1m#wfYEmXBqpP3{5!^Ky zm=ev?=C5JeXlUy%>!b++ch*wJ28nZPa^oH#t6n~D)fq4YM~4(wYuq${lQ4wXnz0pn?K&iQcN{Z)$b0m05F!{T0U!bA`D; zWY8xjfGt-QQ>gQlIQ!O7IQbA5>F2P6lX1#k8eaS;lrdS4>oD|5fBgdt1Xv3<-X+2K zM@VNQ&Yh8K9{@^4_1bItB=#N}*T!KSeS@)>x5KuffZPM7iXDdoM^Z`|dy<#EFm3|} zUV1@T*ZD*O*RuG4vhkH)LbWEs%)bN0R?oOP2BOps3~kZp{dB80A-%$lDzovrlj+OQ zE%Z2ls8CpsBTS#E^{2wi$*csf4y2AQhAt?-XKfk!=YGa$%s!~5_C=iv zWQ$xv>S&^bbN$$Gp)7(TY!i8`fl}n6974)yjELay9TJQKLU+3kx>FPtPN4|MJkz9b zg|{k%9f0IRdnT#OR1z;NR6QJBd>kqeIXtk11W(a{?ZNzG1+!F`bn|unVy0}|-e7WC zPnOQE%gDA450`iq2rSE8oIxhcJh}mya?(_d&Q#__!&jwOQ;y`+cFd$(k%f_i8xuV( zQ2YeMBjbbB?wvtk9a&46E#I;0_QIA?_Dz`$D?QK;@kcKEoQ zN0xGdCoT==QXHF3HPS{wD#)n$ND-BWa)73RxjBzN8?lINbqTi7C+-GWvjGzlS%QDt z3ZUo#+2m8l*!)Si0A&U9+|Dgo#s|M|I`9tfTSztFF-q9AwNU;Diu)VA5f^9LMRzni zO77nDDb}CuLZX@m5;YSQp|)>BjrG+_t&gG(m0^pO<*dOdAnu{QSS1!yEg&UV^qN0n zavMZL!v&~qr#EJl^pHa%=uz9~03ce)F&XzKL1J@=9~}Oa@-f`sU|<%;$CPs+ z*}D+q3O3&N`a}yCE*gm#$P@f&yi^3X9~><-T)qK+`92j;TAKlrW^7{035Tkb^XjAM zi_;!6U!M3?rQH_IO&u;~Frej*zZJ zbX0Wav-p7s+TLW8%A5{@3dc;uMC4#%4a3UK&R(y8T;&d6VQ2PT%u2+; z#ZJV@$wb8YjsJ)JKRo+4hyDBRpZ&}EXDr`*R%SLB_V3*Pul=jT_RaZ+|8Kp2XKofw zB4#Ew=6?+U|5f-`<=@SB#s4b(ucH5|e|Kg5*ZE(SZ~q_mt?GYs{^9>W_Wx4#kN>~+ zuMXRH%*F-y9``%=Z{%-T|H=Hm;P}Qk{*B4>y_#>&%E<)7&cgK{m*cxR_doUD_`lqL z-2ZC)8}%RdZ)N}dw=pw)gZ~?Fd>8mu@Sm#xRS)=IN&k)To$=qo{_~vw7W+S=eaHWJ z|Hc1j^nWY*?)E<;e&4fy<7`a-?3?$k=)VW`Psz9ayZi6{|2zz4rteYzXJ_F5E$>&P zC@eP-Jq!Ck#jG5O3Xxc;;>f_Pz}%_!DZpxpkC8+~EZod&+(e9W=JuAZR?I|fES&#$ z^ev2qGZg^^m;#`Lw>HNP)2oldh6E9|b9IH#Oa2TL1nJS711#bQg|ZPCymQ6SyBXMi zE|}?a6_EL+-l?g^T<^Vp*4eK46puf;uomL=iH~7_s&_)>%?SWqp|IWo$^uYWn!?AsH-ItK0;R3ArgODm zV*^h_N9%q4u`(ToM`Cvb!3I4z0iNSn67msqM#k0EZbfJgx{$0bFY>HQl=52V&%fq>Ao0S7lVHT3|Y@%X^u zUi7}u00gj%55nHTpCPb124jQZdxeeXtO5Bv#O5dA78-;z`y#Bbi-`!T55PwP;?N3= z_FsD30gqi865<7VcJ!}Hq7&-Hu=>azt@}zBf_;9o2aFtOCt z*0I;PgKKAi$O)wg`3JVpbp}O&()aYNJv-$E6aqToJv##ufk)pAN{S9w4AbrFJBm?t^cyo}SxAd_;y|rL% za4l_~zI-`>wQ)1}UX3oS#&fLUUw5FAP(FMhR)U|+SiyOKRqU^oRp80g}5sR;b@J`_+;2Rv7J08m+R+On~kDI3U_>FXE%3xNKmd+)<3^(!v^ zi%?`QHYEiBugV|$bzKvHJ~H?B8hQuI-4*CKC=;HGw&KgOiswd9nhuf;f?MZf8c>rI z1kA-6Tp>^Y<&z8q5#Px*0&Z0S<;=wLrU>-GpYxjLnL=cflNZB(qWlBMRW3UEivX-R zBLQ4X;i6aZaTyCKQyw5tme!aMb8EWBTwe%~TJf9VK@C(I4;7yvmi9TMOSpv?3^&xKEh>0!T!jm|wVJ zzW=KAFU7$M$Ui!5>M@IfyU5}mhNG~tg7j^Q#GY6l>p6*&HkxveyMB%Xo>+sz`;n3| zZ2&T{fo5e1zC-V-zsk!c7!wqd*xNgS@N7F|+OW4q4#oto$9@J}g z*$ezUfKG=2*CWUf2rsvY^NWMgiAYHfO6&k?YG9-}R+YvyB2cLBp z{paPj)&DWh`RP~JZHgt`?Me(;H)Bg=Olv3IZ z;9X&`^i55k{HB_}!3h-g{X0Ct2^`&i9}aKe0=2mXf{Zj2{*mtMBcUx0@4m6tf0+IB zPX3%OuHZ6r(eNu+!)xlLG8%rRJp2V-B^^9owv!K?G6Iq8zUB3;R#CLDkfSs(|NUvL z&WB>5vG)R&k1lAwC19NJ@1bGLcz)0OY8w;3%y{-B?0kOBd-+deZ?#lQc)0oeE-Hax zyf1r`Gy?OZZM$z^jnBa>jR5>OPUA?~n-^N~SN@0bYxd_cK)LkO)<2El@N60({8YLA z(>5TDAmrSTA89_{_hS}}nO|n5yPc>=lKf3@?c2$-dTwPff6hWN^PjDC^ALX{K1(p) ztn@yYiC4kN|I!?y1;&;MZ{H>J?GLOVulVskU&X-{3cvQc{pdgg7=%a%PN8v0vw-gJ z`~k1yEV;{5uIE9%rU&O|&e4A2#z_{8tJ6QY<6 zxAphT6A!tNB&Sw5V$+*YDGpaUvJ(lK-5W8L z0&!Cm`tfy7vT@KR=Cahcr`&9d2f<6SIiLfFFO}Lv?_Ax940JnX-hMgTK9bgw=zv82 z`K#y%v@C`i?_m-{wkGYFnI+RTX;&!q7kq6ylDB!IjblT5SCZ;^*V*eAku*&zm)$>1 zVmIeurJ#yIu1+bP{SFd7$9t)F?@FzZ?U#xM*ijk75q9ZS_fu0}N#S6EnYhr-x`9XxN)7C2FaZVU5zqA7J|s4pT{{Dl2Wa6GvdMV90i`V&O`=kR zO?c{)Qo^yp877MrVeu)YyjbB5JzEwG}5;L1tGcPWxg@sU~7w<>9CmF@=J3=E25y`7}hw}2d`Q4zAB zM-gZdlt)s2wTD{mZi_NgvjMh9#7DW=S0|Mc{As#2qi}%+_Zw&M!@Bi1yk!?2wFdYR zKU-ALqg*R;^I}M`ZtemBh5fkU2Nbe-F$F2^w$?TCQ^G?Heu_|6_sAL_RHseYO}yj$ z@>`Iw9EB^0Buw~@-@BBOwt(M!)F)xYT6>Vu4u%=5yP}|5o&a17mCY4z#V5y;L$mbZ z3l=^#)h}vuU#6l$BVSQ1ric9!f=|aEK3!_9rV6HECT9k;=c{ocS7)J(yYu5#D@tk> z`8Rz76GtKAc^G?%BfKc43^ASaqW0=3yxa}u2Ci+vUbb?spKD9Lr~sW=E>eDQO&m9T zO|N^|(v;xkTOt%OeBlpGVi@&RuMJqx&HK51DYWOR>X2eEc%pGWahJcl+W9XARLm_j zdic6!*t(5Ur2B%f|Hq!GaC5iG8 zfde391750}3`ahsZGdoeL^niMu1@!pSh~3>;JX3+-47_1dAI_!Ju?|Z{0w7l`qH@d zMaTT7M-{#Z*kp0CzQX56l;1wma$mhFifqX*zmRERdTunpTi4ziV*9A?>Op>riHnO& zJYxj3PKn$E={3`bevyx?wAvd?le?Aho&L%7f2D_0+48P20|v0wepV}QWBEqh^M{G@ z(5x#Oa473CYltd%J!A2#?O|3_@8dE-DohhRGZIbi$EhF;CmW^|3Te7(Hki&7a%4@p z3`=1nfYp~gU0q1ljUM2jP{Ompq+P=7SJf>)zJk?9$~@tB38M2SCB2Fy#EqmYkeM%q z4Y8r)Fv<)x=mMrj8VfHwdXY(Gb?fsMC`iH6A^FF$~nm4B?rtt%N@KFWqX? zzX&rITBmN4rE4+`(u?`9DRqAyZGeeqc3?;3BMly_M*QYV(Fi$j@pUA;u8WoQEB(-B zP(DXqI2tv<1s?`gUPE>YL|3Uv^(a71q3WNrgw*k{ss^}g`NVv3;^y*}d~BX7E9Vxa z2R=VrEnp7QIty!@*0Y|(tX@k6bj7^Sr?DX=k>x}TeZPMymsA094=)IYy6xQ`jha7?1h^kKtH#Pd;Xp#(7!E&3|z7F?;x&a z*5+a&)h|Gw0d!!F5voG+;?K3$;C10lE;B23)>LUh4tAfFe)MV<{&PbUWUgo*oQ!)X zk3VHhrCfSrU3P5VN1xd<8=fEgp>pDsda&D)v~j-(9t{mY$R6QBQT$jSo+e9+8>@n&)u_^{k*u?asGp_iq^XzV9VH?{ z<~`T1b9N~|ci|){!@fwn7!BlYe-51+O>5dx&{l$j+TApRNdw-8 zd%6G);msWi&r*qr@=k{o)@O5&>PS+^FSdx{B3w2qKfnk~7^j{YF3hCV=i-1;*Oj-G zQ9^xLwg^rXA59kXLnm4tXzxpg+f``j>dKp}RKk{1eo()wjFBH^&FAJtkHipNAblnz zCufu4xh!&yDRhQagpUBNZwefm@n&2O=THKM%A?9!Xrek9WyA_8>sO3XXOS0%M1OTeP{N&~X| z2t^e+V#N;~VqjtwEb0alhgG&nP%zUO%-=Z-C%rxrAB$k~urHzNlGkaCN^KWaKNW^-Yf zeWu&3MrcjfWB?DFvZ>+3SL;^gPl7`VPQ0ximsDLydg;?e#Tu|iujrllLh4V1NaZDT ziM~(!I@GXXcFJrn!Bfoo^vUg)eLHPPD3Z|MjPXTg%s%rrIWCmbH z7NRp;x=U7+E;w@Q7hzy}Pl>Z=yA<4L&aw1e;A|xO2}v32&P4qNyeiapJFKG*DksM_ zN-xL-tt+#-O4l>4EsQJBUt|O(k9rO-%YJDZaU=a6Lt8JnA{9Q0EV%W5GtJL$e>LI> z!C5Ih__lXf7P~y6>U4YLE!Y8w7+(-l71qrIo$MYgGse01r~R-HL?rZYi94D+45oU z%u?cF7y0SOU5Ef?0`;afNtjYQbCC!6v6XnD4|&qS17tk&af~NoP0}FkAZ&)QbX_MH zU+um1i{S#lsiw2d?SUTv1+z8GikY^~)NDtwAl)nFawWI2USGA6zMqrhwsM~ef|{h}WFijIk}!wy!Lsg*k~?MiZIKL=gDy)!_X^YcqYJvTDq=gXmj{z3F= zhAOd+v0U0v=aR!(E*`tXz9kSJ6Vd3)`;rxd08fY&O45+*1lJh=L=-=04^}i*W-fg@ zoZ`9sYHlNuJ%;>*&gYoE@DCbkUPT}(XroMkITqx)ZfY-5#Ei?E%t-!|A;Vi^eDhoZ z=O}NWTwv)S9Zpw0p1tAN>FWY8ol)^IQHx$oXG)O67~d$0P4jDY=R+HK`1N)u%JuBZ zkN7MngzX>9`Rf>f@xG_NDJ#`kR31*YQ@ouGQu+f`$$^Teyo{4y21}P2eX^41RAbU8 z^{8dY#&3A_fu0q96zXODyyAv)F%e3slx)<9Mqg+}MXqUsts_z^VzQE}Wbor^_A9%q z<7gV>NF|IN2k#;1KX?I8XG;fLq8O+5NbQNIwGHH5tPAph>tGtlGWuT&7Ij#RwxX2$ zk&pO`XYY&`GL&|FJyP6fIZYK25rTtJLS?q|8)4{@sjTopC7S6LPSL2c zsfCTJFMc-x^y(up^LI^yRa4FZ+;* zJS(pIm1F);hSst!d!E%yPA@f&Z-~=Um;XKAyk#0}I-1ySJ)#0oS<_Vi=0dnvUt5ot z{KWIxn7D?9Wz3OF*X&KQuU25=?Tg_($TbR2&e0@JEhBlyRp54M91SdGVL*S;atIz$ zS<6`hI8oR8X)#u-mg;@(c`%`HduWKz~?U< z`;@xl=9R_3_{`mD!Ciw&$DcrsyM<^LN?x?g+USq4ii?wddLl|dQsNp|XhM);sNTff ztHl-BF7$?rc`U?zfafyMa3dOv0X(Jlvx4`la|rFE_gDvo5c#@fjIZVdHu*mcn25B` z04_mTKZ`s?2$2QulrbAklkyR!&EKcV;!&3UXG+AlK5hd}6tcm^R%^#sulE}deqeuT zYrCiwNlpjEe(y}2bU_tStDfB>p>+NrAst0#b_{C*AB-OhU?R1^{oyJju z_c7z6zn+j(D=+!{fDuHnEY<8n$M{ns1}JNPjEBTDdfmDuG4`V{bd9I&E>ELEK!gK>0Eg8+tz z+%x-BCDrmDJ-a?X6Y^~L_|P(=C?`--N5DTBY##JQt%3^4C>wstqHi^6$y|Z;^7lKd zUtelnTIBDrKQ#dhi6rvb2olr_K~iVY_-F3;@AV(ICu(%<%I=$L(g`-U?Z|aX1f@F9 zQ_%nRFX(M7?kFG87qsl0D$;A||umiON31 zl+GqPK=6t#sGY^|RCk!6Pwz?ZIDL&$K?hWn7-8MJN)K-S|hO#`N-8*!~T zEM?F$9T>MZ5PrB48V*QRhKVo0leoBJGQ=(-)-!BkDZJ&c9pWgi%Kag-?%u-jEoPXP ztw=O=!mJKS6arax1imP+|G+N=jT+;?46L-ZjtWp`88@Z?3rO|6&0r9bm|>o;S%#7U z#-v21^n!<7i%ds+3cKRUSOnx8=T&WRId#NT8^kZfrU6qMP?p4Nk-tw-Xb^O@7U|v7 zaz4CLRdCX4L*Sn8pE^N6II|e zh}j>b=qURL>_Zv*LF*0WA%0=4PJpNtM8br&_0Ss7&$!3ILd|I1U;`LcKLgy=Y(~2N zx{{2Z*eGQp8@F0O5Ef+f3hx1aH@Y*3DLY?+&cD%hptxGd;1KDWNR_v-&Frp^Io`k3 zt>SE(Wq}nQXQ+B1z?ZP7@jxtIzaVi*PV3rCOItxVBO)23K7_Hlv+5|=ku^Z?_@HlJQTbGVSD8){J1HPQ?MsYLp&+Y*Xy#{ z6qJ3>@K2~856=CNT_|)uRIBkRd1-5nb7t4c??SaSZ-&=%eVX_87xKruf}Qiql>2c) z5M}386P5Dw&0u?pFHvec_)THz!xI%cnK-BtSw6Jbkrj$bfx&|OSV^Lq+&W9!pm zS8YwuCrV+&;rAT%d+u{}HMMMcNssIqYc33nxijjr&Sn4~eVm2~#C{xtk|AHMLg@Zt zNnuE86f1Knv6cdv^u+Q{G{Q-CUP?N0Rd)c&SejN_Rlf9cY?Oko*)4Rzt3TQA7dfim zOmEC3k9v5|NfQ&09pE4$yG7e5e!io378jE{ky!!k=WdMZy@fm}ub42^P}SR`%OlOo z?N9DrANPO}PA%hA8IB@iXh^V_5Hl`A7whZ%=EUcnw5>+^8Z^+;SmY{NeO^-Z^jF5f z%s=zaE;2sl->;7SH!)@Pu#9=JiFoa{TZdJhBPK1CeoiZDBBZ0!9BFf_M576u3%mS{m0EMVVr z;|}5=*gw|UTblSZmS=d$fAC8>w{#Nu@AD148b5Zf%@Vo{L%8uHUVJKYr{kvHe}KSK14mk8J`Fn#yIZW~=&w|M*`-I#oA?`PTWyVy^Qcx}D81-H zGzhnrsi9sAqvFywvQ;BkGD>9*@D92F&W~BfwMnQ*=+1q@AcnCw0ignbH9{6OaY)Yf zPH`XH1A%%jYvR^h`F5DkFqqPiWOf;>ayZt7Hj_h1n1C=jt0_@ErwH%Dnxmn-Jyq)W zaYOti_BjhJkp^ZYd~iqT4snTNXE$%Wraz1vM*wzv+ip+8y3u0tjFIM9#7a+A&s(+Oht*{)+9Q(45A_+>9P+`cc8Sb@Fx&+_Y?DC9GhORHBKF}v9@x$ z8ZN#HPd;!66aHRHNWt&R*N#*GQ$4hZc7Rj$h#~}+7rV;TmiaykLpq63W1x4VINRjf zh2SU$c!w*4SNBhhV403r4J_SZ!`9+#r~qLuPZTLK2A%@8#HXTzEtAPZ%hKi@w(V<_ z(MmtK=W>+|#Xi_bwxeGx;Y|nCI%>?8bd$-k6O~0rDV^QRTV5ufs{ML^jh0I5zT?i6 zEx4B7O$4W84HLQAh}v}65hZU%s7Pg$QRq*8EsB(@^?n7lPG6m36@w2m(z+H+#}XD5 zDRpzd%U8`IEuA$FeOtNFBWo6ss7;0&iBNu+j zOvUMo>qr8tRCPE7IZ_y)lKwJ8Vgs92e;aL}8;Sb`iuyV>6o;{09p@@Z)hL>v=%Ya`YsWBY;d=0GbZx z9Ce^$)tJDvpB5X6gcCKwSYa&j5ThZFrBVhIVcUw%H8TFaGWEjm zzhbhcEP2mSdKA%p0De9?GsnbCz%2}4=hq^Kgv?s5=YN=NBFJhE%;ZXH)g*l&MiWD5 zc#@zZ&@)wGBR)xqs9$Jk@He^oRKu5!rf95$|&4xD5nPMvEH2PoQ4@p_dKL;Cc$Wr(I@ zXl>fP>=o;w(j>${7nOTO8oO*g!q`FPCQ3oidUQR%OPB9vW(N=GsVQxJWl%Os&7cpO zfS2)|_}pr07vSvqwI5veEhD@wvft>;Cnfjna$14ron2Q%*IQrN>Qb%Ohapg0-jW?F>@3@q`PD&*ApgKqAxZ=d5{)o=UODGj-d)rS(ezaQ)_8i7ZG$O z1k+4xpbd!_@X<7dGC(a)+cKkKP+Jc)EwGD4w=UOZGmP^lN;Y*6iQ3#b`V~=@liHs| zjSV4ow5L+Ui~&vWA)7nu&BenhOUjIC@LxK;w8E3&01{UWe3HF)O&;MlM!Z>DI~-xJ z@r=?n+HA2Q=@J_^(hp~2;?oq`MF9#oFECt?k|vZ*o7SXi^zy}?gH-ZWdmZx+9y1k> zFpDkuC}t6s>p&ZE4zR(@zF?Sg;?b; z*|3m(otV8KV({*p*0&pod-XgGhql?f8%k1`#=)Uovry;O-G+Of!t)MTw>+{lEgVp_ zLx(lDQ{8Q*w;^nsR~Smj6x?Cis5)e+oXB}s00>bz>|a15rN~Zx;|(RXQKWuWJlKTR z3*CWp6UV(UExY`Te9+iR3#5Cw0n<_92}xocHIMp|FEsDqwg&26iz??IL-ZMY$WkcL z7zS{Amb>8+QeRdRDpl(AJoI*Z=OQ7=MpY@8;5f8KuTg3Wb>&7r$qV$~42V%|u&Di0 z0DT!L*Hj<;J=$ii9*D)HbSpo1LE0!3ZU-s`K- z9^>dY8B(XH2#0rc!%H6$5re)Zi}rVKK%1)DRg=ptL3o15wvPzjr@A-7MA3iF1gk8!c zlWTWY2)Wt$9+jmJQ%CyCulmY90c9zSj}8nPxc89|wsvuwb<|x^!mF4`d^3u@#-m%0 zrfF6COepwePq=-UE$dcHCx(ahzQ>pnl_86xb8RR^Est~7U4iQ?zrZhfl2@UiS)x77 z=IIX!G>Cl!>OF;D=m?|6eD0Rdhz0fV%SsW$W+!Lv7g$CW7N*u>j&*2(sEH# zzp>VtVJ~H;{CzwJ8N4nxv`#7!3n3pf$+lYOFc>MK?$Gw!GQK1qgg+j90_!4D@NdId8d7YRfM#T9A^8Z@asG1EIIqbAF!K zDz$JPKS)MC1Aum!8u*ou0!tOy+E<4V>oI<2p?B>ZW8Mg@^R&}fSz`5t^pppB2V=?I zi`yq`{NQM==UgRePP&q`5Fo4N-so=*6L@nk%8~K5G@P5JI9XAQ$OO08NYtepUa=E zkU1gadF4%frBO!E5IeGzgxIanB!o>`)CR=Ncnr~7_Mu%8ke6)a=;n-RiJ=2)IIT6c zL9Cu6Lp-?LO8n+Y1y~x|Ivu}8JrEp$gfztFFH&rV@W zVM%d;v#Hk=bAQMv8J_=jyUta%ZR#SH12Ud!(sLs;-z8;|f5BB^C89RhfZIB8zSJLD z2CGL-9w{rJ30H&utdBrqu3QR1*0<(2lDsuKg0Wj`2rK!E1;|j8{zY#|S?q+r{6k}i z*6O8;fl(WBgE)ylFI3fmxea?_zFzbVpU-VE38%^G{g7&QHIWVn@kK}z=qE%WqvH-FEBz|bPg}@^1rS|PjDGcKy zHQm+dYEBPUmjzZATUZq`4)&+*-9mo+h%JP=jX+^dYrrSDQ*YdLNN zQ*<`wc!s*Mt%{vJauc6=KFp@-^Q4X->NjRTKt02iXEHY>F^2mbYHgL$lipRCH?b@) zjmU5ATbzf^pPDJcO&*v(upE<~2NrR^C|4EL@GXCSII22Kf{Kl&-f*t#mmlRd=8DQ$gyLMNi=U zR8wyh5nNaxlKS91v4`3$D&lpwdTG`7J_@Rz#{r@5$I~?lO1w*QuQ!VRTZ^aq*Thz`q9j%%iciySG?iOi-?@X zZHm8l3z)IfwrZJox+P}tz`B%%JxE9DmuDMcc2t)g!~MFHeku-4`2{A*D_-fWSpgvO zH(Xs;dH01|EhYA()Y8dmq3SL9SWvyj*IJ6XbE!x$cCGT%3r?&{FH9chUj?^%pF{+M zU09x}>jf*xwzI6!XuW+Q#_(mg`D!~o2nGJ2&HeDI4B2#(&G!`h-x)tgT)jDMcW_-H zJ(7Wn2Y<-##R^Fd zG*D8AcxrwKQ0pqIGN|@Daxmpc&uOODSgI@p999-L$VUcyD!VUf<@w5`JZu4?+`HXP zI%53kSdVT+VoJ815>wtzNInhdN%tL|MKx#zC-XyPpI9Q=ZDN^Oh{ybh$y&Y$ByLSc zsz8m8?BQVnJcCTjCJ@WLcU@@9Bs{$(DGz!y*C6T`Jjiv6Kta9UXC9zQvVVWO=Q0cb z*d`8@lH5)!9=rOp<$iJY$T4=Tznf(&3Ld(QI=|byE+X(K;Oe)13-Mt z!9uU~2UWzF6pT^4Qqk!XtZ$J%rtaF_hckP(Y;{8N%!%4}*(v|t2KXqI1B|RKtmC7Q z-m#TklR-gE?dxTTi!@y0SAE6(`H+oKIdNC`Gb7B?1ZIEf2e-TuNI0F^xSEfW8LDcx2j|; zBOm81_oKgYwR%ukPTeXsK zmN=#_#=Ep)GVoNh2-1ytVrYkYmllKd5iNA%Ll2VIPGwFhB+!%Lv&^sf`AOsW#Jpl? zG%s^IX;ZQVS$yof5*>sgc7Tk7dj*@5JB~*7y`yXLKE?+_#^0}OB4wt#aC=l~Wr?wL zRbPNKIz%ms=yU;4*y4<9hRZNlO%0xW9}H-Dggmd8iE6j>m1UURcBSb~3QHy;VfDyS zJhc-pDMq4tW6x$r1C}oM{}Q|ZEmOg8V1IezB$oK~0iw{XS&^I#MjZ-X1JL%6n+-*y zFleT2)#E?$c8jN?G{2I~Vc5o(h5cL(`5`vwh=o|S9cqe>7FNd`=8N4pOp z4!l(yVd6FZUjQXQ+Q04>DLB(l{0Rf|)=VkxK|mDUnFV9g%ppv1C70}|lEpTIg*-R!7j*Z00OEJoFRk8vR&w#I26+@? zDKWFI0>Vw|`xaZ_Fn^$_M3+-vGNhvqkvk^m$hyD8>mH=UcC(QnIlh`%dg6+z;1q}j zXAL_PP5O1*t<^e5BmX#MJG_*!Uf$2ihJyq)_WMaLP#C}!3^k$*rED9*Gxu#$17w=Q zZ5A77Gbg0^Q~jJ)O1$XCeFh*+Ss{Lb(lJ!b3HtPvJbEM_#i9rk>@o37;L-9zL` zK_PmBCbI_}2T{(E>?;{jM#!RX*6K;XMTa+aZZ6#8O{n#L!hg}lHg z79eHO5TQe^M}PGr=C!?43lJ%BshekvO2PX5r5A<)+d3bcH6NSct7I*HpRGjefdC^B zL$Xq`tCf8|aP9E1ur%~i~eJ0Ed&@RsPO()R0;k$Y?(RD79W;Ke3&FjFq2>@zC z`aY3yfnqYQzy1O8*6?vntQbbGG@Q3axFixoO8K zl5FR-6MvzpTiaT^S6p`G%lsOo6&R<@wp?cO}J?U^#l6?5LGrsKM@Gnl>JM$c*3`Q+6Nm2HFEB#`ljU_Isx6gWHIhN!| zoI~Xncc5A|HURM5S2EhF8&W_+$_Y`#o{>aH27kvD)d`9cX5q6S;=JiDsj$FE4-OeL zLPLr?INRU}Vl~rOl0QcoYoM)@&wa4{IA3*BVjCCb_>aomIH5(Zy41!f5%psmzfvn1 zL6JSd>T9^LIB~_`T#Zr^&(q%XQe-tnOBVdG8JBx6Ug0V&0N(P`-!xK zf$v5H5`u`S>T`s(IJ3tGwueBMwx8FqzgBbR$hVcu$ywXy zUC{Z>Ybo%#!w(QSm5xricB%U#PwA~5JPxx&6-g9XMeIw6f2e-B6W_HdfsR46-&&tZ@mrZD*yPL7~tU*63;gKD*>(LWOO z(b{)!V{@C-#u&GZe59Rq^ZG|DT7N$&SAjc;Kd>58ePy;sMp}+<0-6hQ62pW&!6v7P z>nI?xLo$#fTA%@DPtzz1H-QzIy#nIB3D$IfSi!4C?BnIgb2;TJt4(cDp1?30;Ixdk z%-}jE+W8*MewRI8@eCc1e1ldLR^8-7vE=S)TM~0NH@JU& z241{uHT#qxN8@Tjf(1n)J>IL%v%NeC9e?}Ey~%4vO0j~i z>iMP>K_q=(?5Kg)Ynpc`j!;e;YhRz)oEHb8)Zo)H##qQLf>*tWdm1UmZ*#J#Eb zmO8Y;51u#s+;)v*v9I{Ieea5)`F>aLSUu?W02P&4R2klA)B`cws^z%?`v~(fM zw|?_x-A_n`wzJELkAJ^{;jA3wm6Ur&vL$5LYnqW-j!rCDSpo3v%ARYrYTkv00PQd+U-arhkOmG)8@EF>-LC%^YMH zd0NY`bcbr>w(k+c@nIbnim?cyE_f38x;#eTWMo1d+Q2~xB*{p}d4wSwS>PE0&jPEV4oO*(9zTknx}FurSjqea z7gG2%Y#Y)o>L&YpK&K1R58RXFlzp?8haL$^n#yzCAb)9Y<$U7Qa*CQIu82jyky%60 zJ$MVZ#8m6R4eVPOeQlfYtscKCPor&7U|>v9(?Z_94~g#cR8-DlNf))H-$t;(mD}xlMP})BDW^><%c`?iYkh|Z>v=F z^=oH`8&DULTsyKBlIUuR&TustT6^&7@WNN<&DXcO0lynsYaARJC%maqcZqSFWu z@$QUf3tf1Zex*k)obJNQE1n+;NNu-tzkqgb`jJy4&mtm9UO~XY*I3Lf2RQ!<^-Dl7 zjeqA=I;t4dOLIigJZ$-VRdTHQyrl1h#xt+jB(c(Y%Svc%zqJ-a=5V1C9w!i#$)OK8 zNkg(5og@?zlfOifOn-y)YA-w=WB9ZGSuvr8s6?zr_u`JeyqpwfnGN4plANwd)_0 zl=LaRsvyfP^<^fT*DF@5wqBZ~-}h3OA(k2luM^6sUDznfnbm9U1ZkzBvGBW2jAQ%P zq7fw7f30j4;G`1E;U+5%q^r1wHe&nRzq)!8oe_Gf#eUAC-G2yQD1@IGmI>eS z52SRU|GL2(4u{@BM)U(Srj|_li+|5Iv;2O`{UB>trk)RiG~u?+9-P~blF)D*ri<(4 zAH>m3$;X(>px;tPxa%*+WyZA$HO;L;V%3{%Co+&|wbp|2;JH*vIl8tCFfhiny%krr_I zol5AEvnT?adA3g8%=+SI=``ocZ%p!z$?sOAxQ%Q~_~RsLd$Z$7Yh0bWDzh`So)0{wg(wdz%%lTd+<+*OBig!SZMR zfew{37k0ZT0yE8?35jV?-pK{|%#A1{Cfx1c|_$^GfLCC=~s~3 z^3ejPpX4pcL)s59e}7$T{}Q3_mWS-pxs%;5IL`Tc-2f%QAAKvf?}wmp*qtnJN$}If zuX0?dRDx97RI~a=qYHhPe(WNG4&1Qv=63?R3Kk<+5rn}?>Y*y;(#G_xTJ!0bZ?Ba7 zG@)WK;`Zf!WbpikV>-<_#^fK9pZAlIMuoZW_8GH9wi=a$W!Rv%6M1f&-AlRDVcfJr-rFi{e(3col93<2pj@*72F| zrgv~5B*{Q9+G6m6skRG_4h0!U6|JVbYbPBEQY!9a#3aQ+)7;RWoxuZ=5S#tPPv8H(;PvZ`*Q&HHF6MZV&~?Gs~UYc@>7-@?kQs zrNL2IyexhNE3`Ayiw*7}%|R^mUK|%{4_T==D@BtgHm<`DX}C|Fhdc27%>B5L$BVh& zUwcS)2Y;!RE?(~;uvT*I7eHPVr%wTr>hY{9N;8^dFuVc?XoG?-xVwl1d!T)Opy%li zyooiDn~fbUE-IeOfZV7D!zTw3x6EET=?1Cn-YrEeg&~zy&K@&&k%tG z{#Na|AK&O{vwyx(E!>eHDV~u(shWF8;ngCZO{gJ5_wy6$zGTZ zqksQu92@_x$iL6uzAIv)VF6S9>*4pG+fY6a6R{=y6q((ZC`v{GFqu{_RJ+PrVG&v~ znk9SUst4{1Idx_65)%Bf{7^kUuh#J#uv<6 z5a&N&LcP0Q+lq)P4G7o{>o)vuc}u6hzke4#;u~3bn@o3fvGH4U$GSyFUcew!{H4cE zwcc4xXawYO-w>sumaNrGwcu^YaBhyOLKbGgo1629+vVOd(1UB^=@QarU-XZ8_W9UF z^V`EgR$9F5A{&Ls9SFS%N?in+*A*x`T=xX^?p+~v-ai1LsMt&Q91FWpo)C;>i+`aR zR07R@Ws5Q2aXy)#JB`Ny_%s9vHhV7*wlkKI?^)Ew%cweS&wmBd<%xXMuMvplJ}-UE zf56J4<_B%Qko8*6>0^!5iAmA)f!D<7ii|0T`E*GYsYTb!IRajsE3rdk)?v6jnm<``|Bj!RD;7tWv%bkHO|l!QNSbWPlDik(AV>O5 zLRQ*U8s4)&w{705XShmH;m6lF%w_AzPrGdjs8id~0h8(XUb4foh? z%&6&AYs5MefD@Vxam*%NHGkGIas{aEU#W_Bs$*UvHHGBd4-NKAxcMH8_|3bytH^u$ zpa&RENIn#q`aJxW1@W2AcC#hM9;}S|D}w#6caAeVpNPn5rU@HJrF1zaxXStQ@#=j_ zB0rQ3>K&%xP)2izM-FvXBsS`JS)8k;vlJaPnq;$*NisDM7e&P0XMYgH;7w0y7a#2N z>00g9SG?R~$J~Is=Q3QOHyzLx7ct#6gS+11u(Fh@S+K@it47!s4?HkebKa#p%;5d_F5Q9e~NBbIcp#v{;6<uYu4Q4no3aX_CD+ROF5?zE9YcOeFG5&cT_>k*#sBiM*H%L9#Kt`a@`c`Wwvw$2d|Pr!w?t&sY{xQy*ZUAK1u1zL$tMmI=z$je##FcdLUcH0SMI-eQ$rZP3Gw ze$Onc=h(}entyqFAyp700{R^V=VqvHie-y+(_Y8)(whNVsrO@NXzU{=)~Kvs_u!fO&5jDPo>$G!fUpBJMACjd5?RHzG1QhcgLvAX&)t z?B_lIODoa39C?Qa1dr49`o^`77h__C7*J8Mr+hg_>3@dD!hiAIWK;D`OME(l9issl zR%)A_K%xh<`~tq|0F-*cQewqNVrPOwFFTbaujjwfTto9Eu3cMsgDDa;K5*CiJ-Olk zG!;>7+&_9Dq2^cCVX<)Ua3-yX99BeKH@1386y-7Ph021>7c({3wXKa|6$?cP-P`li zDI|(D7=Mf0G@@{~mIL2CG->trwJB=esijbq9kvX1zS08z4hM5tIS08w4!|^P^r{LW zi2ZOkvF#S`xs2)4cDD;&{qq!wtqU@(@E+HKHoU}LXyjClqfK$h9+BI zyBq_3B+O8iI)qb>@4+sRbthIpacUTy43$sw?%^ku`0{~;5Pk3FP)er)LKO+HeGQ`>ex2zuH(Mnd+!&@8F@ee}uUZmk zDfTV=lceMT!;c7(xnYp=eXclSN^^cuh<^g^v4%TNnoK1cOl06E z%vf}rGzyoH*SY3QF#R0G^JS*<|C47=Wv%IH%g1skA8Rm8&`=?d<)KTpBw&;-ZBD0+ z=U|1V;xKsOi2)4tCREsfD2#o*3VMnY!(q38YNE zj`o%&TYt9@Fhe3r4sq~xGU3v7<$nfAO-Gn*4A0a5a5ZJ)eI(2|P39doSi!oS9`8>5 z&a2t;E0?9uQH(kzfKpvCU?7AcGaJ{ni%KIB(|dDWUdmYgB{t2Ks zgM-p8)L_gHgG)-`dUySt!zxz;pfjSeKf6~`ZycOZeMTXDW+5i$-Bz-d%3 z7+*e24!A_$>q5Tdzh&6y{B;9wll$6W&{g;3I;&36IlI0o#-Cv!Q5b{Qt^6oG0$rNN zGb$B%O6t+h&`l~6UuO}}dG*!l#lVjl3(BualrwZux=CCzo>qdON^=b3kd}yby0(~? ztqv#y34zYzYDzyn=mdA7ntx;Pnt*4O5}7l*k-$^OLjX)&%fG8tqsUgH*Vh&MfHxaB zH{S5V>u-W@Da$z=?><2Fh+%BUM+BKP4f6{ zTmD+hZ^moYOJyw>G;P;J2i$vVSAJk2gM7`Bze1Lrs8(VK95msI$*YLlOD;nu8z$71 z^M(prjDD>aRA=nGy?$@RUS@8$qlUbgeuDDdB=0Zes?5?NkX3E@Duo|Hixhq$K#fC# zvb8hHOR2u==YQ0fbVd|J<~1zyB!)zpuH#>i%WxC|jgPj;G47npgG1?%N&7ic=OJNY z)Px1*{fp1v9WgJ!{LWs?aHQH6W?xE@;gQJjD?^Zxgedq5tf2C|kna#vQ6HCs5qIQX zp-o)WPMr|RhTCU71Wv)k_I7XoJcBAfty*Wu*DL8iC8y~~15{p4@p51gLCsWo`HtUz9J(Q-HY$naZ+*$80i|K^V`E6zO(nt{;U8>W zc%^a>t;nm=>Rm~PT2J@& zTW52dmaJ-QY$j21JFt!=*VbofKyk5h8!eUyWTjXRax_@h0P=0=nlq2HrNr8?O{#fuS z3Q+U@_xFx^2Y38zuT%M)|4Lu-O40?{qjF~RtI|Q5>Fg-z7 zwS_6Z2i&j>m)PbK+q`IW>&Lr|lA?0$`G2h~+2E23OONI(F~DR?&FvQ#4mLgSn69Qq zAi&v=dIEZk<-L1vNfI!NAmH40!C|Lu@mxz;OY43emAz*|-)ys{7vCPvkMR8LBcPM| zHa9K0w^EvB)75mbq8y)Ln49Y)0U3=c-ZqS<8UW$DC&a*JJ2p+<>LgBF$dkUSQh(jm zdwxt?_DyANab!t1*1Zi<{xWfTH@(h5W;7vD@;KeD&mKVcQ`y8_)F%r2#ifEJ!A!f$#P|p+A*E{7CQ65 zCWGwQSsY%*Z@1SA3{)m~%YPLj{G?+m>VKEiO-w(a))JS+t1gj|U$&$k=bJaD|jyyVyScU=xn z@Y7)^52a5Ps04K9G>xx_f3cx0p%F<;1NdQ|&Sk>^KF8D~iWiJ=aeq_Wt{Cv&!A@dE zOO`6N3p|MFodEd877$QljH%bs0U%PkX&*nQGgXGLq5|wYhwGpO_7yw^5yVtas_V5j7pwh3)7pa4esMN4vFJnxRc9{}LhRxRxWD+tL1rB?QS(A{Jy$nPX z_`g+&T7gQ2tW#JCDj4>HaXyvq9yy=fRSMX!FdXL1vNz=G_zX$hyneJOwyqA(=$o*JSncvqq<=ON(R zSgwFHXCSGWD-zc;xq??deCIFQO_&;&a3L*g$zV)edKcGy`8xMlh(3Yy93Io%1$+NN zWHHnHWKn(lx_|ynSgHbgMz9*L#;`xpU3Sf#aapsUr#Xq~@z7j-Q-;Ad-xo{G$5sN} z66zd=VXY04&KFryNr za4d8;2~JgB9C~;QF!m{MyvI6#wob)pkbw42JL6ni9)IsCf4_mjT*6^5%RNH$lMkAh zi3KQOEz?*a{UNkYwZ;Uq9#*y1DRB8+c=S;SJ-ywVoglHliKen=F9({?cBs;|zc-GP zWWiPGe|8g48&=Kik!+9>f86mi_Gh1w2@ZZ9bRmZyhDgCbMm!CtpIfZIsnb^0I}w+^sz2*mi6jY2gu=|*l}Db(qDN`VZ^oRA9TCHQ?q|sQIOeaU?y_}< z?~fTU?js$aPccgm^JrsW!3Mo3`7xysS&L|%1lXy9^7Y7>^Y@b4bVWcz+NqRIA+=Mf z&N2VY=2jcq1g2cOW(98K=2TQb6m_f1{yAdO7JqE|`Y_KAt;Z7cmGJNc5xG%_0w3-O zPbYNtuAGqYO~v_NMV$g#>PaJ%661|74L&Ez>n8p?aptqK_v=Bp&FV_C%`_tFLe)U5 zlaK~5_KT_Sno^+TDRgj%%}E#`=To2>{?u2nkVS^r%a)F~5}){tAJvLQbT09MM<^#L zzki<;qI1tC_F==Oi9ukk9AG)ufs&_5KXmCZm)wKQG=5v^d%2KjBVrFup1|&>pU-(G za;=(11_^5=GXoT_bEO7b+w|ZHSV#+}L-XG_HOm#pt>)|op*rg8@aH6fz6$Ty|p0cVt)g@c=}s@KKyZ(^j-cOflTzOM(grw+k>zx zSWI~So(zpsmp@Va#dh5j!)5LgILK?zuJ4%4+q@rCs1*Cj+IUaX@#b&EZSFi=L)>b) zzX}D5J+yN_b1Ts#=rV|Wa`jl3FWty;O4ZQhUgIUdcdyC-DqGbGU{@FVnGVtUo-%q=s*y)8V{2V6Q1n6QYY8OMA-Eh-uAp(zS zKpc($7_(XISPC_Bx(TrEDv}$$s2f7H##^{U|0XY+%Us!#tSW^-Dd#aplGECCJ9}=) z1CFFX>tPQC;E@Q&>?m<%i+{S426pptT-}Nxap1bDy|E}70SduA4Z`Aw!C!*!ZxQ9X zV^Y>i1*fOFz>^PDO3&ASxnHOvZSIB>Op>pz?!u158G@0 zqMhqYdxg?MbOf9^#}(>kL#DlJUxm=@laLQSYU2n}Ck3-=#BBNTZGZ1)#>5jyrCbr` z`m5vVu5W^%r+#haCIogRqrV={E?Np{-nH}+tC0O6#!^w6$v6ndj+NQ4zDJa`3S3>d z9|!kVyg9VEYoA&GXIa_1YtkR0vP{}4La}w1Tul**e2N!e^0AnxYDQau5)|U6qlE4N(l=D;4QG0p=Bj zm>UK>(3?}tg!+yB2UpONPcaE)c=tvvU-DOOz=Q{azP*-$qNc^~RW|~@fauFRTS}S8 zH2yP01<+*_FG5xC|BgclO&_sFd%(i0!#SQD0)D#{R;)2Xw|`ieM_zVC$}XG$utAYJ zM8qsbes{voY3g}?1e|Ti*UuKKiv=WvZa(L9(1(vr3H^ehU=IsLV+dJ8mr1kCLAGhX zN;M~|7CFA7{wO9#()nC$U)1azW+Kd2lHW9f?+c#-)(nhD=PXBDEh;AMLQ78H3wtQ= zyS%gte5&^5RDaHw`cQgayr?Fyj@8<6nyzmGtrgodv8~j}8fEmr5<*Ik)LWDQtWJN{ zRfS$i0klzkIJPb^{7Yz@Kk7IVm$;wt4D7DJSuZKInJimc$aY#Kb&zJb@)E@>{EB=? zM`&Bzwv(w~X>6>ncj=v{3P$g$eTcbNEYCwyC>5SqOMmj25Oprg1=Uf5?iAsx($!V? zfcc`lxT(05_)z8uVYphP1drD!fr9}_)kvNutFxYbcLCyKgrB!W(gSH#XA;(I08joJ zjs7bmBH8KSXLP$g5%TCzLsqr%&s~S?wlM1rl$64`5`_I913HybT>YRi`*si8m*F0q zU;ABfsDHRI9^GMmfI)gSjR=MXw+qFl*m9jdhG(K5tYZivhd6h2mAS)tb6fj?3ok`+ zEJPNfcnmT-Kc9ASaP7h7XA>GO`roxv*RDZD_!2!^ySr%ngF+BT2bfcJcQZWvUuoH(2_OCx2#)4Te^Ha~a*K8Kl@OH8I5jJ%r?S z&AgO2CZvX=nb4hu!JsVu;3(I@6_t4>!QS8(NtriHk+UL-?{&D>F14I-P@ffomWcp( zimw{pCWTq+u*&x4JycG-5iN4wj=i_^yirmW4~)49{ih{lE?QcnejT@zTVfEgoPo2( z&VSqp8h=>t#O8_|y^9cg&TVlPc8|>GpsV(nBW_y{TH&-8x;1rsp|FNDXt?6MFlVdvMbgsl|3tAqnv^KY!x* z6!=QLztNH;J{$2u67m7o%*)ri_hHzl`D3!(cUlAVevf=FQVUkhL*cjjB^#{w-QMotm?Ih6+F$qXD>`4x)x8)C z8)V2pRCy70zQJWhr!=#OOMp=*fPXn3iBu^oj*h{N>BXUIJr0zoBp4eaJ2B!{6k+vv zqd~P&%xT)u`!qDyX$J9ZH%6JW3`(ikKzJzupoh(GI=(zVY9{2(_LedLIiuvj`s+1u zS+G-d(m^x!wKF_w`spPIfJ7V~LuX93t1Udb2UUA@!iv@i3K!xxJ$qA;N`LNXv3^Sy=B2MUc7-|cqu9TpSNRQnx0?L)uo=d!IPTA2GV9ah z2@;*t(*A-)OPf+qWLjYiP~LNn2{~k}NLkw|7m=(}weF!nvZG0c^N_TwCi-4pnp^@g z%VHX%O?mJbfg^OqKx5FV^2r3x9vOTvv3z^y9Dlh!rEJavtg^7X1%EUIBK4n8VqdN$ z-KX)RC{sLPNRkQ)r&A%no4hP8%siM^sbKjF3sVPzWV8_6OE9gtPARzBF~9$quIl(< zj)V%Ua@z-mRj+3t@?lTE9=SIM_QP=S1sS@B?ZTr)RW`QJ%vc<>ZArg=>zH38v*jZ~ z9koBL(WQhPr7)|O=zrM(1)<-{??7QBP@YR^KEIr?;R-{j|W}o_Yng6nOq31=y&6N@kZk@x*;N8nco(nv? z0=@;MI1cwJO@IDBD+$8GKZCh;b-e;ZG6X}sS9G~tTDs6N+bAS6_&hQI97(O$S49wx zA7qafE|&RhnV`SS%Oe@IizX)-mA+y1h?O96r6dsE+(1jN1;KW-zS{#6aAKRGmeZ@Y z*UTI~rT?Z7WZVt|DDqw-PW)Yy6tc@Evw(4VQ|Y>6|9_3xmYcmsWfLhpTL>kjTp;($ zw9RecJ4JlYu{CWJ4A-n6)!%g>_UH`PNKphS{790ilSJzoMV3Oda~$g@@O1Yhc#TC{ zo7AYE)C~jB1`v%QcI*m~=ezLQFAK@&LwU;^4BKi^kD{!RSAP#jJ67x8#UyFpHm@emASS*}R3;;dOhi1o1VI$KG9_ zfjx!XInWt=6Eg``Eq19icgLu2luL*^aZq6YT(jpL(2zWB5vNc8|1yZ++vhnzeEFXDgQX&ivq) zduY4wAU|o_<%$);Y&O))OH7@8nggH;r*@HGY>BXYLBW?+)4}Zbb%%E17W>1r=K$h0 zqJONDQyD*Zz<_9m!O+^CTIC$>H*HD`TaNV4SMjiyi04Ks;2cBd0_KOGXoFzDde3pr zF4$ARW-VOddiQJ4Yu9@>4{%W6m!=nVAsoZ8xc*S3@F`zhR1yBgvKO4R*dhebe#x88 zXN85Tt2qu{ED22rY&1{^^<<$Ep=Z7!i+|>s&C|7WGwiRocDrf3FiR7h;G?hBlyS~$ z2ML;Gx@(38w%@;6(90VTh^g^~?wyBfEPqlb zrj@HH=gSyEfh!eN`}X48<+bG8lQYjSi-v-*UY%1%C9W58`1RzAz+XPM$<kN>)K%4I>AN&S&i60wLw z57f7#!V!l?%@TRIqtw2r^)UVKT1g18jCD`v5)11iM9f)|Of18iAVNn#D#KleXv7JGD-Lx>_q9(Rvkbk-k8ek!2K4=c<;Q2MXld|d;flO4gtLKS3m{MSfbic!>HK*fi=;Noz(ue$yg|1C>4wMGELz!9NwmBQObiZ`V^zvH;(BoT^<9~K_Q}as3sQ<9sFMlmYU>P&uQvFert+Ui8z2}T=!eY!q4m+5Tdnr19RlF%G$kYkJ z{rJovTyAq6R%6{U>XqNeMoGL?Bil;r7{OLbPlNwDXrbt1d7VGML)j%INGM=D^= z8#Td6NsAa|1Ke*6X(Dm&6q!G5W{WUOUwp2Swxsf1;eZQ6gfRGcOz%itB1$3)vb_N3 znT|!d%G=14!hfJuoy81HkE7vBOu6&$MZ%YbmmLST&h%P_n;1^bmCYr6^rf7wtMP3D z^yCp*-ivtg3Y#t<`4zxa0{hs`lXnh_t2~*!rIDVMh%TGJRCH??~5TY8R>mg$yl z|3%_6EPrF>$Ufr0@{T;lOSF^0Cd8T0WAYcphFr%>VEe(^oo^5r4DRXNj}fcXfZTQ zRqGoYx?y0JM*@tDiO!rLJvJq5DBNIH-@)7?fG0O#>O|!8IEe(@U~khu$gCETOgMr$ zfAJ~LR}phR+hf{EyhO=e%-c9CS8(EtnSaB1GJW`3%{V%1u8*Fnb!+orPFv3cNSlO>mG=BLaruy_A10_0eul=K)qSSJ%_v~5E1(N(Pw z^pV0I9R@B1G|^u{_o@o*!Lv84K!TOy>dcRYHW=K-{ys-C`&v)c)jKJQ{_uE#On+Xb z8_1e+ci99?8+Lh(=YC^)pvb_TU`TItqCt#E)w5|XjQO2*>Z1n9GUhbP+>L^A7v*>O zQ!vU&(b>tjr==3l|2Ht(%9rXtWGEq{tZ2n7?roeThOgIrF#A%aBc_;w6hgnRA%WTyv*Z*C+dlsT2V0tQ35Nre@`y zDKlU@?WCDbR`@|#t#RitR%UJoOsir%OP#*hMc=Z=1z!x9#{obx9H5%Mw^)nP(#HuP zlkZV@@B}WvALh*(;yYvRv5azhuS+h~n}+0V;L-c@YScsxVP`WfCzNV|Qhz+0BK5-a z(8DhZd0T-J#+?6SFa5*(b8Z3Rs;~t?BdK@tQ@FJ@+!XP456;}}oV5GCK(CEo`4oFi z5k7c4UMJYJz49>e28#Xrb4(X+>%*`Bu55<|vA`a}OX_2+Dv3wBqI|ye zZ$RSE;3rL;cw^-63cAj-h0naCgzt68V8L$B?5_P^( zG;FF|a(;=2N3`FYQduyBXx31?LRA%q9)2AMb;`Yh{3{Q^0o5+!-0Zw4ltxERFOE&P{~AtmLOj_YBM!#2gYF%>{4n9e-Ic9+=syhE&UV z^gZ^^sLbP+SzhQGe=k`=r5l%tPmH_(8Jiv^_ zf4d313B&PGrGjw`nZS8Uz#owYp|1xJYHT=S5RPDc_xlm`*#U)zwi1{E4AT5!yjg`I z!(~fcF7F%zuT?>B0Pw0kv;Am2LJ?MpmyR;BxLmNN4`E?=uz!RuhAUsX|75>?USbCd z=l-o)bv(Xwbm+c#j4TP%Rn@qQxzaPWS5Urk3<=NoBuT5qLQc@hBN%_yJd zTuo}|4rV`fQWn6LMha#5fof<*BVj{-=pP*mUN(|fG&Q^w7KyNF>$-Bvo7xy7l11mm zVxDMysos2*_h^|r`|SmND*7F&qU?%CN}8x0A)* zB1Eaxy%d_;a|z}vEMRx#1yVR}t~AW;VRS0-f})evTu-=MEhZZz1L#zX@}!uzG!`KG zI#s}n7=KYZETG1qW~=IKa=_YSED!06GS3K`P#pI`*^PTxBq{XcAkIe^?q%hu#ST>1 z1?w_05S}(Irnvyy9H-93_@*T{)!e}`+Emj(0ka>r&2(FjL zKTC$8Lm;pEr9~{rxABt$;~ikc5fG4js$EX^jemTfEPNhXIPO3Rrl#)5=!U2tcW>og z;+zS2B#t=^It6^KTLe@$ipfBi^%ShX_=Hw!RoA)O>w7R?=juLDdyz(f(d!-&gDrdS;~$voCO*^;WstIclaCc&QB;vrUnfeX zX@8z`lK(RuBT$bd%f3cwg%|g$35roYCOJAu0xMGo1~l?8HAHs+AJn(HSAmIxpdDcY z9M>%VW2v-!mMs|_32nlZRJV+@W2iG}E0 z+%Fo_hcgN>;hQ(&aw_W|jaK-ceOBrEGJm5mROjQKfGci3gX&8MJ{I5A2`>!OmnLf$ z#qwRt-jwzSqbTsfEtBENoU#H6&d7kNm`@GB)*u8E5NQ6+;KId4pA6+Vn8R3aj5bON zUt7~^AY6f#J_31cLB#KBNaf*8Y#csE(e zmCXGh#YF`b>rfEWEK#mY258yWYJXJ}nkXxBlvKfiDrcV!AX z^B5a|q#yPQtop2ZSEx^hQA8PTv*iZB_{9*v5io4Rr!$>4BBwiV5Zr0UgfR7{kb^`> ztjPKQRV4(zExU0pW|$j3*rdUuSqpL2XQs7l&=VKe}*_t;_i#!W&7Jvo#ep51TD8; zybE7#U3oZ^?e}knCXK9-*FL0(F#DK@Fck43$}a0*GFRvJQ zHoG$7cA`Tqo5ciQT*dsXCC}2HwzAVgKChtKh8dpw@VZ-JUnE}RB{jFm=WAU2GY-qZ zPBVefe*%u3adgZq(m7PvE&21~&WlM`JZV?mBvc)1Df{=%Gxb4v{8=zG}GGMwIh{FLynDSj)yv(`ZO ztnq`AXBqq*LQ2LDKfG>=;EQTE_bC3`gCKu*F{|^Z*csQ6X6c$L$_IHR?dM)Ji4!%K zD1Oi%TX~uhmdUroF6npkkDI<8my+VY!C1(O|N7)jw)ulO5z~M@RM*cry}b_ivS@xi zgG00Ng0dBdx#sxJdpVu8^7bzsO(KubA^kPsGP7DhG)h0iIE_)H{J3`Ma3#{=;itvL zdxiFtk(UFL;t{DkG`pLxywQ3&`s7kdQFGI}Ldn$KVxGyQSu=)4yVDcoCrxvzK@PPk zP-ze6`0m$-_?K_6rw?66^?$pZ)@`FnnADw2Iu&bK!Hhq=tD<1Z--*JJgor*}7zljP z>-XAm?_;jG6#<9VjlG`?q z=%u1llrNu9YwcPiwa7TVh;7OdqBX(u8G^K&sYcn56oZ&(S-%r}`uA%D66;PM>{1qQ zVx5d1ws0>tn^Dudd(Lw017eQ9!>v}Tp2hfNWs#7$#Kdz^6-u7mNDYfs0uxA<)VQAO zQXMp#Rv9{NhW`Oy6fHG2XKqE20DJ*z0aCzMvb@5&|ME^|NXp>Z;n+jh_zGW{_z3 z?>^Ju8u>(Ze}+oTFj*hz8Ahd4q5sjL&njLrXle>ou!C7>X{M%Flvv!Ie&cSv>XWWa zcggHQ3X6`68>4*T1r&6Gz4}IQRp}Z6?cXInz*rZwZnk^*V439$Q2W?rZ|4-FSafY* z|DBfbP;<|cB28Nt>POwYM=g`Aq+&1Dg7>MrHL$r%K8LkH<>Ic)2Vd?MSKR5>lL9{< zcIEyNz9T+o|6?lt6$4=X5n)MNX!YgZjw}a%5mNi z`k2w#r*pBZTzT>RW@Qe8Nz)gkL;DKG`u^UhP15lx`(7iGd%UmL`9>Q(*A#EB+Mc(U zdku*yQ|j}Rs_u0hCv)<85L05@j3v35y{pp>Zmwu&wUtkgnSdd~J2=cXd{m!oNL@7<&XD&q3YNTq8- z&@93}+#Z{}>wqI~**BfB`hA~n-5;9Jt8SG_6Kr~pW@e|acWK%BwVC@ja-)w=0qLY9 zKMQS-r-~TCR=~f!{|e9|j>Z*e26v{Ykrzcs_hN50S~F;>Nd?-W7Zs$Z13AU625}z8 z_80s-#8HPyi{HmSbyg78k=0fn=zC9h!z2VFJ3KK@esr=x*5YqnkTU$zdz^-00M`)U z8*2XTyjm5R2(9Y}Jp-*CD!XdG>mn(BTid7hjKaF37ijQr*R?wng#2+}&xO{ZMh{(s z45D#>!)%P1Q1{h0-=^3@9r<2V=J&Yw4kF`Eg*C@`=Sg)6|NKB(UzxtlZTR6g%Q zoOrdWsCD=GJR3WR3(i zP}^`lc1IsrR_$3$|ZB_*{V*RD34U!LR#`u+D8jKq4a!<(d`JLQ)NU(q7SYv0KJZ zu_`~mQ>5-Mt0RXUi|gy+9^J|p%T70WN=Qq%A9C@@fu)y|Idwz47nE$hU>X#EEw_ML zvm9)6=Kd#_CZ@_ztX5YR*0er~P44o4Qd5d3HwFvY|h=v{}0RDbySrhfgI~G)5{uk%Qio>?t;H ztHv-BZ(9?-alJr#)fDsd5|^IUSq6WlwGl&aSJ@HTOcTSmG5yf{2MMa_zH)QRQ^5BZ zdCxRqkm}F5j|J?a^;rRhOKl5#^`a1?a^9}{YRrMYHq%gq0NwXF^(XvIyU)(vhIgHL zMi)v14&LhT^Q3>buAci6hKvH0LRQrg3+=d!Cl|t|LaZj^m=j|nS!gXi)YtFgr~B>Q zO{W_?tUlN#j|8FEZJS|KdzT6$86bN6eGPeq75bb`RP;-1+$d4B>aW~A{W%PE&v5wF z8ExNkxU9OTvl$&lyl$N@IM}?B{Yf2f9DZTZ@cyyMWr_e0A~dZv_|4jJ$k5TtbjA3= zYn>vbD?FO*oSA0H0(Z~A%nGBtZ>Y&+`OL#>xBtG%?nMKPOk_%eRbUM}5&`D1qittL z+fI^d?R^f@nmdB&ljp6ktiLEY6jMbL)^G8OEr}jkeK3}BD zeNBNa!YrWRkQ`>ZPwZ-FZO#wzuLHm(#r2P$yBtg0()Y{n&F*4ze$|uTIXiPodFs(Y zP?-}Z2R}sy?NVX#Q6ML*8svnpM#Ax!ip8kE;BY(+gmJ<7VR#V614E^1#8$%bc(9uX zCSD*a;py4ia)dg;X?karAZeLE$lA!ydRCn3N9ZBx8x2dniS1A|%qi zWkQsWnxnC2Y5|H~3ACa)FFcgPI z|3MUs`5$q3BIe(Ez%N~5aesD>Bma+%2!#Jj{%A7pS?41Rk-s3r2Y1A{<_q;0c= zeB?iXi6jj6mwFDHtTy>!w-;GP9xxxtR&M$mZJI>>2gRp2tJ^#7S_qoq;&hxzbs>x@o$jiF%QD$aHAcA^!<$!5-^}5$p?R@bVvG-zn zR@}qH*w7k^cO_{(lP=%#&8<);exuX;8Qa@3(P&nzIiZd;C$*XZzk+_~;Zq>4)Muo* zHS26o0oOd=+>9GVg({TR-+qCzcNEWqgIp;pJH8Wx4b;9=! z)x0i?31N+jEa{jtPFJN!=?`i-OuWjp^ful}jd+05yg))(#Pt-*eX^5CRlK8lPrDIk z{Q=cRge=|?I|!gRfmkJbB*`pcQEg^$qYVnN2kdqOU@*4HCYFM{Q@`d$bo6O;9a%{;$PEDAAxPV$z!O)Mr5 zp~T76MH_+91|H8R#HLv0O2<|T1kYd==79{oWxH1blZ1j9pN_WP2%mW1vd&<9+VTCt znRLw-ttiPP7jr-ut*}Ht-D%dtsSX}iN%^Fh5>KuJ9%b_!k1xql31w$=hMC3)39985m27WH{{pljWzBF zSJ21YC3w$ARWQ%f^CMa5yB=T5dYp|-T)c0U$PksPP$Q#Us7~a@w*?*~(jOI6&7~6Q z&km?~n?m8x7yTJze0Bd(mxZ3Ar?M1XS0(aeJ_sQ}o9x7zRbnaB*+(%(9b$SwQT|}8 ziuInugpuoRpf}!u{OGZ0^}}XCMvjNRcNr9I4&$dAK16YT0mRym0I&wuygSqUwmCI7y|H-ghUzWH>RvPm;}DwqH5u zJNJ@>rs~l@M|nqY6rP>s*5c#DLR4Qrd82T!>m9nc9(h{DV?NuodMg7*AR=05&)T)U z^z|vY<`d0I?aDYNOB|`tw2E4@c;1}AHufFVZy;qf(C6r*VCpiGz;ePAfEA zGyA?x{L7+iodV3u1jZEJh4*O} zFDO?`q{(e2rE9_nQCf(#TBUDr>%~tiOAea0&Lc{{e@m{YmD-2R9B5Qgz`Vd(91k=A z=?Hf^1Ygw=FXXPF?`T_g9zLjwlNLuJk?_jiBdV|KJ-a_0{ZP*~nCFtr1rC{3owSaW z@?2~QBK6e{xhKDKo4crjvf=r7dylG=Em`i|2P};HX}7LxK%bdX65)?%Y(fC>9^W}w zDwr2(=kF^tS)-Z5tU$eaO17c4Z#-``-Z`#c_*e;wnx;^NmY$t`I;b&=|5mAVe^jlp2$EMpBT#X#+c z8zK&iGF+_B_2S#T!YWzyuGo%y8M+Z@R|_W>h6uA}yv!9Zk3HCrG%4n$Y9 zdO+u(HcD(8ND71jB0E)q?H1$yK$|*wz_-)YDouy#drd`F_9ySRqxR1h-YXo1t~J-0 zVDs2GucB;NGsg^W93&D74XRF9(P&yH4=z|)nk1S8uxa)MX0G6^z2`}A!+INNqYiB4 zugezoP}1OuSwLH? z;zzY|?6NcGN*S@}>g0#5Ef!}FJiHz=DBw<+LI!FvT8E%5Bte?r%4jaxvOTq2XvM6# zO^Jrx4J`%?&FnBvprMVKaOqi*xs_afR1=iRCY1_3Sta&aM3kiwLSvwxzWA+`@%l1L z*WMNV*|TFjvOlM*ky^jf`IIugMoPxJ0!j=ycC3&5!{zFiirT?wdSQnel7772U%36vbwqva!j30_;IZfF8mFx~ zCbU3M*-6dwcT8I33<3j5fP=(SU>GiD|w=+=e)woCx>+?q2gfm@xV@f}~jMWio4O*bWr z)J;G32O!JqgnvQ2dO5EXnG5FqxTakd&1@uFcB^aii|!{)HJsFzn$ci!G=K7%gBD3D z4TKwAVyPODUPp04{!OheGccO}VFopn@~%OmtXrvN(d+WWO+&MT&jL)(O`dPJeKeRt z?Kcg!L}WgCqOg2C;80z5ZH!1-E!jrBtU+ynE$8J*)$R29Xd_z-vN%&F6MI3Pq#v*t)A+CxV$tlxD97hbr3BFr`VIiX}2-AIQ~}&$L8!Ql}c(6kcO| z>=Uq5yZY)WgnqK1sC1V=yOM7Mf5Uvi*6oahk%RAtg9>hPCr_()28dQp6o2MN#iQvR zff3waP8(!-79fn?kcI1Tg*=+Tm7$-Dnh%%>5jiK44PMWdc-x6&zs+rT-&bv&7L^#O z&t|o-9ktL6Rh!oNh;C_YA>Eb6m5De?uNOON-R;lamuT@ z{m8k@=H_=-M?TM-0(Ne+#APmLub`H)Tl~!1oU#KN^XcYg8+jJfXVJz7j?L3uNPU`n z3&}HU1w&=d*m7JM{>}Pehg0Q~2$V-p#_=mzBA=WSJMW$s_+F+yWe}Z{qk$=11oxcZ zbf!R2aVeoKS;Edl3SVRAXe>=Sh0KChegKh=oQ4fnYp~`}gTt=aVSULY5Cy^?^Jdu# z6^<^_`e38!M*nL_z%+Q_v*ug9r-UkpxnJMB>CMsRWw*!} z`_oh%!DX|hSCk~YN^@JimUEtaKWxY*?uEKpp}L)>e`^7Wx-$1SEg_jD&pwW!93z{( zurGu7Mptxw$d?Fx$%C~>kV2?oY^`RM`)aIXj9*#0ksEkS%+h)ARdpZ<1|XR=#9aNF zY2fi8Z0=1L2@;ZBC@wx3n|yuguq^6va=pH{Wr$O^TV~)*Q`aJ{%;*lq-8MS8*rZ2c zu#vEhd0$XU%D9huM5_UaVSQZ#YYL_tsbux;Q?DpX=V1};F$t~6I7Yb(=2oNwKINNL z)jcii-G&3>58k{m{$iB!2!_<fTT zWZ8ehk&Yy^`9>(hwox~1_&_pyL)OEc*EsYWRyu%ay0_G-}^@zUam!$vH zy|=!_)#@fWmU}F)1o$4avoy=9!8*whL9j-nLn%}nfet=R>NVuYJ!R{S^xdJW#U;_z<_@6H?-?U<8(< zwmh1IaUMX&3F34lwSStvE%a6NXqPSR>NTo$)gFkhaO9}-ZU)ht3<2)|eqMi$!nHc% zAE|E9Q;xgiI%T_9{e2o8T21@S7t{dHiK!eiD(`}CH}@c%AYl8=pc<3<-oTSH2ZxI6 zaSty8>Rag=H&8MAv|fsgGC9t6KMKtCZ^$#&AAloN=g1n>bbb68NQ;fUpo4Y)6weP= zjwjS>Zv~!$+nC%xV!4<)@-+xDf){Xd-FLSamF$XteaWuWBc7+fI}oKo9V{t&640IP zrfj9o>`v(;al52j=$$*c>Am8cN~o8TiUXR`o$&tKdmX43w>AO#0K&%^nJ3>Sc)c;% zxILw8hNMw)S&es`ho+6~>*?jPR^>GK8E8Lsnlvgn^5z&yX0R^PTkcvES$-~S*7GK< zhfo)hGSN=?IigH`0nuAZWW0UU-snKr4D+tT);vbJi0{)lM>6Kv-Cz)qeaWR&d&~?O zWi;c?T83wn)j+e&m_1aXTlMBnm&_r_L^W{Ifu)ffNyOsr z6d6>#D@B|Y%ogyjnqf~TeGN(0xWwUV^h(J<)t3KG$uyHhWVC&Iqvm@Se{su##H}kj zmgB7HhkDJWkJUoPEpypMsV1zD_^;cDad=7hv0R`TnqKNdP0Ck$c7%$NqXBJeai~*$ z-8IxZ!UWen^c-WqG_ngCJ;I&CE~mWR@yz+4fy#OR9`98EYICziasg(b+lxaB z&ohFofhvAXOB{e9;T9bkfix8M!jvx5ln%evlnxN-Ln;Z9f`Y&x1I$7cfFDDL27oXr zXn-IFf(FQ8KA-`H7)LZf6vG@1P`-x%L1Zp!K@vJp5Cr}^g@7PZzf%|pg7}@nK@jQR zDHsHiyhzCxs1X8?v;{0m-T1eMGik#0tRC?FaQ`z>O%KL{BNPO6zs1-GGOre z-Tz&OK!DE=^>0iX0z1F?zcCp}_}>C#{v#gsuf^~Sm;T+1fPw!eC=EHc<@)gdT&%L;`1TF)EULGg~la#uo4lD(O!Y`A7%fO{C z&4Zj5qW<#d{HT|&07ihJ(Es=Bk86RY5Eqa0BK~XLxnh}11R-FkBA)qDPV&U~Mbx8gMDgkCqhx1nGzZ6 zFUal44QUjrxORm@i_d_kHJ0qA;Z@PNx3xPu2;WG`=dmZhy^@DPQ~x++{&UV?A)&PpIcd2)E0~tnWJ$9-L~5A>Wl`8Lp}C>x{|lt zH+E!R25}IVmd#{39U}DN*?y4xSHodXYcO6N$pxYf#htWWev^cY>x+=1ekru?cH1U` zk5@Z%dKvCxrt?YsNzIKs>Rl~Ucg8q;(9KHseVW%w`M;?g^DJA+VeU{mw?8-6H!^}I z?k_D+w}Qz2Pw%jByBKUTTorQocJh28La8fdNJfa57bl{R+V}_@{PG0TSEoPGp@^&Y zDcjn(KCS_)`N9;t!(T*lJ>JA$AxZHIAJA+%+dfGe;8z2>jwXj^Np!*T1y@&$%pPB@ z`No*C-#&kzdc(URr1WG#fD5B)i`wAyy%kAM@65I@9ii4r{&j0oQNU?`X;!?~^e3u@ zg`XKw*wL<$A+~yIm7wv1A@&756)RHijNN(0T`yGTzs|HcSMGk>w#@2Nm-O3!JRPcd zGT+7bqwdRAH`Y_eT5$ONnd7xE-#|W7`zE*7$vli$E>_lwjRdDWhrOz_Ht-EAvfMZL@JwwbU(8_8; zGxX5N+5i#8dl-%MrE3QTC&a7xm#c}Qgl>bB?`aB?BQu+!K}0%BV3{@>_F;0D%8?aE zg0g%Qf72$1y{tN8AbGcZ>qd>Q5B9oRkPeJn&RXc~Ud^P)t{3*)f+pIBRD^G`Q*$0p zOB2P|zT7_=b$+#Zcyf5Lr#-c9`wjK;aOAR&sOkj@9c2s$?1#vye=UeyNF;`Wk@50s zl1{pJ@wuh<)Z*hTo|dhUPD!1{Jz{B0$^pfjs!5Lte~9b`E=>z}!qogr~^x}Q!n z2KY|i#yLpYnE}AAnP`0QB4eRL#4%%a{We_I{ zFGT3S^;xI6#5-a`P2*b-FQSM^Q(8tHpS8GnCA1yyP?+VlC24deS*>6JE$MHU;w=&- zO}u!Le@JDj5a3Bs=RbfBf`I@NFjFd8UifC6*!R%$_os%VJy*EqC1zoZS8%DF(FKRw`mBv5&%(Z&4AjIOq(UKkuI3rO3R~S_+)Tts@ zp@K|g`ivJ&1T1g#c)Z=K0sDF`EltU)fAwMQrl8H2wF84_Tw1P=*k3XyC$s4*tck_U zrvv47UX^ATn2KXU1nC=}(DMQ!(>r-8zI~~jE2vS9Q?_?$O3+u;6XWaX*r6bkTXJ|> z3!++1&`viuy#kX30Yv&0^6aDvxr}cm?A}kNTt{E;77I>U%uAJ=r@h<_G5+ElAP4iilW9o?^huEl_W1I)sKQR!ST z9*6yv5-!e@Svc5Tgr#^}81Lti{`Ix_{++iOMRtbKg>8agE$3!tA_d0ynLXdBJI1{Muvj?SqFQDh_~{$0N?i({nIr z*BjkxPx6YP8g4|7*tcd4rKhzlt0(l_S{;#C{ATmU;>wPv$B(()M8STmEdG2b!srZ& zE8OUa*GHx$mbhf2&5pjP(~%_JR5|Gjk{s-M2rjocZfLLxO(_t?nn4?SJjNw{{j8?& z{on@%FnK4_5i$rFSiwY9Q$e1b%SvkU>2ucf)Pj*Th|+FfWY zxIpdZiRGWv#WcYTb0T)vl9z^{2A6vE@*YxdH&7ALEANo=1!wa4jSU{o_Ifpish^+a zK0`^rT#-wz_z~=3xYw8}MR)Qv)Q1pBm^gMXxb<7J>XSCrM_qKm8PZF_^A2`G^_j8v zeEO*05z~o8g=+@=_K`~j&&b{>Oy2Owin*9z+Uv2cxhKoj3oBk$Y<~O#aTdU5zVZ!i zrz1WX4kz^;v5eL13^_l~_UL%S#H*m6u9V!GTB~Q=L9e!anJNI$cv8H*QX^1y4>`i# z*RWA1>PW86^69h+voO~d*3KTPe6q*A`kcT>ao+n%w4bx(KNn@D&Sdf;+<9|fNZ`cO zBZDjWV>;;@gR@4s^}WqUDhqpFrh1f}7i~7*6LqKwbG_d{njTf$s^UhhO%HG^rxF$? z+ctS81)8C$+||9V*^!@86dF&aS-Fm`*p^DmTWL6tTbF#5YI8`@3wsmAa{a`Tc724u zO=*6P7?H8uLWvovp^KgmtLq*$Fg{<+V-uQ_5LRz<8|jc&;B@=4)#c6@aqlFtO-XtQ zjL)UusH(BI&vn+Xs+uo8uMa0Ld$)L+sW@8Vz++>54f{99gb9A`ro4adB}K-TewZ2s z(#lr*ulDDEitv9dWj2Z%YMYd1-HkH?uHjA?yd?T8e0pYHx~x=B^z*r86_Yo|l%C|i zumQ1#a`k#=X4~p#D-HP534cOB2Dha4ruXJIn;o-yTz%_R2JSMnloVSNcqNMNY1x*W zoOw2LfmwdIn;;U3i+gK46C-d%w;Lx{f!e(!T9u* zT!L=P&#%7BM(^EuB$2!BI`=o(FmGO3DDygIFnGUNw_7yt!EAr&ypGjn7L88Z{?da1 ziO4~Q=>5g;NIl%XS|wdVlTh%~6h8UWa3+!T?$c^xnI;#ujXFKQv@u+_kScGzNFlX9 zFzjHjdHx`Bjz)>@Qx`z`UTGi0m+Q8agz@aXI~(xR@Q%Rz(pW1hy7pFkOmRCwanwCK zv4N|BD(gJ<=5nNQx%mJwhYa8kOo0r^U)eQ;eV{5tj<_RG5kRyS z{Mm7YyYQ}`Ci78tZ3B7!mp_*r$loG{II~dWyya%|DvJ8^F2}eZ0T_HU`tM8(`kk`3 zvgwU`K7VbdR%ORE8#cTUnH(nn>V5p{c*%>|nWv({U}A$V zn{+oWs4%k#@noM_iTjbeg(*##-*anYm1yu9j`xmGaxiN zEs8Gv)Va{!4`#ZRfiTk-sezonB1?s5SEMqmLFw~QHdiR+tE8!`N|35@{2c1o&!|hV zP?}WVK!gLW!8X7Q4KVlguf3d0q?)I(#%V8Z>CRqfnSsG@Q^NwH$Jz7~;;;Ev)k{7X zfAx+gZ|+^tf7~Q9AuP8}zVezU`(x`b-eKoI;zATX64nh*Xj*NASDtX`+I`xhcr(aG z*WDye*Hyd#IFUG;<3%4o(1WcW4~Th{VH`(*SR&zWi0>>j1_8`6-{!JLiB>wax*oC2 zVr3Pao<>x!m|>X$EI5>Ro7+{$y_pf@#X;ivP)EK^xFaX>PQ5Y_UP&RM%qnGO=)v)y zt~!tRmPqm8b-!l6i&0U$V_;xwd1d*8Mu-Zq^=KMK82-X3^&SXip;K9=l-|})cw(oB zPw!OZ_iHKbJ~!!DAWF_AVlI6+^Q<_`8fXk23{Q1eP`H+|t-N<-P;+A4F1m}$2VdoA z2cC7GqE$7kHVe(42jEL;_DfUL$LAZ?W9IAQ7=uqLt1>zbUDWb=AUFB3a(yH&wpdiv zn&T=jhgJVsO*ZAvSL=s<@S6s3DmXVwASTxeTh7j`wNwYZfA+8?hL|f<>MComPx^;N zeXV%n;3Qw?7YZgbDS(6aT}%Tc`~o;AnnC`#@#B^APQwd&%}YD#&8e8msZ(gS<91lhsjPVARU zoMo9y^-I(^j%-zoK%Y0rXir(i8O0fbQjl|89R@iX{@(~HUuiB1c|cn;Z#Ayqwi)z@ zU?((6BM#{(ct-x>XM5hU`6p55m#b%;5wes%#l>sl;<$8T35l;FT?+E@O~SKb8K*IT zmbdmos2kppPO*aCfm}i3s{nB4>4lFyNnxDOQP9pUuu(Rw9Tfeid(<_^Jkn9uVDo}; zzB(JznU%S%m1C#g%WR13*?rgF(8lS?Pdb2D->+?U7HqzVchl$7`x!K4m zEoJ`{LmessKYZamoiX0)Ip#88DsSO7zHbcyM7q-w+25@)vTB5~es*Z9HgW$DEKyt& zD?7t_8tgGo6F5V0TH`3%r$?w=txo6$pJc!yQFj->_ZPtQlm###GJtd^3LwHL2Z19< zsZjt)dIU)?8X!&Li3V_yh|vHkdJw5G3UG?_Pc*=clphUHv6h3t5D+ND2qLQsg}~%~ zyD$h0{@X=EVA$U-0s=$*c2N)*=9deS)x|*MpubT#1cv*jpl$Aj6)a#iT)cy|DB7#9!&UW?k^v8FbNb&x=jKg zi3qtv0WcKyfaQND!B7|k^e+qxMgC0;^Z(?^LI2(G&!I3FnIY`F9532=7 zprMBd!k`EDc8K5shWt(D^8ZZ-JD3=8xF8CJ#U3JaaKUi&zjyZs88{O4_mN^za5>V^ S6o3W@je&wBByjrbpnm}g0-*^2 diff --git a/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_err.pdf b/docs/desc-0000-qp-photo-z_approximation/figures/schmidt_nz_err.pdf index 301013a23a76901065d5c2a419d7bb167dd12d8c..4bc01f7ba7cdf61207801d0af5c1f6f0ec7fb15e 100644 GIT binary patch delta 5151 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 delta 37398 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 AK>z>% delta 4989 zcmZWncRbbq|K-|O86op>uPx#(cTm?(vPU8r*<_VHFEX;Z#x+w`StYx&l9H?v*A^1R zHA=2ZuAd&C9=}IlJ^y*1$9cV<=Xsu^r4jg|30T)pi#PTbLbG+O{NUMkRS6Qkz%7Am z{?w!z6?$H9UU*7)-nR&eRW?{}WSV){nTBXU2&|Js0zX_ic7;_86)$Eit`)(pINEXT ze)zj56i@_pmO4s}#^XIJ_t{ju^I79nyafX~GRs!s)Ha!eZ9Htu*mcsFx@&cJZ;?HS=0 zccwygK-3gS!tO{2AvG(^&n|U+-+ynH627-6%N~3;DbQlKhUwM&j_=Dqhg&XNfCPqYheR@)5;e6 z(3x-23A(U(W3tH?6PcTSB^fiz60boFn@G>jEM*owqvs?&`qLSbgI0?R5>9OUKHFTb z)ZS&MJ>(Pbd0D1aVS#5HGNzras^4wVPll~;ENS*@qpi})`Z>@eZ9azbJ&gyP<`0A< zYVgNeSKcmx&{o}>!Dh#qhcn2Q&#BtkTOT7|lq$Hk-0~Fkf8oV?X_=;-_sKCFQ#ntj zJh^$hc2vuJbEHZ~t8UHpW9@59dCZvA$0zRpyIk+OF*8-tbwMk1 zZ`ITDf@=8EL0643?c{o|0Vg4G-K%-Nb4TgKH!@P%m* zEp;|ptXv-JDgjg-)euB}M`*tzKgnVznptP&Ws+Xa%d8uaTuD^mURq_?RMy`4&h^N- zxh^-FL`FOgc_tSbRGjk*;onESC2KyAI|fiK|4F#g-j&RE60Y#W#r*|alGUe5KT|?A zuO`Q$(8VVTePgUXT$c82)6o_%yoMVrq}I=tKvWprqkD6Trdr$>g2;|NHm~Eas`Si( zd0ORGJ0IuP7)5*AG?YSZ+hO@}T1vtZ<2g)iofX~RZfn1PetdUjP-|-h(opZ*%be;G z`0$wpm&%nn+c_J2TL&KFjd!yN@8sck_G9&_mS@mm%z$0cx3&(nU@->aA8Gj64?j*3 z{wyn&A$>wu3DYoerfrig_G14(R{X#(RuI2Kvzyyyk_p*X3Zj1X;ifB3X`AJGP z&Ih*!80m%5Yixnm>4t=<5+ld1d*TWEU+mvG*blp2g#@sOvgry{_FID5qQ{Jmn}o%6 zn0`wQ(IJ^yKy+Rgnf83UfG6aI<%=g6mxznZud6eC?op1Ebv1T`=&0dzPV|3`xsXbb z!lxTTp7QIxylo4FXBu+R-v={z%q`iEd`z9;p$Nrwf-yX>uSQTmi1d7nau3bT@3||@ z*GtD|XWIFTvLLzyj$E$ji5ucQHpORO8#_0x_t8G$5G>?%NZ}y!;VZeV&Su0qI>y?| zu@3QykN}%wI{|N~ttWyWZfBV zr^G)AQNNh6z#KqN^F8SelG}g*8{B0~(;m^k&z$AqDr%yMflr)B-z(RiLs&=J$*e#! zsJFn*GAF6AZ?~?U$IB4(O-4BF)t8nW!x$|24T_+bHyZHCaLKg{k44EHNY6sbaHTQ4 zs9y9&l5W6-Cc~5ohFe29KwkHOEh+Y$Pt5|8?w`BfUUE;Kn0))VuJ*;7;zm2!vC9MZ z?cfY^Bcj+?eg;gPd8wL9)*0${_1iEQuH$HrF zXa$eElC7!V{6Frv3tc0Rz9I|;ZlW?sI@DL!dp4GBxEMGYdFPbBe2Xr zsKzTSI5?H`YYuNw(U^rD^x*l3eCirEaj9iJsq-Feszt0c zu;~GoXTk}pVuVEPk{6O}Z1YVIn}tEsVj`2qbamd+t+o-UJ<$4yQ%*9dt}weuw;J+r z@^Q}cYY!o%488C~xk2Z9JBuGAZwq-eyG5K^1T|{y`4!-mPsV@yjQIo%b;ACN^-Hzm zrCApiIpa4Izr>LZqzt<}c5qO2!_fN#LC2@{=WFOeV{y-^b=G4as3Sh4FRH?WUo4(` zE(ao~1~-jQ10O}^8-Tig0t1~;j^`o`E6%HmF(s!csX+vu684;e<;l~Vy@-YNo8Li2 ztve(Evqt<>>C@TC(gt+u=bh8vlQJkn^B&1eBMxcGy;OMYR74Vu6=-m=QUrF6K=g-cQr>B<~N+^m)dM zG=7qZ6$_d0T-NgZv;6L9>6aE?{o0;<)edjCsKQJ7YR&nt)Gl4;3#t%ngf22JYQTzkU}Av~E4B7h<|gUh0?iFUnq>sw zf)okw)*OvVin}WHwJp7Xpi~>2??xKT4|rG;@7T*elltsOCJm?2zBnp+6HM_GyS5au zax$g*iFMNlA#t6&TXNf!sk^rt5gXI*4_bxJASKLLGZ2!vz3-IesnpBUDF})zP8i3n zt9e~g?Gc`+Ti9pVpc(Hsl@?#7R5(hdP!{kXW()TEr+;j@T^Y=f@wZ6^1c{2eUa4`a z!1bAMCpIr&SdXs+u@hTFLY{h%7J6kx{WsDw^+;N3twWMB_theu913Vp!7cA5Tpk@V zEX_hzqZ;}>CQaj7)U<3+U1FZy!UY)gc2@(yq~>~wP1yj85W~I8hUSbzZhAgd0-AVf z$?>67->4>+Der8hG!qB)XRK*b3D1s$+81(HX+Q#}wx8#TtU7BLHXlo5Q415D%hHVM z8{u$C7h6aca^qF>xA(^=Xj|Mng#@aK-yA~Us5R~9>=`mLvLlzAB=CrFj~be^Ta3%O zy}EyUkxBP|k@$-3!$)>8rFuP7Ejx-G=yZbqKmMU6} zCGO&y29$2f`a^egbB@XI(z~+e%iIr>nApzTg|wD(!jn8bp{ncielme-D*8UUt&^!g zgd|=Yl5AzgZIKhezO;?HF@ng9y=;uy30iuw-fSphU-K$K;vGFru|)546U76%yu}FjjMyrtS;84M^_$bjgheP zH_r(-mKajph>pkxe3=asd= zkyG`xqMl4Hc5UaYhigSz9!qGENXKbuD_WJD^u^0mru_O6r@crg)FBV>;Wtalte{NC z@NagS9apQlbfu$FE{0rS#n~rl8!?s zmO|5bCy@g+`^ZFhi~X}g%-EEJEZkw~awzje9$~GzP(3`6zU)F{IZhqSF|YLTGG0|h zjia;E?!ePTkWm}5_}EMkFXP8zmgTSI>GMEZ$o*db8@ejUl!@RS0dwbGVEI(Kk42KX z^W3=fy4@Ps0h%Y~()<;(+Mr4}Y$9)~j#UJf9=r+e#@&+_$)M$B)j^N2t;kT4P zW*bVj!WB;9;PYtxq5NOVkytX8o>7?1JyrjNdFxs#TQp#Rz5L!qJjLCo<{6VVKWhrZ zE@Ji5Kn4j~w~O->JnnjCR~sH{HSKSh<$HyHP@7&q;dUBw$~l1cj-cSRw$6f^%*Vv% zzmR}?=2l%HfGV~qYUDFW{)KK^p>jJsZnkjJl`;BxX{_^VSxR9H9$bd=qaW4s>qkihW<1_#D_a z-Kfxrd|YZ8;2S+V!{?PhQ5hJS6i>AWO|S1s{CMMTG6F5Th?`5?jU1rKy50LU&d|7h z*!~_BBjVM<9V%HY*=${WuAG}pzxugq*V3bUgwE2{>b3P7LoR&V!#S~2AQpKQ>m8f( z9c{wOx)EVJHaZbLJ2uR8Z(>eN56R?o4}9Z_eY6T1X3$Bcm~S>fPfmfpUc`G=b5z_Z zmQ235$@zj+Rgo}#mCgC$lkhJV>q&WGCDQk2^^e`z!`O7-ssgkP(hMRk_@CbmXsIBm zF*a>t4DQeR;yq5`Y3G=N+h@7ip9QZN4;Py}z4X;`vk%KwIMz?Bo?W4vaJf`9eVmhf zMs9!nrnd>}ap|iu6OK3_5Z4qLZ$-jS5y4 zG;R@6S(*;KJWbC^Z2RsBzrz_uaXdf$laLxj$9cdTh!g3Z!N+#gXLG&EsW&RMZenux zEf8%pBL)Q}y~GjaM)}C5=%?ZhL{$Tp9R*x(MN@9h1&0u#LcHPw(gMgx|=C-Sjk7I zb(2t1s3x`?Z&=+fRXZ>Hu|$>cK|=N^O%ocU)!7O&=4tIh;fsE@SGYT3Ub87+LTXxb zm*W)GVJdbb%%7b$t>uU72%@Kd@@zawmLe-Jh04i^KruO=Gh5idjx3*7yKM=wWxU$c zMISnDz-EkuFy3&&Zu`VFwbmC}S3axy__n^Teg>&hi5F?gresf3uxUZdn48j^%51>;b7RGn))a(4D*LYgJIa;5J+4|0r0UR z!La`<;BZ8xEWmJ!d@6vBmiUwacu8c*2E1%RrUPEk5~DH!-NYXmfbJGp+VA(_Y=8|j z6ahmhBH>7)Vh*6hMGZsJM-nj5e?%}S#lyb;_dhHGs(6&cz)}C0!az~~$!efsLq7RSZ$oQdXs3P*{2%!iJ{P0$P$N%31 z0*Qtm(St#e2*o1?4>`p@W^DgX#vqOgqEJ}O5i^IEiuh-rhaLZWj9Ap+MK9+8w1H?e M94H~7Wq1zwe|Hm(p8x;= diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 2f436e93..8543a9dd 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -29,7 +29,7 @@ \begin{abstract} -Upcoming and ongoing galaxy surveys will produce redshift probability +Upcoming and ongoing galaxy surveys will and do produce redshift probability distribution functions (PDFs) in addition to traditional photometric redshift (photo-$z$) point estimates. However, the storage of \pz s may present a challenge with increasingly large @@ -251,7 +251,8 @@ \subsubsection{Random Samples} Such approaches typically produce large numbers of samples, far more than can realistically be stored by any survey, so a subsample is commonly stored. Samples are easy to use in standard science applications developed for redshift -point estimates, so they have an established presence in the literature. +point estimates, so they have an established presence in the literature +\citep{dark_energy_survey_collaboration_redshift_2016}. The parameters of the samples format are the $N_{f}$ samples $\vec{c}=(z_{1}, z_{2}, \dots, z_{N_{f}-1}, z_{N_{f}})$, where $C=N_{f}$ is an implicit @@ -424,7 +425,9 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} \hat{n}(z) &\equiv \frac{1}{N_{g}}\ \sum_{k=1}^{N_{g}}\ \hat{p}_{k}(z), \end{align} a procedure known as stacking. -We refer to $\hat{n}(z)$ as the stacked estimator of the redshift distribution. +We refer to $\hat{n}(z)$ as the stacked estimator of the redshift distribution +and denote the stacked estimator derived from the original input \pz s as +$\hat{n}'(z)'$. While we do not recommend this approach to estimating the redshift distribution (see Malz and Hogg, et al.\ (in preparation) for an alternative method), we use it here on the assumption that any metric calculated for a more principled @@ -611,7 +614,7 @@ \subsection{Individual \pz s} Figure~\ref{fig:individual} for both datasets and all parametrizations, we compare the moments of the distributions of metric values for the distribution of the KLDs of individual \pz s under each parametrization, summarized in -Figure~\ref{fig:moments}. +Figure~\ref{fig:kld_moments}. While it is obvious that one would like the mean (first moment) of the KLD distribution to be low, interpretation of higher-order moments is less clear. In a science application that is robust to \pz\ outliers, a parametrization @@ -626,12 +629,12 @@ \subsection{Individual \pz s} \includegraphics[width=\columnwidth]{graham_pz_kld.pdf} \includegraphics[width=\columnwidth]{schmidt_pz_kld.pdf} \caption{ - The mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) of the -log-KLD distributions for each dataset as a function of $N_{f}$ for the -quantile (dashed purple line), samples (dash-dotted green line), and histogram -(dotted orange line) formats with $1-\sigma$ Gaussian error bars based on ten -instantiations, where the moments and their error regions are offset around -$N_{f}$ to improve readability. + The means of the mean ($\bigstar$), variance ($+$), and kurtosis ($\times$) +of the log-KLD distributions for each dataset as a function of the number +$N_{f}$ of stored parameters for the quantile (dashed purple line), samples +(dash-dotted green line), and histogram (dotted orange line) formats with +$1\sigma$ Gaussian error bars based on 10 instantiations of 100 galaxies, which +are offset about $N_{f}$ to improve readability. Left panel: The distribution of individual \pz\ KLD values of the \mgdata mock catalog is most well-behaved when they are stored as samples, except at large $N_{f}$. @@ -639,18 +642,18 @@ \subsection{Individual \pz s} in the moments of the log-KLD distributions at a much lower $N_{f}$, ultimately showing the histogram format is most well-behaved at all but the smallest $N_{f}$. - \label{fig:moments}} + \label{fig:kld_moments}} \end{center} \end{figure*} -Figure~\ref{fig:moments} is rich in information. +Figure~\ref{fig:kld_moments} is rich in information. For both datasets, the behavior of the first three log-moments of the log-KLD distribution is highly correlated for a given format and number of parameters. The \mgdata dataset has higher log-KLD log-moments than the \ssdata dataset at -all $N_{f}$, meaning information loss is enhanced for more strongly featured -data; this is not a surprising observation because the narrow, unimodal \pz s -of the \mgdata dataset have long tails of very low probability that are -emphasized by the KLD. +all $N_{f}$ and across all formats, meaning information loss is enhanced for +more strongly featured data; this observation is not surprising because the +narrow, unimodal \pz s of the \mgdata dataset have long tails of very low +probability that are emphasized by the KLD. The \ssdata dataset shows almost no change in the log-KLD log-moments between $N_{f}=3$ and $N_{f}=10$ parameters, but both datasets otherwise exhibit a steady decrease in all moments for the quantile and samples formats as $N_{f}$ @@ -670,20 +673,24 @@ \subsection{Individual \pz s} Because the distribution of moment percent errors is highly non-Gaussian due to a small number ($<1\%$) of truly extreme outliers for both datasets, across all $N_{f}$ and all formats, we substitute the interquartile range for traditional -$1-\sigma$ Gaussian error bars. +$1\sigma$ Gaussian error bars. \begin{figure*} \begin{center} \includegraphics[width=\columnwidth]{graham_pz_err.pdf} \includegraphics[width=\columnwidth]{schmidt_pz_err.pdf} \caption{ - The $\log_{10}$-percent error on the mean ($\bigstar$), variance ($+$), and -kurtosis ($\times$) of the \pz s for each dataset as a function of $N_{f}$ for -the quantile (dashed purple line), samples (dash-dotted green line), and -histogram (dotted orange line) formats with interquartile range error bars -based on ten instantiations, where the $\log_{10}$-percent errors and their -interquartile ranges are offset around $N_{f}$ to improve readability. - Left panel: The \mgdata dataset. - Right panel: The \ssdata dataset. + The median $\log_{10}$-percent errors on the mean ($\bigstar$), variance +($+$), and kurtosis ($\times$) of the \pz s for each dataset as a function of +the number $N_{f}$ of stored parameters per \pz\ for the quantile (dashed +purple line), samples (dash-dotted green line), and histogram (dotted orange +line) formats with interquartile range error bars based on 10 instantiations of +100 galaxies, where the $\log_{10}$-percent errors and their interquartile +ranges are offset around $N_{f}$ to improve readability. + Left panel: The \mgdata \pz\ ensemble's moment percent errors are minimized +by the quantile format at all $N_{f}$. + Right panel: The \ssdata \pz\ ensemble's moment percent errors are high for +all formats at low $N_{f}$ but distinct at high $N_{f}$, with the quantile +format ultimately outperforming the samples and histogram formats. \label{fig:pz_moment_errs}} \end{center} \end{figure*} @@ -772,15 +779,20 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \includegraphics[width=\columnwidth]{figures/schmidt_nz_kld.pdf} \caption{KLD between $\hat{n}(z)$ derived from approximate pz\ representations and $\hat{n}(z)$ derived from the original, high-resolution -\pz s as a function of number of stored parameters, for the three different -approximation schemes: quantiles (purple dashed line), samples (green -dash-dotted line), and histogram (orange dotted line). - Left panel: The mock catalog of \mgdata data of Section~\ref{sec:graham}. - Right panel: The mock catalog of \ssdata data of Section~\ref{sec:schmidt}. +\pz s as a function of number $N_{f}$ of stored parameters, for the quantiles +(purple dashed line), samples (green dash-dotted line), and histogram (orange +dotted line) formats, with shaded regions indicating the $1\sigma$ Gaussian +errors derived from 10 subsamples of 100 galaxies and lines indicating the mean +of the distribution. + Left panel: The \mgdata \pz\ catalog's KLD of $\hat{n}(z)$ is minimized by +the quantile format at all $N_{f}$ but with a larger scatter than other formats. + Right panel: The \ssdata \pz\ catalog's KLD of $\hat{n}(z)$ is minimized by +the quantile format at all $N_{f}$, though the samples format also has a +comparably low KLD with lower scatter. \label{fig:kld}} \end{center} \end{figure*} -Based on these plots, the two datasets clearly share some features: +Figure~\ref{fig:kld} shows that the two datasets clearly share some features: \begin{enumerate} \item As expected, the KLD drops as the number of stored parameters increases, for all formats. @@ -793,157 +805,201 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \end{enumerate} However, there are also ways in which the behavior of the KLD on $\hat{n}$ differs due to the data quality's significant impact on the behavior of this -metric. +metric: +\begin{enumerate} +\item The \ssdata dataset enables the achievement of lower KLD values than the +\mgdata dataset for all formats at all values of $N_{f}$ considered, likely a +consequence of the strong features present in $\hat{n}(z)$ for the \mgdata +dataset in our subsamples of 100 galaxies. +\item The rate at which the KLD of $\hat{n}(z)$ improves with increasing $N_{f} +$ is overall slower for the \mgdata dataset than for the \ssdata dataset; in +other words, saving more parameters has a greater marginal benefit for a +\ssdata dataset than for a \mgdata dataset. +\item The $\hat{n}(z)$ KLD for the samples format is not substantially higher +than for the quantile format for the \ssdata dataset but is for the \mgdata +dataset, which may reflect the subjectivity of the reconstruction scheme used +for those two formats. +\end{enumerate} -We address the relative, marginal, and absolute performance and consistency -thereof of the KLD on $\hat{n}$ for each parametrization as a function of -format and $N_{f}$ for each dataset. +We also address the relative, marginal, and absolute performance and +consistency thereof of the KLD on $\hat{n}$ for each parametrization as a +function of format and $N_{f}$ for each dataset. To guide this process, we interpret Figure~\ref{fig:kld} in the context of constraints on the acceptable degree of information loss imposed by the science requirements and constraints on storage allocation imposed by the survey. A constraint on the acceptable loss of information due to compression and -reconstruction of \pz s corresponds to a horizontal line at -$\mathrm{KLD}_{lim}$ in Figure~\ref{fig:kld}; the best parametrization would be -the one that achieves $\mathrm{KLD}_{lim}$. -The \ssdata dataset enables the achievement of lower KLD values than the -\mgdata dataset for all formats at all values of $N_{f}$ considered, likely a -consequence of the strong features present in $\hat{n}(z)$ for the \mgdata -dataset in our subsamples of $N_{g}=100$ galaxies. -For example, if $\mathrm{KLD}_{lim}=10^{-2}$ nats, the quantile format would be -optimal regardless of $N_{f}$ due to the slow marginal improvement of the KLD -for the \mgdata dataset for the quantiles and samples format and the high -values of the KLD for the histogram format. -If the \ssdata dataset were subject to the same constraint, the quantiles -format could achieve the condition at $N_{f}=10$, but the samples format -achieves the same limit at $N_{f}=30$ and might be more reliable due to its -smaller scatter in KLD. +reconstruction of \pz s corresponds to a horizontal line at some +$\mathrm{KLD}_{\mathrm{lim}}$ in Figure~\ref{fig:kld}; the best parametrization +would correspond to the format that achieves $\mathrm{KLD}_{\mathrm{lim}}$ at +the lowest $N_{f}$. +For example, if $\mathrm{KLD}_{\mathrm{lim}}=10^{-2}$ nats, the quantile +parametrization with $N_{f}=3$ would be optimal due to the slow marginal +improvement of the $\hat{n}(z)$ KLD for the \mgdata dataset for the quantiles +and samples format and the high values of the KLD for the histogram format. +If the \ssdata dataset were subject to the same constraint, the quantile +parametrization with $N_{f}=10$ achieves the limiting KLD at the lowest +$N_{f}$, but the samples format achieves the same limit with a smaller scatter +at $N_{f}=30$ so might be considered more reliable. A constraint on storage resources corresponds to a vertical line at a given -$N_{f, lim}$ in Fig. \ref{fig:kld}; the best format would be the one that -achieves the lowest KLD at $N_{f, lim}$. - -If there is some flexibility in the acceptable degree of information loss on -$\hat{n}(z)$ and/or the allocation of storage for \pz s, as is the case for -LSST, it may be best to examine the asymptotic behavior of the KLD as a -function of $N_{f}$ for each format considered. -For example, if the KLD can be significantly reduced with a slightly larger -$N_{f}$, it may be possible to request additional storage capacity for the -survey's \pz s. - -For the \mgdata data mock catalog, the histogram format not only has a -consistently higher $\hat{n}(z)$ KLD but one that does not improve with -increasing $N_{f}$. -This poor performance independent of resource allocation is actually expected -because, due to the narrow, unimodal \pz s of the left panel of -Figure~\ref{fig:example_pzs}, a great majority of the probability density will -fall into a single bin $c^{\ h}_{i=j}$ with all other $c^{\ h}_{i\neq j}\approx -0$ \textit{regardless} of $N_{f}$. -The quantile format consistently produces the lowest $\hat{n}(z)$ KLDs, with a -larger improvement over the samples format as $N_{f}$ increases. -The improvement with larger $N_{f}$ is a surprising result because the shot -noise due to samples should decrease with higher $N_{f}$. -The quantile format also has a larger variance between instantiations than the -samples format, likely due to the imperfections of the procedures for deriving -the quantile parameters $\vec{c}^{\ q}$ from the original, high-resolution -$p(z)$ and for reconstructing $\hat{p}^{q}(z)$ from the quantile parameters -$\vec{c}^{\ q}$. - -In the \ssdata data mock catalog, the histogram format does improve with -increasing $N_{f}$, however, it takes a whopping $N_{f}=100$ stored parameters -before the histogram format can supercede the KLD of the samples and quantile -formats at a mere $N_{f}=3$ stored parameters, where the histogram format takes -a staggering value $KLD>1$. -With \pz s that take nontrivial values across a wider range of redshifts, the -histogram format is expected to capture more structure with more bins, -consistent with the aforementioned improvement. -The samples format's asymptote is surprisingly achieved at a lower KLD for the -\ssdata data mock catalog than for the \mgdata data mock catalog. -The variance between instantiations of the quantile format increases at high -$N_{f}$, a possible indication of room for improvement with the procedures for -deriving the quantile parameters $\vec{c}^{\ q}$ from the original, -high-resolution $p(z)$ and for reconstructing $\hat{p}^{q}(z)$ from the -quantile parameters $\vec{c}^{\ q}$ +$N_{f, \mathrm{lim}}$ in Fig. \ref{fig:kld}; the best format would be the one +that achieves the lowest KLD at $N_{f, \mathrm{lim}}$. +For example, if $N_{f, \mathrm{lim}}=10$ stored parameters, the quantile format +would be optimal for the \mgdata dataset because it takes the lowest KLD value +by a large margin compared to other formats. +If the \ssdata dataset were subject to the same constraint, the quantile and +samples formats would both be good candidates for a storage parametrization; +the quantile format would open up the possibility of a lower KLD, but the +smaller scatter of the samples format might have more value for some +applications. +If there is some flexibility in the allocation of storage for \pz s, as is the +case for LSST, it may be best to examine the asymptotic behavior of the KLD as +a function of the number of stored parameters for each format considered; if +the KLD can be significantly reduced with a slightly larger $N_{f}$, it may be +possible to request additional storage capacity for the survey's \pz s. + + We also calculate the percent error on the moments of the stacked estimator of -the redshift distribution function, as these may be more useful for -understanding error propagation in cosmology due to \pz\ storage -parametrization than the KLD, for which no such infrastructure yet exists. +the redshift distribution, as these may be more useful for understanding error +propagation in cosmology due to \pz\ storage parametrization than the KLD, for +which no such infrastructure yet exists. The percent error on the first three moments of the stacked estimator of the redshift distribution function is shown in Figure~\ref{fig:nz_moment_errs}. Because the distribution of moment percent errors is highly non-Gaussian due to the small number of instantiations considered, we substitute the interquartile -range for traditional $1-\sigma$ Gaussian error bars. +range for traditional $1\sigma$ Gaussian error bars. \begin{figure*} \begin{center} \includegraphics[width=\columnwidth]{graham_nz_err.pdf} \includegraphics[width=\columnwidth]{schmidt_nz_err.pdf} \caption{ - The $\log_{10}$-percent error on the mean ($\bigstar$), variance ($+$), and -kurtosis ($\times$) of the stacked estimator of the redshift distribution for -each dataset as a function of $N_{f}$ for the quantile (dashed purple line), -samples (dash-dotted greenline), and histogram (dotted orangeline) formats with -interquartile range error bars based on ten instantiations, where the -$\log_{10}$-percent errors and their interquartile ranges are offset around -$N_{f}$ to improve readability. - Left panel: The \mgdata dataset. - Right panel: The \ssdata dataset. + The percent error on the mean ($\bigstar$), variance ($+$), and kurtosis +($\times$) of the stacked estimator $hat{n}(z)$ of the redshift distribution +for each dataset as a function of the number $N_{f}$ of stored parameters for +the quantile (dashed purple line), samples (dash-dotted greenline), and +histogram (dotted orangeline) formats with interquartile range error bars based +on 10 instantiations of 100 galaxies, where the percent errors and their +interquartile ranges are offset about $N_{f}$ to improve readability. + Left panel: The \mgdata dataset shows evolution with $N_{f}$ of the +$\hat{n}(z)$ moment percent errors for the histogram format but none for the +samples and quantile formats. + Right panel: The \ssdata dataset shows qualitatively different evolution +with $N_{f}$ of the $\hat{n}(z)$ moment percent errors for the three formats +and for each moment. \label{fig:nz_moment_errs}} \end{center} \end{figure*} - - - - - +In this metric, the significant impact of data properties is quite apparent. +To explain this, we draw the reader's attention to Figure~\ref{fig:stacked} and +note that the actual redshift distribution for both datasets is similar, but +the redshift range over which they are defined is larger for the \mgdata +dataset than the \ssdata dataset. + +In the \mgdata dataset, the evolution of the $\hat{n}(z)$ moment errors with +$N_{f}$ differs for the histogram format relative to the samples and quantile +formats; while the samples and quantile formats exhibit essentially no +evolution in excess of the error bars between instantiations, the histogram +format significantly underestimates the moments at low $N_{f}$, effectively +approximates the moment errors at intermediate $N_{f}$, and overestimates them +at high $N_{f}$. +For $N_{f}=3$, the moments are grossly underestimated because most of the +probability density of $\hat{n}'(z)$ falls into the lowest single redshift bin +(explaining the higher moments), and the lowest redshift bin has most of the +probability density of $\hat{n}'(z)$ above the middle of the bin (explaining +the mean). +When the bins are too small, at $N_{f}=100$, those at high redshifts have most +of their probability density below the middle of the bin, leading to slightly +overestimated moments. +Because the \pz s in the \mgdata dataset are so narrow and unimodal overall, +the reconstructions of the samples and quantile parametrizations are highly +accurate where most of the probability density is even with low $N_{f}$, so the +$\hat{n}'(z)$ moments are consistently recovered to within $<1\%$. + +In the \ssdata dataset, the issues are different because the redshift range of +the original \pz s is smaller and the \pz s themselves are broader. +The samples format has no significant evolution in moment errors with $N_{f}$, +the histogram format severely overestimates the higher moments at low $N_{f}$, +and the quantiles format severely underestimates the moments at low $N_{f}$, +severely overestimates them at intermediate $N_{f}$, and moderately +overestimates them at high $N_{f}$. +The samples format may suffer from shot noise for broad, multimodal \pz s, but +the result is just spikier \pz s that produce narrow features in $\hat{n}(z)$ +that do not significantly affect the moments. +The histogram format's overestimation of higher moments at low $N_{f}$ in the +\ssdata dataset is caused by the bulk of the probability density of +$\hat{n}'(z)$ falling almost evenly into the two low redshift bins with far +less probability in the highest bin. +As was hinted at in Figure~\ref{fig:kld_moments}, the quantile +parametrization's \pz\ KLD distribution has large moments, and the KLD is most +sensitive to a poor approximation of the tails of the distribution. +Both the underestimation of the $\hat{n}(z)$ moments at low $N_{f}$ and the +overestimation of the $\hat{n}(z)$ moments at intermediate $N_{f}$ are due to +the choice of a suboptimal reconstruction scheme for quantiles that could +doubtlessly be improved in the future. +The quantile format's overestimation of the moments even at high $N_{f}$ can be +explained by the fact that it is not limited to the redshift range over which +the original \pz s were defined, a possible oversight of the \qp\ +implementation; a broad \pz\ may be reconstructed with probability density +outside the redshift range of the original \pz s and then truncated and +normalized prior to stacking, and because broad \pz s are more likely to occur +at high redshift, this excess probability is more likely to be at high +redshift, slightly but consistently inflating the moments. \section{Conclusions \& Future Directions} \label{sec:conclusions} -This work develops a principled approach to choosing a parametrization for -storing a catalog of \pz s from a survey of known data quality to balance the -accuracy of \pz s and science products thereof reconstructed from the stored -parameters against the available storage constraints. +This work develops a principled, systematic approach to choosing a +parametrization for storing a catalog of \pz s from a survey of known data +properties with a goal of balancing the available storage resources against the +accuracy of the \pz s and science products thereof reconstructed from the +stored parameters. We demonstrate the recommended method on two realistic mock datasets -representative of upcoming \pz\ catalogs and draw the following conclusions: +representative of upcoming \pz\ catalogs and draw the following general +conclusions: \begin{itemize} - \item The optimal parametrization depends on the properties of the data and -the science-driven metric used. - \item A larger number of available parameters in which to store a \pz\ -catalog does not necessarily imply a significant reduction in loss of -information. - \item The histogram format has a high rate of loss of information over -brighter and fainter data mock catalogs and across a wide range of number of -stored parameters, particularly under an aggregate function of individual -reconstructed \pz\ approximations. - \item The samples format is an excellent option for storage of brighter \pz\ -catalogs, balancing loss of information for both individual \pz\ s and a -catalog-wide metric. - \item The quantile format is a promising option for minimizing loss of -information in \pz\ storage, competitive with samples for an estimator of the -redshift distribution function. + \item Though the histogram format has the strongest presence in the +literature, it generally has a higher loss of information and moment percent +error of the reconstructed \pz s, except when a very large number of parameters +are stored. + \item The parametrization that best approximates individual \pz s may not be +optimal for a given science metric. + \item Increasing the number of stored parameters reduces the loss of +information and percent error in the moments of the reconstructed \pz s, but +the marginal improvement is not always significant. + \item Some general trends are shared among the datasets we used in our tests, +but much of the qualitative and quantitative behavior is different. \end{itemize} +To be clear, we do not advocate for a one-size-fits-all solution to the problem +of compressing \pz\ catalogs and emphasize that the optimal choice depends on +the science metric(s) and characteristics of the data, and any decision should +account for the absolute, relative, and marginal behavior of the formats +considered as a function of the number of stored parameters. + +Furthermore, though we discussed the previous use of each format in science +calculations, we do not endorse the preference of any format on the basis of +existing infrastructure for its use. +Rather, we anticipate great advances in the development of analysis techniques +that best make use of the information in \pz s and encourage the community to +then choose parametrizations that most effectively serve the needs of those +intended practices. +Future analyses may also consider options we did not, such as new formats or +the storage of different numbers of parameters for each galaxy in the catalog. Given the constraint that LSST will be able to store only 200 floating point numbers to quantify the redshift of each galaxy and intends to include the results of several \pz\ codes, we can safely say that LSST can store the output of more than one \pz\ code without risk of significant loss of information. -We do not advocate for a one-size-fits-all solution to the problem and -emphasize that the optimal choice must depend on the requirements of the -science metric(s) and characteristics of the underlying \pz\ catalog. - -Though we discussed the previous use of each format in science calculations, we -do not endorse the preference of any format on the basis of existing -infrastructure for its use. -Rather, we hope that the community will continue to develop analysis methods -that best make use of the information in \pz s and then choose parametrizations -that most effectively serve the needs of those intended practices. - -We invite the community to contribute additional formats and metrics to the -publicly available \qp\ Python package developed for this project. \qp\ is a -tool that can be used to optimize the choice of stored parametrization of a -catalog of \pz s based on the accuracy needs of the use cases of the catalog. +Had our results indicated a significant reduction in KLD for a small increase +in the number of stored parameters, we would present to decisio nmakers within +the collaboration evidence in support of increasing that allocation. +So that decisions of this kind can be optimized for all future surveys, the +\qp\ Python package developed for this project is made public on GitHub as a +tool for use by the broader community. +We invite contributions of additional reconstruction schemes, formats, and +metrics to the public GitHub repository. \subsection*{Appendix} @@ -969,7 +1025,7 @@ \subsection*{Appendix} in some limiting cases. If $\sigma=\sigma_{0}$ but $\mu=\mu_{0}+1$, we obtain $\mathrm{KLD}=\frac{1}{2}$ nat -- if the mean of the approximation is wrong by -an additive factor of $1\sigma$, half a nat of information is lost. +an additive factor of $\sigma$, half a nat of information is lost. If $\mu=\mu_{0}$ but $\sigma=\sqrt{2\pi}\sigma_{0}$, we find $\mathrm{KLD}\approx\frac{1}{2}$ nat -- half a nat of information is also lost if the variance of the approximation is off by a multiplicative factor of @@ -1017,6 +1073,8 @@ \subsection*{Appendix} \subsection*{Acknowledgments} +This work was incubated at the 2016 LSST-DESC Hack Week hosted by Carnegie +Mellon University. The work of PJM was supported by the U.S. Department of Energy under contract number DE-AC02-76SF00515. SJS was partially supported by the National Science Foundation under grant From 11abce19181575864a1e276b9bfb9e9975e83358 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 12 Oct 2017 18:33:35 -0400 Subject: [PATCH 90/96] periodic backup of minor changes --- docs/desc-0000-qp-photo-z_approximation/main.tex | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 8543a9dd..ee78d503 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -220,8 +220,8 @@ \subsubsection{Regular Binning} bin endpoints shared by all galaxies in the catalog, each adjacent pair of which is associated with a parameter $c_{i}=\int_{C_{i}}^{C_{i+1}}\ p(z)dz$. The \qp\ histogram format assumes $p(z)=0$ when $zC_{N_{f}+1}$, -leading to the normalization condition $\sum_{i} c_{i}(C_{i+1}-C_{i})) = 1$. -\footnote{Note that this is not generally equivalent to the erroneous +leading to the normalization condition $\sum_{i} c_{i}(C_{i+1}-C_{i})) = +1$.\footnote{Note that this is not generally equivalent to the erroneous normalization condition $\sum_{i} c_{i} = 1$ commonly enforced in public catalogs.} The histogram format function $\mathcal{F}^{h}$ is the sum of a set of $N_{f}$ @@ -429,10 +429,9 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} and denote the stacked estimator derived from the original input \pz s as $\hat{n}'(z)'$. While we do not recommend this approach to estimating the redshift distribution -(see Malz and Hogg, et al.\ (in preparation) for an alternative method), we use -it here on the assumption that any metric calculated for a more principled -estimator will have similar behavior with respect to the parametrization of the -\pz\ catalog. +(see Malz et al., in preparation for an alternative method), we use it here on +the assumption that any metric calculated for a more principled estimator will +have similar behavior with respect to the parametrization of the \pz\ catalog. This assumption may be tested in future work. As the stacked estimator is normalized so that it, too, is a PDF (though in the From f18f2260ac3d3def8e33f8adae83df3196f41b20 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 19 Oct 2017 14:05:14 -0400 Subject: [PATCH 91/96] fixed a bug in import --- qp/pdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qp/pdf.py b/qp/pdf.py index 8ab6fa2a..263dea38 100644 --- a/qp/pdf.py +++ b/qp/pdf.py @@ -314,7 +314,7 @@ def quantize(self, quants=None, N=9, limits=None, vb=True): # integrals = self.truth.cdf(quantiles) # assert np.isclose(integrals, quantpoints) - assert(type(quantiles) is numpy.ndarray) + assert(type(quantiles) is np.ndarray) self.quantiles = (quantpoints, quantiles) if vb: print("Resulting "+str(len(quantiles))+" quantiles: "+str(self.quantiles)) From 5d9323810cfd8a424babee300c6516212fb733d3 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Thu, 26 Oct 2017 18:10:14 -0400 Subject: [PATCH 92/96] final update to paper, hopefully --- .../main.bib | 311 ++++++++++++++---- .../main.tex | 222 +++++++------ 2 files changed, 365 insertions(+), 168 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index 85f316f5..28929946 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -14,19 +14,6 @@ @article{carrasco_kind_sparse_2014 pages = {3550--3561}, } -@article{dark_energy_survey_collaboration_redshift_2016, - title = {Redshift distributions of galaxies in the {Dark} {Energy} {Survey} {Science} {Verification} shear catalogue and implications for weak lensing}, - volume = {94}, - url = {https://link.aps.org/doi/10.1103/PhysRevD.94.042005}, - doi = {10.1103/PhysRevD.94.042005}, - number = {4}, - journal = {Phys. Rev. D}, - author = {{Dark Energy Survey Collaboration} and Bonnett, C. and Troxel, M. A. and Hartley, W. and Amara, A. and Leistedt, B. and Becker, M. R. and Bernstein, G. M. and Bridle, S. L. and Bruderer, C. and Busha, M. T. and Carrasco Kind, M. and Childress, M. J. and Castander, F. J. and Chang, C. and Crocce, M. and Davis, T. M. and Eifler, T. F. and Frieman, J. and Gangkofner, C. and Gaztanaga, E. and Glazebrook, K. and Gruen, D. and Kacprzak, T. and King, A. and Kwan, J. and Lahav, O. and Lewis, G. and Lidman, C. and Lin, H. and MacCrann, N. and Miquel, R. and O{\textquoteright}Neill, C. R. and Palmese, A. and Peiris, H. V. and Refregier, A. and Rozo, E. and Rykoff, E. S. and Sadeh, I. and S{\'a}nchez, C. and Sheldon, E. and Uddin, S. and Wechsler, R. H. and Zuntz, J. and Abbott, T. and Abdalla, F. B. and Allam, S. and Armstrong, R. and Banerji, M. and Bauer, A. H. and Benoit-L{\'e}vy, A. and Bertin, E. and Brooks, D. and Buckley-Geer, E. and Burke, D. L. and Capozzi, D. and Carnero Rosell, A. and Carretero, J. and Cunha, C. E. and D{\textquoteright}Andrea, C. B. and da Costa, L. N. and DePoy, D. L. and Desai, S. and Diehl, H. T. and Dietrich, J. P. and Doel, P. and Fausti Neto, A. and Fernandez, E. and Flaugher, B. and Fosalba, P. and Gerdes, D. W. and Gruendl, R. A. and Honscheid, K. and Jain, B. and James, D. J. and Jarvis, M. and Kim, A. G. and Kuehn, K. and Kuropatkin, N. and Li, T. S. and Lima, M. and Maia, M. A. G. and March, M. and Marshall, J. L. and Martini, P. and Melchior, P. and Miller, C. J. and Neilsen, E. and Nichol, R. C. and Nord, B. and Ogando, R. and Plazas, A. A. and Reil, K. and Romer, A. K. and Roodman, A. and Sako, M. and Sanchez, E. and Santiago, B. and Smith, R. C. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Thaler, J. and Thomas, D. and Vikram, V. and Walker, A. R.}, - month = aug, - year = {2016}, - pages = {042005}, -} - @article{krause_dark_2017, title = {Dark {Energy} {Survey} {Year} 1 {Results}: {Multi}-{Probe} {Methodology} and {Simulated} {Likelihood} {Analyses}}, shorttitle = {Dark {Energy} {Survey} {Year} 1 {Results}}, @@ -90,34 +77,6 @@ @article{myers_incorporating_2009 pages = {2279--2287}, } -@inproceedings{connolly_end--end_2014, - series = {Society of {Photo}-{Optical} {Instrumentation} {Engineers} ({SPIE}) {Conference} {Series}}, - title = {An end-to-end simulation framework for the {Large} {Synoptic} {Survey} {Telescope}}, - volume = {9150}, - url = {http://dx.doi.org/10.1117/12.2054953}, - doi = {10.1117/12.2054953}, - booktitle = {Modeling, {Systems} {Engineering}, and {Project} {Management} for {Astronomy} {VI}}, - author = {Connolly, Andrew J. and Angeli, George Z. and Chandrasekharan, Srinivasan and Claver, Charles F. and Cook, Kem and Ivezic, Zeljko and Jones, R. Lynne and Krughoff, K. Simon and Peng, En-Hsin and Peterson, John and Petry, Catherine and Rasmussen, Andrew P. and Ridgway, Stephen T. and Saha, Abhijit and Sembroski, Glenn and vanderPlas, Jacob and Yoachim, Peter}, - year = {2014}, - pages = {915014--915014--8} -} - -@article{springel_simulations_2005, - title = {Simulations of the formation, evolution and clustering of galaxies and quasars}, - volume = {435}, - copyright = {{\textcopyright} 2005 Nature Publishing Group}, - issn = {0028-0836}, - url = {http://www.nature.com/nature/journal/v435/n7042/full/nature03597.html?foxtrotcallback=true}, - doi = {10.1038/nature03597}, - language = {en}, - number = {7042}, - journal = {Nature}, - author = {Springel, Volker and White, Simon D. M. and Jenkins, Adrian and Frenk, Carlos S. and Yoshida, Naoki and Gao, Liang and Navarro, Julio and Thacker, Robert and Croton, Darren and Helly, John and Peacock, John A. and Cole, Shaun and Thomas, Peter and Couchman, Hugh and Evrard, August and Colberg, J{\"o}rg and Pearce, Frazer}, - month = jun, - year = {2005}, - pages = {629--636} -} - @article{gonzalez-perez_how_2014, title = {How sensitive are predicted galaxy luminosities to the choice of stellar population synthesis model?}, volume = {439}, @@ -211,21 +170,6 @@ @article{graham_photometric_2017 note = {arXiv: 1706.09507}, } -@article{laycock_x-ray_2017, - title = {The {X}-{Ray} {Binary} {Population} of the {Nearby} {Dwarf} {Starburst} {Galaxy} {IC} 10: {Variable} and {Transient} {X}-{Ray} {Sources}}, - volume = {836}, - issn = {0004-637X}, - shorttitle = {The {X}-{Ray} {Binary} {Population} of the {Nearby} {Dwarf} {Starburst} {Galaxy} {IC} 10}, - url = {http://stacks.iop.org/0004-637X/836/i=1/a=50}, - doi = {10.3847/1538-4357/836/1/50}, - language = {en}, - number = {1}, - journal = {ApJ}, - author = {Laycock, Silas and Cappallo, Rigel and Williams, Benjamin F. and Prestwich, Andrea and Binder, Breanna and Christodoulou, Dimitris M.}, - year = {2017}, - pages = {50} -} - @article{pizzocaro_results_2016, title = {Results from {DROXO}: {IV}. {EXTraS} discovery of an {X}-ray flare from the {Class} {I} protostar candidate {ISO}-{Oph} 85}, volume = {587}, @@ -269,21 +213,6 @@ @article{de_vicente_dnf_2016 pages = {3078--3088}, } -@article{sadeh_annz2:_2016, - title = {{ANNz}2: {Photometric} {Redshift} and {Probability} {Distribution} {Function} {Estimation} using {Machine} {Learning}}, - volume = {128}, - issn = {1538-3873}, - shorttitle = {{ANNz}2}, - url = {http://stacks.iop.org/1538-3873/128/i=968/a=104502}, - doi = {10.1088/1538-3873/128/968/104502}, - language = {en}, - number = {968}, - journal = {PASP}, - author = {Sadeh, I. and Abdalla, F. B. and Lahav, O.}, - year = {2016}, - pages = {104502} -} - @article{cavuoti_metaphor:_2017, title = {{METAPHOR}: a machine-learning-based method for the probability density estimation of photometric redshifts}, volume = {465}, @@ -339,3 +268,243 @@ @article{pedregosa_scikit-learn:_2011 year = {2011}, pages = {2825--2830}, } + +@article{lsst_science_collaboration_lsst_2009, + title = {{LSST} {Science} {Book}, {Version} 2.0}, + url = {http://arxiv.org/abs/0912.0201}, + journal = {arXiv:0912.0201 [astro-ph]}, + author = {LSST Science Collaboration and Abell, Paul A. and Allison, Julius and Anderson, Scott F. and Andrew, John R. and Angel, J. Roger P. and Armus, Lee and Arnett, David and Asztalos, S. J. and Axelrod, Tim S. and Bailey, Stephen and Ballantyne, D. R. and Bankert, Justin R. and Barkhouse, Wayne A. and Barr, Jeffrey D. and Barrientos, L. Felipe and Barth, Aaron J. and Bartlett, James G. and Becker, Andrew C. and Becla, Jacek and Beers, Timothy C. and Bernstein, Joseph P. and Biswas, Rahul and Blanton, Michael R. and Bloom, Joshua S. and Bochanski, John J. and Boeshaar, Pat and Borne, Kirk D. and Bradac, Marusa and Brandt, W. N. and Bridge, Carrie R. and Brown, Michael E. and Brunner, Robert J. and Bullock, James S. and Burgasser, Adam J. and Burge, James H. and Burke, David L. and Cargile, Phillip A. and Chandrasekharan, Srinivasan and Chartas, George and Chesley, Steven R. and Chu, You-Hua and Cinabro, David and Claire, Mark W. and Claver, Charles F. and Clowe, Douglas and Connolly, A. J. and Cook, Kem H. and Cooke, Jeff and Cooray, Asantha and Covey, Kevin R. and Culliton, Christopher S. and de Jong, Roelof and de Vries, Willem H. and Debattista, Victor P. and Delgado, Francisco and Dell'Antonio, Ian P. and Dhital, Saurav and Di Stefano, Rosanne and Dickinson, Mark and Dilday, Benjamin and Djorgovski, S. G. and Dobler, Gregory and Donalek, Ciro and Dubois-Felsmann, Gregory and Durech, Josef and Eliasdottir, Ardis and Eracleous, Michael and Eyer, Laurent and Falco, Emilio E. and Fan, Xiaohui and Fassnacht, Christopher D. and Ferguson, Harry C. and Fernandez, Yanga R. and Fields, Brian D. and Finkbeiner, Douglas and Figueroa, Eduardo E. and Fox, Derek B. and Francke, Harold and Frank, James S. and Frieman, Josh and Fromenteau, Sebastien and Furqan, Muhammad and Galaz, Gaspar and Gal-Yam, A. and Garnavich, Peter and Gawiser, Eric and Geary, John and Gee, Perry and Gibson, Robert R. and Gilmore, Kirk and Grace, Emily A. and Green, Richard F. and Gressler, William J. and Grillmair, Carl J. and Habib, Salman and Haggerty, J. S. and Hamuy, Mario and Harris, Alan W. and Hawley, Suzanne L. and Heavens, Alan F. and Hebb, Leslie and Henry, Todd J. and Hileman, Edward and Hilton, Eric J. and Hoadley, Keri and Holberg, J. B. and Holman, Matt J. and Howell, Steve B. and Infante, Leopoldo and Ivezic, Zeljko and Jacoby, Suzanne H. and Jain, Bhuvnesh and R and Jedicke and Jee, M. James and Jernigan, J. Garrett and Jha, Saurabh W. and Johnston, Kathryn V. and Jones, R. Lynne and Juric, Mario and Kaasalainen, Mikko and Styliani and Kafka and Kahn, Steven M. and Kaib, Nathan A. and Kalirai, Jason and Kantor, Jeff and Kasliwal, Mansi M. and Keeton, Charles R. and Kessler, Richard and Knezevic, Zoran and Kowalski, Adam and Krabbendam, Victor L. and Krughoff, K. Simon and Kulkarni, Shrinivas and Kuhlman, Stephen and Lacy, Mark and Lepine, Sebastien and Liang, Ming and Lien, Amy and Lira, Paulina and Long, Knox S. and Lorenz, Suzanne and Lotz, Jennifer M. and Lupton, R. H. and Lutz, Julie and Macri, Lucas M. and Mahabal, Ashish A. and Mandelbaum, Rachel and Marshall, Phil and May, Morgan and McGehee, Peregrine M. and Meadows, Brian T. and Meert, Alan and Milani, Andrea and Miller, Christopher J. and Miller, Michelle and Mills, David and Minniti, Dante and Monet, David and Mukadam, Anjum S. and Nakar, Ehud and Neill, Douglas R. and Newman, Jeffrey A. and Nikolaev, Sergei and Nordby, Martin and O'Connor, Paul and Oguri, Masamune and Oliver, John and Olivier, Scot S. and Olsen, Julia K. and Olsen, Knut and Olszewski, Edward W. and Oluseyi, Hakeem and Padilla, Nelson D. and Parker, Alex and Pepper, Joshua and Peterson, John R. and Petry, Catherine and Pinto, Philip A. and Pizagno, James L. and Popescu, Bogdan and Prsa, Andrej and Radcka, Veljko and Raddick, M. Jordan and Rasmussen, Andrew and Rau, Arne and Rho, Jeonghee and Rhoads, James E. and Richards, Gordon T. and Ridgway, Stephen T. and Robertson, Brant E. and Roskar, Rok and Saha, Abhijit and Sarajedini, Ata and Scannapieco, Evan and Schalk, Terry and Schindler, Rafe and Schmidt, Samuel and Schmidt, Sarah and Schneider, Donald P. and Schumacher, German and Scranton, Ryan and Sebag, Jacques and Seppala, Lynn G. and Shemmer, Ohad and Simon, Joshua D. and Sivertz, M. and Smith, Howard A. and Smith, J. Allyn and Smith, Nathan and Spitz, Anna H. and Stanford, Adam and Stassun, Keivan G. and Strader, Jay and Strauss, Michael A. and Stubbs, Christopher W. and Sweeney, Donald W. and Szalay, Alex and Szkody, Paula and Takada, Masahiro and Thorman, Paul and Trilling, David E. and Trimble, Virginia and Tyson, Anthony and Van Berg, Richard and Berk, Daniel Vanden and VanderPlas, Jake and Verde, Licia and Vrsnak, Bojan and Walkowicz, Lucianne M. and Wandelt, Benjamin D. and Wang, Sheng and Wang, Yun and Warner, Michael and Wechsler, Risa H. and West, Andrew A. and Wiecha, Oliver and Williams, Benjamin F. and Willman, Beth and Wittman, David and Wolff, Sidney C. and Wood-Vasey, W. Michael and Wozniak, Przemek and Young, Patrick and Zentner, Andrew and Zhan, Hu}, + month = dec, + year = {2009}, + note = {arXiv: 0912.0201}, +} + +@article{fevre_vimos_2005, + title = {The {VIMOS} {VLT} deep survey - {First} epoch {VVDS}-deep survey: 11 564 spectra with 17.5 <= {I}\$\_{\textbackslash}textit\{{\textbackslash}textbf\{{\textbackslash}small {AB}\}\}\$ <= 24, and the redshift distribution over 0 <= z <= 5}, + volume = {439}, + copyright = {{\textcopyright} ESO, 2005}, + issn = {0004-6361, 1432-0746}, + shorttitle = {The {VIMOS} {VLT} deep survey - {First} epoch {VVDS}-deep survey}, + url = {https://doi.org/10.1051/0004-6361:20041960}, + doi = {10.1051/0004-6361:20041960}, + language = {en}, + number = {3}, + journal = {A\&A}, + author = {F{\`e}vre, O. Le and Vettolani, G. and Garilli, B. and Tresse, L. and Bottini, D. and Brun, V. Le and Maccagni, D. and Picat, J. P. and Scaramella, R. and Scodeggio, M. and Zanichelli, A. and Adami, C. and Arnaboldi, M. and Arnouts, S. and Bardelli, S. and Bolzonella, M. and Cappi, A. and Charlot, S. and Ciliegi, P. and Contini, T. and Foucaud, S. and Franzetti, P. and Gavignaud, I. and Guzzo, L. and Ilbert, O. and Iovino, A. and McCracken, H. J. and Marano, B. and Marinoni, C. and Mathez, G. and Mazure, A. and Meneux, B. and Merighi, R. and Paltani, S. and Pell{\`o}, R. and Pollo, A. and Pozzetti, L. and Radovich, M. and Zamorani, G. and Zucca, E. and Bondi, M. and Bongiorno, A. and Busarello, G. and Lamareille, F. and Mellier, Y. and Merluzzi, P. and Ripepi, V. and Rizzo, D.}, + month = sep, + year = {2005}, + pages = {845--862}, +} + +@article{sadeh_annz2:_2016, + title = {{ANNz}2: {Photometric} {Redshift} and {Probability} {Distribution} {Function} {Estimation} using {Machine} {Learning}}, + volume = {128}, + issn = {1538-3873}, + shorttitle = {{ANNz}2}, + url = {http://stacks.iop.org/1538-3873/128/i=968/a=104502}, + doi = {10.1088/1538-3873/128/968/104502}, + language = {en}, + number = {968}, + journal = {PASP}, + author = {Sadeh, I. and Abdalla, F. B. and Lahav, O.}, + year = {2016}, + pages = {104502}, +} + +@article{laycock_x-ray_2017, + title = {The {X}-{Ray} {Binary} {Population} of the {Nearby} {Dwarf} {Starburst} {Galaxy} {IC} 10: {Variable} and {Transient} {X}-{Ray} {Sources}}, + volume = {836}, + issn = {0004-637X}, + shorttitle = {The {X}-{Ray} {Binary} {Population} of the {Nearby} {Dwarf} {Starburst} {Galaxy} {IC} 10}, + url = {http://stacks.iop.org/0004-637X/836/i=1/a=50}, + doi = {10.3847/1538-4357/836/1/50}, + language = {en}, + number = {1}, + journal = {ApJ}, + author = {Laycock, Silas and Cappallo, Rigel and Williams, Benjamin F. and Prestwich, Andrea and Binder, Breanna and Christodoulou, Dimitris M.}, + year = {2017}, + pages = {50}, +} + +@article{bilicki_photometric_2017, + title = {Photometric redshifts for the {Kilo}-{Degree} {Survey}. {Machine}-learning analysis with artificial neural networks}, + url = {http://arxiv.org/abs/1709.04205}, + journal = {arXiv:1709.04205 [astro-ph]}, + author = {Bilicki, M. and Hoekstra, H. and Amaro, V. and Blake, C. and Brown, M. J. I. and Cavuoti, S. and de Jong, J. T. A. and Hildebrandt, H. and Wolf, C. and Amon, A. and Brescia, M. and Brough, S. and Costa-Duarte, M. V. and Erben, T. and Glazebrook, K. and Grado, A. and Heymans, C. and Jarrett, T. and Joudaki, S. and Kuijken, K. and Longo, G. and Napolitano, N. and Parkinson, D. and Vellucci, C. and Kleijn, G. A. Verdoes and Wang, L.}, + month = sep, + year = {2017}, + note = {arXiv: 1709.04205}, +} + +@article{bailer-jones_gaia_2013, + title = {The {Gaia} astrophysical parameters inference system ({Apsis}) - {Pre}-launch description}, + volume = {559}, + copyright = {{\textcopyright} ESO, 2013}, + issn = {0004-6361, 1432-0746}, + url = {https://www.aanda.org/articles/aa/abs/2013/11/aa22344-13/aa22344-13.html}, + doi = {10.1051/0004-6361/201322344}, + language = {en}, + journal = {A\&A}, + author = {Bailer-Jones, C. a. L. and Andrae, R. and Arcay, B. and Astraatmadja, T. and Bellas-Velidis, I. and Berihuete, A. and Bijaoui, A. and Carri{\'o}n, C. and Dafonte, C. and Damerdji, Y. and Dapergolas, A. and Laverny, P. de and Delchambre, L. and Drazinos, P. and Drimmel, R. and Fr{\'e}mat, Y. and Fustes, D. and Garc{\'i}a-Torres, M. and Gu{\'e}d{\'e}, C. and Heiter, U. and Janotto, A.-M. and Karampelas, A. and Kim, D.-W. and Knude, J. and Kolka, I. and Kontizas, E. and Kontizas, M. and Korn, A. J. and Lanzafame, A. C. and Lebreton, Y. and Lindstr{\o}m, H. and Liu, C. and Livanou, E. and Lobel, A. and Manteiga, M. and Martayan, C. and Ordenovic, Ch and Pichon, B. and Recio-Blanco, A. and Rocca-Volmerange, B. and Sarro, L. M. and Smith, K. and Sordo, R. and Soubiran, C. and Surdej, J. and Th{\'e}venin, F. and Tsalmantza, P. and Vallenari, A. and Zorec, J.}, + year = {2013}, + pages = {A74}, +} + +@inproceedings{connolly_end--end_2014, + title = {An end-to-end simulation framework for the {Large} {Synoptic} {Survey} {Telescope}}, + volume = {9150}, + url = {https://www.spiedigitallibrary.org/conference-proceedings-of-spie/9150/915014/An-end-to-end-simulation-framework-for-the-Large-Synoptic/10.1117/12.2054953.short}, + doi = {10.1117/12.2054953}, + booktitle = {Proceedings {SPIE}}, + publisher = {International Society for Optics and Photonics}, + author = {Connolly, Andrew J. and Angeli, George Z. and Chandrasekharan, Srinivasan and Claver, Charles F. and Cook, Kem and Ivezic, Zeljko and Jones, R. Lynne and Krughoff, K. Simon and Peng, En-Hsin and Peterson, John and Petry, Catherine and Rasmussen, Andrew P. and Ridgway, Stephen T. and Saha, Abhijit and Sembroski, Glenn and vanderPlas, Jacob and Yoachim, Peter}, + month = aug, + year = {2014}, + pages = {915014}, +} + +@article{springel_simulations_2005, + title = {Simulations of the formation, evolution and clustering of galaxies and quasars}, + volume = {435}, + copyright = {{\textcopyright} 2005 Nature Publishing Group}, + issn = {0028-0836}, + url = {https://www.nature.com/nature/journal/v435/n7042/full/nature03597.html}, + doi = {10.1038/nature03597}, + language = {en}, + number = {7042}, + journal = {Nature}, + author = {Springel, Volker and White, Simon D. M. and Jenkins, Adrian and Frenk, Carlos S. and Yoshida, Naoki and Gao, Liang and Navarro, Julio and Thacker, Robert and Croton, Darren and Helly, John and Peacock, John A. and Cole, Shaun and Thomas, Peter and Couchman, Hugh and Evrard, August and Colberg, J{\"o}rg and Pearce, Frazer}, + month = jun, + year = {2005}, + pages = {629--636}, +} + +@article{mak_projected_2017, + title = {Projected support points, with application to optimal {MCMC} reduction}, + url = {http://arxiv.org/abs/1708.06897}, + journal = {arXiv:1708.06897 [stat]}, + author = {Mak, Simon and Joseph, V. Roshan}, + month = aug, + year = {2017}, + note = {arXiv: 1708.06897}, +} + +@article{radovich_searching_2017, + title = {Searching for galaxy clusters in the {Kilo}-{Degree} {Survey}}, + volume = {598}, + copyright = {{\textcopyright} ESO, 2017}, + issn = {0004-6361, 1432-0746}, + url = {https://www.aanda.org/articles/aa/abs/2017/02/aa29353-16/aa29353-16.html}, + doi = {10.1051/0004-6361/201629353}, + language = {en}, + journal = {A\&A}, + author = {Radovich, M. and Puddu, E. and Bellagamba, F. and Roncarelli, M. and Moscardini, L. and Bardelli, S. and Grado, A. and Getman, F. and Maturi, M. and Huang, Z. and Napolitano, N. and McFarland, J. and Valentijn, E. and Bilicki, M.}, + month = feb, + year = {2017}, + pages = {A107}, +} + +@article{jong_third_2017, + title = {The third data release of the {Kilo}-{Degree} {Survey} and associated data products}, + volume = {604}, + url = {https://ui.adsabs.harvard.edu/#abs/2017A&A...604A.134D/abstract}, + doi = {10.1051/0004-6361/201730747}, + journal = {Astronomy and Astrophysics}, + author = {Jong, De and A, Jelte T. and Kleijn, Gijs A. Verdoes and Erben, Thomas and Hildebrandt, Hendrik and Kuijken, Konrad and Sikkema, Gert and Brescia, Massimo and Bilicki, Maciej and Napolitano, Nicola R. and Amaro, Valeria and Begeman, Kor G. and Boxhoorn, Danny R. and Buddelmeijer, Hugo and Cavuoti, Stefano and Getman, Fedor and Grado, Aniello and Helmich, Ewout and Huang, Zhuoyi and Irisarri, Nancy and La Barbera, Francesco and Longo, Giuseppe and McFarland, John P. and Nakajima, Reiko and Paolillo, Maurizio and Puddu, Emanuella and Radovich, Mario and Rifatto, Agatino and Tortora, Crescenzo and Valentijn, Edwin A. and Vellucci, Civita and Vriend, Willem-Jan and Amon, Alexandra and Blake, Chris and Choi, Ami and Conti, Ian Fenech and Gwyn, Stephen D. J. and Herbonnet, Ricardo and Heymans, Catherine and Hoekstra, Henk and Klaes, Dominik and Merten, Julian and Miller, Lance and Schneider, Peter and Viola, Massimo}, + month = aug, + year = {2017}, + pages = {A134}, +} + +@article{bonnett_redshift_2016, + title = {Redshift distributions of galaxies in the {Dark} {Energy} {Survey} {Science} {Verification} shear catalogue and implications for weak lensing}, + volume = {94}, + number = {4}, + journal = {Physical Review D}, + author = {Bonnett, Christopher and Troxel, M. A. and Hartley, William and Amara, Adam and Leistedt, Boris and Becker, Matthew R. and Bernstein, Gary M. and Bridle, Sarah Louise and Bruderer, Claudio and Busha, M. T.}, + year = {2016}, + pages = {042005}, +} + +@article{polsterer_uncertain_2016, + title = {Uncertain {Photometric} {Redshifts}}, + url = {http://arxiv.org/abs/1608.08016}, + journal = {arXiv:1608.08016 [astro-ph]}, + author = {Polsterer, Kai Lars and D'Isanto, Antonio and Gieseke, Fabian}, + month = aug, + year = {2016}, + note = {arXiv: 1608.08016}, +} + +@article{hildebrandt_kids-450:_2017, + title = {{KiDS}-450: cosmological parameter constraints from tomographic weak gravitational lensing}, + volume = {465}, + issn = {0035-8711}, + shorttitle = {{KiDS}-450}, + url = {http://adsabs.harvard.edu/abs/2017MNRAS.465.1454H}, + doi = {10.1093/mnras/stw2805}, + journal = {Monthly Notices of the Royal Astronomical Society}, + author = {Hildebrandt, H. and Viola, M. and Heymans, C. and Joudaki, S. and Kuijken, K. and Blake, C. and Erben, T. and Joachimi, B. and Klaes, D. and Miller, L. and Morrison, C. B. and Nakajima, R. and Verdoes Kleijn, G. and Amon, A. and Choi, A. and Covone, G. and de Jong, J. T. A. and Dvornik, A. and Fenech Conti, I. and Grado, A. and Harnois-D{\'e}raps, J. and Herbonnet, R. and Hoekstra, H. and K{\"o}hlinger, F. and McFarland, J. and Mead, A. and Merten, J. and Napolitano, N. and Peacock, J. A. and Radovich, M. and Schneider, P. and Simon, P. and Valentijn, E. A. and van den Busch, J. L. and van Uitert, E. and Van Waerbeke, L.}, + month = feb, + year = {2017}, + pages = {1454--1498}, +} + +@article{harnois-deraps_kids-450:_2017, + title = {{KiDS}-450: tomographic cross-correlation of galaxy shear with {Planck} lensing}, + volume = {471}, + issn = {0035-8711}, + shorttitle = {{KiDS}-450}, + url = {https://academic.oup.com/mnras/article/471/2/1619/3922863}, + doi = {10.1093/mnras/stx1675}, + number = {2}, + journal = {Mon Not R Astron Soc}, + author = {Harnois-D{\'e}raps, Joachim and Tr{\"o}ster, Tilman and Chisari, Nora Elisa and Heymans, Catherine and van Waerbeke, Ludovic and Asgari, Marika and Bilicki, Maciej and Choi, Ami and Erben, Thomas and Hildebrandt, Hendrik and Hoekstra, Henk and Joudaki, Shahab and Kuijken, Konrad and Merten, Julian and Miller, Lance and Robertson, Naomi and Schneider, Peter and Viola, Massimo}, + month = oct, + year = {2017}, + pages = {1619--1633}, +} + +@article{troster_cross-correlation_2017, + title = {Cross-correlation of weak lensing and gamma rays: implications for the nature of dark matter}, + volume = {467}, + issn = {0035-8711}, + shorttitle = {Cross-correlation of weak lensing and gamma rays}, + url = {https://academic.oup.com/mnras/article/467/3/2706/2982886}, + doi = {10.1093/mnras/stx365}, + number = {3}, + journal = {Mon Not R Astron Soc}, + author = {Tr{\"o}ster, Tilman and Camera, Stefano and Fornasa, Mattia and Regis, Marco and van Waerbeke, Ludovic and Harnois-D{\'e}raps, Joachim and Ando, Shin'ichiro and Bilicki, Maciej and Erben, Thomas and Fornengo, Nicolao and Heymans, Catherine and Hildebrandt, Hendrik and Hoekstra, Henk and Kuijken, Konrad and Viola, Massimo}, + month = jun, + year = {2017}, + pages = {2706--2722}, +} + +@article{clampitt_galaxygalaxy_2017, + title = {Galaxy{\textendash}galaxy lensing in the {Dark} {Energy} {Survey} {Science} {Verification} data}, + volume = {465}, + issn = {0035-8711}, + url = {https://academic.oup.com/mnras/article/465/4/4204/2556144}, + doi = {10.1093/mnras/stw2988}, + number = {4}, + journal = {Mon Not R Astron Soc}, + author = {Clampitt, J. and S{\'a}nchez, C. and Kwan, J. and Krause, E. and MacCrann, N. and Park, Y. and Troxel, M. A. and Jain, B. and Rozo, E. and Rykoff, E. S. and Wechsler, R. H. and Blazek, J. and Bonnett, C. and Crocce, M. and Fang, Y. and Gaztanaga, E. and Gruen, D. and Jarvis, M. and Miquel, R. and Prat, J. and Ross, A. J. and Sheldon, E. and Zuntz, J. and Abbott, T. M. C. and Abdalla, F. B. and Armstrong, R. and Becker, M. R. and Benoit-L{\'e}vy, A. and Bernstein, G. M. and Bertin, E. and Brooks, D. and Burke, D. L. and Carnero Rosell, A. and Carrasco Kind, M. and Cunha, C. E. and D'Andrea, C. B. and Costa, Da and N, L. and Desai, S. and Diehl, H. T. and Dietrich, J. P. and Doel, P. and Estrada, J. and Evrard, A. E. and Fausti Neto, A. and Flaugher, B. and Fosalba, P. and Frieman, J. and Gruendl, R. A. and Honscheid, K. and James, D. J. and Kuehn, K. and Kuropatkin, N. and Lahav, O. and Lima, M. and March, M. and Marshall, J. L. and Martini, P. and Melchior, P. and Mohr, J. J. and Nichol, R. C. and Nord, B. and Plazas, A. A. and Romer, A. K. and Sanchez, E. and Scarpine, V. and Schubnell, M. and Sevilla-Noarbe, I. and Smith, R. C. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Thomas, D. and Vikram, V. and Walker, A. R.}, + month = mar, + year = {2017}, + pages = {4204--4218}, +} + +@article{choi_cfhtlens_2016, + title = {{CFHTLenS} and {RCSLenS}: testing photometric redshift distributions using angular cross-correlations with spectroscopic galaxy surveys}, + volume = {463}, + issn = {0035-8711}, + shorttitle = {{CFHTLenS} and {RCSLenS}}, + url = {https://academic.oup.com/mnras/article/463/4/3737/2646329}, + doi = {10.1093/mnras/stw2241}, + number = {4}, + journal = {Mon Not R Astron Soc}, + author = {Choi, A. and Heymans, C. and Blake, C. and Hildebrandt, H. and Duncan, C. a. J. and Erben, T. and Nakajima, R. and Van Waerbeke, L. and Viola, M.}, + month = dec, + year = {2016}, + pages = {3737--3754}, +} diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index ee78d503..6dca86c7 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -57,27 +57,40 @@ \section{Introduction} \label{sec:intro} -Ongoing and upcoming wide-field imaging surveys such as the Large Synoptic -Survey Telescope +Upcoming wide-field imaging surveys such as the Large Synoptic Survey Telescope (LSST)\footnote{\url{https://www.lsst.org/}}\citep{ivezic_lsst:_2008} will -observe billions of galaxies photometrically, without follow-up spectroscopy. -Studies of precision cosmology and galaxy evolution with these data will thus -rely almost exclusively on the method of photometric redshift (photo-$z$) -estimation. +observe tens of billions of galaxies photometrically, without follow-up +spectroscopy, as ongoing surveys, including the Kilo-Degree Survey +(KiDS)\footnote{\url{http://kids.strw.leidenuniv.nl/}}, Hyper Suprime-Cam +Subary Strategic Program (HSC)\footnote{\url{http://hsc.mtk.nao.ac.jp/ssp/}}, +and Dark Energy Survey (DES)\footnote{\url{https://www.darkenergysurvey.org/}}, +have been doing at a scale three orders of magnitude smaller for the past +decade. +Studies of precision cosmology and galaxy evolution with the anticipated data +will thus rely almost exclusively on the method of photometric redshift +(photo-$z$) estimation. Photo-$z$s are subject to a number of systematic errors, some caused by the estimation procedures and others intrinsic to the data itself. The photo-$z$ community has come to favor methods that provide a redshift probability distribution function (PDF) that includes information about the -potential for such systematic errors for each galaxy in the survey. - -Given the tremendous size of the surveys in question, storage of these -probability distributions involves making difficult decisions. -Each survey seeks to balance accuracy against storage cost in creating a +potential for such systematic errors for each galaxy in the survey +\citep{tanaka_photometric_2017, jong_third_2017, sheldon_photometric_2012}. + +Given that the \pz\ catalogs of ongoing surveys already include $\sim10^{7}$ +galaxies and that those of upcoming surveys will include $\sim10^{10}$ +galaxies, storage of these probability distributions involves making difficult +decisions. +Each survey seeks to balance accuracy against resource footprint in creating a catalog of \pz s made available to the scientific community. For example, the \pz\ catalog that LSST will release will be limited to -$\sim100$ floating point numbers per galaxy\citet[section +$\sim100$ floating point numbers per galaxy \citep[section 4.2.2]{juric_data_2017}, with plans to store \pz s derived by multiple methods. -The problem of \pz\ approximation for large surveys was first addressed in +Furthermore, the problem of storing PDFs is not unique to cosmology missions; +Gaia\footnote{\url{https://www.gaia-eso.eu/}}, so an approach to optimizing the +choice of storage parametrization could have a beneficial impact elsewhere in +astronomy. + +The question of \pz\ approximation for large surveys was first addressed in \citet{carrasco_kind_sparse_2014} in the context of a single galaxy survey, a limited set of \pz\ approximation schemes, and metrics appropriate for deterministic, not probabilistic, objects. @@ -105,7 +118,7 @@ \section{Methods} We have developed the \qp\ Python package to facilitate the parametrization and -approximation of \pz s. +approximation of one-dimensional PDFs, including \pz s. A \texttt{qp.PDF} object can carry a number of different parametrizations, each associated with a representation. Conversions between parametrizations are facilitated by the @@ -116,13 +129,13 @@ \section{Methods} The currently supported parametrizations are described in Section~\ref{sec:approx}. The \qp\ package also provides a few built-in metrics of the accuracy of a -representation of a \pz\ relative to a given parametrization that has been +representation of a PDF relative to a given parametrization that has been designated as the reference representation. Built-in plots are made using \texttt{matplotlib}\footnote{\url{https://matplotlib.org/}}. The currently implemented metrics are described in Section~\ref{sec:metric}. -Large-scale tests can be conducted using the \texttt{qp.Ensemble} class that -provides a wrapper for parallelized operations over collections of +Catalog-level manipulations are performed using the \texttt{qp.Ensemble} class +that provides a wrapper for parallelized operations over collections of \texttt{qp.PDF} objects; parallelization is facilitated by the \texttt{pathos} \footnote{\noindent\url{http://trac.mystic.cacr.caltech.edu/project/pathos/wiki. html}} \citep{mckerns_building_2012, mckerns_pathos:_2010} package. @@ -144,14 +157,15 @@ \subsection{Approximation Methods} We often employ interpolation schemes with a generic interpolator function $F_{\vec{C}'}(z; \vec{c})$ that comes with its own metaparameters $\vec{C}'$. \qp\ supports all interpolation options available to the -\texttt{scipy.interpolate.interp1d} function, but we choose a default -interpolation scheme for each format to maximize the fidelity of the -approximations to the original, high-resolution PDFs. +\texttt{scipy.interpolate.interp1d} function as well as many other +\texttt{scipy.interpolate} functions, but we choose a default interpolation +scheme for each format that maximizes the fidelity of the approximations to the +original, high-resolution PDFs. \qp\ supports conversion of \pz\ approximations between five formats: step functions, samples, quantiles, evaluations, and mixture model components. These formats may be associated with any number $N_{f}$ of stored parameters -$c_{i}$ per \pz%, which are presumed to be floating point numbers unless +$c_{i}$ per \pz, which are presumed to be floating point numbers unless otherwise specified. Meanwhile, the metaparameters $C_{i}$ are the set of numbers necessary to convert the stored \pz\ parameters $\vec{c}$ into a PDF over redshift. @@ -209,11 +223,11 @@ \subsubsection{Regular Binning} piecewise constant step function, also called a histogram binning \citep{carrasco_kind_somz:_2014, sadeh_annz2:_2016, cavuoti_metaphor:_2017}. It is the only format that has been used for public release of \pz\ catalogs -\citep{tanaka_photometric_2017, sheldon_photometric_2012}; it is unclear -whether this is a consequence or cause of the fact that it is the most common -format for using \pz s in cosmological inference, as tomographic binning is a -universal step between the \pz\ catalog and calculation of any two-point -correlation function. +\citep{sheldon_photometric_2012, tanaka_photometric_2017, jong_third_2017}; it +is unclear whether this is a consequence or cause of the fact that it is the +most common format for using \pz s in cosmological inference, as tomographic +binning is a universal step between the \pz\ catalog and calculation of any +two-point correlation function. The metaparameters of the binned parametrization are the ordered list of redshifts $\vec{C} = (z_{1}, z_{2}, \dots, z_{N_{f}}, z_{N_{f}+1})$ serving as @@ -223,7 +237,10 @@ \subsubsection{Regular Binning} leading to the normalization condition $\sum_{i} c_{i}(C_{i+1}-C_{i})) = 1$.\footnote{Note that this is not generally equivalent to the erroneous normalization condition $\sum_{i} c_{i} = 1$ commonly enforced in public -catalogs.} +catalogs such as the Sloan Digital Sky Survey's Data Release 8 +\citep{sheldon_photometric_2012}; unless redshift is treated as discrete, the +oversimplified normalization condition only holds if +$C_{N_{f}}-C_{1}=N\delta_{f}$ (under a regular binning).} The histogram format function $\mathcal{F}^{h}$ is the sum of a set of $N_{f}$ step functions, making the reconstructed estimator of the \pz \begin{align} @@ -234,9 +251,9 @@ \subsubsection{Regular Binning} \end{align} where the step functions may be considered their own interpolators. Here we only consider a regular binning, with $C_{i+1}=C_{i}+\delta_{f}$ for a -constant $\delta_{f}=(C_{N_{f}+1}-C_{1})/N_{f}$, as this is the only type of -binning that has been used in the literature, but this condition is not -required by \qp. +constant $\delta_{f}=(C_{N_{f}+1}-C_{1})/N_{f}$, as no irregular binning has +yet been used for a public catalog of \pz s, but this condition is not required +by \qp. The regular histogram format may be considered wasteful in terms of data storage; a \pz\ with a very compact (broad) probability distribution may have @@ -252,7 +269,10 @@ \subsubsection{Random Samples} realistically be stored by any survey, so a subsample is commonly stored. Samples are easy to use in standard science applications developed for redshift point estimates, so they have an established presence in the literature -\citep{dark_energy_survey_collaboration_redshift_2016}. +\citep{bonnett_redshift_2016}. +The samples format is used to store PDFs elsewhere in astronomy, including the +Gaia-ESO Survey's commitment to provide multi-dimensional PDFs of stellar +parameters in the samples format \citep{bailer-jones_gaia_2013}. The parameters of the samples format are the $N_{f}$ samples $\vec{c}=(z_{1}, z_{2}, \dots, z_{N_{f}-1}, z_{N_{f}})$, where $C=N_{f}$ is an implicit @@ -330,8 +350,8 @@ \subsection{Comparison Metrics} This is done without reference to a galaxy's true redshift; there is, in fact, no notion of a true redshift in our analysis. (For a demonstration of how one might approach the distinct problem of -evaluating the accuracy of a \pz\ relative to a true redshift, see Schmidt, et -al.\ in preparation.) +evaluating the accuracy of a \pz\ relative to a true redshift, see +\citet{polsterer_uncertain_2016}, Schmidt, et al.\ in preparation.) We consider as a metric the loss of information, measured in nats (base $e$ bits), incurred when using an approximation of the PDF $\hat{P}(z)$ instead of @@ -394,7 +414,9 @@ \subsubsection{Individual \pz s} \label{sec:individual_metric} Some science applications rely on the recovery of individual galaxy \pz s that, -for example, may be used as the basis for targeting spectroscopic follow up. +for example, may be used as the basis for constraining the masses of +\citep{applegate_weighing_2014} or finding \citep{radovich_searching_2017} +galaxy clusters. For this purpose, we calculate the KLD of each individual \pz\ in our catalogs and then characterize the distribution of KLD values (which is itself a PDF) by its $m=1,\ 2,\ 3$ moments. @@ -417,29 +439,34 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} In cosmology, \pz s have thus far been used almost exclusively to estimate the redshift distribution function $n(z)$ necessary for calculating the correlation -functions used by many cosmological probes. +functions used by many cosmological probes \citep{clampitt_galaxygalaxy_2017, +hildebrandt_kids-450:_2017}. The most common way to estimate the redshift distribution function for a sample of $N_{g}$ galaxies is to sum the \pz s according to \begin{align} \label{eq:nz} \hat{n}(z) &\equiv \frac{1}{N_{g}}\ \sum_{k=1}^{N_{g}}\ \hat{p}_{k}(z), \end{align} -a procedure known as stacking. +a procedure known as stacking \citep{sheldon_photometric_2012, +harnois-deraps_kids-450:_2017}.\footnote{Sometimes Equation~\ref{eq:nz} has +been modified by weights specific to each galaxy based on the relative +prevalence of galaxies with similar photometry in a reference population +\citep{sheldon_photometric_2012, troster_cross-correlation_2017}.} We refer to $\hat{n}(z)$ as the stacked estimator of the redshift distribution and denote the stacked estimator derived from the original input \pz s as $\hat{n}'(z)'$. While we do not recommend this approach to estimating the redshift distribution -(see Malz et al., in preparation for an alternative method), we use it here on -the assumption that any metric calculated for a more principled estimator will -have similar behavior with respect to the parametrization of the \pz\ catalog. +(see \citet{choi_cfhtlens_2016} for justification and Malz et al., in +preparation for an alternative method), we use it here on the assumption that +any metric calculated for a more principled estimator will have similar +behavior with respect to the parametrization of the \pz\ catalog. This assumption may be tested in future work. -As the stacked estimator is normalized so that it, too, is a PDF (though in the -literature it is often subject to the fallacy conflating a sum and an integral, -first mentioned in Sec. \ref{sec:bins}), the KLD \textit{from} the stacked -estimator of a catalog of evaluations of reconstructed \pz s \textit{to} the -stacked estimator of a catalog of evaluations of the original, high-resolution -\pz s serves as a metric for a specific science use case of \pz s. +As the stacked estimator is normalized so that it, too, is a PDF, the KLD +\textit{from} the stacked estimator of a catalog of evaluations of +reconstructed \pz s \textit{to} the stacked estimator of a catalog of +evaluations of the original, high-resolution \pz s serves as a metric for a +specific science use case of \pz s. Because the accuracy of lower-order moments of the redshift distribution function dominates the weak lensing error budget, we also compare the percent error on the $m=1,\ 2,\ 3$ moments of $\hat{n}(z)$. @@ -468,8 +495,9 @@ \section{Photo-z Test Data} by BPZ are accurate redshift posteriors. We seek only to optimize the fidelity of the stored \pz\ relative to the \pz\ output by a representative \pz\ fitting code. -\citep[See][Schmidt, et al.\ in preparation for other work comparing the -accuracy of \pz s produced by different methods.]{tanaka_photometric_2017} +\citep[See][Schmidt, et al.\ in preparation, and Amaro, et al.\ in preparation +for other work comparing the accuracy of \pz s produced by different +methods.]{tanaka_photometric_2017, jong_third_2017} As BPZ is a widely used and well established method, we assume that the \pz s produced by it are of representative complexity. The default format of BPZ is a $N_{ff}>200$ gridded parametrization with @@ -500,26 +528,23 @@ \subsection{\Mgdata data mock catalog} catalog used for LSST photometric redshift experiments by \citet{graham_photometric_2017}. The data builds on the Millennium simulation \citep{springel_simulations_2005}, -and in particular the LC DEEP catalog based on the galaxy formation models of -\citet{gonzalez-perez_how_2014}, and was created using the lightcone -construction techniques described by \citet{merson_lightcone_2013}. -We limit the sample to galaxies with a catalog $i$-band magnitude of $i<25$ and -true redshifts $z<3.5$. -As in Graham, et al. (in preparation), we simulate observed apparent magnitudes -from the true catalog magnitudes by adding a normal random scatter with a -standard deviation equal to the predicted magnitude error for each galaxy (from -Section 3.2.1. of \citet{ivezic_lsst:_2008}, using the software of -\citet{connolly_end--end_2014}, assuming a mean airmass of 1.2 and a 10-year -accumulation of 56, 80, 184, 184, 160, and 160 visits in filters $ugrizy$, -respectively). -We also ignore any magnitudes fainter than the predicted 10-year limiting -magnitudes in each filter, $u<26.1$, $g<27.4$, $r<27.5$, $z<26.1$, and -$y<24.9$, as a realistic simulation of non-detections. - -The \pz\ estimates for this simulated catalog use the CFHTLS set of spectra -\citep{ilbert_accurate_2006} as BPZ templates and the default parameter -settings for BPZ, except that we impose a maximum photometric redshift of 3.5 -and allow BPZ to use the $i$-band as a magnitude prior during the photo-$z$ fit. +the galaxy formation models of \citet{gonzalez-perez_how_2014}, and the +lightcone construction techniques described by \citet{merson_lightcone_2013}. +Using the software of \citet{connolly_end--end_2014}, the observed apparent +magnitudes are simulated from the true catalog magnitudes by adding a normal +random scatter with a standard deviation equal to the predicted magnitude error +for each galaxy after 10 years of LSST observations from +\citet{ivezic_lsst:_2008}. +The sample is limited to galaxies with a catalog $i$-band magnitude of $i<25$ +and true redshifts $z<3.5$, omitting any magnitudes fainter than the predicted +10-year limiting magnitudes in each filter, $u<26.1$, $g<27.4$, $r<27.5$, +$z<26.1$, and $y<24.9$ to realistically simulate non-detections. + +The \pz\ estimates for this simulated catalog use the Vimos VLT Deep Survey set +of spectra \citep{fevre_vimos_2005}, as in \citet{ilbert_accurate_2006}, as BPZ +templates and the default parameter settings for BPZ, except that we impose a +maximum photometric redshift of 3.5 and allow BPZ to use the $i$-band magnitude +as a prior during the photo-$z$ fit. The \pz s from BPZ are in the form of $N_{ff} = 351$ evaluations of the probability density on a regular grid of redshifts $0.01 < z < 3.51$, a subsample of which are plotted in the left panel of @@ -548,8 +573,9 @@ \subsection{\Ssdata data mock catalog} broadband LSST filters ($ugrizy$), assuming the full 10-year depth of the survey using the simple model of \citet{ivezic_lsst:_2008}. The catalog contains $N_{g}\approx100,000$ galaxies $z<2.105$ to a depth of -$i<26.9$, 1.5 magnitudes deeper than the expected LSST Gold sample of galaxies -that will have $S/N\gtrsim30$ in multiple bands. +$i<26.9$, 1.5 magnitudes deeper than the expected LSST gold sample of galaxies +\citep{lsst_science_collaboration_lsst_2009}, that will have $S/N\gtrsim30$ in +multiple bands. In implementing BPZ, we createed a custom Bayesian prior using a subset of the Buzzard-highres-v1.0 catalog and a spanning template set via a simple k-means @@ -616,10 +642,6 @@ \subsection{Individual \pz s} Figure~\ref{fig:kld_moments}. While it is obvious that one would like the mean (first moment) of the KLD distribution to be low, interpretation of higher-order moments is less clear. -In a science application that is robust to \pz\ outliers, a parametrization -with a high variance (second moment) may be acceptable, whereas in another -science application that simply requires well-characterized errors could -tolerate a higher mean in exchange for a lower variance. To meaningfully interpret the KLDs of individual \pz s, it will be necessary for those using \pz s in their science to calculate the requirements on the acceptable degree of information loss. @@ -658,11 +680,14 @@ \subsection{Individual \pz s} steady decrease in all moments for the quantile and samples formats as $N_{f}$ increases. The log-KLD log-moments are higher for quantiles than for samples for both -datasets, except at $N_{f}=100$ for the \mgdata dataset. +datasets, except at $N_{f}=100$ for the \mgdata dataset; this is not an +unexpected result because the PDF reconstruction method for the quantile format +is most susceptible to error in the tails of the distribution, where the KLD +has the highest sensitivity. The histogram format's log-KLD log-moments are higher than for other formats at -low $N_{f}$ and steadily decrease in a manner similar to the other formats, -except at the highest $N_{f}$ values where the histogram format's log-KLD -log-moments decrease much more quickly. +the lowest $N_{f}$ and steadily decrease in a manner similar to the other +formats, except at the highest $N_{f}$ values where the histogram format's +log-KLD log-moments decrease much more quickly. The error bars on the log-KLD log-moments increase at high $N_{f}$ for all formats on both datasets beyond what one would expect simply based on the log scaling. @@ -956,20 +981,15 @@ \section{Conclusions \& Future Directions} accuracy of the \pz s and science products thereof reconstructed from the stored parameters. We demonstrate the recommended method on two realistic mock datasets -representative of upcoming \pz\ catalogs and draw the following general -conclusions: +representative of upcoming \pz\ catalogs and draw the following conclusions: \begin{itemize} - \item Though the histogram format has the strongest presence in the -literature, it generally has a higher loss of information and moment percent -error of the reconstructed \pz s, except when a very large number of parameters -are stored. - \item The parametrization that best approximates individual \pz s may not be -optimal for a given science metric. + \item Some general trends are shared among the datasets we used in our tests, +but much of the qualitative and quantitative behavior is different. + \item The parametrization that best approximates individual \pz s may differ +from the parametrization that optimizes a given science metric. \item Increasing the number of stored parameters reduces the loss of information and percent error in the moments of the reconstructed \pz s, but the marginal improvement is not always significant. - \item Some general trends are shared among the datasets we used in our tests, -but much of the qualitative and quantitative behavior is different. \end{itemize} To be clear, we do not advocate for a one-size-fits-all solution to the problem of compressing \pz\ catalogs and emphasize that the optimal choice depends on @@ -977,6 +997,18 @@ \section{Conclusions \& Future Directions} account for the absolute, relative, and marginal behavior of the formats considered as a function of the number of stored parameters. +Though the histogram format has the strongest presence in the \pz\ literature, +it exhibits a higher loss of information and moment percent error of the +reconstructed \pz s, except when a very large number of parameters are stored, +so we do not recommend its use for LSST's \pz\ catalog. +Given the constraint that LSST will be able to store only 200 floating point +numbers to quantify the redshift of each galaxy and intends to include the +results of several \pz\ codes, we can safely say that LSST can store the output +of more than one \pz\ code without risk of significant loss of information. +Had our results indicated a significant reduction in KLD for a small increase +in the number of stored parameters, we would present to decision-makers within +the collaboration evidence in support of increasing that allocation. + Furthermore, though we discussed the previous use of each format in science calculations, we do not endorse the preference of any format on the basis of existing infrastructure for its use. @@ -986,14 +1018,6 @@ \section{Conclusions \& Future Directions} intended practices. Future analyses may also consider options we did not, such as new formats or the storage of different numbers of parameters for each galaxy in the catalog. - -Given the constraint that LSST will be able to store only 200 floating point -numbers to quantify the redshift of each galaxy and intends to include the -results of several \pz\ codes, we can safely say that LSST can store the output -of more than one \pz\ code without risk of significant loss of information. -Had our results indicated a significant reduction in KLD for a small increase -in the number of stored parameters, we would present to decisio nmakers within -the collaboration evidence in support of increasing that allocation. So that decisions of this kind can be optimized for all future surveys, the \qp\ Python package developed for this project is made public on GitHub as a tool for use by the broader community. @@ -1074,15 +1098,19 @@ \subsection*{Acknowledgments} This work was incubated at the 2016 LSST-DESC Hack Week hosted by Carnegie Mellon University. +The work of AIM was partially supported by the U.S. Department of Energy, +Office of Science, Office of Workforce Development for Teachers and Scientists, +Office of Science Graduate Student Research (SCGSR) program, administered by +the Oak Ridge Institute for Science and Education for the DOE under contract +number DE‐SC0014664. The work of PJM was supported by the U.S. Department of Energy under contract number DE-AC02-76SF00515. SJS was partially supported by the National Science Foundation under grant N56981CC. - \input{acknowledgments} We would like to thank the LSST-DESC Publications Board and review committee -for helpful feedback on preparation of this paper. +for helpful feedback in the preparation of this paper. \input{contributions} From 01bbc38516b99257e7d5e9cdc59fd0e073cf3a2b Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Tue, 31 Oct 2017 18:59:10 -0400 Subject: [PATCH 93/96] almost finished with proofreading update --- .../main.bib | 54 ++ .../main.tex | 624 +++++++++--------- 2 files changed, 369 insertions(+), 309 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index 28929946..c0424f81 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -508,3 +508,57 @@ @article{choi_cfhtlens_2016 year = {2016}, pages = {3737--3754}, } + +@article{applegate_weighing_2014, + title = {Weighing the {Giants} {\textendash} {III}. {Methods} and measurements of accurate galaxy cluster weak-lensing masses}, + volume = {439}, + issn = {0035-8711}, + url = {https://academic.oup.com/mnras/article/439/1/48/963939}, + doi = {10.1093/mnras/stt2129}, + number = {1}, + journal = {Mon Not R Astron Soc}, + author = {Applegate, Douglas E. and von der Linden, Anja and Kelly, Patrick L. and Allen, Mark T. and Allen, Steven W. and Burchat, Patricia R. and Burke, David L. and Ebeling, Harald and Mantz, Adam and Morris, R. Glenn}, + month = mar, + year = {2014}, + pages = {48--72}, +} + +@article{polsterer_dealing_2016, + title = {Dealing with {Uncertain} {Multimodal} {Photometric} {Redshift} {Estimations}}, + volume = {12}, + issn = {1743-9213, 1743-9221}, + url = {https://www.cambridge.org/core/journals/proceedings-of-the-international-astronomical-union/article/dealing-with-uncertain-multimodal-photometric-redshift-estimations/28C34F4C86E013E752580331784A965A}, + doi = {10.1017/S1743921316013089}, + number = {S325}, + journal = {Proceedings of the International Astronomical Union}, + author = {Polsterer, Kai L.}, + month = oct, + year = {2016}, + pages = {156--165}, +} + +@article{amaro_metaphor:_2016, + title = {{METAPHOR}: {Probability} density estimation for machine learning based photometric redshifts}, + volume = {12}, + issn = {1743-9213, 1743-9221}, + shorttitle = {{METAPHOR}}, + url = {https://www.cambridge.org/core/journals/proceedings-of-the-international-astronomical-union/article/metaphor-probability-density-estimation-for-machine-learning-based-photometric-redshifts/2E414C2A511237966DF4D235C0363679}, + doi = {10.1017/S1743921317002186}, + number = {S325}, + journal = {Proceedings of the International Astronomical Union}, + author = {Amaro, V. and Cavuoti, S. and Brescia, M. and Vellucci, C. and Tortora, C. and Longo, G.}, + month = oct, + year = {2016}, + pages = {197--200}, +} + +@article{hoyle_dark_2017, + title = {Dark {Energy} {Survey} {Year} 1 {Results}: {Redshift} distributions of the weak lensing source galaxies}, + shorttitle = {Dark {Energy} {Survey} {Year} 1 {Results}}, + url = {http://arxiv.org/abs/1708.01532}, + journal = {arXiv:1708.01532 [astro-ph]}, + author = {Hoyle, B. and Gruen, D. and Bernstein, G. M. and Rau, M. M. and De Vicente, J. and Hartley, W. G. and Gaztanaga, E. and DeRose, J. and Troxel, M. A. and Davis, C. and Alarcon, A. and MacCrann, N. and Prat, J. and S{\'a}nchez, C. and Sheldon, E. and Wechsler, R. H. and Asorey, J. and Becker, M. R. and Bonnett, C. and Rosell, A. Carnero and Carollo, D. and Kind, M. Carrasco and Castander, F. J. and Cawthon, R. and Chang, C. and Childress, M. and Davis, T. M. and Drlica-Wagner, A. and Gatti, M. and Glazebrook, K. and Gschwend, J. and Hinton, S. R. and Hoormann, J. K. and Kim, A. G. and King, A. and Kuehn, K. and Lewis, G. and Lidman, C. and Lin, H. and Macaulay, E. and Maia, M. A. G. and Martini, P. and Mudd, D. and M{\"o}ller, A. and Nichol, R. C. and Ogando, R. L. C. and Rollins, R. P. and Roodman, A. and Ross, A. J. and Rozo, E. and Rykoff, E. S. and Samuroff, S. and Sevilla-Noarbe, I. and Sharp, R. and Sommer, N. E. and Tucker, B. E. and Uddin, S. A. and Varga, T. N. and Vielzeuf, P. and Yuan, F. and Zhang, B. and Abbott, T. M. C. and Abdalla, F. B. and Allam, S. and Annis, J. and Bechtol, K. and Benoit-L{\'e}vy, A. and Bertin, E. and Brooks, D. and Buckley-Geer, E. and Burke, D. L. and Busha, M. T. and Capozzi, D. and Carretero, J. and Crocce, M. and D'Andrea, C. B. and da Costa, L. N. and DePoy, D. L. and Desai, S. and Diehl, H. T. and Doel, P. and Eifler, T. F. and Estrada, J. and Evrard, A. E. and Fernandez, E. and Flaugher, B. and Fosalba, P. and Frieman, J. and Garc{\'i}a-Bellido, J. and Gerdes, D. W. and Giannantonio, T. and Goldstein, D. A. and Gruendl, R. A. and Gutierrez, G. and Honscheid, K. and James, D. J. and Jarvis, M. and Jeltema, T. and Johnson, M. W. G. and Johnson, M. D. and Kirk, D. and Krause, E. and Kuhlmann, S. and Kuropatkin, N. and Lahav, O. and Li, T. S. and Lima, M. and March, M. and Marshall, J. L. and Melchior, P. and Menanteau, F. and Miquel, R. and Nord, B. and O'Neill, C. R. and Plazas, A. A. and Romer, A. K. and Sako, M. and Sanchez, E. and Santiago, B. and Scarpine, V. and Schindler, R. and Schubnell, M. and Smith, M. and Smith, R. C. and Soares-Santos, M. and Sobreira, F. and Suchyta, E. and Swanson, M. E. C. and Tarle, G. and Thomas, D. and Tucker, D. L. and Vikram, V. and Walker, A. R. and Weller, J. and Wester, W. and Wolf, R. C. and Yanny, B. and Zuntz, J.}, + month = aug, + year = {2017}, + note = {arXiv: 1708.01532}, +} diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index 6dca86c7..c54c3fbe 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -29,30 +29,30 @@ \begin{abstract} -Upcoming and ongoing galaxy surveys will and do produce redshift probability -distribution functions (PDFs) in addition to traditional photometric redshift -(photo-$z$) point estimates. +Modern galaxy surveys produce redshift probability distribution functions +(PDFs) in addition to traditional photometric redshift (photo-$z$) point +estimates. However, the storage of \pz s may present a challenge with increasingly large catalogs, as we face a trade-off between the accuracy of subsequent science -measurements and the storage cost. -This paper presents \qp, a Python package facilitating manipulation of -approximations of 1-dimensional PDFs, as suitable for \pz s. +measurements and the limitation of finite storage resources. +This paper presents \qp, a Python package for manipulating parametrizations of +1-dimensional PDFs, as suitable for \pz\ compression. We use \qp\ to investigate the performance of three simple PDF storage formats on two realistic mock datasets, representative of upcoming surveys with -different data qualities, as a function of the number of stored parameters per -\pz, using metrics of both individual \pz s and an estimator of the overall -redshift distribution function. +different data qualities. +Based on metrics of individual \pz s and an estimator of the overall redshift +distribution function, as an example of a science use case, as a function of +the number of stored parameters per \pz, we make recommendations for best +practices in choosing \pz\ approximation schemes. \end{abstract} -\dockeys{methods: data analysis, catalogs, surveys} +\dockeys{methods: statistical, methods: miscellaneous, astronomical databases: +miscellaneous, catalogs, galaxies: distances and redshifts} \maketitlepost - - - \section{Introduction} \label{sec:intro} @@ -60,55 +60,57 @@ \section{Introduction} Upcoming wide-field imaging surveys such as the Large Synoptic Survey Telescope (LSST)\footnote{\url{https://www.lsst.org/}}\citep{ivezic_lsst:_2008} will observe tens of billions of galaxies photometrically, without follow-up -spectroscopy, as ongoing surveys, including the Kilo-Degree Survey -(KiDS)\footnote{\url{http://kids.strw.leidenuniv.nl/}}, Hyper Suprime-Cam -Subary Strategic Program (HSC)\footnote{\url{http://hsc.mtk.nao.ac.jp/ssp/}}, -and Dark Energy Survey (DES)\footnote{\url{https://www.darkenergysurvey.org/}}, -have been doing at a scale three orders of magnitude smaller for the past -decade. +spectroscopy. +Over the past decade, the Kilo-Degree +Survey\footnote{\url{http://kids.strw.leidenuniv.nl/}}, Hyper Suprime-Cam +Subaru Strategic Program\footnote{\url{http://hsc.mtk.nao.ac.jp/ssp/}}, and +Dark Energy Survey\footnote{\url{https://www.darkenergysurvey.org/}} have paved +the way for LSST via similar survey strategies on tens of millions of galaxies. Studies of precision cosmology and galaxy evolution with the anticipated data will thus rely almost exclusively on the method of photometric redshift (photo-$z$) estimation. Photo-$z$s are subject to a number of systematic errors, some caused by the estimation procedures and others intrinsic to the data itself. -The photo-$z$ community has come to favor methods that provide a redshift -probability distribution function (PDF) that includes information about the -potential for such systematic errors for each galaxy in the survey -\citep{tanaka_photometric_2017, jong_third_2017, sheldon_photometric_2012}. +For the purpose of producing public photo-$z$ catalogs, the redshift estimation +community has thus come to favor methods that provide a photo-$z$ probability +distribution function (PDF) conveying the potential for such systematic errors +for each galaxy in the survey \citep{tanaka_photometric_2017, jong_third_2017, +sheldon_photometric_2012}. Given that the \pz\ catalogs of ongoing surveys already include $\sim10^{7}$ -galaxies and that those of upcoming surveys will include $\sim10^{10}$ -galaxies, storage of these probability distributions involves making difficult -decisions. -Each survey seeks to balance accuracy against resource footprint in creating a -catalog of \pz s made available to the scientific community. -For example, the \pz\ catalog that LSST will release will be limited to -$\sim100$ floating point numbers per galaxy \citep[section -4.2.2]{juric_data_2017}, with plans to store \pz s derived by multiple methods. -Furthermore, the problem of storing PDFs is not unique to cosmology missions; -Gaia\footnote{\url{https://www.gaia-eso.eu/}}, so an approach to optimizing the -choice of storage parametrization could have a beneficial impact elsewhere in -astronomy. - -The question of \pz\ approximation for large surveys was first addressed in -\citet{carrasco_kind_sparse_2014} in the context of a single galaxy survey, a -limited set of \pz\ approximation schemes, and metrics appropriate for -deterministic, not probabilistic, objects. -However, we expect the choice of \pz\ approximation, and the number of stored -parameters associated with it, will depend on the science case and its -requirements on \pz\ accuracy: different science cases will need different -accuracy metrics. +galaxies, and that those of upcoming surveys will include $\sim10^{10}$ +galaxies, storage of these probability distributions must balance of accuracy +of the catalog against limited storage resources. +For example, the public catalog that LSST will release will be limited to +$\sim100$ floating point numbers per galaxy for all redshift information +\citep[Section 4.2.2]{juric_data_2017}, with plans to store \pz s derived by +multiple methods. +Furthermore, the problem of storing PDFs is not unique to galaxy surveys. +Gaia\footnote{\url{https://www.gaia-eso.eu/}}, for example, has committed to +providing a catalog of PDFs of stellar properties inclding velocities, so an +approach to optimizing the choice of PDF storage parametrization could benefit +astronomy more broadly. + +\citet{carrasco_kind_sparse_2014} first addressed the question of approximating +\pz s in the context of a single galaxy survey and metrics applicable to +deterministic, not probabilistic, data products. +However, we expect the optimal choice of \pz\ storage approximation to depend +on the intended science applications and their requirements on \pz\ accuracy +and the properties of the anticipated \pz s. +Different science cases will need different metrics, and different formats may +be appropriate for different datasets. In this paper, we address the question of \textit{how} these choices should be -made in general, by providing the publicly available \qp\ Python -package\footnote{\url{https://github.com/aimalz/qp}} to enable each survey to +made, by providing the publicly available \qp\ Python +package\footnote{\url{https://github.com/aimalz/qp}} enabling each survey to optimize their \pz\ approximation via mathematically motivated and science-driven metrics. -We demonstrate this approach on two sets of realistic mock data. +We demonstrate this approach on two sets of realistic mock data in the context +of LSST. In Section~\ref{sec:methods}, we outline how \qp\ can be used to optimize the choice of \pz\ parametrization. -In Section~\ref{sec:data}, we describe the mock datasets on which we perform -such an analysis. +In Section~\ref{sec:data}, we describe the mock datasets on which we +demonstrate such an analysis. We present the results of this procedure in Section~\ref{sec:results} and make recommendations for the use of \qp\ by the photo-$z$ community in Section~\ref{sec:conclusions}. @@ -117,177 +119,182 @@ \section{Methods} \label{sec:methods} -We have developed the \qp\ Python package to facilitate the parametrization and -approximation of one-dimensional PDFs, including \pz s. -A \texttt{qp.PDF} object can carry a number of different parametrizations, each -associated with a representation. -Conversions between parametrizations are facilitated by the +We have developed the \qp\ Python package to facilitate the approximation of +one-dimensional PDFs, including \pz s, and comparisons between approximations. +A \texttt{qp.PDF} object is associated with sets of parameters for each +approximation considered. +Conversions between approximations are facilitated by the \texttt{numpy}\footnote{\url{http://www.numpy.org/}}, \texttt{scipy} \footnote{\url{https://www.scipy.org/}}, and \texttt{scikit-learn}\footnote{\url{http://scikit-learn.org}} \citep{pedregosa_scikit-learn:_2011} tools. The currently supported parametrizations are described in Section~\ref{sec:approx}. -The \qp\ package also provides a few built-in metrics of the accuracy of a -representation of a PDF relative to a given parametrization that has been -designated as the reference representation. + +The \qp\ package also provides a few built-in metrics for the accuracy of a +representation of a PDF relative to a given reference representation. Built-in plots are made using \texttt{matplotlib}\footnote{\url{https://matplotlib.org/}}. -The currently implemented metrics are described in Section~\ref{sec:metric}. +A subset of the included metrics are described in Section~\ref{sec:metric}. + Catalog-level manipulations are performed using the \texttt{qp.Ensemble} class -that provides a wrapper for parallelized operations over collections of -\texttt{qp.PDF} objects; parallelization is facilitated by the \texttt{pathos} +that serves as a wrapper for operations over collections of \texttt{qp.PDF} +objects. +Parallelization is facilitated by the \texttt{pathos} \footnote{\noindent\url{http://trac.mystic.cacr.caltech.edu/project/pathos/wiki. html}} \citep{mckerns_building_2012, mckerns_pathos:_2010} package. \subsection{Approximation Methods} \label{sec:approx} -First, we establish a vocabulary for the definitions of approximation methods. +First, we establish a vocabulary for the approximations. Each \textit{parametrization} of a \pz\ is defined in terms of the -\textit{format} function $\mathcal{F}$, \textit{metaparameters} $\vec{C}$, and -\textit{parameters} $\vec{c}$. +\textit{parameters} $\vec{c}$ unique to its catalog entry, the +\textit{metaparameters} $\vec{C}$ shared over the whole catalog, and the +\textit{format} function $\mathcal{F}$ that reconstructs a PDF from its +parameters and metaparameters. A parametrization in turn corresponds to a \textit{representation} \begin{align} \label{eq:definition} \hat{p}^{\mathcal{F}, \vec{C}, \vec{c}}(z) &\equiv \mathcal{F}_{\vec{C}}(z; \vec{c}) \end{align} -of the \pz, denoted as $\hat{p}(z)$ for brevity. -We often employ interpolation schemes with a generic interpolator function -$F_{\vec{C}'}(z; \vec{c})$ that comes with its own metaparameters $\vec{C}'$. -\qp\ supports all interpolation options available to the -\texttt{scipy.interpolate.interp1d} function as well as many other -\texttt{scipy.interpolate} functions, but we choose a default interpolation -scheme for each format that maximizes the fidelity of the approximations to the -original, high-resolution PDFs. - -\qp\ supports conversion of \pz\ approximations between five formats: step -functions, samples, quantiles, evaluations, and mixture model components. -These formats may be associated with any number $N_{f}$ of stored parameters -$c_{i}$ per \pz, which are presumed to be floating point numbers unless -otherwise specified. -Meanwhile, the metaparameters $C_{i}$ are the set of numbers necessary to -convert the stored \pz\ parameters $\vec{c}$ into a PDF over redshift. +of the approximated \pz, denoted as $\hat{p}(z)$ for brevity. +The \textit{dimensionality} of $\vec{c}$ is the number $N_{f}$ of stored +parameters per \pz, which are presumed to be scalar numbers unless otherwise +specified. +The number of elements of $\vec{C}$ is of little importance so long as the +metaparameters can be stored outside the catalog entries. + +\qp\ currently supports conversion of \pz\ approximations between five formats: +step functions, samples, quantiles, evaluations, and mixtures of +\texttt{scipy.rv\_continuous} objects. +When the format function is not specified by the approximation, we refer to a +generic interpolator function $F_{\vec{C}'}(z; \vec{c}, \mathcal{F}_{\vec{C}})$ +with its own metaparameters $\vec{C}'$, which must be chosen by the researcher. +\qp\ supports numerous interpolation schemes, including several from the +popular \texttt{scipy.interpolate} library. + In this work we consider special cases of three of these formats as candidates for large survey \pz\ catalog storage: regular binning (Section~\ref{sec:bins}), random samples (Section~\ref{sec:samples}), and -regular quantiles (Section~\ref{sec:quantiles}), while the other two, -evaluations and mixture models, are used solely for internal manipulations -within \qp. +regular quantiles (Section~\ref{sec:quantiles}). +These formats are illustrated on a multimodal PDF in Figure~\ref{fig:qp}. +\begin{figure} + \begin{center} + \includegraphics[width=\columnwidth]{figures/demo_pz.pdf} + \caption{\qp\ approximation of a continuous 1-dimensional PDF (thick, solid +gray line) using: the step function (orange dotted line), samples (green +dash-dotted line), and quantile formats (purple dashed line) with the same +number of stored parameters ($N_{f}=7$ in this case). + \label{fig:qp}} + \end{center} +\end{figure} -We have not yet included the +In spite of its impressive compression properties, we have not yet included the \texttt{SparsePz}\footnote{\url{https://github.com/mgckind/SparsePz}} sparse -basis representation of \citet{carrasco_kind_sparse_2014}, which uses a mixture -model of $N_{f}$ members of a library of $\sim10^{4}$ functions and has -impressive compression properties. +basis representation of \citet{carrasco_kind_sparse_2014}, in which the +parameters are the integer identifiers of $N_{f}$ mixture model components from +a library of $\sim10^{4}$ functions. We omit this format because decomposition with \texttt{SparsePZ} does not -enforce that the stored parametrization be a probability distribution in the -mathematical sense of nonnegativity and integration to unity. +enforce the condition that the representation be a probability distribution in +the mathematical sense of nonnegativity and integration to unity. While normalizing the integral of a positive semidefinite function is always possible (if the endpoints of integration are specified), one can motivate multiple schemes for enforcing nonnegativity that result in different reconstructions $\hat{p}(z)$. We postpone to future work the exploration of adaptations of non-positive semidefinite representations and inclusion of the sparse basis representation -in \qp, restricting ourselves to mixture models of -\texttt{scipy.stats.rv\_continuous} objects. +in \qp. -The various \qp\ formats are illustrated in Figure~\ref{fig:qp} on a multimodal -\pz\ with stored parameters. -\begin{figure} - \begin{center} - \includegraphics[width=\columnwidth]{figures/demo_pz.pdf} - \caption{\qp\ approximation of a continuous 1-dimensional PDF (solid black -line) using the step function (orange dotted line), samples (green dash-dotted -line), and quantile formats (purple dashed line) with the same number of stored -parameters ($N_{f}=7$ in this case). - \label{fig:qp}} - \end{center} -\end{figure} For each format, we address the following questions: \begin{itemize} - \item When/where has this format appeared in the literature as a published -catalog format, native \pz\ code output format, and science application input -format? - \item What exactly is stored under this format, per galaxy (the parameters) + \item When/where has the format appeared as a published catalog format, +native \pz\ code output format, and science application input format? + \item What exactly is stored under the format, per galaxy (the parameters) and per catalog (the metaparameters)? - \item Beyond fidelity to the original \pz, what are the a priori strengths -and weaknesses of this format? + \item What are the a priori strengths and weaknesses of the format? \end{itemize} \subsubsection{Regular Binning} \label{sec:bins} -By far the most popular format for approximating and storing \pz s is that of a -piecewise constant step function, also called a histogram binning -\citep{carrasco_kind_somz:_2014, sadeh_annz2:_2016, cavuoti_metaphor:_2017}. -It is the only format that has been used for public release of \pz\ catalogs -\citep{sheldon_photometric_2012, tanaka_photometric_2017, jong_third_2017}; it -is unclear whether this is a consequence or cause of the fact that it is the -most common format for using \pz s in cosmological inference, as tomographic -binning is a universal step between the \pz\ catalog and calculation of any -two-point correlation function. +By far the most popular format for approximating and storing \pz s is the +piecewise constant step function, also called a histogram binning. +It is the native output of a number of \pz\ codes +\citep{carrasco_kind_somz:_2014, sadeh_annz2:_2016, cavuoti_metaphor:_2017} and +the only format that has been used for public release of \pz\ catalogs +\citep{sheldon_photometric_2012, tanaka_photometric_2017, jong_third_2017}. The metaparameters of the binned parametrization are the ordered list of redshifts $\vec{C} = (z_{1}, z_{2}, \dots, z_{N_{f}}, z_{N_{f}+1})$ serving as bin endpoints shared by all galaxies in the catalog, each adjacent pair of -which is associated with a parameter $c_{i}=\int_{C_{i}}^{C_{i+1}}\ p(z)dz$. -The \qp\ histogram format assumes $p(z)=0$ when $zC_{N_{f}+1}$, -leading to the normalization condition $\sum_{i} c_{i}(C_{i+1}-C_{i})) = -1$.\footnote{Note that this is not generally equivalent to the erroneous -normalization condition $\sum_{i} c_{i} = 1$ commonly enforced in public -catalogs such as the Sloan Digital Sky Survey's Data Release 8 -\citep{sheldon_photometric_2012}; unless redshift is treated as discrete, the -oversimplified normalization condition only holds if -$C_{N_{f}}-C_{1}=N\delta_{f}$ (under a regular binning).} -The histogram format function $\mathcal{F}^{h}$ is the sum of a set of $N_{f}$ -step functions, making the reconstructed estimator of the \pz +which is associated with a parameter $c_{i} = \int_{C_{i}}^{C_{i+1}} p(z) dz$. +The \qp\ histogram format assumes $p(z)=0$ when $zC_{N_{f}+1}$ +and enforces the normalization condition\footnote{ +Note that this is not generally equivalent to the erroneous normalization +condition $\sum_{i} c_{i} = 1$ commonly enforced in public catalogs such as the +Sloan Digital Sky Survey's Data Release 8 \citep{sheldon_photometric_2012}. +Unless redshift is treated as a discrete variable, the oversimplified +normalization condition only holds if $C_{N_{f}+1} - C_{1} = N_{f} (C_{i+1} - +C_{i})$ for all $i$ (under a regular binning). +} +\begin{align} + \label{eq:normed} + \sum_{i} c_{i} (C_{i+1} - C_{i}) &= 1. +\end{align} +The histogram format function $\mathcal{F}^{h}$ is thus the sum of a set of +$N_{f}$ step functions, making the reconstructed estimator of the \pz \begin{align} \label{eq:binned} - \hat{p}^{h}(z) &= \sum_{i}^{N_{f}}\ c_{i} + \hat{p}^{h}(z) &= \sum_{i=1}^{N_{f}}\ c_{i} \left\{\begin{tabular}{cc}$1$&$C_{i} C_{i+1}$\end{tabular}\right\}, \end{align} where the step functions may be considered their own interpolators. -Here we only consider a regular binning, with $C_{i+1}=C_{i}+\delta_{f}$ for a -constant $\delta_{f}=(C_{N_{f}+1}-C_{1})/N_{f}$, as no irregular binning has -yet been used for a public catalog of \pz s, but this condition is not required -by \qp. - -The regular histogram format may be considered wasteful in terms of data -storage; a \pz\ with a very compact (broad) probability distribution may have -many parameters taking the same value $c_{i}\approx0$ -($c_{i}\approx(C_{N_{f}+1}-C_{1})\delta^{-1}$) that are redundant in storage. +Though \qp\ supports arbitrary bin ends, here we only consider a regular +binning, with $C_{i+1} = C_{i} + \delta$ for a constant $\delta = (C_{N_{f}+1} +- C_{1}) / N_{f}$, as no irregular binning has yet been used for a public +catalog of \pz s. + +In terms of performance as a \pz\ storage format, we should anticipate the +regular histogram format to be wasteful in terms of information content; a \pz\ +with a very broad (compact) probability distribution may have many parameters +taking the same value $c_{i} \approx (C_{N_{f}+1} - C_{1}) / \delta$ +($c_{i}\approx0$) that are redundant in storage. +Additionally, we should expect the fidelity of $\hat{p}^{h}(z)$ to depend +strongly on the bin widths relative to the sizes of and distances between +features in the \pz s. \subsubsection{Random Samples} \label{sec:samples} -Samples are the native output format of many machine learning algorithms due to -the discrete nature of training sets \citep{de_vicente_dnf_2016}. -Such approaches typically produce large numbers of samples, far more than can -realistically be stored by any survey, so a subsample is commonly stored. +Samples are often the native output format of machine learning algorithms due +to the discrete nature of training sets \citep{de_vicente_dnf_2016}. +Such approaches by default typically produce large numbers of samples, far more +than can realistically be stored by any survey, so are commonly compressed by +subsampling\citep{hoyle_dark_2017}. Samples are easy to use in standard science applications developed for redshift -point estimates, so they have an established presence in the literature -\citep{bonnett_redshift_2016}. -The samples format is used to store PDFs elsewhere in astronomy, including the +point estimates, so they have an established presence in the +literature\citep{bonnett_redshift_2016}. +The samples format of PDF storage appears elsewhere in astronomy, including the Gaia-ESO Survey's commitment to provide multi-dimensional PDFs of stellar parameters in the samples format \citep{bailer-jones_gaia_2013}. The parameters of the samples format are the $N_{f}$ samples $\vec{c}=(z_{1}, z_{2}, \dots, z_{N_{f}-1}, z_{N_{f}})$, where $C=N_{f}$ is an implicit metaparameter. -Though it is possible to construct a catalog where $C$ is not uniform over the -catalog, but is instead somehow optimized for each galaxy, we leave its +Though it is possible to construct a catalog where $N_{f}$ is not uniform over +the catalog, but is instead somehow optimized for each galaxy, we leave its investigation to future work, as it has not yet appeared in the literature. The format function $\mathcal{F}^{s}$ that turns samples into a representation -of the \pz\ is simply the interpolator $F$; in the tests presented here, we use -the Gaussian kernel density estimate (KDE) of -\texttt{scipy.stats.gaussian\_kde} with the smoothing bandwidth $C'$ as a -metaparameter. The samples representation is then +of the \pz\ is simply the interpolator $F$. +In the tests presented here, we use the Gaussian kernel density estimate (KDE) +of \texttt{scipy.stats.gaussian\_kde}. +The samples representation is then \begin{align} \label{eq:sampled} - \hat{p}^{s}(z) &= F_{C'}(z; \vec{c}). + \hat{p}^{s}(z) &= \mathrm{KDE}_{C'}(z; \vec{c}). \end{align} Though samples are an obvious choice for \pz s with narrow features of high @@ -301,31 +308,41 @@ \subsubsection{Regular Quantiles} \label{sec:quantiles} One parametrization that has not previously been investigated in the context of -photometric redshifts is that of quantiles, which are defined in terms of the -cumulative distribution function (CDF). -The quantile format for expressing a PDF, however, has appeared in the -astronomy literature \citep{sun_star_2015, pizzocaro_results_2016, +photometric redshifts is that of quantiles, though they have appeared elsewhere +in the astronomy literature \citep{sun_star_2015, pizzocaro_results_2016, laycock_x-ray_2017}. - -Under the quantile format, a \pz\ catalog shares $N_{f}$ ordered CDFs -$\vec{C}=(q_{1}, q_{2}, \dots, q_{N_{f}-1}, q_{N_{f}})$. -Each galaxy's catalog entry is the vector of redshifts $\vec{c}=(z_{1}, z_{2}, -\dots, z_{N_{f}-1}, z_{N_{f}})$ satisfying $CDF(c_{i})=C_{i}$, so the quantile -format function $\mathcal{F}_{q}$ is the derivative of an interpolation of the -inverse CDF $CDF^{-1}(C_{i})=c_{i}$ under the interpolation scheme $F$. -In this study, we test regular quantiles $C_{i}\equiv i(N_{f}+1)^{-1}$ using a -\texttt{scipy.interpolate} spline interpolation scheme in the quantile range -and linear extrapolation outside it. -The format function is then the convolution $\mathcal{F}^{q}=F(CDF^{-1})$, -making the quantile representation +The quantiles are defined in terms of the cumulative distribution function +(CDF), which is the antiderivative of the PDF. + +Under the quantile format, a \pz\ catalog shares $N_{f}$ ordered CDFs $\vec{C} += (q_{1}, q_{2}, \dots, q_{N_{f}-1}, q_{N_{f}})$ where $0 < q_{i} < 1$ for all +$i$. +In this study, we test regular quantiles $C_{i} \equiv i / (N_{f} + 1)$. +Each galaxy's catalog entry is the vector of redshifts $\vec{c} = (z_{1}, +z_{2}, \dots, z_{N_{f}-1}, z_{N_{f}})$ satisfying $\mathrm{CDF}(c_{i}) = +C_{i}$, so the quantile format function $\mathcal{F}^{q}$ is the derivative of +an interpolation $F$ of the CDF. +Our interpolator $F$ in the tests presented here is a nonnegative +\texttt{scipy.interpolate} spline at $z_{1} \leq z \leq z_{N_{f}}$ and linear +extrapolation subject to the normalization conditions of $\vec{C}$ elsewhere. +The quantile representation is thus \begin{align} \label{eq:quantiles} - \hat{p}^{q}(z) &= F\left(z; \vec{c}, -\frac{\Delta\vec{C}}{\Delta\vec{c}}\right). + \hat{p}^{q}(z) &= + \left\{ + \begin{tabular}{cc} + $\frac{d}{dz} \left[F(z; \vec{c}, \mathcal{F}^{q}_{\vec{C}})\right]$ & $c_{1} +\leq z \leq c_{N_{f}}$ \\ + $\hat{p}^{q}(c_{1})\left(\frac{\hat{p}^{q}(c_{1})}{2C_{1}} z - 1\right)$ & $z +< c_{1}$ \\ + $\hat{p}^{q}(c_{N_{f}})\left(1 - \frac{\hat{p}^{q}(c_{N_{f}})}{2(1 - +C_{N_{f}})} z\right)$ & $z > c_{N_{f}+1}$ + \end{tabular} + \right\}. \end{align} -A quantiles parametrization (the namesake of the \texttt{qp} code) is expected +The quantile parametrization (the namesake of the \texttt{qp} code) is expected to be an efficient approximation for \pz s because it allocates storage evenly in the space of probability density. In contrast, the histogram format stores data evenly spaced in redshift, and @@ -333,7 +350,7 @@ \subsubsection{Regular Quantiles} As with the samples representation, an interpolation function must be chosen for reconstructing the \pz\ from the stored parameters. Depending on the native \pz\ output format, converting to the quantile format -may require $N_{f}$ numerical optimizations to find the quantiles. +may require $N_{f}$ numerical optimizations. We accelerate these optimizations by initializing at rough, approximate quantiles based on CDF evaluations on a grid. @@ -344,26 +361,26 @@ \subsubsection{Regular Quantiles} \subsection{Comparison Metrics} \label{sec:metric} -In this work, our aim is to probe how closely \pz s reconstructed from limited -set of stored parameters approximate their original, high-resolution -representation. +We aim to probe how closely \pz s reconstructed from limited set of stored +parameters approximate their original, high-resolution representation. This is done without reference to a galaxy's true redshift; there is, in fact, no notion of a true redshift in our analysis. (For a demonstration of how one might approach the distinct problem of evaluating the accuracy of a \pz\ relative to a true redshift, see \citet{polsterer_uncertain_2016}, Schmidt, et al.\ in preparation.) -We consider as a metric the loss of information, measured in nats (base $e$ -bits), incurred when using an approximation of the PDF $\hat{P}(z)$ instead of -the best possible representation of the PDF $P(z)$, given by the -Kullback-Leibler divergence (KLD), which is defined as +We consider as a metric the loss of information incurred when using an +approximation of the PDF $\hat{P}(z)$ instead of the best possible +representation of the PDF $P(z)$, given by the Kullback-Leibler divergence +(KLD), which is defined as \begin{align} \label{eq:kld} \mathrm{KLD}[\hat{P}(z) | P(z)] &= \int_{-\infty}^{\infty}\ P(z)\ \log\left[\frac{P(z)}{\hat{P}(z)}\right]\ dz, \end{align} where $\log$ is the natural logarithm throughout this paper unless indicated -otherwise. +otherwise, such that the KLD is measured in nats (base $e$ digits, analogous to +base 2 bits). Because there is in general no closed-form expression for the KLD, we calculate the discrete KLD \begin{align} @@ -373,44 +390,44 @@ \subsection{Comparison Metrics} \log\left[\frac{P(z)}{\hat{P}(z)}\right] \end{align} using evaluations of the PDF under each format on a very fine, regular grid -$(z_{1}, z_{2}, \dots, z_{N_{ff}-1}, z_{N_{ff}})$ with resolution -$\delta_{ff}\ll\delta_{f}$. +$(z_{1}, z_{2}, \dots, z_{N_{ff}-1}, z_{N_{ff}})$ with resolution $\delta_{ff} +\ll \delta_{f}$. -The most important feature of the KLD is its asymmetry; it is not a distance, +The most important feature of the KLD is its asymmetry: it is not a distance, like the root mean square error, that is the same from $P(z)$ to $P'(z)$ as it -is from $P'(z)$ to $P(z)$ but a \textit{divergence} in the information lost -when using $P'(z)$ to approximate $P(z)$, or, in other words, the information -gain in going from $P'(z)$ to $P(z)$. +is from $P'(z)$ to $P(z)$. +It is a \textit{divergence} of the information lost when using $P'(z)$ to +approximate $P(z)$. The KLD requires that both functions $P(z)$ and $P'(z)$ be probability distributions (always positive semidefinite and integrating to unity); this may need to be explicitly enforced for some approximation formats. The KLD is always positive, and a smaller value indicates better agreement -between the approximation and the truth. -We review the properties of the KLD and provide some intuition for it in the -Appendix. +between the approximation and the reference PDF. +In the Appendix, we review the properties of the KLD and provide some intuition +for it. -Additionally, we employ the percent error +Additionally, we consider the percent error \begin{align} \label{eq:percent_error} - \mathrm{P.E.}[M_{m}[\hat{P}(z)] | M_{m}[P(z)]] &= \frac{M_{m}[P(z)] - -M_{m}[\hat{P}(z)]}{M_{m}[P(z)]}\times100\% + \Delta_{m}[\hat{P} | P] &= \frac{M_{m}[P] - +M_{m}[\hat{P}]}{M_{m}[P]}\times100\% \end{align} -of the moments +of the $m^{\mathrm{th}}$ moment \begin{align} \label{eq:moment} - M_{m}[P(z)] &= \int_{-\infty}^{\infty} z^{m}\ P(z)\ dz\ \approx\ + M_{m}[P] &= \int_{-\infty}^{\infty} z^{m}\ P(z)\ dz\ \approx\ \delta_{ff}\sum_{z=z_{1}}^{z_{N_{ff}}}\ z^{m}\ P(z) \end{align} of a PDF. -We note that $M_{0}[(P(z)]=1$ for all properly normalized probability -distributions, $M_{1}[(P(z)]=\bar{z}$ is the mean, $M_{2}[(P(z)]$ is the -variance, and $M_{3}[(P(z)]$ is the kurtosis. +We note that $M_{0}[P]=1$ for all properly normalized probability +distributions, $M_{1}[P]=\bar{z}$ is the \textit{mean}, $M_{2}[P]$ is the +\textit{variance}, and $M_{3}[P]$ is the \textit{kurtosis}. Though the first few moments are not in general sufficient to characterize a highly structured probability distribution, they are included in this analysis because they can prove useful in setting ballpark estimates of the influence of different systematics in various science cases. -\subsubsection{Individual \pz s} +\subsubsection{Individual \pz\ metrics} \label{sec:individual_metric} Some science applications rely on the recovery of individual galaxy \pz s that, @@ -422,10 +439,9 @@ \subsubsection{Individual \pz s} its $m=1,\ 2,\ 3$ moments. We also calculate the percent error on the $m=1,\ 2,\ 3$ moments of each \pz\ under all parametrizations and use the median and interquartile range of the -moment percent error distribution $p(M_{m}[\hat{p}_{i}(z)])$ of the ensemble as -another metric of the fidelity of individual \pz\ parametrizations. -We use these aggregate statistics to observe how the approximate individual \pz -s for each dataset vary with the choice of parametrization. +moment percent error distribution $p(M_{m}[\hat{p}_{i}])$ of the ensemble. +We use these aggregate statistics to observe the fidelity of individual \pz\ +approximations for each dataset as a function of parametrization. \subsubsection{Stacked $\hat{n}(z)$ estimator} \label{sec:stacked_metric} @@ -433,34 +449,33 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} In addition to considering how the choice of storage parametrization affects the recovery of individual \pz s, we also demonstrate how one might use \texttt{qp} to choose the best parametrization for a particular science case. -We encourage users to develop a metric around their own \pz\ use cases, as the -optimal parametrization may not be shared among all science applications of \pz -s. +We encourage \texttt{qp} users to develop a metric around their own \pz\ use +cases, as the optimal parametrization may not be shared among all science +applications of \pz s. In cosmology, \pz s have thus far been used almost exclusively to estimate the redshift distribution function $n(z)$ necessary for calculating the correlation functions used by many cosmological probes \citep{clampitt_galaxygalaxy_2017, hildebrandt_kids-450:_2017}. The most common way to estimate the redshift distribution function for a sample -of $N_{g}$ galaxies is to sum the \pz s according to +of $N_{g}$ galaxies is to average the \pz s according to \begin{align} \label{eq:nz} \hat{n}(z) &\equiv \frac{1}{N_{g}}\ \sum_{k=1}^{N_{g}}\ \hat{p}_{k}(z), \end{align} -a procedure known as stacking \citep{sheldon_photometric_2012, -harnois-deraps_kids-450:_2017}.\footnote{Sometimes Equation~\ref{eq:nz} has -been modified by weights specific to each galaxy based on the relative -prevalence of galaxies with similar photometry in a reference population -\citep{sheldon_photometric_2012, troster_cross-correlation_2017}.} -We refer to $\hat{n}(z)$ as the stacked estimator of the redshift distribution -and denote the stacked estimator derived from the original input \pz s as -$\hat{n}'(z)'$. +a procedure producing what we call the stacked estimator $\hat{n}(z)$ of the +redshift distribution function \citep{harnois-deraps_kids-450:_2017, +hoyle_dark_2017}.\footnote{ +Equation~\ref{eq:nz} is sometimes modified by weights specific to each galaxy +based on the relative prevalence of galaxies with similar photometry in a +reference population \citep{sheldon_photometric_2012, +troster_cross-correlation_2017} +} While we do not recommend this approach to estimating the redshift distribution (see \citet{choi_cfhtlens_2016} for justification and Malz et al., in -preparation for an alternative method), we use it here on the assumption that -any metric calculated for a more principled estimator will have similar -behavior with respect to the parametrization of the \pz\ catalog. -This assumption may be tested in future work. +preparation for an alternative method), we use it here to demonstrate +generically how one would optimize the choice of \pz\ parametrization around a +familiar science application. As the stacked estimator is normalized so that it, too, is a PDF, the KLD \textit{from} the stacked estimator of a catalog of evaluations of @@ -472,7 +487,7 @@ \subsubsection{Stacked $\hat{n}(z)$ estimator} error on the $m=1,\ 2,\ 3$ moments of $\hat{n}(z)$. However, this information may be less relevant due to the broad range of redshifts and small number of galaxies considered in each instantiation. -Furthermore, we note that the domination of the first few moments of +Furthermore, we note that the dominance of the first few moments of $\hat{n}(z)$ may not always hold true as the methodology of \pz\ usage in cosmology evolves. @@ -483,30 +498,33 @@ \section{Photo-z Test Data} With the expectation that the optimal parametrization for approximating \pz s may differ according to the properties of the original photometric data, we demonstrate a procedure for vetting \pz\ parametrizations on a pair of mock -datasets, each intended to be realistic projections of subsets of the +datasets, each intended to be realistic predictions of subsets of the anticipated LSST \pz s. -All \pz s were fit using the publicly available Bayesian Photometric Redshift -(BPZ) code \citep{benitez_bayesian_2000}, which employs spectral energy -distribution (SED) fitting to a template library. +All \pz s were fit to LSST 10-year $ugrizy$ magnitudes and errors +\citep{ivezic_lsst:_2008} using the publicly available Bayesian Photometric +Redshift (BPZ) code \citep{benitez_bayesian_2000}, which employs fitting to a +library of spectral energy distribution (SED) templates. The choice of \pz\ estimation method, however, is not relevant to this study; so long as the mock \pz s are \textit{realistically complex}, meaning they take shapes similar to those we expect to see in \pz s from real datasets with similar photometric properties, it does not matter whether the \pz s produced by BPZ are accurate redshift posteriors. -We seek only to optimize the fidelity of the stored \pz\ relative to the \pz\ -output by a representative \pz\ fitting code. -\citep[See][Schmidt, et al.\ in preparation, and Amaro, et al.\ in preparation -for other work comparing the accuracy of \pz s produced by different -methods.]{tanaka_photometric_2017, jong_third_2017} +We seek only to optimize the fidelity of the stored \pz\ relative to the +original \pz\ from a representative \pz\ fitting code. +\citep[See][Schmidt, et al.\ in preparation for other work comparing the +accuracy of \pz s produced by different methods.]{tanaka_photometric_2017, +jong_third_2017, amaro_metaphor:_2016} As BPZ is a widely used and well established method, we assume that the \pz s produced by it are of representative complexity. The default format of BPZ is a $N_{ff}>200$ gridded parametrization with -resolution exceeding the available storage for any planned survey. +resolution exceeding the available storage for an LSST-like survey. Because we believe that each galaxy has an underlying redshift interim posterior probability distribution that is a continuous function, to which the output of BPZ is itself a high-resolution approximation in the form of evaluations on a grid, we fit each gridded \pz\ with a Gaussian mixture model -that we designate as the reference representation for our accuracy tests. +that we designate as the reference representation for our tests. +The number of components of the mixture model is set to the $99^{\mathrm{th}}$ +percentile of the modality distribution of the \pz\ catalog in question. \begin{figure*} \begin{center} @@ -524,91 +542,75 @@ \section{Photo-z Test Data} \subsection{\Mgdata data mock catalog} \label{sec:graham} -Our first dataset is an $N_{g}=100,000$ object subset of the simulated galaxy -catalog used for LSST photometric redshift experiments by -\citet{graham_photometric_2017}. -The data builds on the Millennium simulation \citep{springel_simulations_2005}, -the galaxy formation models of \citet{gonzalez-perez_how_2014}, and the -lightcone construction techniques described by \citet{merson_lightcone_2013}. -Using the software of \citet{connolly_end--end_2014}, the observed apparent -magnitudes are simulated from the true catalog magnitudes by adding a normal -random scatter with a standard deviation equal to the predicted magnitude error -for each galaxy after 10 years of LSST observations from -\citet{ivezic_lsst:_2008}. +Our first dataset is an $N_{g} = 10^{5}$ object subset of the +\citet{graham_photometric_2017} simulated galaxy catalog used for LSST +photometric redshift experiments. +The data builds on the Millennium simulation of large-scale structure +\citep{springel_simulations_2005}, the galaxy formation models of +\citet{gonzalez-perez_how_2014}, and the lightcone construction techniques of +\citet{merson_lightcone_2013}. +The apparent $ugrizy$ magnitudes are derived from the true magnitudes using the +aforementioned 10-year LSST errors using the software of +\citet{connolly_end--end_2014}. The sample is limited to galaxies with a catalog $i$-band magnitude of $i<25$ and true redshifts $z<3.5$, omitting any magnitudes fainter than the predicted -10-year limiting magnitudes in each filter, $u<26.1$, $g<27.4$, $r<27.5$, -$z<26.1$, and $y<24.9$ to realistically simulate non-detections. - -The \pz\ estimates for this simulated catalog use the Vimos VLT Deep Survey set -of spectra \citep{fevre_vimos_2005}, as in \citet{ilbert_accurate_2006}, as BPZ -templates and the default parameter settings for BPZ, except that we impose a -maximum photometric redshift of 3.5 and allow BPZ to use the $i$-band magnitude -as a prior during the photo-$z$ fit. +10-year limiting magnitudes in each filter ($u<26.1$, $g<27.4$, $r<27.5$, +$z<26.1$, and $y<24.9$) to realistically simulate non-detections. + +The \pz\ estimates for this simulated catalog use BPZ templates based on the +VIsible MultiObject Spectrograph Very Large Telescope Deep Survey set of +spectra \citep{fevre_vimos_2005}, as in \citet{ilbert_accurate_2006}. +This catalog also uses the default parameter settings for BPZ with the two +additions of a photometric redshift maximum of 3.5 and an $i$-band magnitude +prior. The \pz s from BPZ are in the form of $N_{ff} = 351$ evaluations of the probability density on a regular grid of redshifts $0.01 < z < 3.51$, a -subsample of which are plotted in the left panel of -Figure~\ref{fig:example_pzs}. - +subsample of which are shown in the left panel of Figure~\ref{fig:example_pzs}. As the figure shows, the \pz s from this dataset tend to be unimodal and sharply peaked, as if coming from brighter photometric data due to the conservative cuts in photometric magnitudes of this dataset. -We produce reference \pz s for the analysis by fitting a three-component -Gaussian mixture model to each \pz\ in the catalog, where the number of -components was chosen to be the $99^{\mathrm{th}}$ percentile of the modality -distribution of the gridded \pz s. -We then calculate the three approximations to each \pz\ and evaluate their -accuracy using the metrics described above. +The brighter catalog reference \pz s are three-component Gaussian mixtures fir +to this data. \subsection{\Ssdata data mock catalog} \label{sec:schmidt} Our second dataset is an independent simulation of the expected LSST galaxy -sample. -Here, we use the Buzzard-highres-v1.0 mock galaxy catalog of deRose, et al.\ -(in preparation) of galaxies with SEDs drawn from an empirical library of -$\sim500,000$ SEDs from the Sloan Digital Sky Survey (SDSS). -Given an SED, redshift, and absolute $r$-band magnitude for each galaxy, we -compute the expected apparent magnitudes and magnitude errors in the six -broadband LSST filters ($ugrizy$), assuming the full 10-year depth of the -survey using the simple model of \citet{ivezic_lsst:_2008}. -The catalog contains $N_{g}\approx100,000$ galaxies $z<2.105$ to a depth of +sample, the Buzzard-highres-v1.0 mock galaxy catalog of deRose, et al.\ in +preparation of galaxies with SEDs drawn from an empirical library of +$\sim5\times10^{5}$ SEDs from the Sloan Digital Sky Survey (SDSS). +Given an SED, redshift, and absolute $r$-band magnitude for each galaxy, the +$ugrizy$ magnitudes are derived from the aforementioned 10-year LSST errors. +The catalog contains $N_{g} \approx 10^{5}$ galaxies $z<2.105$ to a depth of $i<26.9$, 1.5 magnitudes deeper than the expected LSST gold sample of galaxies -\citep{lsst_science_collaboration_lsst_2009}, that will have $S/N\gtrsim30$ in -multiple bands. +\citep{lsst_science_collaboration_lsst_2009}, that will have $S/N \gtrsim 30$ +in multiple bands. -In implementing BPZ, we createed a custom Bayesian prior using a subset of the -Buzzard-highres-v1.0 catalog and a spanning template set via a simple k-means -clustering algorithm based on $100$ of the SDSS SEDs used in creating the -Buzzard catalog. +We use a custom BPZ prior using a subset of the Buzzard-highres-v1.0 catalog +and a spanning template set via a simple k-means clustering algorithm based on +$100$ of the SDSS SEDs used to create the Buzzard catalog. BPZ produces \pz s in the format of probability density evaluations on a regular grid of $N_{ff}=211$ redshifts $0.005\leq z\leq2.105$, a subsample of which are plotted in the right panel of Figure~\ref{fig:example_pzs}. - -Even with six filters spanning the optical, there are known degeneracies -(e.~g.~the Lyman/Balmer break degeneracy) that lead us to expect the presence -of multimodal \pz s. -The exceptional depth of the dataset also leads us to expect the presence of -broad \pz s. -We produced reference \pz s for the analysis by fitting a five-component -Gaussian mixture model to each gridded \pz\ in the catalog, where the number of -components was chosen to equal the $99^{\mathrm{th}}$ percentile of the -modality distribution of the gridded \pz s. -We then calculated the three different approximations to each \pz, and -evaluated their accuracy using the metrics described above. +The exceptional depth and known degeneracies (e.~g.~the Lyman/Balmer break +degeneracy) lead us to expect the presence of multimodal \pz s observed in the +figure. +The fainter catalog reference \pz s are five-component Gaussian mixtures fit to +this data. \section{Results \& Discussion} \label{sec:results} -We calculate the metrics of Section~\ref{sec:metric} on 10 random -instantiations of catalogs of $N_{g}=100$ galaxies drawn randomly from each of -the datasets discussed in Section~\ref{sec:data} and with each of $N_{f}=3,\ -10,\ 30,\ 100$ stored parameters. +We evaluate the metrics of Section~\ref{sec:metric} on 10 random instantiations +of catalogs of $N_{g}=100$ galaxies drawn randomly from each of the datasets +discussed in Section~\ref{sec:data} and with each of $N_{f}=3,\ 10,\ 30,\ 100$ +stored parameters for the three formats of Section~\ref{sec:approx}. We then illustrate how our results could be used to choose an appropriate parametrization for each dataset given constraints on the distribution of KLDs or moment percent errors of individual \pz s, the KLD or moment percent error -of $\hat{n}(z)$, or the available storage capacity. +of a science metric ($\hat{n}(z)$ in this case), or the available storage +capacity. \subsection{Individual \pz s} @@ -984,23 +986,26 @@ \section{Conclusions \& Future Directions} representative of upcoming \pz\ catalogs and draw the following conclusions: \begin{itemize} \item Some general trends are shared among the datasets we used in our tests, -but much of the qualitative and quantitative behavior is different. +but much of the qualitative and quantitative behavior is different; the +properties of the \pz\ catalog influence the optimal compression scheme. \item The parametrization that best approximates individual \pz s may differ -from the parametrization that optimizes a given science metric. - \item Increasing the number of stored parameters reduces the loss of -information and percent error in the moments of the reconstructed \pz s, but -the marginal improvement is not always significant. +from the parametrization that optimizes a given science metric; the science +goals must motivate the metric that guides the choice of parametrization. + \item In our LSST-like examples with metrics motivated by gravitational +lensing probes of cosmology, the quantile format showed some promise, in some +cases even superceding samples, motivating further investigation; in contrast, +the histogram format, despite its popularity, underperformed relative to +samples and quantiles. \end{itemize} To be clear, we do not advocate for a one-size-fits-all solution to the problem -of compressing \pz\ catalogs and emphasize that the optimal choice depends on -the science metric(s) and characteristics of the data, and any decision should -account for the absolute, relative, and marginal behavior of the formats -considered as a function of the number of stored parameters. - -Though the histogram format has the strongest presence in the \pz\ literature, -it exhibits a higher loss of information and moment percent error of the -reconstructed \pz s, except when a very large number of parameters are stored, -so we do not recommend its use for LSST's \pz\ catalog. +of compressing \pz\ catalogs and emphasize that any decision should account for +the absolute, relative, and marginal behavior of the formats considered as a +function of the number of stored parameters. + +For the case of LSST, Though the histogram format has the strongest presence in +the \pz\ literature, it exhibits a higher loss of information and moment +percent error of the reconstructed \pz s, except when a very large number of +parameters are stored, so we do not recommend its use for LSST's \pz\ catalog. Given the constraint that LSST will be able to store only 200 floating point numbers to quantify the redshift of each galaxy and intends to include the results of several \pz\ codes, we can safely say that LSST can store the output @@ -1098,11 +1103,12 @@ \subsection*{Acknowledgments} This work was incubated at the 2016 LSST-DESC Hack Week hosted by Carnegie Mellon University. -The work of AIM was partially supported by the U.S. Department of Energy, -Office of Science, Office of Workforce Development for Teachers and Scientists, -Office of Science Graduate Student Research (SCGSR) program, administered by -the Oak Ridge Institute for Science and Education for the DOE under contract -number DE‐SC0014664. +AIM is advised by David Hogg and was supported by NSF grant AST-1517237. +The work of AIM was also supported by the U.S. Department of Energy, Office of +Science, Office of Workforce Development for Teachers and Scientists, Office of +Science Graduate Student Research (SCGSR) program, administered by the Oak +Ridge Institute for Science and Education for the DOE under contract number +DE‐SC0014664. The work of PJM was supported by the U.S. Department of Energy under contract number DE-AC02-76SF00515. SJS was partially supported by the National Science Foundation under grant From d6f18429917feb47c5e7899142b7980f439540f0 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 1 Nov 2017 11:54:30 -0400 Subject: [PATCH 94/96] final changes! --- .../main.bib | 8 +- .../main.tex | 267 ++++++++++-------- 2 files changed, 146 insertions(+), 129 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/main.bib b/docs/desc-0000-qp-photo-z_approximation/main.bib index c0424f81..ab19775d 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.bib +++ b/docs/desc-0000-qp-photo-z_approximation/main.bib @@ -96,7 +96,7 @@ @article{ivezic_lsst:_2008 shorttitle = {{LSST}}, url = {http://arxiv.org/abs/0805.2366}, journal = {arXiv:0805.2366 [astro-ph]}, - author = {Ivezic, Z. and Tyson, J. A. and Abel, B. and Acosta, E. and Allsman, R. and AlSayyad, Y. and Anderson, S. F. and Andrew, J. and Angel, R. and Angeli, G. and Ansari, R. and Antilogus, P. and Arndt, K. T. and Astier, P. and Aubourg, E. and Axelrod, T. and Bard, D. J. and Barr, J. D. and Barrau, A. and Bartlett, J. G. and Bauman, B. J. and Beaumont, S. and Becker, A. C. and Becla, J. and Beldica, C. and Bellavia, S. and Blanc, G. and Blandford, R. D. and Bloom, J. S. and Bogart, J. and Borne, K. and Bosch, J. F. and Boutigny, D. and Brandt, W. N. and Brown, M. E. and Bullock, J. S. and Burchat, P. and Burke, D. L. and Cagnoli, G. and Calabrese, D. and Chandrasekharan, S. and Chesley, S. and Cheu, E. C. and Chiang, J. and Claver, C. F. and Connolly, A. J. and Cook, K. H. and Cooray, A. and Covey, K. R. and Cribbs, C. and Cui, W. and Cutri, R. and Daubard, G. and Daues, G. and Delgado, F. and Digel, S. and Doherty, P. and Dubois, R. and Dubois-Felsmann, G. P. and Durech, J. and Eracleous, M. and Ferguson, H. and Frank, J. and Freemon, M. and Gangler, E. and Gawiser, E. and Geary, J. C. and Gee, P. and Geha, M. and Gibson, R. R. and Gilmore, D. K. and Glanzman, T. and Goodenow, I. and Gressler, W. J. and Gris, P. and Guyonnet, A. and Hascall, P. A. and Haupt, J. and Hernandez, F. and Hogan, C. and Huang, D. and Huffer, M. E. and Innes, W. R. and Jacoby, S. H. and Jain, B. and Jee, J. and Jernigan, J. G. and Jevremovic, D. and Johns, K. and Jones, R. L. and Juramy-Gilles, C. and Juric, M. and Kahn, S. M. and Kalirai, J. S. and Kallivayalil, N. and Kalmbach, B. and Kantor, J. P. and Kasliwal, M. M. and Kessler, R. and Kirkby, D. and Knox, L. and Kotov, I. and Krabbendam, V. L. and Krughoff, S. and Kubanek, P. and Kuczewski, J. and Kulkarni, S. and Lambert, R. and Guillou, L. Le and Levine, D. and Liang, M. and Lim, K.-T. and Lintott, C. and Lupton, R. H. and Mahabal, A. and Marshall, P. and Marshall, S. and May, M. and McKercher, R. and Migliore, M. and Miller, M. and Mills, D. J. and Monet, D. G. and Moniez, M. and Neill, D. R. and Nief, J.-Y. and Nomerotski, A. and Nordby, M. and O'Connor, P. and Oliver, J. and Olivier, S. S. and Olsen, K. and Ortiz, S. and Owen, R. E. and Pain, R. and Peterson, J. R. and Petry, C. E. and Pierfederici, F. and Pietrowicz, S. and Pike, R. and Pinto, P. A. and Plante, R. and Plate, S. and Price, P. A. and Prouza, M. and Radeka, V. and Rajagopal, J. and Rasmussen, A. and Regnault, N. and Ridgway, S. T. and Ritz, S. and Rosing, W. and Roucelle, C. and Rumore, M. R. and Russo, S. and Saha, A. and Sassolas, B. and Schalk, T. L. and Schindler, R. H. and Schneider, D. P. and Schumacher, G. and Sebag, J. and Sembroski, G. H. and Seppala, L. G. and Shipsey, I. and Silvestri, N. and Smith, J. A. and Smith, R. C. and Strauss, M. A. and Stubbs, C. W. and Sweeney, D. and Szalay, A. and Takacs, P. and Thaler, J. J. and Van Berg, R. and Berk, D. Vanden and Vetter, K. and Virieux, F. and Xin, B. and Walkowicz, L. and Walter, C. W. and Wang, D. L. and Warner, M. and Willman, B. and Wittman, D. and Wolff, S. C. and Wood-Vasey, W. M. and Yoachim, P. and Zhan, H. and Collaboration, for the LSST}, + author = {Ivezi{\'c}, {\v Z}eljko and Tyson, J. A. and Abel, B. and Acosta, E. and Allsman, R. and AlSayyad, Y. and Anderson, S. F. and Andrew, J. and Angel, R. and Angeli, G. and Ansari, R. and Antilogus, P. and Arndt, K. T. and Astier, P. and Aubourg, E. and Axelrod, T. and Bard, D. J. and Barr, J. D. and Barrau, A. and Bartlett, J. G. and Bauman, B. J. and Beaumont, S. and Becker, A. C. and Becla, J. and Beldica, C. and Bellavia, S. and Blanc, G. and Blandford, R. D. and Bloom, J. S. and Bogart, J. and Borne, K. and Bosch, J. F. and Boutigny, D. and Brandt, W. N. and Brown, M. E. and Bullock, J. S. and Burchat, P. and Burke, D. L. and Cagnoli, G. and Calabrese, D. and Chandrasekharan, S. and Chesley, S. and Cheu, E. C. and Chiang, J. and Claver, C. F. and Connolly, A. J. and Cook, K. H. and Cooray, A. and Covey, K. R. and Cribbs, C. and Cui, W. and Cutri, R. and Daubard, G. and Daues, G. and Delgado, F. and Digel, S. and Doherty, P. and Dubois, R. and Dubois-Felsmann, G. P. and Durech, J. and Eracleous, M. and Ferguson, H. and Frank, J. and Freemon, M. and Gangler, E. and Gawiser, E. and Geary, J. C. and Gee, P. and Geha, M. and Gibson, R. R. and Gilmore, D. K. and Glanzman, T. and Goodenow, I. and Gressler, W. J. and Gris, P. and Guyonnet, A. and Hascall, P. A. and Haupt, J. and Hernandez, F. and Hogan, C. and Huang, D. and Huffer, M. E. and Innes, W. R. and Jacoby, S. H. and Jain, B. and Jee, J. and Jernigan, J. G. and Jevremovic, D. and Johns, K. and Jones, R. L. and Juramy-Gilles, C. and Juric, M. and Kahn, S. M. and Kalirai, J. S. and Kallivayalil, N. and Kalmbach, B. and Kantor, J. P. and Kasliwal, M. M. and Kessler, R. and Kirkby, D. and Knox, L. and Kotov, I. and Krabbendam, V. L. and Krughoff, S. and Kubanek, P. and Kuczewski, J. and Kulkarni, S. and Lambert, R. and Guillou, L. Le and Levine, D. and Liang, M. and Lim, K.-T. and Lintott, C. and Lupton, R. H. and Mahabal, A. and Marshall, P. and Marshall, S. and May, M. and McKercher, R. and Migliore, M. and Miller, M. and Mills, D. J. and Monet, D. G. and Moniez, M. and Neill, D. R. and Nief, J.-Y. and Nomerotski, A. and Nordby, M. and O'Connor, P. and Oliver, J. and Olivier, S. S. and Olsen, K. and Ortiz, S. and Owen, R. E. and Pain, R. and Peterson, J. R. and Petry, C. E. and Pierfederici, F. and Pietrowicz, S. and Pike, R. and Pinto, P. A. and Plante, R. and Plate, S. and Price, P. A. and Prouza, M. and Radeka, V. and Rajagopal, J. and Rasmussen, A. and Regnault, N. and Ridgway, S. T. and Ritz, S. and Rosing, W. and Roucelle, C. and Rumore, M. R. and Russo, S. and Saha, A. and Sassolas, B. and Schalk, T. L. and Schindler, R. H. and Schneider, D. P. and Schumacher, G. and Sebag, J. and Sembroski, G. H. and Seppala, L. G. and Shipsey, I. and Silvestri, N. and Smith, J. A. and Smith, R. C. and Strauss, M. A. and Stubbs, C. W. and Sweeney, D. and Szalay, A. and Takacs, P. and Thaler, J. J. and Van Berg, R. and Berk, D. Vanden and Vetter, K. and Virieux, F. and Xin, B. and Walkowicz, L. and Walter, C. W. and Wang, D. L. and Warner, M. and Willman, B. and Wittman, D. and Wolff, S. C. and Wood-Vasey, W. M. and Yoachim, P. and Zhan, H. and Collaboration, for the LSST}, month = may, year = {2008}, note = {arXiv: 0805.2366}, @@ -137,7 +137,7 @@ @misc{juric_data_2017 shorttitle = {{LSE}-163}, url = {https://docushare.lsstcorp.org/docushare/dsweb/Get/LSE-163/}, journal = {LSST Corporation}, - author = {Juric, M. and Axelrod, T. and Becker, A. C. and Becla, J. and Bellm, E. and Bosch, J. F. and Ciardi, D. and Connolly, A. J. and Dubois-Felsmann, G. P. and Economou, F. and Freemon, M. and Gelman, M. and Graham, M. and Ivezic, Z. and Jenness, T. and Kantor, J. and Krughoff, K.S. and Lim, K.-T. and Lupton, R. H. and Mueller, F. and Nidever, D. and Patterson, M. and Petravick, D. and Shaw, D. and Slater, C. and Strauss, M. and Swinbank, J. and Tyson, J. A. and Wood-Vasey, M. and Wu, X.}, + author = {Juric, M. and Axelrod, T. and Becker, A. C. and Becla, J. and Bellm, E. and Bosch, J. F. and Ciardi, D. and Connolly, A. J. and Dubois-Felsmann, G. P. and Economou, F. and Freemon, M. and Gelman, M. and Graham, M. and Ivezi{\'c}, {\v Z}eljko and Jenness, T. and Kantor, J. and Krughoff, K.S. and Lim, K.-T. and Lupton, R. H. and Mueller, F. and Nidever, D. and Patterson, M. and Petravick, D. and Shaw, D. and Slater, C. and Strauss, M. and Swinbank, J. and Tyson, J. A. and Wood-Vasey, M. and Wu, X.}, month = jul, year = {2017}, } @@ -273,7 +273,7 @@ @article{lsst_science_collaboration_lsst_2009 title = {{LSST} {Science} {Book}, {Version} 2.0}, url = {http://arxiv.org/abs/0912.0201}, journal = {arXiv:0912.0201 [astro-ph]}, - author = {LSST Science Collaboration and Abell, Paul A. and Allison, Julius and Anderson, Scott F. and Andrew, John R. and Angel, J. Roger P. and Armus, Lee and Arnett, David and Asztalos, S. J. and Axelrod, Tim S. and Bailey, Stephen and Ballantyne, D. R. and Bankert, Justin R. and Barkhouse, Wayne A. and Barr, Jeffrey D. and Barrientos, L. Felipe and Barth, Aaron J. and Bartlett, James G. and Becker, Andrew C. and Becla, Jacek and Beers, Timothy C. and Bernstein, Joseph P. and Biswas, Rahul and Blanton, Michael R. and Bloom, Joshua S. and Bochanski, John J. and Boeshaar, Pat and Borne, Kirk D. and Bradac, Marusa and Brandt, W. N. and Bridge, Carrie R. and Brown, Michael E. and Brunner, Robert J. and Bullock, James S. and Burgasser, Adam J. and Burge, James H. and Burke, David L. and Cargile, Phillip A. and Chandrasekharan, Srinivasan and Chartas, George and Chesley, Steven R. and Chu, You-Hua and Cinabro, David and Claire, Mark W. and Claver, Charles F. and Clowe, Douglas and Connolly, A. J. and Cook, Kem H. and Cooke, Jeff and Cooray, Asantha and Covey, Kevin R. and Culliton, Christopher S. and de Jong, Roelof and de Vries, Willem H. and Debattista, Victor P. and Delgado, Francisco and Dell'Antonio, Ian P. and Dhital, Saurav and Di Stefano, Rosanne and Dickinson, Mark and Dilday, Benjamin and Djorgovski, S. G. and Dobler, Gregory and Donalek, Ciro and Dubois-Felsmann, Gregory and Durech, Josef and Eliasdottir, Ardis and Eracleous, Michael and Eyer, Laurent and Falco, Emilio E. and Fan, Xiaohui and Fassnacht, Christopher D. and Ferguson, Harry C. and Fernandez, Yanga R. and Fields, Brian D. and Finkbeiner, Douglas and Figueroa, Eduardo E. and Fox, Derek B. and Francke, Harold and Frank, James S. and Frieman, Josh and Fromenteau, Sebastien and Furqan, Muhammad and Galaz, Gaspar and Gal-Yam, A. and Garnavich, Peter and Gawiser, Eric and Geary, John and Gee, Perry and Gibson, Robert R. and Gilmore, Kirk and Grace, Emily A. and Green, Richard F. and Gressler, William J. and Grillmair, Carl J. and Habib, Salman and Haggerty, J. S. and Hamuy, Mario and Harris, Alan W. and Hawley, Suzanne L. and Heavens, Alan F. and Hebb, Leslie and Henry, Todd J. and Hileman, Edward and Hilton, Eric J. and Hoadley, Keri and Holberg, J. B. and Holman, Matt J. and Howell, Steve B. and Infante, Leopoldo and Ivezic, Zeljko and Jacoby, Suzanne H. and Jain, Bhuvnesh and R and Jedicke and Jee, M. James and Jernigan, J. Garrett and Jha, Saurabh W. and Johnston, Kathryn V. and Jones, R. Lynne and Juric, Mario and Kaasalainen, Mikko and Styliani and Kafka and Kahn, Steven M. and Kaib, Nathan A. and Kalirai, Jason and Kantor, Jeff and Kasliwal, Mansi M. and Keeton, Charles R. and Kessler, Richard and Knezevic, Zoran and Kowalski, Adam and Krabbendam, Victor L. and Krughoff, K. Simon and Kulkarni, Shrinivas and Kuhlman, Stephen and Lacy, Mark and Lepine, Sebastien and Liang, Ming and Lien, Amy and Lira, Paulina and Long, Knox S. and Lorenz, Suzanne and Lotz, Jennifer M. and Lupton, R. H. and Lutz, Julie and Macri, Lucas M. and Mahabal, Ashish A. and Mandelbaum, Rachel and Marshall, Phil and May, Morgan and McGehee, Peregrine M. and Meadows, Brian T. and Meert, Alan and Milani, Andrea and Miller, Christopher J. and Miller, Michelle and Mills, David and Minniti, Dante and Monet, David and Mukadam, Anjum S. and Nakar, Ehud and Neill, Douglas R. and Newman, Jeffrey A. and Nikolaev, Sergei and Nordby, Martin and O'Connor, Paul and Oguri, Masamune and Oliver, John and Olivier, Scot S. and Olsen, Julia K. and Olsen, Knut and Olszewski, Edward W. and Oluseyi, Hakeem and Padilla, Nelson D. and Parker, Alex and Pepper, Joshua and Peterson, John R. and Petry, Catherine and Pinto, Philip A. and Pizagno, James L. and Popescu, Bogdan and Prsa, Andrej and Radcka, Veljko and Raddick, M. Jordan and Rasmussen, Andrew and Rau, Arne and Rho, Jeonghee and Rhoads, James E. and Richards, Gordon T. and Ridgway, Stephen T. and Robertson, Brant E. and Roskar, Rok and Saha, Abhijit and Sarajedini, Ata and Scannapieco, Evan and Schalk, Terry and Schindler, Rafe and Schmidt, Samuel and Schmidt, Sarah and Schneider, Donald P. and Schumacher, German and Scranton, Ryan and Sebag, Jacques and Seppala, Lynn G. and Shemmer, Ohad and Simon, Joshua D. and Sivertz, M. and Smith, Howard A. and Smith, J. Allyn and Smith, Nathan and Spitz, Anna H. and Stanford, Adam and Stassun, Keivan G. and Strader, Jay and Strauss, Michael A. and Stubbs, Christopher W. and Sweeney, Donald W. and Szalay, Alex and Szkody, Paula and Takada, Masahiro and Thorman, Paul and Trilling, David E. and Trimble, Virginia and Tyson, Anthony and Van Berg, Richard and Berk, Daniel Vanden and VanderPlas, Jake and Verde, Licia and Vrsnak, Bojan and Walkowicz, Lucianne M. and Wandelt, Benjamin D. and Wang, Sheng and Wang, Yun and Warner, Michael and Wechsler, Risa H. and West, Andrew A. and Wiecha, Oliver and Williams, Benjamin F. and Willman, Beth and Wittman, David and Wolff, Sidney C. and Wood-Vasey, W. Michael and Wozniak, Przemek and Young, Patrick and Zentner, Andrew and Zhan, Hu}, + author = {LSST Science Collaboration and Abell, Paul A. and Allison, Julius and Anderson, Scott F. and Andrew, John R. and Angel, J. Roger P. and Armus, Lee and Arnett, David and Asztalos, S. J. and Axelrod, Tim S. and Bailey, Stephen and Ballantyne, D. R. and Bankert, Justin R. and Barkhouse, Wayne A. and Barr, Jeffrey D. and Barrientos, L. Felipe and Barth, Aaron J. and Bartlett, James G. and Becker, Andrew C. and Becla, Jacek and Beers, Timothy C. and Bernstein, Joseph P. and Biswas, Rahul and Blanton, Michael R. and Bloom, Joshua S. and Bochanski, John J. and Boeshaar, Pat and Borne, Kirk D. and Bradac, Marusa and Brandt, W. N. and Bridge, Carrie R. and Brown, Michael E. and Brunner, Robert J. and Bullock, James S. and Burgasser, Adam J. and Burge, James H. and Burke, David L. and Cargile, Phillip A. and Chandrasekharan, Srinivasan and Chartas, George and Chesley, Steven R. and Chu, You-Hua and Cinabro, David and Claire, Mark W. and Claver, Charles F. and Clowe, Douglas and Connolly, A. J. and Cook, Kem H. and Cooke, Jeff and Cooray, Asantha and Covey, Kevin R. and Culliton, Christopher S. and de Jong, Roelof and de Vries, Willem H. and Debattista, Victor P. and Delgado, Francisco and Dell'Antonio, Ian P. and Dhital, Saurav and Di Stefano, Rosanne and Dickinson, Mark and Dilday, Benjamin and Djorgovski, S. G. and Dobler, Gregory and Donalek, Ciro and Dubois-Felsmann, Gregory and Durech, Josef and Eliasdottir, Ardis and Eracleous, Michael and Eyer, Laurent and Falco, Emilio E. and Fan, Xiaohui and Fassnacht, Christopher D. and Ferguson, Harry C. and Fernandez, Yanga R. and Fields, Brian D. and Finkbeiner, Douglas and Figueroa, Eduardo E. and Fox, Derek B. and Francke, Harold and Frank, James S. and Frieman, Josh and Fromenteau, Sebastien and Furqan, Muhammad and Galaz, Gaspar and Gal-Yam, A. and Garnavich, Peter and Gawiser, Eric and Geary, John and Gee, Perry and Gibson, Robert R. and Gilmore, Kirk and Grace, Emily A. and Green, Richard F. and Gressler, William J. and Grillmair, Carl J. and Habib, Salman and Haggerty, J. S. and Hamuy, Mario and Harris, Alan W. and Hawley, Suzanne L. and Heavens, Alan F. and Hebb, Leslie and Henry, Todd J. and Hileman, Edward and Hilton, Eric J. and Hoadley, Keri and Holberg, J. B. and Holman, Matt J. and Howell, Steve B. and Infante, Leopoldo and Ivezi{\'c}, {\v Z}eljko and Jacoby, Suzanne H. and Jain, Bhuvnesh and R and Jedicke and Jee, M. James and Jernigan, J. Garrett and Jha, Saurabh W. and Johnston, Kathryn V. and Jones, R. Lynne and Juric, Mario and Kaasalainen, Mikko and Styliani and Kafka and Kahn, Steven M. and Kaib, Nathan A. and Kalirai, Jason and Kantor, Jeff and Kasliwal, Mansi M. and Keeton, Charles R. and Kessler, Richard and Knezevic, Zoran and Kowalski, Adam and Krabbendam, Victor L. and Krughoff, K. Simon and Kulkarni, Shrinivas and Kuhlman, Stephen and Lacy, Mark and Lepine, Sebastien and Liang, Ming and Lien, Amy and Lira, Paulina and Long, Knox S. and Lorenz, Suzanne and Lotz, Jennifer M. and Lupton, R. H. and Lutz, Julie and Macri, Lucas M. and Mahabal, Ashish A. and Mandelbaum, Rachel and Marshall, Phil and May, Morgan and McGehee, Peregrine M. and Meadows, Brian T. and Meert, Alan and Milani, Andrea and Miller, Christopher J. and Miller, Michelle and Mills, David and Minniti, Dante and Monet, David and Mukadam, Anjum S. and Nakar, Ehud and Neill, Douglas R. and Newman, Jeffrey A. and Nikolaev, Sergei and Nordby, Martin and O'Connor, Paul and Oguri, Masamune and Oliver, John and Olivier, Scot S. and Olsen, Julia K. and Olsen, Knut and Olszewski, Edward W. and Oluseyi, Hakeem and Padilla, Nelson D. and Parker, Alex and Pepper, Joshua and Peterson, John R. and Petry, Catherine and Pinto, Philip A. and Pizagno, James L. and Popescu, Bogdan and Prsa, Andrej and Radcka, Veljko and Raddick, M. Jordan and Rasmussen, Andrew and Rau, Arne and Rho, Jeonghee and Rhoads, James E. and Richards, Gordon T. and Ridgway, Stephen T. and Robertson, Brant E. and Roskar, Rok and Saha, Abhijit and Sarajedini, Ata and Scannapieco, Evan and Schalk, Terry and Schindler, Rafe and Schmidt, Samuel and Schmidt, Sarah and Schneider, Donald P. and Schumacher, German and Scranton, Ryan and Sebag, Jacques and Seppala, Lynn G. and Shemmer, Ohad and Simon, Joshua D. and Sivertz, M. and Smith, Howard A. and Smith, J. Allyn and Smith, Nathan and Spitz, Anna H. and Stanford, Adam and Stassun, Keivan G. and Strader, Jay and Strauss, Michael A. and Stubbs, Christopher W. and Sweeney, Donald W. and Szalay, Alex and Szkody, Paula and Takada, Masahiro and Thorman, Paul and Trilling, David E. and Trimble, Virginia and Tyson, Anthony and Van Berg, Richard and Berk, Daniel Vanden and VanderPlas, Jake and Verde, Licia and Vrsnak, Bojan and Walkowicz, Lucianne M. and Wandelt, Benjamin D. and Wang, Sheng and Wang, Yun and Warner, Michael and Wechsler, Risa H. and West, Andrew A. and Wiecha, Oliver and Williams, Benjamin F. and Willman, Beth and Wittman, David and Wolff, Sidney C. and Wood-Vasey, W. Michael and Wozniak, Przemek and Young, Patrick and Zentner, Andrew and Zhan, Hu}, month = dec, year = {2009}, note = {arXiv: 0912.0201}, @@ -357,7 +357,7 @@ @inproceedings{connolly_end--end_2014 doi = {10.1117/12.2054953}, booktitle = {Proceedings {SPIE}}, publisher = {International Society for Optics and Photonics}, - author = {Connolly, Andrew J. and Angeli, George Z. and Chandrasekharan, Srinivasan and Claver, Charles F. and Cook, Kem and Ivezic, Zeljko and Jones, R. Lynne and Krughoff, K. Simon and Peng, En-Hsin and Peterson, John and Petry, Catherine and Rasmussen, Andrew P. and Ridgway, Stephen T. and Saha, Abhijit and Sembroski, Glenn and vanderPlas, Jacob and Yoachim, Peter}, + author = {Connolly, Andrew J. and Angeli, George Z. and Chandrasekharan, Srinivasan and Claver, Charles F. and Cook, Kem and Ivezi{\'c}, {\v Z}eljko and Jones, R. Lynne and Krughoff, K. Simon and Peng, En-Hsin and Peterson, John and Petry, Catherine and Rasmussen, Andrew P. and Ridgway, Stephen T. and Saha, Abhijit and Sembroski, Glenn and vanderPlas, Jacob and Yoachim, Peter}, month = aug, year = {2014}, pages = {915014}, diff --git a/docs/desc-0000-qp-photo-z_approximation/main.tex b/docs/desc-0000-qp-photo-z_approximation/main.tex index c54c3fbe..51c4a4a6 100644 --- a/docs/desc-0000-qp-photo-z_approximation/main.tex +++ b/docs/desc-0000-qp-photo-z_approximation/main.tex @@ -362,13 +362,15 @@ \subsection{Comparison Metrics} \label{sec:metric} We aim to probe how closely \pz s reconstructed from limited set of stored -parameters approximate their original, high-resolution representation. +parameters approximate the original, high-resolution representation +$\hat{p}^{r}(z)$ of the reference catalog. This is done without reference to a galaxy's true redshift; there is, in fact, no notion of a true redshift in our analysis. (For a demonstration of how one might approach the distinct problem of evaluating the accuracy of a \pz\ relative to a true redshift, see \citet{polsterer_uncertain_2016}, Schmidt, et al.\ in preparation.) + We consider as a metric the loss of information incurred when using an approximation of the PDF $\hat{P}(z)$ instead of the best possible representation of the PDF $P(z)$, given by the Kullback-Leibler divergence @@ -402,7 +404,8 @@ \subsection{Comparison Metrics} distributions (always positive semidefinite and integrating to unity); this may need to be explicitly enforced for some approximation formats. The KLD is always positive, and a smaller value indicates better agreement -between the approximation and the reference PDF. +between the approximate representation $\hat{p}^{\mathcam{F}}(z)$ and the +reference representation $p^{r}(z)$. In the Appendix, we review the properties of the KLD and provide some intuition for it. @@ -522,7 +525,7 @@ \section{Photo-z Test Data} posterior probability distribution that is a continuous function, to which the output of BPZ is itself a high-resolution approximation in the form of evaluations on a grid, we fit each gridded \pz\ with a Gaussian mixture model -that we designate as the reference representation for our tests. +that we designate as the reference representation $p^{r}(z)$ for our tests. The number of components of the mixture model is set to the $99^{\mathrm{th}}$ percentile of the modality distribution of the \pz\ catalog in question. @@ -616,8 +619,8 @@ \section{Results \& Discussion} \subsection{Individual \pz s} \label{sec:individual_results} -We compare our three parametrizations on the basis of the distributions of the -KLD calculated for every \pz\ in the dataset. +We compare our three formats on the basis of the distributions of the KLD +calculated for every \pz\ in the dataset. An example of an individual \pz\ KLD distribution for the \mgdata dataset with $N_{f}=10$ is shown in Figure~\ref{fig:individual}. \begin{figure} @@ -672,6 +675,10 @@ \subsection{Individual \pz s} Figure~\ref{fig:kld_moments} is rich in information. For both datasets, the behavior of the first three log-moments of the log-KLD distribution is highly correlated for a given format and number of parameters. +The error bars on the log-KLD log-moments increase at high $N_{f}$ for all +formats on both datasets beyond what one would expect simply based on the log +scaling. + The \mgdata dataset has higher log-KLD log-moments than the \ssdata dataset at all $N_{f}$ and across all formats, meaning information loss is enhanced for more strongly featured data; this observation is not surprising because the @@ -681,18 +688,16 @@ \subsection{Individual \pz s} $N_{f}=3$ and $N_{f}=10$ parameters, but both datasets otherwise exhibit a steady decrease in all moments for the quantile and samples formats as $N_{f}$ increases. + The log-KLD log-moments are higher for quantiles than for samples for both datasets, except at $N_{f}=100$ for the \mgdata dataset; this is not an -unexpected result because the PDF reconstruction method for the quantile format -is most susceptible to error in the tails of the distribution, where the KLD -has the highest sensitivity. +unexpected result because our choice of PDF reconstruction method for the +quantile format is most susceptible to error in the tails of the distribution, +where the KLD has the highest sensitivity. The histogram format's log-KLD log-moments are higher than for other formats at the lowest $N_{f}$ and steadily decrease in a manner similar to the other formats, except at the highest $N_{f}$ values where the histogram format's log-KLD log-moments decrease much more quickly. -The error bars on the log-KLD log-moments increase at high $N_{f}$ for all -formats on both datasets beyond what one would expect simply based on the log -scaling. We also examine the percent error on the first three moments of the \pz s under each approximation, using the base-10 log for interpretability. @@ -716,7 +721,7 @@ \subsection{Individual \pz s} by the quantile format at all $N_{f}$. Right panel: The \ssdata \pz\ ensemble's moment percent errors are high for all formats at low $N_{f}$ but distinct at high $N_{f}$, with the quantile -format ultimately outperforming the samples and histogram formats. +format overall outperforming the samples and histogram formats. \label{fig:pz_moment_errs}} \end{center} \end{figure*} @@ -725,40 +730,36 @@ \subsection{Individual \pz s} exhibits significant correlation between the moments for a given parametrization, the behavior is otherwise markedly different from that of the log-moments of the \pz\ ensemble's log-KLD distribution. -The percent errors on the moments of the approximate \pz s are overall lower in +The percent errors of the moments of the approximate \pz s are overall lower in the \mgdata dataset than the \ssdata dataset over the same range of number of stored parameters; this is expected because there is simply less information to capture in the \mgdata dataset. For the \mgdata dataset, the quantile format enables sub-percent errors in \pz\ -moments at the lowest $N_{f}$, a level that cannot be achieved by the histogram -format until $N_{f}=100$ parameters are stored and by samples at fewer than -$N_{f}=100$ stored parameters. +moments at the lowest $N_{f}$, a level that cannot be achieved until $N_{f}>30$ +parameters for the histogram format and $N_{f}>100$ for the samples format. Furthermore, for the \mgdata dataset, the quantile format minimizes the percent -error at all $N_{f}$, whereas the samples format is better than the histogram -format at low $N_{f}$ but the histogram format is better than the samples +error at all $N_{f}$, whereas the samples format outperforms the histogram +format at low $N_{f}$ but the histogram format is outperforms the samples format at high $N_{f}$. Again, this behavior is expected of the narrow, unimodal \pz s of the \mgdata dataset because large histogram bins are ineffective at capturing small-scale structure and including more samples does not significantly improve preservation of such features. -Though the \ssdata dataset has an ordering of the percent error on the moments -at $N_{f}=3$ that is similar to that of the \mgdata dataset, all formats, not -just the histogram format, have shockingly high errors, meaning it is highly -inappropriate to use so few parameters for such a faint dataset even if it may -be acceptable for a brighter one. +The ordering of the moment percent error of all formats is the same for the +\ssdata dataset is the same as that of the \mgdata dataset at $N_{f}=3$. In the \ssdata dataset, the inclusion of $N_{f}=30$ parameters decreases the -percent error of the moments of the histogram format more significantly than -the quantile or samples formats, to the point that the histogram and quantiles -formats are comparable. +moment percent error of the histogram format more significantly than the +quantile or samples formats, to the point that the histogram and quantile +formats have comparable moment percent errors. At higher $N_{f}$ in the \ssdata dataset, the quantile and histogram formats continue to improve faster than the samples format, with the percent errors on the \pz\ moments being consistently lower for the quantile format than for the histogram format. -With the broad, multimodal \pz s of the \ssdata dataset, sub-percent accuracy -in the moments can only be achieved with $N_{f}\geq30$ with the quantile format -and $N_{f}=100$ with the histogram format. +The broad, multimodal \pz s of the \ssdata dataset enable achievement of +sub-percent accuracy in the moments only with $N_{f}\geq30$ under the quantile +format and $N_{f}=100$ with the histogram format. \subsection{Stacked $\hat{n}(z)$ estimator} \label{sec:stacked_results} @@ -780,14 +781,14 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \includegraphics[width=\columnwidth]{figures/stacked.pdf} \caption{An example of the stacked estimator of the redshift distribution, for a subsample of $N_{g}=100$ galaxies drawn from the \ssdata data mock -catalog and with just $N_{f}=10$ parameters used for each \pz; the small-scale +catalog and with $N_{f}=10$ parameters used for each \pz; the small-scale features are due to the small number of galaxies in the sample. The most striking characteristic of $\hat{n}(z)$ with a relatively small number of parameters on a small number of galaxies is the coarseness of the -histogram format (orange dotted line) relative to the quantile format (purple -dashed line) and samples format (green dash-dotted line), both of which are -fairly close to $\hat{n}(z)$ derived from evaluating the original, -high-resolution \pz s (thick gray line). +histogram format (orange dotted line) relative to the quantile (purple dashed +line) and samples (green dash-dotted line) formats, both of which are fairly +close to $\hat{n}(z)$ derived from evaluating the original, high-resolution \pz +s (thick gray line). \label{fig:stacked}} \end{center} \end{figure} @@ -803,18 +804,18 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \begin{center} \includegraphics[width=\columnwidth]{figures/graham_nz_kld.pdf} \includegraphics[width=\columnwidth]{figures/schmidt_nz_kld.pdf} - \caption{KLD between $\hat{n}(z)$ derived from approximate pz\ -representations and $\hat{n}(z)$ derived from the original, high-resolution -\pz s as a function of number $N_{f}$ of stored parameters, for the quantiles + \caption{The KLD between $\hat{n}(z)$ derived from approximate \pz\ +representations and $\hat{n}(z)$ derived from the original, high-resolution \pz +s, as a function of number $N_{f}$ of stored parameters, for the quantiles (purple dashed line), samples (green dash-dotted line), and histogram (orange -dotted line) formats, with shaded regions indicating the $1\sigma$ Gaussian -errors derived from 10 subsamples of 100 galaxies and lines indicating the mean -of the distribution. +dotted line) formats. + Shaded regions indicate the $1\sigma$ Gaussian errors derived from 10 +subsamples of 100 galaxies and lines indicate the mean of the distribution. Left panel: The \mgdata \pz\ catalog's KLD of $\hat{n}(z)$ is minimized by -the quantile format at all $N_{f}$ but with a larger scatter than other formats. +the quantile format at all $N_{f}$. Right panel: The \ssdata \pz\ catalog's KLD of $\hat{n}(z)$ is minimized by the quantile format at all $N_{f}$, though the samples format also has a -comparably low KLD with lower scatter. +comparably low KLD. \label{fig:kld}} \end{center} \end{figure*} @@ -823,8 +824,8 @@ \subsection{Stacked $\hat{n}(z)$ estimator} \item As expected, the KLD drops as the number of stored parameters increases, for all formats. \item The quantile format minimizes the KLD at all numbers of stored parameters -considered but has a larger variance between instantiations than the other -formats. +considered. (Note that the appearance of a larger error region is due to the +log scaling.) \item The histogram format leads to substantial loss of information relative to the other formats except at large numbers of stored parameters where it is comparable with the samples format. @@ -839,52 +840,50 @@ \subsection{Stacked $\hat{n}(z)$ estimator} dataset in our subsamples of 100 galaxies. \item The rate at which the KLD of $\hat{n}(z)$ improves with increasing $N_{f} $ is overall slower for the \mgdata dataset than for the \ssdata dataset; in -other words, saving more parameters has a greater marginal benefit for a -\ssdata dataset than for a \mgdata dataset. +other words, saving more parameters has a greater marginal benefit for the +\ssdata dataset than for the \mgdata dataset. \item The $\hat{n}(z)$ KLD for the samples format is not substantially higher -than for the quantile format for the \ssdata dataset but is for the \mgdata +than for the quantile format in the \ssdata dataset but is for the \mgdata dataset, which may reflect the subjectivity of the reconstruction scheme used for those two formats. \end{enumerate} We also address the relative, marginal, and absolute performance and -consistency thereof of the KLD on $\hat{n}$ for each parametrization as a +consistency thereof of the KLD on $\hat{n}(z)$ for each parametrization as a function of format and $N_{f}$ for each dataset. To guide this process, we interpret Figure~\ref{fig:kld} in the context of -constraints on the acceptable degree of information loss imposed by the science -requirements and constraints on storage allocation imposed by the survey. - -A constraint on the acceptable loss of information due to compression and -reconstruction of \pz s corresponds to a horizontal line at some -$\mathrm{KLD}_{\mathrm{lim}}$ in Figure~\ref{fig:kld}; the best parametrization -would correspond to the format that achieves $\mathrm{KLD}_{\mathrm{lim}}$ at -the lowest $N_{f}$. -For example, if $\mathrm{KLD}_{\mathrm{lim}}=10^{-2}$ nats, the quantile -parametrization with $N_{f}=3$ would be optimal due to the slow marginal -improvement of the $\hat{n}(z)$ KLD for the \mgdata dataset for the quantiles -and samples format and the high values of the KLD for the histogram format. -If the \ssdata dataset were subject to the same constraint, the quantile -parametrization with $N_{f}=10$ achieves the limiting KLD at the lowest -$N_{f}$, but the samples format achieves the same limit with a smaller scatter -at $N_{f}=30$ so might be considered more reliable. +constraints on storage allocation imposed by the survey and constraints on the +acceptable degree of information loss imposed by the science requirements, +which we anticipate establishing in the future. A constraint on storage resources corresponds to a vertical line at a given $N_{f, \mathrm{lim}}$ in Fig. \ref{fig:kld}; the best format would be the one that achieves the lowest KLD at $N_{f, \mathrm{lim}}$. For example, if $N_{f, \mathrm{lim}}=10$ stored parameters, the quantile format -would be optimal for the \mgdata dataset because it takes the lowest KLD value -by a large margin compared to other formats. +would be optimal for the \mgdata dataset because it has the lowest KLD value by +a large margin compared to other formats. If the \ssdata dataset were subject to the same constraint, the quantile and -samples formats would both be good candidates for a storage parametrization; -the quantile format would open up the possibility of a lower KLD, but the -smaller scatter of the samples format might have more value for some -applications. +samples formats would both be good candidates for a storage parametrization, +with the quantile format opening the possibility of a lower KLD. If there is some flexibility in the allocation of storage for \pz s, as is the case for LSST, it may be best to examine the asymptotic behavior of the KLD as a function of the number of stored parameters for each format considered; if the KLD can be significantly reduced with a slightly larger $N_{f}$, it may be possible to request additional storage capacity for the survey's \pz s. +A constraint on the acceptable loss of information due to compression and +reconstruction of \pz s corresponds to a horizontal line at some +$\mathrm{KLD}_{\mathrm{lim}}$ in Figure~\ref{fig:kld}; the best parametrization +would correspond to the format that achieves $\mathrm{KLD}_{\mathrm{lim}}$ at +the lowest $N_{f}$. +For example, if the brighter dataset has $\mathrm{KLD}_{\mathrm{lim}}=10^{-2}$ +nats, the quantile parametrization with $N_{f}=3$ would be optimal due to the +slow marginal improvement of the $\hat{n}(z)$ KLD of the quantiles and samples +format and the high KLD for the histogram format. +If the \ssdata dataset were subject to the same constraint, the quantile +parametrization with $N_{f}=10$ achieves $\mathrm{KLD}_{\mathrm{lim}}$ at the +lowest $N_{f}$. + We also calculate the percent error on the moments of the stacked estimator of @@ -925,23 +924,25 @@ \subsection{Stacked $\hat{n}(z)$ estimator} In the \mgdata dataset, the evolution of the $\hat{n}(z)$ moment errors with $N_{f}$ differs for the histogram format relative to the samples and quantile -formats; while the samples and quantile formats exhibit essentially no -evolution in excess of the error bars between instantiations, the histogram -format significantly underestimates the moments at low $N_{f}$, effectively +formats. +While the samples and quantile formats exhibit essentially no evolution in +excess of the error bars between instantiations, the histogram format +significantly underestimates the moments at low $N_{f}$, effectively approximates the moment errors at intermediate $N_{f}$, and overestimates them at high $N_{f}$. For $N_{f}=3$, the moments are grossly underestimated because most of the -probability density of $\hat{n}'(z)$ falls into the lowest single redshift bin -(explaining the higher moments), and the lowest redshift bin has most of the -probability density of $\hat{n}'(z)$ above the middle of the bin (explaining -the mean). +probability density of $\hat{n}^{r}(z)$ falls into the lowest single redshift +bin (explaining the higher moments), and the lowest redshift bin has most of +the probability density of $\hat{n}^{r}(z)$ above the middle of the bin +(explaining the mean). When the bins are too small, at $N_{f}=100$, those at high redshifts have most of their probability density below the middle of the bin, leading to slightly overestimated moments. Because the \pz s in the \mgdata dataset are so narrow and unimodal overall, the reconstructions of the samples and quantile parametrizations are highly -accurate where most of the probability density is even with low $N_{f}$, so the -$\hat{n}'(z)$ moments are consistently recovered to within $<1\%$. +accurate where most of the probability density is, even with low $N_{f}$, so +the reference representation moments are consistently recovered to within +$<1\%$. In the \ssdata dataset, the issues are different because the redshift range of the original \pz s is smaller and the \pz s themselves are broader. @@ -955,7 +956,7 @@ \subsection{Stacked $\hat{n}(z)$ estimator} that do not significantly affect the moments. The histogram format's overestimation of higher moments at low $N_{f}$ in the \ssdata dataset is caused by the bulk of the probability density of -$\hat{n}'(z)$ falling almost evenly into the two low redshift bins with far +$\hat{n}^{r}(z)$ falling almost evenly into the two low redshift bins with far less probability in the highest bin. As was hinted at in Figure~\ref{fig:kld_moments}, the quantile parametrization's \pz\ KLD distribution has large moments, and the KLD is most @@ -967,11 +968,13 @@ \subsection{Stacked $\hat{n}(z)$ estimator} The quantile format's overestimation of the moments even at high $N_{f}$ can be explained by the fact that it is not limited to the redshift range over which the original \pz s were defined, a possible oversight of the \qp\ -implementation; a broad \pz\ may be reconstructed with probability density -outside the redshift range of the original \pz s and then truncated and -normalized prior to stacking, and because broad \pz s are more likely to occur -at high redshift, this excess probability is more likely to be at high -redshift, slightly but consistently inflating the moments. +implementation. +A broad \pz\ may be reconstructed with probability density outside the redshift +range of the original \pz s and then truncated and normalized prior to +calculating the KLD. +Because broad \pz s are more likely to occur at high redshift, this excess +probability is more likely to be at high redshift, slightly but consistently +inflating the moments. \section{Conclusions \& Future Directions} @@ -986,33 +989,36 @@ \section{Conclusions \& Future Directions} representative of upcoming \pz\ catalogs and draw the following conclusions: \begin{itemize} \item Some general trends are shared among the datasets we used in our tests, -but much of the qualitative and quantitative behavior is different; the -properties of the \pz\ catalog influence the optimal compression scheme. +but much of the qualitative and quantitative behavior is different. + The properties of the \pz\ catalog influence the optimal compression scheme. \item The parametrization that best approximates individual \pz s may differ -from the parametrization that optimizes a given science metric; the science -goals must motivate the metric that guides the choice of parametrization. +from the parametrization that optimizes a given science metric. + The science goals must motivate the metric that guides the choice of +parametrization. \item In our LSST-like examples with metrics motivated by gravitational -lensing probes of cosmology, the quantile format showed some promise, in some -cases even superceding samples, motivating further investigation; in contrast, -the histogram format, despite its popularity, underperformed relative to -samples and quantiles. +lensing probes of cosmology, we confirm the expectation that regular binning +and uniform sampling in the space of probability is more effective than regular +binning in redshift. + This trend can only be enhanced as the quantile and sample reconstruction +schemes improve. \end{itemize} To be clear, we do not advocate for a one-size-fits-all solution to the problem of compressing \pz\ catalogs and emphasize that any decision should account for the absolute, relative, and marginal behavior of the formats considered as a function of the number of stored parameters. -For the case of LSST, Though the histogram format has the strongest presence in +For the case of LSST, though the histogram format has the strongest presence in the \pz\ literature, it exhibits a higher loss of information and moment percent error of the reconstructed \pz s, except when a very large number of parameters are stored, so we do not recommend its use for LSST's \pz\ catalog. -Given the constraint that LSST will be able to store only 200 floating point -numbers to quantify the redshift of each galaxy and intends to include the -results of several \pz\ codes, we can safely say that LSST can store the output -of more than one \pz\ code without risk of significant loss of information. -Had our results indicated a significant reduction in KLD for a small increase -in the number of stored parameters, we would present to decision-makers within -the collaboration evidence in support of increasing that allocation. +Given the constraint that LSST will be able to store only $\sim100$ numbers to +describe the redshift of each galaxy and intends to include the output of +several \pz\ codes, we can safely say that LSST can store the output of more +than one \pz\ code without risk of significant loss of information. +Had our results indicated a significant improvement in our metrics for a small +increase in the number of stored parameters, we would present to +decision-makers within the collaboration evidence in support of increasing that +allocation. Furthermore, though we discussed the previous use of each format in science calculations, we do not endorse the preference of any format on the basis of @@ -1021,13 +1027,15 @@ \section{Conclusions \& Future Directions} that best make use of the information in \pz s and encourage the community to then choose parametrizations that most effectively serve the needs of those intended practices. -Future analyses may also consider options we did not, such as new formats or -the storage of different numbers of parameters for each galaxy in the catalog. +Future analyses may also consider options we did not, such as additional +formats, new metrics, variable $N_{f}$ over the PDF ensemble, and improved +samples and quantile reconstruction procedures. + So that decisions of this kind can be optimized for all future surveys, the \qp\ Python package developed for this project is made public on GitHub as a tool for use by the broader community. -We invite contributions of additional reconstruction schemes, formats, and -metrics to the public GitHub repository. +We invite contributions of formats, metrics, and reconstruction schemes to the +public GitHub repository. \subsection*{Appendix} @@ -1063,41 +1071,50 @@ \subsection*{Appendix} Intuitively, precision must be related to how close $\sigma$ is to $\sigma_{0}$ and accuracy must be related to how close $\mu$ is to $\mu_{0}$. -If $\mu\approx\mu_{0}$, we can say $\mathrm{KLD}\sim\log[r] + \frac{1}{2}r^{-2} -- \frac{1}{2}$ where $r^{-1}\equiv\frac{\sigma_{0}}{\sigma}$ is a measure of -\textit{precision}, whose behavior is illustrated in -Figure~\ref{fig:precision}, alongside that of the RMSE. We observe that an -overestimated variance increases the KLD as the log of the square root of the -ratio of the estimated variance to the true variance. - \begin{figure} \begin{center} \includegraphics[width=\columnwidth]{figures/precision.pdf} - \caption{The KLD (solid black line) is proportional to the log of the -inverse precision $r$ for $\sigma>\sigma_{0}$, behavior that is qualitatively -similar to that of the RMSE (dotted black line). + \caption{The KLD and RMSE as a function of the root variance ratio $r$ for +a simple Gaussian example. + The KLD (solid line) rises sharply at $\sigma<\sigma_{0}$ and is +proportional to the log of the inverse precision $r$ for $\sigma>\sigma_{0}$, +behavior that is qualitatively similar to that of the RMSE (dotted line). \label{fig:precision}} \end{center} \end{figure} -When $\sigma\approx\sigma_{0}$, $\mathrm{KLD}\sim t^{2}$ in terms of the -\textit{tension} $t\equiv\frac{(\mu-\mu_{0})^{2}}{\sigma^{2}}$, whose -concordance is illustrated in Figure~\ref{fig:tension}. This behavior hints at -the KLD's sensitivity to the tails of a distribution, relative to the RMSE, -which does not continue increasing with tension. The notion of tension may be -more important for cosmological applications of \pz s, indicating the KLD is a -more appropriate metric than the RMSE. +If $\mu\approx\mu_{0}$, we can say $\mathrm{KLD}\sim\log[r] + \frac{1}{2}r^{-2} +- \frac{1}{2}$ where $r^{-1}\equiv\frac{\sigma_{0}}{\sigma}$ is a measure of +\textit{precision}, whose behavior is illustrated in +Figure~\ref{fig:precision}, alongside that of the RMSE. We observe that an +overestimated variance increases the KLD as the log of the square root of the +ratio of the estimated variance to the true variance. \begin{figure} \begin{center} \includegraphics[width=\columnwidth]{figures/tension.pdf} - \caption{The KLD (solid line) is equal to the square of the tension $t$, -with a small additive offset when $r\neq1$, whereas the RMSE (dotted line) is -relatively insensitive to tension past a certain point. + \caption{The KLD and RMSE as a function of the tension $t$ for a simple +Gaussian example. + The KLD (solid lines) is equal to the square of the tension $t$, with a +small offset when $r\neq1$, whereas the RMSE (dotted lines) is relatively +insensitive to tension past a certain point but more sensitive to $r\neq1$. \label{fig:tension}} \end{center} \end{figure} +When $\sigma\approx\sigma_{0}$, $\mathrm{KLD}\sim t^{2}$ in terms of the +\textit{tension} $t\equiv\frac{(\mu-\mu_{0})^{2}}{\sigma^{2}}$, whose +concordance is illustrated in Figure~\ref{fig:tension}. +There is some limiting tension $t_{\mathrm{lim}}\approx2$ below which the RMSE +is more sensitive than the KLD and above which the KLD is more sensitive than +the RMSE. +This behavior hints at the KLD's reputation for sensitivity to the tails of a +distribution. +The notion of tension may be more important for cosmological applications of +\pz s, indicating the KLD may be a more appropriate metric for coarser +approximations and the RMSE may be a more appropriate metric for less coarse +approximations. + \subsection*{Acknowledgments} From e463768863a250c8a441176af46f6cc12bc0c812 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Wed, 1 Nov 2017 13:16:29 -0400 Subject: [PATCH 95/96] minor changes all around --- .../acknowledgments.tex | 6 +- .../authors.tex | 4 +- .../contributions.tex | 8 +- .../research/analysis.ipynb | 200 ++++++------ .../research/data_exploration.ipynb | 293 ++---------------- docs/notebooks/demo.ipynb | 6 +- 6 files changed, 144 insertions(+), 373 deletions(-) diff --git a/docs/desc-0000-qp-photo-z_approximation/acknowledgments.tex b/docs/desc-0000-qp-photo-z_approximation/acknowledgments.tex index ff2992ea..b9ff95c0 100644 --- a/docs/desc-0000-qp-photo-z_approximation/acknowledgments.tex +++ b/docs/desc-0000-qp-photo-z_approximation/acknowledgments.tex @@ -1,3 +1,3 @@ -% -This is the text imported from \code{acknowledgments.tex}, and will be replaced by some standard LSST DESC boilerplate at some point. -% +% +%This is the text imported from \code{acknowledgments.tex}, and will be replaced by some standard LSST DESC boilerplate at some point. +% diff --git a/docs/desc-0000-qp-photo-z_approximation/authors.tex b/docs/desc-0000-qp-photo-z_approximation/authors.tex index b86cf629..ee4961f5 100644 --- a/docs/desc-0000-qp-photo-z_approximation/authors.tex +++ b/docs/desc-0000-qp-photo-z_approximation/authors.tex @@ -7,8 +7,8 @@ \affiliation{SLAC National Accelerator Laboratory, Menlo Park, CA 94025, USA} \author{S.J.~Schmidt} \affiliation{Dept. of Physics, University of California, One Shields Ave., Davis, CA, 95616} -\author{M.~Graham} -\affiliation{University of Washington} +\author{M.L.~Graham} +\affiliation{Department of Astronomy, University of Washington, Box 351580 U.W., Seattle, WA 98195-1580} \author{J.~DeRose} \affiliation{Stanford University} \author{R.~Wechsler} diff --git a/docs/desc-0000-qp-photo-z_approximation/contributions.tex b/docs/desc-0000-qp-photo-z_approximation/contributions.tex index a0e01b03..6150a71a 100644 --- a/docs/desc-0000-qp-photo-z_approximation/contributions.tex +++ b/docs/desc-0000-qp-photo-z_approximation/contributions.tex @@ -1,7 +1,7 @@ Author contributions are listed below. \\ A.I.~Malz: Initiated project, led development work. \\ P.J.~Marshall: Advised on statistics, and project design and management. \\ -S.J.~Schmidt: Provided the Optical dataset. \\ -M.~Graham: Provided the Optical+IR dataset. \\ -J.~DeRose: Contributed to the production of the Optical dataset. \\ -R.~Wechsler: Contributed to the production of the Optical dataset. \\ +S.J.~Schmidt: Produced the PDFs for the fainter mock catalog. \\ +M.L.~Graham: Produced the photometry and PDFs for the brighter mock catalog. \\ +J.~DeRose: Produced the photometry for the fainter mock catalog. \\ +R.~Wechsler: Produced the photometry for the fainter mock catalog. \\ diff --git a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb index bd364273..b48c64e7 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "collapsed": true + }, "source": [ "# The Analysis Pipeline\n", "\n", @@ -768,7 +770,7 @@ " plt.xlabel(r'$z$', fontsize=14)\n", " plt.ylabel(r'$\\hat{n}(z)$', fontsize=14)\n", " plt.xlim(min(z_grid), max(z_grid))\n", - "# plt.ylim(0., max(nz_max))\n", + " plt.ylim(0., max(nz_max))\n", " plt.legend()\n", " plt.title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ with $N_{f}='+str(n_floats_use)+r'$', fontsize=16)\n", " plt.savefig(loc+'.pdf', dpi=250)\n", @@ -1137,15 +1139,15 @@ "# n_delta_min[n] = np.min(n_delta_min[n], np.min(y_minus))\n", "# print('after '+str((n_delta_max, n_delta_min)))\n", " ax_n.set_ylabel(r'$\\log_{10}$-percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " extremum[n] = np.max(np.abs(np.array([n_delta_min[n], n_delta_max[n]]))) + 1.\n", + " extremum[n] = np.max(np.abs(np.array([n_delta_min[n], n_delta_max[n]]))) + 0.25\n", " ax_n.set_ylim(-1.*extremum[n], extremum[n])\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", - " ax.legend(loc=dataset_info[name]['legloc'])\n", + " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment log-percent errors', fontsize=16)\n", + " ax.legend(loc=dataset_info[name]['legloc_p'])\n", " fig.tight_layout()\n", " fig.savefig(loc+'_clean.pdf', dpi=250)\n", " plt.close()\n", @@ -1183,7 +1185,7 @@ " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment errors', fontsize=16)\n", + " ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment percent errors', fontsize=16)\n", " ax.legend(loc='upper left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", @@ -1269,7 +1271,7 @@ " plt.semilogy()\n", " plt.semilogx()\n", " plt.xticks(flat_floats, [str(ff) for ff in flat_floats])\n", - " plt.ylim(min(kld_min) / 3., 3. * max(kld_max))\n", + " plt.ylim(min(kld_min), max(kld_max))\n", " plt.xlim(min(flat_floats), max(flat_floats))\n", " plt.xlabel(r'number of parameters', fontsize=14)\n", " plt.ylabel(r'KLD', fontsize=14)\n", @@ -1297,7 +1299,7 @@ " plt.semilogy()\n", " plt.semilogx()\n", " plt.xticks(flat_floats, [str(ff) for ff in flat_floats])\n", - " plt.ylim(min(kld_min) / 3., 3. * max(kld_max))\n", + " plt.ylim(min(kld_min), max(kld_max))\n", " plt.xlim(min(flat_floats), max(flat_floats))\n", " plt.xlabel(r'number of parameters', fontsize=14)\n", " plt.ylabel(r'KLD', fontsize=14)\n", @@ -1363,7 +1365,8 @@ "# mean = np.mean(data_arr, axis=0).flatten()\n", "# std = np.std(data_arr, axis=0).flatten()\n", "# mean = np.median(data_arr, axis=-1)\n", - " std = np.log10(np.percentile(np.abs(data_arr), [25, 50, 75], axis=0))\n", + "# std = np.log10(np.percentile(np.abs(data_arr), [25, 50, 75], axis=0))\n", + " std = np.percentile(data_arr, [25, 50, 75], axis=0)\n", " y_plus = std[-1]#mean + std\n", " y_minus = std[0]#mean - std\n", " mean = std[1]\n", @@ -1376,18 +1379,18 @@ " ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", " nz_mean_max[n] = max(nz_mean_max[n], np.max(y_plus))\n", " nz_mean_min[n] = min(nz_mean_min[n], np.min(y_minus))\n", - " ax_n.set_ylabel(r'$\\log_{10}$-percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " extremum = np.max(np.abs([nz_mean_min[n], nz_mean_max[n]]))+1.\n", + " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " extremum = np.max(np.abs([nz_mean_min[n], nz_mean_max[n]])) + 1.#0.25\n", " ax_n.set_ylim(-1. * extremum, extremum)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", - " ax.legend(loc='lower left')\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moment percent errors', fontsize=16)\n", + " ax.legend(loc=dataset_info[name]['legloc_n'])#FINDME!\n", " fig.tight_layout()\n", - " fig.savefig(loc+'_clean.pdf', dpi=250)\n", + " fig.savefig(loc+'_clean_unlog.pdf', dpi=250)\n", " plt.close()\n", " \n", " fig, ax = plt.subplots()\n", @@ -1416,14 +1419,14 @@ " data_arr = (np.swapaxes(np.array(nz_stats[f][n]), 0, 1) - truth) / truth * 100.\n", " for i in data_arr:\n", " ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, color=colors[f], alpha=a)\n", - " ax_n.set_ylabel(r'percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", - " ax_n.set_ylim(-1. * extremum, extremum)\n", + " ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + " ax_n.set_ylim(-15., 15.)\n", " ax.set_xscale('log')\n", " ax.set_xticks(flat_floats)\n", " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moment errors', fontsize=16)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moment percent errors', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " fig.savefig(loc+'_all.pdf', dpi=250)\n", @@ -1514,7 +1517,7 @@ " ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", " ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", " ax.set_xlabel('number of parameters', fontsize=14)\n", - " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moment errors', fontsize=16)\n", + " ax.set_title(dataset_info[dataset_key]['name']+r' data $\\hat{n}(z)$ moments', fontsize=16)\n", " ax.legend(loc='lower left')\n", " fig.tight_layout()\n", " outloc = os.path.join(path, 'nz_moments'+str(n_gals_use)+dataset_key)\n", @@ -1573,7 +1576,8 @@ " plotname = 'brighter'\n", " skip_rows = 1\n", " skip_cols = 1\n", - " legloc = 'upper right'\n", + " legloc_p = 'upper right'\n", + " legloc_n = 'upper left'\n", " elif name == 'ss':\n", " datafilename = 'test_magscat_trainingfile_probs.out'\n", " z_low = 0.005\n", @@ -1582,7 +1586,8 @@ " plotname = 'fainter'\n", " skip_rows = 1\n", " skip_cols = 1\n", - " legloc = 'lower left'\n", + " legloc_p = 'lower left'\n", + " legloc_n = 'lower right'\n", " dataset_info[name]['filename'] = datafilename \n", " \n", " dataset_info[name]['z_lim'] = (z_low, z_high)\n", @@ -1594,7 +1599,8 @@ "\n", " dataset_info[name]['N_GMM'] = nc_needed# will be overwritten later\n", " dataset_info[name]['name'] = plotname\n", - " dataset_info[name]['legloc'] = legloc" + " dataset_info[name]['legloc_p'] = legloc_p\n", + " dataset_info[name]['legloc_n'] = legloc_n" ] }, { @@ -1663,76 +1669,76 @@ }, "outputs": [], "source": [ - "# the \"pipeline\"\n", - "global_start = timeit.default_timer()\n", - "for n in range(len(names)):\n", - " name = names[n]\n", + "# # the \"pipeline\"\n", + "# global_start = timeit.default_timer()\n", + "# for n in range(len(names)):\n", + "# name = names[n]\n", " \n", - " dataset_start = timeit.default_timer()\n", - " print('started '+name)\n", + "# dataset_start = timeit.default_timer()\n", + "# print('started '+name)\n", " \n", - " pdfs = setup_dataset(name, skip_rows, skip_cols)\n", + "# pdfs = setup_dataset(name, skip_rows, skip_cols)\n", " \n", - " for s in range(len(sizes)):\n", - " size = sizes[s]\n", + "# for s in range(len(sizes)):\n", + "# size = sizes[s]\n", " \n", - " size_start = timeit.default_timer()\n", - " print('started '+name+str(size))\n", + "# size_start = timeit.default_timer()\n", + "# print('started '+name+str(size))\n", " \n", - " path = os.path.join(name, str(size))\n", - " if not os.path.exists(path):\n", - " os.makedirs(path)\n", + "# path = os.path.join(name, str(size))\n", + "# if not os.path.exists(path):\n", + "# os.makedirs(path)\n", " \n", - " n_gals_use = size\n", + "# n_gals_use = size\n", " \n", - " randos = all_randos[n][s]\n", + "# randos = all_randos[n][s]\n", " \n", - " for i in instantiations:\n", - "# top_bonusdict = {}\n", - " i_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i))\n", + "# for i in instantiations:\n", + "# # top_bonusdict = {}\n", + "# i_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i))\n", " \n", - " original = '_original'+str(i)\n", - " pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", - "# plot = plot_examples(size, name, bonus=original)\n", - "# top_bonusdict[original] = ['-', 0.25]\n", + "# original = '_original'+str(i)\n", + "# pdfs_use = make_instantiation(name, size, pdfs, bonus=original)\n", + "# # plot = plot_examples(size, name, bonus=original)\n", + "# # top_bonusdict[original] = ['-', 0.25]\n", " \n", - " z_grid = dataset_info[name]['in_z_grid']\n", - " N_comps = dataset_info[name]['N_GMM']\n", + "# z_grid = dataset_info[name]['in_z_grid']\n", + "# N_comps = dataset_info[name]['N_GMM']\n", " \n", - " postfit = '_postfit'+str(i)\n", - " catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", - "# plot = plot_examples(size, name, bonus=postfit)\n", - "# top_bonusdict[postfit] = ['-', 0.5]\n", + "# postfit = '_postfit'+str(i)\n", + "# catalog = setup_from_grid(name, pdfs_use, z_grid, N_comps, high_res=high_res, bonus=postfit)\n", + "# # plot = plot_examples(size, name, bonus=postfit)\n", + "# # top_bonusdict[postfit] = ['-', 0.5]\n", " \n", - " for n_floats_use in floats:\n", - "# bonusdict = top_bonusdict.copy()\n", - " float_start = timeit.default_timer()\n", - " print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", + "# for n_floats_use in floats:\n", + "# # bonusdict = top_bonusdict.copy()\n", + "# float_start = timeit.default_timer()\n", + "# print('started '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use))\n", " \n", - " ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", + "# ensembles = analyze_individual(catalog, z_grid, n_floats_use, name, n_moments_use, i=i, bonus=postfit)\n", " \n", - "# for f in formats:\n", - "# fname = str(n_floats_use)+f+str(i)\n", - "# plot = plot_examples(size, name, bonus=fname)\n", - "# bonusdict[fname] = [styles[f], 0.5]\n", - "# plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - "# plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", + "# # for f in formats:\n", + "# # fname = str(n_floats_use)+f+str(i)\n", + "# # plot = plot_examples(size, name, bonus=fname)\n", + "# # bonusdict[fname] = [styles[f], 0.5]\n", + "# # plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", + "# # plot = plot_individual_kld(size, name, n_floats_use, i=i)\n", " \n", - " stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", - "# plot = plot_estimators(size, name, n_floats_use, i=i)\n", + "# stack_evals = analyze_stacked(catalog, ensembles, z_grid, n_floats_use, name, i=i)\n", + "# # plot = plot_estimators(size, name, n_floats_use, i=i)\n", " \n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", - " print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", - "# plot = plot_pz_metrics(name, size)\n", - "# plot = plot_pz_delta_moments(name, size) \n", - "# plot = plot_nz_klds(name, size)\n", - "# plot = plot_nz_moments(name, size)\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' with '+str(n_floats_use)+' in '+str(timeit.default_timer() - float_start))\n", + "# print('FINISHED '+name+str(size)+' #'+str(i)+' in '+str(timeit.default_timer() - i_start))\n", + "# # plot = plot_pz_metrics(name, size)\n", + "# # plot = plot_pz_delta_moments(name, size) \n", + "# # plot = plot_nz_klds(name, size)\n", + "# # plot = plot_nz_moments(name, size)\n", " \n", - " print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", + "# print('FINISHED '+name+str(size)+' in '+str(timeit.default_timer() - size_start))\n", " \n", - " print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", - "print('FINISHED everything in '+str(timeit.default_timer() - global_start))" + "# print('FINISHED '+name+' in '+str(timeit.default_timer() - dataset_start))\n", + "# print('FINISHED everything in '+str(timeit.default_timer() - global_start))" ] }, { @@ -1816,35 +1822,35 @@ "\n", "for name in names:\n", " for size in sizes:\n", - " for stat_name in moments_to_save + metrics_to_save:\n", - " clear_stats(name, size, stat_name)\n", + "# for stat_name in moments_to_save + metrics_to_save:\n", + "# clear_stats(name, size, stat_name)\n", " for i in instantiations:\n", " top_bonusdict = {}\n", " bo = '_original'+str(i)\n", - " plot = plot_examples(size, name, bonus=bo, norm=norm)\n", + "# plot = plot_examples(size, name, bonus=bo, norm=norm)\n", " top_bonusdict[bo] = ['-', 0.25]\n", " bp = '_postfit'+str(i)\n", - " plot = plot_examples(size, name, bonus=bp, norm=norm)\n", + "# plot = plot_examples(size, name, bonus=bp, norm=norm)\n", " top_bonusdict[bp] = ['-', 0.5]\n", " for n in range(len(floats)):\n", - " bonusdict = top_bonusdict.copy()\n", - " n_floats_use = floats[n]\n", - " for f in formats:\n", - " fname = str(n_floats_use)+f+str(i)\n", - " plot = plot_examples(size, name, bonus=fname, norm=norm)\n", - " bonusdict[fname] = [styles[f], 0.5]\n", + "# bonusdict = top_bonusdict.copy()\n", + "# n_floats_use = floats[n]\n", + "# for f in formats:\n", + "# fname = str(n_floats_use)+f+str(i)\n", + "# plot = plot_examples(size, name, bonus=fname, norm=norm)\n", + "# bonusdict[fname] = [styles[f], 0.5]\n", " plot = plot_all_examples(name, size, n_floats_use, i, bonus=bonusdict)\n", - " plot = plot_individual_kld(size, name, n_floats_use, i)\n", - " plot = plot_estimators(size, name, n_floats_use, i)\n", - " for stat_name in moments_to_save:\n", - " save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", - " for stat_name in metrics_to_save:\n", - " save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", - " plot = plot_kld_stats(name, size)\n", - " plot = plot_pz_metrics(name, size)\n", - " plot = plot_pz_delta_moments(name, size)\n", - " plot = plot_nz_klds(name, size)\n", - " plot = plot_nz_moments(name, size)" + "# plot = plot_individual_kld(size, name, n_floats_use, i)\n", + "# plot = plot_estimators(size, name, n_floats_use, i)\n", + "# for stat_name in moments_to_save:\n", + "# save_moments_wrapper(name, size, n_floats_use, i, stat_name)\n", + "# for stat_name in metrics_to_save:\n", + "# save_metrics_wrapper(name, size, n_floats_use, i, stat_name)\n", + "# plot = plot_kld_stats(name, size)\n", + "# plot = plot_pz_metrics(name, size)\n", + "# plot = plot_pz_delta_moments(name, size)\n", + "# plot = plot_nz_klds(name, size)\n", + "# plot = plot_nz_moments(name, size)" ] }, { @@ -2123,14 +2129,14 @@ "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" + "pygments_lexer": "ipython3", + "version": "3.6.3" } }, "nbformat": 4, diff --git a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb index 0613e5ec..1599f049 100644 --- a/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb +++ b/docs/desc-0000-qp-photo-z_approximation/research/data_exploration.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": false }, @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false }, @@ -78,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": true }, @@ -103,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": true }, @@ -126,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false }, @@ -158,19 +158,11 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "storage footprint 187656760 bytes\n" - ] - } - ], + "outputs": [], "source": [ "## Warning: reading in the data is slow for Sam Schmidt's dataset!\n", "with open(dataset_info[dataset_key]['filename'], 'rb') as data_file:\n", @@ -194,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false }, @@ -245,30 +237,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.00166821479797\n", - "Plotted gridded.\n" - ] - }, - { - "data": { - "image/png": "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\nkEctNQlvAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "if dataset_key == 'Euclid':\n", " chosen = 5390\n", @@ -292,7 +265,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false }, @@ -315,34 +288,11 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "weights, means, stds = (array([ 7.86618232e-03, 1.52191942e-01, 8.44465992e-01,\n", - " 5.86383580e-25, 1.92739653e-26]), array([ 0.20514244, 0.70083922, 0.65688144, 1.38216391, 1.28419239]), array([ 0.03005221, 0.11893208, 0.05491016, 1.13356533, 0.07316158]))\n", - "0.00786618232498$\\cdot\\mathcal{N}($0.20514243587,0.0300522096351)\\n0.152191941733$\\cdot\\mathcal{N}($0.700839217273,0.118932083479)\\n0.844465992278$\\cdot\\mathcal{N}($0.656881444761,0.0549101640834)\\n5.86383579515e-25$\\cdot\\mathcal{N}($1.38216391095,1.13356533269)\\n1.92739653279e-26$\\cdot\\mathcal{N}($1.28419239455,0.0731615762985)\\n\n", - "7.18195390701 for GMM fit to gridded\n", - "Plotted mixture model.\n", - "Plotted gridded.\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "start_time = timeit.default_timer()\n", "G.mix_mod_fit(n_components=dataset_info[dataset_key]['N_GMM'], \n", @@ -362,36 +312,12 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "weights, means, stds = (array([ 0.22474089, 0.32893284, 0.08460611, 0.003 , 0.35872016]), array([ 0.58396956, 0.7012796 , 0.79513759, 0.1984569 , 0.64261489]), array([ 0.04156553, 0.02721708, 0.05638918, 0.03896681, 0.02800991]))\n", - "0.224740889352$\\cdot\\mathcal{N}($0.583969559122,0.0415655289228)\\n0.328932839347$\\cdot\\mathcal{N}($0.701279599367,0.027217079202)\\n0.0846061142416$\\cdot\\mathcal{N}($0.79513758836,0.0563891755743)\\n0.00300000000005$\\cdot\\mathcal{N}($0.198456900573,0.0389668112235)\\n0.35872015706$\\cdot\\mathcal{N}($0.642614889887,0.0280099088221)\\n\n", - "0.861758947372 for GMM fit to samples\n", - "Plotted mixture model.\n", - "Plotted gridded.\n", - "Created a KDE interpolator for the samples parametrization.\n", - "Plotted samples\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "high_res = 1000\n", "\n", @@ -414,90 +340,12 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Plotted truth.\n", - "input quantiles are [ 0.5831924 0.61771823 0.63949974 0.65921476 0.68006022 0.70209871\n", - " 0.73012563]\n", - "evaluated quantile PDF: (array([ 0.60045532, 0.62860899, 0.64935725, 0.66963749, 0.69107947,\n", - " 0.71611217]), array([ 3.62047764, 5.73881294, 6.34034527, 5.99650721, 5.67189585,\n", - " 4.45999724]))\n", - "x before: [ 0.60045532 0.62860899 0.64935725 0.66963749 0.69107947 0.71611217]\n", - "x after: [ 0.51414074 0.60045532 0.62860899 0.64935725 0.66963749 0.69107947\n", - " 0.71611217 0.78617948]\n", - "complete evaluated quantile PDF: (array([ 0.51414074, 0.60045532, 0.62860899, 0.64935725, 0.66963749,\n", - " 0.69107947, 0.71611217, 0.78617948]), array([ 2.22044605e-16, 3.62047764e+00, 5.73881294e+00,\n", - " 6.34034527e+00, 5.99650721e+00, 5.67189585e+00,\n", - " 4.45999724e+00, 2.22044605e-16]))\n", - "order is 5\n", - "divided into (array([], dtype=int64), array([0, 1, 2, 3, 4, 5, 6]), array([], dtype=int64))\n", - "Created a k=`4`B-spline interpolator for the quantiles parametrization.\n", - "evaluated inside (array([ 0.5831924 , 0.61771823, 0.63949974, 0.65921476, 0.68006022,\n", - " 0.70209871, 0.73012563]), array([ 2.23801027, 5.03949337, 6.26575436, 6.22925918, 5.831698 ,\n", - " 5.38681173, 3.24139826]))\n", - "evaluated below (array([], dtype=float64), array([], dtype=float64))\n", - "evaluated above (array([], dtype=float64), array([], dtype=float64))\n", - "first: (array([ 0.5831924 , 0.61771823, 0.63949974, 0.65921476, 0.68006022,\n", - " 0.70209871, 0.73012563]), array([ 2.23801027, 5.03949337, 6.26575436, 6.22925918, 5.831698 ,\n", - " 5.38681173, 3.24139826]))\n", - "x before: [ 0.5831924 0.61771823 0.63949974 0.65921476 0.68006022 0.70209871\n", - " 0.73012563]\n", - "x after: [ 0.41563285 0.5831924 0.61771823 0.63949974 0.65921476 0.68006022\n", - " 0.70209871 0.73012563 0.84581645]\n", - "second: (array([ 0.41563285, 0.5831924 , 0.61771823, 0.63949974, 0.65921476,\n", - " 0.68006022, 0.70209871, 0.73012563, 0.84581645]), array([ 2.22044605e-16, 2.23801027e+00, 5.03949337e+00,\n", - " 6.26575436e+00, 6.22925918e+00, 5.83169800e+00,\n", - " 5.38681173e+00, 3.24139826e+00, 2.22044605e-16]))\n", - "third: [ 0.005 0.02626263 0.04752525 0.06878788 0.09005051 0.11131313\n", - " 0.13257576 0.15383838 0.17510101 0.19636364 0.21762626 0.23888889\n", - " 0.26015152 0.28141414 0.30267677 0.32393939 0.34520202 0.36646465\n", - " 0.38772727 0.4089899 0.43025253 0.45151515 0.47277778 0.4940404\n", - " 0.51530303 0.53656566 0.55782828 0.57909091 0.60035354 0.62161616\n", - " 0.64287879 0.66414141 0.68540404 0.70666667 0.72792929 0.74919192\n", - " 0.77045455 0.79171717 0.8129798 0.83424242 0.85550505 0.87676768\n", - " 0.8980303 0.91929293 0.94055556 0.96181818 0.98308081 1.00434343\n", - " 1.02560606 1.04686869 1.06813131 1.08939394 1.11065657 1.13191919\n", - " 1.15318182 1.17444444 1.19570707 1.2169697 1.23823232 1.25949495\n", - " 1.28075758 1.3020202 1.32328283 1.34454545 1.36580808 1.38707071\n", - " 1.40833333 1.42959596 1.45085859 1.47212121 1.49338384 1.51464646\n", - " 1.53590909 1.55717172 1.57843434 1.59969697 1.6209596 1.64222222\n", - " 1.66348485 1.68474747 1.7060101 1.72727273 1.74853535 1.76979798\n", - " 1.79106061 1.81232323 1.83358586 1.85484848 1.87611111 1.89737374\n", - " 1.91863636 1.93989899 1.96116162 1.98242424 2.00368687 2.02494949\n", - " 2.04621212 2.06747475 2.08873737 2.11 ]\n", - "divided into (array([24, 25, 26, 27]), array([28, 29, 30, 31, 32, 33, 34]), array([35, 36]))\n", - "Created a k=`4`B-spline interpolator for the quantiles parametrization.\n", - "evaluated inside (array([ 0.60035354, 0.62161616, 0.64287879, 0.66414141, 0.68540404,\n", - " 0.70666667, 0.72792929]), array([ 3.60232224, 5.3275399 , 6.34465617, 6.10326132, 5.78126312,\n", - " 5.1673553 , 3.46237225]))\n", - "evaluated below (array([ 0.51530303, 0.53656566, 0.55782828, 0.57909091]), array([ 0.03767063, 0.72680648, 1.41594233, 2.10507818]))\n", - "evaluated above (array([ 0.74919192, 0.77045455]), array([ 2.1388615 , 0.90931805]))\n", - "Plotted quantiles.\n", - "Created a piecewise constant interpolator for the histogram parametrization.\n", - "Plotted histogram.\n", - "Created a KDE interpolator for the samples parametrization.\n", - "Plotted samples\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "N_f = 7\n", "M = qp.PDF(truth=G.mix_mod, limits=dataset_info[dataset_key]['z_lim'])\n", @@ -520,19 +368,11 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'quantiles': 2.0177293738157727, 'samples': 0.29412056403192499, 'histogram': 0.59485999161459158}\n" - ] - } - ], + "outputs": [], "source": [ "formats = ['quantiles', 'histogram', 'samples']\n", "parametrizations = {}\n", @@ -568,7 +408,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false }, @@ -605,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": true }, @@ -658,45 +498,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "making the initial ensemble of 100 PDFs\n", - "made the pool of 4 in 0.165659189224\n", - "made the catalog in 0.4354429245\n", - "made the initial ensemble of 100 PDFs\n", - "sampling for the GMM fit\n", - "took 1000 samples\n", - "making a new ensemble from samples\n", - "made the pool of 4 in 0.000144958496094\n", - "made the catalog in 0.441530942917\n", - "made a new ensemble from samples\n", - "fitting the GMM to samples\n", - "fit the GMM to samples\n", - "making the final ensemble\n", - "made the pool of 4 in 9.10758972168e-05\n", - "made the catalog in 18.4482409954\n", - "made the final ensemble\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# pr = cProfile.Profile()\n", "# pr.enable()\n", @@ -723,7 +530,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": true }, @@ -798,53 +605,11 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "performing quantization\n", - "performing histogramization\n", - "performing sampling\n", - "making the approximate ensembles\n", - "made the pool of 4 in 0.000113964080811\n", - "made the catalog in 18.6752672195\n", - "made the pool of 4 in 0.000100135803223\n", - "made the catalog in 18.8698592186\n", - "made the pool of 4 in 9.01222229004e-05\n", - "made the catalog in 18.714222908\n", - "made the approximate ensembles\n", - "calculating the individual metrics\n", - "starting quantiles\n", - "weights, means, stds = (array([ 0.32259881, 0.12000102, 0.25308461, 0.01999744, 0.28431812]), array([ 0.31955313, 1.89535281, 0.76227741, 3.32792715, 1.25929436]), array([ 0.15327663, 0.3055529 , 0.15681398, 0.10757396, 0.26158906]))\n", - "0.322598810134$\\cdot\\mathcal{N}($0.319553129617,0.153276632357)\\n0.120001021511$\\cdot\\mathcal{N}($1.89535280956,0.305552896637)\\n0.253084605016$\\cdot\\mathcal{N}($0.762277406289,0.156813980137)\\n0.0199974432826$\\cdot\\mathcal{N}($3.32792714567,0.10757396291)\\n0.284318120056$\\cdot\\mathcal{N}($1.25929435502,0.26158905763)\\n\n", - "finished with quantiles\n", - "starting samples\n", - "weights, means, stds = (array([ 0.74538238, 0.04007595, 0.17482375, 0.01 , 0.02971791]), array([ 0.14825555, 2.95180543, 0.66380943, 3.99224806, 2.04190345]), array([ 0.07772947, 0.20957478, 0.35516799, 0.001 , 0.15973365]))\n", - "0.745382382692$\\cdot\\mathcal{N}($0.148255548594,0.0777294743949)\\n0.0400759533401$\\cdot\\mathcal{N}($2.95180542936,0.209574779657)\\n0.174823752582$\\cdot\\mathcal{N}($0.663809431474,0.3551679866)\\n0.00999999914967$\\cdot\\mathcal{N}($3.99224805668,0.001)\\n0.0297179122363$\\cdot\\mathcal{N}($2.04190344572,0.159733654358)\\n\n", - "finished with samples\n", - "starting histogram\n", - "weights, means, stds = (array([ 0.05819823, 0.38561485, 0.11024752, 0.34454691, 0.10139248]), array([ 0.56355971, 0.04588222, 1.17686522, 0.21065911, 0.78380249]), array([ 0.05206764, 0.01821537, 0.13866149, 0.1015784 , 0.06167195]))\n", - "0.0581982316956$\\cdot\\mathcal{N}($0.563559707402,0.0520676402341)\\n0.385614847719$\\cdot\\mathcal{N}($0.045882220183,0.0182153699483)\\n0.110247524407$\\cdot\\mathcal{N}($1.17686522262,0.138661492936)\\n0.344546912823$\\cdot\\mathcal{N}($0.210659109087,0.101578404892)\\n0.101392483355$\\cdot\\mathcal{N}($0.783802487588,0.061671946788)\\n\n", - "finished with histogram\n", - "calculated the individual metrics\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# pr = cProfile.Profile()\n", "# pr.enable()\n", @@ -1895,14 +1660,14 @@ "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" + "pygments_lexer": "ipython3", + "version": "3.6.3" } }, "nbformat": 4, diff --git a/docs/notebooks/demo.ipynb b/docs/notebooks/demo.ipynb index 61a2ae2d..049b685d 100644 --- a/docs/notebooks/demo.ipynb +++ b/docs/notebooks/demo.ipynb @@ -615,14 +615,14 @@ "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" + "pygments_lexer": "ipython3", + "version": "3.6.3" } }, "nbformat": 4, From 099a3435ec5d1ccdf2fbd4ebfd8f7e62c738b6a1 Mon Sep 17 00:00:00 2001 From: Alex Malz Date: Sun, 12 Nov 2017 14:30:50 -0500 Subject: [PATCH 96/96] fixing bug --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 1fae7858..7f62c5a0 100644 --- a/setup.py +++ b/setup.py @@ -19,5 +19,5 @@ "Operating System :: OS Independent", "Programming Language :: Python", ], - install_requires=["matplotlib", "hickle", "numpy", "pathos", "psutil", "scipy", "sklearn"] + install_requires=["matplotlib", "numpy", "pathos", "scipy", "sklearn"] )

|8Jyo64vnISNlB;7c& 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�_LU{Nb$5is0M0Ua^(ZhDi`QLGML|=Ft9KQC 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