From 37d72fe0e8ae7beedb3025469875932c3378c6ab Mon Sep 17 00:00:00 2001 From: Lutz Date: Wed, 3 Mar 2021 13:23:17 +0100 Subject: [PATCH] Extension 1.21.02 Enhancement: German translation improved Enhancement: Info screen-doc improved Enhancement: added option to create config file template Enhancement: inserted option OldFilesPerDBC to define the use splitting of DBC like version pre 1.21.0 --- .gitignore | 11 + Documentacion/.gitignore | 11 + Documentacion/github/FoxBin2Prg_Changes.md | 695 ++++++++++--------- Documentacion/github/FoxBin2Prg_Internals.md | 299 ++++---- Documentacion/github/FoxBin2Prg_Object.md | 48 +- Documentacion/github/FoxBin2Prg_Run.md | 102 ++- Documentacion/github/FoxBin2Prg_SCM.md | 39 +- Documentacion/github/FoxBin2Prg_git.md | 305 ++++++++ Documentacion/github/FoxBin2prg.md | 49 +- Documentacion/github/pictures/.gitignore | 7 +- Documentacion/github/pictures/readme.md | 12 + Documentacion/github/readme.md | 2 +- README.md | 252 ++++--- foxbin2prg.cfg.txt | 125 ++-- foxbin2prg.exe | Bin 683252 -> 752889 bytes foxbin2prg.pjt | Bin 642652 -> 680741 bytes foxbin2prg.pjx | Bin 7043 -> 7043 bytes foxbin2prg.prg | 301 +++++--- 18 files changed, 1427 insertions(+), 831 deletions(-) create mode 100644 .gitignore create mode 100644 Documentacion/.gitignore create mode 100644 Documentacion/github/FoxBin2Prg_git.md create mode 100644 Documentacion/github/pictures/readme.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5439d1c --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# we use the exclude-all-include-special approach, easier then excluding any odd stuff later +#exclude general +*.bak +*.tmp +/*.dbf +/*.CDX +/*.fxp +/*.fpt + +*special, exclude local config +foxbin2prg.cfg \ No newline at end of file diff --git a/Documentacion/.gitignore b/Documentacion/.gitignore new file mode 100644 index 0000000..a923fe1 --- /dev/null +++ b/Documentacion/.gitignore @@ -0,0 +1,11 @@ +# we use the exclude-all-include-special approach, easier then excluding any odd stuff later +#exclude general +*.* + +#include general +# docs +!*.md + +#include special +#default git +!*.gitignore diff --git a/Documentacion/github/FoxBin2Prg_Changes.md b/Documentacion/github/FoxBin2Prg_Changes.md index dedf1a3..e285027 100644 --- a/Documentacion/github/FoxBin2Prg_Changes.md +++ b/Documentacion/github/FoxBin2Prg_Changes.md @@ -1,29 +1,29 @@ -# Purpose of this document -This document is an attempt to recreate the original documentation of FoxBin2Prg out of CodePlex. -I found the documentation on [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/blob/master/README.md) a bit brief. For a short what and why, see there. +# Change log +Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9 -The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. Pictures are taken from the original project. +## Purpose of this document +List of Changes, Bugfixes and modifications. + +For settings, API and other realted stuff see [Internals](./FoxBin2Prg_Internals.md). + +The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. +Pictures are taken from the original project. As far as possible these are the original documents. Changes are added where functionality is changed. ---- -![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) -This project is part of VFPX. +## Table of contents +- [Remark](#remark) +- [Full Change History](#full-change-history) ----- -# FoxBin2Prg - Change log -## Remark - - I see not what is inside the archive, so just clone, fork or download from gitlab. - The links on the version numbers are working. - - -![Picture](./pictures/FoxBin2Prg_Full_Change_History_vfpxreleasesmall.png) [FoxBin2PRG](https://github.com/fdbozzo/foxbin2prg) +## Remark +The older links point to Fernandos repository. + +For recent verisons see +![Picture](./pictures/FoxBin2Prg_Full_Change_History_vfpxreleasesmall.png) [Fernandos FoxBin2PRG](https://github.com/fdbozzo/foxbin2prg) ![Picture](./pictures/FoxBin2Prg_Full_Change_History_vfpxreleasesmall.png) [This fork](https://github.com/lscheffler/foxbin2prg/tree/fork_mod) +![Picture](./pictures/FoxBin2Prg_Full_Change_History_vfpxreleasesmall.png) [Just the bug fixes of this fork](https://github.com/lscheffler/foxbin2prg/tree/fork) -The changes since 2016/07/24 are a copy out of FoxBin2Prg.prg. If somebody likes to translate, feel free. - -## FoxBin2Prg Full Change History - +## Full Change History This page is not only to get the history of the changes, but to keep a permanent list of people that have contributed to enhance FoxBin2Prg and that I feel as part of the ADN of this tool. It's my way of thanking them for their contribution. @@ -32,329 +32,340 @@ _**Note:** you can click on the version number for downloading this version from | Rel.Date | Developer | Version | Details | | - | - | - | - | -| 21/02/2021 | Lutz Scheffler | | Documentation from CodePlex integrated | -| | Lutz Scheffler | | added option to create config file template | -| | Lutz Scheffler | | Info screen-doc improved | -| | Lutz Scheffler | | German translation improved | -| 20/02/2021 | Lutz Scheffler | | inserted option DBF_IncludeDeleted to allow including deleted records of DBF | -| 19/02/2021 | Lutz Scheffler | | inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way | -| 15/02/2021 | Lutz Scheffler | | inserted option ItemPerDBCCheck to split DBC processing from vcx / scx | -| | Lutz Scheffler | | inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx | -| 14/02/2021 | Lutz Scheffler | | inserted option UseFilesPerDBC to split DBC processing from vcx / scx | -| **mods** | | | **in this fork (above)** | -| 16/02/2021 | Lutz Scheffler | | conversion prg -> vcx, files per class could create one class multiple times | -| 15/02/2021 | Lutz Scheffler | | processing directory, flush log file after loop instead of file | -| 14/02/2021 | Lutz Scheffler | | conversion prg -> dbf, fields with .NULL. value are incorectly recreated | -| | Lutz Scheffler | | minor translations | -| | Lutz Scheffler | | conversion dbf -> prg, error if only test mode (toFoxBin2Prg.l_ProcessFiles is false) | -| **fixes** | | | **in this fork (above)** | -| - | - | ---fork--- | - | -| 01/04/2020 | FDBOZZO | v1.19.51 | Bug Fix: No se respetan las propiedades de VCX/SCX con nombre "note" (Tracy Pearson) | -| | FDBOZZO | v1.19.51 | Bug Fix: La conversión de tablas falla si algún campo contiene una palabra reservada como UNIQUE (DAJU78) | -| | DH | v1.19.51 | Bug Fix: Manejo de AutoIncrement incompatible con Project Explorer (Dan Lauer) | -| | FDBOZZO | v1.19.51.6 | Bug Fix: Incompatible with VFPA (#36) (Eric Selje) | -| | RHARRIS | v1.19.51.6 | Bug Fix: Si alguno de los archivos-por-clase no tiene CR_LF al final, al ensamblar la clase se pueden superponer instrucciones de forma inválida (Ryan Harris) | -| 14/02/2019 | TRACY_P | v1.19.51.5 | Enhancement: Make FoxBin2Prg more COM friendly when using ESC key (Tracy Pearson) | -| 10/07/2018 | FDBOZZO | v1.19.51.4 | Bug Fix: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Jochen Kauz) | -| 09/07/2018 | FDBOZZO | v1.19.51.3 | Bug Fix: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (KIRIDES) | -| 20/06/2018 | FDBOZZO | v1.19.51.2 | Bug Fix: Cuando se exporta un DBF que pertenece a un DBC sin eventos, falla (Jairo Argüelles/Juan C.Perdomo) | -| 05/05/2018 | SSF1&FDB | v1.19.51.1 | Bug Fix: Si se usa capitalización en la información de las vistas, entonces la información relacionada no se exporta correctamente o completamente y puede perderse (SkySurfer1) | -| 25/03/2018 | FDBOZZO | v1.19.51 | Mejora: Agregado soporte para archivos de memoria (.MEM) | -| 16/03/2018 | FDBOZZO | v1.19.51 | Mejora: Agregado soporte para archivos de macros (.FKY) | -| 15/03/2018 | FDBOZZO | v1.19.50.3 | Bug Fix: Cuando se agregan archivos de texto no-VFP, como html,css,etc, en la sección de Text del proyecto, FoxBin2Prg no mantiene esta selección al regenerar el PJX, dejándolos en la sección Files (Darko Kezic) | -| 12/03/2018 | FDBOZZO | v1.19.50.1 | Bug Fix: Cuando se usa la equivalencia "extension: pj2=pjm" se debe manejar el pjm como un pj2 y no como un pjm de SourceSafe (Darko Kezic) | -| 03/03/2018 | FDBOZZO | v1.19.50 | Mejora: Permitir exportar a texto la información de DBFs cuya apertura está protegida por eventos del DBC | -| | FDBOZZO | v1.19.50 | Mejora: Nueva opción de configuración "PRG_Compat_Level": 0=Legacy, 1=Usar HELPSTRING para comentarios de métodos de clase en vez de "&&" | -| | FDBOZZO | v1.19.50 | Mejora: La información DevInfo de los PJX estará inhabilitada por defecto y se podrá activar con el nuevo switch BodyDevInfo | -| 30/01/2018 | FDBOZZO | v1.19.49.8 | Bug Fix: Cuando se convierte a texto una libreria corrupta con registros duplicados, se genera el error "The specified key already exists" (Kirides) | -| 11/01/2018 | FDBOZZO | v1.19.49.7 | Bug Fix: Cuando se convierte la estructura de un DBF puede dar error si existe un campo llamado I o X (Francisco Prieto) | -| 04/01/2018 | FDBOZZO | v1.19.49.6 | Bug Fix vcx/scx: Cuando se regenera la propiedad \_MemberData se agregan CR/LF por cada miembro, pudiendo provocar un error de "valor muy largo" (Doug Hennnig) | -| | FDBOZZO | v1.19.49.6 | Bug Fix vcx/scx: FoxBin2Prg debería ignorar los registros que el diseñador de FoxPro ignora (Doug Hennig) | -| 20/12/2017 | DH&FDBOZZO | v1.19.49.5 | Bug Fix dbf: Cuando se importan datos de un DB2 a DBF (con DBF_Conversion_Support = 8), los tabs al inicio de los memo se pierden (Doug Hennig) | -| 04/12/2017 | FDBOZZO | v1.19.49.4 | Cuando se usa ClassPerFile an Modo API y se importan clases simples, a veces sus nombres se toman sin comillas, provocando errores (Lutz Scheffler) | -| 03/12/2017 | JS&FDBOZZO | v1.19.49.3 | Bug Fix db2: Los campos "Double" asumen 2 decimales cuando se definen con 0 decimales (Jerry Stager) | -| 02/12/2017 | FDBOZZO | v1.19.49.2 | Bug Fix tx2 v1.19.49: No exporta los objetos a TX2 cuando se usa ClassPerFile (Lutz Scheffler) | -| 25/06/2017 | FDBOZZO | v1.19.49.1 | Bug Fix tx2 v1.19.49: El campo DEVINFO usado en los PJX se estaba usando en los demás binarios, dando errores | -| 12/04/2017 | DH&FDBOZZO | v1.19.49 | Bug Fix & Report pjx: No se estaba guardando el campo User en los archivos PJX (Doug Hennig) | -| 11/04/2017 | FDBOZZO | v1.19.49 | Mejora cfg : En modo objeto permitir indicar un objeto CFG en lugar de un archivo CFG (Lutz Scheffler) | -| | FDBOZZO | v1.19.49 | Bug Fix frx: Cuando dentro de una expresión se usa "&&", se corrompe el registro del FRX generado (Alejandro A Sosa) | -| 28/03/2017 | FDBOZZO | v1.19.49 | Mejora vcx: Implementada sintaxis para importar o exportar clases individuales usando "classlibrary.vcx::classname::import" y "classlibrary.vcx::classname::export" | -| 26/03/2017 | FDBOZZO | v1.19.49 | Mejora cfg: Se permite indicar un archivo CFG por parámetro de cualquier directorio para anular los CFG predeterminados de los subdirectorios, para casos especiales donde sea necesario | -| 25/03/2017 | FDBOZZO | v1.19.49 | Mejora vcx: Poder importar una clase (VC2 generado con ClassPerFile) en un VCX existente (Lutz Scheffler) | -| 23/03/2017 | FDBOZZO | v1.19.49 | Bug Fix vcx: No funciona la generación de una clase individual con "classlib.vcx::classname" (Lutz Scheffler) | -| - | - | ---from github--- |- | -| 2016/07/24 (dl=2342+32) | FDBOZZO | [v1.19.48](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.48.zip) | **Bug Fix**: ControlSource of OLE Objects containing quotes are not well regenerated from FR2 (Nathan Brown) | +| 2021/02/21 | LScheffler | [v1.21.02]() | **Doc**: Documentation from CodePlex integrated | +| | | | **Feature**: added option to create config file template | +| | | | **Doc**: Info screen-doc improved | +| | | | **Doc**: German translation improved | +| 2021/02/20 | LScheffler | | **Feature**: inserted option DBF_IncludeDeleted to allow including deleted records of DBF | +| 2021/02/19 | LScheffler | | **Feature**: inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way | +| 2021/02/15 | LScheffler | | **Feature**: inserted option ItemPerDBCCheck to split DBC processing from vcx / scx | +| | | | **Feature**: inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx | +| 2021/02/14 | LScheffler | | **Feature**: inserted option UseFilesPerDBC to split DBC processing from vcx / scx | +| 2021/03/03 | LScheffler | [v1.19.54]() | **Bug Fix**: DBF_Conversion_Condition, problem with macro expansion | +| 2021/02/23 | LScheffler | [v1.19.53]() | **Doc**: For Info screen and config-template, usage of MEM and FRX added | +| | | | **Bug Fix**: conversion prg -> vcx, files per class could create one class multiple times | +| 2021/02/15 | | | **Bug Fix**: processing directory, flush log file after loop instead of file | +| 2021/02/14 | LScheffler | [v1.19.52]() | **Bug Fix**: conversion prg -> dbf, fields with .NULL. value are incorectly recreated | +| | | | **Doc**: minor translations | +| | | | **Bug Fix**: conversion dbf -> prg, error if only test mode (toFoxBin2Prg.l_ProcessFiles is false) | +| 2020/04/01 | FDBOZZO | [v1.19.51.6](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.51.6) | Add some fixes to existent ut_tests | +| | | | **Bug Fix**: At least one of the class-per-file files do not have CR_LF at the end, then when assembling the class or form some structures (ENDIF/ENDCASE/ENDDEF/etc) can be joined with the next, making them erroneous (Ryan Harris) | +| | | | **Bug Fix**: Incompatible with VFPA (#36) (Eric Selje) | +| | | | **Bug Fix**: DBF conversion fails if some field name is a reserved keyword like UNIQUE (DAJU78) | +| | | | **Bug Fix**: VCX/SCX properties named "note" are not properly converted (Tracy Pearson) | +| | DH | | **Bug Fix**: Manejo de AutoIncrement incompatible con Project Explorer (Dan Lauer) [Fixed by Doug Hennig] | +| 2019/02/24 | FDBOZZO | [v1.19.51.5](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.51.5) | **Feature**: Issue#32 Make FoxBin2Prg more COM friendly when using ESC key (Tracy Pearson) | +| 2018/07/31 | FDBOZZO | [v1.19.51.4](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.51.4) | **Bug Fix**: Issue#26 The alphabetic ordering of ADD OBJECT's objects can cause that some objects be created in erroneous order, causing unexpected behavior (Jochen Kauz) | +| 2018/07/09 | FDBOZZO | [v1.19.51.3](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.51.3) | **Bug Fix**: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (KIRIDES) | +| 2018/06/20 | FDBOZZO | [v1.19.51.2](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.51.2) | **Bug Fix**: When converting to text a DBF that belongs to a DBC with events disabled, conversion fails (Jairo Argüelles / Juan C. Perdomo) | +| 2018/05/12 | FDBOZZO | [v1.19.51.1](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.51.1) | **Bug Fix**: If capitalization is used on a DBC view info, then related information is not exported correctly or entirely, so could be lost (SkySurfer1) | +| 2018/03/26 | FDBOZZO | [v1.19.51](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.51) | Add LOG info about config.fpw used and CodePage | +| | | | Enhanced HELP dialog info when running FoxBin2Prg with double-click | +| | | | **Feature**: FKY file structure support (MACRO file exporting only to text fk2) | +| | | | **Feature**: MEM file structure support (MEMORY file exporting only to text me2) | +| | | | **Feature**: Added automatic default language recognition for the supported ones (FR,DE,ES,EN) | +| 2018/03/15 | FDBOZZO | [v1.19.50.3](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.50.3) | **Bug Fix**: When adding some non-VFP text files like html,css,etc, in the text section of the project, FoxBin2Prg does not keep this selection when regenerating the PJX, leaving them in the files section (Darko Kezic) | +| 2018/03/13 | FDBOZZO | [v1.19.50.2](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.50.2) | **Bug Fix**: Regenerating pjm,"*" when CFG's extension:pj2=pjm does not regenerate all pjx included files (Darko Kezic) | +| 2018/03/12 | FDBOZZO | [v1.19.50.1](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.50.1) | **Bug Fix**: When using the CFG configuration "extension: pj2=pjm" treat the pjm as pj2 and not as SourceSafe-compatible pjm (Darko Kezic) | +| 2018/03/06 | FDBOZZO | [v1.19.50](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.50) | Added a new CFG "BodyDevInfo" switch to control the DevInfo body data of PJX. It is disabled by default because DevInfo normally have compiled data that can be regenerated and causes many differences on source control tools | +| | | | New PRG_Compat_Level CFG value to make generated SC2/VC2 code more PRG compatible | +| | | | **Bug Fix**: PJX homedir related fields do not always are sincronized | +| | | | Workaround to export DBF metadata without the security part of the DBC blocking it, when DBCEvents are enabled. | +| 2018/02/03 | FDBOZZO | [v1.19.49.8](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.8) | **Bug Fix**: When converting a VCX corrupted with duplicated objects to text, "The specified key already exists" error is thrown (Kirides) | +| 2018/01/11 | FDBOZZO | [v1.19.49.7](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.7) | **Bug Fix**: When converting a DBF an error is thrown if there is a field called X or I (Francisco Prieto) | +| 2018/01/04 | FDBOZZO | [v1.19.49.6](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.6) | **BugFix vcx/scx**: FoxBin2Prg should ignore the records that VFP Designer ignores (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/15) | +| | | | **BugFix vcx/scx**: FoxBin2Prg encodes MemberData property with CR/LF, which can cause "property '_memberdata' value is too long" error (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/16) | +| 2017/12/20 | FDBOZZO | [v1.19.49.5](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.5) | **BugFix DBF**: When FoxBin2PRG converts a DB2 file to a DBF file and imports the data (using DBF_Conversion_Support = 8), tabs at the start of lines in memo fields are lost (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/13) | +| 2017/12/04 | FDBOZZO | [v1.19.49.4](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.4) | **Bug Fix VCX**: When using ClassPerFile in API Mode and importing single classes, sometimes their names get unquoted, throwing errors / Reported by Lutz Scheffler (https://github.com/fdbozzo/foxbin2prg/issues/11) | +| 2017/12/03 | FDBOZZO | [v1.19.49.3](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.3) | **Bug Fix**: "Double" field types are explicitly defined with 0 decimals when no decimals are defined (Jerry Stager) | +| 2017/12/03 | FDBOZZO | [v1.19.49.2](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.2) | **Bug Fix**: ClassPerFile export didn't work correctly starting from v1.19.49 / Reported by Lutz Scheffler (https://github.com/fdbozzo/foxbin2prg/issues/9) | +| 2017/06/25 | FDBOZZO | [v1.19.49.1](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49.1) | **Bug Fix**: DEVINFO field is only used when doing PJX conversions. On other files throw errors | +| 2017/04/26 | FDBOZZO | [v1.19.49](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.49) | Replace Scripting.FileSystemObject MoveFile with Win32API equivalent | +| | | | Added support for using temporal CFG file for low-level API operations | +| | | | **Bug Fix**: Single-class export with "classlib.vcx::classname" syntax did not export (Lutz Scheffler) | +| | | | Added single-class import support ("library.vcx::classname::import") | +| | | | Added new single-class export syntax ("library.vcx::classname::export") | +| | | | Both single-class syntaxes doesn't require a CFG configuration | +| | | | **Bug Fix**: Partially corrupted frx/lbx info generated when using "&&" string inside field expressions (Alejandro A Sosa) | +| | | | sys(2023) secure temp: When sys(2023) points to "program files", then getenv("temp") is used | +| | | | Add more options to config.fpw to minimize interference from existent configs | +| | | | **Feature**: Save the contents of User field (Doug Hennig). Note: DevInfo is already supported | +| 2016/07/24 | FDBOZZO | [v1.19.48](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.48) | **Bug Fix**: ControlSource of OLE Objects containing quotes are not well regenerated from FR2 (Nathan Brown) | | | FDBOZZO | Preview-5 | **Bug Fix**: When a binary is regenerated from a PJ2 file containing files with parenthesis and spaces, the error "Error 36, Command contains unrecognized phrase/keyword" occurs (Nathan Brown) | -| | FDBOZZO | Preview-4 | **Defect Fix**: When fixing the multi-line memo bug, introduced a new defect on which a single-line memo is not decoded correctly (Nathan Brown) | -| | FDBOZZO | Preview-3 | **Bug Fix**: Bug Fix db2: When reading a miltuline-memo with old db2 data, an index out of range error occurs | -| | FDBOZZO | | **Bug Fix**: Bug Fix db2: When using ExcludeDBFAutoincNextval: 1 setting in FoxBin2Prg.cfg and at the same time the data import with an AutoInc field, then error "Error 2088, Field is read-only" occurs (Nathan Brown) | -| | FDBOZZO | Preview-2 | **Bug Fix**: DBF conversion restrictions are not always respected when using particular CFGs for DBFs (Nathan Brown) | -| | AndyGK63 | Preview-1 | **Bug Fix**: Error message 'variable tcOutputFile not found' (german version) (Andy Kasper) | -| | AndyGK63 | | **Bug Fix**: Menu location 'Before' always changed to 'after' when convert (Andy Kasper) | -| 2016/06/09 (dl=2180) | FDBOZZO | [v1.19.47](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.47.zip) | **Fix**: Added multi-line support for memo data when importing/exporting | -| | FDBOZZO | | **Feature**: Added support for appending data from DB2 to DBF with the new value DBF_Conversion_Support=8. All datatypes except General. (Walter Nicholls) | -| | DougHennig | | **Bug Fix**: Added variable declaration in vbs scripy (Doug Hennig) | -| | DougHennig | | **Bug Fix**: Fixed incorrectly named variable in vbs script (Doug Hennig) | -| | DougHennig | | **Bug Fix**: Added missing assignment in vbs script (Doug Hennig) | -| | DougHennig | | **Enhancement**: Put double quotes around path in case in contains single quote in vbs scripts (Doug Hennig) | -| | FDBOZZO | | **Bug Fix**: Added "+16" to Debug flags to maintain internal defaults to not generate timestamps on xx2 files in vbs scripts | -| | FDBOZZO | | **Bug Fix**: When a filename {""**""} is specified with a type {""**""}, an automatic regeneration of all binary files is made from text files (Alejandro Sosa) | -| 2016/02/07 (dl=1847) | FDBOZZO | [v1.19.46](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.46.zip) | **Bug Fix**: set_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo) | -| | | | **Feature**: Added internal support for querying directory cfg information, with a new optional parameter, for API methods that require it (ie: get_Ext2FromExt, hasSupport**) | -| | | | **Feature**: Convert FUNCTION to PROCEDURE for maintaining compatibility with the way that VFP save methods on binaries | -| | | | **New fb2p_diff.exe**: Allow a **quick Diff** of VFP9 binaries, for those that don't need converting to text manually | -| | | | **Bug Fix**: When processing a directory or a project with all the files, sometimes an "Alias already in use" error may occur (Dave Crozier) | -| | | | **Bug Fix mnx**: When menu options contains '&&' in their texts, menu binary is corrupted when regenerated (Walter Nichols) | -| | | | **Bug Fix fb2p_diff**: When calling {"fb2p_diff.exe"} from a directory out of FoxBin2Prg dir, an error is thrown because FoxBin2Prg is not found (Mike Potjer) | -| | | | **Feature**: In some environments and under some conditions WSscript.Shell object can cause problems, so now it's replaced with Win32 native functions (Aurélien Dellieux) | -| | | | **Bug Fix frx/lbx**: Ordering of report objects changes the ZOrder of near objects that can overlap, which can cause bad visualization and printing (Ryan Harris) | -| | | | **Bug Fix frx/lbx**: When regenerating reports or labels with multiline texts center or right aligned, alignment is not completely right (Ryan Harris) | -| | | | **Bug Fix frx/lbx**: When grouping objects in design mode, generating text and regenerating binary cause the lost of the grouping (does not affect data) (Lutz Scheffler) | -| | RALFXWAGNER | | **Bug Fix Pjx**: SPR and MPR files are not correctly identified in the PJX Project info (Ralf Wagner) | -| | | | **Bug Fix Pj2**: An error is thrown when regenerating a PJX from a PJ2 when some file have parenthesis in it's name (EddieC) | -| | | | **Feature (dbf)**: New ExcludeDBFAutoincNextval parameter for minimizing DB2 differences (edyshor) | -| | | | **Bug Fix**: When processing a file on root dir, a 2062 error occurs (Aurélien Dellieux) | -| 2015/06/21 (dl=1302) | FDBOZZO | [v1.19.45](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.45.zip) | **Bug Fix mnx**: When a menu that uses single quotes or an expression in the option's MESSAGE is exported to text, when regenerating the menu from the text there are parts of the message that are cut off (Mike Potjer) | -| | | | **Bug Fix**: When processing multiple PJ2 files, an error "variable llError not defined" can occur (Lutz Scheffler) | -| | | | **Bug Fix pjx/pj2**: PJX/PJ2 projects that references files from other disk units throw errors for those files when processing with {""**""} or {""**-""} options (Matt Slay) | -| | | | **Bug Fix**: When processing multiple-files, sometimes encountered errores are not reported | -| | | | **Feature (API-PJX)**: New loadModule() method that returns the internal FoxBin2Prg Project object when the full name of an existent project file is specified | -| | | | **Feature (API-PJX)**: New getFilesNotFound() method for the FoxBin2Prg's Project object, that returns the count of files referenced in the project that are not found on disk and an array with all the existence state of each file | -| 2015/05/31 (dl=1224) | FDBOZZO | [v1.19.44](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.44.zip) | Bug Fix: In certain PCs FoxBin2Prg does not return error codes when called from an external program, so another terminating method is implemented (Ralf Wagner) | -| | | | Feature: Allow exporting DBF data when using {"DBF_Conversion_Support:1"} and optional individual CFG files | -| | | | Bug Fix: A previous bug fix on cascading errors management caused reseting the error status, making that sometimes errors don't get reported | -| 2015/05/10 (dl=1150) | FDBOZZO | [v1.19.43](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.43.zip) | Feature: Added new CFG setting "RemoveZOrderSetFromProps" for removing ZOrderSet property when you want to maintain the original class ZOrder always, avoid unnecesary differences and fix some visual on top/on bottom control problems (Ryan Harris) | -| | | | Feature: Do not allow progressbar window become the default output window of ? command (Lutz Scheffler) | -| | | | Bug Fix: Fixed VFP9 SP1 validation message | -| | | | Bug Fix: FoxBin2Prg PRG2BIN does not return error codes (Ralf Wagner) | -| | | | Bug Fix: FoxBin2Prg sometimes generates an OLE error when executed for second time on a file with problems (Fidel Charny) | -| | | | Some enhancements in security of DLL declarations and On Escape management | -| | | | Defect Fix: Accesing DataSessionID property throws an error because of the change of internal classes between custom and session | -| | | | Bug Fix: When a form have AutoCenter=.T., there are times that when regenerating the binary and executing it does not shows centered (Esteban Herrero) | -| 2015/04/16 (dl=1050) | FDBOZZO | [v1.19.42.d](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.42.d.zip) | Feature: Added VFP 9 SP1 runtime validation | -| | | | Bug Fix: Broken SourceSafe compatibility because an error is thrown when querying for file support (Tuvia Vinitsky) | -| | | | Bug Fix scx/vcx: Process only one TEXT/ENDTEXT nesting level because TEXT/ENDTEXT can't be nested (Lutz Scheffler) | -| | | | Feature: Make some error descriptions more informative and precise (Lutz Scheffler) | -| | | | Feature (API): Allow specifying inputFile with relative path (Lutz Scheffler) | -| | | | Bug Fix scx: Metadata of Dataenvironment not properly generated when Dataenvironment is renamed | -| | | | Bug Fix: Added PJX/PJ2 generation when specifying "file.pjx", "*" (Lutz Scheffler) | -| | | | Some enhancements in german translations (Lutz Scheffler) | -| | | | Feature: Added multiprocessing of projects ({"**.pjx, **.pj2"}) when specifying "file.pjx", "**" (Lutz Scheffler) | -| | | | Change FoxBin2Prg base class from custom to session (Lutz Scheffler) | -| | | | Feature: Allow processing all project files without converting the PJX/2, with "*-" (Lutz Scheffler) | -| | | | Bug Fix pjx/pj2: If end of line (CR+LF) is used on pjx's "Build" properties data, generated pj2 is malformed | -| | | | Feature: Default foxbin2prg.cfg configuration file renamed to foxbin2prg.cfg.txt to no overwrite user cfg (Lutz Scheffler) | -| | | | Feature: Added DOS errOut output support and implemented in writeErrorLog when logging errors | -| | | | Feature: Added full support for *? file masks for multi-processing files of the same extension | -| | | | Feature (API): Added new parameter to allow alternative main CFG (Lutz Scheffler) | -| | | | Feature (API): Added new get_Processed() method for obtaining information about processed files (Lutz Scheffler) | -| | | | Feature: Added new file processing output to DOS stdOut (Lutz Scheffler) | -| | | | Bug Fix: Fixed processing cancelation with Esc key | -| | | | Feature: Sort table/view fields alphabetically to facilitate diffing and merging, while maintaining a list with the original field order for correct DBC regeneration (Ryan Harris) | -| | | | Feature: Apply ClassPerFile to DBC connections, tables, views and SPs (Ryan Harris) | -| | | | Bug Fix mnx: Empty Pad name is not kept when regenerating a menu defined with and empty Pad name (Lutz Scheffler) | -| | | | Feature (API): New property "l_ProcessFiles" that allow setting to .F. when using foxbin2prg as object to get Processing file info with get_Processed method without actual processing | -| | | | Bug Fix frx/lbx: Trimmed some extra CR,LF,TAB from FR2/LB2 tag that where included in previous versions (Ryan Harris) | -| | | | Bug Fix scx/vcx/dbc: Delete ERR files when processing with UseClassPerFile switch (Ryan Harris) | -| | | | Feature: Implemented CFG inheritance between directories | -| | | | Feature (API): New method get_DirSettings() that returns the CFG settings object for the indicated directory (Lutz Scheffler) | -| | | | Feature: Allow generation of text for a single class of a librery when using ClassPerFile (Lutz Scheffler) | -| | | | Feature (API): Renowned method names to English to facilitate international understanding (Mike Potjer) | -| 2015/01/18 | FDBOZZO | [v1.19.41](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.41.zip) | - Bug Fix db2: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes. | -| | | | - Bug Fix vcx/scx: Erroneous detection of PROCEDURE/ENDPROC structures when used as parameters of LPARAMETERS and start in new line (Ryan Harris) | -| 2015/01/11 | FDBOZZO | [v1.19.40](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.40.zip) | - Enhancement frx/lbx: Clean ASCII 0 from expression field for Dataenvironment, Cursors and Relations | -| | | | - Bug fix frx/lbx: When using Dataenvironment with more than one cursor, remaining cursors are lost | -| | | | - Feature: Added new configuration "ShowProgressbar:2" to activate the progressbar only when a directory is selected and deactivate it for individual files (Jim Nelson) | -| | | | - Bug fix dbf: [Error 12, variable "tcOutputFile" is not found](Error-12,-variable-_tcOutputFile_-is-not-found) when DBF_Conversion_Support=4 and output file is the same as existent one (Mike Potjer) | -| | | | - Feature scx/vcx/sc2/vc2: Added new code checking to find duplicated object names for the same class and container to notify those cases of file corruption | -| | | | - Fix for "Error 2183: Operation requires that SET MULTILOCKS is set to ON" in some DBF convertions | -| 2015/01/01 | FDBOZZO | [v1.19.39](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.39.zip) | - Bug fix vbs: vbs scripts does not show FoxBin2Prg process errors correctly | -| | | | - When using BIN2PRG or PRG2BIN keywords with FoxBin2Prg command line, allow processing one file (Mike Potjer) | -| | | | - Add keyword SHOWMSG and use INTERACTIVE keyword for an interactive dialog (Mike Potjer) | -| | | | - When processing a directory from commandline with foxbin2prg alone and the INTERACTIVE keyword, show a dialog to ask what to process (Mike Potjer) | -| | | | - Bug fix dc2: DisplayClass and DisplayClassLibrary values got the wrong value "Default" and not the corresponding own values (Christopher Kurth/Ryan Harris) | -| | | | - Deleted recompilation scripts for language, because it is an automatic selection now | -| 2014/12/13 | FDBOZZO | [v1.19.38](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.38.zip) | - Feature: Now is possible to use FoxBin2Prg for batch conversions directly from the File Explorer (see README.txt), without the need of vbs scripts, that sometimes can make trouble or are not permitted by IT department (Francisco Prieto) | -| | | | - Feature: Enhanced Multilanguage support by 3 ways: 1-Automatic [DEFAULT](DEFAULT) (depending on VERSION(3)); 2-By parameter, using the new method ChangeLanguage(); 3-Using the new setting "Language" in foxbin2prg.cfg | -| | | | - Feature: Detection of duplicated methods on vc2/sc2 files to notify those cases of vcx/scx file corruption (Álvaro Castrillón) | -| 2014/11/30 | FDBOZZO | [v1.19.37](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.37.zip) | - Feature: Added Class per file support, configurable with UseClassPerFile:1 (Ryan Harris/Lutz Scheffler/Álvaro Castrillón) | -| | | | - Feature: foxbin2prg.cfg configuration options can now have "&&" comments at the right of the values (edyshor) | -| | | | - Feature: Added support for the new "ClearDBFLastUpdate" setting in FoxBin2Prg.cfg, activated by default to minimize DB2 differences (edyshor) | -| | | | - Feature: Enhanced progressbar indication, with more detailed information | -| | | | - Feature: vcx/scx broken properties autofix because an erroneous manual user edition on the vcx/scx | -| | | | - Feature: vcx/scx autofix por Hidden and Protected duplicated properties (some type of corruption or bad manual user edit) | -| | | | - Feature: Added a validation for FRX to notify the user if it is not a VFP 9 REPORT | -| | | | - Feature: Batch convertions can now be interrupted with the Esc key | -| | | | - Bug Fix dbf: "Error 1903, String is too long to fit" when converting long DBF files with "DBF_Conversion_Support:4" to text (edyshor) | -| | | | - Bug Fix vcx/scx: Sometimes some properties get the description of a similarly named property | -| | | | - Bug Fix vcx/scx: Hidden and Protected properties are not ordered alphabetically | -| | | | - Various Code Optimizations for enhancing processing performance | -| 2014/10/08 | FDBOZZO | [v1.19.36](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.36.zip) | - Bug fix mnx: When generating mn2 text view, menu all pad IDs are generated as _000000000 (bug introduced in v1.19.35) | -| | | | - Enhancement: New "{"VFP9_FoxBin2Prg.vbs"}" script for "SendTo" menu, that replaces FoxBin2Prg.exe in this menu and adds a process status message | -| 2014/10/05 | FDBOZZO | [v1.19.35](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.35.zip) | - Enhancement: Always generate the same Timestamp and UniqueID for binaries, for minimizing differences when regenerating them (Marcio Gomez G.) | -| 2014/09/19 | FDBOZZO | [v1.19.34](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.34.zip) | - Bug Fix: If run from VFP Command Window and there is a file in use, an error is thrown because can't capitalize source file (Jim Nelson) | -| 2014/08/29 | FDBOZZO | [v1.19.33](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.33.zip) | - Bug Fix mnx: Menu doesn't generate well when there is a Bar of #BAR type without a name (Peter Hipp) | -| | | | - Bug Fix mnx: If a menu option have an associated Procedure with 1 line of code, the Procedure is converted to Command (Peter Hipp) | -| 2014/08/26 | FDBOZZO | [v1.19.32](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.32.zip) | - If exists a property called "text" it is confused with a text/endtext structure (Peter Hipp) | -| 2014/08/22 | FDBOZZO | [v1.19.31](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.31.zip) | - Trash cleanup code on binary methods, normally added by tools like ReFox and others | -| | | | - Added EXE version number when generating a debug LOG file | -| | | | - Enhanced recognition of #IF..#ENDIF instructions when there are spaces between # symbol and the command name | -| | | | - Added capitalization normalization for input files | -| | | | - Added new c_Language property for querying actual compiled language (EN,ES,DE,etc) | -| 2014/08/10 | FDBOZZO | [v1.19.30](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.30.zip) | - Bug Fix vcx/scx: Bad EndText (from Text/EndText block) detection when the previous line ends with "," or ";" (Jim Nelson) | -| | | | - Bug Fix vcx/scx: Some methods are not alphabetically sorted in some inheritance situations (Ryan Harris) | -| | | | - Added FoxUnit test cases to bug fix confirmation of both | -| 2014/08/01 | FDBOZZO | [v1.19.29](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.29.zip) | - Bug Fix vcx/scx: Bad Text (from Text/EndText block) detection when there is a line that begins with a "text" field and previous line end with "," in regards of ";" {"(M_N_M)"} | -| | | | - Optimizations and refactoring | -| 2014/07/26 | FDBOZZO | [v1.19.28](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.28.zip) | - Feature: Added new options in foxbin2prg.cfg ({"DBF_Conversion_Included, DBF_Conversion_Excluded"}) and in filename.dbf.cfg ({"DBF_Conversion_Order, DBF_Conversion_Condition"}) for exporting DBFs data to text when {"DBF_Conversion_Support"} is 4 (Edyshor) | -| 2014/07/18 | DH/FDBOZZO | [v1.19.27](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.27.zip) | - Feature: Added support for exporting DBF data for DIFF when using **{"DBF_Conversion_Support: 4"}** in foxbin2prg.cfg (It's intended just for DIFF small DBFs, as config ones, not for true Data export. Binary fields are not exported and there is not an Import Data feature) (Doug Hennig) | -| 2014/07/06 | FDBOZZO | [v1.19.26](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.26.zip) | - Feature: Take out asterisks between "ENDPROC" and "PROCEDURE", analyzed in that exact order, to regenerate binary without errors. (Daniel Sánchez) | -| | | | - Feature: Add the l_DropNullCharsFromCode configuration option, enabled by default, to allow taking out NULLs from source code. (Matt Slay) | -| | | | - Bug Fix cfg: ExtraBackupLevel does not work when using multi-configuration | -| 2014/06/25 | FDBOZZO | [v1.19.25](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.25.zip) | - When processing one or multiple files with vbs scripts, show a message indicating the status of the generation, and show the error log if any error occurs (Pedro Gutiérrez M.) | -| | | | - Code cleaning and normalization | -| | | | - ClearUniqueID is True by default for tx2 files | -| | | | - OptimizeByFilestamp is False by default, to avoid possible automatic modifications made by VFP when opening a form or a classlib | -| | | | - New AllowMultiConfig switch enabled by default, that allow a foxbin2prg.CFG file per directory, overriding main CFG (Mario Peschke) | -| 2014/06/15 | FDBOZZO | [v1.19.24](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.24.zip) | - Bug Fix scx/vcx: The absence of AGAIN keyword on some USE commands throws "tabla in use" error if used the PRG version from VFP command window (Matt Slay) | -| | | | - Bug Fix scx/vcx: A table field called "text" that begins the line can be confused with the TEXT/ENDTEXT structure and can wrong recognize the rest of the code (Mario Peschke) | -| | | | - Bug Fix scx/vcx: GetTimeStamp internal method throwse an error when day or month have just 1 digit (happen from v1.19.23) | -| | | | - New "{"run_aftercreate_db2"}" event that permits execution of an external program when using FoxBin2Prg as object (for example, to export table data) | -| | | | - New FoxUnit Unit Tests to verify new functionality and "text" bug fix | -| | | | - Added foxbin2prg_de.h file translation of most messages to German (Mario Peschke) | -| 2014/06/07 | FDBOZZO | [v1.19.23](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.23.zip) | - Timestamps and UniqueIds values are back on binaries, and they are just cleaned up on tx2 files if NoTimestamps and ClearUniqueID flags are set. This minimizes some differences on the binary side | -| | | | - Added sccdata default value when regenerating PJX binary (which is automatically completed on the PJX when opened anyway) | -| | | | - Fixed timestamp evaluation for "OptimizeByFilestamp" optimization that evaluates just .??X files, and now .??T (memo) filestamps are evaluated too | -| | | | - Fixed missing BorderColor property on props_optiongroup.txt file | -| | | | - Fixed missing Stretch property on props_image.txt file (Kenny Vermassen) | -| | | | - Fixed missing Enabled property on props_image.txt file | -| 2014/05/17 | FDBOZZO | [v1.19.22](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.22.zip) | - Bug Fix vcx/scx: Picture property of a form class does not show the image. Does not happen with control pictures (Fidel Charny) | -| | | | - Bug Fix scx/vcx: Incorrect detection of PROCEDURE/ENDPROC/TEXT/ENDTEXT that can cause lost of some methods in some circunstantes (Andres Mendoza) | -| | | | - Bug Fix scx/vcx: Some options from the optiongroup control loose there width when subclassed from a class with autosize=.T. (Miguel Duran) | -| | | | - Added evaluation and generation of properties by classtype, when applicable | -| | | | - Added support of property evaluation from external file ({"props_*.txt"}) | -| | | | - Added enhanced Unit Tests of bitmap comparisons of screen captures before/after (the original is compared with the regenerated of the regenerated binary, for more accuracy) | -| | | | - A lot of garbage collect optimizations all over the code | -| | | | - Added Unit Testing of configuration by defaults, by file and by parameters | -| | | | - Added Unit Testing for checking the generation of classes, forms, reports and menus | -| | | | - Added new switch OptimizeByFilestamp (active by default) for making possible deactivation of this regeneration optimization by file timestamp, in case someone wants to force regeneration allways | -| 2014/05/01 | FDBOZZO | [v1.19.21](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.21.zip) | - Added support to convert to text or binary all files of a project from pjx or pj2 (Matt Slay) | -| | | | - Added optimization on the search of the capitalization program when processing projects | -| | | | - Added keyword AGAIN on table openings, for enhancing concurrence (Jim Nelson) | -| | | | - Added optimization based on file timestamps for regenerating only newer binaries and tx2 files (Matt Slay) | -| | | | - Added English translation in foxbin2prg_en.h for the LOG message of new timestamp optimization | -| | | | - section simplification: Methods and arrays doesn't require preceding * and ^ symbols anymore. | -| 2014/04/17 | FDBOZZO | [v1.19.20](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.20.zip) | - New: CDX filename in DB2 files have relative paths now. This help show less differences when regenerating DB2 files from different paths | -| 2014/04/02 | FDBOZZO | [v1.19.19](https://github.com/fdbozzo/foxbin2prg/archive/v1.19.19.zip) | - New: DBF Hook {"run_AfterCreateTable"} that let intercalate a personalized process between DBF creation and index creation when processing a DB2 file (example program in {"tests\demo_hook_dbf.prg"} included) (Fidel Charny) | -| 2014/03/25 | FDBOZZO | v1.19.18 | - Bug Fix vcx/scx: Image controls with stretched icons or images, get redimensioned to original size when regenerating binary (Arturo Ramos) | -| | | | - Bug Fix vcx/scx: Library level comments are not kept (Ryan Harris) | -| 2014/03/16 | FDBOZZO | v1.19.17 | - Bug Fix frx/lbx: Double-quoted expressiones make fx2/lb2 files corrupt (Ryan Harris) | -| | | | - Bug Fix frx/lbx: Multiline Comments are lost (Ryan Harris) | -| | | | - frx/lbx tag2 field enhance: when used for tooltips, real values are shown in regards of b64 normal encoding | -| | | | - Bug Fix mnx: Multiline Comments on Bars/Pads makes MN2 file corrupt (Ryan Harris) | -| | | | - Bug Fix mnx: Some procedures doesn't generate correctly (Ryan Harris) | -| | | | - English translation file foxbin2prg_en.h syntax corrected (Ryan Harris) | -| | | | - Bug Fix vcx/scx: Lowercase saved Dataenvironment property causes Reserved2 value to be not calculated | -| | | | - Bug Fix frx: character on print condition on field makes fr2 file corrupt | -| | | | - Bug Fix mnx: Using double-quotes on prompt option fields makes mn2 file invalid (Ryan Harris) | -| 2014/03/10 | FDBOZZO | v1.19.16 | - Bug Fix vcx/scx: properties loose there hidden/protected visibility when no default value assigned (Ryan Harris) | -| | | | - Bug Fix vcx/scx: character value with length >255 in addobject property regenerates with tag included (Ryan Harris) | -| | | | - Bug Fix vcx/scx: When regenerating binari file with empty procedure makes FoxPro crash when trying to modify it on IDE | -| | | | - Bug Fix scx/vcx: Binary can be corrupted if the class have a multiline comment (Tested on: Ffc\_frxcursor.vcx) | -| | | | - Bug Fix: If _memberdata contains CR inside there values, they can be lost when regenerating tx2 text files | -| | | | - Bug Fix: Property values with spaces at the right loose this spaces | -| | | | - Bug Fix: When 2 or more methods share the same name (ej: met and met2) tx2 text file gets corrupted (Ryan Harris) | -| 2014/03/04 | FDBOZZO | v1.19.15 | - Bug Fix: OLE information cleared when a legacy TX2 is processed | -| | | | - Bug Fix: Default value of NoTimestamp = 0 ==> Now is 1, as should be | -| | | | - Bug Fix: DBFs backlink info cleared when DBC is recreated (Ryan Harris) | -| | | | - Feature: Lowercase capitalization in tx2 filename headers to minimize differences | -| 2014/03/01 | FDBOZZO | v1.19.14 | - Load of configuration is optimized (foxbin2prg.cfg) to read cfg only once for a massive processing of multiple conversions | -| | | | - .vbs scripts have been modified to respect the conversion support configuration defined in foxbin2prg.cfg configuration file | -| | | | - 2 new functions where added to enhance and encapsulate the external use of the evaluation of the conversion support (requires previous call to EvaluarConfiguracion()). Used on .vbs scripts | -| | | | - ExtraBackupLevels Regression: when no defined value, no backup is made | -| | | | - New default value ClearUniqueID = 1 in foxbin2prg.cfg for minimizing differences in the SCM | -| 2014/02/26 | FDBOZZO | v1.19.13 | - Bug Fix: If NoTimestamp setting of foxbin2prg.cfg is changed, opposite value is evaluated (Ryan Harris) | -| | | | - Encapsulated foxbin2prg.cfg file for enhancing FoxUnit automated testing | -| | | | - Internal change of property {"l_UseTimestamps"} by {"l_NoTimestamps"} | -| | | | - With ExtraBackupLevels setting you can now deactivate backups if setting to 0 (Ryan Harris proposal) | -| | | | - foxbin2prg.log file checking dropped, to activate the log file use foxbin2prg.cfg setting Debug=1 | -| | | | - In TX2 header files show the file without path, because genereting it from different places makes unnecesary differences in Diff (Ryan Harris proposal) | -| | | | - Created a lot of FoxUnit automated tests to check all settings of foxbin2prg.cfg configuration file | -| 2014/02/23 | FDBOZZO | v1.19.12 | - Generation of VC2/SC2 with new header metadata for centralizing uniqueid, timestamp and ZOrder and big reduce of differences in a diff/merge (enhancement proposed by Ryan Harris) | -| | | | - BINARY regeneration from the new metadata header (remains compatible with old VC2/SC2) | -| | | | - FoxUnit test cases fixed for the new functionality | -| | | | - Cleaning, Refactorization and optimization of Code | -| | | | - Presentation enhancement of VC2/SC2 file headers | -| 2014/02/13 | FDBOZZO | v1.19.11 | - WITH/ENDWITH optimizations with a conversion performance gain up to 16% more fast | -| | | | - Bug Fix: Just one level of #IF was contemplated, throwing an error if more levels are nested | -| | | | - Bug Fix: When regenerating the PJX, default home directory not always was correct | -| | | | - New FoxUnit automated test added to check bug fix of nested #IF | -| 2014/02/09 | FDBOZZO | v1.19.10 | - Added parametrization to enable configuration support for each kind of binary (0=None, 1=Only TX2, 2=TX2 and Binary) | -| | | | - Fixed default NoTimestamps setting | -| | | | - Adjusted some FoxUnit test cases | -| | | | - EXPERIMENTAL: Added new configuration parameter "ClearUniqueID" in foxbin2prg.cfg for Clearing UniqueID in binaries and text versions. Works well and apparently FoxProdoesn't make use of it, but more testing is required | -| 2014/02/08 | FDBOZZO | v1.19.9 | - New configuration items in foxbin2prg.cfg | -| | | | - Localization Bug: When recompiling with localization file foxbin2prg_en.h renamed to foxbin2prg.h, syntax error occurs | -| | | | - Debug information of .LOG files enhanced | -| | | | - New parametrization for the number of backups, now just one .BAK by default (earlier was 10) | -| | | | - Enabled configuration file foxbin2prg.cfg by default | -| | | | - Change in default behavior: Now Timestamps are disabled by default. You can change this on foxbin2prg.cfg | -| 2014/02/03 | FDBOZZO | v1.19.8 | - Bug fix: ActivePage error when executing a regenerated binary with a PageFrame / New FoxUnit test to test solution | -| | | | - Added cNoTimestamps='1' to batch conversion vbs scripts | -| 2014/02/02 | FDBOZZO | v1.19.7 | - Added Ole encapsulation in just 1 place | -| | | | - Adjusted Blocksize of generated binaries | -| | | | - New cNoTimestamps parameter. If '1' is given, then no timestamps are generated (useful for diff/merge) | -| 2014/01/31 | FDBOZZO | v1.19.6 | - Added SourceSafe support (SCCAPI) for Diff and Merge | -| | | | - SCX bug fix: Dataenvironment sometimes doesn't regenerates correctly | -| | | | - Functionality change: Automatic recompilation enabled by default again because some methods doesn't show on form edit. Can be deactivated passing '0' to cRecompile param | -| 2014/01/26 | FDBOZZO | v1.19.5 | - Added Multilanguage support and Localization file for English. To use it rename the new file foxbin2prg_en.h to foxbin2prg.h and recompile | -| 2014/01/24 | FDBOZZO | v1.19.4 | - New "Recompile" parameter for recompiling from PJX directory (if provided) | -| | | | - Functionality change: Now FoxBin2Prg does not recompile bins for default, because it do on bin dir and that can throw compilation errors. Use new parameter if needed or recompile by your own | -| | | | - DBC: Added support for multiline "comment" property | -| | | | - VBS Batch scripts: Added progress bar | -| 2014/01/18 | FDBOZZO | v1.19.3 | - Change on TXT timestamps to preserve empty values that can save a lot of differences when diff/merging. Previously empty timestamps get converted to datetime | -| | | | - Optimization on TXT generation of ZOrders | -| 2014/01/13 | FDBOZZO | v1.19.2 | - Fix on PJX regeneration caused for something missing in the last change of "Autor" to "Author" | -| 2014/01/08 | FDBOZZO | v1.19.1 | - Small change on TX2 headers to drop the "Generated" timestamp that causes innecesary differences / Updated the EXE version with the correct one | -| 2014/01/08 | FDBOZZO | v1.19 | - Added new debug flag on .vbs scripts to show a "End process" message for batch processing | -| | | | - Bug Fix scx/vcx: Improper order of Reserved3 props cause event access to not fire | -| | | | - Bug Fix dbf: Improper index generated when the type is Candidate | -| | | | - Added support for converting SourceSafe PJM to FoxBin PJ2 | -| | | | - Added validation for Menus when converting from older versions, so user can convert it to VFP 9 format first | -| | | | - Change in MN2 property: "Autor" was changed to "Author". You can add the missing letter to MN2 or regenerate | -| 2014/01/07 | FDBOZZO | v1.18.1 | - Added a vbs script (Normalize_FileNames.vbs) for FileNames normalizing in batch mode, and updated FileName_Caps.exe and the call on FoxBin2prg | -| 2014/01/06 | FDBOZZO | v1.18 | - mnx bug fix: Generation of DO Procedure or Command when no Procedure or Command available to call when empty option is created (Fidel Charny) | -| | | | - Added support for DBFs earlier than VFP 9 for generating DB2 text, but DBF regeneration is in VFP 9 version! | -| | | | - dbf bug fix: DBFs linked to a DBC that use long field names throw error when regenerating DBFs | -| | | | - dbf bug fix: Some view info is lost when generating text from DBC | -| 2014/01/03 | FDBOZZO | v1.17 | - mnx bug fix: Location value is lost and some menus doesn't render properly (Fidel Charny) | -| | | | - Added 2 VB scripts (Convert_VFP9_BIN_2_PRG.vbs and Convert_VFP9_PRG_2_BIN.vbs) for batch converting of dirs and files if a shortcut is placed on "SendTo" user folder | -| | | | - Added new Unit Testing cases for menus | -| 2014/01/02 | FDBOZZO | v1.16 | - Added support for Menus (MNX) | -| 2013/12/18 | FDBOZZO | v1.15 | - Added support for DBF, DBC and CDX binaries | -| 2013/12/15 | FDBOZZO | v1.14 | - scx bug fix: autocenter property do nothing (Arturo Ramos) | -| | | | - scx bug fix: Last COMMENT record is lost (Fidel Charny) | -| 2013/12/08 | FDBOZZO | v1.13 | - frx/lbx bug fix: "Error 1924, TOREG is not an object" on some reports (Fidel Charny) | -| 2013/12/08 | FDBOZZO | v1.12 | - Added support for Reports (FRX) and Labels (LBX) | -| 2013/12/08 | FDBOZZO | v1.11 | - scx/vcx bug fix: _memberdata value corrupted when the value is a long one (Edgar Kummers) | -| 2013/12/07 | FDBOZZO | v1.10 | - scx/vcx bug fix: when there are methods with the same name, there code is assigned to erroneous objects (Fidel Charny) | -| 2013/12/07 | FDBOZZO | v1.9 | - scx/vcx bug fix: last fix keep loosing some properties (Fidel Charny) | -| 2013/12/06 | FDBOZZO | v1.8 | - scx/vcx bug fix: last fix keep loosing some properties (Fidel Charny) | -| | | | - sort function encapsulated and reused on BIN and TXT generation for safety | -| 2013/12/03 | FDBOZZO | v1.7 | - vcx/scx bug fix: some properties get lost and picture clause is not displayed if "Name" is not the last property on memo (Fidel Charny) | -| | | | - Added verification of readOnly files and report this to Log file in debug mode | -| 2013/12/02 | FDBOZZO | v1.6 | - Complete refactoring of BIN and TXT generation | -| | | | - Changes of various algorithms | -| | | | - scx/vcx bug fix: Array properties didn't save (Fidel Charny) | -| | | | - Unit testing cases with FoxUnit | -| 2013/11/27 | FDBOZZO | v1.5 | - Bug fix: On some forms dataenvironment didn't regenerate appropiately (Luis Martínez) | -| 2013/11/27 | FDBOZZO | v1.4 | - Added mask support | -| | | | - Added support for extension configuration on file foxbin2prg.cfg, so one can use "vca" instead of "vc2", etc | -| | | | - Added support for a new parameter for Log generation | -| 2013/11/24 | FDBOZZO | v1.3 | - Bug fixes, code cleaning, refactoring | -| 2013/11/24 | FDBOZZO | v1.2 | - Bug fixes, code cleaning, refactoring | -| 2013/11/22 | FDBOZZO | v1.1 | - Bug fixes | -| 2013/11/22 | FDBOZZO | v1.0 | - Initial creation of clases on prg and support of VCX/SCX/PJX files | +| | FDBOZZO | Preview-4 | **Defect Fix**: When fixing the multi-line memo bug, introduced a new defect on which a single-line memo is not decoded correctly (Nathan Brown) | +| | FDBOZZO | Preview-3 | **Bug Fix**: Bug Fix db2: When reading a miltuline-memo with old db2 data, an index out of range error occurs | +| | FDBOZZO || **Bug Fix** db2: When using ExcludeDBFAutoincNextval: 1 setting in FoxBin2Prg.cfg and at the same time the data import with an AutoInc field, then error "Error 2088, Field is read-only" occurs (Nathan Brown) | +|| FDBOZZO | Preview-2 | **Bug Fix**: DBF conversion restrictions are not always respected when using particular CFGs for DBFs (Nathan Brown) | +|| AndyGK63 | Preview-1 | **Bug Fix**: Error message 'variable tcOutputFile not found' (german version) (Andy Kasper) | +|| AndyGK63 || **Bug Fix**: Menu location 'Before' always changed to 'after' when convert (Andy Kasper) | +| 2016/06/09 | FDBOZZO | [v1.19.47](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.47) | **Bug Fix**: Added multi-line support for memo data when importing/exporting | +|| FDBOZZO || **Feature**: Added support for appending data from DB2 to DBF with the new value DBFConversionSupport=8. All datatypes except General. (Walter Nicholls) | +|| DougHennig || **Bug Fix**: Added variable declaration in vbs scripy (Doug Hennig) | +|| DougHennig || **Bug Fix**: Fixed incorrectly named variable in vbs script (Doug Hennig) | +|| DougHennig || **Bug Fix**: Added missing assignment in vbs script (Doug Hennig) | +|| DougHennig || **Enhancement**: Put double quotes around path in case in contains single quote in vbs scripts (Doug Hennig) | +|| FDBOZZO || **Bug Fix**: Added "+16" to Debug flags to maintain internal defaults to not generate timestamps on xx2 files in vbs scripts | +|| FDBOZZO || **Bug Fix**: When a filename "\*" is specified with a type "\*", an automatic regeneration of all binary files is made from text files (Alejandro Sosa) | +| 2016/02/07 | FDBOZZO | [v1.19.46](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.46) | **Bug Fix**: set\_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo) | +|||| **Feature**: Added internal support for querying directory cfg information, with a new optional parameter, for API methods that require it (ie: get\_Ext2FromExt, hasSupport\*) | +|||| **Feature**: Convert FUNCTION to PROCEDURE for maintaining compatibility with the way that VFP save methods on binaries | +|||| **New fb2p\_diff.exe**: Allow a quick Diff of VFP9 binaries, for those that don't need converting to text manually | +|||| **Bug Fix**: When processing a directory or a project with all the files, sometimes an "Alias already in use" error may occur (Dave Crozier) | +|||| **Bug Fix mnx**: When menu options contains '&&' in their texts, menu binary is corrupted when regenerated (Walter Nichols) | +|||| **Bug Fix fb2p\_diff.exe**: When calling fb2p\_diff.exe from a directory out of FoxBin2Prg dir, an error is thrown because FoxBin2Prg is not found (Mike Potjer) | +|||| **Feature**: In some environments and under some conditions WSscript.Shell object can cause problems, so now it's replaced with Win32 native functions (Aurélien Dellieux) | +|||| **Bug Fix frx/lbx**: Ordering of report objects changes the ZOrder of near objects that can overlap, which can cause bad visualization and printing (Ryan Harris) | +|||| **Bug Fix frx/lbx**: When regenerating reports or labels with multiline texts center or right aligned, alignment is not completely right (Ryan Harris) | +|||| **Bug Fix frx/lbx**: When grouping objects in design mode, generating text and regenerating binary cause the lost of the grouping (does not affect data) (Lutz Scheffler) | +|| RALFXWAGNER || **Bug Fix Pjx**: SPR and MPR files are not correctly identified in the PJX Project info (Ralf Wagner) | +|||| **Bug Fix Pj2**: An error is thrown when regenerating a PJX from a PJ2 when some file have parenthesis in it's name (EddieC) | +|||| **Feature (dbf)**: New ExcludeDBFAutoincNextval parameter for minimizing DB2 differences (edyshor) | +|||| **Bug Fix**: When processing a file on root dir, a 2062 error occurs (Aurélien Dellieux) | +| 2015/06/21 | FDBOZZO | [v1.19.45](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.45) | **Bug Fix mnx**: When a menu that uses single quotes or an expression in the option's MESSAGE is exported to text, when regenerating the menu from the text there are parts of the message that are cut off (Mike Potjer) | +|||| **Bug Fix**: When processing multiple PJ2 files, an error "variable llError not defined" can occur (Lutz Scheffler) | +|||| **Bug Fix pjx/pj2**: PJX/PJ2 projects that references files from other disk units throw errors for those files when processing with "\*" or "\*-" options (Matt Slay) | +|||| **Bug Fix**: When processing multiple-files, sometimes encountered errores are not reported | +|||| **Feature (API-PJX)**: New loadModule() method that returns the internal FoxBin2Prg Project object when the full name of an existent project file is specified | +|||| **Feature (API-PJX)**: New getFilesNotFound() method for the FoxBin2Prg's Project object, that returns the count of files referenced in the project that are not found on disk and an array with all the existence state of each file | +| 2015/05/31 | FDBOZZO | [v1.19.44](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.44) | **Bug Fix**: In certain PCs FoxBin2Prg does not return error codes when called from an external program, so another terminating method is implemented (Ralf Wagner) | +|||| **Feature**: Allow exporting DBF data when using DBF\_Conversion\_Support:1 and optional individual CFG files | +|||| **Bug Fix**: A previous bug fix on cascading errors management caused reseting the error status, making that sometimes errors don't get reported | +| 2015/05/10 | FDBOZZO | [v1.19.43](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.43) | **Feature**: Added new CFG setting "RemoveZOrderSetFromProps" for removing ZOrderSet property when you want to maintain the original class ZOrder always, avoid unnecesary differences and fix some visual on top/on bottom control problems (Ryan Harris) | +|||| **Feature**: Do not allow progressbar window become the default output window of ? command (Lutz Scheffler) | +|||| **Bug Fix**: Fixed VFP9 SP1 validation message | +|||| **Bug Fix**: FoxBin2Prg PRG2BIN does not return error codes (Ralf Wagner) | +|||| **Bug Fix**: FoxBin2Prg sometimes generates an OLE error when executed for second time on a file with problems (Fidel Charny) | +|||| Some enhancements in security of DLL declarations and On Escape management | +|||| **Defect Fix**: Accesing DataSessionID property throws an error because of the change of internal classes between custom and session | +|||| **Bug Fix**: When a form have AutoCenter=.T., there are times that when regenerating the binary and executing it does not shows centered (Esteban Herrero) | +| 2015/04/16 | FDBOZZO | [v1.19.42](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.42) | **Feature**: Added VFP 9 SP1 runtime validation | +|||| **Bug Fix**: Broken SourceSafe compatibility because an error is thrown when querying for file support (Tuvia Vinitsky) | +|||| **Bug Fix scx/vcx**: Process only one TEXT/ENDTEXT nesting level because TEXT/ENDTEXT can't be nested (Lutz Scheffler) | +|||| **Feature**: Make some error descriptions more informative and precise (Lutz Scheffler) | +|||| **Feature (API)**: Allow specifying inputFile with relative path (Lutz Scheffler) | +|||| **Bug Fix scx**: Metadata of Dataenvironment not properly generated when Dataenvironment is renamed | +|||| **Bug Fix**: Added PJX/PJ2 generation when specifying "file.pjx", "\*" (Lutz Scheffler) | +|||| Some enhancements in german translations (Lutz Scheffler) | +|||| **Feature**: Added multiprocessing of projects (\*.pjx, \*.pj2) when specifying "file.pjx", "\*" (Lutz Scheffler) | +|||| Change FoxBin2Prg base class from custom to session (Lutz Scheffler) | +|||| **Feature**: Allow processing all project files without converting the PJX/2, with "\*-" (Lutz Scheffler) | +|||| **Bug Fix pjx/pj2**: If end of line (CR+LF) is used on pjx's "Build" properties data, generated pj2 is malformed | +|||| **Feature**: Default foxbin2prg.cfg configuration file renamed to foxbin2prg.cfg.txt to no overwrite user cfg (Lutz Scheffler) | +|||| **Feature**: Added DOS errOut output support and implemented in writeErrorLog when logging errors | +|||| **Feature**: Added full support for \*? file masks for multi-processing files of the same extension | +|||| **Feature (API)**: Added new parameter to allow alternative main CFG (Lutz Scheffler) | +|||| **Feature (API)**: Added new get\_Processed() method for obtaining information about processed files (Lutz Scheffler) | +|||| **Feature**: Added new file processing output to DOS stdOut (Lutz Scheffler) | +|||| **Bug Fix**: Fixed processing cancelation with Esc key | +|||| **Feature**: Sort table/view fields alphabetically to facilitate diffing and merging, while maintaining a list with the original field order for correct DBC regeneration (Ryan Harris) | +|||| **Feature**: Apply ClassPerFile to DBC connections, tables, views and SPs (Ryan Harris) | +|||| **Bug Fix mnx**: Empty Pad name is not kept when regenerating a menu defined with and empty Pad name (Lutz Scheffler) | +|||| **Feature (API)**: New property "lProcessFiles" that allow setting to .F. when using foxbin2prg as object to get Processing file info with getProcessed method without actual processing | +|||| **Bug Fix frx/lbx**: Trimmed some extra CR,LF,TAB from FR2/LB2 tag that where included in previous versions (Ryan Harris) | +|||| **Bug Fix scx/vcx/dbc**: Delete ERR files when processing with UseClassPerFile switch (Ryan Harris) | +|||| **Feature**: Implemented CFG inheritance between directories | +|||| **Feature (API)**: New method get\_DirSettings() that returns the CFG settings object for the indicated directory (Lutz Scheffler) | +|||| **Feature**: Allow generation of text for a single class of a librery when using ClassPerFile (Lutz Scheffler) | +|||| **Feature (API)**: Renowned method names to English to facilitate international understanding (Mike Potjer) | +| 2015/01/18 | FDBOZZO | [v1.19.41](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.41) | **Bug Fix db2**: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes. | +|||| **Bug Fix vcx/scx**: Erroneous detection of PROCEDURE/ENDPROC structures when used as parameters of LPARAMETERS and start in new line (Ryan Harris) | +| 2015/01/11 | FDBOZZO | [v1.19.40](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.40) | **Enhancement frx/lbx**: Clean ASCII 0 from expression field for Dataenvironment, Cursors and Relations | +|||| **Bug fix frx/lbx**: When using Dataenvironment with more than one cursor, remaining cursors are lost | +|||| **Feature**: Added new configuration "ShowProgressbar:2" to activate the progressbar only when a directory is selected and deactivate it for individual files (Jim Nelson) | +|||| **Bug fix dbf**: Error 12, variable "tcOutputFile" is not found when DBFConversionSupport=4 and output file is the same as existent one (Mike Potjer) | +|||| **Feature scx/vcx/sc2/vc2**: Added new code checking to find duplicated object names for the same class and container to notify those cases of file corruption | +|||| **Bug Fix**: "Error 2183: Operation requires that SET MULTILOCKS is set to ON" in some DBF convertions | +| 2015/01/01 | FDBOZZO | [v1.19.39](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.39) | **Bug fix vbs**: vbs scripts does not show FoxBin2Prg process errors correctly | +|||| When using BIN2PRG or PRG2BIN keywords with FoxBin2Prg command line, allow processing one file (Mike Potjer) | +|||| Add keyword SHOWMSG and use INTERACTIVE keyword for an interactive dialog (Mike Potjer) | +|||| When processing a directory from commandline with foxbin2prg alone and the INTERACTIVE keyword, show a dialog to ask what to process (Mike Potjer) | +|||| **Bug fix dc2**: DisplayClass and DisplayClassLibrary values got the wrong value "Default" and not the corresponding own values (Christopher Kurth/Ryan Harris) | +|||| Deleted recompilation scripts for language, because it is an automatic selection now | +| 2014/12/13 | FDBOZZO | [v1.19.38](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.38) | **Feature**: Now is possible to use FoxBin2Prg for batch conversions directly from the File Explorer (see README.txt), without the need of vbs scripts, that sometimes can make trouble or are not permitted by IT department (Francisco Prieto) | +|||| **Feature**: Enhanced Multilanguage support by 3 ways: 1-Automatic DEFAULT (depending on VERSION(3)); 2-By parameter, using the new method ChangeLanguage(); 3-Using the new setting "Language" in foxbin2prg.cfg | +|||| **Feature**: Detection of duplicated methods on vc2/sc2 files to notify those cases of vcx/scx file corruption (Álvaro Castrillón) | +| 2014/11/30 | FDBOZZO | [v1.19.37](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.37) | **Feature**: Added Class per file support, configurable with UseClassPerFile:1 (Ryan Harris/Lutz Scheffler/Álvaro Castrillón) | +|||| **Feature**: foxbin2prg.cfg configuration options can now have "&&" comments at the right of the values (edyshor) | +|||| **Feature**: Added support for the new "ClearDBFLastUpdate" setting in FoxBin2Prg.cfg, activated by default to minimize DB2 differences (edyshor) | +|||| **Feature**: Enhanced progressbar indication, with more detailed information | +|||| **Feature**: vcx/scx broken properties autofix because an erroneous manual user edition on the vcx/scx | +|||| **Feature**: vcx/scx autofix por Hidden and Protected duplicated properties (some type of corruption or bad manual user edit) | +|||| **Feature**: Added a validation for FRX to notify the user if it is not a VFP 9 REPORT | +|||| **Feature**: Batch convertions can now be interrupted with the Esc key | +|||| **Bug Fix dbf**: "Error 1903, String is too long to fit" when converting long DBF files with "DBFConversionSupport:4" to text (edyshor) | +|||| **Bug Fix vcx/scx**: Sometimes some properties get the description of a similarly named property | +|||| **Bug Fix vcx/scx**: Hidden and Protected properties are not ordered alphabetically | +|||| Various Code Optimizations for enhancing processing performance | +| 2014/10/08 | FDBOZZO | [v1.19.36](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.36) | **Bug fix mnx**: When generating mn2 text view, menu all pad IDs are generated as \_000000000 (bug introduced in v1.19.35) | +|||| **Enhancement**: New "VFP9\_FoxBin2Prg.vbs" script for "SendTo" menu, that replaces FoxBin2Prg.exe in this menu and adds a process status message | +| 2014/10/05 | FDBOZZO | [v1.19.35](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.35) | **Enhancement**: Always generate the same Timestamp and UniqueID for binaries, for minimizing differences when regenerating them (Marcio Gomez G.) | +| 2014/09/19 | FDBOZZO | [v1.19.34](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.34) | **Bug Fix**: If run from VFP Command Window and there is a file in use, an error is thrown because can't capitalize source file (Jim Nelson) | +| 2014/08/29 | FDBOZZO | [v1.19.33](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.33) | **Bug Fix mnx**: Menu doesn't generate well when there is a Bar of #BAR type without a name (Peter Hipp) | +|||| **Bug Fix mnx**: If a menu option have an associated Procedure with 1 line of code, the Procedure is converted to Command (Peter Hipp) | +| 2014/08/26 | FDBOZZO | [v1.19.32](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.32) | If exists a property called "text" it is confused with a text/endtext structure (Peter Hipp) | +| 2014/08/22 | FDBOZZO | [v1.19.31](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.31) | Trash cleanup code on binary methods, normally added by tools like ReFox and others | +|||| Added EXE version number when generating a debug LOG file | +|||| Enhanced recognition of #IF..#ENDIF instructions when there are spaces between # symbol and the command name | +|||| Added capitalization normalization for input files | +|||| Added new c\_Language property for querying actual compiled language (EN,ES,DE,etc) | +| 2014/08/10 | FDBOZZO | [v1.19.30](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.30) | **Bug Fix vcx/scx**: Bad EndText (from Text/EndText block) detection when the previous line ends with "," or ";" (Jim Nelson) | +|||| Bug Fix vcx/scx: Some methods are not alphabetically sorted in some inheritance situations (Ryan Harris) | +|||| Added FoxUnit test cases to bug fix confirmation of both | +| 2014/08/01 | FDBOZZO | [v1.19.29](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.29) | **Bug Fix vcx/scx**: Bad Text (from Text/EndText block) detection when there is a line that begins with a "text" field and previous line end with "," in regards of ";" (M\_N\_M) | +|||| Optimizations and refactoring | +| 2014/07/26 | FDBOZZO | [v1.19.28](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.28) | **Feature**: Added new options in foxbin2prg.cfg (DBF_Conversion_Included, DBF_Conversion_Excluded) and in filename.dbf.cfg (DBF\_Conversion\_Order, DBF\_Conversion\_Condition) for exporting DBFs data to text when DBF_Conversion_Support is 4 (Edyshor) | +| 2014/07/18 | DH/FDBOZZO | [v1.19.27](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.27) | **Feature**: Added support for exporting DBF data for DIFF when using DBF\_Conversion\_Support: 4 in foxbin2prg.cfg (It's intended just for DIFF small DBFs, as config ones, not for true Data export. Binary fields are not exported and there is not an Import Data feature) (Doug Hennig) | +| 2014/07/06 | FDBOZZO | [v1.19.26](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.26) | **Feature**: Take out asterisks between "ENDPROC" and "PROCEDURE", analyzed in that exact order, to regenerate binary without errors. (Daniel Sánchez) | +|||| **Feature**: Add the l\_DropNullCharsFromCode configuration option, enabled by default, to allow taking out NULLs from source code. (Matt Slay) | +|||| **Bug Fix cfg**: ExtraBackupLevel does not work when using multi-configuration | +| 2014/06/25 | FDBOZZO | [v1.19.25](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.25) | When processing one or multiple files with vbs scripts, show a message indicating the status of the generation, and show the error log if any error occurs (Pedro Gutiérrez M.) | +|||| Code cleaning and normalization | +|||| ClearUniqueID is True by default for tx2 files | +|||| OptimizeByFilestamp is False by default, to avoid possible automatic modifications made by VFP when opening a form or a classlib | +|||| New AllowMultiConfig switch enabled by default, that allow a foxbin2prg.CFG file per directory, overriding main CFG (Mario Peschke) | +| 2014/06/15 | FDBOZZO | [v1.19.24](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.24) | **Bug Fix scx/vcx**: The absence of AGAIN keyword on some USE commands throws "tabla in use" error if used the PRG version from VFP command window (Matt Slay) | +|||| **Bug Fix scx/vcx**: A table field called "text" that begins the line can be confused with the TEXT/ENDTEXT structure and can wrong recognize the rest of the code (Mario Peschke) | +|||| **Bug Fix scx/vcx**: GetTimeStamp internal method throwse an error when day or month have just 1 digit (happen from v1.19.23) | +|||| New "run\_aftercreate\_db2" event that permits execution of an external program when using FoxBin2Prg as object (for example, to export table data) | +|||| New FoxUnit Unit Tests to verify new functionality and "text" bug fix | +|||| Added foxbin2prg\_de.h file translation of most messages to German (Mario Peschke) | +| 2014/06/07 | FDBOZZO | [v1.19.23](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.23) | Timestamps and UniqueIds values are back on binaries, and they are just cleaned up on tx2 files if NoTimestamps and ClearUniqueID flags are set. This minimizes some differences on the binary side | +|||| Added sccdata default value when regenerating PJX binary (which is automatically completed on the PJX when opened anyway) | +|||| Fixed timestamp evaluation for "OptimizeByFilestamp" optimization that evaluates just .??X files, and now .??T (memo) filestamps are evaluated too | +|||| Fixed missing BorderColor property on props\_optiongroup.txt file | +|||| Fixed missing Stretch property on props\_image.txt file (Kenny Vermassen) | +|||| Fixed missing Enabled property on props\_image.txt file | +| 2014/05/17 | FDBOZZO | [v1.19.22](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.22) | **Bug Fix vcx/scx**: Picture property of a form class does not show the image. Does not happen with control pictures (Fidel Charny) | +|||| **Bug Fix scx/vcx**: Incorrect detection of PROCEDURE/ENDPROC/TEXT/ENDTEXT that can cause lost of some methods in some circunstantes (Andres Mendoza) | +|||| **Bug Fix scx/vcx**: Some options from the optiongroup control loose there width when subclassed from a class with autosize=.T. (Miguel Duran) | +|||| Added evaluation and generation of properties by classtype, when applicable | +|||| Added support of property evaluation from external file (props\_\*.txt) | +|||| Added enhanced Unit Tests of bitmap comparisons of screen captures before/after (the original is compared with the regenerated of the regenerated binary, for more accuracy) | +|||| A lot of garbage collect optimizations all over the code | +|||| Added Unit Testing of configuration by defaults, by file and by parameters | +|||| Added Unit Testing for checking the generation of classes, forms, reports and menus | +|||| Added new switch OptimizeByFilestamp (active by default) for making possible deactivation of this regeneration optimization by file timestamp, in case someone wants to force regeneration allways | +| 2014/05/01 | FDBOZZO | [v1.19.21](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.21) | Added support to convert to text or binary all files of a project from pjx or pj2 (Matt Slay) | +|||| Added optimization on the search of the capitalization program when processing projects | +|||| Added keyword AGAIN on table openings, for enhancing concurrence (Jim Nelson) | +|||| Added optimization based on file timestamps for regenerating only newer binaries and tx2 files (Matt Slay) | +|||| Added English translation in foxbin2prg\_en.h for the LOG message of new timestamp optimization | +|||| section simplification: Methods and arrays doesn't require preceding \* and ^ symbols anymore. | +| 2014/04/17 | FDBOZZO | [v1.19.20](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.20) | **New**: CDX filename in DB2 files have relative paths now. This help show less differences when regenerating DB2 files from different paths | +| 2014/04/02 | FDBOZZO | [v1.19.19](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.19) | **New**: DBF Hook run\_AfterCreateTable that let intercalate a personalized process between DBF creation and index creation when processing a DB2 file (example program in tests\demo\_hook\_dbf.prg included) (Fidel Charny) | +| 2014/03/25 | FDBOZZO | [v1.19.18](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.18) | **Bug Fix vcx/scx**: Image controls with stretched icons or images, get redimensioned to original size when regenerating binary (Arturo Ramos) | +|||| Bug Fix vcx/scx: Library level comments are not kept (Ryan Harris) | +| 2014/03/16 | FDBOZZO | [v1.19.17](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.17) | **Bug Fix frx/lbx**: Double-quoted expressiones make fx2/lb2 files corrupt (Ryan Harris) | +|||| **Bug Fix frx/lbx**: Multiline Comments are lost (Ryan Harris) | +|||| **frx/lbx tag2 field enhance**: when used for tooltips, real values are shown in regards of b64 normal encoding | +|||| **Bug Fix mnx**: Multiline Comments on Bars/Pads makes MN2 file corrupt (Ryan Harris) | +|||| **Bug Fix mnx**: Some procedures doesn't generate correctly (Ryan Harris) | +|||| English translation file foxbin2prg\_en.h syntax corrected (Ryan Harris) | +|||| **Bug Fix vcx/scx**: Lowercase saved Dataenvironment property causes Reserved2 value to be not calculated | +|||| **Bug Fix frx**: character on print condition on field makes fr2 file corrupt | +|||| **Bug Fix mnx**: Using double-quotes on prompt option fields makes mn2 file invalid (Ryan Harris) | +| 2014/03/10 | FDBOZZO | [v1.19.16](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.16) | **Bug Fix vcx/scx**: properties loose there hidden/protected visibility when no default value assigned (Ryan Harris) | +|||| **Bug Fix vcx/scx**: character value with length >255 in addobject property regenerates with tag included (Ryan Harris) | +|||| **Bug Fix vcx/scx**: When regenerating binari file with empty procedure makes FoxPro crash when trying to modify it on IDE | +|||| **Bug Fix scx/vcx**: Binary can be corrupted if the class have a multiline comment (Tested on: Ffc\\_frxcursor.vcx) | +|||| **Bug Fix**: If \_memberdata contains CR inside there values, they can be lost when regenerating tx2 text files | +|||| **Bug Fix**: Property values with spaces at the right loose this spaces | +|||| **Bug Fix**: When 2 or more methods share the same name (ej: met and met2) tx2 text file gets corrupted (Ryan Harris) | +| 2014/03/04 | FDBOZZO | [v1.19.15](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.15) | **Bug Fix**: OLE information cleared when a legacy TX2 is processed | +|||| Bug Fix: Default value of NoTimestamp = 0 ==> Now is 1, as should be | +|||| Bug Fix: DBFs backlink info cleared when DBC is recreated (Ryan Harris) | +|||| Feature: Lowercase capitalization in tx2 filename headers to minimize differences | +| 2014/03/01 | FDBOZZO | [v1.19.14](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.14) | Load of configuration is optimized (foxbin2prg.cfg) to read cfg only once for a massive processing of multiple conversions | +|||| .vbs scripts have been modified to respect the conversion support configuration defined in foxbin2prg.cfg configuration file | +|||| 2 new functions where added to enhance and encapsulate the external use of the evaluation of the conversion support (requires previous call to EvaluarConfiguracion()). Used on .vbs scripts | +|||| ExtraBackupLevels Regression: when no defined value, no backup is made | +|||| New default value ClearUniqueID = 1 in foxbin2prg.cfg for minimizing differences in the SCM | +| 2014/02/26 | FDBOZZO | [v1.19.13](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.13) | **Bug Fix**: If NoTimestamp setting of foxbin2prg.cfg is changed, opposite value is evaluated (Ryan Harris) | +|||| Encapsulated foxbin2prg.cfg file for enhancing FoxUnit automated testing | +|||| Internal change of property l\_UseTimestamps by l\_NoTimestamps | +|||| With ExtraBackupLevels setting you can now deactivate backups if setting to 0 (Ryan Harris proposal) | +|||| foxbin2prg.log file checking dropped, to activate the log file use foxbin2prg.cfg setting Debug=1 | +|||| In TX2 header files show the file without path, because genereting it from different places makes unnecesary differences in Diff (Ryan Harris proposal) | +|||| Created a lot of FoxUnit automated tests to check all settings of foxbin2prg.cfg configuration file | +| 2014/02/23 | FDBOZZO | [v1.19.12](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.12) | Generation of VC2/SC2 with new header metadata for centralizing uniqueid, timestamp and ZOrder and big reduce of differences in a diff/merge (enhancement proposed by Ryan Harris) | +|||| BINARY regeneration from the new metadata header (remains compatible with old VC2/SC2) | +|||| FoxUnit test cases fixed for the new functionality | +|||| Cleaning, Refactorization and optimization of Code | +|||| Presentation enhancement of VC2/SC2 file headers | +| 2014/02/13 | FDBOZZO | [v1.19.11](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.11) | WITH/ENDWITH optimizations with a conversion performance gain up to 16% more fast | +|||| Bug Fix: Just one level of #IF was contemplated, throwing an error if more levels are nested | +|||| Bug Fix: When regenerating the PJX, default home directory not always was correct | +|||| New FoxUnit automated test added to check bug fix of nested #IF | +| 2014/02/09 | FDBOZZO | [v1.19.10](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.10) | Added parametrization to enable configuration support for each kind of binary (0=None, 1=Only TX2, 2=TX2 and Binary) | +|||| Fixed default NoTimestamps setting | +|||| Adjusted some FoxUnit test cases | +|||| EXPERIMENTAL: Added new configuration parameter "ClearUniqueID" in foxbin2prg.cfg for Clearing UniqueID in binaries and text versions. Works well and apparently FoxProdoesn't make use of it, but more testing is required | +| 2014/02/08 | FDBOZZO | [v1.19.9](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.9) | New configuration items in foxbin2prg.cfg | +|||| Localization Bug: When recompiling with localization file foxbin2prg\_en.h renamed to foxbin2prg.h, syntax error occurs | +|||| Debug information of .LOG files enhanced | +|||| New parametrization for the number of backups, now just one .BAK by default (earlier was 10) | +|||| Enabled configuration file foxbin2prg.cfg by default | +|||| Change in default behavior: Now Timestamps are disabled by default. You can change this on foxbin2prg.cfg | +| 2014/02/03 | FDBOZZO | [v1.19.8](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.8-pública) | **Bug fix**: ActivePage error when executing a regenerated binary with a PageFrame / New FoxUnit test to test solution | +|||| Added cNoTimestamps='1' to batch conversion vbs scripts | +| 2014/02/02 | FDBOZZO | [v1.19.7](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.7-pública) | Added Ole encapsulation in just 1 place | +|||| Adjusted Blocksize of generated binaries | +|||| New cNoTimestamps parameter. If '1' is given, then no timestamps are generated (useful for diff/merge) | +| 2014/01/31 | FDBOZZO | [v1.19.6](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.6-pública) | Added SourceSafe support (SCCAPI) for Diff and Merge | +|||| SCX bug fix: Dataenvironment sometimes doesn't regenerates correctly | +|||| Functionality change: Automatic recompilation enabled by default again because some methods doesn't show on form edit. Can be deactivated passing '0' to cRecompile param | +| 2014/01/26 | FDBOZZO | [v1.19.5](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.5-pública) | Added Multilanguage support and Localization file for English. To use it rename the new file foxbin2prg\_en.h to foxbin2prg.h and recompile | +| 2014/01/24 | FDBOZZO | [v1.19.4](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.4-pública) | New "Recompile" parameter for recompiling from PJX directory (if provided) | +|||| **Functionality change**: Now FoxBin2Prg does not recompile bins for default, because it do on bin dir and that can throw compilation errors. Use new parameter if needed or recompile by your own | +|||| DBC: Added support for multiline "comment" property | +|||| VBS Batch scripts: Added progress bar | +| 2014/01/18 | FDBOZZO | [v1.19.3](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.3-pública) | Change on TXT timestamps to preserve empty values that can save a lot of differences when diff/merging. Previously empty timestamps get converted to datetime | +|||| Optimization on TXT generation of ZOrders | +| 2014/01/13 | FDBOZZO | [v1.19.2](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.2-pública) | Fix on PJX regeneration caused for something missing in the last change of "Autor" to "Author" | +| 2014/01/08 | FDBOZZO | [v1.19.1](https://github.com/fdbozzo/foxbin2prg/tree/v1.19.1-pública) | Small change on TX2 headers to drop the "Generated" timestamp that causes innecesary differences / Updated the EXE version with the correct one | +| 2014/01/08 | FDBOZZO | [v1.19](https://github.com/fdbozzo/foxbin2prg/tree/v1.19-pública) | Added new debug flag on .vbs scripts to show a "End process" message for batch processing | +|||| **Bug Fix**: scx/vcx Improper order of Reserved3 props cause event access to not fire | +|||| **Bug Fix**: dbf Improper index generated when the type is Candidate | +|||| Added support for converting SourceSafe PJM to FoxBin PJ2 | +|||| Added validation for Menus when converting from older versions, so user can convert it to VFP 9 format first | +|||| Change in MN2 property: "Autor" was changed to "Author". You can add the missing letter to MN2 or regenerate | +| 2014/01/07 | FDBOZZO | [v1.18.1](https://github.com/fdbozzo/foxbin2prg/tree/v1.18.1) | Added a vbs script (NormalizeFileNames.vbs) for FileNames normalizing in batch mode, and updated FileNameCaps.exe and the call on FoxBin2prg | +| 2014/01/06 | FDBOZZO | [v1.18](https://github.com/fdbozzo/foxbin2prg/tree/v1.18-pública) | **bug fix**: mnx Generation of DO Procedure or Command when no Procedure or Command available to call when empty option is created (Fidel Charny) | +|||| Added support for DBFs earlier than VFP 9 for generating DB2 text, but DBF regeneration is in VFP 9 version! | +|||| dbf bug fix: DBFs linked to a DBC that use long field names throw error when regenerating DBFs | +|||| dbf bug fix: Some view info is lost when generating text from DBC | +| 2014/01/03 | FDBOZZO | [v1.17](https://github.com/fdbozzo/foxbin2prg/tree/v1.17-pública) | **bug fix**: mnx Location value is lost and some menus doesn't render properly (Fidel Charny) | +|||| Added 2 VB scripts (ConvertVFP9BIN2PRG.vbs and ConvertVFP9PRG2BIN.vbs) for batch converting of dirs and files if a shortcut is placed on "SendTo" user folder | +|||| Added new Unit Testing cases for menus | +| 2014/01/02 | FDBOZZO | [v1.16](https://github.com/fdbozzo/foxbin2prg/tree/v1.16-pública) | Added support for Menus (MNX) | +| 2013/12/18 | FDBOZZO | [v1.15](https://github.com/fdbozzo/foxbin2prg/tree/v1.15-pública) | Added support for DBF, DBC and CDX binaries | +| 2013/12/15 | FDBOZZO | [v1.14](https://github.com/fdbozzo/foxbin2prg/tree/v1.14-pública) | **bug fix**: scx autocenter property do nothing (Arturo Ramos) | +|||| scx bug fix: Last COMMENT record is lost (Fidel Charny) | +| 2013/12/08 | FDBOZZO | [v1.13](https://github.com/fdbozzo/foxbin2prg/tree/v1.13---pública) | **bug fix**: frx/lbx "Error 1924, TOREG is not an object" on some reports (Fidel Charny) | +| 2013/12/08 | FDBOZZO | [v1.12](https://github.com/fdbozzo/foxbin2prg/tree/v1.12---pública) | Added support for Reports (FRX) and Labels (LBX) | +| 2013/12/08 | FDBOZZO | [v1.11](https://github.com/fdbozzo/foxbin2prg/tree/v1.11---pública) | **bug fix**: vcx/scx \_memberdata value corrupted when the value is a long one (Edgar Kummers) | +| 2013/12/07 | FDBOZZO | [v1.10](https://github.com/fdbozzo/foxbin2prg/tree/v1.10---pública) | **bug fix**: vcx/scx when there are methods with the same name, there code is assigned to erroneous objects (Fidel Charny) | +| 2013/12/07 | FDBOZZO | [v1.9](https://github.com/fdbozzo/foxbin2prg/tree/v1.9---pública) | **bug fix**: vcx/scx last fix keep loosing some properties (Fidel Charny) | +| 2013/12/06 | FDBOZZO | [v1.8](https://github.com/fdbozzo/foxbin2prg/tree/v1.8---pública) | **bug fix**: vcx/scx last fix keep loosing some properties (Fidel Charny) | +|||| sort function encapsulated and reused on BIN and TXT generation for safety | +| 2013/12/03 | FDBOZZO | [v1.7](https://github.com/fdbozzo/foxbin2prg/tree/v1.7---pública) | **bug fix**: vcx/scx some properties get lost and picture clause is not displayed if "Name" is not the last property on memo (Fidel Charny) | +|||| Added verification of readOnly files and report this to Log file in debug mode | +| 2013/12/02 | FDBOZZO | [v1.6](https://github.com/fdbozzo/foxbin2prg/tree/v1.6---pública) | Complete refactoring of BIN and TXT generation | +|||| Changes of various algorithms | +|||| scx/vcx bug fix: Array properties didn't save (Fidel Charny) | +|||| Unit testing cases with FoxUnit | +| 2013/11/27 | FDBOZZO | [v1.5](https://github.com/fdbozzo/foxbin2prg/tree/v1.5---pública) | **Bug fix**: On some forms dataenvironment didn't regenerate appropiately (Luis Martínez) | +| 2013/11/27 | FDBOZZO | [v1.4](https://github.com/fdbozzo/foxbin2prg/tree/v1.4---pública) | Added mask support | +|||| Added support for extension configuration on file foxbin2prg.cfg, so one can use "vca" instead of "vc2", etc | +|||| Added support for a new parameter for Log generation | +| 2013/11/24 | FDBOZZO | [v1.3](https://github.com/fdbozzo/foxbin2prg/tree/v1.3---pública) | Bug fixes, code cleaning, refactoring | +| 2013/11/24 | FDBOZZO | [v1.2](https://github.com/fdbozzo/foxbin2prg/tree/v1.2---pública) | Bug fixes, code cleaning, refactoring | +| 2013/11/22 | FDBOZZO | [v1.1](https://github.com/fdbozzo/foxbin2prg/tree/v1.1---pública) | Bug fixes | +| 2013/11/22 | FDBOZZO | [v1.0](https://github.com/fdbozzo/foxbin2prg/tree/v1.0---pública) | Initial creation of clases on prg and support of VCX/SCX/PJX files | ---- -Last changed: _Pungenday, 53 Chaos 3187_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) +This project is part of [VFPX](https://vfpx.github.io/). + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/FoxBin2Prg_Internals.md b/Documentacion/github/FoxBin2Prg_Internals.md index 9604f92..f2dd73a 100644 --- a/Documentacion/github/FoxBin2Prg_Internals.md +++ b/Documentacion/github/FoxBin2Prg_Internals.md @@ -1,17 +1,50 @@ -# Purpose of this document -This document is an attempt to recreate the original documentation of FoxBin2Prg out of CodePlex. -I found the documentation on [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/blob/master/README.md) a bit brief. For a short what and why, see there. +# Internals +Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9 -The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. Pictures are taken from the original project. +## Purpose of this document +This document shows some internal functions and ideas how to use of FoxBin2Prg. + +The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. +Pictures are taken from the original project. As far as possible these are the original documents. Changes are added where functionality is changed. ---- -![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) -This project is part of VFPX. +## Table of contents +- [Why to use this tool](#why-to-use-this-tool) +- [Configuration file](#configuration-file) +- [Configuration file per table](#configuration-file-per-table) +- [FoxBin2Prg Internals](#foxbin2prg-internals) + - [ZOrder](#zorder) + - [RemoveZOrderSetFromProps setting](#removezordersetfromprops-setting) + - [VFP ZOrder bug and fix](#vfp-zorder-bug-and-fix) + - [DBC ordered fields](#dbc-ordered-fields) + - [PAM Section](#pam-section) + - [Property Ordering](#property-ordering) + - [Timestamps and UniqueIDs](#timestamps-and-uniqueids) + - [DBF Data Export/Import for Diff/Merge](#dbf-data-export/import-for-diff/merge) + - [Order and range of records](#order-and-range-of-records) + - [Configuration per table](#configuration-per-table) + - [DBF/DB2 Convertion Hooks](#dbf/db2-convertion-hooks) + - [Language Support for messages](#language-support-for-messages) + - [Multi-config](#multi-config) + - [File Capitalization](#file-capitalization) + - [Conversion processes Logging](#conversion-processes-logging) + - [Create Class-Per-File](#create-class-per-file) + - [Complementary options for the UseClassPerFile setting](#complementary-options-for-the-useclassperfile-setting) + - [RedirectClassPerFileToMain:](#redirectclassperfiletomain:) + - [ClassPerFileCheck](#classperfilecheck) + - [Create File-Per-DBC](#create-file-per-dbc) + - [Complementary options for the UseFilesPerDBC setting](#complementary-options-for-the-usefilesperdbc-setting) + - [RedirectFilePerDBCToMain](#redirectfileperdbctomain) + - [ItemPerDBCCheck](#itemperdbccheck) + - [FoxBin2Prg API](#foxbin2prg-api) + - [PEM](#pem) + - [Renamed](#renamed) + - [Log to StdOut](#log-to-stdout) +- [How to use with a SCM tool](#how-to-use-with-a-scm-tool) ----- -# FoxBin2Prg - Internals -The purpose of FoxBin2Prg is to facilitate the Diff and Merge of Visual FoxPro 9 binaries, +## Why to use this tool +The purpose of FoxBin2Prg is to facilitate the Diff and Merge of Visual FoxPro 9 _Binaries_, which are not natively supported by any source control tool. Traditionally FoxPro comes with a tool named SccText.prg who can make a text representation exporting the source code contained in FoxPro tables with a DBF structure. An enhanced version is available on VFPx named SccTextX, @@ -28,10 +61,11 @@ like PlasticSCM, Git, Subversion, and the like. Special remark on Merge operation is made, because it is the most difficult and more used operation when working with SCM tools, and this require that generated text files can be manipulated manually or automatically. -#### Note: +#### Note **You came from Visual SourceSafe and have the .pjm but not the real pjx project?** No problem, just convert the .pjm to .pjx/.pjt sending to FoxBin2Prg, and it generates the real project again. + ## Configuration file It is possible to create a template with all options and comments via `FoxBin2Prg.EXE -c cOutputFile`. See [command line](./FoxBin2Prg_Run.md). The options in the template (or in the config that ships with FoxBin2Prg) are commented out. @@ -40,56 +74,66 @@ These are the FoxBin2Prg.cfg configuration file settings and their meaning: | FoxBin2Prg.cfg keywords | Value (_Default_) | Description | | ----- | ----- | ----- | -| extension: xx2 | | FoxBin2Prg extensions ends in '2' (pj2, vc2, sc2, etc), but you can change that.
For example you can change pj2 to pja using this: "extension: pj2=pja" for making it SourceSafe (sccapi v1) compatible | +| extension: xx2 | | FoxBin2Prg extensions ends in '2' (pj2, vc2, sc2, etc), but you can change that.
For example you can change pj2 to pja using this: "extension: pj2=pja" for making it SourceSafe (sccapi v1) compatible.
It could be any pair, used sources are:
pj2, vc2, sc2, fr2, lb2, mn2, db2, dc2, fk2, me2 | | DontShowProgress | 0 | **Deprecated**. Replaced by ShowProgressbar option from v1.19.40 | | ShowProgressbar | 0, _1_, 2 | 1=Always show a progress bar,
2=Only show it when processing multiple-files,
0=Don't show progressbar | | DontShowErrors | _0_, 1 | By default, show message errors in a modal messagebox.
Specify "1" if don't want to show errors | -| NoTimestamps | 0, _1_ | By default, timestamp fields are cleared on _Text_ files, because a lot of differencies are generated on binaries and _Text_ files with Timestamps activated. This timestamp field is part of the vcx, scx and other Foxpro binary source code files | +| NoTimestamps | 0, _1_ | By default, timestamp fields are cleared on _Text_ files, because a lot of differencies are generated on _Binaries_ and _Text_ files with Timestamps activated. This timestamp field is part of the vcx, scx and other Foxpro binary source code files | | Debug | _0_, 1, 2 | By default, don't generate individual .Log with process hints.
Activate with "1" to find possible error causes and for debugging,
"2" is special logging | | ExtraBackupLevels | 0, _1_, n | By default, one _filename_.BAK file is created.
With this setting you can make more _filename_.n.BAK files,
or none at all using 0 | | ClearUniqueID | 0, _1_ | 0=Keep UniqueID,
1=Clear Unique ID.
Very useful for Diff and Merge. By default, UniqueID fields are cleared on _Text_ files, because a lot of differencies are generated with UniqueID activated | -| OptimizeByFilestamp | _0_, 1 | 0=Don't optimize (always regenerate),
1=Optimize (regenerate only when destination filestamp es older). By default this optimization is deactivated, and it is not recommended if using for merge, so _Bin_ and _Text_ files can be modified seperately.
Dangerous while working with branches! | +| OptimizeByFilestamp | _0_, 1 | 0=Don't optimize (always generate),
1=Optimize (generate only when destination filestamp es older). By default this optimization is deactivated, and it is not recommended if using for merge, so _Bin_ and _Text_ files can be modified seperately.
Dangerous while working with branches! | | RemoveNullCharsFromCode | 0, _1_ | 1=Drop NULL chars from source code,
0=Leave NULLs in source code | | RemoveZOrderSetFromProps | _0_, 1 | 1=Remove ZOrderSet from the properties,
0=Leave ZOrderSet in the properties | | XXX_Conversion_Support | n | Defines the conversion operation per filetype | -| | | For code:
0=No support,
1=Generate (Diff),
2=Generate _Text_ ond _Bin_ (Merge) | -| | | For complex data:
(PJX / DBC / DBF): 0=No support,
1=Generate Header TXT only (Diff),
2=Generate Header TXT and BIN (Merge/Only Structure!),
4=Generate TXT with DATA (Diff),
8=Export and Import DATA (Merge/Structure & Data) | -| PJX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional ((Merge/Only Structure!),
4=Generate _Text_ with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) and bin) support activated | -| VCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and bin) support activated | -| SCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and bin) support activated | -| FRX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and bin) support activated | -| LBX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and bin) support activated | -| MNX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and bin) support activated | -| DBC_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and bin) support activated | +| | | For code:
0=No support,
1=Generate _Text_ (Diff),
2=Generate _Text_ and _Bin_ (Merge) | +| | | For complex data:
(PJX / DBC / DBF): 0=No support,
1=Generate Header _Text_ only (Diff),
2=Generate Header _Text_ and _Bin_ (Merge/Only Structure!),
4=Generate _Text_ with DATA (Diff),
8=Export and Import DATA (Merge/Structure & Data) | +| PJX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional ((Merge/Only Structure!),
4=Generate _Text_ with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) and _bin_) support activated | +| VCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated | +| SCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated | +| FRX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated | +| LBX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated | +| MNX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated | +| FKY_Conversion_Support | 0, _1_ | Default value is 1 - _Text_ support activated | +| MEM_Conversion_Support | 0, _1_ | Default value is 1 - _Text_ support activated | +| DBC_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated | | DBF_Conversion_Support | 0, _1_, 2, 4, 8 | Default value is 1 - just _Text_ support activated.
The support for regenerating DBFs structures (value = 2) are disabled by default to not overrite data accidentally. When activating bidirectional support, keep in mind that Data is not restored, just the structure and indexes!.
A value of 4 is used to export Structure and Data, but exported data is not imported again.
A value of 8 is used for bidirectional support (No General fields!).
**Note:** This can be [changed per table](#configuration-file-per-table). | | DBF_Conversion_Included | * | If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf.
See [Order and range of records](#order-and-range-of-records). | | DBF_Conversion_Excluded | | If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf.
See [Order and range of records](#order-and-range-of-records). | -| UseFilesPerDBC | _0_, 1 | 0=One database dc2 file, 1=Multiple file.\*.\*.dc2 files.
See [Create File-Per-DBC](#create file-per-dbc) | +| OldFilesPerDBC | _0_, 1 | This controls the use of the _UseFilesPerDBC_, _RedirectFilePerDBCToMain_ and _ItemPerDBCCheck_ options.
Only if this option is set, the options will be read. | +| | | 0 New version inactive, options follow:
UseFilesPerDBC=UseClassPerFile
RedirectFilePerDBCToMain=RedirectClassPerFileToMain
ItemPerDBCCheck=ClassPerFileCheck | +| | | 1 New version active, options active | +| | | Note the options will be set to old style, is option is turned off. | +| UseFilesPerDBC | _0_, 1 | 0=One database dc2 file, 1=Multiple file.\*.\*.dc2 files.
See [Create File-Per-DBC](#create file-per-dbc)
**Only if OldFilesPerDBC is 1** | | | | 0 creates only a file.dc2 with all DBC (file) data | | | | 1 creates a file.dc2 with DBC properties | | | | and additional DBC files per DBC item (stored-proc, table, ..) | | | | Note: recration only if RedirectFilePerDBCToMain is 1 | -| RedirectFilePerDBCToMain | _0_, 1 | 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2 | -| ItemPerDBCCheck | _0_, 1 | 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion | +| RedirectFilePerDBCToMain | _0_, 1 | 0=Don't redirect to file.dc2,
1=Redirect to file.tx2 when selecting file.item.*.dc2
**Only if OldFilesPerDBC is 1** | +| ItemPerDBCCheck | _0_, 1 | 0=Don't check file.item.*.dc2 inclusion,
1=Check file.item.*.dc2 inclusion
**Only if OldFilesPerDBC is 1**| | DBF_BinChar_Base64 | 0, _1_ | 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default)
**Note:** This can be [changed per table](#configuration-file-per-table). | -| DBF_IncludeDeleted | _0_, 1 | 0=Do not include deleted records (default), 1=Include deleted records
**Note:** This can be [changed per table](#configuration-file-per-table). | +| DBF_IncludeDeleted | _0_, 1 | 0=Do not include deleted records (default),
1=Include deleted records
**Note:** This can be [changed per table](#configuration-file-per-table). | +| | | **Note:**
This is only true for tables. Generating DBC to _Text_ and back to _Binary_ will act as PACK DATABASE.
The data added by _DBF_IncludeDeleted: 1_ will be ignored by old versions generating _Binary_ files. | | UseClassPerFile | _0_, 1 | 0=One library _Text_ file, 1=Multiple file.class.vc2 files, 2=Multiple file.baseclass.class.vc2 files
See [Create Class-Per-File](#create-class-per-file) | | RedirectClassPerFileToMain | _0_, 1 | 0=Don't redirect to file.vc2, 1=Redirect to file.vc2 when selecting file.class.vc2 | | ClassPerFileCheck | _0_, 1 | 0=Don't check file.class.vc2 inclusion, 1=Check file.class.vc2 inclusion | | ClearDBFLastUpdate | 0, _1_ | 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff, minimizes differences. | -| Language | _(auto)_, EN, FR, ES, DE | Language of shown messages and LOGs. EN=English, FR=French, ES=Español, DE=German, Not defined = AUTOMATIC (using VERSION(3)) | +| Language | _(auto)_, EN, FR, ES, DE | Language of shown messages and LOGs. EN=English, FR=French, ES=Español, DE=German, Not defined = AUTOMATIC (using VERSION(3)) || + +### Note +The options will be read outside in, top to down. See [Multi-config](#multi-config) ## Configuration file per table Those configuration files are valid for a single table only. The idea is to have special settings for single tables. It is possible to create a template with all options and comments via `FoxBin2Prg.EXE -t cOutputFile`. -See [command line](./FoxBin2Prg_Run.md). +See [command line](./FoxBin2Prg_Run.md#usage-1). The options in the template (or in the config that ships with FoxBin2Prg) are commented out. To activate an option remove the asterix and set appropriate value. These are the Table.dbf.cfg configuration file settings and their meaning: | FoxBin2Prg.cfg keywords | Value | Description | | ----- | ----- | ----- | -| DBF_Conversion_Support | 0, 1, 2, 4, 8 | 0=No support,
1=Generate Header TXT only (Diff),
2=Generate Header TXT and BIN (Merge/Only Structure!),
4=Generate TXT with DATA (Diff),
8=Export and Import DATA (Merge/Structure & Data) | +| DBF_Conversion_Support | 0, 1, 2, 4, 8 | 0=No support,
1=Generate Header _Text_ only (Diff),
2=Generate Header _Text_ and _Bin_ (Merge/Only Structure!),
4=Generate _Text_ with DATA (Diff),
8=Export and Import DATA (Merge/Structure & Data) | | DBF_Conversion_Order | c_Expression | Field expresion (For _INDEX ON_). ie: name+str(age,3),
Empty means no sort order.
usefull only if _DBF_Conversion_Support_>0 | | DBF_Conversion_Condition | c_Expression | Logical expression (For _SCAN FOR_). ie: age > 10 AND NOT DELETED(),
empty means all files, except _DBF_IncludeDeleted_
usefull only if _DBF_Conversion_Support_>0 | | DBF_BinChar_Base64 | 0, 1 | 0=For character type fields, if NoCPTrans 0=do not transform,
1=use Base64 transform
usefull only if _DBF_Conversion_Support_>2 | @@ -116,7 +160,8 @@ DEFINE CLASS cnt_controls AS container && "cnt_controls" class description * < OBJECTDATA: ObjPath="Check1" UniqueID="" Timestamp="" /> * < OBJECTDATA: ObjPath="Check3" UniqueID="" Timestamp="" /> ```` -This way, you can rearrange the items to alter their ZOrder, and this does auto-renumbering when regenerating binaries. +This way, you can rearrange the items to alter their ZOrder, and this does auto-renumbering when generating _Binaries_. + ### RemoveZOrderSetFromProps setting #### Note: The ZOrderSet property is not shown in VFP Properties editor. @@ -128,16 +173,15 @@ but this property is not shown to the user and sometimes their value is duplicat or form, some control(s) get their order swapped, so when reopening the visual class some objects that should appear on top are on botton and vice versa. -##### VFP ZOrder bug and fix: +#### VFP ZOrder bug and fix Sometimes you can see that some objects are reordered every time you save a visual form/class - -and regenerate the _Text_ file. This is caused because in some situations VFP can loose the tracking to some ZOrders, +and generate the _Text_ file. This is caused because in some situations VFP can loose the tracking to some ZOrders, and duplicate them. To **fix** this problem, you just need to open your visual form/class, -reorder manually the offending objects to force VFP to assign a new ZOrder value and regenerate the _Text_ file. +reorder manually the offending objects to force VFP to assign a new ZOrder value and generate the _Text_ file. You can see (only in the _Text_ file or inside the vcx/vct) that the property is called ZOrderSet and have a repeated value before fixing it. Another solution, starting at v1.19.43, is using RemoveZOrderSetFromProps:1 in foxbin2prg.cfg file to remove this from the properties. A better solution is using this setting only in a specific directory used to fix this -kind of problems. In any case, for this setting to work properly, you need to regenerate the binary_ +kind of problems. In any case, for this setting to work properly, you need to generate the _Binary_ ### DBC ordered fields Starting from v1.19.42 the members of the DBC are ordered alphabetically, including fields of DBFs and Views, Connections, Tables, @@ -166,29 +210,30 @@ DEFINE CLASS c1 AS custom OLEPUBLIC && Description of "c1" class ```` Starting from v1.19.21 arrays don't need to be preceded with "^" symbol, and methods don't need to be preceded with "*" symbol, which makes this section more easy to maintain. + ### Property Ordering On _Text_ files is easy, ordering for methods and properties is done in alphabetical way, like scctext does with methods. This makes comparisons easier and with less differences. -On binaries, property ordering is a very different thing. No documentation is available about this, +On _Binaries_, property ordering is a very different thing. No documentation is available about this, so the only guideline is trying to make it as FoxPro does, but this is not always possible because there are two extreme cases, and variants between the them: 1. The best and easy one, is when defining a class (or control) with his properties: In this case, each class have a phisical record on the scx/vcx table, and all the properties of it are keep toghether, -so this ordering can be easily duplicated (look at `"TESTS\DATOS_READONLY\f_form_aa.scx file"` on foxbin2prg project +so this ordering can be easily duplicated (look at "TESTS\DATOS_READONLY\f_form_aa.scx file" on foxbin2prg project and open it as a table to see the class per record) 2. The worst and most difficult case, is when there is a container with controls subclassed, and properties are changed on the instance: In this case FoxPro makes a big and unique list of properties of all objects in just one phisical record, so there is no way to know which property corresponds to which class. For this case, I've made a unique list composed of all properties of all classes, -ordered according to most common orderings (look at "`"TESTS\DATOS_READONLY\f_form_aa2.scx file"`" on foxbin2prg project +ordered according to most common orderings (look at "TESTS\DATOS_READONLY\f_form_aa2.scx file" on foxbin2prg project and open it as a table to see all the properties of all the classes of the same earlier example, in just one record) -For these two cases, and starting from v1.19.22, I've created several `"props_*"` files with ordering by class for the 1st case, -and a list with all in it (`"props_all.txt"`) for the second case, so in case of any problems, +For these two cases, and starting from v1.19.22, I've created several "props_*" files with ordering by class for the 1st case, +and a list with all in it ("props_all.txt") for the second case, so in case of any problems, rearranging some props will be an easy thing. -#### Warning: -These `"props_**"` files are necessary in the foxbin2prg install directory. +#### Warning +These "props_**" files are necessary in the foxbin2prg install directory. It's recommended to use the EXE version that have all files included and is faster._ Several Unit Tests (in TESTS directory) are made to make the best effort to cover the most typical use cases. @@ -196,11 +241,11 @@ There is also an Excel spreedsheet with the compilation of properties of each cl and a tab with the all-in-one order for the worst case. ### Timestamps and UniqueIDs -Timestamp field are used in VFP to track changes with 3rd party tools and UniqueId is used to identify classes inside binaries, +Timestamp field are used in VFP to track changes with 3rd party tools and UniqueId is used to identify classes inside _Binaries_, but, AFAIK, they are not used by VFP itself. There are 2 switches, enabled by default, that are used to clear this values (ClearUniqueId and NoTimestamps), so no differences are shown for this values constantly changing. -Starting from v1.19.23 this values are just cleared on _Text_ files, and regenerated on the binaries, +Starting from v1.19.23 this values are just cleared on _Text_ files, and generated on the _Binaries_, as well the sccdata field, because this way there are no differences when opening/closing certain files, as a PJX, which by default fill some of this fields even if no modifications are made, which causes that SCM tools detect those changes. Having them prefilled, then no changes are detected. @@ -208,23 +253,23 @@ Having them prefilled, then no changes are detected. ### DBF Data Export/Import for Diff/Merge Starting at version v1.19.21, and thanks to Doug Hennig proposal and coding, FoxBin2Prg can export DBFs Data, specially intended for small DBFs, as config ones, on which sometimes is needed to track the changes. -It is deactivated by default, but can be activated with **`"DBF_Conversion_Support: 4"`** in foxbin2prg.cfg -Since version v1.19.47, importing of Data can be activated with **`"DBF_Conversion_Support: 8"`** in foxbin2prg.cfg +It is deactivated by default, but can be activated with **"DBF_Conversion_Support: 4"** in foxbin2prg.cfg +Since version v1.19.47, importing of Data can be activated with **"DBF_Conversion_Support: 8"** in foxbin2prg.cfg If you want to export the data of just some tables and not for all of them, one way is moving the tables for data export to another directory, or even a subdirectory of main data files, -and write a foxbin2prg.cfg with **`"DBF_Conversion_Support: 4 or 8"`** for this diretory only, +and write a foxbin2prg.cfg with **"DBF_Conversion_Support: 4 or 8"** for this diretory only, taking advantage of multi-configuration capability introduced on v1.19.25 A much better option that join the best of the two worlds, available from v1.19.44, -could be using the default setting **`"DBF_Conversion_Support: 1"`** and using **individual cfg files** for each table +could be using the default setting **"DBF_Conversion_Support: 1"** and using **individual cfg files** for each table (table.dbf.cfg) on which you want to export their data, so this way you can have only the structure in DB2 files and some tables with their data exported for easy diffing with previous versions, -or even use **`"DBF_Conversion_Support: 8"`** (available since v1.19.47) for bidirectional support of data import/export. +or even use **"DBF_Conversion_Support: 8"** (available since v1.19.47) for bidirectional support of data import/export. ### Order and range of records **FoxBin2prg.cfg (Main CFG, Directory CFG or Table CFG)** New foxbin2prg.cfg options for filtering tables from conversion using one or multiple conbinations of filemasks. -##### Syntax: +#### Syntax ```` "DBF_Conversion_Included: [ , [ , ... ](-,_filemask_-[-,-...-) ]" "DBF_Conversion_Excluded: [ , [ , ... ](-,_filemask_-[-,-...-) ]" @@ -241,27 +286,28 @@ New configuration options. See [Configuration file per table] These options can be used in any combination inside a dbf particular cfg file, if you create a text file using your dbf filename and adding ".cfg". -#### Syntax for filename.dbf.cfg contents: +#### Syntax for filename.dbf.cfg contents ```` "DBF_Conversion_Support: <4 for export only or 8 for bidirectional support>" "DBF_Conversion_Order: " "DBF_Conversion_Condition: " ```` + #### Example: customers.dbf.cfg ```` "DBF_Conversion_Support: 4" "DBF_Conversion_Order: cust_no" "DBF_Conversion_Condition: cust_no > 10" ```` -### DBF/DB2 Convertion Hooks -From version v1.19.19 there is a new property "`"run_AfterCreateTable"`" and from version v1.19.24 "`"run_AfterCreate_DB2"`". +### DBF/DB2 Convertion Hooks +From version v1.19.19 there is a new property "run_AfterCreateTable" and from version v1.19.24 "run_AfterCreate_DB2". The purpose of both properties is to allow the execution of an external program each time a DBF is converted to DB2 or a DB2 is converted to DBF. The main purpose of FoxBin2Prg is to be used for Diff and Merge with a SCM tool, so in this scenario the data is not needed, but there are use cases where exporting, importing or manipulating data is needed while making the conversions, and for those cases are this properties. -#### This is a sample program: +#### This is a sample program ```` *-- DEMO HOOK FOR PROCESSING DBFs AND DB2 LOCAL oFB AS 'c_foxbin2prg' OF 'c:\desa\foxbin2prg\foxbin2prg.prg' @@ -294,10 +340,9 @@ PROCEDURE p_AfterCreate_DB2 ENDPROC ```` ### Language Support for messages - As for version v1.19.38 FoxBin2Prg messages are available natively on Spanish, English, German and French. -#### Note: +#### Note The messages on vbs scripts are not translated (are very few), just the FoxPro ones, which have +90% of the messages. @@ -305,29 +350,38 @@ which have +90% of the messages. Just copy the english translation CASE in the final section in FoxBin2Prg.PRG to a new CASE with your country code and translate the messages (can be done in 20 minutes or less), and send it to me. I will include it in the next release ;-) -#### Note: -.h language files are not supported anymore, and are now implemented inside foxbin2prg, -in the `"C_LANG"` class at the end of the PRG_ -### Multi-config (config per directory) +#### Note +.h language files are not supported anymore, and are now implemented inside foxbin2prg, +in the "C_LANG" class at the end of the PRG_ + +### Multi-config Starting at version v1.19.25 FoxBin2Prg allow configuration per directory, overriding the main configuration of FoxBin2Prg directory. The override is by each setting, so you can reconfigure one or more settings and the remaining settings are inherited from main CFG. -#### New: + From v1.19.42 CFGs are inherited between directories from parent to child, -so if you have all your developments under, let's say, `"c:\devs"` directory and subdirs, -de CFG in `"c:\devs"` will be inherited on subdirs, and settings can be overriden one by one if you want to. -This inheritance saves a lot of time and minimizes the CFGs needed `":)"` +so if you have all your developments under, let's say, "c:\devs" directory and subdirs, +de CFG in "c:\devs" will be inherited on subdirs, and settings can be overriden one by one if you want to. +This inheritance saves a lot of time and minimizes the CFGs needed \:\) + +##### Note +Options will be read outside in, top to down. +If an option is defined multiple times, even in the same file, last occurance wins. +This exception is the group controlling the new style to split DBC files. +The options _UseFilesPerDBC_, _RedirectFilePerDBCToMain_ and _ItemPerDBCCheck_ will be ignored, +if _OldFilesPerDBC_ is set to 0. +If _OldFilesPerDBC_ is set to 0 after it was active, the values of the three options are rejected at all. ### File Capitalization FoxBin2Prg takes care of file capitalization (their extension, specifically), -using another program called (`"filename_caps.exe"`) for capitalizing input files and output files. +using another program called ("filename_caps.exe") for capitalizing input files and output files. This is because some SCM and DVCS tools are multiplatform, and if you add a "file.ext" and later add a "file.EXT" or "File.Ext", the SCM can interpret them as different files, because on Unix, Linux, Mac and other sistems, they are. If you want a special capitalization (ie: capitalize the full name of the file), -you can configure this behaviour in `"filename_caps.cfg"` configuration file, which includes syntax examples. +you can configure this behaviour in "filename_caps.cfg" configuration file, which includes syntax examples. File capitalization occurs when you convert a file, but in the case that the input file can't be converted, no message error ir thrown (ie: when using the PRG version from VFP Command Line with the form to be converted opened) @@ -345,14 +399,14 @@ To configure this, you must first enable it in foxbin2prg.cfg file: ```` *UseClassPerFile: 1 && 0=One library _Text_ file, 1=Multiple file.class.vc2 files, 2=Multiple file.baseclass.class.vc2 files ```` -In example, if you have a classlib "mylib.vcx" with 3 classes inside (`"cl_1, cl_2, cl_3"`) then this files are generated: +In example, if you have a classlib "mylib.vcx" with 3 classes inside ( "cl_1, cl_2, cl_3") then this files are generated: - mylib.vc2 => Header file, with all conforming classes annotated inside - mylib.cl_1.vc2 - mylib.cl_2.vc2 - mylib.cl_3.vc2 -#### Recommended new setting: +#### Recommended new setting Starting at v1.19.42 you can configure foxbin2prg to generate one class per file. using the naming style "basefile._baseclass_.class.vc2" with the new value "2". @@ -361,48 +415,40 @@ To configure this, you must first enable it in foxbin2prg.cfg file: *UseClassPerFile: 2 && 0=One library _Text_ file, 1=Multiple file.class.vc2 files, 2=Multiple file.baseclass.class.vc2 files, including DBC members ```` -In example, if you have a classlib "mylib.vcx" with 3 classes inside (`"cl_1, cl_2, cl_3"`) then this files are generated: +In example, if you have a classlib "mylib.vcx" with 3 classes inside ( "cl_1, cl_2, cl_3") then this files are generated: ```` mylib.vc2 => Header file, with all conforming classes annotated inside mylib.custom.cl_1.vc2 mylib.form.cl_2.vc2 mylib.textbox.cl_3.vc2 ```` -And if you convert mydbc DBC file to text: -```` -mydbc.dc2 => Header file, with all conforming members annotated inside -mydbc.connection.cnx_oracle.dc2 -mydbc.table.customers.dc2 -mydbc.view.vw_products.dc2 -```` -#### Complementary options for the UseClassPerFile setting +#### Complementary options for the UseClassPerFile setting ##### RedirectClassPerFileToMain: Configuring this setting to 1 will redirect any selection of file.class.vc2 to the main file.vc2 file, which will not let you generate individual vcx files by mistake. -##### ClassPerFileCheck: +##### ClassPerFileCheck Configuring this setting to 1 will check the inclusion of all file.class.vc2 files annotated on file.vc2 main file, otherwise no checking is made and when reconstructing the vcx/scx all files -containing the file.class.ext naming will be included in the binary (useful when you want to add external classes to the library) +containing the file.class.ext naming will be included in the _Binary_ (useful when you want to add external classes to the library) -#### Note: -If you dont use the Redirect setting, an individual vcx/scx file will be generated. +#### Note +If you dont use the redirect setting, an individual vcx/scx file will be generated. This can be useful if you want to divide a big library in smaller pieces_ -#### Note: -This is true for SCX files as well. SCX Files may contain a form and a dataenvironment. +#### Note +This is true for SCX files as well. SCX files may contain a form and a dataenvironment. It will create sc2 files. ### Create File-Per-DBC - -Starting at vn.nn.nn you can configure foxbin2prg to generate one file per dbc item using naming style "DatabaseName.item.name.dc2" +Starting at 1.21.02 you can configure FoxBin2Prg to generate one _Text_ file per dbc item using naming style "DatabaseName.item.name.dc2" with the value "1" To configure this, you must first enable it in foxbin2prg.cfg file: ```` *UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files ```` -In example, if you have a classlib "MyData.dbc" with 3 tables inside (`"tl_1, tl_2, tl_3"`) and stored procedures. +In example, if you have a classlib "MyData.dbc" with 3 tables inside ( "tl_1, tl_2, tl_3") and stored procedures. Then this files are generated: - MyData.vc2 => Header file, with all database settings and conforming items annotated inside @@ -416,11 +462,13 @@ Then this files are generated: `*RedirectFilePerDBCToMain 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2` Configuring this setting to 1 will redirect any selection of DataBaseName.*.dc2 to the main DataBaseName.dc2 file, which will not let you generate individual DBC files by mistake. + ##### ItemPerDBCCheck `*ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion` Configuring this setting to 1 will check the inclusion of all DataBaseName.*.dc2 files annotated on DataBaseName.dc2 main file, otherwise no checking is made and when reconstructing the dbc files -#### Note: + +#### Note If you dont use the Redirect setting, an individual dbc file will be generated. There is no real use of this. @@ -444,7 +492,7 @@ Convert a file.vcx to text: ```` loCnv.execute( "\file.vcx" ) ```` -Regenerate the binary classlib from the text file.vc2: +generate the _Binary_ classlib from the text file.vc2: ```` loCnv.execute( "\file.vc2" ) ```` @@ -472,9 +520,9 @@ loCnv.evaluateConfiguration( '', '', '', '', '', '', '', '', , 'D' ) ? loCnv.hasSupport_Bin2Prg("\file.vcx") ? loCnv.hasSupport_Bin2Prg("\file.ppt") ```` -#### Note: +#### Note If you query for support in different subdirectories, -then you need to call `"evaluateConfiguration()"` method for refreshing the CFG info that is used by those methods._ +then you need to call "evaluateConfiguration()"` method for refreshing the CFG info that is used by those methods._ Clear the cache of processed files for allowing reprocessing a file: ```` @@ -486,8 +534,8 @@ oCFG = loCnv.get_DirSettings( "c:\developments\projects\myproj_1" ) ? oCFG.n_UseClassPerFile ? oCFG.DBF_Conversion_Support ```` -#### Note: -`"get_DirSettings()"` method internally calls `"evaluateConfiguration()"` +#### Note +"get_DirSettings()"` method internally calls "evaluateConfiguration()"` method for refreshing the CFG info before returning the CFG object._ @@ -506,25 +554,27 @@ FOR I = 1 TO oMod.Count && oMod.Count is the total count of files in the PJX ENDFOR ```` +#### PEM This is a list of available methods and properties: | Method()/Property
Syntax | Description | | -| - | -| **execute**
loCnv.execute( cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,oModule [,oEx [,lRelanzarError [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cCFG_File](,cType-[,cTextName-[,lGenText-[,cDontShowErrors-[,cDebug-[,cDontShowProgress-[,oModule-[,oEx-[,lRelanzarError-[,cOriginalFileName-[,cRecompile-[,cNoTimestamps-[,cBackupLevels-[,cClearUniqueID-[,cOptimizeByFilestamp-[,cCFG_File) ] ] ] ] ] ] ] ] ] ] ] ] ] ] ) | Main execution method to start a conversion | +| **execute**
loCnv.execute( cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,oModule [,oEx [,lRelanzarError [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cCFG_File](,cType-[,cTextName-[,lGenText-[,cDontShowErrors-[,cDebug-[,cDontShowProgress-[,oModule-[,oEx-[,lRelanzarError-[,cOriginalFileName-[,cRecompile-[,cNoTimestamps-[,cBackupLevels-[,cClearUniqueID-[,cOptimizeByFilestamp-[,cCFG_File ] ] ] ] ] ] ] ] ] ] ] ] ] ] ) | Main execution method to start a conversion
See [Object version](./FoxBin2Prg_Object.md#execute) | | **conversionSupportType**
loCnv.conversionSupportType( cFilename ) | Return de code of the support type (0,1,2,4,8) | | **get_DBF_Configuration**
loCnv.get_DBF_Configuration( cInputFile, @oOutDbfCfg ) | Returns 1 if a CFG is found for the indicated DBF, or 0 if not | | **hasSupport_Bin2Prg**
loCnv.hasSupport_Bin2Prg( cFilename.ext )
loCnv.hasSupport_Bin2Prg( cExt ) | Returns .T. if there is support for converting the file or filetype indicated to text | -| **hasSupport_Prg2Bin**
loCnv.hasSupport_Prg2Bin( cFilename.ext )
loCnv.hasSupport_Prg2Bin( cExt ) | Returns .T. if there is support for converting the file or filetype indicated to binary | +| **hasSupport_Prg2Bin**
loCnv.hasSupport_Prg2Bin( cFilename.ext )
loCnv.hasSupport_Prg2Bin( cExt ) | Returns .T. if there is support for converting the file or filetype indicated to _Binary_ | | **evaluateConfiguration**
loCnv.evaluateConfiguration( cDontShowProgress [,cDontShowErrors [,cNoTimestamps [,cDebug [,cRecompile [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cInputFile [,cInputFileTypeType [,cCFG_File](,cDontShowErrors-[,cNoTimestamps-[,cDebug-[,cRecompile-[,cBackupLevels-[,cClearUniqueID-[,cOptimizeByFilestamp-[,cInputFile-[,cInputFileTypeType-[,cCFG_File) ] ] ] ] ] ] ] ] ) | Forces foxbin to process the directory indicated in the cInputFile and update any CFG in the directory or their parents | | **loadProgressbarForm**
loCnv.loadProgressbarForm() | Load and show the progressbar form as upper level window | | **unloadProgressbarForm**
loCnv.unloadProgressbarForm() | Hide and unload the progressbar form | | **updateProgressbar**
loCnt.updateProgressbar( cText, nValue, nTotal, nType ) | Update the progressbar and the message. nType indicates which progressbar to update, being 0=1st PB and 1=2nd PB | | **get_DirSettings**
loCnv.get_DirSettings( cDir ) | Returns a CFG object with the settings that are applied on the indicated directory | -| **get_Ext2FromExt**
loCnv.get_Ext2FromExt( cExt ) | Returns the text extension corresponding to the binary extension indicated | -| **get_Processed**
loCnv.get_Processed( @aProcessed, cFileMask ) | Returns an array with the status of the files being processed or that will be processed in no-real-process-mode if you set `"l_ProcessFiles=.F."` before the call. Columns returned are 6: `"cFile, cInOutType, cProcessed, cHasErrors, cSupported, cExpanded"` | +| **get_Ext2FromExt**
loCnv.get_Ext2FromExt( cExt ) | Returns the text extension corresponding to the _Binary_ extension indicated | +| **get_Processed**
loCnv.get_Processed( @aProcessed, cFileMask ) | Returns an array with the status of the files being processed or that will be processed in no-real-process-mode if you set "l_ProcessFiles=.F."` before the call. Columns returned are 6: "cFile, cInOutType, cProcessed, cHasErrors, cSupported, cExpanded"` | | **clearProcessedFiles**
loCnv.clearProcessedFiles() | Clear the statistics and the cache about processed files. If a file was processed and is already processed, being not cached will force to process it again | | **wasProcessed**
loCnv.wasProcessed( cFile ) | Returns .T. if the fullpath-file was processed, searching in the internal cache | +#### Renamed This is the translation table of old method names up to v1.19.41 and the new names: | Old name | New name | @@ -536,15 +586,17 @@ This is the translation table of old method names up to v1.19.41 and the new nam | cargar_frm_avance | loadProgressbarForm | | descargar_frm_avance | unloadProgressbarForm | -#### Note: +#### Note Any method or property not documented in this help, could be renamed, changed or deleted, so please, do not use it_ ### Log to StdOut +When running from a DOS window, you can get the output to console (same order as array obtained with get_Processed method, +except that element 1 \[filename\] is shown last): -When running from a DOS window, you can get the output to console (same order as array obtained with `"get_Processed"` method, -except that element 1 `"[filename](filename)"` is shown last): +```` +C:\DESA\foxbin2prg>foxbin2prg.exe "tests\datos_test\fb2p_dbc.dbc" | find /V +```` -**`"C:\DESA\foxbin2prg>foxbin2prg.exe "tests\datos_test\fb2p_dbc.dbc" | find /V """`** ```` I,P1,E0,S1,X0,c:\desa\foxbin2prg\tests\datos_test\fb2p_dbc.dbc O,P1,E0,S1,X1,c:\desa\foxbin2prg\tests\datos_test\fb2p_dbc.dc2 @@ -560,36 +612,49 @@ O,P1,E0,S1,X1,c:\desa\foxbin2prg\tests\datos_test\fb2p_dbc.view.vw_ora_dual.dc2 O,P1,E0,S1,X1,c:\desa\foxbin2prg\tests\datos_test\fb2p_dbc.database.storedproceduressource.dc2 ```` -The last line means: -Output file (**O**), Processed (**P1**), Without Errors (**E0**), Supported (**S1**), -Not Extended file (**X0**) and the Full path filename +#### First line +The first line means: +Input file (**I**), Processed (**P1**), Without Errors (**E0**), Supported (**S1**), Not Extended file (**X0**) and the full path filename. + +#### Last line +The last line means: +Output file (**O**), Processed (**P1**), Without Errors (**E0**), Supported (**S1**), Extended file (**X1**) and the full path filename. ## How to use with a SCM tool -Here we need to identify 2 distinct operations: checkin because a binary modification with the IDE +### Note +This chapter is without function if the only the _Text_ files are in the source control. + +Here we need to identify 2 distinct operations: checkin because a _Binary_ modification with the IDE and checkin because a merge operation. -### Checkin because a binary modification within the IDE -When you work with the VFP 9 IDE, you modify the binary files (forms, classlib and the like), -then you checkin your modifications, but before doing this you regenerate the _Text_ files +just for the changed binaries+, -and once you have all the boundles of bins/_Text_, you checkin them. +### Checkin because a _Binary_ modification within the IDE +When you work with the VFP 9 IDE, you modify the _Binary_ files (forms, classlib and the like), +then you checkin your modifications, but before doing this you generate the _Text_ files +just for the changed _Binaries_+, +and once you have all the boundles of _Binaries_/_Text_, you checkin them. #### Note: -If any binary doesn't have the corresponding _Text_ file, -it can be because it is in use (close opened bin and CLEAR ALL at VFP command window), +If any _Binary_ doesn't have the corresponding _Text_ file, +it can be because it is in use (close opened _Binariy_ and CLEAR ALL at VFP command window), or because you really haven't made any changes to the code, -in which case you should undo the changes to the binaries that don't have their _Text_ files using the "undo" option +in which case you should undo the changes to the _Binaries_ that don't have their _Text_ files using the "undo" option for these files of your SCM tool._ + ### Checkin because a merge operation When you merge a branch, you work on _Text_ files seeing and merging differences manually or automatically. When you have done with the merge you need to checkin, but before this, -you need to regenerate the binaries (forms, classlib, etc) just from the _Text_ files merged, to sync their code. -Once you have done, then you checkin the boundle of bins/_Text_. -#### Note: -If at the end of a merge operation there are binaries left, you need to choose the "workspace binaries", -because anyway you will regenerate them later from their _Text_ files._ +you need to generate the _Binaries_ (forms, classlib, etc) just from the _Text_ files merged, to sync their code. +Once you have done, then you checkin the boundle of _Binaries_/_Text_. +#### Note +If at the end of a merge operation there are _Binaries_ left, you need to choose the "workspace binaries", +because anyway you will generate them later from their _Text_ files._ + For options on integrating FoxBin2Prg with SCM tools, look at this topic: **> [FoxBin2Prg and use with SCM tools](./FoxBin2Prg_SCM.md)** ---- -Last changed: _Pungenday, 53 Chaos 3187_ ![VFPX](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) +This project is part of [VFPX](https://vfpx.github.io/). + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/FoxBin2Prg_Object.md b/Documentacion/github/FoxBin2Prg_Object.md index 6bd395a..f5ab47a 100644 --- a/Documentacion/github/FoxBin2Prg_Object.md +++ b/Documentacion/github/FoxBin2Prg_Object.md @@ -1,20 +1,24 @@ -# Purpose of this document -This document is an attempt to recreate the original documentation of FoxBin2Prg out of CodePlex. -I found the documentation on [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/blob/master/README.md) a bit brief. For a short what and why, see there. +# Usage in object style +Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9 -The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. Pictures are taken from the original project. -As far as possible these are the original documents. Changes are added where functionality is changed. - ----- -![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) -This project is part of VFPX. - ----- -# FoxBin2Prg - Usage in object style +## Purpose of this document FoxBin2Prg might be used as an EXE either from Windows or VFP, or as as prg from inside VFP in a [command line](./FoxBin2Prg_Run.md) way. This document deals with the integration as an VFP Object using VFP based objects. For settings, API and other realted stuff see [Internals](./FoxBin2Prg_Internals.md). + +The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. +Pictures are taken from the original project. +As far as possible these are the original documents. Changes are added where functionality is changed. + +---- +## Table of contents +- [Usage](#usage) + - [Instantiating](#instantiating) + - [Execute](#execute) +- [Return values](#return-values) + +---- ## Usage ### Instantiating Basically, the instantiating of FoxBinPrg is straight forward: @@ -32,7 +36,8 @@ LOCAL loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" loCnv = NEWOBJECT("c_foxbin2prg", "\FOXBIN2PRG.PRG") loCnv.execute( ) ``` -### Execute() + +### Execute Transforming file(s) works like `obj.execute(cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,oModule [,oEx [,lRelanzarError [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cCFG_File] ] ] ] ] ] ] ] ] ] ] ] ] ] ])` A lot of the parameters are the same as calling the [command line](./FoxBin2Prg_Run.md), @@ -52,7 +57,7 @@ Some settings will overwrite configuration. Using an object as cCFG_File will ov | | \*\- | If _cInputFile_ is a project (pj[x2]) all files of the project, **excluding** the pjx, will be processed. The extension defines direction of operation. | | | d, D, K, B, M, R, V | SCCAPI (SCCTEXT.PRG) compatibility mode, query the conversion support for the file type specified
Types: d=DBC, D=DBF, K=Form, B=Label, M=Menu, R=Report, V=Class | | cTextName | Text filename. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. File to use. | -| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. .T.=Generates Text, .F.=Regenerates Binary.
**Note:** _cType_ have predominance over _lGenText_ | +| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. .T.=Generates Text, .F.=Generates Binary.
**Note:** _cType_ have predominance over _lGenText_ | | cDontShowErrors | _0_, 1 | '1' for NOT showing errors in MESSAGEBOX | | cDebug | _0_, 1, 2 | '0 'no debug, '1' for generating process LOGs, stop on errors, '2' like '1' and special log. | | cDontShowProgress | 0, _1_, 2 | '0' show progress, '1' for **not** showing the process window, '2' Show only for multi-file processing | @@ -60,7 +65,7 @@ Some settings will overwrite configuration. Using an object as cCFG_File will ov | oEx | | Exception object, return for errorhandling | | lRelanzarError | .T.. _.F._ | Throw error to caller of _.Execute()_ | | cOriginalFileName | text | used in those cases in which inputFile is a temporary filename and you want to generate the correct filename on the header of the text version | -| cRecompile | 0, _1_ | Indicates recompile ('1') the binary once regenerated.
True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. | +| cRecompile | 0, _1_ | Indicates recompile ('1') the binary once generated.
True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. | | | path | The binary is compiled from this path | | cNoTimestamps | 0, _1_ | Indicates if timestamp must be cleared ('1' or empty) or not ('0') | | cBackupLevels | 0, _1_, .. | "0" no Bakup, "1", one level _filename_.bak, "n" n levels of Backup _filename_.n.bak | @@ -68,16 +73,23 @@ Some settings will overwrite configuration. Using an object as cCFG_File will ov | cOptimizeByFilestamp | _0_, 1 | 1=Optimize file regeneration depending on file timestamp.
Dangerous while working with branches! | | cCFG_File | filename | Indicates a CFG filename for not using the default on foxbin2prg directory or path. | | | object | An object containing configuration options to use. See [Internals](./FoxBin2Prg_Internals.md) for object creation. | -#### Note #1 + +#### Note The _BIN2PRG, PRG2BIN, INTERACTIVE, SHOWMSG_ cTypes might be mixed freely like: `PRG2BIN-INTERACTIVE` `BIN2PRG-INTERACTIVE-SHOWMSG` -#### Note #2: + +#### Note - The swap of _cInputFile_ and _cType_ is not possible here. - Setting _cInputFile_ and _cType_ appropriate, info screen and generation of configuration templates is possible too. See [command line](./FoxBin2Prg_Run.md#usage_1) - While possibe, the SCCAPI (SCCTEXT.PRG) compatibility mode is more an idea of the [command line](./FoxBin2Prg_Run.md). + ## Return values Return value is 0=OK, 1=Error. ---- -Last changed: _Pungenday, 53 Chaos 3187_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) +This project is part of [VFPX](https://vfpx.github.io/). + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/FoxBin2Prg_Run.md b/Documentacion/github/FoxBin2Prg_Run.md index ec9522a..19d10f6 100644 --- a/Documentacion/github/FoxBin2Prg_Run.md +++ b/Documentacion/github/FoxBin2Prg_Run.md @@ -1,36 +1,53 @@ -# Purpose of this document -This document is an attempt to recreate the original documentation of FoxBin2Prg out of CodePlex. -I found the documentation on [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/blob/master/README.md) a bit brief. For a short what and why, see there. +# Usage in command line style +Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9 -The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. Pictures are taken from the original project. +## Purpose of this document +This document shows how to run FoxBin2Prg from MS Windows Commandline, VFP's Command window or as SendTo. + +The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. +Pictures are taken from the original project. As far as possible these are the original documents. Changes are added where functionality is changed. ---- -![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) -This project is part of VFPX. +## Table of contents +- [Run FoxBin2Prg](#run-foxbin2prg) +- [Differences on excecution](#differences-on-excecution) +- [EXE](#exe) +- [PRG](#prg) +- [Parameters](#parameters) +- [Usage](#usage) +- [Return values](#return-values) +- [Examples](#Examples) +- [Explorer SendTo](#explorer-sendto) ---- -# FoxBin2Prg - Usage in command line style +## Run FoxBin2Prg FoxBin2Prg might be used as an EXE either from Windows or VFP, or as as prg from inside VFP. Additional it might be integrated as an VFP Object using the [Object version](./FoxBin2Prg_Object.md). Since the EXE is basically the prg packed with some controling files, the way to call it ist mostly similar. The knowledge of differences in calling, DO .. WITH syntax separating parameters with "," and the DOS way off calling will be assumed. Do the similarity of the call, the prg version takes all parameters as strings too. -For settings and other realted stuff see [Internals](./FoxBin2Prg_Internals.md). -## Main differences +For settings and other related stuff see [Internals](./FoxBin2Prg_Internals.md). + +## Differences on excecution ### EXE -The exe contains the mos controling structures and the program itself. +The exe contains the mose controling structures and the program itself. Alongside the _FoxBin2Prg.exe_ must be _FileName_Caps.exe_ . -It is recomended to have a general _FoxBin2Prg.cfg_ configuration file, but it will run without. +It is recomended to have a general _FoxBin2Prg.cfg_ configuration file in the folder with the EXE, but it will run without. + +Remember, the Exe needs to be created first. + ### PRG The prg is just the program and needs to find the controling structures. In particular: - _FileName_Caps.exe_ - _Props*.txt_ - _FileName_Caps.exe_ - _FoxBin2Prg.cfg_ is recomended + #### Note All mentioned files need to be in the same folder. You can't use just the PRG without the rest of the mentioned files. + ## Parameters `FoxBin2Prg.EXE ...` could be used from VFP command line as @@ -38,15 +55,19 @@ could be used from VFP command line as or `DO FoxBin2Prg.prg WITH ...` or via _RUN_ or more sophisticated ways. + Remember that using the prg style, parameters must be wrapped in string delimiters. + #### Note Do to the compatibility with VSS the usage of _cInputFile_ and _cType_ is odd. + #### Important note: - When you process a directory, it is used as the base for the compilation of binaries, +When you process a directory, it is used as the base for the compilation of _Binaries_, and because of this, never process more than one directory in the same process, because the compilation may not be ok. To process more than one directory (or project), -just select and process each one independently, in parallel if you like, but in different processes. +just select and process each one independently, in parallel if you like, but in different processes. +## Usage ### Usage 1 `FoxBin2Prg.EXE [-c cOutputFile] [-t cOutputFile]` @@ -54,7 +75,8 @@ just select and process each one independently, in parallel if you like, but in | ----- | ----- | | none | Call Info screen | | -c | creates a template config-file _cOutputFile_ ( like FOXBIN2PRG.CFG ) | -| -t | creates a template table-config-file _cOutputFile_ ( like _Tabellenname_.dbf.cfg ) | +| -t | creates a template table-config-file _cOutputFile_ ( like _TableName_.dbf.cfg ) | + ### Usage 2 `FoxBin2Prg.EXE cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cCFG_File] ] ] ] ] ] ] ] ] ] ]` @@ -62,7 +84,7 @@ just select and process each one independently, in parallel if you like, but in | ----- | ----- | ----- | | cInputFile | fullpath | Full name of the file to convert or directory name to process
without any other parameter given, the extension (and the config) defines the operation| | | _FileName::ClassName_ | If option UseClassPerFile is 1 or 2, a class-file will be extracted from the lib | -| cType | empty | Fileextension of _cInputFile_ defines operation | +| cType | _empty_ | Fileextension of _cInputFile_ defines operation | | | BIN2PRG | _cInputFile_ is processed for generating a _Text_ representation. | | | PRG2BIN | _cInputFile_ is processed for generating the _Binary_ file(s). | | | INTERACTIVE | A confirmation dialog will be shown when processing a directory asking what to convert.
This option overrides the _BIN2PRG_ and _PRG2BIN_ parameters.
Can be used with or without _PRG2BIN_ or _BIN2PRG_ | @@ -71,49 +93,55 @@ just select and process each one independently, in parallel if you like, but in | | \*\- | If _cInputFile_ is a project (pj[x2]) all files of the project, **excluding** the pjx, will be processed. The extension defines direction of operation. | | | d, D, K, B, M, R, V | SCCAPI (SCCTEXT.PRG) compatibility mode, query the conversion support for the file type specified
Types: d=DBC, D=DBF, K=Form, B=Label, M=Menu, R=Report, V=Class | | cTextName | Text filename. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. File to use. | -| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. .T.=Generates Text, .F.=Regenerates Binary.
**Note:** _cType_ have predominance over _lGenText_ | +| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode.
.T.=Generates _Text_, .F.=Generates _Binary_.
**Note:** _cType_ have predominance over _lGenText_ | | cDontShowErrors | _0_, 1 | '1' for NOT showing errors in MESSAGEBOX | | cDebug | _0_, 1, 2 | '0 'no debug, '1' for generating process LOGs, stop on errors, '2' like '1' and special log. | | cDontShowProgress | 0, _1_, 2 | '0' show progress, '1' for **not** showing the process window, '2' Show only for multi-file processing | -| cOriginalFileName | text | used in those cases in which inputFile is a temporary filename and you want to generate the correct filename on the header of the text version | -| cRecompile | 0, _1_ | Indicates recompile ('1') the binary once regenerated.
True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. | -| | path | The binary is compiled from this path | +| cOriginalFileName | text | used in those cases in which inputFile is a temporary filename and you want to generate the correct filename on the header of the _Text_ version | +| cRecompile | 0, _1_ | Indicates recompile ('1') the _Binary_ once generated.
True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. | +| | path | The _Binary_ is compiled from this path | | cNoTimestamps | 0, _1_ | Indicates if timestamp must be cleared ('1' or empty) or not ('0') | | cCFG_File | filename | Indicates a CFG filename for not using the default on foxbin2prg directory or path. | + #### Note #1 The _BIN2PRG, PRG2BIN, INTERACTIVE, SHOWMSG_ cTypes might be mixed freely like: `PRG2BIN-INTERACTIVE` `BIN2PRG-INTERACTIVE-SHOWMSG` + #### Note #2 On any combination of (_BIN2PRG_, _PRG2BIN_, _INTERACTIVE_, _SHOWMSG_) separated by a "-", _cType_ and _cInputFile_ parameters can be swapped. This is useful when used as EXE dealing with Windows shortcuts, on which fixed parameters must be in the shortcut. The filename is an external variable parameter received when SendingTo FoxBin2Prg with right-click on File Manager. + ## Return values Return value via _ErrorLevel_ is 0=OK, 1=Error. + ## Examples -### Using the "EXE" version: (useful for calling from 3rd.party programs) +### Using the "EXE" version: (useful for calling from 3rd party programs) | command | description | | - | - | -| `FOXBIN2PRG.EXE "\file.scx"` | enerates the Text version | -| `FOXBIN2PRG.EXE "\file.sc2"` | Regenerates the Binary version | -| `FOXBIN2PRG.EXE "\proj.pjx" "*"` | Generates the Text files for all the files in the PJX, including the PJX | -| `FOXBIN2PRG.EXE "\proj.pj2" "*"` | Regenerates the Binary files for all the files in the PJ2 | -| `FOXBIN2PRG.EXE "\proj.pjx" "*-"` | Generates the Text files for all the files in the PJX, excluding the PJX | -| `FOXBIN2PRG.EXE "\file.vcx::cus_client"` | Regenerates only the Text version of the individual class cus_client of file.vcx (with UseClassPerFile:1 or 2) | -| `FOXBIN2PRG.EXE "\proj.pj2" "*" \| find /V ""` | Regenerates the Binary files for all the files in the PJ2 and outputs to stdOut | +| `FOXBIN2PRG.EXE "\file.scx"` | Generates the _Text_ version | +| `FOXBIN2PRG.EXE "\file.sc2"` | Generates the _Binary_ version | +| `FOXBIN2PRG.EXE "\proj.pjx" "*"` | Generates the _Text_ files for all the files in the PJX, including the PJX | +| `FOXBIN2PRG.EXE "\proj.pj2" "*"` | Generates the _Binary_ files for all the files in the PJ2 | +| `FOXBIN2PRG.EXE "\proj.pjx" "*-"` | Generates the _Text_ files for all the files in the PJX, excluding the PJX | +| `FOXBIN2PRG.EXE "\file.vcx::cus_client"` | Generates only the _Text_ version of the individual class cus_client of file.vcx (with UseClassPerFile:1 or 2) | +| `FOXBIN2PRG.EXE "\proj.pj2" "*" \| find /V ""` | Generates the _Binary_ files for all the files in the PJ2 and outputs to stdOut | + ### Using the "PRG" version: | command | description | | - | - | -| `DO FOXBIN2PRG.PRG WITH "\file.scx"` | Generates the Text version | -| `DO FOXBIN2PRG.PRG WITH "\file.sc2"` | Regenerates the Binary version | -| `DO FOXBIN2PRG.PRG WITH "\proj.pjx", "*"` | Generates the Text files for all the files in the PJX, including the PJX | -| `DO FOXBIN2PRG.PRG WITH "\proj.pj2", "*"` | Regenerates the Binary files for all the files in the PJ2 | -| `DO FOXBIN2PRG.PRG WITH "\proj.pjx", "*-"` | Generates the Text files for all the files in the PJX, excluding the PJX | -| `DO FOXBIN2PRG.PRG WITH "\file.vcx::cus_client"` | Regenerates only the Text version of the individual class cus_client of file.vcx (with UseClassPerFile:1 or 2) | -### Explorer SenTo: +| `DO FOXBIN2PRG.PRG WITH "\file.scx"` | Generates the _Text_ version | +| `DO FOXBIN2PRG.PRG WITH "\file.sc2"` | Generates the _Binary_ version | +| `DO FOXBIN2PRG.PRG WITH "\proj.pjx", "*"` | Generates the _Text_ files for all the files in the PJX, including the PJX | +| `DO FOXBIN2PRG.PRG WITH "\proj.pj2", "*"` | Generates the _Binary_ files for all the files in the PJ2 | +| `DO FOXBIN2PRG.PRG WITH "\proj.pjx", "*-"` | Generates the _Text_ files for all the files in the PJX, excluding the PJX | +| `DO FOXBIN2PRG.PRG WITH "\file.vcx::cus_client"` | Generates only the _Text_ version of the individual class cus_client of file.vcx (with UseClassPerFile:1 or 2) | + +## Explorer SendTo To use _FoxBin2Prg_ from the File Explorer, you can create 3 shortcuts of FoxBin2Prg.exe and move them to "SendTo" folder on your Windows profile. Hint: **type _shell:sendto_ in File Explorer's address bar and it will open send to folder**, so you can "send" the selected file (pjx,pj2,etc) to the selected option, @@ -127,4 +155,8 @@ FoxBin2Prg.lnk \foxbin2prg.exe "INTERACTIVE-SHOWMSG" ``` ---- -Last changed: _Pungenday, 53 Chaos 3187_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) +This project is part of [VFPX](https://vfpx.github.io/). + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/FoxBin2Prg_SCM.md b/Documentacion/github/FoxBin2Prg_SCM.md index e2accdb..f06ba9b 100644 --- a/Documentacion/github/FoxBin2Prg_SCM.md +++ b/Documentacion/github/FoxBin2Prg_SCM.md @@ -1,22 +1,25 @@ -# Purpose of this document -This document is an attempt to recreate the original documentation of FoxBin2Prg out of CodePlex. -I found the documentation on [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/blob/master/README.md) a bit brief. For a short what and why, see there. +# Use with SCM +Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9 -The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. Pictures are taken from the original project. +## Purpose of this document +Using FoxPin2Prg with SCM. +See [use with git](./FoxBin2Prg_git.md) + +The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. +Pictures are taken from the original project. As far as possible these are the original documents. Changes are added where functionality is changed. ---- -![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) -This project is part of VFPX. +## Table of contents +- [Remark](#remark) +- [A short mention on SourceSafe](#a-short-mention-on-sourcesafe) ----- -# FoxBin2Prg - SCM -## Remark -**This is article is a stub.** If you like to use this tool with non SCM tools like [_git_](git-scm.com/), -have a look on [VFPX](https://vfpx.github.io/projects/), there are some that integrate _git_ and _FoxBin2Prg_ into VFP IDE. - -## First, a short mention on SourceSafe +## Remark +**This is article is a stub.** +If you like to use this tool with non SCM tools like [_git_](git-scm.com/), +have a look on [VFPX](https://vfpx.github.io/projects/), there are some that integrate _git_ and _FoxBin2Prg_ into VFP IDE. +## A short mention on SourceSafe For those who keep using it, I recommend running away from it to any other modern SCM out there. Main reason is that Microsoft doesn't support it anymore, which last version was released in 2005 (Visual SourceSafe 2005, that many people didn't know of) and a lot of people keep using the version that came with Visual Studio 6, released in 1998! (more or less). @@ -35,7 +38,6 @@ thanks to the configuration file foxbin2prg.cfg and the capability to change def In fact you can merge binaries as you probably have never seen :-) ---- - People that came from SourceSafe, often tends to think of SCM tools as repositories of code, because of the limitations everybody that used SourceSafe knows, but the reality is that a SCM tool is much more than a repository of code, @@ -66,8 +68,11 @@ how to configure and how to begin working with Visual FoxPro 9 projects using br If you already are using FoxBin2Prg with another SCM tool, feel free to share how you are using it so others can benefit. - -## > [Using FoxBin2Prg with PlasticSCM](Using-FoxBin2Prg-with-PlasticSCM) +- [Using FoxBin2Prg with PlasticSCM](Using-FoxBin2Prg-with-PlasticSCM) ---- -Last changed: _Pungenday, 53 Chaos 3187_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) +This project is part of [VFPX](https://vfpx.github.io/). + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/FoxBin2Prg_git.md b/Documentacion/github/FoxBin2Prg_git.md new file mode 100644 index 0000000..25d6abb --- /dev/null +++ b/Documentacion/github/FoxBin2Prg_git.md @@ -0,0 +1,305 @@ +# Use with git +Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9 + +## Purpose of this document +Using FoxPin2Prg with git. +See [Use with SCM tools](./FoxBin2Prg_SCM.md) + +---- +## Table of contents +- [Introduction](#introduction) +- [Requirements](#requirements) +- [Tools](#tools) +- [Recomendations](#recomendations) + - [git settings](#git-settings) + - [gitignore](#gitignore) + - [config](#config) + +## Introduction +As we all know, there is a whole bunch of tools that we might use to colaborate and to version our work. +Since I use git I try to point out what I do to do as fast and comfortable work. +This document gives no workflow, in special not a workflow of git. There is no wrong or right. +If you are not fimilar with git, please read through this first, there are minor settings that might help a bit on later work. + +Please note, if you come from a SCM system, git feels very odd. It's a complete different idea of thinking. +Do yourself the favour, on [git-scm](https://git-scm.com/doc) you find _pro git_. Read and work at least through the first three chapters. +**No matter, if you are using git on bash or GUI** + +For almost anything you don't need a server, even for colaborating a storage is enough. +I use a server - a self hosted copy of gitlab - but this basically for access restrictions and remote work. + +Do not hesitate to try anything. Always remember, git is just a couple of files inside your project folder. +CTRL+C, CTRL+V on Explorer might save the day. ;) + +## Requirements +### #1 +A copy of FoxBin2Prg + +### #2 +It might be a good idea to have a copy of git. +If you [download](https://git-scm.org) a setup or clone the code and compile yourself is up to you. +I prefer the setup - it's a nice package with all bells and whistles one might need on command line. +See [git settings](#git-settings) for stuff to set during setup. + +### #3 +I prefer it on the bash. Some of the reasons +- It's complex. If a GUI does something wrong, you need to go to the bash anyway. + - Note, every git-GUI is simple a tool that needs git to run original commands. +- It's simple. For day to day work, it's some easy to learn commands. +- The little visual need I have, and yes, some commands too, run on gitk, what ships with git +- bash, because all help out of the web comes in 'nix style, rethink to the windows world is to much work. +- working on the command line gives ideas of doing the stuff using the Fox, and we are programmmers, are we? +- since we have those extra step to create _Text_ and _Binary_ around the git repo, any GUI is awkward. + +The use of git on the command line is not a taste all like. +So if you need a GUI tool, it's your choice. [git-scm.org](https://git-scm.org) list a lot, and there might be more out. +Or use the Fox and build your own - it's nothing then some commands and handling text files. + +## Tools +To integrate git into the Fox [VFPX](https://vfpx.github.io/) lists some tools. +I'm somehow into the [Bin 2 Text extension](https://github.com/lscheffler/bin2text), but then I know this best. + +A nice graphical compare / mergetool is nice too have - check if and how to integrate first, +and also if the code mokey creating the interface understands git. +Some try to use it like SCM, what ends up odd. + +## Recomendations +#### Short about git +The first one must understand here, git is set up to deal with text based files. +It's a Linux tool developed to deal with the Kernel code. +Highly sophisticated, neat, fast. +So storing binaries into it is something one should avoid as far as possible. + +There is stuff where on might not circumvent it - like pictures. + +#### Text representation of VFP's binaries +And there is the oddness of VFP sources. Storing those to git is as wrong as it could be. +- Bloat of the repo +- No trace of changes +- Not mergeable + +And if there is one what is realy cool on skipping locking servers, it's colaboarting. +Even on VCX's. + +#### Solution +With thanks to Fernando **FoxBin2Prg** comes into play. +One might be reluctant to dropping the binaries - but I do for years and it works like a charm. +Do not play around with text-to-look-up-changes ideas storing both _Text_ and _Binary_. +Just merge, compare like a normal text based language. +The only thing one must learn (and remember, even after odd merges) is to run FoxBin2prg wrapping any git operation. + +git would even allow to hook FoxBin2Prg to run after some git operations, but this might be a killer. + +I try to show what to set to keep it running as _Text_ - only storage. + +#### Class libraries +I know there is a lot how to store a class. Microseconds here and there. +Folks, hardware is cheap. There is no sense in counting ticks and bits any more. I'm grown up that way, but. +Dealing with the FoxBin2Prg.prg is the limit. +If I imagine to have one of my larger vcx's like this in a merge view - no. + +Just split up the vcx's into single classes. It's like a charm on merge and diff. +Also on blame. +I you go for the _lib.baseclass.classname.vc2_ or _lib.classname.vc2_ style is a matter of taste. +I can see baseclass on classname, so there is not much value, other might think different. +But split into classes makes life easy. + +#### Forms +Side effect is that SCX will be split into 3 files too. +I have no idea if there is some use of it - I just do classes. +If you like it separated from VCX - let me know. + +#### Databases +Splitting DBC is possible too. My approach does not touch the DBC _structure_ (it's meta data only) in the source over decades, so there is little use. +So I've added an option to inhibit splitting DBC while splitting VCX/SCX. +Storing as _Text_ is a long term goal - the fork is about some of the problems. + +#### Tables +Storing as _Text_ is a long term goal - the fork is about some of the problems. +Since nobody brought up the .NULL. problem, it looks like it's not commonly used. +Depends on the data used. (And if there is any sense in merging.) + +#### Others +All the other table-based-sources of VFP work seamless as _Text_. No fuzz. + +### git settings +Assuming you do a fresh install of git, you will be asked questions over questions. The most you left unchanged. +The one I recommend is the dealing with line endings. You know all the odd uses of LF and CR. +_git for windows_ offers to alter this while dealing with your files. I recommend not. Just "Check in as is, check out as is". +This will keep your files, and any modern editor or WEB UI will not care anyway. +If you missed on install - just install again. + +#### Note +For some odd reasons, the people on git-scm are going the way of evil. If you start the Setup of git, all depends who you are. +If you not check _Run as Adminstrator_, it will install into your user folder. Even if installed in Programs folder earlier! + +#### Note +It's your taste to install 64 or 32 bit versions. Calling 64bit from the fox is odd, to say the least. +If you don't have no other needs, use 32bit. + +### gitignore +The _.gitignore_ file controls which files **go not** into the git repository by default. It goes by folder with inheritance. +If you undstand the inheritance of .gitignore, you grok FoXBin2Prg.cfg and vice versa. Very close. + +But git would not be git if one could not teach .gitignore to define the files **included**. +Again, see pro-git. + +Creating the file might be a bit odd on MS Windows (Windows dislikes just extension). Created once, most editors will not complain. +In case, just open the bash in your projects base folder (Explorer, context menu) and enter `touch .gitignore`. + +An example for _Text_ only use. +```` +#.gitignore +#exclude general +*.* + +#include general +#dbx data +!*.dbf +!*.cdx +!*.fpt + +!*.dbc +!*.dc[tx] + +#grafics +!*.bmp +!*.msk +!*.ico +!*.cdr +!*.cur + +#programms +!*.prg +!*.fpw + +#header +!*.h + +#libs (by FoxBin2prg) +#!*.vc[xt] +#!*.pj[xt] +#!*.fr[xt] +#!*.mn[xt] +#!*.sc[xt] +#!*.lb[xt] + +#FoxBin2prg +!*.vc2 +!*.pj2 +!*.fr2 +!*.mn2 +!*.sc2 +!*.lb2 +#!*.d[bc]2 + +#include special +#default git +!*.gitignore +!/desktop.ini +#desktop.ini. usless? no! it keeeps the folder icon! + +#diverse +!*.reg +!/FoxBin2prg.cfg +!README.md + +#exclude special again +foxuser.* +_command.prg +```` +As you see, this assumes that tables and databases are stored as binary. +I think I will swap to use them as _Text_ too, since version 1.20.1 of FoxBin2Prg eleminates some problems with this idea. + +Also this approach ignores any bak / log / tmp / err files by default. + +### config +The config of FoxBin2Prg using FoxBin2Prg.cfg files is relative simple. As you might see above, I carry the file within the repo. +The good on this is, if I change my mind and alter settings in it, FoxBin2PRG will find the setting that fit to the data on each commit. +If I have to checkout old stuff. + +```` +*################################################################################################################ +*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) + +*extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom) +*ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing +*DontShowErrors: 0 && Show message errors by default +*NoTimestamps: 1 && Clear timestamps by default for minimize differences +*Debug: 0 && Don't Activate individual .Log by default +*BodyDevInfo: 0 && [0=Don't keep DevInfo for body pjx records], 1=Keep DevInfo +*ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none +*ClearUniqueID: 1 && 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge +*ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff. +*OptimizeByFilestamp: 0 && 1=Optimize file regeneration depending on file timestamp. Dangerous while working with branches! +*RemoveNullCharsFromCode: 1 && 1=Drop NULL chars from source code +*RemoveZOrderSetFromProps: 0 && 0=Do not remove ZOrderSet property from object, 1=Remove ZOrderSet property from object +*Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Espaol, DE=German, Not defined = AUTOMATIC [DEFAULT] +*ExcludeDBFAutoincNextval: 0 && [0=Do not exclude this value from db2], 1=Exclude this value from db2 +*PRG_Compat_Level: 0 && [0=Legacy], 1=Use HELPSTRING as Class Procedure comment + +*-- Convertion options: +*PJX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*VCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*SCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) +*MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) +*DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*DBF_Conversion_Support: 1 && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) +*DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf +*DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf + +*-- DBC options +*- File per DBC options (UseFilesPerDBC: 1) +*OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings. +* && Options below will only read if OldFilesPerDBC is set 1 before! +* && If OldFilesPerDBC is set 0 later, alle setting will be lost +*UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files +* && 0 creates only a file.dc2 with all DBC (file) data +* && 1 creates a file.dc2 with DBC properties +* && and additional DBC files per DBC item (stored-proc, table, ..) +* && Note: recration only if RedirectFilePerDBCToMain is 1 +*RedirectFilePerDBCToMain 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2 +*ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion +*DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default) +*DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records + +*-- Class per file options (UseClassPerFile: 1) +*UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files +*RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 +*ClassPerFileCheck: 0 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion + +*-- Example configuration for SourceSafe compatibility: +*extension: pj2=pja +*extension: vc2=vca +*extension: sc2=sca +*extension: fr2=fra +*extension: lb2=lba +*extension: mn2=mna +*extension: db2=dba +*extension: dc2=dca +*-- Additional extensions +*extension: fk2=fkx && FKY +*extension: me2=fkx && MEM + +*Settings changed +*---------------- +UseClassPerFile: 2 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files +RedirectClassPerFileToMain: 1 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 +DBF_Conversion_Support: 0 && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) +DBC_Conversion_Support: 0 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +```` +All use off this are the last four lines. But I like to keep the template (recent as version 1.20.0). +- Using single classes - because it's much more easy to merge a single class then a whole library. +- A single class selected might be added to the VCX +- Turn off DBC and DBF conversion + +---- +![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) +This project is part of [VFPX](https://vfpx.github.io/). + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/FoxBin2prg.md b/Documentacion/github/FoxBin2prg.md index a2f382e..f62b74e 100644 --- a/Documentacion/github/FoxBin2prg.md +++ b/Documentacion/github/FoxBin2prg.md @@ -1,36 +1,46 @@ -# Purpose of this document -This document is an attempt to recreate the original documentation of FoxBin2Prg out of CodePlex. -I found the documentation on [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/blob/master/README.md) a bit brief. For a short what and why, see there. +# Home +Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9 -The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. Pictures are taken from the original project. +## Purpose of this document +This document introduce the basic ideas of FoxBin2Prg + +The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. +Pictures are taken from the original project. As far as possible these are the original documents. Changes are added where functionality is changed. ---- -![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) -This project is part of VFPX. +## Table of contents +- [Source](#source) +- [Requirements](#requirements) +- [What is FoxBin2Prg](#what-is-foxbin2prg) +- [Advantages](#advantages) +- [Example](#example) +- [Usage](#usage) +- [Keep reading](#keep-reading) ----- -# FoxBin2Prg - a Binary to Text converter for MS Visual Foxpro 9, SP1 ## Source Original repository at https://github.com/fdbozzo/foxbin2prg, -this is a fork available on https://github.com/lscheffler/foxbin2prg/tree/fork +This is a fork available on https://github.com/lscheffler/foxbin2prg + ## Requirements - A copy of MS VFP9 SP1, at least _3504_ - Runs with VFPA + ## Demo video [See YouTube demo video of FoxBin2Prg used with PlasticSCM](http://youtu.be/sE4wQ50Itqg) + ## What is FoxBin2Prg It is a program intended to be used with **SCM** tools (Source Code Managers, like VSS, CVS, SVN) and **DVCS** tools (like git, Mercurial, Plastic, and others), or as **standalone** program for _Diff_ (viewing differences) and _Merge_ operations, that pretends to substitute _SccText/X_ and _TwoFox_ and enhance their functionality, generating bidirectional PRG-Style versions that allow recreating the original binary file. -### Advantages: +## Advantages - It generates _Text_ style programs (not compilable), for visual comparison out of FoxPros table based code. - It enables the change of the _Text_ version as easy as modifying a PRG - All the program code is in just one PRG, to simplify its maintainability -- Out of the _Text_ versions you can **regenerate the original binaries**, so it is useful as backup +- Out of the _Text_ versions you can **generate the original binaries**, so it is useful as backup - The extensions are configurable if you create a FOXBIN2PRG.CFG file - Inheritance of CFG configuration files between directories - Methods and properties of _Text_ version are alphabetically sorted for easy comparison @@ -43,11 +53,11 @@ generating bidirectional PRG-Style versions that allow recreating the original b - Get back your SourceSafe projects (.pjx) from their .pjm files - Don't infest a text based system like git with binaries -Currently supports the conversion between PJX, SCX, VCX, FRX, LBX, DBC, DBF and MNX files, -for which a _Text_ version is generated with pj2, sc2, vc2, fr2, lb2, dc2, db2 and mn2 extensions. +Currently supports the conversion between PJX, SCX, VCX, FRX, LBX, DBC, DBF, MNX, MEM and FKY files, +for which a _Text_ version is generated with pj2, sc2, vc2, fr2, lb2, dc2, db2, mn2, me2 and fk2 extensions. The extensions may be reconfigured to be compatible with SCCAPI (just tested with SourceSafe). -### Example +## Example ![FoxBin2prg_scctextx-vs-FoxBin2Prg_scx_EN.png](pictures/FoxBin2prg_scctextx-vs-FoxBin2Prg_scx_EN.png) ![FoxBin2prg_scctextx-vs-FoxBin2Prg_mnx_EN.png](pictures/FoxBin2prg_scctextx-vs-FoxBin2Prg_mnx_EN.png) @@ -63,10 +73,15 @@ FoxBin2Prg can be used in tree ways: - Usable out of own code - expandable -## Keep reading: +## Keep reading +- [FoxBin2Prg Full Change History](./FoxBin2Prg_Changes.md) - [FoxBin2Prg Internals and Configuration](./FoxBin2Prg_Internals.md) - [FoxBin2Prg and use with SCM tools](./FoxBin2Prg_SCM.md) -- [FoxBin2Prg Full Change History](./FoxBin2Prg_Changes.md) +- [FoxBin2Prg and use with git](./FoxBin2Prg_git.md) ---- -Last changed: _Pungenday, 53 Chaos 3187_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) +This project is part of [VFPX](https://vfpx.github.io/). + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/pictures/.gitignore b/Documentacion/github/pictures/.gitignore index c26aa05..2ba9e6b 100644 --- a/Documentacion/github/pictures/.gitignore +++ b/Documentacion/github/pictures/.gitignore @@ -1,12 +1,7 @@ # we use the exclude-all-include-special approach, easier then excluding any odd stuff later -#exclude general -*.* + #excluded in parent directory, we just add the stuff to include here #include general #grafics !*.gif !*.png - -#include special -#default git -!*.gitignore diff --git a/Documentacion/github/pictures/readme.md b/Documentacion/github/pictures/readme.md new file mode 100644 index 0000000..9b57220 --- /dev/null +++ b/Documentacion/github/pictures/readme.md @@ -0,0 +1,12 @@ +# FoxBin2Prg + +Project to generate text representations of VFP binary sources for source control + +## Documentacion\github\pictures +This folder containes the pictures for the reworked documentation resources for use with github repo. + + +- [FoxBin2prg](../FoxBin2prg.md) + +---- +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/Documentacion/github/readme.md b/Documentacion/github/readme.md index 3bfda53..1cb241e 100644 --- a/Documentacion/github/readme.md +++ b/Documentacion/github/readme.md @@ -10,4 +10,4 @@ Please Note: The spanish documents are removed, because the documents here repre - [FoxBin2prg](./FoxBin2prg.md) ---- -Last changed: _Pungenday, 53 Chaos 3187_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/README.md b/README.md index ad5496f..8c9b638 100644 --- a/README.md +++ b/README.md @@ -1,77 +1,45 @@ -# FoxBin2Prg v1.19.xx - Binary/Text Converting program for Microsoft Visual FoxPro 9 -![](https://vfpx.github.io/images/vfpxbanner_small.gif) -## This fork - This is a fork of [Fernando D. Bozzo](https://github.com/fdbozzo) [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/). -It's main purpose it's to fix some bugs and recreate the documentation this project had on CodePlex. -There was a need of some functionality too. Some off the mods may ore may not seen as bug fixes. +# FoxBin2Prg v1.20.01 +**Binary/Text Converting program for Microsoft Visual FoxPro** - To get the new settings in config file, use the new create-a-template function: +## Lutz Scheffler +![VFPX Logo](https://vfpx.github.io/images/vfpxbanner_small.gif) -``` -DO FOXBIN2PRG.PRG WITH "-c","template.cfg" ==> Generates a template for FoxBin2Prg.cfg config file with newest settings -DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" ==> Generates a template for table.dbf.cfg per table config file with newest settings -``` +## Why this fork? +This is a fork of [Fernando D. Bozzo](https://github.com/fdbozzo) [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/). +It's main purpose it's to fix some bugs and add some new functions. It looks like Fernando does not longer maintain FoxBin2Prg, + so, with his permission, I introduce this fork to [VFPX](https://vfpx.github.io/) ![VFPX Picture](./pictures/vfpxpoweredby_alternative.gif). - The major break is the split of the handling of DBC from VCX/SCX. -If DBC's where splited into single files using _UseClassPerFile_, -the new settings around _UseFilesPerDBC_ must be used. See [Intenals](./Documentacion/github/FoxBin2prg_Internals.md#configuration-file). - - The function _DBF_BinChar_Base64: 0_ must be handled with care too. -Tables must converted to _Text_ according. **It's not recommended for running projects.** - -The data added by _DBF_IncludeDeleted: 1_ will be ignored by old versions. - - - It's a good idea to have the FoxBin2Prg.cfg per projekt and and source control anyway, old commits / versions would have the old config. -So teh settings would fit the data. - -### Fixes (fixes only are in the fork branch of this repo) - -| Details | -| - | -| conversion prg -> vcx, files per class could create one class multiple times | -| processing directory, flush log file after loop instead of file | -| conversion prg -> dbf, fields with .NULL. value are incorectly recreated | -| minor translations | -| conversion dbf -> prg, error if only test mode (toFoxBin2Prg.l_ProcessFiles is false) | -### Mods - -| Details | -| - | -| Documentation from CodePlex integrated | -| German translation improved | -| Info screen-doc improved | -| inserted option DBF_IncludeDeleted to allow including deleted records of DBF | -| inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way | -| inserted option ItemPerDBCCheck to split DBC processing from vcx / scx | -| inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx | -| inserted option UseFilesPerDBC to split DBC processing from vcx / scx | - - There is a the reworked [documentation](./Documentacion/github/FoxBin2prg.md) from CodePlex available. +I do not maintain the spanish documentation - it would fade. So just check Fernados repo for this information. +A quick run is [introduced](#use-foxbin2prg), more [complex](./Documentacion/github/FoxBin2prg_Run.md#usage-1), and a large [documentation](./Documentacion/github/FoxBin2prg.md) exists too. +Remember yourself to compile the exe first. +For a quick few of the changes made by the fork, see [Changes by the fork](#changes-by-the-fork). --- --- -## FoxBin2Prg v1.19.xx - Binary/Text Conversor for Microsoft Visual FoxPro 9 - -### Fernando D. Bozzo - -![](https://vfpx.github.io/images/vfpxbanner_small.gif) +If you like to see Fernandos blog, or value his work: - Blog: http://fdbozzo.blogspot.com.es/ -- Project info: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg - [![DONATE!](http://www.pngall.com/wp-content/uploads/2016/05/PayPal-Donate-Button-PNG-File-180x100.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=fdbozzo%40gmail%2ecom&lc=ES&item_name=FoxBin2Prg&item_number=FoxBin2Prg&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted) Thank you for your support! -## ENGLISH/ESPAÑOL +--- +--- +If you like to value my work, support the Geeks at https://virtualfoxfest.com/ or www.swfox.net. +I also do not reject invitations to beer, Next autumn in Gilbert. -### ENGLISH +--- +--- -### What is FOXBIN2PRG? -It is a program intended to be used with **SCM tools** (Source Code Managers, like VSS, CVS, SVN) and *DVCS tools* (Version Control Systems such as Git, Mercurial, Plastic, and others), or as **standalone** program for **Diff** (viewing differences) and **Merge** operations. Foxbin2prg can substitute for **SccText/X**, **TwoFox** and others, and enhance their functionality, generating bidirectional PRG-Style versions of Foxpro binary files that allow recreating the original binary file. +## What is FOXBIN2PRG? +It is a program intended to be used with **SCM tools** (Source Code Managers, like VSS, CVS, SVN) +and *DVCS tools* (Version Control Systems such as Git, Mercurial, Plastic, and others), +or as **standalone** program for **Diff** (viewing differences) and **Merge** operations. +Foxbin2prg can substitute for **SccText/X**, **TwoFox** and others, +and enhance their functionality, generating bidirectional PRG-Style versions of Foxpro binary files that allow recreating the original binary file. -#### Advantages: +## Advantages: * It generates "PRG" _style_ text files from Foxpro binary files for use in SCM and VCS systems and for visual comparison. @@ -93,7 +61,9 @@ It is a program intended to be used with **SCM tools** (Source Code Managers, li The program supports conversions between PJX,SCX,VCX,FRX,LBX,DBC,DBF and MNX files, for which it generates TEXT versions with extension PJ2,SC2,VC2,FR2,LB2,DC2,DB2 and MN2. If you want, the created text file extensions can be reconfigured to be compatibilize with SourceSafe. -#### Here is an example of a FOXBIN2PRG.CFG configuration file if you need to change extensions for using it with a specific VSS (SourceSafe) +## Examples +### Redefine extensions of _Text_ +Here is an example of a FOXBIN2PRG.CFG configuration file if you need to change extensions for using it with a specific VSS (SourceSafe) ``` extension: SC2=SCA extension: VC2=VCA @@ -105,7 +75,7 @@ extension: DB2=DBA extension: DC2=DCA ``` -### USE: +### Use FoxBin2Prg ``` DO FOXBIN2PRG.PRG WITH "\archivo.scx" ==> Generates the TEXT version sc2 extension DO FOXBIN2PRG.PRG WITH "\archivo.sc2" ==> Regenerates the binary version with scx extension @@ -114,99 +84,119 @@ DO FOXBIN2PRG.PRG WITH "-c","template.cfg" ==> Generates a template for Fox DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" ==> Generates a template for table.dbf.cfg per table config file with newest settings ``` -### USEFUL SETUP: +### Use with MS Windows SendTo You can create up to three different shortcuts pointing to FoxBin2Prg.exe and in your "SendTo" folder in your Windows profile. This allows you to "send" a selected file (pjx,pj2,etc) to the selected option, and make on-the-fly conversions. (Make sure you have the option for seeing known file extensions turned on!): -Shortcut Name | Right-click/Properties/destination | What you can do with this option ----------------------------- | ------------------------------------------- | -------------------------------- -FoxBin2Prg - Binary2Text.lnk | \foxbin2prg.exe "BIN2PRG-SHOWMSG" | Process directories or individual files -FoxBin2Prg - Text2Binary.lnk | \foxbin2prg.exe "PRG2BIN-SHOWMSG" | Process directories or individual files -FoxBin2Prg.lnk | \foxbin2prg.exe "INTERACTIVE-SHOWMSG" | Process individual files or directories asking what to convert +#### Process directories or individual files to _Text_ +- Name: + `FoxBin2Prg - Binary2Text.lnk` +- Right-click/Properties/destination_ + `\foxbin2prg.exe "BIN2PRG-SHOWMSG"` +#### Process directories or individual files to _Binary_ +- Name: + `FoxBin2Prg - Text2Binary.lnk` +- Right-click/Properties/destination_ + `\foxbin2prg.exe "PRG2BIN-SHOWMSG"` +#### Process individual files or directories asking what to convert +- Name: + `FoxBin2Prg.lnk` +- Right-click/Properties/destination_ + `\foxbin2prg.exe "INTERACTIVE-SHOWMSG"` -*How to use them*: Select a file, right-click, SendTo -> FoxBin2Prg +##### How to use the links +Select a file, right-click, SendTo -> FoxBin2Prg -### LOCALIZATION: +## LOCALIZATION: Is automatic starting at v1.19.38 (Languages: EN,ES,FR,DE) -### FINAL NOTE: -This program is Open Source and "libre", and I don't make any guaranties that it fulfills your expectations or that it will be free of bugs. I will try to fix bugs if my obligations let me do it. +## FINAL NOTE: +This program is Open Source and "libre", and I don't make any guaranties that it fulfills your expectations or that it will be free of bugs. +I will try to fix bugs if my obligations let me do it. -### Project info and updates: +## Project info and updates: -Fernando D. Bozzo's repository at Github: https://github.com/fdbozzo/foxbin2prg +Fernando D. Bozzo's repository at Github: https://github.com/fdbozzo/foxbin2prg +Lutz Scheffler's repository at Github: https://github.com/lscheffler/foxbin2prg -### LICENCE: +## LICENCE: This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/. -## ESPAÑOL --- +--- +## Changes by this fork (1.21.02) +To get the new settings in config file, use the new create-a-template function: -### ¿Que es FOXBIN2PRG? -Es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original. - -**Ventajas:** - -* Genera archivos estilo "PRG" (no compilables), para comparación visual -* Permite hacer cambios en la versión Texto tan fácil como modificar PRG -* Todo el código de programa está en un solo PRG, para simplificar su mantenimiento -* Con las versiones Texto puedes regenerar los binarios originales, así que es útil como backup -* Las extensiones usadas son configurables si se crea el archivo FOXBIN2PRG.CFG -* Los métodos y propiedades de la versión Texto son ordenados alfabéticamente para acilitar su comparación -* Puede usar el seteo "UseClassPerFile" para crear archivos individuales por clase o miembro de DBC -* Aproveche la API usando foxbin2prg como un objeto -* Tiene compatibilidad con el SccText/X a nivel de parámetros, así puede ser usado como sustituto con SourceSafe -* Productividad: Puedes crear un acceso directo en la carpeta "SendTo" de tu Perfil de Windows, así puedes "enviar" el archivo seleccionado (pjx,pj2,etc) a Foxbin2prg.exe y a los scripts vbs incluidos, y hacer conversiones al vuelo -* Modifique los archivos TX2 estilo-prg con MODIFY COMMAND (sin compilar) para ver la sintaxis coloreada, o incluso usar el Document View para navegar los procedimientos -* Recupere sus proyectos SourceSafe (.pjx) desde sus archivos .pjm - -Actualmente soporta las conversiones de archivos PJX,SCX,VCX,FRX,LBX,DBC,DBF y MNX para los que genera las versiones TEXTO con extensión PJ2,SC2,VC2,FR2,LB2,DC2,DB2 y MN2, que pueden reconfigurarse para compatibilizar con SourceSafe. - -__Ejemplo del archivo de configuración FOXBIN2PRG.CFG si se necesitan cambiar las extensiones para VSS (SourceSafe)__ ``` -extension: SC2=SCA -extension: VC2=VCA -extension: PJ2=PJA -extension: MN2=MNA -extension: FR2=FRA -extension: LB2=LBA -extension: DB2=DBA -extension: DC2=DCA +DO FOXBIN2PRG.PRG WITH "-c","template.cfg" ==> Generates a template for FoxBin2Prg.cfg config file with newest settings +DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" ==> Generates a template for table.dbf.cfg per table config file with newest settings ``` -### USO: -``` -DO FOXBIN2PRG.PRG WITH "\archivo.scx" ==> Genera la versión TEXTO con extensión sc2 -DO FOXBIN2PRG.PRG WITH "\archivo.sc2" ==> Regenera la versión binaria con extensión scx -``` +### Exe file +Removed exe file. Just a bloat of teh repo, any disciple of the Fox know how to create, if in need. +The prg works anyway. -### CONFIGURACIÓN UTIL: -Se puede crear 3 accesos directos de FoxBin2Prg.exe y moverlos a la carpeta "SendTo" de su perfil de usuario Windows, para poder "enviar" el archivo elegido (pjx,pj2,etc) a la opción seleccionada, y así hacer conversiones al vuelo, luego puede renombrar y modificar esos accesos directos como sigue (asegúrese de que puede ver las extensiones del sistema): +### Split of container files +VCX, SCX and DBC are container that hold different items. There is was a single option to split them. +The split of DBC the same way like VCX/SCX might not be the best choice under all circumstances. +New option _OldFilesPerDBC_ is set 1, _UseFilesPerDBC_, _RedirectFilePerDBCToMain_ and _ItemPerDBCCheck_ might be used to set the handling of the DBC. +Note that those options will be ignored, if _OldFilesPerDBC_ is 0 (default). +**Check that changes will be reflected on running projects.** +See [Internals](./Documentacion/github/FoxBin2prg_Internals.md#configuration-file). + +### Tanscoding of table fields with NoCPTrans +The function _DBF_BinChar_Base64: 0_ must be handled with care too. +Tables must converted to _Text_ according. **It's not recommended for running projects. Handle with extra care otherwise.** + +### Inclusion of deleted records +Sometimes information left in deleted (table) records is still valuable information. +The new option _DBF_IncludeDeleted_ allows to keep those records throug conversion. +The data added by _DBF_IncludeDeleted: 1_ will be ignored by old versions generating _Binary_ files. + +#### Recomendation +It's a good idea to have the _FoxBin2Prg.cfg_ per projekt and and source control, +old commits / versions would have the old config. +So the settings would fit the data and FoxBin2Prg could generate according to it. + +### Fixes +Fixes only are in the fork branch of this repo. + +| Details | +| - | +| Added MEM and FKY options to config template and internal documentation | +| Conversion prg -> vcx, files per class could create one class multiple times | +| Processing directory, flush log file after loop instead of file | +| Conversion prg -> dbf, fields with .NULL. value are incorectly recreated | +| Minor translations | +| Conversion dbf -> prg, error if only test mode (toFoxBin2Prg.l_ProcessFiles is false) | +| DBF_Conversion_Condition, problem with macro expansion | + +### Features + +| Details | +| - | +| [Documentation](./Documentacion/github/FoxBin2prg.md) reworked. | +| German translation improved | +| Info screen-doc improved | +| Inserted option DBF_IncludeDeleted to allow including deleted records of DBF | +| Inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way | +| Inserted option OldFilesPerDBC to control split of DBC, the options below are controled by this | +| Inserted option UseFilesPerDBC to split DBC processing from vcx / scx | +| Inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx | +| Inserted option ItemPerDBCCheck to split DBC processing from vcx / scx | +| added option to create config file template | -Nombre | Click-Derecho/Propiedades/destino | Qué puede hacer con esta opción ----------------------------- | ------------------------------------------- | ------------------------------- -FoxBin2Prg - Binary2Text.lnk | \foxbin2prg.exe "BIN2PRG-SHOWMSG" | Procesar directorios o archivos individuales -FoxBin2Prg - Text2Binary.lnk | \foxbin2prg.exe "PRG2BIN-SHOWMSG" | Procesar directorios o archivos individuales -FoxBin2Prg.lnk | \foxbin2prg.exe "INTERACTIVE-SHOWMSG" | Procesar archivos individuales o directorios preguntando qué convertir +--- +--- +# Folder information +Project to generate text representations of VFP binary sources for source control +## ./ +This folder containes the files necessary to run FoxBin2Prg.prg or to create the FoxBin2Prg.exe -Por ejemplo: Seleccionar un archivo, click-derecho, Enviar A -> FoxBin2Prg - - -### LOCALIZACIÓN: -Es automática desde la v1.19.38 (Lenguajes: EN,ES,FR,DE) - - -### NOTA FINAL: -Este programa es Open Source y "libre", y como tal no ofrezco garantías de que cumpla con sus espectativas o de que está libre de fallos, que intentaré solucionar si me reporta y mis obligaciones me lo permiten. - -

Información del proyecto y actualizaciones: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg

- - -### LICENCIA: -Esta obra está sujeta a la licencia Reconocimiento-CompartirIgual 4.0 Internacional de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_ES. +For usage see [documentation](./Documentacion/github/FoxBin2prg.md) ---- -Last changed: _Pungenday, 53 Chaos 3187_ \ No newline at end of file +Last changed: _2021/03/03_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/foxbin2prg.cfg.txt b/foxbin2prg.cfg.txt index 091eba7..3f3ca4e 100644 --- a/foxbin2prg.cfg.txt +++ b/foxbin2prg.cfg.txt @@ -1,65 +1,70 @@ -**************************************************************************************************** -* FOXBIN2PRG v1.19.51.4 -* CONFIGURATION FILE / ARCHIVO DE CONFIGURACIN -**************************************************************************************************** +*################################################################################################################ +*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) +*Version: v1.21.2 +*################################################################################################################ -**************************************************************************************************** -* SECTION DOCUMENTATION OF OPTIONS / SECCIN DE DOCUMENTACIN DE OPCIONES -* -* EN: Note: This values have precedence over internal parameters -* ES: Nota: Estos valores tienen precedencia sobre los parmetros internos -* -* DETAIL OF SUPPORTED VALUES / DETALLE DE VALORES SOPORTADOS -* If no values given, these are the DEFAULTS / Si no se proporcionan valores, estos son los PREDETERMINADOS -* -* extension: tx2=newext && Default FoxBin2Prg extensions ends in '2' (see at the bottom) -* ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing -* DontShowErrors: 0 && Show message errors by default -* NoTimestamps: 1 && Clear timestamps by default for minimize differences -* Debug: 0 && Don't Activate individual .Log by default -* BodyDevInfo: 0 && [0=Don't keep DevInfo for body pjx records], 1=Keep DevInfo -* ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none -* ClearUniqueID: 1 && 0=Keep UniqueID, 1=Clear Unique ID. Useful for Diff and Merge -* ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff. -* OptimizeByFilestamp: 0 && Optimize file regeneration depending on file timestamp -* RemoveNullCharsFromCode: 1 && 1=Drop NULL chars from source code -* RemoveZOrderSetFromProps: 0 && 0=Do not remove ZOrderSet property from object, 1=Remove ZOrderSet property from object -* Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Espaol, DE=German, Not defined = AUTOMATIC [DEFAULT] -* ExcludeDBFAutoincNextval: 0 && [0=Do not exclude this value from db2], 1=Exclude this value from db2 -* PRG_Compat_Level: 0 && [0=Legacy], 1=Use HELPSTRING as Class Procedure comment +*extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom) +*ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing +*DontShowErrors: 0 && Show message errors by default +*NoTimestamps: 1 && Clear timestamps by default for minimize differences +*Debug: 0 && Don't Activate individual .Log by default +*BodyDevInfo: 0 && [0=Don't keep DevInfo for body pjx records], 1=Keep DevInfo +*ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none +*ClearUniqueID: 1 && 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge +*ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff. +*OptimizeByFilestamp: 0 && 1=Optimize file regeneration depending on file timestamp. Dangerous while working with branches! +*RemoveNullCharsFromCode: 1 && 1=Drop NULL chars from source code +*RemoveZOrderSetFromProps: 0 && 0=Do not remove ZOrderSet property from object, 1=Remove ZOrderSet property from object +*Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Espaol, DE=German, Not defined = AUTOMATIC [DEFAULT] +*ExcludeDBFAutoincNextval: 0 && [0=Do not exclude this value from db2], 1=Exclude this value from db2 +*PRG_Compat_Level: 0 && [0=Legacy], 1=Use HELPSTRING as Class Procedure comment -*-- CONVERTION OPTIONS / OPCIONES DE CONVERSIN -* PJX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) -* VCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) -* SCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) -* FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) -* LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) -* MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) -* FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) -* MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) -* DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) -* DBF_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) -* DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf -* DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf +*-- Convertion options: +*PJX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*VCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*SCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) +*MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) +*DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +*DBF_Conversion_Support: 1 && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) +*DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf +*DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf -*-- "CLASS PER FILE" OPTIONS (UseClassPerFile: 1) -* UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files including DBC members -* RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 -* ClassPerFileCheck: 0 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion -* -* END DOCUMENTATION SECTION / FIN DE LA SECCIN DE DOCUMENTACIN -**************************************************************************************************** +*-- DBC options +*- File per DBC options (UseFilesPerDBC: 1) +*OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings. +* && Options below will only read if OldFilesPerDBC is set 1 before! +* && If OldFilesPerDBC is set 0 later, alle setting will be lost +*UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files +* && 0 creates only a file.dc2 with all DBC (file) data +* && 1 creates a file.dc2 with DBC properties +* && and additional DBC files per DBC item (stored-proc, table, ..) +* && Note: recration only if RedirectFilePerDBCToMain is 1 +*RedirectFilePerDBCToMain 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2 +*ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion +*DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default) +*DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records +*-- CLASS and FORM options +*- Class per file options (UseClassPerFile: 1) +*UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files +*RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 +*ClassPerFileCheck: 0 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion -**************************************************************************************************** -* EN: Uncomment for SourceSafe compatibility. You can change the extension on the right side. -* ES: Descomentar para compatibilidad con SourceSafe. Puede cambiar la extensin del lado derecho. -*--------------------------------------------------------------------------------------------------- -*extension: pj2=pja -*extension: vc2=vca -*extension: sc2=sca -*extension: fr2=fra -*extension: lb2=lba -*extension: mn2=mna -*extension: db2=dba -*extension: dc2=dca +*-- Example configuration for SourceSafe compatibility: +*extension: pj2=pja && Text file to PJX +*extension: vc2=vca && Text file to VCX +*extension: sc2=sca && Text file to SCX +*extension: fr2=fra && Text file to FRX +*extension: lb2=lba && Text file to LBX +*extension: mn2=mna && Text file to MNX +*extension: db2=dba && Text file to DBF +*extension: dc2=dca && Text file to DBC +*-- Additional extensions +*extension: fk2=fkx && Text file to FKY +*extension: me2=fkx && Text file to MEM + +* \ No newline at end of file diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 5c0d3dfa9405a7d72bfdd965a19c0554ee0bf032..acbd14889f9867f88ebd0117d0a8db0643e8306a 100644 GIT binary patch delta 214219 zcmdqKcR*A}_cuOw=}1|mEqy_n^kzXtL5f`wuopzdU^j?S6U}1OXkrZNO|qJ5ni`EI zF^L+DV2QnJ5=|3%5+j;o1uQVX&zZXm3rZgS{=V<~$GgdJ@0~ew&Y3f3&YU?j_j>z6 z>$`U&mvxd3El)~~*>Pv_p4!(guP~^nOF>+s(r?zM`Zj+Iw8Lqe(f60uMZS{BiL)seScE0&P@@my5E6klF zTe+oqME}5;WHyi&1*&|6nzMlu*peGr1G#G`$^dIe z36E)b9J$w;4OsH$yg!FajAbwJ36)FC+xm^0_sy<4&ReKvxXk}1lXK3B(kE054qr(3 z*ILTon)}5L!)<)oxOsCze`fQGtdr;0xXih6&3tK5j6;0c(z!oxz;8+V<)z&nI^LL* zwj?P{cC*NrT;w?xL7vH=T%_(^WOHC4Bkb2)CzxGRO;BAKChxRp>lFyvnM)V4`?zq| zF91A$zumR?36@uEWjjmH@PBF_E>}-r6D+QLXHqf&(%2>UxAeEm0fvGVZSm*jw(|3q zZXJ6Il%Y!()(|{*Rpa^azWB0*X9h00@qCNoPL{05BDv$u;e;-HJAHaY27|W#=^28MV1-Go!N|Q z1NjU)?wTwwvhwj9i;gPp$Q&2GjjkU!Xu|N_X|dFcuIuF8R^C!4`6nw+uSzt&U_E$V z^25@lS0Iop@8J)hVSU9?R$F^ZAIXvU`?}oI+DmuE0i9QzG$9@;RAfk zIZBo;r21%Pg5b$eek^$yxOQ2kG^vaccV0bnV8@WzZA#3C+2(4|%&*}^*-OqB5Db*Bay9W~ zkfk@u47oaFcg)okSs6Gc>VvKf0v|8CQeQ7P^RhjWonf=!@C=LjhxoNj{8@1L!)MxH z7+8aCakt=1k<0v~K&S$nVGc;E_%e}Ce1?oKBgtA2I+DCAbpc7g$m#uOtbt~ND))-7 zyxyjjj&v#hrvaHS4G+{Jc`qIw82F)L8?>mDJwR#wlItCB6+Jg0W#E+$?{YqHNsZFn zj`xekP0#}7ZNLrzg{5hMnxdf6I&|G2(4~>9=*j?;cxUqO2N|x{90pLit{$M^9_knh z6MbA@j%L^uR5j!+`64h7mbBw7#|16WHVhNT1^1x>OP`k}Xa^}AEII$OWv6H~Gpti& zQSic_ip&m}8I{$5+LTP?rwr!$Wvha##4dMTEnl~F*ZpdE0B0n!8EX%w1*%n`bZshR zpOGP?T--U}rL;ho8NnG70x%S*`AcdRa*&=pP$?KLw@?yJ@y5S%)WWN3LsLkiwzd#r6ItrOf?AwFZ zOV-?VtawTgPwyAd1N-n<0A6_+Exe*tVUG3DDB7X+rolN0Fhj1~M(IHdI~3$2w?K`X z0&D!?uG3Inu)_-&+NJ~O{TM=>etv2C`Aps>0uM{mPh~DmKZbM&Vk!ps{QcUO()V}V zHy0L>5V3khLx#LRSYBfvFKOf-?LB?Yz~C*p{?d%H#1X&Eu!15iKyB{27=Nz~l${)0 zrB~z-2VWg`U52b7L-sAnzp`Y;x%qQ{V*>m&0lpG{=l6NQmmIj_3=a3rPZE-uVabDL zp{RhwRUooxHg=su;QQ_NVVW_&atcHaB2WU;@n!o8a=qnT$6mTjg zPg>nR8FnY?patE4XV!nvQjt0Tpn3<2*q%z&!ox)^=Cw<~Z~j5^iaWVO<|nBW4b|wz zSdH$fn!1^41zSKv(cd8-UdKJGa9MrUhc!yhsfHW|gn%h;$gvhVOD(jxUa-rLyH3sP48Q~hV;7tS7-H)#ejcan1YfxBL<^8vq& z9#e^(Uiq_GO4`7b%pS(d8(D7Nn8{-&O_7~koFf;p+}vrox#K2J9h=YC3(C`&sgsrG zoq!!XVaD{L+;L;aKf~mc&aS#HQttREIYI8RS2uhK-?qUMF%334k3`jh{Y!THcs^ zc1OycK5f$YqG@?Wu$wms?U?*&MY#o{-wWdzn~i#T6Y~W?pX`CDS?yxwEv}>f%gSw; z!NyFct6*aKFan`7-XW8lJmj$=cD) z8iB5i~wtV?moP6{p+x2>w+4}SHe{=tzZ1Q5GU0iCInRmx8W72iVdkY3p()C+D}+QX;TQ9zBRNsc^8-DaG0G11Yw**I`%tQR$ zLgk`J0K6qI><~rb&kht9Q`?l^TZF&{ZHLOB!_Z8yVD{EBMR?W_6%g3$=%=&{AV4DM z6FB|QOkz-BoHA@gIo%n4unjg1#Uis9))z|+`qlVxejUnIZpE)NGhWUlUWT!Nq@z^B zSeNUDRF11@LcX6NIU=8u6{Rw8C6Z%}RMw?VD${YPjPrSWIKQ-y^ScK@7C(2Pt7@j` zt0c4*dTS2e!mL%>ua@+hy1fMRPOcX?^_XPieAJ}4EL^P~uk!`r`>q<_bG!UfLT z0e#GvT8_ff<^CSwqu<~tE;Xi*lbllmQp)FXZ`JYWECD`oxxY&U<+GnK{Es7@pzD3k zzOCZyj8Z3H{cRpS={^rh{Tt{t3jB|NJ9?K$at3+~%PWgxocnxQ%VTC%^O#-&e~A%4 z!AVE&adr;%_T3iA0{8>KOYEFGJYh(+zyJq8Zf8mfP#N!%heqqKkgz0gszf!~L=a%O#L{qaTS%kTQ}x ztKjfh53)Nrw*y%%SPg&n9`_$vBgmQ}$Pu#smUC;Q7Nwl4zZ3{c13#`QE%@~E#DQPk zC~?}#OPw}i9WQgDYd52?lyd8wwVOuS4|IR(0@XSr#dcXx9n7xfJ{p5?+05~`TGWb z(^WkA7%GEu8w`tR453J~=7ZFk(@q1*rB8HcKP>d87D1!O@;zGYS1YvUi>W6eb#u=Y} zm?|FA_b=|#tCS?!9f(5*=YI5Uspb9}F(_$ZGH^o!LxrmalI6j>+;ZO?Znf_gx7hj{ zw_0(M+m)Q=4ogpRr+NE$$j7&NEJi`>lsi0bU=Wm zVL(HH($PB3_M&XZpPZpp?CU?d1nVFjt>spbam%-V;l3YV;Suj}9yPm$#|#JeJ#O-- zoC6#^*cJo=i9l)ewo9c}yZ#oYLYNvO0Wv$(B8)j>tEgN;vP8=qKfld2o1hjSLH>wL zM~^`Z`rSbb&hf<`?kBlNklZJ>+4Qr*F(D-6J1%pJ&Hv%5U4MbwyC8y=0HK63Gr-uv zY`TAWp9j5P%Oe)t<+13{xIuS#boW1ak7-|tah211e+4%?1cP`Q2nFIAZngPmZZ~-Y zcO3j4x0}0zTa;c$SshoQ+#V+0{j*vg_*N|sf3b$gO}fM5hu`M$eQ)yMoUa=?bV2E% zObN}Fz>)R#Ke%-GjzWM4?Z3k<-~66iE<4K2KD`Jns^Kbhb_>iM9vkX-@aqqF_@Zha z_cS;jb&Dqqtl_PC9_O*M?u-&08vW7fQU;r7wyToc=dI!9U;m}Zox}n}Le^x8VOFVC zmdI~`&Lr~_B0t~}FVzq-9{1EO9zWs^5AA)Co@r1k9U8sj5GvPl^UZ&7hraKDz&{F7 zBG4q!yx@p|L!xo{0&~RLIv(;GRPhCHKkW{W9dnCE4ZFcZa?T1Oq%ork-rHZwzJ|8! zzR7Lom!boq`^32^a;PA~=%job5U_!Lu-^>>3nKocEhYDO+_NBpK8PB7hqoSdgU1Xy z!%NnlA+6DlC9R3x^eg0xk-8r`PO_&d#7G39VTaNAJOAcZhwcjbJM6}^0wQWm3!2TG z2fh!zUwV(n&#C6IQ>%FRxGEkz_!bYzKFy2dlM10X5C2@^b{r~*&aOvpBtlmrw66;4 z`a5^re1p5g#<&7G5o!4q`sGv3TfNPBc*z4EQ;b12^$rgsLc_1~(1EA;iuFGzgo^%i zLlKi{D@+MNRA&3{a@!9sa+j5`J)hKZ_fP8t5$ElkyKUjz6D?|m{s~`H!y{%@@zxWo zdC=%vJh9*ejp%+5op-^wGuOEVWUh<}lU7kn49Of!*p=PmPH$Im_qBJqW+Mn}e!yL} z)^TS{cGOSq>tG1qtmQ$k-s2(9SM!jk@AAO0*Z8DYPt#awi%GDc_0}5h1(CNn#JTxl zC7FS?3ds_4o*l{@zvkQ-l5*b)X>Eq|-oL?JmR{t(@l*#KHPpDp*e&n|TBH;_ExMRLHi6A9;Y)=~y0wBU1jF(~E+apD%TJ^D1_fs<``_``q&bv~v{%y9j!je^9gy6KJE~ zTVEcDjr7=B%RSK;H6;kinS_L1p`qys;u<^$Vz%i1_8C5F-3jV;@8O`_eYpN$Nz{^a z+-uQ~-1U`9+@s_g*F1ZLzx2s>#f`||0hA`XZ?54UkeDM{))K7|Edvp8g^}qmmr{2V zfe4x;+tP#X{lj@f7ws+$pYRo*xODGBhyhn(_j#q@vL$>V7ZMeaxg*4Oavub!l) z)9gDq5C|1u0J(w#*UuC{lC9UvmlW#DRl~KYv52s`Zih0#rK8Ru<#BoM2A}ihUcxrY z8$i7X$f@)WcYw;OKsoznLA*Fx^Ma0 z$mAq7YPIdMK7ShSXdzWA>R=T3M(WtLz2o_om6hd=V5)q%N>z`x*R0R zby&Ah;#k9gW3iZsVF;Qd)q7<@;H|IA*5f~wy#D#OCF^$Wo4D=B;mkcp4rZd@Q}5ju z|0x~0@e=R8^b}9m?dCn_e^K)EJ6~pQ-g7z<03U^(`>ST+%tJSMx3xEU`ieh!r+L4_ zfjGw#Cmkvs`QpAz{iY+4KUVzi58#y%-(IW9oP6poPuhN;C#|dDNh@#j#D&*k6fg7E zBhHjYkJ??5|ME8zzdm@b6DqtGv-NUyX4c93yaUX3;y3XBw%q55AKc~bmcp?r{F{dj zy?{BPjHgcdvSi68rQ}U6OL*_n?TNik-s9~t_S?Z8B$n0j#H|l_yASX2wl8C@opysq z4!Ov+y$^8TJ{$S8H$J6`ue6_a;ZAAVi7MV6E*<%XZQvWW*;mKgfA)a4dHXI;fVE4Q zdYdN}2MvyS^`(`PKI&g&R+n z=C3_b`uwgRO6Q%p#Pd%6!+T+(=mIVipv3W*-V%^vaUTvsVcykOplosBuZ06x~>+dQVvpWH9)2=6>) zed(T)CneI&PP)8z55L%A4P3#4Sp5L&L$elITR$(O)oedjI;A%`D}z%|2Jdbg-1+y; za_c3Bd5aZixZT?qkbdHhi;r;Eh2Qd^4b?n)C6?9m;5Weuh|Pt!-R~9;>ju}p&khUz z+&f>A(s$B%j9AMpm!E~pfyMA~6RM^h&^>W+1pdu8puQDu_m7Sz~_P}8z4$mN+MWTBHSHyt|$sEZV zvT6wfquEx&wd?D6Ydzem7w*D;gR?jq)N|mx_q@S_GLG;8bHAcxzWkahUAOo9UrXA2 z37y*wch1NIU9rkz+kfEd*H3brxnFYYWk>hHPP=Oi`gEb(E07wac@OD*BOxP1A5 zYd@~zp+tWnbo6PAUbx+HLvQmoec?;?_>o7A+`@MpKC4l9NYTyNdy;Fve}EMw!Zm1% zv3&wRdO2lPZj4i=5QFLO<|Px+di$0HRUl5~fDypXBhb4Ac5ToPn#dkABad}-o| z615lYmcF`*@p+V6J-3%zKDV8lzk7zWFaHoDiDY2|SvX*}@caa;Gx*Y>EAC>2hJKg@ zKAyVG<3`@(@k23#^u5l#Grs2ei#AI%Qj&E~eY&rd9WrP-dffb@^W1UfXIwgfmYV7! zaYFh@T4797PWc$4q#0JYw};Q_3ELG2eQb?2N*I=MF>{o4O5Et1JeDMqeTQq)kMj=s z9~-!cd+l3r0joh{@MH~ln6{DI4Oz!6c0xy}-;MJ4FIQ`n+hQ7Vz_hFR6kM!)z+11t zn(t+d3?0^d)4>VWeX)5rp&z$+XrEtrNdL_ieC_UIWW(C)cI`P3ne_5rgaQyaL^~x| z1G|x%xI^}b+^_fP2u_{@N0X7D zDKWWNC=UJG9wzlW-ebnz(oF|`>IC;RL3i-@smPIU>@PL@@B(@Sl0IC^ZDxPX9Y(C- zD$F2ajGFe8DQ6~}im(9m#1`(H1Kc@Uf4Rbq^@f~Uy$P#|gOY#)A{RSDxU~UW_2jf#z?V;5M%x12>JW=0kF#B`0x6 zoFUo4idaELcIYuXtV?KF;IResz+#OdQntO)_XaB>4 z`=8~#o<2~za?ANh!P!R#f6DCil;(ihTxS5Be3Bf7_LZjJnN(2K>oeWuE4J ziw=}-*!_#Y;B5Jc@{-m^Z*jBcbjVbnjQ5zC&Axz5T3gQTHvYxkHe$7iIlz5G9e4Ud z(JflB(yG!6*1#VDwBR@Dcm#AT`UR}Nz9T|8|8uRj@^tU;fQoy!9h@UiBMyhegzYGY?!{AU7xUq;Y*tkq58U z@X6rage<$qBPb|<9*roZz(AD~4<2`iw;K5ukIp^G=e~K8V$3nR)qhu&sK6Di&>xpG zvW_%o+U&f^9hRNtuFJ881$7NV6q@z5qDP4<+5(_OF|Fh^AA>u@w}w|5 zHlqqUHW|T@@zp#q_cz|F=osI2;6J4O5xV^2*Gn8Qx~(zF|J6oeBoIe5b5N{-#vcW+ z)LUqLg{|x6JI?+LD&dg)UF4mKG0Y*SojWhD;7)H{<<1}8v! z@1c`_aOaP1an}uZ!DTIt8h`Hjp~9-)^7}ksF@i)3?(v{$fAW~I7^gb~ms;I3pPtI} zg1_Yl>K?TB18eC@ksQcKO$m8q6{v?aWD!UPB(Kei+&pk~TZ=QhZy+=_?<7x}yQB1l zkN21CIQ|RyB=x`d_nyxjwfba9>m_Ho`zt?j7yT6kBmVK{ZXe!)Q15XM1Gm0V%%H`! z+;{AcJb&?S>S=A}q>qkH)O>c2`+^e+O> z#Hric|L~4)|57^oos%VRY&k|9q)pgz< z{q<|yW7SRW`$iS_Ta0k-l(T&Iv0td7cUu0tM@rl`-savEJ;T^?07t}$GpJEGkYpm{ z1Ww!`FON;opEWmln|FRFmA^V#vg^nX!Yv5hbNZLaMH^3Mj(Pn^NzaA*OG9Vw;U3fX zbJwT$bN3l1xZ8xY{N;5&kcIGWU+~_c61PwO;a(Uo6tkmVaiX@PS44Y3iKuBnO|#)1 zcYpg&K4L{FIb=DS&3i8RFaGFgr)l!OlAh0eQ5u%Fv2@vo2Sj@kUif(5MCaANbB`}z zYr#LoPsv`8CW=rLVFp$Yj0NwNzw;r>j+FxID+z19Iy|xEl2b6qHCzMW`k`#7C=3ol ziyrU&&EsDo{G=qu+hV1eGf%F`F^FFAbbXAz9icA2xi#O}Qxc}qA#PB0u+aKhCXw$AHs@&Wpz z)Zo?H8E=$Lv|W6VtFacPh?zBj9JW>Q#P@#Ydr!i(0+9FH8xLz7bY-OuSo*YpS!!_* z9rDQ)zI@vS!m>^iGka%=&1ZjbHP+T@L=~b||ICkk_Zuyy*0~hFd7zUymhH~i!EpZM zcRt{q)6|+RYOk@MPqhE|SMIptEMKrR`oQqfp6fI$r0902ktA zb!LVu(<#rai{a{LxB`&i5Obp|ZRX>O?MsQSWf-}1Eyh)cEB%^YyBNypT8?sDbqsMh z=7$X9l?v$D^y-M`GUQtst`zN~a*FuTm5$j^eL6=|L)R{Xv4*Rk;n{e_rmTRoQYttw zE0Liq#_ntl8g^Y=(Qt8vAUNe4uR6msF35j?c8efRwjWs?8M7k+)AO-oZ0AmT z7Qgyu}k<;^~uqkasP>ewp-t4o4`dXCAK`oteLUED~Vs7-SE#>@AJ?EE~ce%CgwBx>SzF}s6 z>Y3T)<;-l`X=e7M&!x3A6pGQ!<$jF_DGzQ>bfrvXX~I_&dh2 zShOMzpo}FjD|tyokWGEw)*TT#^Jp!8&*T?QA3t?UQb24}4E-0NwYR1GqS@2(lLBUr zpAsKu%#ugOYR#!k*2T`#&`qc5`D11jjxUxFV@V-ZUHl#;I#?A)kwl&{4fkAUt;J%<0+rMMXGYKHUU=r?JzCq?`r^x zbtQY1oA;hIUXn`e0W z*s!h-s_j{AojLQZb3(;bJiQNy^#+Ko>t>vjEb*2OlKlM4_th;0ki_1%1=L|=M$T$2 z^_K_D>S0;QQZUHmk7mvE^ChUO9@SRtwk@l6WLI4cjUEBM>w@L>vwZ>XON|&hd#+Do zaEAu)tpss%c6TX2?)a=Hs;G#sAuL&_)U?zE!&A^L2$sjtCDpCrmcSzpC+N>I62ezU#JRjR-}%1$w=z62smE;>xFRd zN>)SG|i1~PV$-?l?m23w+XozSFUazdBBW zCps1_Z7s*H@rNQq?5xfXgAqD{I;3I99RXhFz1~-C#ro!^rFR_wJM-9;-+nng`lM&)r1Z(eYXy(rmY(tx(ehA(R=?h989jQZXJ@8o zrFBhx0&1w;Hy5vC{f}zr_@wp7N>9z9$_nM2etlAU^nC*Qo=)JtM^1VlrG9Gn^weHY zP~FD`)zi9WyeIoeq*S($qe!>&L_LYm?cp_djj*xe1@AQ$TGT ziQuoTe4@rUSg_RGfvK1^9$Q;PmFy?4lG*c#sbpk5ah2X(pSVie|Dei~H@{EcCuS_8 z*ArLilm6IM-v1y|4u9|QwUOYDJt6$$)lY)IzwG$_<7+SRv-$le!JjE-e()sl;~snD z5ict~d=lK5`hf>59=`&-0=ej8Cwb04){o7UQpe-5;i(atHBZLVwlz;OQD@2n)_OiR zKg55{S{L|g%go^zIjr+kmO^)FNf5oRkIn_27n~<@ILVb=Og@!4^A~FyXQj-r3b}(S zb+jJCIv_j?&YA@Hg9PskUyuB{RK;_P zBe_;hv$p#X7TJ8d$Gs9wYCTTy7 z6KXRu)gX$ClUVOHfQeOc#|ALR1~9R{6?hd44h==-%)8D*?zdIrLW&5qcElYu;T53T zI(zF)30z@4D^L2eoq^A87%i3TPZ~2~S&n5CzLJwVnD{K9+!kzp7FK-Bj8>#rw+n!5 z1pwfp=PQQ+xqY z7W$H!y!oqQtOsMZg?m;C%Y*eG7PyeA!I->4Ku>QQ*;470As9B5>^LcD7x|ZM?XX5) zNyAPw%!*nL=bVT>pz#&4y`QUTiC|}x7z^9`Np0j`w?{(v_ECo8j_9ePV+3yM2PGZ#f~FH$IkV(eM9Z9`yX0YNJa2SBST+1E4zoFM#E1V|_X z)R*-A{T<$FCDTS^&Zo?yJAx1sKm5_RqL{gP8QVoHYXPSlA|0R^Bi z2y&`D(ffwTl2QkqegRR7e#F}>BNXX~0ZNJb*|O6pe~Zc;SWZQCD*&L!lr9j0h9!Fc zx)n@2buiiVEJb7DDe!g_6&00%Wm9yhGb|ga`QHYdsIPti>(sxtu7hm3C$4QJYfBhF z&RCRYh^&$7ndWB@8{VQzLgWd1{4f`VP(LXHF&G0;P+CpZU}r0;gF%Yi07D$5l@S<( zz(JY|*t({0Pg3<1ZT|xq@(+7_JcT^{sEQ&QrPvD@vhCiDc_If!h6+(a$^qwUTapTMOcg`3wjC_!Lfr% zM^v(BXr?jD84irFgPRP>)UX`FfVsp0ILLUlWLLj4uu}*Kxx@bO42r9v7WMUY#L96+ zB|r+F;BCSq*sq~G4+9$jB3lAx5PhYBHuA{(-twOP8HSlD9xbS3A5%MAptlv(q63Jt zd6ee~G2m;S!hX6i8h(glOKMmq(gGAwr_3ctJ5sw)fT9z~bhy(fKy)+&A=yBoUxEnr zj|a&oo;rw>+C-gxvj!q>ASO)LZJ2=@5jgcgnY`iKbS3UxPEXa}jxuNm1}`!4Gv$su z&|iUZ!q%$1`#`8W#c9FnbxR-&Wn$=hg`@2Lfx*EcjRd7k6T-|Kt5I28{Sip*2z2Jb zWW(%sA6P4yH8SgxTOFy_klw1r0Mnl4J)dCHAFktHR_3r<8J;~ggjzmE%n zi7f~q#Tbu4irom@s|e!qiJ|Z;QcjYXr?*t9Sh`Y`Hgbu`ol3c7C$r>}r<~+gr%3qk zIxBz;!gs7>Zz2-|C+9Z$xTC!1Oe^_=Q>|N(m7ttXVtBkkFt8_-lLXaQU{j82Jhe%k zwF9Q-)0e5HXXY2e7wbUVnE1(i&br3aFp3ewhyv*jtjZp13df|>`;M&Nq_L*8lF6`5 zaa9=f5xxGX#!n!K*wZn(Ce;<1hQF5754n~VRZ$qAjaxDf^&e`9fD(=CY-n7UhOA^m zRtmC`*(!8*jbx*h`yOo(n$&FLiID~_WJpQ?XXTF-U)`dHE7HoD+6Nz^>d*w(fiU;L zN4gXsdGcxhe-mYs4iKVDa8pDXBSa}YC()f^HD;nvq^&W4HL5@oseq;l#(L>er^>IM zb_(@CA9}E6+ap-8b~mu#NqYJ3ESLk9CK1xC&T@y-As)@*mUo^C@>7Gpnl*?hwIF}Y z#14Y&Sp!+p@_>J*dXhl9oQrX6f=K@Cly7`OQ@wQtO=t4_bGwe8l3I{gnAF3jkq6odVREO$Idk|mLCiiICx@R2X+rfY6d9@3k8GmqMpPeGFgfXr zhoG(){K;p?;Lr6oaL{byXA{J?C^o#e7#EM@QS3BIS+6duz`1~QB`rKg#c0NG9Vp8$x^Hgy|fGHtVT#F22#Xh3q zjq?FgA35TpuV`5N3smiyR;JaEQAin{zedR0F9gU1zc%p41$L1;N2`R-=m( zklK^;aF&XOmPg3CUmW$xBdu)YQx|OIb>$91abr>WwO~Qt-A^d3vUG7$R_)7B1ZP(m z=`4BFFHw5mTq|4o;?Fj6&r5b@zICMhLHd5NRyH=m6!#Bl7FQn>8F6I;SBjKvXaxo8 zyh9ZsDC&pK(jddw@EpB zn~MR`0D0bNU%BT+8XcduR#co&K&*?It+M6`R|<#9{8B5O0g0+H z5{HNeB*O#}13*0zLp{sJ^)gKA4Hxwc0QL0@?J_geli#VZ$%6r=dIkq|1l6O+^i%B> ze%-Jb!?{GX1iPLU)gxIho$OE+{T6H!+Ps^p1B^V2k)pcr*Nq7L;4ZuA0C&fPOs+!4 zs-BEk8U`U3OG6Q8a;N2Jr%0ftBloF9H>H6y0kGJl5|XJOf(t zwaP+i^wyDA-!w~p_yo(tr&2s|@E|Mw(dSL{r#`dvb$-N25`A=rnS0oyPKX%KjWj;> zq5u0c%iddO{_Uj@D`9C<0iok~<2K@5rk(s4BrF{IOi zv{n!i@0c4tEh*TA<6%a%{{?tP-0)Dct?IL_v5D~FjRYqVbuwodr4+*)Dlz@i$!6|y z`HcWyAEpThB}?|f4O&54u@73n8W}dad}ZI8ZV0*_Gt|(TGas>}qunXxxZ5?!WK2>rIztz!U;!PMe_eWMsrgzlDb}M!!|Nj^-c;_V(5J|z z33ZwtG5eX4*AR3HY_ptJ?XGLG)Dt$*GL@v^fJytdHLJ2Q7dc% zxs8nsWAxAa$n$IbEydYSGdlaJsbuM-b&4BlIB`s`k;udEYqy%;O`}7U)1YF0`e}c` z*~34y0nK~w9_^cm9kdhoTH#ar*yNYka1192r%^G!l?^x-vPXXdm*f2)?9$?}r3KL< z6JQRJ(Pj`#fN|%^T=8Ku0J3%X{jXFYT>NOl#E*R9UW|OG&JL#MPeH*yhIUc}6|?_N zB@G~GV(8Z1{4!CZS0uF5L|1)Jm6WRN6752!at0V-$L;h$n?IKFyLCQNh`v%K(RlX; zCcT}R)LDrLx2MPcW|F%hY;0)NYy-V*@0m&6B!J=+@_As~_LsTz3(434o?lM=VRp5C zZW{|H{he}^kGXX|iMW2$Ya?^LQmMrySdrDd_tLg}p+Ot8~saZWTbE2{f@+VEQs*Z$=^sB9< zaBP))M{K%6NEClhy^G#wB16J76&BFqdlqH{zvA4j#L@ko1A%EnEM z;VA-;71gnLBDvFk6SmVxdwh&2=s|;r`wT$(?lw}8E)b8x3Csa!U;@G^AOvvbDyrfE zMyh^0id83&^$sS>M+^rLEErCoJ|=HkJ{Ts)l{V-aGOuc=a_l$vZCQF@;nYHHY`ern zYM855Fi4ameH4{8%vHc%$tIDlXa~bn9jQ07mBRW|vge7c9b5O{b||ZE1Ey$W1pMAL zTVQ4nw%&bIxfo)~v60b)a*L?1FS3==rBMCXw$fOw*fAFL$aE-7%mZvCqrI-W5Pka= zlHZ6*R!a4;K~+)R9!x_)vT36Ru;)CcDYYQ;QsJDB3+srTW};9O}&w_UWv!NvrD_5avO zBfMzuP@wOEYQk3$WUB}u-(Jcbrfk=04BNHjg^{t_kCAK;dlGId#dm7a7R6ID?$(YX zC{lM)UBhlIf#3jvJ63yG&)y+4lvl&aKP$6b&v+MfYzpgK~+Un zs{YbE$yx8`C^<@@+oBz%u@*5J?8o&(C1vH+kv2zqkcV~%J3N9`MRg|CraT#W`cfAu zEJa8ZBEW_t{&fzq2Z-_#s)H3V@-P-@M-u#IhcX|1uts|+8ext z5ihWl;|eF^pMV%YMSsjq^3;)*)f+eA>|xLt-Zi4#RB9HT5=a%@>5q-2rY10hIHCRG zFz~~w2Qe1#w!WO3cuDO*Jv8bH6P`H=|1lVOmD7S8^-pNby z)=L_xm88)JX`~P=W4hBmpR${cKyf95p0c`*Mv0DK`sbr0kB$ggV8e=faU`>>v>0_2 zYB7sQ`78cW8r3q+J|iFvGM(|%5{-VBMhcFAxuvZTnxI|KYSLT`wiq(EhRBNx4i8*C zj!2J--p&KMubiytPJKZ$#08?zf@v{*=Niu#DHc<_-4o+!N7_s)&6iyOsqDx1pxTbt zEwF_?ijltfQJG<0$TP61$SDCOmFz_-r|GIfRXtk&jt9CIr++BZmTgfEIVlrs3o=2m zw1FwA*rODjqY2{plhOfRXe^!UAu9~?;=(YgKn1S4(kAZ$>{lxD08To1lH~W1fJlq* zVl8PAR!=wr5rO(*<>W+lVWt!^S5F(&4E%ucQmUM&-w-6lA_h8=wmd_q6LDfgf5TI9 z_RkgPohquvpw;9#U_FLD07ss7SI>^Cs2;1=21{P3yX&F4_QtyTs2fa5$ zbn305YCOsfy)^;1N>Am1MsIk}$_^$}%$bqmlj+w{Uc*QbL&=#)kp_thj>H>LsHmDK zkmpqU>;LwWJf&d0jkjpne)q-=n?wyOqs;%q4a)}&G;9}<65d-w!{$?7a}5&}nr)cY zvuSVB#A8MJ(pqu%e0`)=IF5#sfkKP^7h0M3FWvVXDC1-m(Kl&iK6T$J%51KcqDGTe zDyEJ`n_)%kPkmKEXhirn4tfR8os1EgDn)nmD_I1#@9F|c6+|qS?Am1Ls11yq(GV*$ zNi$~TMcP(1F(cuyW4EWU>Zzp1%ANk}M9F)+qOorQypn|yQPJcEzvzS)^85uOb_fdh zm@;h!{j*c~T4HG$!!8}oX9h}it04SSAZ$lFtio6sY!%`zK9tvBtJGx5sz;Ml1hgm- z2X;wxKEnL!NBBwZP0j60!qddux)Yz|CTU>KG#JAbRZoMZN7=IXs9h$ujNZi*2h$V- z05euw7iMZZbhbB~n896jHJl0+?>yHKBXmrOI`Mx&HBBswB1`z)=p5Z!#IcD&l0MF+ zyyo;#RCuI5E;M!+*(`4o8uezOFnf(mAL(QmjZQjr18I(9CQ?v5R^}w6AatiWJ(;fe z@t3>|1`OIQCi_Qgx6yU@SM5GTiuzx)d%J(VcK-tKN;bjID8B~nR#RScTsN=XQP?4e z@M)jCiFW5w-XpbJKtHy2?;t$?bM3xFo9~aW-IG|e+TDRL{h!qCcR&Ez{R`1)qTM?w zuQ}}&75;a%ds4I7Ep(?jJ(;dg3Y7eWeKIUFX=v`Fvj)ll)pmXGHQ$Bap5H;zy(#$jod6(T5;X z8bi!#1d&A$V;V!uZUiyVr4|m?!p0!aHUjBM5skHtA)W(-GOe5D8}~uHQHJ>GaazSH zg8UU=m27?hG7_8m4Emixl0RaTDgIdYlm|(ze8`a`1J=AV3Gfe$;5Ott68ISX#9(O{ znj`3l9RM?$p4t=H#zt!nrsVo{$6VuND7e-UG_8(l4PT926J@?1t<3lTg64Szjn3#4 zc-OyZL2;6X*AWhrSelvr4-;_{`$#iWbK0vjvTZVlV;!phIz+P9C}Q^nDTMThpsBfo zh=NYk??HcII1&c!wutShMH8 zxsR*p$rQ@*VN$;-S|w1b4W2Xx+ur>;PEnqtY>BXfBtRe;PE{yK>ZhPsNY8#u!UuE= zIP_kvv4S+jZK*mf{mBSm^QO8O+Cr+M#dD1+xz-Tk3pIJ+;tFA;undKMQZL~3iQc)r zQ~GwhfbWm=z1mk%9ueYFTy$D?jtxScLD+EuiFriIOWYv3oiTM5wv^&B3!mzs9cD?= zc|m`)wUpqXaG+Mu1?%m@BwxIgfdD(%YKXG|`R|mMYJyzB?aC&NsrMOkbMP4>tu_fX zQnBpbQ)%I*Up-7^u74>^YKeakyb;1a)MvCwZseA(`ftLdBpd+&i(+*o-jM*i^^5Sg zs1~jHusJ@T)>UMR^^}S3FuasQ;ugain`HPB2NgDYF$W$`Gukpa1SL*7pif1doK`8f zsCFZD@g$f>sY|ok(uQi7Xv;`?Zlo;+jf47-#_3zPmh3`IbVrE*o2ti0ghHr?-aP{U zY9IM|_QKDD;1=LPP2m9Q=oDpODg(U+)hgLkYX4xeujr(O5mLK>$_mxS@RrVLTO0b; zj{vJjx)4YeBvWv_sgg}3B=z%oPjl*r19b37@sQD(FY1@MN}hUMq-3j)ij-`^7o)$- zsAm@eSAA7w-E2?io#Kt2>Pz}jky7h!Ex{wT;brQ_Xd-C*-jBN&;)@%s;@$@siY1dP-2UGtvi$~e<1hC|F$Ki$?QWZTIE z>5!Qf{%L1yRQM?yd8;o;Hu~-DrRmCc;(2p4FjfCn9< z>Ef+a91g&I9~Md0w4E7B=5>^kG_<^=mw6EVqL+fOC5v++)Y5Yur3@)T@6|~PMB|53 z)~g*QH~pzp$x1(}ljNA9j2OhS!S`VNRrqUBA1?Bvye1xS{dc~of__~mDIB7PpY#F2 zM(Tg=B+;S2cd5`KNiv+Hz^AxyUWM{vk|Yo1Rbw@XUZqO)M@}r!kK0BiN!heLJgM1E zZHJPEPL0RYV|8knexJYO^nbHw52i@{I@7CT)IHQOOEnTI=hjd|;K^MaGKcq^IIN9MVVh&A}BAO)CH&sf7 zQmjZ7N(#|lpkiRmC=_s0pHwUj(f`#$`dB&V;YQ~?FbX*0Bl^8P zrL|IkenKyajxwjwh+f=F$}$9$>Nh=Blck{d6X~^f{J}_%%z|f1y_qhoku|$u#_;wy z{^BL`3ixLg)&6Ybbst;8I3MxEHnkmk1!4yRSmj}E0J>I4i{tPLim^Y};sK_A0XDB}uEeO^x?k$Dn z1_|`U8D4Fqk0&6gY-F0a3L~zXBXXn}A`co9(P?P-H1J5{M!cdecBRBCiL|dwLTq41 z^+`i%~XK!CK|n~j}-POel8g5lBm$NMt+RjP#qgO7q5!Z;nqu<-B|QgU^AQRyStEvEbiZd*S>dg~2U8*{67>MLm) zpRf57fco}*CBMO9Zx-i^s0tl54yP8OC1Ln_-8i^9nLYc^yR8-QACxCCw{^#8qBk@M zj-tZ2pmf@VS@d>4by$>sV_zx2HbT5^_Yt7=Wy8!p{97`d+PHcLp370D}dnsKR*}6Ox7xN4!AC2Mi?Jn38Nw1&>40 zpD83aWJ(@m{F|Yc*;9OD!qcXKT3b_UdmfisxS-~vPwp>ibm5Jt(U62yXjVn`G)KIE z3LdAaM6VV@->`+IKQUNR>o@hbvDRPfFR8~gW~ZTd4WHl`V%yO8cBYM|FZMnb{q_b? z|GdE1yX_lEpn+s><(nQiOh_i0l3e+?Bs(-Esq4@TNt{n7W3jmf8bi?y`jP>STMz0H z6ka{05j&S1p@!l;gbIY=6&Jm_s)YlzK}E`Ue9guMBE?JvaVhURy`Ufs|MsnLfcy zH03>t8-=!h$RMd7P<}F~DavqxatIyFQBab76DZ673rfquQa>HBCpNE)BPO$Fj;Z0U zXC3GLAP!qPE2GdMQzGarC)&-kZtO3J4F;)^A-nIYKQ&m28~qRy8Cj2JqJv;!X9E*t zTm%zcDX)1Z^rMCd`E3~@d1)JU3Ep}~yLQq6oFtm@VIB09L!_v1d|iPuMIQ&#-M?V( zJXBzRbtpFI67=hFY25EPo(dw1>2Ql8JTeA??_2)`v(>Oiby6DXU&HL$r~}hdA1%9N z!9yaQa#467>mhh3Bfgq%9n+s4CiO+Tw8NXWtE<3yq5&sa34!xz%4;5{e(rFoUt<}i z30z~yK~eZ4qabiuQr^Gdau^}?(@>|1P?B(Q8ld&lM@XH0)0tI8bp|3jcC75gjvmmd16ue&i@=)-Z~<(B?HcUhxfKF%=yX2*k`I zKBjaHM_QmnC_g7A8PJhx%pI>fHTtZWAU)LGNFYNH2%?3P@*0IeaCV&0d3ynnhO<@C z`suk6z2iYAt@Q8aN+nXfK5CRy|H-d<{x1{2;8D_|oD5|QX3&csIQ>a(DJ8`*^b)5G zuG1zsy_R8Eg{g(7-i^3d)7ei50V#vo)0$@r$&B3C4)6-QH@LBntdH-)nba3<{~lv~ zjH~J%4fRF;2~Kd5prX2`VJ45)@63~Yt;hgFE_&5yDOZ;%9x~DC_z2o4#JvrAA5<^PJRY=9aMmpU@U={;=>i$`}eS`(L! zmioF50FXFh2p+@%uYOdd9V59}4HN_i>XXJuUb;c>gvomsXQ_zc!OCk3f0E$EnF~5X z8ChdCwm)QEQ8fgx0Y*ND(n1;$e}z#M8==LrfFP7Zkpi2NVOS?nnbOVP%F-dEqKei6 z^$`jBMBY+b_ER8%-m|1Y!Z22=-#HeODV=l_+X6Vy*4sEz3JKh>Eg;^XBbzpbG9R%m zAa?s+qQXYo0^Mj!{$ZKY!L8i{Y)37w)-MJV-n7mEYb0{oZUQTwBED%$!3$#3p4b%j z*@dz$j+N4+k^1jnlD^bm$d}5EpUb7M=He5$`b$&HUG*o%NjWiT{~vqr9bRS8{12ad z_oUJxo%9e=C`lmn8bXI8R28WKf>J|?3Kl>V>;(&JL&07UyT^hccCi39Y>x$NPy|~n zX#9OXv-c^9;rD#M@Adxi{_$R3!EEo1>Y6nFt|xc(|t`c6mkm909T-p`$aC`0f@X* zB5MRfreyOXaVz`n;1VxQ11L>~LrTVk2M>>%S%y&<0qwusY@&-jm&!;J*mi&0jCo+G z(-lN0h6DP1sf=_cGz7T%mSCP8s+yaD=rbV)U0&R8P88j0r96;8grc83dWHvJ&zxE6#$Ik8+em;-So|dpbif`EM00O{^gdK)P zH~Q*nOtc86J%wnh9|4uH(wS|WTE@?FS2{%*l>b zGQMj)*&MnY38Cqy-bBtVc(lV~TCH+A*ocaf<*Fb0Fl%_jELTmioLT2I%yN&l_c80y zhFR|M^GjxZhpaxqVYtUcMyCzz1qRHMXqLmrL1wa>0h27@8V)_v$#puI#b-Lnz;lL? zG?yVMWc2>&jqx=)hOVrI?K6-aY+{tnk9R} zVoZl~oPJPm&pOBHfNN^kBKd-IoWj666Ng^HAm?x;!ZCY9o9^K-&*FZJt8m7{Cji8`jxR%=Yj7p5gn(nUi;MXjSNu9>LPL$-1}3ju=M*@d%-!o8 z#yk@;uy>uaxMQg9EWz)92oO~RW32A1jR&s68S9*Q7pKoh4n%hbLi61{(SxXi`t6&qoLM<@>GD(PbdYTd&lk9_adSI{H0=VFJ}${2KLMC;^H(&=$0ZKrj}PQisTx`z#(U&n?B;h2 zc8qWi$l#+mY&awXYHwux9XfAw2Pk$2EPb()R61{J{(3!DDd}}C)U12qWK}oES zUjRd3!!CYqR>M-R0M^$}k(V;@cmmiZ%xoZlfzMG*CSEk*);jL1xyV^S>EdNl2EMXl ze!kSX-QMhvWIt4w{DQnYFLNHT{EkAhL!Q2ab>?60JcRnZ8*7rUaL%;bInv$E1DO00 zjw!C`nFkcr7Ipg|!xw#}qiJP(0)<*`bcW#d8Bm6e_&Q;uGcrj)qyeJaD4+xg=l#fk zbfbfyz<3D^w^ufJD{?%Zk5R^z%%qjaSVx3&h+%T+{vi}zc9nBY^FX`%k<#jF=dS-v z^>HTq8fWOg+W-t0_*G&Qr^yJu!xVw>+hLy(%?0h>_D|*qV zn(lAB$H6i*O<1why>$I1I(+t8r=$D$ld?$Wbv))5q`I_G+tj{Xio8uuc0-cM2Z_w| zP0mfd1uWqJcTdd29swd4TGN%Mx-!+pKnX3);R+q@WSs2~dH%rA8;d;Oays435#w|M zH~SJ@rCjIS+E$E`KiR47BpZn^Yi|I@{rNg46{^fN$mt$pyRiY+qmQ1tP$w=8Qbw0X6=RA8+hZ${1vZ?(A^~sx`WSyECTh#?2XeuD&|On zmq*~`XzkYW zOxv{C*`^jPGDB~6I`IDsZgw6TXr;3svC5!eTtW$eiX9;Vi^sCZ$bTivK#GuT#^2(! zv$T$t&B9xp-iS?#NdYp_LV2qnTZkwHIQ_1o?-OVCJ5kp6@-0qx$LVQ~ZE?D0SYjP| z{DViM|Gs8-%*r=>D{h10<{#Qlz-4XRR7Z;(-bDbGJvzw2as@uk8Miupthic$y2f{_ zGtdghQlt~poZFnq2_ngFz-LGUOPRaiHUS;nJ{~0vfABWv^pFM~WEvVMGiz>lCKUzG zEu%<6X{n>W=MS&OWzSefI>9%;INV_$AVx0#~sY= zM05$i(;04IIE$YX?{vC`jQKI7`7XQDIY9Ar3fF$#-A=zuJIJxXQFt{V)m~=gaZ@fc zo{4hL-0h@*fj|;qvN*0ikL23Bo!-IZFoNnRk_+!~lEGKp(&0=-cnq-5dz_p>f%HhG zpMZ3U{43|w7M_aJYSOFcr7x~pT)ljid#w^(szesPn~m(e#~B=GT%|C5Khs;@>%<4s z)0nO~#UA%M=@#2LH#6;CXCY=E!72mq@n$+1=KFh{#9a6yag*|bC(q&B3%GcFXeX`- z<1(CkxL*eN<=y9a3BSc`jZd~Y1*UYHlT(OwCh#J_9U{bk1ph-rcl`}}1E>MDjFFy5 zk{%505mer^%^AC<0qqA3>;e*;hD|-ilDqGB z;u^JZnCa!)Lt7A3lJPZAvg8noO|)<_(tT(_JGep{vuWjN9rya&E&9MiaI{;Lr&lSHrCPRriYy#pml99jJF;J|MYk| z;%EKCPH#+u@88KZ2LF2+_i%-{uGVy)ysA8H2mVR9(2;o zeNW&B826~N7BN4}qY|>@E)M*uN1azGuysJ^=RfX@$4}_z&3lhKx%iompZ`4Wl(|34 ze1V@g;wJ_@18p2{&?jrCN8zruL>p>Y&aSl=YMLjVFsGF{=^p8*&Hgb1<)n)#G7C<1bSTzY+b zbM8}4J7DWPq?@OlWfAt7Lulj9jLFASC>%GVrITis;@V6)L=6z@6j7{M*&>r|j(Xam z86BcH&}=&bN__r!hDqPy42kzIiYqe6ik-c1AU;rK*`shap3D} z{;5>)iO_`v3I)W^sT_IlolchJV;A#t_D&~1*Rm;U#c-amgP}V%;tWM%FyS(odY0b4 z(-~EE_}I^ESfa||36EAn5p7gC zd4WW%9pAA?=n3r^fE;0batXApQ7X^0d)9dyP=vk773z*X>+mih==rG@BF^Rh-A+&V;fB6{Nf}c7Y0FsPuic0Y(9^^|C;HogOd9c=lT#{? z50Laz*^6KMOLdP-xH%@gi#aqJ&`?DdgJ%IO09u((?h1>;dp$lDX=1|Pva|m@=X?g@ za2OboHgi|aiq+~pH#fr`H~agNv1#zs$4jU1YEGcYg4jxgbKtM&foSUPW zzVT(;eX%H>hHu>dW0MIKqM%##dL|7!X;KX3fqqQqQVMepG$JwM2qtVzTzHvOA@|c* zR^;Vn{#q0nWDiLDes@1wF~V@zf5nNij?=w3{jR3#D>6N*439UxerDM#PWNcM-OEB4 zm}&Eh6Jwrz#qpvkEHJ}^fu`|I7xU#S&e@$je3`}1&?zqAp=yMW&VE8VXW_)@MV@Y z3rjG?2OPc~b|Dk6`;$$<`_2hiP3WsGB&;ue-#Mv)XZ~n*`P2K(YC9gx4?B1S#!7|S zMa*3Pfzt=vZPy22htN5&l@C9VMR&(Cn4R7Hp>w8_WfDJf+Jn53*)~O9&tcJhF*?OO zSOq?{XrgNFyX+$;nP~q1+vWiAfNc&Z`&fWFc-tmJRFk0e13|;SV{Ss7X(O6Jjf;_CX4N`b zmMSJdXgCPX2XeL%cWT0+kvG^__zVn;*Ex*)Ms#i%Ufqg9UM>-n$o4fP@?>04Nq z?Gn?4-i=W=)O=R!^q*Dh*^4wDkVPcIKNvjD6m$!Q77OHCgb5FC#mKl1*2Qq<5?HTc zExht1i!WAYE`BeL>-0lTXWWm%5fTw3C{L(5d!=g~bDucm^s}TZ0Rxlwp|Uo82QN2V z`bK_Jgd!7IQC~_1+uk?fJLe^y=F-tr;$deJvepqPs}DOP?dpch>cSmv4$(HK2D_1n zNvci66sj$P!wyt#{)3a!$HEKhbqs4Jt4f3#ATTDt7q9aBQ{o`=3bcaEzw4)&X+K~b zwvu`D2WJn)l!ane(!1#hyq|=tyZV?0Y(43y(}whJ2+^u2Q6-rXKRPYkwd*ZoAzKXc z_E8)eXTjjX0p1?8pf=#`|3Ra7{^-0CWZA-FH~-}P3K0H)+^c_f{+x-(D`?f_e$7N) zi2x2@%VX#L$O(t?w}E~LP&B1D6Og-Q&4D#kPhiJSBG;fSeDD|NE%Xw&h9MR-OGn^ay>HjL}>5*j_X&WRb& zK9D=n&80ATn1huFU^prUGn^2)_kY#|YIH*eNCal?efNmrtUk(z zcM&J#sJsVB=8Zp`C_GY!mxF5D!LJ~t3mI2C8J84n6XBUxy?pVCsv35+owTn1A86!k zfFK2AAwy|~^z}ha#b1JTsFJCl&$wIbGQNet} z+--k4QLVx}^A}g1A}f0xb5j2d<}9k5UA2gH_A_TPbEacbExjHzCRL(-X9k}S& z(zCp3Y4!3Nj=E}zh29PpEBp&>xX@cswX|}1WsOCGKbX6axr82~fv-3fVPOfQZjd@c zr<>JaaaSyzzr^ieF%1tNu?ZJuHB~G9Fq2rGAsCWv8*x{vX8vM3#?RTrn7`2kH%?5n zXXWBWm2)eX*4XSc8U`+4whIPi&zoPhNPs<+nY$Zi)>O`3B$F`AJci6T+1#>uLxz)Y zhcmR^>1JQ}48soZ2I6Ej1W~3wT~kAl&!i?a1Qkg4JyGvWqB%O3eZe0l-ip|laZa6; zT4~u*b74!c-CRVty663X{z42y-zn7tGFXOI?fSrzpBsaxdyvwuB1KT=?bL-^RTKAj zNGqa#&gS;*>{Xd^)f%VtW}d+x(4DYi$mokn4tJ5-oZ`ia=6S7L->FakTO~Owpwh}z zd(!5(8u#3j8~hKi>R}Iyi}~3jO!aML4?=h?7#49Ro*kyr+&T7x8wfl7ICy zf{7E%z;G3Bj-dzlbjl6AJ6shYGB98q&2}4)@h#RYX3aRWIb5aKn!NtZnkQK?jQ*RN z$1iau$%{~3tubmnSB-qvvRZHwyHF!>3c}i3BVmJ8qU8Ak$Kem8BzKPgwU%6#wcLam zt96WdEmDncG?25ISs1ChxnP44UY?T_uhf6__#6l0@A0^hO^C(`j&ds_oKqxll$DpA6c`*uZNmT8} zT6yOdl)|+~RJW#730q);3bQ^Vc#9B#e?b>UeVNoMG`@k@z#*}je-c%Ef3d|%1CuD6 zC$Z5+4NPj(z)%*XpkvCDR9xp^3&WTpstlSn{6lz?XF6z{#6WdvlH&WSvshb{jSEv$ zduO=m-d+s^@ZddTW}L5+%$1WB^%Ol&&Ub%%bqD2NEJ0|c-sXZ7RftMkko;7N`V2)T zlTQ8EQJoO=hU1hjud1x6GRq28_5=!YQBhH4>FJ%*8Egi>OLL3z_&I7WKFV{83gv4O z*v*QX%Ee1V(kdoTqQ9S8ePs3Gs-g3jo8@V$xLwuk(@sJ4v21AAk~zy)Ev+$6rm0C` zv&o`O+jMoofa*Dwi~MEARIQS(yLXe`@D|Q;e3zx?MT>nDk}KQ}ONNXUP?mExN3zw) znAs_WL}7;7q41IFPV?lj;1tbiIjUnq6QeI(RJme>d9Z^@h{OYc_G@1U6&F^yylP2} z`5^}x%d2ZJ+^V^zWvdPY5JAM|Vzi?>syqHaJHRRo zuq;pAi2;6s@mfSVAuI$@I+`={)zKgTmUmLi0$;xGI;qFCsJ(c^2wA8DY|UM$ZvrSd z6K^L3)@N2fSo4V`IpZc&l#QE|gH`vZlvb3Lm6Q(+O)48Uabn4cVQ!LXUZnChikm(~ zDp!8YMam?917#%>#-J!)d91`TE_X3IXUwoEJOhO`jHIz8Lxzpb33fkm%&2k0D<=5+ zI#{HJ^bfXVw?)pVNyEy@CzmzorMuv84u?Oi+&`n`tIVu!YFZ}7wtQ7?abDA?{h1$c zdXn-74wkSBI-W=oqO`d5;Mnc2~EHW3WAqN-!32B7O_G^(AIgvFZb2L;Hn!yI764s)sh9u_@>tysW5) z@G|Pxnv(GPBHcHy2ZR=2)>O7~K~L2^#y>i_?m?wfZ&0^4ZVpnnVipbSrA}yU+`^P( ze1$Af(@Xt|cF&?@w6M3TFjbpb0sf4r8@ueN>hO zR#=GRTM4sD`lvE_>zxwhFUW2oqN6y*+=^;)V?}f{9w7a}x|Rer>HJ=f&6x+!?ye8( zmd5F;+zSapgC%23U$xi@P!9t_w(#41)!>vywmcaWn*4+C%@K>FZ)iU?j^L!Tq1n`5 z-QEO@M3eRy3rrlKs-;ycdCBz=9OfmGiCBGd%+c*S&iC^Gh)8G^HZ^SjyCPyu|3NB2 zY6fwGwnZ<6QG-(TolW&1MVIxfIgmkWEyNqRC%SLIn4W`Gk@YGK$mu&#@btmz;+7uI z11Kmm!W^VUmZ+)L_mj?ur?K&X?;^o{XNEmdRqz6#YD{rJF3 zmKn6s8)@Dds*)gt92u(U#{F~WM7ARTWupaPt#DDTMIPI4;|o(^@*MYWV_Z6|bnXo1KU{6BmdP=}tYzGK5x zSH3a>nV(h}U*Sj)Q>c|0Eu}GS*+WEKGDZz{`kQ?>>ySA>I(v!u>EG4Vwu&zHIaWC~ zMscmB>9IMhrTVKi@*jzGBWX4rv z)oQod;#yA)`=^0bL@VlE?P-rXt60xtpc!$bhEbm9YQ>yepKB(UDZWs-h+|w;rbgvA zF1Ir_7~z1+ zVPXKq{rRhKm+Jg-^&en6q+;=O2L2vKX;XQ-?qoixP?1=c=)<5XUb zt863`ED``eT6%yzbugqs(8MCA5OQ~oQ#n|}z2j8zU_52OflyUW$N_F*!4_4y(AkO1 zPUJN`>a`O9Rst7cQ|fRit?yU4%A(8RZF~hWl4d8!+!!GY^7mr9<;DtaMU36-xah8y*09qpo>ivO3@09$4*I*&g(nG(%5N`wRTO z@N!Xg1))mzLQf8Ba3N*EB~>UAnAgD!K2h=Z(?UXU)`=?DwQk1CCB?l=-E^Xw7UYSD zu9_%3F_~}*KS{YxIda3R@Fcasa#r+`;U@`WsA;(WB-PO#)7$#fsh2QcoTOGD?k*%3 zR7pZ);b7^SbO}zbM zQ08KmNt&&a-0j(2NWlh{DK|rAtKlef9kCP2nz&}Xbcw?+v(0_8Rf)w2xfVf@a6Iwt zui0w4h1sKmlylUKQDigV1n{}cU)+~FgV+Zeg=GWh;4X*2md}jeQAaFwq=z7i$o9MH zCa_m$u4-@nS=Od-cDt0a=>T3!(aF42jbHc!0&#Y11g6WZx zj=MT$YmIuemxtGALgh+wJ{U?fIE_-Q|L;x&IA4Tk$!ww`kJbhiY^UP@YR4cGTS`0QjK)kl?63-^cT#DS*5yI z!6XW8<&)TDnetVN&H$PGYGS3wFg>13AlBTlN?nS1p2B%vv<@R5cBW#~RSEaF_)L|B zyCFO+5lz8pJieRGg!J!<8yHJ#Szh2DUj|Rm=M0{q-Y>HCTWlX69Pe7sX2aZP?+8 z@9O|oeSNKZ+JS#HFD-_gW?Zc6ZEjj83n(Mow@zIWQhx*MpK_l1mR;XW0F7S{;@H#F zte0_9m@;>+SMzKg5nJ!!I1)CfpJVO5L{!{10wEsz>(fo@1yCnizJ@jLe}Sxd8DX^i z0`)Kj#Z{nSA@n{D(a)sU6f7Oe6!;cm5KB`jKP-w`x2DTGJ`P!q;qUcuLO+1u|*}(6BF>geyMts z>%w#Xzt^RMdEjz6Y@dwk*!rum0?pYJR-nB-`pBK{g;%KJAgQqj$iql|dTDA~Qkh`u{CD@zJHL4g(8piTl#^}sWGGkI~xfYD)2g&(Ey<`Cd zOyv+UFLkWWilaPaF_(VnwVtmDq(bAnM&&khEjEL&1g7r|Aoda0s#p+XDMLGC=`XGM z9Hl_#Ae-!dt?FY<&Jk#f0*!zA|GX{JC+%r!`t-TCbIA{V!QZ&MjEP7}Cl%3}GWHN*>N*H#i7p)Q!K$kQnC}42i4Q6x>7!47lZVvM?h( zs`Y%#ep~^o6@-Wu5F+9U=3CfofmwnIkV!u9cS6@XkxABGuW~?oB3Zw{+>b9{2uY8O zh0-yKg$%2^IeNY7gc@sEX1K|?K@G(6vwt(^2B5599zov;=;R0eUM<%CEG9L9c~sN- zUcW)DCg{`fVa9G&6Wyc2Tp?$a%Ar=gf3xa<*KZ%;JQ^uP!FGg@(5qQA3IR7Nzo_aS zZBY;!FcfSINfeXZvez(u+0AM#;&A+Qv-B=wIZp2}94GY| z|E+h~yCcl>Tht)*zMAlBqIYU{rFY-hEvk?ka}e$XiAB_&%eFK_e>a%@JJcw%Is+=A z7PqRQfZTS3Y8elL2J^#^VH3b7{-$GR^{pb)--Jr$;#*a6D&yU^;98G{swo%hNV!}^ z`58CD;>L>r zj*jv)*umfMHswwgg9o$6-vor{S6_g zc|QINX)1JloTQA84jXbQm?uPz#Lk1}VIBk++p8-i{czk7FxTC#lGg~j$*m8bZL`V8 zGeIv&22c(%OQSIBwd_EITQ&tN11~^1P?J7@;_XDc`W1_`CY$*VicJ(a1YHSt2gP=V8r zx#C%s(hBSI?xFo0tANh*zC&eB9O&XvxUD2rJZ97o7)-w=FQeY^AFtlFa!AUOg zt~jX*9*n^Wb%?iv71SD+DP$QoVRjGkrp8+=NOtd$AQB#qTFfje)!odS?Y+%S?!BtT z8iF+tbgzgSB|c{gB&3lMIC-#+1WM#8bZ9p}bdr7=C~*%aku;NawgSw-MXl_Q;vkaf zHVYiq{2sb!hC#q&f3;*#N})qy%xLrX_*%~%b_!aEN_9Ov^6+^C zl*8(84Lv<>9oP=J%QCT9hyb`)%F*;>R|y!a)!FpIppa{3o}^=^_r`}m{#+FC5;OmR zj^KDD7yodn`Vng2UC+ssI^&s<9SZ793yE?i2v^0H53ID8!t5@A)(7t`1a?V95y2{V#@4*5 zIwgp3gOo2(O(YfCnE-sV|53P)B|fZ%X3D87f_vj}auSQUc=p{|5js*PnekY_`i6{n z!RQIhxZ*LD=zH;D_^4$H@-m`^XjcGxh`y!e1T86f8*n;P`l#wNUdqYy3GxD=wV9W? z%iB-}CIaH-Fx#X6<_;Y!5?cZf$|G+Zq4V;i&>KuQ-#w}(Ltptdd8*%auhC=@$)}o{ z%rIp5FqzHDhI0Z`$FTkH*?zw#RF-w9qkd%}DbV~UROh~eK(I_zgdh+fs<#L|pN>wGf!_`R!I067Cn~E@bA4XVhG4AHklo z4@~i#fe-r>(0ek?=hSMme5cB>#uvAw>^gB>*tS#kw|ZbX&>z{UR&^!#8*}_;$b~2{J^N)pQhA6P3x8dXVK)o>y16`(y}K z&h@SIbCbM~eKJb+$@yH~2Hd1U8Q~^$&$QemO_0>jO@wc@;c^H!Ir9Z|o>jt;z`VxA z&oa?3in{fAel>v#vBHZwJ8{0rFRBtg$HJE}LR29_AG}DbA8GaR3J^9uZE zf_k!W)8mwpg72gk&OAM=%5FC19i8QrEbvLG>c+&78O&A@OK@U^Og4{=iBN5VAoTK}a@X5i+&`Lc&^I>p6>= zf{+W}R_lTYSGqHFCiq6YqaJX8ko2f;jF8Wg!Y(zfe-2AE z`R}RmfD9Dg)C=w4N<8|WTH~JP$H|;s4S2}`!BTz^;fl?b2UMG&vbd$ix>{yGazHVD z9~C~r!YM%|b7qGQ1keH*R;@ag8SUR!DRBV|#%pm@pgoVA`Wa^T`;hGKT>?*=CGV?2 z!5$%*u~dI9_^$U=Rj0P_5DE9hL3V(9$R^IxjsbpBP-Ua&xrAGLNIv1_=mC|K7|6CG zd5GDF+>h*x_f@>_>JL;i$8rt^G{^@m%{?FbIS25%AcS)i1~^CNanN)Q>kH?|`$%=B z_T+mGJ)pRgM?iH~#`N@0RC{@o zjmKHLi>>}{lyvloN-DOpdKXz(dd~UvP?3Ibwzn2$|0l4$#fjNW z0u514ru%^?rC$F;<-lyWlXaNE`<~3e8Q`~OwrYY@1!rxbsLC<@KUHbaPNi|3yPL{S zRVS#urt^ypF$|3Ku=!Kz!T2-C;`}|dv^^wC5BvQks0ER#Ek2W~%{bE#>0SocTB=5; zN>%Y9T>6wOI?Wtr{bmKhK0Z@O7}FTC(lK3Df}ftPbb z1r^?(qO3Xeg&Jp8e-CsX`lZT%#Pbnb;NZAw7`0ey#If%M=7^639o(K}?VG<;IqvQx z>BpXBnPT(ym#Q<$R3go^Ii?a)UHu}>m0VY$5+rl&LtV|`T2K?{Fga9$iM$J7a^2THt5Ye! zq4~@WfT~K``&q@sK`?gDr(X*@C4iu>-g-#oV)Wbx0US@XRtqCn$;@5Q}KtZD8XX#fk(@d;Mkh&dL(4c47wccj6ifaO9aBxbF# zOyq=mnuUkO_;o!SAg*8_aNuAqv*WPpVONq-W8%1=uZqmVBdQA~di@cZXdVl`dPMcN{+!YD=PbZtiX9@bn16F% zGEu0E-HFy94Xy(CH*}(+DZY$}cA_^Nm5GYaba0}qWxhMAMqBka&Fl0Yw2K+-4~H|C zNlnc5N~HVF_z@l)m??t~MLNuq|S57nu7R|LTXg~kOY zDDpfenB-as>?(@6F=Q1*UmjS+zGmOgVtL%m*#sxYS|l2FCCq39GpAcUi>; z_|?R`K4QfIf2mdG;a}CMnA;Cb2+mC;6VA=)YtE{ZuFqhJh7+5`)&mopCQSq<#>*~v z?UQ91PfVm$t{RTdzlkui)ju&{5ztd=onRjSO-(XUzpJx?^P?+gaDH^eZfbs?a4a&v zL4T-IFu(Vi5S(8XKV|KNHn;v$@k#YcrZ$`+9rlA$94@T{r)W7V_xQi27$7Od=JP)V z{~07DWbK496dqHr1?P4<8w#x5P5f$N?Ox#^Ft-meEivwpl;W-@Na zon2>{&HqSw8W}>!>_`8o2LJ~Ob8-%_=Fsl=#4`xnO`EPd_S*mG4wmFJvo7RmjwXjK zV4c2>?h@xe8Q9>AJvl2JTFugjR9ZX~w1}RCvj9^A+R@hLp%UHBJm=^e-4g?irY>pm zpBUo)bz>g_y1Ol{%>aSeI;DU4>8M4eYNQy&(X^*4eX zRC5JRt!+bQZ53S1HoG2DdD)cNm0xD3S7}i5ic8LJ`!36Bm@CLl`Nn9$ED#c$|{C zbH^>O#?|_oRpy*1ozSXsMNMw{qSH>OTvWY0y<~;CI8tYHN)cq1+QZR8IsT@wm9q)h z%Kt$t$0BuSC(q3kQwfOw$ym@zQaElP;Xm_ylpYaKe@Qg+^U#b* zjMi!P5W}ql^noHT8hvM(rO|>5b?mGOszU3H#f7J%5gQA8>Im0@w8d;`uA5t)cL&oR zX|6LYcS|wcOI`4M3DT(tXMhOm%MU_%fhRd#)pg+9BJ8VM3!N?JmY`a~o?Apj*)mnf zb>}q*dv+m-fv-86cV*lN$hdUG6PdY~8Du2zz$w;QxQ;?mYzb2-Ji4~@94wzXJXN>P zL8i3jcgCY~JfLjm3&5g!%`*E`7`pIytx22Ayw-3or(3LI9LggrnZEdAf zoB?K6E8U|bbdmlcxK3=;$-#m!eL7>1IT*%As1ny&pKQINhE(blVOh z*-}G#9ybDGll}s8B!d|5l#svWNH*uR(F1`wJK6~5P$p;!a~@^UAKU1F`yG!!Rv6sN zfo9`)o74qYTjY?ct(8Go13Z}q!;@(#;yW;K#(+$E?!3m4cWb9RVZYC4C;R}&bf8Mjw(*-O&*!&ZxdjlOW<>V;+!AtDHc*GA|5U*Q+iTjX_ z8{0@qGdIQSmPiu(D`HY!SNphzyP>*bp0yszM_6?j?%-hEnph*x#8Xl=|HSLWlvGkY zH&c1K_4ok)^d!mK!6Mxg^bpIhMbKi6Fm9=Cb_`D@=w`UtGJ(`l{6qu2^gvHN@z+}( z^eiVG{3b!C;*h|>$A){BRxMdxHP=1CiW7Qw$$}1gMa`;3Rc?-GFl}$`yq>C+OP9MD z-?2{@6i*}yDAEZ-H|aZ@G?_{6U{jNHGr*RRHnV8316$6Dzl7LfXrMYBwGl3>qI z{Az-FQd{J^JxNy)dxqmLL>QsHz5cGCFp_1~BO5k5_UO--Dh8M6*AUpMpc&9Wq_ro@cXiA~VEfled- ztjN~5m%~RyXn|l^3E4fCMTxVne|BgAdEak63j_ynEQ$IPO;K!9aY_Pd$ILS?_sDB-u4b`fl_x{9v+E%wq)tkMJ;_ax?0 zAT&cWbUXI}3aCq|c}-{DybPdtf$#MUJxw7}!q}O3tY+pAcyEs^nJ{xm$;4qji~Xst zOZU)WV~0%|Hq_*H&^^=PKms1xlwDO^CoVLVd%}j8r#k3i*d9T1+TiXYurq+A>7A`F zaW~3J*(lVzfQ;_XmNNVjS<}RJ)cswjUaX|GkIp7CPBdS4)Tw4&M_mjW2IlxVQq40R z^(EbTn-Dr>>ai23R&I$N#Slw`kSlOD&^hip5+p*u&dAXfK%tj&G;b!#jhpXsK+^h} z=v>{cJ4%se*l1$b;Wdc~ZCx}2u0fj2^}9dO*VfF>)deo_QG-35&g8pt^-Kve_Y0Iz zsp9!CsVkX1Wjd3br_;L%BS$XW6&z0?gOM@ZlC=oJqLfa2W)0f!>SviZ^K?J6HBWc2 zfItiYk9j>$-|lwqzEe_7xUb3AU0rQF8p^c8dV@K;@--uxB7_Me30+AGTtX*(PG3Pm zyvf*f2org&sRH(rB*eJmy3c=&lkjh%ys`h=+TC!X*>rJ!K-5DKF5879^r!SyG^L-MOQJyE{K( z!Mh7|KP>*21+w^Z`zf+ePwVBs#MhSO<{n}lVv<8O3&HMK3(r|Ix)m06FDNQ1C@ell z;)wtY_i<#V&<{)QY+lqdM+@~h2w^2f!hnP&HUTzz1Ncra(o@NR2D7Pvqw+vCj;Zij=7^HZSD@BTzyQq-j;h*+zDgH^$d~J7~+oTl#7;_=TC%Gg& z72maJb;v&^z- z0yYr7CJ9~-LJDDfI{S_m>mtJLYFu*+xB0UzjPPLf&yJW6L^H?UW-N?JVa5Oq&RjKP;@5v8@~eLn7?hiul&M@yQ+nB zv9f3K0jO2$>CA-Vt?DHxa@lzzD~M$vwEm5? zf=yKP#uAP#(Xpw*;+N17%rBT)NF3()EhGT1uUP5M5`Dy_S_e=8m%Cb^j9(CiuVEtx zfJ9_B6hs@85kZtqh#+c`OLe3h8x9_VSR&>?3ccqfVV)%Tb4hJNMY$e+Q7)0*d!S;j z*@+LkTTyNrt2Dt7&LeRWQ4YGj*1ict^-w4GfBK@XZ}%|$j)T}>i$Q-HGvLRatKYn= zy?Jhg?&Jb%zGwlr;opE3Fd_t4Rtv~%k<1DLmVaC|q;Nx}ANZr|Kp=k3ybUa(&0nar zV5Ck#pi=NiagPbW2T~f<)Rdd8cxB&7?ak)6=>y?nrS5nno0mrFVF9g~*jPlPl{Ct) zHEW4gNGDSmI!d%=%SP$;g?Isx#JUM6i)qJFKlk}Ins37U;x3`RtJ0kPG<8>n>Liy-yZ2T8!;}y%U0`@$r6Vp? zvyCR%GOwNp*UK_T#tK`W$g)j<^*)Xcw@xPbPA>yn?)pE)TLfAv8C7o1O%KmETMojH zBCSI6OjF4A0_$J}B9Tbqp__^|H&yuMA=g5%sF#i(UhBD^a};@qP6*U$G91glw3_#@ zSVLz>=M7`Jqtg{Ilh(Nr~-qtr~yq@W_ z^>{d^kd5EddbC}BrZ>|R)HyA1<0f{Z=6xTD4Rf3uH`HXvPW*2-ZlYMQ$gG_x^9jRO zQ#Wqt6JS1=s6RDJUsB%W$rFdkL$>3FO~6yAZEzT6P%rys1`XHkP2D7Y7FOR!xri>C zb_4dI&@|XD(!D%cmqMfyFW%e}G!?NuSb$W9QZSh;RLueA(NfrGe-7AnY;0{E8)f;Z zk2V`m&`-MCitFGvvbj2!_z=oy^%-JPZ=la;P)67Y?Q~Y30XvXvFKZPN&HpZDiasOZ zq)@96UqNWVPQ)|bY&|iY@eS58w+V!}3+W-8qwN%ZCuvzfcGBojAwCMnJ5&&wI8;1A zQ2qBqg*YUfGF4|ad8l}ha1A+BBnn(<8uF7Xzga*I6=K3`aHv?yq9Np}$h4m($i_Cz z$Z6Vj1>(^GyeH)7@H4-f0F%%Z9vuvh4&^3&y8ay3W9d5*vTwvHy9YhQ%+Mt+PE-j6 zxI2_vB3ea2w6NTg*;bEn*9@H+bZ8a?+c!ga)88|Mh;}~C0EOXoo2j42;uW*GK(J1T zr=%HKfhZNt+X;TdmkweD?>b$8Y_oQjP8mVE#`BhY>=5b&F{0IAL(S`D|Hq^6L=k%vnzEv$TBvcG}X<_tJHjM zWd@61Q>j0|kk!Y4dxS%shh2bFQQ@u z`U&LvU+epcmH2`^FJK@Y6AVUB`oU&GBw;WcUcFG55`aVHNk`6>v!dh?aD230gR?#ksi_7Nf z7p!VJ25ku;v*Ak8YduBB+0J78l?XCj%!AuhjPJcFn6iKqr|<|UOfm8l9b=i|XKW-5 zOfkg_IYlSQ;US0>A2Zhi7cWV?&o80}{qJ1#z~cb5o_CO8o;gL2vDGCw4B8s%8wGNRa4uMdCo+HwO^DbJfeY^LT^ms>oPMg#w3?YO2(nvF)eB%Mj-Ibm z;9K_5tt~pg3+C%SxZ$*WzK#XJr*qgJ&etc|68res zXMsM`0-S^)jYsG#^XvlIck%pcf-p=YTtnl-G&jWy^&y;dZ$n1fB0VQA0Z^lr&qD2R zy4@;f(<04xEUkwSV*5f!gQ*C99iI?#c<#+SI|u5UviH0#&A7!nJBf3Jn2Tmw9u3Fq zu6T2T_Rp>8=d#5*Ur1?)cc|v-P?R%oEY|Jq>I97E1K39gQ?dk?7}_k+ITi}Mq-+K) z(UtPN90tw13$PSMi%0@rE3^F!oo?S+iv);LxCEm46LTVg-`G(umPML?o0uG7N6av@ zGE}%3cb*P2rPcZ-K%_JN%;(jbp{f9m&D0q*TdK!d{VsN>$DSmvM+OiSQPSeg^vlJ4 z;98cwbE)pWSb)_g2rL9ZA+S1e-aIZ?C5UiW`>ZpMm%&$3(2Ioh{+7!wZx;z|i15_e zNGkK#j-M)In!(FptH%vCV$qCc`nn!+>VYUR5VWQR`u&n%$Z)$r<6H=#K>m(yAjak_ z*V$I}=vHN%?oG^@v0P8IYn04Bo>;DLwx0)xf74fJ_X$u&R}!-IA&XtO0#@oV=FSzm z6r*Ek3Uhdc{w?WWa}``Uo51_4M$Zk}!#*a6v&`btG$WS0!>=aRG6M@%-%s8Lqo1tr zqtigzkVc7`LPWCZcZMz)-57tNaORTKkZt%+a2UNy0LYX;aDeg_4WZ|b5Hx%UjS>x= zbhGyiVKb+*pYP7VTnkOqN=@(2VNB|=QoC<^iKkNKO1%R!KqO|9x(c+Qi#chPX1JU? zk+OD`9ur+vlRmU+Q59nezq?8=!4&RdJHyV@V*#_(?Z{NXoK75t>tiQQB$c~~`S+Zu z(>jK}$AhgOoDxq5*w{GGK9918&eX|nY)V(*PRYcxaC-*Bm%U1ON#f5w=A zz6=F?%|-{dRMk>%?wNfo(!@?YjK)qqSM!F}-NXfihKe;ee;pQX4?`k6rhv1QyaRs% zy-s(TAY7R)I|AlhE{{b9J}l}-hFjSkAH70Q5OT~@=WE_N zpvxHayq}>iBx~@%#CD9$edJuGe&Jmu-FSdfnbe2*#d97)M5%o(*?}$;5yB9}knP z*E!I#ezIN=N~DNm>vfiEk)%&&t>-_)!c5b7gK&T=@nuGD&|T6cw571?r~!~~hEFap zoiwV#hRk9ebL|G*qno7~_VuWi#5deg!I}fgxT49}=Y7-h>9-g5CEotN0d6C*Y=RFI z;H#NlaDg5!H**d`M#FlNJblfK4HxJEmRY0%F1|e%z{CVlGA@XXSUTb&9btNfQz`4%H!+48L5kb1WNMeYqYXW}0ANPizHDdwPuqA5x(4pF4lm3mY@_j=>O&xA_bA_b&B2~xV66E@{zWr~q*oiH=bPr&=}eHKS{fcko8s&AkX*b<$uH`1FjXqU&*!&ajFj2#q-kRN z_3&~lGCy9Y^Uy>D;Wyr-U#~~SL0F-2BczEn_%>%S9ZBr1xd9%a2sD3#W}x|@Ov3AZai;bLUD;m< zkvy|Zdee@$-|(QffhG&`4n|)9S@NInXt7v(qt3UaEYQMNOn>S|on)ueioGqmR%f&z z1_*=(GikHY9ZaX2bd048jIebz`xeTOV77iEA*L>2QWKQnFQoerOfgCI!&7cRp{8Uc zdf39~v>h}&0zMZaVYrbOBEa{s#Svqh3}_8;F!B~XQam&LNBwA_Y^zDx5KlhAoPCSF z-p+}}YMWNPMOV4r7p_5JrkfXIc5Klznw`2lw@+Srr}WZOmz(UZ+I_8&ngoOuCj!NB z$4R{UC0q5y_U1Wq5koE7g9p1{eXUtuEiZx%~Cv=qQd8_`|%K5xUBIe>O zlXjbK-vM?>&b$e*eaiH9p8mgqSYL%01uJgT-(zRV*&Ly-%k5H%=7jWWGv~hRc5xqu zdk;Z%A(ImC&_jAOA}DeIk-K354nn%;auA|cZ&dYNdWXK6yz2~38_%0}w{ne~t_rE- z)!sC-`Ysq*0dD(7in zGB8#i;adO*;}Qwq8Zar_@rL)2`*ka5ia>*(X4Z&6R*3iRd8)Y4VuYUeo@V)nCWR&VPI?3r!rW)FKL%!X19V#rDMFXRRp2q~!F`YF z4Hk%4uC39~voJ#H)@Ta%lUNs}oppzfC!6o)h9&vld`5elwWpvVH`Z~UQi;E-BziXsZ>}~+)`rKKyI;lQWU;U6 z8jCO2fQ|aDd=<2->8i`gMu*v|pY73IZ7m;J>b}jE)06JcuM-IrtDV%K-cw`-YyI?h)^>M(8H0uvf8!i1n9t1kbQktaX~1BX8&t zkzF}AgtVk(DyD-6I}&Cr9Jn#VL~a}_i@gY-A-*6J(#+B~#eb4tv^#V%kH4u~32meW z%*IR*Opcwf|LfA<5FPjq1Pe(#t=~-VfC(ib)J1e?h%eoj^{!>>zTW7uikBG zu24^IF5Xh~_1~xO<14oZQ0CkHIyq4udlMm=;vG(3(z^Pac$2|)O-aJUzX3f37a$+u!Kg_I*Oo`TPua}+w% z2j3Mo@Fp_M{&#gdC)4aappziI^(0ifn7;4nl!P76z&D65WR<`L@qiU)z9l$%zlURw zTc-%Y49I8^DA{T?T6kvQ`heHd=C>a7@FpTdR_OL=L|}q09m%vEvf=)KhMe(*@_R9R^U(+T z>;QHQ5Xtpirbqn>TUe{lbhvr?L)|Y^a2q}4f+cv`_``7JVW5;ehf&gw`$#WFwD%M2ju z_Vr7elo|b{WS;MYlxjH7pV{ougV15cR z9)^p898W?ZFArvHM}~R!YkfwZ{|W<9Pkf#?v_l-? z=-W`Mr-xw+A7KA96BeWEKo zAiJB*mWOdbpq|pxJ*&H;vcfsPgpjCyLZbS)B^3zlaG(nMkOi%hvA8I&{scdlB-;L*SZU_l#IFBu?Q1QDi3-&A2XD2D- zajDN%=7Rbp`eyv0M>kD^(kab=1ikAxtIaik>C-Xa5ia#fmiaau`pY7g{A=ik8&Rg< z5;SLH76S?)x zD&?g&PjhBBvCCiQcIGbkVV8fv4Gyvuy1_qTSD!_CU$Hj=@Xq>sP_7?K_a-Od0YYR3 z_@#I_osOBqi2rkxH>Z{Btsw+^3rxYw_BgS=zR})+ev)A05AtZ&nx~M9n|W7i9Dg2z zeJBq4VBD@Fg12tv9U9n>ypkphumXF?cSlWj>dUsx%3V>X*Q=Dw*n@a;5#$kyFt77ehC1H$BhW! zG}E%Zmmvw>Akw+`UT%|Ez~XyG1ANcqkWXf&a8kra9p2I6dq?Ix#&)S=qk0-V#+7B? zV}+i{-gN6xM3!09nMEbCKw^s5FgOxlj258*ILG>_B9x3c+a|dri4}_)7g|F6I za+SL{uxxz@YOiM}{?_2nef5q@|0}D0-662_>+ucl&hm|xo@u6Iw%3iLiCbO0g>hP0 zL!Pt}S>rJ4Hh~X(4+DpXOD-<(o}MhEZ7o}6yk#4zx0R<3 zkqmM5JE_picfw|o*_Rc1Uvma?90{hV$jhsM`5-^O$wl6Br@}5GY$BsX>g)mr-Ea|q zWs2Q@WAPIY;xU2d4LaM54!P@h1v1RH-MpP(p|`nZ#Jv-Fe7%#E8YItW@;)XrAaP62 zZ{^r5Y;u%P1o+!YM-qmYFD=?E6s#NTQX4_47DTER44&$z1#OyYz)l}7-hk*xgj^Ut?nG*Z5?G|n)?YHf`+jhuW9&f6@ouP$+$vTYy90U}g_qvyg0VC=KNhG2EpumIlbg?I;4X z7wZd|@CLAgX(nu_pG=^uIU!_XE`JM|XpR<}A`>gw(`R|Wjx|HQDPbTcB}mvj%DWhw z{R!?$5(~>gcz+8P7kQa=`e<(oq7vT9BtQKSjnhCh;k$e^Fwn^`&yMl(Y7`w#%zwss zR|N_BvtTE9wbUCs(_cHCAflg@&}w)ZWi-WQgbD8mDV2p%$KdsW-Oa!vsjhG;x6VbI zx_7L1xK*G}1rx!8RQtzz^UR1cZ%U#(A{aeLRXy%pu&f?2V`86g}&v&y+Jq=pQWFR*cQ$uGkV*X{P98k(kHg%P%o6vq>yqC1xlO(7FGFi171p;$fyx#2-)g z4)0?nW>EwdQw|6$W>-Jtx?AQ?T3vw>2ph(Pe&*DvUg|3MlPKLX)jQHDH{VY64)5+3 zurJ{zd44OgFX8&HEZQ>)ra8oNj*V!|OrPd09~L<16;T}!Jm_H=OEDPBE?z}(couL7 za`J@jY$$eE3xbQO=G$rB%y7{Mc}?r-UOp-%7f72xt|`PPxgmJMbZ<*UDX8NGP)mjI z>_&hJUBvO&OQOjhJUCz%G!?3=QCMF{QLr#l-ir1dx)#IuoyEJD?b8Kmz)?Nsz;y4R zuu@owlTFEZZ+kO$Jf13@HpANr&oPVf7;gLasqF{^F2j-yfrLGIv<=dKc&N8^xYsjj z_3t1L& zABQR|q&ONLVElRrCgXAYRpQl)pN=x0%<=vapqJv~)ST$^^;~a{$~5jln9|}rkb%XH z1mqWEop|aX?y$Y?&oc3zgYX@u35J(<>{f~J6k=?=-z`W-Vk?Y8D98!qN2gbLR}J*X za+jBSs07DT1r&rt1Be$^x+LH%eXx$SCk8T5a~r&Zfmv_ncAa^uH`|oY^Ii-$u*cx8 zBcUzQkvo<9PI6oRANJk@zN#ww7e6;S=Uh4ogisT12qm;6^dbp_BtR$uLTCzNNNymK zMhe9i>o{WrY}L zRhgeU#M)bk)+ttF{X-9~~+-qF=OSX)jPl(*Ymt{m^EJj{yZjE_E zp#R}_9|svLOK{aqh5i=o+uEzn982@E!3B*-N2{>XY^6 zgK%3cb)*H<<1{ zXy_#nihwz?(C;^x{k?^j9?}6)b#FAsJGu?fj}F`z;nciZDXYGOuw{+@ZC74ejIdIy z44l%iGS@W9%3RACiNP8F!J1snc#qaVlX*X#@xoU#ZDRg3>?05qbL{%vpMN5de&5OYj{y8pZEN zd>s9V4EA){;G+}^au+Ew@3%3C;6sR+T%e$J#~_YtQfO{4c>Hm$l6ZWfhU`xVcx#Kg2RbSS{FmOy6oj$ z#9at`c`;#PVC->7Z@u7T^IQth%Te`DXPH}}DMvE?AVIDGs#AVuG8)+f2y=4md4sk8 zO+Gfwk6se4laGS!KQo8J1TyPXa|(>;w<2ZT*=8QrV;vaGMS0)!Q;!wkExQ-r2uw~B z7a7mFYd!$9oEOJ|f6Xo(*c^BuP#|!f?Cv%fm^LNi1Cbe@?3 zjs5=yt2auGuc*6m zm-#5FZ319awP?GBZM)OA5*}8kAR*ECCC0$VESHs*6cx{fVTio|_*Or7hFW=%IT{sn zt8*&OR_9%0X28U>nf)cjL+6&cA6_|h|349pJ#&#cDKP2Mi$yN!38>a_7n>tEko!?N zJeEEUqy*cu^$hL0NDicTv00g+-(6y!3EIoT_smPpLj0V8pL^P@xsjiJ)Yu=b@%SE$ ztmA&PhO46#PA#}`AS3Ju$An)AE%~ajSb@=+_<>n1o6J9s=v!tQ;MqGs+*NetHgs;|JSD5cQPt7yD zWjP_z@r=Bfw-}v6 zTPwPtxx4Oy_KxSV@m+vKx}Z|-40chU-2~~gndJ4&7|7M>Z7EnoVdYTI$gy@Wqx}%v9~3 z&Bq!TB^T><-7T_iPqMtcJu&MoGpOFa#ry@ZdOZ@WZZ(G_Fzj|blg{H?g<1g; z#7Gb5;BJnI3T$H`yRe2cB6K1bu=V!_-~x>v7R)P#9v0@$>(%>CeZ8e*hRnEl&oKG(Z2i}*0F1;l{_x;Qc4JEaHt|2qj}+$Ky)prM9?$sE^{8_ zER2b;s{Sss6&=mRAAP4V_iod4h_mwQQ<(G77qeBy4iC4hKk ze-owr)2wsdFU|9`a-0|G5ahA!m*xsJ{~j~t7@k`{4LS1QwQN9N!3O@}e?-fpH&+u& zxzWqGVhrGd>_Zq?ztOx6#iwbV0=c}-bQNk+58Y#a*rL(v3J^VPVw7YBy%2v4h(TNu zjv?rUhcuzXM$!vpB5X!qd34eJ111A)C7C>bkj95dg@UhzY{aV&p#o833e$+NtkFf- zJS3`d_nCu1hdM$Y@RiV4Mb#h`Y-iHpU7}hZdu*gjIL%F5_R(WLM3pgn-I2=v=&uZT z+SQ@wPm!)(xX;|H#qI|=hXem&4$#~w6%$C?F1XY4zmntL4_vMohn7s@&ep$}sjZ>= z%`4>0M^oZMzc$mI<(LT00bLbR#jFXWMwGqU=4!dVvWjelWA&m7NsvH+sV{5V$lds) zXc%CEMDzoUWt8(WC4sJs28uh>KA?p&4X7ZZ6$(KS?&)Z_;2~V!*I+%2hUV%p!%&AC z8>{MS35^R7{_b@?gu53Sx|2XRg|{^kE|rw$4I{40A!-3yr1fq_MYyu8xw>gfS#`4n zHRPoQA23!V$9lC^ z)i&aBgrx(A@u=2o*GqEvq$odrG^Qdc3X1qUyZW@MBJ{=QT-HrG~d z)&pb^2p=3CzhxwHE=5-k5UkA$4!J!VwAUeo{?MSEJy03n^&;d%8t+Yhpdk@_zM-n7 ztYQ16@OBwobe%~+1qU){Yza5GYx{LHSU>8N&UwHbIMcb~6KM;yA8Cu>DI4pW8_H!Z z`G}ius3{n#dglQ%8I^2{&Id{kkR^a-@!1PF#pL8aE3MkXvezc1BSq*DGu5D5BCG z3E3e~e0=#}+-N^mHHK>|^qdN8Z!)V$jbjesEVc7@=2)Qj^5`t^=M=T)cV?ei@Pmua z%JetT+!(G2*VMVQO{b)q(ARfiD0X3%41%3L_B zP?U=-$ZATII8lg%CoTeVQ*|bx5{+Ab{2mJVLqT#tJX#^Au9cJ!w>@Sq!==Kx_@N%@=WYpwK**Vi}$JIMI$Y$>@&4J8?K5%%%=7lqP*J;^)11CxIBn zUn+9MNgq^@HMJ6mFG>iICr$dmIuq=D4C?I1&6MeGKjOMDxjW@4itSQ5A~r^f$8{wf z&$;Tg$ISsVz4G0dE+MG~xaB)Yh`vh1eL$j!W<3GgnRE0GhiuaYQ%&{s)M0)NP! zoce^x*i(8&;}V$8m|yA+q(?@W$n+cvQoa$oqM)zdUWD7o@;^Rd_CLz2w>Q&wu{>kO z$qf1AK3@e%1bmPcEPT@JH_fY{AJb_<@Gp=fP(wt#^VKkvkiTOMvwm;(jm*I?rc+Vn zp94>}^HngMfL(cRyWsa`a-<6*m_CVemTwRdS8db(Lun;OrOm3tN&>BUFW4wVfq@1N4`na zQk$>Vsf0R%P=5BLr8XbfEQ0ZcMb+aeb3g?1@|gY#i~Fe06VQAWi1NgONTb$0MJg_k-ctnfRqV-KzKRP8$X7(vo9J1NH~cwF{}n6nA%{=K@>MaHpl`E^ z?5E8E5!N)1>GIftk2SgCl&^dd;piZyPDS~tUKi#wojxl570{BCuk->!oyO8HJZ&bI zd!ubZx*0$ zXCdI!jz5{nk(pk~^sOxKn`xgE%BpHP zR{PprMfgVupYFh`&mJ}VLoMJ{DUZg$c3`N!&zhl0BF>1|5fNtwX(_}LXK43Z=L$3v zkf|!4HA_HCuni&7&9mkrM6;&DAw4?}7=NM^kdC3T9E<`7<3=8g%RCsDeK4-zU|bO$ z)L}r>o)D06Xh*{VCr=eTXHG+Optm~YL9Cvtc0FfiBX20HrU!*n4g&JY>aWk4&2TmN zWrsW*gk*5+j;eUxJUN8;4cK~OMI|`MU3C?1_oOl8tc2N0R?}ZF`)NgRZ&wivmpFK= zykHK%1AbS%V5X(P49TL}MNY@n{DJ*S$?5VIQA;(Hxu;>5|am zwx}9JEM3l|!@ER{wo2P$4wxWwFXQu?mV(#&3r36yj0>SQ?lDJc9W708J{@f@%ElBM z5X^Ru=xF&EZY&*bInuR`w)b9K&H|E_u`0$fLCvsv{T-90w*T2&-C=1ZaAV*lS=vD_ z$ZQdSNqWmnWJ&T4>l&gw***EnaQA0u)jLzfy)WJ_a!r5 zkCTCNWt=)9Eyv0D_S)2k>j-?@-i=5r59NuqkqZ@T@Jo^23I(;|xDz=OjDN1j{RF2W z^JO^SjaOg1F9tJlWIN|&^9jeS0b~4^=ui7j+A(^omcN-NY3oKk+iUhx^VQL>m_x+z z%`I|*R&}&$*7tWEVNxvt6nEblEYW^O3*o|oFu$M`fb3XVosa~Bf zF5yXR@PgOOAuvqSGJ;qb-~nP1VMI~2{WY@+>{QHF^kc;WOlA64ubE?YkN9@z#YjSr z#=I^@NLoL2kIG*+?;c_p^Uy`#`ApD72&E@NXvG;pHS^0rA2s_8vroF_cPoJp&Rd5< zG5Wb)HV%uwYI?(507q4@cuALSav0m(^M-k>FGEO746ZZZG?xqz!ubb#s?kYDJd$va zH@#`D)T80k6jRY%jHdHjGMa2}eqmCjCjl;TUbOT4e(KG)%x>j|fvZhMXJfW@+I3v4 z{wrw%&>nqC&wt-#tJ;qbf`U7O?tDCw#!}+svEJXJUWEImZ>qoEIaE|TyA&r$b>C+$17&aqeUy>RNby0qoa6F|;3WMf z5fYJ9jQ0w@3sIvjl{CvQ8nS~=bDjQG> z(`XN55YK%44Vyp&M9`RFk+Gx^5ZLF&!9GWQ1O$Z$wBWWh!l{u8)u4AxstgZc)zVes z1UoHJ4{JY{QE;h~;1X6JvVdCro;ek95P$xjIUFgkA?4opOj=||KL=u8?;qz(7_7Mqk*HGtZhovuX#je%gK+8UhnM8Z_Ol59uaW_+i$5?|2H-kJ z2cFJyP4l`#?PF=q#>uwb4535t;8CxAXkG-4D;IAVEV@^~S*g)HF%1mheS5X}J9BL7 z(+AA{0SspUN9J(c|KhzMF`v@zTjtcadDwUcU>l?c))yu$~|vY-UlE> z!JSs!Io#^44t;F)m7DQ+eiGJSXi@;KhJ0cULzrpQ*~yr}C_#l@bxquk)_r2;diUwc z!|IuO$0u+rC4+$Za>k0H!j)d3AGn23-s6i7`@id}LbcXF)%jDW?Jj7Wd>v06U~l`> z9E_Qnh|*rX?LP2JlOJmO`P)Ji17XReioPTT%^U4W={}MLox5zVj<{ zw=JCrN+&SiPcyyoYxDWQ3Pe6JOM8LQQ5bR}<_E{b?febm}k+$>nlvJ-@~h%)BS>oEt-neqC@ z7A}N{+g2jIP52D5M7>iFbuqiDy=~?_5&7kMR*V-JXUOX_SMV!F-}bZqCx0}j2NDmv z`Jk>_Z}u68LlEZQ*(pz)QK%h>T7oTXm2$Outan|vHiI+TUjRAitLW1W{1pYFOoU5}s&a}pWzZ5dp z!<#&=5b$Pzvp>uQMmYLTKW`DQCGr-!614T8@6F+?<1`nyxCOU$^RpM1yT~4vhRNXd z%KTRojeNe%o4+o9u{sd23XepvyniGFJ6n6E19e3utFNn_1%$o@e^S9S;G;+e^A`?M zXgA20P+i)+hV|@@v&O@>bWfbcfF#81SPRUvq3Us~H5zZ7TD+jluKN*CHjhHM57ib0 z`l)Qw8iiQ9$Cwsl?Vd}z+G$!tA@2n3NcqNktULAxOhv9Vc!AIrrjnON@bk3KAS zF}RS0$Uu*J(6T7S*PwFz(@|C-w5Q2nr7=&OlKvELQ0$}e2PnC+O8`fe7ZJW~zbdSf^1 zW;5blN^fJ$igEKmqp0>SjfCr$=pb@@yCBh8Kg2LH!Fyuyw5jAVu!^ZK%f*v4mAw0? zURDniaun~7J6(=~>kAtnvakjuk~q00%sIXjR8ROvK?$mTqIxJ~jX{@%;ywvki~X#N2gtc;R&fW`Rm+mGSl96!!$WD- z#t7?roUk72`Ypd=u-kns2-bBk@cc3C)ZTevf<7-S9cA$V^IJeIO}8!wQp>Xs5v0C@ z6mU}nsmBbpZd92Afz+=JwfX|7Zy|sWsioqsiWLK?Z(y#6)Ysrkn4Nm8+A`;8%%*4X z0pm&n`Y~J7i^ObKa@UycqORz3<*=XvH5OluPUe!-)>xw~?!p7rm&2^yNIup{=3C`j z+{P<2g{vZG0C~^ku^KBgkg7hfu^2vHfrm5i16GpEnv85ApJBZMNG=A3+dA26OFjDHnYF@dX)rWTxU^~YKAWSzoW ziXc%IP)+AsrJ941MEi5NxV1A(j#9EG#26m;C@pFKc#pM0oqK_mH%OmEJCfq*tZ#*y zHNz^6Ltv{z7dk@%s-MD2o}OXlI1;ya`I4Kej$EFZW0lIj6@>nPi*ycqyfeqTJ}Px4 z3(U&3%7@EplD4zm)#SzZNW_UYcBfR0&4gh3U9L3@n_9|D;W!yA5M!tdxsoL_t>-bo zi%`1b04>%yMLoB|V#KZhd-Br?Ebi`ER*JK`$&Khok+F6qw)wev)=a&{c`pNqE}vVR zFR;E`@cWd*y(`bE(+k9b6|lW@HFCD}dIrB@^!f~>w;ns&>PLR?D|RX(nX^)n%w@-V zAz$uq9AHajovmc`>qXWuAe`JK@eoe7Op<;@L?Sm(1h%(I}mr)8e-2V^DJNykNPA z+k2J^jSoD+Fof%UQHj+}TVY)S_HWGz?9@j9*Ze`#laM; zvYH}HNz_*!Qxa^AG4DS|{}h-~wW?fg-SsaRQwlW98cA|C5IjqC z2|k`RLCsumjmBOjIs}hrQD-1LYpv#4S@_m75VcPgu(_yxD$1ZyuCvqR+6TlqF?YBO zOLnA#>#g;gVR3ek%&;iu#9&yYnGOtV3n60=4m~k6!#c6TIu;=xxmoy6*P^35P+=9| zz>^u41J4=glUf`0v;rQ7aAR$HDkgL@NB1ulDT3CKRl+mPHuX zAa?R_#w8ebLZvke+am7{LrW88C}&uFAn!`)j^oaP8^_A%$^vxqc zM0LQvcTgRiLWO|4>qk@ve6O#A>R<~YV-V4ONN})b=>UB=;BrO+pQF;9H@VyN&&5hPJ{*r*Q1d_Z32W#ykHoUFOOF{ zPq#+(KVZDWY0$z+95fkn``{Fm-*ggmP;%knPPC;?vOb4uh&Rk#hN5eL(D?<@qFDDQ zNN9cjbgLg@y;pIKB8Li5`$FE_7||{Ojc*4o_|bR@&$Ld~E6d1Sl$ z21zltyGIELIXzv4cUh^}^BiIQ6N1NB(*&-m2Ct2 zrFLW##tyAX7H&WFX12EV;S_$rfU|(gxyZV)gWxVFxDMN&XcOcx2W`RtHRNJzx%OkE zNche{%HFCe}kCP37&j<^<9&yd|`f)z)WJHE=uj^-A{z44+O44#U@420mTh z3N6D03=%BX^$5ck4TLBdKDpmfFa)yIdpB7b;QP~vETU$C0>XuG~!}w_Eq1)0f2P^eCi7 zcN#m;a3&seQT;b*>a{zp6SV`dr~e#+Tou04s+tx{-@qe6dm4R|+$TT-2tS=qAG#Hl zR0s@U@%X!}DSBCHGEjMUSt$kb!a$HO48Wy?3PSzbNHQzb&sH#$I(cIW9nrGdNQ3Vp;rz1DKqgR{PgU3a(n^MEKS!rHs(ltvp%?ttw?>Y@6->H% z298{Idd)pzeQWKM(&!f5<>q-je6cv{i&PD9m)rRr1s1d|pIm!oX zvU=@)Q91k(H9_T&tkQmM{T;pQ#j&z?c#)8O0xRpv$?z*ogGgvS_BW8G(ezn>KeN@k z9AbMTIIGWtS3mK49vR_HAhGN2jO(lHGwejQ`zdRfdVaXwRbBpol@{o!9(=&cPU!(( z-|qO+la0+6kL?WDDS|LnwP&ckL#+^u!9QnhWQMdt!RbXzc?l}_w_*%Fler#8tjCvN z0DQY#6Wev@`T?VwaDEK<4Tl(|zld^U_^ZxN0~*7xy^GQ13xsurucvH~nr~9!LuYjH z+vIE9`@chASI2ks_}^K*^YDH;f>TT9yXejjWo=ziTO!|*&{{diY|QG;bF1qi)g_4= zXm33F;a21L&kjQ53o8je(Lb_)TxgP5$q(|A7HsVrrXTX&&zE@+0C3-MtM71hu^$u` z23%R`0rL&sOkv%^uVs!>>8hsQDX>xo(HE6$0t)3BSQZ=q=Gtv>aD@ZJtk2AWM?YLAhNR>TgP0WO^H@*4htiv0j`SbEh z*3HgaRycX0myFbf%L@t%3KtfZ78aE^*eCtgkabB9_41*9P^q~H`Bun!pb08{j>DrrLQ7T(D;UKS>v zvcaL47VQVyL&wR!l@PopNyN_wwzb6@MFp!q+H(t{%bxs

r{UO#Y^?@h#r#5cgzya<)NdtWJ8; zswfwmX>Tl&jTP0qUaEn2ry%<~=s23c1s#EkG0|}|i^{XQm@hmrjk_cGk3R&u? z-&-r=#u)0BbL^bfy}!5i1jZy8u`tg~?SOcjC&wkB>A!J(>h}K8+7+dA7)&1G z6Fw)ZOP>-qS}~+}td@r@z1c>*8P*A_m2;M#)i$}T)>AxO>~hzbiU&GKsh?iP{<-;S zD@W^yrBau}L~#@f9HJ<3_vVQ6YcngN^Q-H2z^9xcn^El$iz~cL_~JiVUt+Fi@ps-c zmUF9YFM6!jJ!8E$po5GhaWQ_z@r+i-JZtgs4eGwt>Cal{L_Dh!*kZa$dtEdaosQ7H zTx}|T&SGGmt!zIc3{kd;wmKt1tB5terIM`?=5p2Yj5QQu<8ADgw_-Q3TNIBCt?10SVbPJcBoB`tOz#S8_TF7eL^OJ=)pKuNXV}1rUn(qsFrp*Tv&VS)UTJ2(U<@m5JtKkTE(=zN%?IS3_Cy&z7J0y1;E_mD!sX-R!d-KEixs)_e>{3o} z-g{OtVqZ{BZpEKe2}B3bpz#Hs0YNxf$fc3S$T2H81-{lYJGN#TNk?e$I8F&$Jlfx) z2$i+0)!no!*@%q!}X86Cv>FN%Pn%Db3?$$aqxz+xM-0{|S-)H{dwk+1kFk_)r3R zBa*xXkqiTOH*bPQ@zIMAY=O9|W`#_9ZIZDpzoZBk7K-O)mLlBfvZjV`Sq<>!Zs=Kj zQQLWd=Uq}to1W;2B|ap0D(5pqhM*wMgCW92(mhk{EVlcpV?VH_3<8>THN?*|swSdz z7j^FkRzIARd3h~Pu2Y^wO!S2S$}B~=MB)wQc)kgd|7y@E2qP$7xMB;B*YaK`o-%VJ z5v)Sb!BQZ}I0cWd3Rb>=+_QoaJE*@VYnEoYhJY#}#zqgH0BA<~E71Bu`TImS#BFDrm_rz!zHX4=EK!tAc z_=-o&4$RrNyl3i?2%ln2H3G}RO(AEbJfkeGu5i9G;iUedHE;-Cu#8cQf0p$!;8N36 zNHj5*!MnTlDlvQ!FdRpeL@p%%RaYFaa9W`xS-9-12Npd zBg@jW;s$C7>k%ZiFS+R6-}G0D>+Ig@v}a)UdGuqe%UtKKcNW%_K1vZ@^koeG#O3`R zt0Ds@QGkKVO^)uW_-ncCLPCs)yZ7Ns#NA~2Icp6$m3#+`y9qZ$t@$j_|5#M&xT^T> zyXcO%x^KFI06)^?o;@%5WqEwl1-aP;5q>B2Q;!nVdK9_&2Lu;AN-#=~5>#J&V)bbe z;-XU#-v%V^3x#5gTHE55;hun7=Oj@c{i!J7{=*2b-c?e1}F1O;HMXgW0_J zu2n{zB5g$g=Ms>jh%hn&3RfdQ3xSDJSWU?1Qv&TeKCkO7!vGT4!^x+l`j@0m-M<4tC7#tg{^ zn7kVF59W^{am5>J*9xwF3G@&Jo*$*Ujzm*eAJ$ZvJ80)o9tI*;_g33UYS!mgAGr~e zqC!<>va0{wO4c#ZWgQDRF}!iy5hV%)Eh8vVO2B0?082Xnt|s6~F#uP4fDR575%Q)O zkVPJ(Mz+}mlnd`2@OE|wz&Qk@y0qhH=0pLuAoe>ULnNpURTc}R@CKo`82GZB#bThn zEOa9?Jv89@u5j0emX|@u8&>n99+!~W4i=E2xARw`kxR{G{Gq*k)(IR$TWn$+8oQDu zP#GnM_pW>e#8uDEX7W00Qb_HmLUlMH*L`Uv1%m4G#P}f)$asGoD(O1H#n_`RV!A7; zcjJBk8JG5nPYMha;VZ3^QMya>H<}U zE9mNrc#DcIaT=rYM(;qhQs5L&_KcM}DTs++gb^_^^nt*o_s9-H7muaFo@9sVCOZr? zuXU_Q9^@T?rQQ#jMVK#joD4q^*%ug@R|{nwHVmrT@rq$zZWzQ8DGIxSv*j?7wo?u) z0ft&06>{~0wIuTZZ5qeD@FYTI#~=E={0;4I+d!i;|C=!*H>8j$f86mA#db;XCCbM*r;=1-A#`B)@X6kH7|0&Z2_mF6y_8> zT+mN!pEAy|Y=a?IXuP4Q_JX?=e<-erPUBB!n*_N@oX!e|9ry#f|vampMkxAH%^iB4cE!=@f zXu3x@lg4%T_7?$@{bl#zU@aZsWP_0nP3XC^v%$p41|vISjAmq3zK^P$W7_{M1a~3J zNO$vj{yUZvr0Z{qYCr;<9;tz&S&9rp2FW`-U>JwDu!t?l62ut6Zg&TBCu*!SQ!)g) zP6`4?TEKqcHUXZb?tL;oNgezL?tnk@EIfvIyMKHXiWb&ZL=e=oAJeOpzJ^+Z&`mv_ z7*Ah}+mS?FUYgqft<}Hpk$6Pgx7Lj0F2=(AWuaRGj*Dc@N`hUusV zK2HIkhs^xgch<o^!-gJ90fSDQm-?{OdD5bZ(@Sz4QeM%Fv2~6DXzSnN>~jNnz2VoWOFBZ&gZ7yW zEY(MyZrXXaOob&=0poxuWwi&Z7mR~?*w)ULoga|ruBhSC-DJQHj8YWz<+eRVcQXOq zJejR%ZJz7lO|wd@9sVYyt2b=>d-x{MpuNzWt{kR#4}d8+*>q_=wUeEr z`xM!woLBm$5&SQm?Od%9rn!giThIs(?jpA=xA7~+tkHi$m3FZ&KzFDnm+o9eEc&>M zos!m*SJfnl$7M*vmH=#Jld{}2P_+*0YA<&dtUFqLonSH(@h(?-iM5G^0k5ImH{LK- zqfKc?E)K8W0z;SYx6+(RoFebA%Hj%k`ignlN7=O={tDN;t>!be*R5 zB-;JaA9_HktX}p2JZImjmraXWt(%0Xh}}dz!t3P{?md;gU(?HOK1$vewc%R<8#t6n zgou|@)Bv{adPVpvi03e$WCfji+s9`ev4Tha6=*v-3+?W057LCfaF*g~An4IW)HM^~ z4##~g24+6Mba@8b>8Fh3XI!bCNp?TqI?#A>I?`LGB-vSk;Y2QvKY?Qf;PY0x7=eja z6qYPoTmn~T!20}g)b)Mrm3e%+4nhtUy|*u z@EGR4pjD2P0@doiHXadF+xprmXk<30;qtzAx;FWXdXWl5^>kl*;tZ|3AZhD|Y(cjY zcakS&wDJWqVh)6k#VWg>Jrdr&ZUIj2d@gOQkcxKc zV08Xrminrn?L>F|n4f5MgnDPGZK~q_w(T2LE=PJ?fBR1$(@bo&62w%WSm?3Zewo@i z-yEQJ42L@REa`9NEGF@zt3Q`tI+O?TMuWO zpzcC@;5S}iOS%t0aaf~;gW@U`Gv%b_qbxvXz}sR zf#^LJQonlP0NY01k|mJf2um;UXxM<`x+G1Aok|zWIvB8XaG;o7IA?K*v?B_msCMw2 zn4oc(onDuM4Jb?PPO(R%I4?Aj%TX~0{**gU<2ps!Uv-hPdZL|OWZ&O9oxAZz_ zXBYyj?x|ACOgDr3tXoS$bS*jizYR$(@<1G$bewtw>tvZ+%ZVo<^N{`m>rPj@Q)LU3 z2jOBcnp9v_>z`BYi+IJE)@nhq1lge&9Rp#X5V8@%%geyCB}d}|)jer8_K$IP7xj3W zod%oPwFG0o99Atjh|p@lL3kK&JB_GZ>!bx(z_T^3+4#nz9fWb>OO2Y51=V_UeLfxw za+Rl4%2Kb?4?7g1DiB=l9%3J>_j`sdc$YQks0u(b?!$W1&8|UbA01|IRS&1z12M$! znZ;1RdWba1#U3JD9Y+tfGci8F>m!cude-2X{hFnEjBmUiUl)8k@8k{vhP3rGFuwfi za9M5i2=iGkGD4ALqesX~xsefyjbFBNcZ3&XaEiB~I5^EBy73a!nI4PS1vlBW5%zFg z8tud!29u<6VLuS+Pwk;A``N*h0)Xk|xT z&k%=CbQZO>JZk^4n>}6)%CJYls@je8&CNGkEy=JmfHO0gGE`kN#~y@s`P!noc9gwQ z*(2?x5^LEDrg%Fkvv{YKLd>BKU6984 zFo5u&i*aF3^_*ZoskgT7!d8G3JDGlHf}QK^BlA!VkP&}FY{EVQL0HEZ!m2bdmAVdb z%k%aY{U)6YDfjoTBqUWP0_kon(SRa}Jx4%ZK-=o9J(mGqr~i&>*d zB!^|0%(|CZW2V^6!}M7%Nze@$LE<YsQePZz?7Z1sPY&_42p#|$Y{NJ zhP{oZpfgbM;9UC|xTO9eBB=+BInaZ&%hnkuIF1{pk076ldvItk&g2#ppET2+-K#_T z?~s1>OnVb%@fc#sH#6-5y$gscF;nHuvWFKULOWTjyj0B-5F__MB`dFqY;eRZv<1VV zWD@Za>K9G}JR1mJcM2Hl=2`a8BsT~A5vp)tfQg(pX4w;+%Q9VEEGtL7t!a67W*|j` zsax2N?!5`O96z#|8e=_5k={Bm-yRddY~>JRB6}uLwtcrtN-X6`weG@gPx}o2~N-WU?{Vbxmt9JQ7_K57dcEJ zgyj-qi${jEK?{&9n2F*lXP!N6a7gGIjtvYOY?a_4-gR?kk6%K;o5HEOXr6s-AXiN+ zvL|C|&f+}O7TFDfQEFe2Jp@UISXFSoea=vco(fI@MvKy?adO=Ax9lC9F7BK|^({)q zo~F;OUSv4)4;S>(&io_zTlUNY1c|ZYW61~lF0hlhXRcu<=r^nBV=o7Mrdql?kVfx= z^{OSo?xg;*$SxQw$cPh(x06t_=g~x>J7x4nZXc!cie-!yU{{&W}cp!(QPS zj=AI}(Y{74UTPPrcb3@6ctru`q(5<#nhSRput_Z3ZK?g5o?r?k3B(f-O3))sfO>)@ zO0-O{pi+zprb@Uqqr{#|{UbVnKg;pA@i1G7P*)H3qQsL=x~qiFrl}rTX6I|d!j*5e zYk&||7nYn*3ay|=ShiFK$z&k~R=q=&3US4;UO#bFxwOMWr6YvehCZyqAwtJF6YBGb zi=vd^pcX@ct#rv&%a_|}ff4HM<@TVGB$hnI!vXl zJZ@1>6c;yIH&^N%yx55_@4|YOKJ&j@DepOYO?r~;K4Q+s74~VG00(x5r`I3}DEk6) zKwZgd_)0qwmh3R;Lk}`2dXT1-AYEab8$irxL52#gv$NDSmA37i z02wptfU%y{^8}~|*(C?gmBoc~7nc_0l@`hv@8^>2t+e;4q_y?{iTxq40W$|rT`nkG zEl{~!q`7PDx)9}X4bV9U&LPVd6fFrslOa&&5b7^$vB4qO$gwu#ls?X+6#UNRIa?R( zl!NQf3d-GA6gZbBX-v>icS;wKMn?gVx?gdg~iy_C)S*+bO-0>uOpX z#ZS=M3X^1}mKNE4xn&Qh@EVJ%dJ-N~l{Ia4UP%ZF+R)-Tvik1+aW_g&A-i;@l`dol z<6t6_t!62SZeG})5g|&DBZ#uECdwkAPgk);7k!ka|Z*R*O1ygq&|#Phj22!*a)?FNNv_6N$)2$ zy2>R<8DcC%yMbfxNRmsB2T9&qB_zqEP?)l;0fRK3gVG--P?~7h5pihFRo3xfFW%a8 z6^z5$WN~dY8C?c2JPAsK^>59LOD7~do}(i+CKpAseBM3$nou3li=954(21n%)-)2@ z2glnPn!eM(Nv=lYr0o8xc#}POi0;?pfP;RU{puwX4Du$c;;WD9+D(3f9wxXoni-?2 zh44Yp%lX+3IL!xG5p!q27`36=PKSfj^GK2z7K)b{h_w(wP8ulws0gtm9=}WM=zf_H zVppqQE3|y?a2Gv_YaEeX?

WY--q*}YvSJL9dy&V+h98?s>}fbH?zx`wK~^>#mK z{^&pWG>K8<(Vx}Z^80Y$j+;91owDHrRuELQJ~V;SUsXkv38bru!pBv|!r8nrAlHH;vRs7EfJqBL_>- zxSJ~)U(1y7#xS*{9-_?PM#0|WIdaI$X^Gv8Z~GWfw`{RJ*+z~NQtxDT!&xzEYsOzB2LFnP? znyq$nB-_zI@%oK=YO9^6mleIDbXrV->6aYPr>EKjqO#<*(%ZN$^S0Sd7&@px-V1ti zn?3(1jbPnT5^>o%iK4)9YR%{IZY5K_f%es%T*jtmZMQ>O;p4yya!D;7yrYu2f$$HV zYA?_W$hbOP$;r~yTiay;d>3-Uh>6>>zEo9k#ir`X-O5ia z?L>9vDR!?&GktU&&pObuzTMU9r`Vk%Fplmm#OcB!r>dkDdxp21IM(TvK0r66jVGpSie|nUc+@QI?c}Oa2^feOsXEf zC798}HncA(tX|wVB9{>!W|ft=jF7^>6gLkc7lHxd`?#NeA}$9&iQeuh*J%^gzFXj6 z^NZzXA{ggyQCxj{hCR)B81Xc~>&Ml#AsP|zTRlHu@>^@qhUx}I z$jv*n%g3kHcR#lqweuB2HeAbDZ2pD2SKyvO7Dg&>+;3vm%fGN^2hvslbA(neLsG1D zdl%`g#pl?c$4!oU)rEdC(2r_XGZ>2qY#^$+Z~4ZHRvzARs_J}jelJ;cmNz5$^7HM2 zNV2HRUq;?H7ud5R=|VUC$T*UAKvV8Dx}NpWTc|^N zIn%FXdi+j1yU>F_k?AiGAwq5^dm9xDHxVjYF($ONs%c}WCS2q1>gg;(lettCY5EMN zON9M=G!aQZm+5B`{==PiD3X2w(;sB|uXftQBI(aC{nNwYpJh64E~tLHpuO^j@IKQw zGkx_g|5W^g>2mqn%j!1S*VPj6%T2r`i53q=nH^#;*J&Aiag2kI`OLjKGP?R}lm zHmKW+laz`K)qIuB_*K~BX7jWD#!ds(6Ia=DQ1Bnb`!2hI$rIF~-8SF7c%MnM6twQ# zZO=F3XBfX$iFgvOdos25@PQzjrfE~dPj>{Z*6i!;9|GV*^b3yltlZ^X!VEstsMg*H zL=pZI@9`gcMBa6yJ#mZ{v$T`U8=we?M%o0QFV=$i3mx(=B+7NZ$-ZK`CS?rP&qBl+ zM`v!jYmv`+{KF|vJ+*rECcAE6%<`A8yXmUzW|-IE-hnT5>dp3~2-ki^05HwpbXDVC zHyK@F50hf-)FPOCceDLB%qbOn>e@wCAGKmPl<(i(V)q)2;QUCHcL3wHYm)W_#F0ar zcLI9vXhPAfTkXl?>9#|M7tQZ5FTjggtYQGv_;OR(HumG>^{u!v%|K4;MYr0?w9_1e zI&QzsJ_SGVXqXy#yPb!h>+$otKLq-!({H!W!S_&ncfZ44orS1MDDC)#I^2rBQ^G9h zJ0;Oc@Z*5d4}faN9rovNK>(8dk^PbP$Kq7(**0JAd4doR-D!V@K)C0Fe4J|KnL#+e zsC$EfRDk^qS*>s0Wq%q6BPb&3WMZT=++@lT3<+6ILYAA5?IdKo3FDlEac;tRCtEcCsMa7B8D=IBqq|@@}73ME+!<9te^l(!<1To2)6W^yb zYgFeO`8eWE_?9>mCmP3J;2SOm-RlGW)wuiZquGfl-Muy0VTad6^tEw+x_V=NZDn1kvAiK1u5CZgXgk_h2JQI%14vm@ zxG_`~Y6{oXt5>Tqo>#+RE}vA#01Jg#y>>vbu?&H;0i(H2&L zMZp2_XiN=Q6rA7l45RI2UpLg335W#{8XR2L^DLvS<*=N6i-Ki6cNuNx9+tDTI9Sv3 zc%!YNLr!vKXvMN+q0;U3;l}BqiX0&Jm{0-!nKLG|AZJcpL(Q1b?3{({_L$J3oJHZ< z<}sm?oRV;TT|*NhQ|07Wmo+xFR~T)_`f4s`ebfC@rcMn7^Lw6bv~Bf)aX86w80({t zLxZ>0Xj`dT76 z*hdW>5)7u57;OuE?UWaU*EetQ_ebqm5)Abm6KZU#s}I%HhQbXEbq(t7CBYxfbBwk# z)!j>jeQn(hwK+XlWrmHmb!uFRvo`Zff(2%c(Y8U&92!gxI{j67f3U07ad~E^crd6- zAF&6wr2h~9*S_9pTN4?%dSPg=bjUQLZ9*h1cSX3N5zkpq56zgdZkdo%rh5FdU{VXN zOPy-8o!|rgAMJfST5C-k7VH^s5>HgxpX?buK=q*FZA~GPZlkKt2wrPmXtbTD0?*iE zECtLM>1 zTd8l97ya~V-%HL5PDp6)kfC-w8ce?A+~7o&x5qxw{KRPcyW0G+oqoyr!E}3GxU3@F zpc41M)k^OHaFCgd4j#gYNoDsOej0l z+z3`ln7ZnU5E>SOM#EAh+*BTF3^z4lDjPG~8;!OaU+;x{FHH;tSA;@nFcey>M;QXM zsN0IEudW7dRc{Z0A6JB`Dnrqo4uPkm?$9{ESJpLz)7tBdwyIe5S2*<-9jS`!5V?HA zm=Jc0u-jqXf%V}~bzNgq`$nT}y|3<$Gn^e#i7(m7T`Qc&=|dIeYTQe9zm!p#qcSVX z$7}rS$mhHnm@7TZ_I3stc9|5C(t?KQoGf!jC01i(h)o@aapZ`c(j2L9oL6DTx`ULb7Xs!(N-R-`aGxl;<_fV`-X6NLm6AptBwUP30G7hRU`n7%cXUT%0SXs z`f=^t!qmOvgT4C@*P`-?&Z<5>m>P$5*cl(p9LWyqrD#9NXxrlJO%ZZ*;rxx^@=Ypj zJhp+)hXrl*a9OZxXRn~zQx+W1;(d+>Ybmd8CM#^;X|$c=t5Jd)R@LTjENfUdyR0!h zc_K(KLSVr4Y;KLAasc4o8K}1j`yFO9TwT#PhL~Plm%pSGT&EF`6?LK7x~34X(KS}K z$c{QL2UHi*RXZ6-4`oz@E6bXzn?|;8HQF|J=ui=RTM>3baZCs0djCm>3Uo6vsETl? zLWe5hqSQ51G`e-CG>ses*5Fju5la2-Gdq2F{=z(n1VkBFT^D)0i~FswPpUdDm}y>Y zv|XUCjtlN+{pq;i@_>1i(Kbo#ofu43wd;eyR9wtOFVQ~+dJ&WhHPwZd%wN?W0o-|H zz!mv^z;zRkSmUxNz}mmsM{0UbiND63M+RIt+XpzTrgnTzO>J51;VdeSfTkQ_$UrG? z$bA=ApcYl*gvUX97aDmRVKsobvMPeZ1Lf+Am+eaY^KeCQPD=;DHWn?;$R0Be zm%Z`de}xodQ({Xa_M)2hYNM^vw*u@%M*{57i+@gk|AgpZ3xvyr3d?ThKm{F)p76I$@Xw2O;Cxi*u(Jfzu3d->?e;^VHAZu!{mk>d$ZBKHhv)@}_-C zV1e5ErhQ&up*r?0dt_jd`uSUSeV|x<{}!5CtOmV}Q7%z4-bMpU)md-b69Ogbw{P25 z29~Mi@1V|7b;UdOg2Bt#YJxGRs(fP=cynW2b3-|{CubT~D03g|h${*7Th+b~rlhs| zP{%6u{XYAzfz|58{V@L?t$y5ZPY)cUro0QQ>l!Y>z`$DmlcaXOYu`8FSlvk3mT)wK)u!ZpWCZq=X}GQn~b(=4l8ra7xo!FI|z%ctxx#BcjB!!C(ds!{0(Lgg6X+It9-gJV~F+|96wsW1WILD!Yz2;vahw*y`Od)JnUyQ}iWWf@^S!{;ErG9Zu0DU4un9MPJo5I6rcV zF0cB!_E7t5mY%EHx(4%biq7d4EVPT*i4E#dx8Ml%%WlDWI8Pt!7W^5`(=FYD=iofu zrAKfm&eK^vf?IK(zNH7|V6l3t2ijkvKI{?9$9Z~8&){U7r^|Z=ci}w!kDjQ#R82|1 zKg-qj1dL;aQVGFKeQ#o`KrX=M>sv7-7A=d({pPt)OL*e ztXFV&|26Dg^!h!`F|1W%dk3G&l#_H<1II#bh6_g@q9;znA-bTDhv++=#UVPB6r35? z8!qR(+>eS=jM*?sHl5Jax;Z)6Xpa$H$5`fsjAg5fOY>HRmKPV`&O}MxB0NM>5-KXD zT2tPDQ)?FlGydm|bkSBemHLQ%dP{U#?tk`d@SiPbwa<#O-M9QJ+x^;TwH0iKDMnjg z-#HRWOAw7?$M0zPS`eJ8#4nHrx|T08ZE9q4ko-P z+y8&KLD%Fz_VAWtxdT*g7|EG!iD(25H_MLtKmT9%s3z1kkJvAz{nG_L-Do>WbTTcR zp%ry-+h}^PwxSAF*$|ySz*}MD)U#ew)f8G%SynMJbV74YXhB`=7BOQrgkg|GY?KC= z#u`H~Q=brq3a=KnqK;tgJB+qp_;5lN#raDeN(gjn85`OPFN@F!$EjmPsIfkLLRDqe z3D5{O!Tbc@g{@T$6^FG1+mt9}LK$gkx_gBUjZNaSAtRuW2E$#rDqI`dp!rTm>k<2* z{*e$!@HzpnlJV%se_JP@Xn(JvV=p>rv)GAm5(0_nL{Uv>S$=-rlA=%sbXX%X;dolA zscL;ybyd@QO^r2m70s|(>FEIRVYVAWdFv}1NJU(Y<+U(zH8%a&bV4&M>XK5k75im1 zKS@{>dNRst0a&XS83r*uKfO+9ifKM<`R`DtZ8zE)eQ0pFI_=0~U*sFS9=j-uJuKw_ z_)%0_-`q4-BW`85v1tSBY8#r`&o|o6_O(n6VG^c#C2>kB8Zl~w#^n*C#*Tn7Z9{lN zcs&uk8Fsa%a##~kuh`gujATu;ieVMP4V+D}V@sp>sH$OJXp=`LP3>!pwiUkS%ZZl7 z3qWQOCl@(RNELK8$_y1_RZ-Kw#Dq*SCW{VntwU0w5MD#b(OfnxraYL1=R{I~k7W(p z|07MzH`)-i*!A53%NQ|kgvPUqh9Ao}$u1Des|5o94sL;DFekjRI^0m(zQkyo?;rSK zo;^~NyCE!GJXfP5Cw^X8H9W!AgY7$&VO3y~Xq#!M^+SSb=|@Xro46F%dzu={H^PF_ z)L02)8}PsVI-~7MmGw2eI_8K^S{eM(WD$iB_2xoDXR{TMtM?ZMd#=HkqanPa#aqfBE6e&EN4 zH^HfHBzb43=GzU`=%t<6-ek1ZieJ>x#Fd30jS#6MRJUHnf;nx%?A6qVtHBPczs00B zg|^D*8?i-%GT3!t`PJcY!$|$JmJ@)i>=7f|-#6Oc7TvKsR^5i|^jyz|T5z&0VLX>d z2ft?Rf6&OGhcf8MC%w_*XlyELqB%^+pt5e;dTp+Z+Gre>?#>zem>J5*tF6hLFZ1xm zdT_#U(+T){dPoZ~d3wTrL=LM8H>@XH1QM|&-zG+`P}cCj*n98zxQeT9{NB5g?p;@{ zieW+7T6E$oyl(L{cHMC|Z%rE9*esk^<93b2+cQ^3@Z z4_KlN^8swHn}U;kx^OHV{Ud3lBf;ICDemBhYBYqpa+~V3FlmrYiey>*O9(XH1zCIDVe1+-H?jHf`ePE-~$>-YIn7sdU}kgZ@l=uCr?08^5Wl zf-YezimV|hi~#AyN-_cvVA|Ix2JCu#Egwr?M5R@3>Ys6i+p6k(Te0jgXc1GtWG;eT zhZYl_U6LjfIKJDfbj|CL!C6xRlR^Us$-DY>{`z&bvcCw`BI;*Kufa-aDVrq)P=Ta% ztw9Ur$jc=Apy>XgBtS+{c|A!yk6B>!`bl?IxyKQ&(L7jv23JXp@42`#%)U;;1UBL1`WfH@RWXj~s5;}OL2X4j78(MEUWJBvW)kDOA5gmP7JJ9&Qvy6%;ZM z&4e}3BzM{Z_i^#=s(LI4#3%p@UN%5Kn0+$bHbctlRD%YU==dgT{M2b?O43k(oe)Z# z>;sG$*&HDQf($`1^4qA%XL2N~w+r^V+?QEh9~Yq~hT6_1@O_gH?MfQk)J=d%!Fasn zO)OfiPtKi&wOeHsTPn)xsTtO~v#Zyyr-iPhfk``g7Qia$0g$WwcvZ81MC%SH zUE9Q+AX+eOL1y`u<+Q#YGG9_%wr%p}v$nF)TUG0;J4f2bQtOxdH&DM@g=>jDRxBPn z1Vg%SQ@Vu6|1N5B02Z8YgX{#-eWe@gH&4z&`#=?tG=+^~rY&H@OQMK$Fr(?-m6P06 z3sJ19$ze1mxr30ZDFAg}t8`s1bp&rCppz)Yv_C|-i?d{oxiPM;s;H?icQ4PB9ds2N zv(maJ6VbCEn@kj{1rrCO7ULc=c38z_R;*jc7W}Gm|N3%n(c=0)L`}^PCIZ#x&i2*T zt=>#Fh>c=+z`rMZpVHOD3!DSf7I(Fk&%##(a{?QkZnzJiqeD&CIIq`<1S{MB4;?@`%FCSYwGQp;ls!2&%XWAi^Sgq8^v+tNPei z0WM_~F376g?CY$?R)x$g2xmPR@sr#++y*U0g}Vy8^>x*oU^pV!eJW1m@vhD;I$heb z-Ca?Wms)JMvdrqLO4>KFsOX+db;#08?W(H8SG5tQb4i-qKq5S+=<{-NFgaQ7UY3=e zS6EblOYbnat9A1#Yci|lIg>Od-&BtN(ceo+hns2(ajJs4c^Zz~=o({_c1*T~rcodo zwITCOHuKj{(WmAG>wyKRoD`&02F!(#Y-4d~TG&8uGP61)WbSb+`Qs(kYmY_!FHo(S z{J)Xcg{S>*Q2n9%e}e-bOwp&F`afA)Cn;U|HgPd`JPe%v6VmAJ5jVIgV$iss5}Es$ zBmepzX3}h>%M;v*F(4NCz%@EuC)o;UEr4Gv*U^W`G->7vmVVMHxWJ@-V;!1;Yyf>u zR?&+5Y^L-ht%I6WI8n2?tXH~xedTWjQ=Rcs@<$U#tYv~Z4cV~V<5^{1$u#GL(d^ZZ zd*#$d-punam9A#dGEJZCSn`8k1NJmq(u%t^c z+X`C`{X%f&%QUqnxzCxBK1DQn^ti#{o0WLc9&dig;sQ)q;Dv<)RSrXQ71J*B`PX5J ztrBaec}e?(NsGq2p*5vN!W~XuJYLA;FbpJJd8r@@xf~Vo8 z$ZiPBn1_j6j~;9BVfjzv0|XO23}#q9_z_0rC|%3?%DLQMk&UU51#+^18BKj{knB(D zE&@3Euxq3(0dyB~D35%RxYC;QWlC4N9nu5AZH8Dydq?D88Jh}vZll3Qr5ly5>uhvr z&rg81n#e60Vfz+n=!F&Bup?2$^*niu5f!9{Mh}#Zl}Xc@_HD#u4_QIjxWtiq?pH$X z@m?jf0_7C+IWd?TxK!!7(3UN$u~dYFqgNJsCQogK=6`F+R^;ysJ$5u`il$kjGB8HjaeM4N*PQvr1RMrJH7&spdyHDYtB} zvynu@{xlvS(oFXz3|XiROG65>*vD#KRt%VsCVBZ$+9(MPK1qyh7ACQf1Q?>sndtt7 z(zUZMnFv-8sl;>YYY&+N0Opb`2{js;V!;$JW;eshy2mXo$2K3KzMq4gWIrQNsminAvM$D-%tS4a=#(6+#f@4gGCFX7Mp@3y1 zH2F)D(on?Ju(3^fJ?@4q7FnL-wq>P2Jej8Jfj)Ot2be<^G4XCc99B~0&FznmSp#}?a^9ae)h0K8z35I*JI4keU;L6i7kVc&;=Pq ziX^>a(;>ecys|ycgHvj{%p;%8^he$L$m~Y@TKB_x`Xor-3}rKuZ9mwQd#u~0N|*X9 zgSMQV=oYEi#9=)j(!VM;KwOcs9Jbr-FtSbFPmSiygjNPK1DJ{C`_9pNp3M-; z$XH3I3Y3e*XX^1O?r{``t$-)Gx0I$$lJ+&ZYD+QBeoE>3J#9do8pxuFx!{<*f_BGJ zq^Z~%$h_<^3CK+ox{IcuWolLQy=@ATkXvJEB)sb1M8fXPirS5wPbM%NRzZ+L_ZFpV zv#p$#p2{(+hnkoNDae_%v&u2^f=K~3N1+_tazA+)v%{WI%A7f^-u=ANwU>6!P7O%Y zFih8)C324=&YP1eI-uS14TuW8QbSJ*bq(H2pi1hkd!_* z!iKYl|JF`quDa4(okapGt%50- z*RCz|*OzYOK5}_ZX4YDFZq5{U1(pSo4xdZ(3A#6snnLyhlkcI z17&QXW3q3`vF;0qz)JD$eErn5^o5TitoCDEN}uEGK;F8LO(~63GHJCVvR4RjR&6QI zo_kA5aA*s3{ITw>L~|8E&r)a}N&ISoz6l#R5*O+tuz_RNLVXN2aGbVKU%YGqLGuYZ zRat{CsWf_Df{6$^{|>WI=Coxwf5DW?da*oiawhiFEI-!0iy{|L<8G^m*7G^4TJN7`BH*E!HQ=?IACSfnI&G zC||5MV`qrr)xW~dkng>-40de7=HHp$!#oI#mBy_XtXBzGz#A$&Cf#eLSqQ6>`kb zMZ&pWA1===tfzAeM~OQs_4(qG^{87fjWB15BkOgK_{(}6Gl40L_4*P_VWe%)eK>pJ zh7CADAxpf!L0=v^dw~`<9P8$D8JCKA75W04y|AqUa~(XBP$`}|3o{AtRp@JQ_QGRl z>FdNzXQ8+&>HSh1z_55DT&sj{qka~~?=NrU@%!P8U`3uVDv^4=$gR}J;{b+jm55Nd zYZITpkiJQug8}xrn|Oc?&k5>DqHUAjiedG(D*a^)tCv*k6LH{zzZyI{RoqdHbWRg{ ztMzysSNL|d{*ZcxxNNgNO)YNy{bqeYq&iMC)MF~=mB-Znk;Rw;m=tmw#YNt9@@u_* zrgMrz9H~%K#D{a7iQ=g_&Xm^NZTe{%ZiX0-29H8-BZOm=jmf{ufvxJ6TkhXp3FB(0uj7>h_9wO@JoHJytV|F zf@`jUIP#&4?u&4ruhWfmxKScN&b<3^yllz&dMxfQq#MKsDjDB7{^iD>ZSE+#>Wl8H zph&~SFVELk@Li2`afs&nPD{k484*!Lxrnktlt<8AR&<@lVC2`lP6Kx*99G^X#PSPt zcfwG*DM&$f=|YWYzGwD93cTO~edTG^)v+Eh0~3k34g@!c$K(Dh#U(Ep9zySYC*630 z^l?4N8RXB`p-7fcDNZ5YUhsfET+9jR--Fq76^eLlyS^xDDqYpBiNJY!ig8$Z8UEdK z#hn-G9=P_AD|9Q%I1%5VkD8z;ufab?`7N$*$j3!Y%X5mdmSz?3g(JAxfh+D=iaASs zzg?e#J0tcYu`3$%j#ykOg8;htgMuk#RdjFH#{+|#AHj&7eDgbFk7e8fdn zjtf7%AAjgJonp#n)1`XaP`+dnV(^_~F@-Ls(3>dq@TGdPE!0h+ZVK(7Q1@kea#AR6 zG=)Y}Xg^A_KZ-O!e03@6aqDIJDDzg0g$Tlh%SiyxfuTL}i?|U~`+F|aPn<*d|H^Qd zaVihO+lV%%R=DoGWwG~&@=4lbC~ow434Mk+k*E^nH-pI z2XABWHU_8n0X8cxAO&qJqqj1;x({?%z11+dhQYTJIM}|;Cb+~CR&kpdzM0`K6FfH9 z#-bE&0F7)(Sk+ZCyqe+v>=!bp5!>Y4_;T24L5M5E*vz%cKaRZ|_ zFnWGpXsbR0q-N3>p2l##|F(xLWd>Y2viX$*d*4{&!7hh+)d^1R1Tlmzc&k(*@>kv zIEBG$`vBu>YKU?&gOeG2NjP{GtL7zkw42dxM(++s%RU)k(Q-X&+YkB(FSHX&Vq!^5 zY`}oth4R|Li40C;@Z3JYd3NwnscnZcdR-rAoQM}G;`=y*nd(FgiuJLxzE$1!-=z~2187w1quVi_FE;HAC6fr&UWKZK59bPS{G zdZQ;|6dMA&80=zjQy*Znh_XM4W^govUk!o9FL&qzYyv!hVFMV33q5lIt zC@RRFh*6;(zmxGh8Got`zxD?hcO0RIt+<0D?BEDj*&ym~{JSz5>8bsWBm!hg6yA8E@&Er-`~_(c@%xltcsW9)hk zU(ewWBfOU+^sqqIF@7E64-(#Hu&^M6TOj2OFK4*R6@-iDZ`23dGEv5;GDa=7P&6pi zW$lKW9;FN~Wq5U;@G#S(gyAI&zdZy$$wofR`0z2_$M{!5cpE&-`Z$x}XEOW;z(vz8 zJ-#?3y2Tt`%;6Jbf-JBXF3jFIgW+c|{FFZ7B!j{w^w@camFoyW_xRG75Y3*epfJyy zk(KTZ(@&!?g8e>n6c1tB5lNgX!iFzN9G=ACf2Z)Pg+A0KM6{doRain1!shuL(EHy4^nDvmz=tM>z zVYJO6Wq4R;FqGj#8J-l^2k|gFCV|ljjLz;09j1DQFnUOU;pg-P53|4G86MB*U-pF# z>k#4?9mnXm`$AhhWQ#PG;js*lz#Xi;m>8yrV;CL7=(N7jVN&H{w2RSa_C^P?C+6EV zax}xE8GdbVc=p6F8)Gn|2Qzw4U+6F!V-TYUG5S*z9gxi;N;Zoyy*iNL0~tPaNFQ7Y zGt>t#dH|!B^o0(yO#3sszdJgB?zOHjc$jJ0kKz58_`QUt3yirv_mdgN&9qrzY`4dF zvoHE9B-c$F$;k;gIRP!9kFti@Uk0NMMo;St9cBvajMf=_Mo)BrOo=dKIEvv>48OW3 zoX}y$a3rH68U1))=rF4)g3%F-{)Evz+ke>nlY`-MQf~;Z*zMIW!bUwBqctX;*%vy@ zUQ!vY&Stp3FL;>geYuO2^W`ow$L<1Jbl)0gNLvfm%tQoHbGsfpGHmYPREC_&ka7zWHeqlILr!7H zjTR(qmf&QDoXn8tEJ#@Qyp|zr8S)Pc64oQ1#E_F1GG>^}u6=H94TrDc@YQB`?8vY| z|7wP;X2>NLB&_ExVn`7~9t}bQVHV$|Dpk~_Dpk~nfZ)TJ$!Let!9a20^77&veQD$IMQJ`~gG z!O7T_2wlmc^C`6YPMk#+3SExSaDTn6MaM(!k}E%SYh2bOY;Eae(` zx(DH9xq($sCUM9i&lYDg>LWshRWWAcEKCMtqDBHUILKezq=r^xLDCsAz9$5&$bxto zl07oegAAIHg;~s)>YilKj4a3^hV1AGK{K)-3mNigPY8@zf&{qS3mEgqo)|PGi_Cn6 z;BblXVxuWpka-MAqOT2h&Oqob$Y6#nA&9Isv94JkRBVMS9KM;tZOSY=Ye~_n+|`As zDqi5rA2cGA5xC5K1mpyt>>%b%Xh?_Lh$ugO+zlFNt>iIN{GnN&jCtx#qDx<%_)|&* zzC7_a8`#j3kKss364PjW6H5Nhan7&sL605tq8@tH z^23AV*wcfU^9i$sFgClkfb3wD&!TiLp>FMgVr$usnn$STfD&Kar6=H%s+o^Tt|Nmful+hGQUW)5!x>(D+3k zG_XFNGZac`AEAivoKlnmY7?V~teNCdgp0O&^-g?X8jn}32uO=Ilwxd~T;nY$RFu6M ze6cp*+$8?Gyd2IR%L1m+$K-zEpQo<9(*84e?$&|_+_v^{wAN2?FNB!@K#9R04s|Q;j^)IK` zsiNjI$8hlILUQ%-{r*w%@A3V+aq$SiC<@(F#oUyiRW_$j zSjj~Zy4_UW83&=n*P+@n@XN<9n~aJW3MYj{%FcI;RWcSQ{E%_*oBoid1d17q=%w~I zo+7Y*CDNkm*ZLZK!-jG__{|`a$OkB#ObS{)K_AamH7Fu~pa`G+S|7#>H7G+mt%SgC zD8;>oByltqA?Y{z;t8?{bKyR$d_u(>7R(4T?#0hXnHPlL{u@0jE*`;@O@vINT)sph zfBFq}Gjmpn#P5C!euMWI{)zO5^r?6yYq{wmeS#B{gOE_uIRzm!RrC5oSkz#>4s-QW zq%0R_W@RV}8KcQ9`c#@$M!9B_>|$o}L4866bSg1{mPlYNg)B-g*T$#hA0vyRDILgY zCDk(VpO}8gVz`5ADw~RO6Cp?s%W6Tp9|4|5JFvD%9B9$wugD~U-^NSt|N+5#djg&w&F|@KGt)TGJz0^s7l8+Er)v{Vrdew9e z6{}nIyoIcdpFtTQ2HZwssg2}GkD_l~)J9xp8{r%dq#P36Yp_a!=nfURCu#$P`g{Fk znL;*k#P@ssap`=ToP=vV@iBe2It}Ob-UF#cfv`p=6Fa{A)!W8nQk*=Z6j@eb&wTp0K0Gi969^QupHfzii{(lUmG#&eSN17J1r$6a7`$X@ zaRwb2SLQ7(#b)7Qu&60~Acs>v=fk(WY^CWxNU1931OAJ>85voHg=H|*2po&?>=ROgfU4r~ zv$IUVA51_pC>-w?B@ z@ku>ZQzwYLC-u?VFDHmCPwFW{^Cn6n1C-L@H5q9pm2W1Bho02q0@qFoh32gYhMq7v zw~_yDA41MzSy@O$&K1Ss5h!yJ_Ogr}Vgf zIUX5063sl)7$T-Ut?Sy~JmR*e^fCReOS1wyt-v|c#b*d~9+++h?%e#x1R3wj8Dj3! z`WS8cOmQZj&Ogr#LfYOnA(zY&zahw!+2YvKdV)wQ){P+Z-(kNK`Zdh4lFffT%FNTm zxgvWn#P!X&qG~T{XzPjM7kl+&ZOlBeXD=qzUz{f+4N`DQF3wV-Lb%)X;aWkySkR`A)Sk~5r_nP|AkL-d@2(X$)ANx=@fe=N8+S+w zgSi!EZLLdN;;-I>=RG%x&Nh9RR(CT!V}-jNJX~?R7~igsT)w4Q#?qDYt>vZA2T8DK zsByZKa=Qe>2VN@caL412iiE6e{jMl?L54;%7BS}+V-h;e=b@qY14(ejKwGJoD| z8D=OrbFerYN9LS3NBTr5xC=bDzV2GfU0YWM_YZSrc&t*-heL#Uwz`TcspE8lXvzSHd~q!n zr#--k z<0FC&g|k|mQCVGU!ap+uBz$NI!6HJP?}1Wr#`F3p?fWtjcwSG`zTF^hCik2Q@x=4` z$k@Ma3`Q_T{l!Z0+4K736W-Y*1ER6ooz8GCr9QN%8vDclRwYA*qE{9NUeJeV&((-E zFF;K!@QZCPpfO+J7dO2CHS&F}c>D!@xbxaAW{h3?usA#K1wBIh$5!z@qGWB_CWCs& z#$%@U0EITe;IOyy3>;{1-8m9GfLavkox(cbrp@!u6UF=VS=!4N3b7B}$CgXPo_)wo z^_Aj-efs#QYdDfnU)SUNC0r{hBq*YIv5_$JV$(fl3^|Ply>Q@(*=h(t+Our8S(Us`c&<#XT*^g!MptD=$R;{yrlO_{Phcj zjzn83^_Qdik=9ud@2-6!|0O+T*o`mAUoUBb8IJAx zo60)G^DpV6CcW^63`3XBaSO_ERZ*S)&F~mF>!JR}cZKU^Jz-|s`!Wm-fX-#$a;L2- z-&Fm+84#^hQB;#2Kq z$V1S-JS+ihRWd+EH-kU^RJ{4JK4#WCpGjCW8U?PcC@(9{^RD6)-uyfm0&BQpb8#l* zwu+9XsdauKroN&lO+EC5L_i3)NMn^Ei?5{bKm|t*AVbA;a$0HKS4YHoujq+!<=@EQ zkjlUMpW^;k(E2|7r>w)`JfojutD=c7U(r(?zZ#&4xL09S{oN(5dreR5k6CdXHorV4 z>%&pvj8~x&ijqa(RkT`cvuJu%KS8TcrDu}3rqD37{1ZgytNK{&jqzgGYx+3t{7K|a z6u&Jp25GNOp_qxz-0Un2PnX>8p%hZIhMDvnAzph;kJ1Lu6YsnR32UDxes~T2_@KpN z=u`4tdHcK??bI2nK8jnR7IuzG>QKxtQ88W~^ww*;DdT->>Ei%AD zUK$_|qc`&UsEav-wS*RXwdi~u1^CSl5#Irhyn2&3twSHh8?kb3q4!j6?d_tW1LoIf zO_F4i@V=_Y4l=a}<+FCjJwzr^JmfQ+{pQ^-aVd)Um(NIv-G@CJlocy)CqE=S`}G9< zH<-Rr6{pl!x9wqv0?W}|YK+wGe_A}WUr+2u2WimhnyzQaogC|VUg9ijcf2ePAwYZJ zEup`mkJ4*DAV5E+I%(q}c7)P?=VS8d-7_pR8lc%UccYBt;oCUZM2x^LNVcO2-D|lMfTgs z!|zWOm2c~bNz1VTf{Gd=<(wK28l^0AR++f#Z3x?^B_{#PmwIvl>b1Tc!mf-TNvf2@siN$}^69bu-%isY@5$rOu z3kdU->1$Q$iYo{P$MlJ2QMON5d@n9W_$bO-*0;Ttc8SDxL2ZK`c#QX1|p&A9^U+?J& zBPJF~O3d1V>a#J?gENQ;{nQ$f_Gdli%!8-c5Ul!hs_T|iF*Z)nrZKd7yx%e{(Xpem%y6HLZ z2uIbbkBSoy=pz&E`-Y;7vq&_4&u*Eu+m1;G7u&$63l$&Mf_ytWg54|t`m=^~Fb~e` zFC82$ZxA^qSkXFM?3M{U5+@ymj2$zS91|_%4Z|bF=7X?Xj*jF28Rf+!>EI~uV5^&| zOtGS5q(+LrAWHP;6J&tomvg+h_9K1hgai1RqAF7@_#f~IhTJxO{b4S9NwNOyL{a$> zn6}Q#@%2}hP~bGN2+U6yu#z1Xv2Rw%KxV=H`O?8G7{8hv9t(NXT6Rm$-Eg{ea5UW~ z9TY9*^D=UzS<#v|h{i*Z9?wShXMvA7tBM@cEzor};{8K($SSf{!tW8u^?!|6_gl@H?K9(FZG=sW*}!qW%1H;){>&*L(s( zuY4%(`vmsff=|RtpTKI|_o?XoL{IK_>K7Du5xQ{kkmei~^DlgMC3mn@ulc7~c32;g z@K9tF``gn9L`8{n4@1fAz^+V0;yRcZIe;9CEeeV8(j69aIQww~$CbmQMCV~W+3|KV zza(wKV(_~s5yERx`C+znOXEM2$J6OPKiMnu7WNLx^OaFhd8Q1qr~S{B(of2JWVX2T zQ+>#?dD-Nfj*cQYxr8rOr5Kyj%-x^X$UvUzrH(HTXVg+P6`Upmg53IWo#_5lAC}m! zO8U$1Mwr*EFU18;<@;)c=QH%PzpWM7cm~qyB#fnpW(0BlMrAqO4p6%_EGVabQz$5@ zK0ML$*qs5xFQa<%HkulL@oYk5nr5ggK&~v)_4V~STubqZYP~r0nI5}rdZY9Rmf@Bg zrF$SuWM3I|x~qJp{_1;ok@qr8{nS+>r*8`B491#$lUVe*K4MJN&C;K3gyNOu+o&3p zTcoFC`M#&bg`evQ6P!_#eMMP0PEoW`Ld`Q`TQC1YPZ~AiwCmdcG48al7txY2bB&9xc&4Ozrc6r{ z4KEub#0Os*Ijxfh8uzMB`nWy~-&uX){Xxc<06AxnQ!eY8iB~M^q9ru5@QRPG(m_YN zvV-t+L@Pk_N~f}#csgp;g3!4nAW3xQ=})h8)~XL{?g&HYtXgsDTvanW z-q340Ud==^#OA?9d?1q}smFMQR2CeE`zd#pVI?wAq+=4S+|%)@mSd^iLFc7n`GAZ= zXO&nmI_%WS(n>h68iBG+N0ahvpoq^NHNA6!-bLT$hFnd9 z(pjTO5FZX@IGryFH@+B3H=QL);aPA~Zcm4sj+lT0<)_0$O;^#k#dgP;c8AaID6u3RdSjm&)TF8*w#aEMzG_|62QM|Dj%Mg`pj5sst9G$|vtO6L^(MnD+R#4h} zh5=KMmASkCr*xCI#1-YP@-EMDA#8b3)+*_ju`DZNWgNWt12!f=mU#>C!L2ZB){LO9 zIV*ytj#))nnXQ4L#@P<63>lB*Hm%v=?C4;{JiMB5v7k#EH#c z>Pf9}8;$D+wtl$P7^?<2868<5Ddwe0=9|;<>u0_7x84TOTVEWrT%`nk}`alOjdaWW0^X1Jb%&v2c%mIU~JVmSGp%P;xihTu;C0HBwwJ}yq zIoHS;fRE5-v0@|$+p>D(6xVQwtIsnM!AeMtcCqXm6&Y3;Tydo2Ha$f67hdAVnpqB!v)6E zu`?sg76Ey?))9Y#6=SURHcl+O)My5L9lTPc=!?yNHHNefyv*1}OVb{L-2QP_o)Oo2 z+vP_6;0RjrC~j>rMzzko$!OLPRYmshHCqjY;gG6M7H`~YoQ}x1q6)7S?yrq;t*72* z_#*pHu~MEYUT8M{g6MyTguEzasddj?hKsb>Ozg^TeeG`JjRE2>Ek^3DMJYu{j*6%?}WF{m%X$%+~sTAjUS3!xqiLC66lI=S0 zQRAzq5%aBlEU@0NxPW;p#2(p!WJ-_Q#T$E!xx&?M%oo~U!C?@efILK_aHAt6)#4|O z)`-Y_iXfcNKo#Wd!=IDdjfc>zl2Jmgv$bXlhn179H+;iqaRx@gC|+3@L8Yn}71tZ_ zt&cxr{30UaR6xY7FQbATG0qrq`x}NXuG?q)4U9@gEb+w4MzWLQFGihT&8kU^`qY>r zF8m7?_dNY1a`OCxpf>JBlC0BT4QfEDb16*g#qB=;8l>D${P41ICW<%)hqr221sMmKAv;CgF?;V6h9ymxU+4L3}a*igNvH#w2YNt)i6a;ak4>R%N|alPH>b zc&)?OhI+$_CrrSaeFoW(%*D-Clp5>JPj9RQtx6}oxCiU_NJJj^6-4B{{l>KsweS_E zz6W0Jo-cVh0_*9Jar{;j4{fi>aEf!@Gm^mxMR^b@~@?;EMYbI^#xIaI5M ziR<40byP^d)+gRGW|4UI%2J3CR^>z_+5b;K#i%)k@o=}(-9T?< zPB5>el(Ce1TUUK*42Tpr9!0wi$#%n6#`j}vWN1CAWZq3SG7sZjpg{40dZ5<5M~tm% ze=L45p*M?+qsB^m>!XFblFY5v+imn_=Idl+d$cL+FCGPpFaOS%JQRVwY#GeUD6ONu zHi{#~Kag%5SIv zUI|Pil<6SZhQR3rvG++MQsg~g43kax%45cjWD9OZ%tw=*r>SCc1Wq7)xWtGV5TWE2 zWGzL`sJnPbbrx%4B?YELIg>uicrUvK?qqO*~Dp#=0o zf1zH8D_eZ|rS5Khd$=<_N_;%uh?`hhTwPg4lP9=Z)L&Lonu6;QYVl2a+k%vyD_TWo zt&upfs<^%u^EiD)=()mGxK_i8dkSmkXHo>2Kwb4FUqw||GRIr?Dw>Yz!za?MoiZv` z_?B)Ai`nDCOmY1ZW4NcRWLRw%#bPuMqiw`V-Zx$rbW($+Mu_sc<5A+Bq4{QHXjeboK)gl+&?d zT9#99eJR8F_XyFo%$YieYxtm*ES6`P8K>e&Y5uGA_BZS8V`()_TkgE6N{K=m=!w_) zHx>J~(9+Eag%+4yK9l?hvwsC&UWE0STg<@WR3^-wQY6wRGRlNp@{Pvga`|N+>p55h zV7OC{bpxCB78pWZ=}Zu-RygAwcT||J^Hw;AIcm0=u7}9=%b@EJxjv9Ck0WrN3Cdmx z@5BpC*M;Poexd1lgj}00GDOEp=Oo897aO~>ot~%f$jNplL=CusJv{mF z_#Hg7xi^SgvYlz#TQ`W;=y~pq!m-Mk7WK;;8Mye8An=15#YO~Z19pi!=s9vj>azmkz%oUyu)r%Zw+-)RfV&E_DS`%sNbvU!oK=Vsx}aVBZ!+$wxI&P46qJH>f9 z&f(g{&Egk1&QaQ*9ube{I7eu+TE!pnO#bbYloBXp7v~k^uE3OzOw}a)-cuqz*O{Un zd_~O7btWa}zD985h30fJ7>Xz7qU0SeT<0edapLM+r%N02zPKaTIa zJL7~q&l#&-`LURphXnrki8wjWIZnIab8!*5pZHwdm*TlB4{$OrzK@5D9a-h52_j@-XECf?0QVy*uYUHMM8 zBR9e+k_wzjjw-w?DsZ}&9_mNq1)K*Zr>FQbyfBVC`V(MK5P<2f+=9%)F!m?|o#NgC z=P1W`yzDD*rZ@y%zQD`0w_+{w#Mok*DGMY2Kmq}5xPqXhv`;2Kt}C3_ z9P}MOi+piVQg(5+H^=h+`!e!oIiPOU7GcoIPLW%LhR|@TQ&bi?lO2zq?iAM-IfpxL zKhr6GQ{+rJV^|5rR)%$IXAa0$^VI^i6W@+@YYpl`)uTQ(xI>};HSoJjX;IqL(uf0! zrp}7;Dm&DRv`+XnA}j{6TJZELNAX;yHL5k5OLa$!DXX2sJSnPA^(y<7*hqRF)DCC| zRiEb7^5JS%JIN0z)AOi;?}uuW*tXi4oEn2@AnWK<6BO_)4=AI``W)#E4;--E==614^)XaoRz)Mh2k(V)g?P4GJa0$!yVKO$6v z(O&`bkgv{wUe8_QoEj)lH9$1=?~Y_VcL3C8{+?2{E4#szG>2DhR+CXsmFxc?fghnC`0rWwKaz>Se^F=uM+rXy z`TmunY8^@{#5p~nrbCRV*qn2221r9&l%>gAt zL33Ak1L#s)@bjW|cW7QERh9l!Qe=lQ@}1oD|DfX0e0UyZSF=*<@Zu{rl#1#?dX%La zMRg!$^#Bkvlxb?G_UD1kipS9b)_BQR4S4YIqrN&&_cchG%IxQo$8fZVk)?dRH9PQA zh!DaxulhCgf)|7di5q#zEVyvj3Li_#HL znpMBrq+M#tQ6mk$TgYSOZdm6`(n4>oTboe(S9ZI!;(g+|CB9vezp+EZ$=0P=(s~I?t*1+$S)!=(DF~Zp2DRYzwqKo>M1lw(%LBHwjCllFW zh06pb0laIw!Ado9JHm-a9whc3ya)P>&}buMf6qsWDFMn%va0rawFu530VX zM#lk%H?q;u=xB(bzm1Mv{8zs35c#J&hX>F^93AjZ(|m}Qj)vt?XGErR>-|=7IGT}A zhoVA0+wkl}(;;~{YCfr-pALWWi$#X^s|QUNwITA|4@yV_Z_SDe^3;N6P1H#@{!WRB zLZ0_)9isDeXF?!NZ9)?zQKyFOLz+IcnxonQfI8rp=AbthxE|wBHTm|AhBwm}sfD?S zl|+xqMd`IFev}~1k*v0WZomFWMQMb8r@GdW=4c6^8KzJ*q0v*M6oys0q#`##z-YZN z*TzVUstGX6<7fej3P75+Nl6AHB&}CsNI^D(1vPk5mZCLpWV3Q!LYgCA6`!8r92Q6c zOG(4~fFcD`<7fl3=@;3*83lol2K{aR$f_dT5hWkZs6lIk`i7MRAHTXEJ>UT_i`d_c za7c<$tA@1bLHHg760HQn+yTi^aa-+0#W2_k)l9X~6uM@mMoS0iD3bQ6yCXXAdmiNr@@O_3bmEvla%BNK)8dmb`i)@B^}TxYaU06 zdO&qWl%S$I45F0mAjPv=oL>T6L(Q~P>BN{RSi3BFoM<}4D^$+y&|4kAk@h0ZRG=2Z zO#2C~nu1nCHT)nL0(Cb`4KLa-$uORf;}*0W60&v@Kd2gLGzDgu)})q%xdP$N0`2(F zaAb+9q5_UbwkP(uR52uhq!O8A=ZK@e1EQ zG&-_lY9LZ2sKGWs($M%^Xihb1vgRT^hyT0rJBa*0iyF&UeeBoCf18ySj&+plxCsgU z9raGV=oTdfi4olv2v`l0r`mVnNuf2+54CD?KWrjh=ZqiUPQruaC^7Uqjz$(9auN7r zjo=L^X{Yes=1dMOfY|1vGfYFfg7B&b!HOnydK3X82ep9Zjo!C|WEyId6ek%yGtgw3 zvEm@jArm`_vU;@x$^p`CYBFjaZ58oiKtBe7g}?O&gq}CQAu=xQF~uu~l^)^58?hy~ri~Z5EGhaE_cf9U1kJP-sn1 z98||DgoL<}j=cmf$6eq@ngjNWmM+u^XDm920z@E9E15}*oC%uA+6 z=-`g-AowDg{qIBfzy$KDX$~(7A<2RYR`>cFP-f}W7{E4F7Kd^w#meJ2S*Kp54Y_Z^ z4|8%350g0n*Gv{Y!h}LQZJ}PZM)60cqu-*cY9gM1LXDEHHd2LxVlvhJ3}rUv?3$Hx z9nD~wSMzIVr}+6bHyG!FP}bl-NwNp6+7Ho!Nd#UfnrCpjTIqO1^R*{QlU z)!42Q_q^Z}Wh@_~+zzw`pXP(#a&Q#&WriX=0J%TF|0P7i$TT>JT<^zNp#?dop4khs z9z<*cfdkA`daE%>rE_AGxkE^pXnFBYB_^fgL3znGZNbk69yZZaqvt3OW=!CKM<>eI zhB8v578o)y=rEeZ)QwPTN1-v=(fAu2RH#(W3(=>B?E!O;JLDJYgA1Kz`W(+qd8In8 zK|WQkF?wI`@I%LTD&7dM@&+rM3^gA)M=App4Y*DjMRXuX!~LkmP7E45QO*)%U;ZZr zPCKI(C(TMMlsXWc1^xDL#2Dk>Q9F! zwPBA&8KL253nCHMJt_(H{YtyTrM7Bds@A5~sAUc?1^;*B$Lzq9G(egazY_`V;8u%- z5pobzRJ;+o8FXJzX%N$n3g>Cc7LcM2NtQYW>Yhq{l(Rs>j+`Qk2Q?A_FBng=in3H_ zgLo%xO@yf)DN{|DnDO%%N4i-jbCzZ(^{ClKaL!9lWu`d1$vF^J)VA3fo7@Sm$3ph^ zE1H&qS}#?-5WfNx8#zP#6fv>NIXvMbg~XLOP@^?y)UrMTNslu1 zq~AfdvC5(YGLDNmmc}s;B1Ak}cyZM=jhO4;CE1I)I)Wb#uoSgaHo0`n#`JJ93PllWTeXjD_R z0w9QVjMjl!Sqxwu#1S(oj!VkpYjrf@po$n7qo%{?EdW^@eyCbRT zdsG)1FbT_7o1LjBunU2d_ztxbe`jM@v>SZ#;!Dl%AhXkn9pDnBl&tPn+o0%3qL1Q; z!Zx({gZQ=Mr=j17!LJ$b^i0EVH{R)&hqy9iKb||x-*!BA2k?iYAH|PI(39LLcn^Yi z!%e>(`27t(3a1}hE-LUW{7A+^5=M1I+M!$7jsm1PNSS+(dA}oH-J~7h4g>`PjW%lE zqoeLdC6WX35t#wb=Bw$BCXCd$N-#}K?0N*Ep0B1xHetjryD7rZJDQG$7SC_Z${Qdr ztCloeJ`5WAD=7s-4u(P|m_Y>i$X15k8ug&E>e0)fiVDPIe&;2an@a|7eH@gIT9-Y4 zjjdO&L80><`C1z=MB*Wb2MVnSs`4nL0wZ&6KbMiD$BQzhhy6Mcy90F7)JANVtV4~L zL^L^Cls7c5R-<_bfuP?C+AdzIbtaD7j`Dbcu2J@C9r5(^D-EjZxKQ;aZWn5uGf~|x zhT{I8lWiyK1iQ;02j>&D0>O&q?wN$-9jYCWDa)(RL-W5I*a@%Ug zl<_XcfT0ZWKSb#y3qIoeceASG&Bgdc5rzgok?_-6RIqKNC_0Ew2hzz$RA}^cXH|iEJuMMrc0ds0QP`A{}G$}1go6-OotkFIK zwpsC^kQ6ox>b{K`*NK5~17eXxrXQEZ8UF~*()FTt+Z{e6R;spx5%zco z)dQf0EQ6CZYJs|4bD=hB5Z9}Wq(4QdAn8np%T_5OcZ)MVaG#PI*@@!EI7r_T%VC>2 zI-xF89q2eB_9M~`trM$un(&i3iv^q7R2P0y$C0m%FsR5bWEKvv-Hy(`2JNrekpdmq z3Hs^C5OHO+&(5DnEO;hiRBAkYz zB6HB-jp}yCn_7Y9Ls-7np?Odjs4cAk=9gE=P$8~BlB`fQcpUXCa{0)9piv7tWH6Pa z#t~9gen3eK&Q%q_Jz9H2ivsP+9Ewp7K>nq;G@wivQ#)F;W+d%F7g~yJxe&((1o)(p zNKuA^|G6&=AUV}$_oSK09Z@n3DC9bzZotn63^NCMbRB*M!NJVCY?zUz+unt{hcLA_`FZs9!C}bLblz&s)^{s0pHOlDQt*RQWGi zjSZl&wW&w(qZywRbtg$J3flxO(WH(CNFv>YT!(WUb`8ps4jw(JwnHmD8`Yvi_wAWdSQmdgmCu6B62@SGAYAi^qQ9X(h9o0x;TkwgYEMhmF z)SdPw`Y?Dw+4?=ky*{lI26!8c1!!h;1)ZQt|I<`&L_0F(58zL`8C(<5D;S~a_|8rJ z@oLymcROPtm@bqFnNeE6n`g8VxC&r@cr@ZiDQwyrWWE-YP1GO`AhEURlhdHKJemrA zQu0T^BgiW%B;Y~|J%m1^fore{6Bx;kkQ-2xxdTyBPe`S9HhqQu}%<;;jCyDtI&}K zPVOKi(h76}v=idjf+%lBQu*u=j%fL@)6o^SxTtJY_7v2l)G!|@DoCekK8gbck*{`w z290^5tqQvVX{j;Z@FUzJP94z>3=Zd2Z%z@{uE+Os$aX#yM2$x6 zw*^eKixZV?2xPl&foieJ5nc?`K8Vwp=03&2^3kR?X*+F2*$>WgSMv zLbYF%7ZPp{*{iw+5wof8`>J=+1!TFksIMT&uem5B;Z100!QM}55Yi%~x~4-l<1N6> zV31TN;aX}2`T{D;6X4O;5h)Z6otV^cUh14kmX+-!_t2v)3OZc%9~e=&(Bn`ebZI5r zD*S4R*1|fF)sLwOS^r^v1lgbtY$iG!>H`lVkL`|5&b!Kq6d;ji#f880KMl{2DwSoY zn9%ab;BHi6Fm^tWB}}2u*a4J{lCLotNJPGlBqB#a#MLJmB1!*aSeu2i(X4cWQZO^r znfo2vK`B%eirH*trZKWXOIDYn4KuNxWui=V_8`{Wi&(o!%qKhznCi9XrFZm{UeVLd z=*gUypO%$-k+BpQPj&{UM|h}YNo;PTZ-&lkhGpq88D-X%I6!&44>3t8_0`hS)mT(| zzWU>>4XxCs_@wAiYpcb_-x_G+7Uf~9wWX@dSO@28UNWUJV1%Tp8uC_vr1H_LP$Tz6 z?#D=Kht`Ok`y#0!G;_^_v`FuE2Nj0T#w4{h>dUBZ51K{0gW6q-Ldw+M^8EaP84W&M zaH(be9WvLZ?nmvEpo>aorac2Q-m8|NZ>ptUMM=T0S?S;~np&*EM{kIX#RI?Dd>#R< zd>BtHN{5n+{>+8{Y0&B_o;$RBDnB(>YSMOLNdvK9>w8%9n}X7WCM_Gf$`!m@D{#a( zXuiBbJ%F#$)JY<1ju>za6tVmy#ZiF&DLi9F677P&J)IUMKssQDl4t4N`hL{PRJBu? zuC<}&y^c<_JhU$4wgikUK?u2ZnCI0BslpyRd_51UxU* zF5<%9<#4IV=nIpPQ^Y_hy~U`tj-4!fwWtF}RFl#K)lQZ&*+y+ZHG)PVj8I5Y8;ne< z7b#~kk)g`%gua$?Mj{@84uz_>0~ta_V7xUT;To*~ikFn}b}a_Ai79scV%1a>s)+?> zHwqW*J-o1le4HBTnQ9N$$xLON+D=0dn;5tC5aa!jEXpJ$5MH&rQId4!LaSbj`sJf^ zounre$e*fdE;S#NvHnn~mtv?5t0$t72O6kcGMXbAOxF%JLfT;Kc)`XPl*{F4fE8P# zws03h<%orELqr1>U)113UyGWLZM) z>0MpjaB}jAOEHoy8=5Ww)W12#wMnND?Fojq_Lufmr!&$gt!c6~I3tKUxOqe+7DCmV z)^?kF8a1qtuGC#4_|KaK=3@G(!_*zDwz2CFbTYi@^jdA4=CDU- zQ|sKW9?TBo6sv>xPIZsnTDZGN{(6~nFU9m|6LoZNK63vXPd`}B|Bao-HnUS|uT#5L zy=(LHb$`U!YZvxR1><9L&AS8RmD~-1~P2xXJfLtL_8K-9UN)UQ)h)tRu0beFvgd5F78_8nPls%CfQppmMqgs zHFpUU45<{=$r8Bt=-gFHQ6Z)^(=x}Ht#R%h5aHD6RbE%pn^V}EnJ=PiAvyzSAu(=+ z9_*cqe|Py@V=k^YYG&~Dtz55dtET-awR-Zxx0tR5G_EjD?$p;)8_o0^Nt4YzZ0^(^ zYN&mL4D;DN;;535XmX#IRdK?Mnzhb=t<7np&XbaM@*0E(NplyY35QW_9PXqp^W-ZP zK^K*{5FO;-N~VUjv?$34bJnhRaB1g+R&cY+vmlbjI7UK90olGb?UHM ztR^FZD$<;~&T6;P7Ro|Ro$A!lJOuC9CdXJYEHEqwvbf7Kq1Acn%?}v=S!a=??$%u- zsIN<*uemy*;c(POs*RX`kYSE@dVmET_sw`kf*xr>o{br#%q%^u&DXov%SbcKG>X;& z^|@|Lp0y5eo(DF`N2P2(tSp(gT9pR#1xkn~c!QwIOi;F}DdcJALOp8u&R;sgI;6@_ zTdCxK9q($uX}V1Pp`M1rqUqIoU~OU1w}$6(=eB|-C%74-_Gp;ZPMC@6+_BU`4ha@) zU2|?GwFwne8(*!F^i`7|$ollDVO-$C~p3@`=nyogeP0;mfkOoJQ z*y*B{n30ts+xWH9_s`uCE6{dw*bR0sMn{a{lX0%s*GsadHa{$nc-MH_$RkKcb~Y~Z z8}YwM5womKiT^c|&+h5A+cU+LCS zEpMmiZl#Ya>X1+XCs>IZo06Yn9LCtBeUm+?vVx)-==wT*Z-Uif$_!gkv)#;^5i5$K zQprg-*#j`pNbV`gRu z^Kgzh`_>S>9F|4+n-s-;=X`cbVe#Muf>vP$txUutovJlaT#GY97FM%(N9n(gO$vIc6R4ek-+Q^#_UcT(a>dq>mjN#2>X zw;7qQL6DIeqJ$WogcGAi>e=0em)^sjMGdn|y&)@0JA0U88O_?_R%>Rm{3d%(+-I`i zEp~N?ZZz7R>0lO`HXLoM-v4)f+B4aDi`{$wEqRU_N^RpU<0_|f)d%R`s~wD19sSc6RJF$Qr14^4HkT5H^A&6IY!DvbxLLVIDMmi({QHjc^UVkVPjY*3qA zkF@!D9mH=r2REfwzcte}Yfbn)kN8`IEi_Z@o0u`kn|Enrjp0}j?;TFmZ_v2uZ>U8sk)K7_@rHU_a$F))H4dSDC5 z9%f6OprgxhIv{AItq_a)sQE!|3ozDbVNKS;$YYemo!+USP8nk~(NT?bJamLYGSCOC z7D7e@NslIDC?oqIUfXkDt@)7d(n{)-sgE^Ute(ZyNJ09aDU*DIC~Nec(Oc@B1-pRYNx+9S4E_fehhI&Gof?BYOyMDKOOXGmE($H<`_#2 zcZ{RC2-21-v$M1Qa-CoI7^k^IWRo!^!?!!{QMXvkz>dw-n-h$=X!VcfxrHpLb-v#H zSOrJ$99?s7+&uUGXx7}c7$~gr7P3$Ndb_;~3rTH#;a@D+{EGo2|C=ucu(p&0E3muo zu>1Uhvi_?tAuKgRtOR#u@VVGBwoo3iT%3#Tuxl^&ev=gIe=8OD>xtkXrHt|K=6^e<^iZFp=V^;HK`Edup zFsU#_JGmu23+$b@ZNhF794Tks`ZM@&l$2GYM+U{@DB9nw@)!zJXAWe(H| z#c&5{qlw*bnyo>Qd{tS6Wi~o@cQd2!yn9)1R9P{j2H%mN5Ot7d z8FXP{@a!~RckR(_K5AQhV@BG#ElIAl@ zFmkef=7XlS6Iuuvf?g9MU1g2ePfgRH=PFm`(xb=;LOWm0=Pk?5i}d6yAq)6x zoU#_K70aL3o=Z#TKJ|Q+HC;b5xlfh#T)jS(lUp<&#-CH`1Q5|g$)b&vw4)wJL5_YZ zPpW$8F*G=q+jzG_xG2F|Kq zi_18Q|DzVJOAj}jE!s4{GQZ^lV>)0d$sObwI=ES1V*7VloljP+W|b8*LWB$!qQ_jE zT7~Jcn`De%M{$dUX@*)%SJ%Yb(|SEFh{B9I<6|RY=8}?B7H!Um9-La z#(!3eG#T$&IG+*PkTLVsj!`jvJjWLk?&d{wt!au=YR#Bonw3TeT3%;W;({a2r+&$z zCTH1MqnXxMTDoL(szDE{X@yy0Yqw-^GAUeVgjHNcuEyG*Aquaw66heq$|lCOnxnez zVDi_yo!9@Iw5VkhvcrFW^s<8ZzwDe2C2$AGp%XZZv~Cu zT7qe|;~z|zYO>JEQ<}7$VCKXs<~hkZ_)MQNHmRQac;Z9H`aPsd+ZltMxRJS%!J8h81eNYLWs}KlN12 z;8Xj%)6SbXGv-{cU%Oe%7n`fSCS9TDHKW;TR1(BWTAeEkO+c@t6dBVfGq410jbR3{ zoHS0Pvn?jI{k?8%(dA8UJK|~$hs5}vn|%9Tdr;5LT6U^*ZnDpP_8y+OR?tY+-e>Q{ zJ>I#F4x6yInu2n*!cBPOELH!v`s<=T)1!UisxRhPL#O&uIrWXiLSoz&bL#GXH*0e( zhOKp;PA%$~Rz0>Dc|EqG-OkqKHHjik9a7a+12<^WC{9-*O)|D9#E_Xw1FH)f*h~XW z^GF>-?nr8NM$kIv|39MfCWZiOD`((5O4r|5RGoa`etQ@O9kKG=q9H+vO1pF5wq$uwMe%o7aC0zp~pIUVzcp(>rYp8&6~zoeSzw9d}+fXMw<5L za|-1waWCzUe4AA@t0`o4k z5Y01YRTPY~Aal?`{uc62kWV@{+BUb6EI!*EbFQW2ha8qMiWky4$DEqRAF+UZ-|Lvm zNL|vu#O~w$Kr)`{Wbi(_d$MMUy`86yK1`ml#O}>dbJf{ub{*nv6xT$}w6p%$VAHQv z@n#*vIE@8`9IdM6bg*Gf=rQByair71zdO{ntjJND6lpMlXlML8MP8pXL-k!K^55uj zBt5#xSa1LZy<6zKP^6Wm1u26OY{jg!(=Kfrqsq~1ykXM-QRRlXy%O7OP}DnitM%D@ z$TzA9{4W%(PQBVw?I;=#iTO6@{g6(#mdLp^Rgzk5+I4J@F4Vft4k7%Sj)c5#TWh&C znWt2%G5PkKUO#4`6%9(CC-8 zM{F7zO|&HE#tOWcJ2d{^{MZm@3iuCxEWAZWwz(gxrtdOT&mC`cB5MB6UMx5Ieq#@= zXLS8yy=COq46V{R{QkWki#fB(H_UjO{8-Ju9e&Gw#N##-Ko z9k|S{a(&p;W%jO{I?7}~6ix{p=%Nkd$}+Tc&9Bb_{>ZYy^<**2)vc@9_T2c2@Y%WQ z(lHl`=jNEryC%l1o@P3SH6u%fCY*;JjV!&g46PJ9;{3yj8q`Kc1^Kv&e80ett=mkG z>!^r3TKaY>QK!zr;gX*W^v*{#nSR*rwO403ZemMr%CBP>rFL5S`Umj+X_zCrm z``ragwX*}j59K~vjV!-PrKp4 zZA2wSd^4S(YZ`aaZuztLKppBe1x~9~l}vdoIr&y1TF^rBt;kSl=aMR`Q=YT#+8~#z znK=V9qziV*kWCf6jh{DpV~~A-R}ND-gp>PR$L+V0e{DgN+cbN($^W6n3@r5FZqW)`T#aJ0lJI32c-roi z!9ATu#-KLZFtd&Vx72LCbGmu6{~udTk8wlO4AMn<@W7lo(rPF&tf&?8B2k&nDrhV8 z;opAdJ+jQ3mI${M(@gm-(tsv1Y}xbGaJ3WRjkRVYh_|Ydlg)_47&Uob=-5b8S1ajs z5h=1{50+Eh3PU&7V|+p0Ddg4{)~n{CzDBJ!LyxOJpGv<+$?z~9BDL`i&j!;iI?S0B zmJX7vV@j^2XFQ#bB+Fc{jpL7-Y>=>_kCnR_X88>6s>8Y)%8$aF&k)nN_K6*Ziva)TM>|2E=Ukn}!h2+d*rx}(yg#>qr8 z`fX@JGefvsFT^1-*n*DaUa4*)TQEHou3~-`^=~aERi;6okWYeqB6tQ~yvE(q|Bdv& z9$~W8JI$|p|6MzrD&*P}aVkN#c-)GpvQ^sLkLsc-D;>TRH)4VuAuElhTR76Z+c9Z{ zZF{ql@~4v1R@nRQ(j*C|k}2}ioBLUEuQJw2I}0^!zTTIZlYC)?-OJAalB`*u%&xF| z8aE{UD>wU|sk@rfOH#bAgSj#XhS7u`GugjY7936JT^poFX9HB1bSieDc~s}}h~c0z z+z85Wq`4iW&0gqSpWbx~8N?hzJCLcL>S6;O-2ZxRCGXsHmXj|bM$I~sKXq-0Ch9$h zo9Ur%@g21ob~^*2#ncTHYez<6f=X-Eo000V%XTUrW|-?=80TH=+-DtU@&uCqGt@+7 zy(S-97}vCeb72k1UG)*gR6@yRtN4>xO$^OOzIB0ZJEx_jiXN>uv!0-#ug<&27{~ZJ zc!orM7$FJ1Q^D-Or|xQ-=Q7c6*GV|wyTAK4+wRb^x(LVa+zv?q!YMU6BerAC1Nu|oKWS}JKUFw;3Ngg0WUQ=5x2 zztuUx@Ymq2E14#=!n`5P=BC!Us>0~7QoLGH=?R({r$Kd&nwUn6xun!@if^PWcf;Pt z80G7gFWBHRcTTM-m_D15KRv-nS!aeRg~~J5YMf7f{<_xL=Pj0YGev5hQE8sYr`D{A zv+m%J$u>#Y_<)!iuB+7MI*RU8RNmF=u3k;HkB^aU)S_nXHf)48VD`E|%bSsonJUa^ z9nGjQ4PHN}X7#AcoGACJ%Mq*j6js}=FNxlEx| zZvTy;nrg(Wy_mg`p-~;)Apdvi0L+kWh-*Baa+-kk{(hu>tW*y31j1-6nf=X&RQgWU58QD_?1SHWatnlUkNe5@Sn8;mYM_F|6be?G?v8zjnWpmo zM*UJBYcA0MzfZLS1D&E?PJ-wwVzi6vs0K4~@C#@-g!?hfEKOKP zOvqbl#7a0d#>pvKoJ!vDG_QXzWCS%PTb{P}WEm48wVey;!Y(@~U0uUj$7t}n7v9a}34gbDF5L>Jl0Pc+Z@&&=zFg`Hp+TOwTkB{+1+__0H{1epI{E6~?ITa9 z=k2clwN(J3nw2>G+V1~N~1 zEBy&yB+%kF?3mwRp3GQbI~+(MM?Gn)>(Rg~KWQspc-ogJ5BY+AuBJj^wk|D3RE-i_ zXz?fL@Jh4ANWT1>eX!A-?D@Ps<~ZXwZB3X#e~Keg)ZlCJWjQMS?ffDCjHjij(hm9@ z4gJx!PAO>X|7A;K{-`hEGn|$tzkl97p?kB@!wlLHE5QJ3;p-Qbb~<_L3p{3PXJ(?# z+OGj^Z3cB4{-DF!w;A5}&jt)TQk3u|{Fy)t9gy-E-iRky)MAJIkup`Kn+HA1&vIEP3mTTeQE(|K(Ww|I7XgM_TgSm+VvGx=~JuP8AVjlCKHR z(qXoXddZ0633;aLOu|7FTdhxV@PZY@#f)ZWW7>$1o=X~wNtVuh6N}ydI=)yRMbCw6wZeT@_z~j=NQb@`4B`7=Qze^l;FlS z^I5}rHO%mvLc9>V$YD-oU*`NhH(kX>Fj^J~W?ER5kWDphazm6)4UrsI@~P>1bz0gP zOd}agVRkBE79J`7uVg0^mQk#S<1sT!hAGh@!-kGwl$9tpZg7GQoCCd`WBYVxY@1fQ zbRFC6oFC-+p{&Ua(;dmWOVg38x%}Q(9&BaeEJ^yPUv&qw86xZ1)H~*kZfM}M0k{2i8xJq)EyKxP3#iogQC!+gp=d3n z%IRO#X&V-Kn^iGa^!`@Kbtt=(`^0y@y%0|UkIH#I6P%^EeRmcb{d5&Cld+ zghwG)%_dLS9^x%XWkuN;QkiFsU z;4{uOWE_75a}?Ygz5;p1`Gy<`?+QPJyzBx)j)nWfpCY$iNS<&tTogCtXTmA)KJbu> z4C&WkNDLl9yxa&Zn2QRD7zMwM{LDOq*Ly`q!`8*9@Df9=fscVlA|HCGAveRv!g1s? zFC!0_o{=WxOD{L%Ubqha8*=&z0*tcdGvxQLG-L%FKZA&^uQJ4cwIQpCKzlL}`Fp~P zFpZa9*BJ5<;We1bOWC#92;rYFWy{aVtFJTU6PU~73*_eO4fzIcgx^L^B@Foiz6E|B z`FaxgJ@~lXNyOs-ew^|1uFb1J~Vd@ElKM4g4H( z>m8f~zXfkZUQbO=g5QS+ET9kXqLT2(@D$|ZQ-+)ce*w=&zPZVei{K9U73Aj@8gd2v zKkzTepVHFCI1#@PvFqK2?6KI8+h7mBFdaoc>K;QD!A0hXeZ)!;I#>+1o%DR zl?*N4ai;XIGv%@(k>>sm7|j}S47h^MYKWv3!b{sq@ksUwi*>|n{~Wf%>-2zmSf zOD31o1@KkKoriVX+OFpz@r;jbU3SJK%g}jll5Z(y)`NWd!r?EHKeb znY=9{1Rjd~G{1&^C44gc6Y>M+dgM0v7Whr%08`}#cs@KL4h){_k)MfpjEIwwm(BCY z(Cruz@LJ^9WgZy~zW^^oe((wkgx`eUL_UbQb`ETm;;xbJZS=@vunoVD{Pv9=`8!++ zm*3=(A8w`#;BDaez$C4|-6J0nF_4Jokxxx|q-=YJAbc0{%L}O_JQnsX^2o1udt?+m z9}%pJ76T7 za0T*XZ&C^P7kEAL6>ocFK3s$^Sb-dT$0PT{CGbJWCuKeI7x*~%dgS$lfjiPAaCHX_ z_#cn#1D^?RK%TJCBgez_W%&QAfSJD#h`4|g?nNH$@yf+;0zMb{K)+X(!MDM+$Qf1} zt?+&DPsrO9dF7w*1Mu<4@Amb|2XGP2sHC4)4z2M@YA2D?;j@sRzy*%&#W0T(@geZ& zB(JXl!K*aqJIGHQG|nN}jhG31q3 zd1Zfi7dVUDi`B?Ua6fo7^7xy)avod_Hz416t5?>-`@t_FuOk>$SUlWqzE|cg@`}HT z{+~odGZ13AGL{q0fTPH_vRpYEz6pLF`OQbD1pEM8{-{?5J%)3uZouW>|tM8pX|c&tz6 zz(2s}BJacUXFj|&GuTYzFHiN!OK=U`?=+uWJk2ND_7gcAeiFH1mQVJA&xIdG-ihT; z9KH>XAm4qhPhNqahTlbgbw2B_0lTrlAY%91DR8w<=EAd>a85z){)JDb>`tG;Cw}RZ zvu(f3-$SIgPC&@7@8*{w{aFRWU+(FbulDiF0egzfgLfF_m+T>axfWgtR~_n?*Z$;} zZTDh2hs(zM<;kgWzswVL@BFd>UJ2ie9KY;mzswtiMHBHD@}9l`#>Qm9gfzVMbkpVdd{st}`6_9U_3`h#@#(dKEsDLaR7myF(UEsxk z3dpFsfK=^`Q-f#L1>&;Xw1CtTF`I~S$a~D-BKR7(+eHC+V{Slp7>ZwqE9M1c@fDl{ z-vhsm{9a=~Cc-bnYAb z)$m66H01r?2*?9)PbR37k?Yq5qzygFS`(c#uOUP4)+A)+6^i+?Fg{1&>3Xc!Vt#`=fIBCgcZ>w51ZR-U}G6{YOUXL8P(3a`&EAZ}d z8uz#@^WZcy>ftMFx$PTUHXMLL)BAF6qOfqAwLB6zKk<6{Z>fwLvRwSQJ zERxER3^68{ib+LsEum=?lMg&?a*@oRStO6bJ2O9=IjczCP8P{o2eGe&KS%!ZmLeH{ zFuN@H{acIVf=7zvOgI>4La2STNDgQzl0k=v91QnpEt0-37Rk-IiexBU0^f>!m%mt! zf)9jOBagR><}mvIFd}XQ(%p)sofD3M-$OpIqFA!7iorABB4RviCziv6WWAMg4Fl$kopl%RWalwZh|(cg_^c zpW(6aXygOmES6^Y9C$YJx$BB$J$x&?40*+8#WMI9WcX|3Te8J*Ih}|#M6AdbOB>-H z_;vV4WN!y8hTnkqMBayxhTnouM?RbIDEtn*6nUiv_@D4c$j_`VmM7u$uzZh(ekhiY z;NWfyOXT!V@nR{9i0nwj+MiGn+tS`}C42<(f$U2A!u!Ar10{04T_RV(2f+6s&)cR% zZieIVGUT2+mWWZyz5(7Bxo+1Ise)I+mm%*wutZLQzlJ9u-x9AbkyS+eKtwC@LxW1> z1z2`x**&;KKH9HD+Tnh1(f%cJ8oSP2#;_BH7a*T_Xo*aMr^3^YE|H2qmB>@@74Q(` zlO~tQukb_geB{@smdK#77$scH4mEz?^b$Fmh<_4McY2BJIJ-p7hCO>QR*^mDmB{08 zUw9bunu|*0d-xEz&m|=ixU@u$8OO~BcnI>1i4yrU+yE~}-r+VH1uubXkelu-kqz*p z@Y*{|*#9jok>X>i5fKf@yDct}UhwPifP1;1xkL_yJ^is0dFX zY;|m@oJhn{A`VARvys0B&cKhHP%6WxmCEz54A50^seBSEmF*@nzr#iKrSgw+N@WaO z3wzEjl@Sf4au<9S+;%CAyS7w{Ct-l_<;W9mDwRXvRRi$<*8=a}Rx0NZ@efX@xV=;^ zNR>(g{tzDCR4TvTUn-BlWdkYnfl~Q=X{r1K?*;cxm&)mnq2kFRW8m&9OJ(0yGy>0p zCnHaNwp3Qb*THupKTh}xP7K8Ve+Agjm&&(9%;$s=$dA8ND(3NwarlT=OQn2GsT>YJ z1n-Bud|j!GgV(`tAuruP9Nae~a?<~lN>3@1BTisc!22LS=PQ$I;28WsS(&WvStdr5 zyW?>pJ_ZKwSSG`Wcm)0z^3l7L$sG6{xE{HG|1xvdjE3=>cB>Pe8th(EB9%|7s%E0w>;4CVe?!0elVeQ+JlhLGWVOvw+MA z2mw9>{t9{MuyT1F9t)p>{Qbys`4&D8zWCsB@l7a~38&#n z;oXqGKB-*Zg^P#Mz^UcZgAgAyjdeQ_51v{sJDpW7N5f;`amd?VUoI=*zrx2LhaW7L znbSo=`>-8HZd*|<2c3>hz_PMj?t7+O?uGA$*CNN(l#6i&Q!#uC^38;k;7{PC|16ic z{#hQEMMV6I2=9C4GJQRnz@vw;R7TElyK0X!S&+a#BhTRO)KvI&_y*)%E4#@j@UQSV zAjwB*JpqrdGu$v^| zaqxY}!$RF;5j+8&Fua?L*uR^!!zaTvW4g(Q$9I!h45tErG^3krd?+Z})w5OKAESFD zC}$D=I-9izd>Qife+x=0+;;@)1>~}LOHj6*gGz}Q_Eb>%KO2-$@CbN3@|S-P%5m^W zc)RC@w6H@3cTp?k=yRw5d=B!0ohxK4 z-0MJW3^^X?TOmzE>_)`YJu5J*3V9bE4{x(~g=OA7Z5QS`P2g{mL=55i+m76HI(s*s)4^vVzt2sk>-WIv zz}36^WpD1`?8#KT^+@J)i!X1!p@ew27!;THe zFm7=4*c%yM6$g%IxB4*=*Anp;AUWE*JbTavgg+&tZ&t_)g@bDvD(({3(11 za$OJh6{A`8!nYwGz}9R>xZf!J|M@^a_GW8|2vO@gBP>Q>i&b?!tLC?AxfMGq zP78qLtb%VG!!Y55ACT9v%8iZ1>A<}jN@OUD(t+dHnxn?^k*io_?sF`Q54a9_Dr?5* zpRgZQGx9%J6K+2q9{`vCR3ambOXWlOQ1~k3D+p&#zy{((yac>JxPXY!a0zR`Wvub$ z!V&mul zf@aoaoQ_`qa;f}{1xv5v>HlYl*a)m;g>ujd+#G;=_?Zb=guDWO2sa=PX8|&U1<1eP zvye~Nw@iM3*Td_OKmT)?oL9%w5O_D%6DP7BIAsdYi!iiTkoRQzeg8x>2A_dEnc4Pd zo&N_CaU1YKOPQQJ6_vp|x0XpO)9dB%LGZ80o>Ap;Ce!J0@S(_6%wC6_h9iMbL|(+? zGJG0acld4OLvY>GnM-bm=OG_~>wXB={Rn(MatE&a#~HNn3nKcQ(2WH{P#(dTABv@q zK%Uebl&kU8N5eNG?|`db1pgVHhzF6f2}YCRt}sC(vp2g5Cl@AYVT#7?wAfAAP?(^R&)w%H z_{>dNiBBVcyx&dOrZ7PxkABEa*rPB(BezMr31M^hg1j_#b+el?x$qK=JmTSG%e12I z@gp8ClB)^YJy#W;q>*3e5>kZ;8u=~Ljb8C^VS+{u=O(Boyi}N=k>4zL6Z9pO{6F6} z%dyu3SGp=>0Yr*VS+}^TkR$cElkkJeH)*0 bQ;sN1(a3|Jb`y>-NRWBqTvdKxKK=gyJbpG+ delta 166684 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 Dr^tiZ diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 5d62ac75adfa22895b81fbbadadffa477a2fd37f..ab8a1a68c73f4be3997d44d5728485eaf5a9e7aa 100644 GIT binary patch delta 199237 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 z ziwhQkDM{Ea$7|e69>WdEp39@hEs28clC5|rD5L0)nN({XT|q)6O)QJYWP(bjh*E1l z)_=A9UIg*ga!UfqvKc3xA*vp?mZgqX8mimcD_h&!E0@LMcWqM*eu=Xlw@#iW-6EJy z^~v`LUgF||17;BDFvO#eTeIUmF7oi0tGCG?;xCU|tFyVIj}qIKDi&fma$~NS2SANK zwdSivf}x*UXZe4B*Yx|)Ppz-4`tpk02zvMJj#NsZPW%HeP`Ky-1og`h**~++gL(#Y z3sq8V{22~ijp}%R2E!KP_sl1Qzt@?5U-YCEvuZ%Z$Imk4^2KjrO&8BU1=AKqp-m(| zjFrQuQ90C06EH~_UX%i_VD$hNdJbL@V-@+mzqHPm)k{G2&ZKN$h5Jjc9-VI+r0!Dmf$IRqV+3(smLg zLidsVgShb}>lKX(J7(be-9(fb55~u+L;bGN1VAf2I~k)DFP;>%>@egyf|7HQYN{R+ z1symI_x;AY+8E0?)bLe;O%Vrw%X-aU<4fu_tuI@@2OIfys0EkIw~pAh0!Ni7gJ&ES zvBT(=KNuO3sSw?WK!(PvW89&vD5Y1&W-7`rFd$%V7k{{t<=q>()laxoH2vsi5eA7A?)Rv7e@k9Kc$IBDD$B~n5 zwB#%Hh$D}@>4CZEa%^F1nswS;(G@$9dC0m0=5(}3NTnqSlj7DxxEnZ4JbK7V@3vP_ z<=;GHogys(SV74e$oRw7Ic1VAX-bgK#)7dSgL041sD4OP6saL(PApD;%Q~ard{YuS zgIYnO94Sd1QOM5^TZ^Xh*wZ7m5pf?-#0-)8mNgsIf0$A&e9LOMWc@RJqTCWwYbvOP zcfVzQ8beixku$j$Wi!;P-nKpluW+mWXeF<3mlArA_A&eCuKwj*2R*nRD9#n4#LnIV>pqRSylwq``|z|o(=MASxI?I8mDv! zv2gN0aIxtF>#0&MA%_ZYQ4Z3{1L%nsUePgM%@&vc#d;0u|0x9oUGCEPo8bD-6R!8I zg{VK%X{7q!MmY!SKS(L5{)QXw(fBr=pPel94=`6AQK|_OtSyVBp|w3ic?N3Br|tgQ z?ht2wh)D}M(4{A;vQ(pwr3+8ziF0N}O(HdVig^D+>n^pBmhO15kNbU zN3rIbpN{{nKe|+uWverBjyjfjmX^4Z zjkQgyd77t}6UDoKw{8)Qf3vP)=fP>_X3d!?mjLKH!S7rB{61Rwcp|!j zq*=+mcM<-ze^}>#K*5hjl-ooYo>5`ty4e;{S;{$X{Hhgc%Tw6z;Z<5akl-Y+rTEOrby9v+&WdZiu{kVgS>!0=X(giRQ=F#>($t% zkmr3CcfXE1dcOU%O_?4&gK7_D;R)-dl9=PTni!I+=q6u{&st%u3Cocmh!B56zQLLR zagYQvzEb9*P||Ubo+`Lb$Oq;8NWQ;!BOyr_!$|)k5ej6H={W+@dm^#oW1lq@j;@1c zvb0Av5&GxWpYU_;)l|xONtAPl$RN3=i|)6h6Ru5B@5+^v-Ia(io7s^cEB_2B?MoqF9 zQ-QGoJBmt+{Z_R%I3DS;u9p!d1;#^E#Kw#h&8oUl-m)Uf{WVb}ubKg`r_WMQ1g3

h_nc-=62+@Yq$mGC(7N(#9X*D0 z#NH=lB+)qBe8E3KvOfm%9Ciqxlo-TJ8KcfIZm^8;Q&1=J9o{lV zEwoHxY3Ob$M>Z{hxgBBRJ7d)uGyMCIG=K7A1ouBV4V65u$PxHcfaNqoYMcec2~$Kt zoJv;*S;AYD~|pkCQiIFPHnTy6^r84 z0?aN9|DvEnY1$L|`(=f}lW|o0q{yXr}lg5%>*1KrV!^$4a4opoOr> zSo*5PhZ$h}A0()`h46pwkN%RCv70DFO;leq7BZ-LVnLP0fZ%oBs8kwEGKdkWf z!tn=oNq2;TA`n3V%>}2XsL4@N;k658pUlkiMQZ7JFQ+kKo?E^-^On_Cs~P#UrtwVlAo;l+dV;jTyg-8 zD#)mu%@b!3ITHuOVG15c9596j@ze~p#F)2Gm1H?@Jx@J<05QfK3zKhjB`p-<%?x!D z-YLNB{4}*p3O}PbelDeI%T#|ar#BKe5{M|cN5}bJ>|i>H(4(a19d=Gsmst|=d>WNO@_uOwuf+Pvm`MacEa6d&@c^=At3TGCzbMnyQO(kC z{K&kY`DgQ{Ylwl817hnTqJ{71>N%1Ti82pT5R05!b5yd)1g}wF26-*|Za750H%Fx> zc1SZ~ZX53-X+=DTBBlu6Rjq?#eOl*uV7j4pO;x(7 z&vy_b)=pDTnJ$TkybxkHNCZ!ZeOM0{V`o8UTNhGTKI8**;7#Esf`BfY$FW-iaxpb^|`$W^nl!*Xh=uWoOxZR4EQQsZCBRTmdCd2szn zn?UlIzsE?sJ46lh6Et1lEEbFNn765esUwP_CkFepfCh}1c^37l9FJlU1|Ag0JRQQ! zwKSpAnu&YCd1@NE;8KK$(KFRtao;?6r7xSw&G~>9_A}%NA$=n%S)kvL@N3Ek>y-1i3 zFFQ}oQZuE@LTlEgM8s3X()nuUENIE-D+0T`LE(Oz2MtFx;+)LrJaKl4nlRj(uf9)Q zw2Oq*AQ#OfF*E`fk>|66h0H+H2@;8c;wdXIP=&Fn9i@C5gF2rkMN(~njL0SoFToj` z<5k2x}c#9iS%x# zMu+m@E3?(yc%$?4Wu6&g0L+PlM$B8#x+7mYTkW7FY$Y*Q!yE|9fk7EV#KFu;gCZI0 zI>7J_CsC<+<-Lzan3%N`o^jNf3!x^bkZ>BJ3T6kUFRdK=@a87Hs(J< zecD{+@BJu?_`7+stij_z8T>PzvjS_=OvEoIzB|{<%+r{BW>E&)=BYX3SsGeRb@x|H zteT}xl#>B*B*Drov&6UOsZ-#r*x%l;r$;t}O^T92?75G~~@>=;;! zOLjHlfko=(=t>!pA?7S*T^6Cm>cwg|bQaj~L7s#V8^w<`zC-+SaIsp9nUttRN|dt@ ziUFqpsXwEwrpPQ)r%7>^WLEmjo{IQ;q-hHG_TgYcDSHkP@`5t;&KYt~7|=Z2LCq$y zcdTFRy_G^rMN_#-hvlbJyCDSUh?~pRSXt~%Mp&x&DNLZ{xi3kxf2NdDnmySSfVT(| zVFKo7gl1HzwU+5$JWS6~26a$Towx?(VD~Oj?@N`+3O+hxlB~l3`0B*5<*4*!OV!*U zz__a_2(Ul`jx1F(W(IP=lXFDWsk=caSz<%IS{9%d=x!vn9HEXLK`j)`)bbuBf4N@WDk=7lgkCDfRwKXO z6>5$_G|LctL^(u}exjiqm}su1&_Hiw%8Fl(K=JSj6VVW!iH36t;3rD_>x3twkuxnGaCk)R43Qr*smJgoe(Z0$! zBqvuTVsDc=U5fH_H|8*WDPUP$?bzyY?r=~UlurD%Nqrv{JT!shWxD9%Pohgci7vel z(J+=&#H-D`3}PP11{nsjjPltmWAT%RVqEO^BFpH z_<>c>^+Ya#ACRtSQ{B=Ii>`9rN=yAiZEBNTfN&R~2yNom?zd9Zq;|E+f_usBJRsL0 zDAItuh4A5P+tm-E=7l^OL#BDquF6RW)><^eL^=LfccWQ-4@)}n-BZ+@#6U1>JnusA zo2RHXRe@kut^XF;unjwo6OMZml&&h9+pe$4*BwrsUi%Kd0UXVbf+th2Z(ghB!$t-t zxj4FtE~e3_r11S~)y!ac35B!gl%Sf>^R!#7ht zWHA&L-bvv%QuvDXYH<+1hr$n1_=NS4jso>Om%`~lJPiLe3TI#cmxSbVDTSX$_@WJ} z9?a(o3jYa(f3{wo77Txe!v8W7|15>mH3reKK`ja5|48B6DE!t9=Jx)B!rA}i8zJGJ zQTX2o9~$nZ@EOGYn>Mmq4gxjNg}7j&S`D&pB)$E!8`VRjP&U{!VDXYgRxS^9tFz=X zS4E$d7sO_YQ9WuM68?jDVpWe?CEdru;fQ!Ro88C$kz(jvVfa-*V`9r7-;miA+^~*H z7H2oA$)i&bLjwBS#+4jU|_dQ<=2UgJ29J<RFk5?4Z1)9uq=ZGmTH6J@{I*jB80;8qHk+c`Y zMn>8WS>$5iK|{8?)On?3i$j*}a?73S@?;kfy97Et;EmG_}O@KbeeeDqh5mVsrYUmRM&wb=-69)XHdNcF)2SPG{X|1iP z$JK>)3YNI`=Ell;xO`~nsBf=rlwsA&YpYlKeU5~>yYYvbJ(1Mb4BP%5`yjoBcomFC zjLu@_xftJK(^=T!7m6#-Qm4nzNyXl8uSvyqc_LT&$maoK6c|YyW}8J&tidGYC-%d$ z)LFCS%JN6R=-dKJ4LvYKsj-;Oo{hiiT4`zhtQ^C#bV$8>RLoMvyGYo6q-N+F3Oe=X zK@a($X|na(HzB}d4iIr^+Wet8inmbOzO(UrlT#nCxd8XrU5oT;TVJ1B_iX8P>%ER{ zr|#}_+3gPBX^MBfDGkao{Q<=0vAcDf?y>g|;4xggj%RzjdwUAHQ4_t)RHX_%cc`y- zt6i^aUW?u?ZE0Orh|$gSITY^}a{(Sx{(6K0JoKh-!50+6rIg|6UwdDl-Qhs{Dhj(c zcNca>b@vP}PSr+PVzw$?yV&@knh}k{ge^^55&t#Cd#0%xdn@lx5kF4TI^xgAea7&J z+;q(rf3@PhG%O;fK(BX*1AkU^@ld)}AAh>y?FxmY_Udce+Vu8a19tZ!y{jBVoUhm5 zpSpZ~WqF;`)t|3dl{Zl3^YzB^M!RD$UvDjMwGTL5o_u{xd3B%7?e=vk-cwB(cT#?f z%pDh~NBIOzk3UoK?l8g8xYQ^#yl;ZGCT5f3Jw=>$nVJ&oPcMEyK`YDIsd!zcG=0nL zj&>OL2TKu!8QLi^<%)N{xHvba5T5pV9@pg#&9x+Dd>WNxSPQT*qF;%1! zRMSC(9;k_Uf1=hWUWhH6yJJOZJ)eQ@y-s0RjjeQ z+;}Z|kzQ8T(Z<|WC@g1Ll810X>TJck+XVd|t$j2~8~*%JH9k6q2t^#!wX$)T1i;ig zJvwo+TQohP-Wqd_;=N3K_v>mwR7tt`@Neq8+(Ny^=IF7zoP%zC#}?xG9ZuI)x`eW$ z*Rw_6j4LahTkP(f;fH^wZnws-SG?_}R*LUjtfh)8a$6`!dN3!D$&{0zD{SfTSZAD-%P zvEG|*`YtHY!FjrKfS&Jm`xYtQIp$cM=u024yUZv(ceUG25$+bd3#k|BC3(KEX`{Js zs4E0g>}M+Z@AT<J%bw$ND&F2e{$bg7=z9IhawyhmMR4WoSXu1;`pWV*+x0%D+vD4! zcsHA}4)5S%SOd(|Qpa=|@5Jj}o#GEOwe(3d3uhK~b(Tuv44(}{+Fw;1SVXwdHcrEd znM6@H9^~9^j76SKC56*sNPY`S0{Mk!MHDsQa)N9;y>_?HrFi>HZ41ezMb~YPF5TAE z)k_p;lXajfxC3O@i#1ix#mwolcNHMt&U~HMzI?r~FwfVkcsoy)dzY>^IX##lUG`2F zzfdm+9An*T@9IS;OA3;V+ntRz@H$4l#22>KofJ$|E%Xy=Rul$g=?S$kk18w2#CL|` z-EOK`Jz``@)m!YHTgB(ksVTxYOG_LTNF(mwuVxGdK1(t8boLF>TyX=OWjzwVJz#pzq zjVy*6)n(Vaq~j7A9H*G-vVo&=37)P3v(lCiTcr^&OD)eoO;WO zwLS^V*Cw3=v!>dQq0Gu(IB8~WA;6B41M6CYIi9T4hN>VYRdf_+Cu>4ulL3731vO0+ zeXgn}X$NRYwiUohb&>l6EDbja-pQuk#nMq3WLtEe-9ePHGOc@SX?ge7osqMw zTe&U>g_h?FpjZUO`!7JxPqIzg;g5@P&H4!(oJODcnLNH@IrfDDZAA`T#xQ}>+>Ld` zxf5JcI^gOl?CkFGeX4l>MoTB|&wY+Q`SA@n{6EPeDzJ!li-ZH}bW5kWxlrr2bY6SE zRyPzjGeqLUvf}&_-2KL%{~tDt%!Na4EJgjkKE>N@8VagKIP-$jWw@>&ADW`?Pb-P+%StM?~UCo)am|)`+yW67=I`q2w>gDydt#o4< z$TIPV+mUa%IB~nGCsq)WHiRd9lPPwID7-_>!M&E2JJfxaO7ZR;>PoeWKsDmMJJf|@ z+ns8XT1^3~#aX3VhPdNSwc1i6{&c6h+)^t_?ow+~>L^-Oq_l9tS4$Z$6PF;$vRu4y zms)SB7ZdJQhb$|^^>?dhsVfOTB=+B}mWg%us4FcE;?8^2JWHc^;U0Cs(j=CCL!F${ zOsMfn3)U~Y+YK=hzj|DMaxXgJgG=1QAGe6FeFJq^C7%0+I@{8^?_TvrOPjdqUXMQxJ~jJPf+Q%m?e!_Cc3hKI-e= zbI-w^yS9z?+}G^Jp8Ln&R&W1m&mDPd|Al+*l|NGBEHT>@@7Ca+d+k?Q=|OdE#E8W|M#PaVudq|1Z~;s3z4nshuO>6hx7FWy#nE8f#g+vBj)Gr-A!ucLZBupqubZ$#%cJPoBKcQpF80&qzru!hso3}{ z^)hU$kNgUIz_SH*XRxgnI>NCX)zg1_5tuL#ELjN6_*C1B?PMwO) z_4ePXJFvNa|99w!W-;y+RH8)`y@KuhD&c-boo8tk_r9WDjZJjf?@>g%IE(&SEgt(l zZ=(P3dt9PCMZ~>|-Sb-U)~o7KY@!dorWRon?RyQ$H;B2f)-|i3EebyXTWRlg*!7m6 zaexk&a&YE|W1%h_ZGeO5qBHy`+_YBsx3{i)yal*30^R}a_7bmqk*@r;q zg`-W`$Njw?y`|gMm8b6>?AKR19ozZ*%4NqfBwV4ma3to|adf@g-rKpwfn%a@nD0u( zd$DOmcnplc_BP%hJ5-?WfE|WD!!Y}pp}Pm{yL-EPclV+s96Z6UVMnj4YeYdfm10GU zo|}^+Ygg-Xd)TUj8$c%)UDOD>L+_E(N%(mYRby}M{Rx3O!0e-D_tarZmB260LyI|F=%u6F5_ zo4Z}aF*Fpb9XQf*dyac{58{ZOL;82%IH-?4iHEvmSJ)f?I^+oB08IAI_}!jJr-noS z3H{hE#p^baz)1br$(!D2YP)Ru7SIJZjwzJtPc5x?3=Db-B++(biSEHMT93zfx#GRh zR5CPv$&Ld36rv~2XU5DKl8k4}ESQ0#vmSeoeKXPaAWqRdoj5;0wtT1#LZmr}&cHAR zb{F*}pImd9_~`AYIDKn?MLfQZigyhu^^%7I)+q8ojnk0rQK8<1K}6Co9r(iV6XTJp zKpih3l*{?l&gI}NxQ;^>V~WMOWv|2L+V!s#xkB;Quv)QD*JqT>kQCPCI^MaJr+U58 z0lr7h+p*Bs*|+rBT@GK1;$0EYJeE=_{}kWQyi5`ub?|aqAMC+4V;(mWqW5vC;9bHR z$tmkO->uZ+SWGMPg}g0kkOgb z^|s4y%w=*CU?R%bw}J^I34k$ZELS=Qx|xy!^9FypFs*s0i99g|2*jX(LSM{HigzCy zD)D3rW~LU`U}d5?5epl#rdfdNh2I9{IBcC;kbl3?H;C8@W(T8V&MVYwd40vKi}J7n z;S9KNOJP1Ou1LdYB&XZA!m=)prboU1qnS)A z_TC}L2QW`Bdy+Q3bHq34o$A6HK{%Ilkqy}lDLM_t7p)1v-p(@2&W+Dc?5_E#Tm7^J2 zStkAf?L&gVFn9`achH+9bD)Ko94_l6m}rdpfKxnnor}X6KXI@Qz;Fz zA&l5?qDWk30@bdqg}ot5tG+dgw%y{~^TpYoZl_wB$Wh;Hh*Bd9@ZG9-Z%{@J(NTJ!-{zY0uXXENKXN!Qsjw(T zA`wj~EF58k5N-(6Xa*P+Dw!E{#wq1+V}iLHGS643 zco&Ctz&uniuw#&2H`whO>~_nwBWU%D@hKc3LkDfx0xcdwi)daBW{RP&R561RoI}d?(ed9qc@0ZB}daDXm@ncRL27o6op}uiHTx6Op7=P@t8x0e{)F}NP|z3 z`Dc{Q&~pRRguB-cTSLIG0MQQ5*dFBh?p3^Zi2aYLMMHAIj<8mf6@`ohzwp$Qua}nV zC&lZIK^O&MPXOzeEtn~c}x zb@guV?HVM0bn6Yyo*uGwsgiOCFkt{`?8g#KSq=SDQHW$dJY%p+oP$hTi_2^5 z+v~|5AH=`e*|n=+;Pjm=1v}g}&u%F&%jLlC+CnR`V-t0WKNasK{4u_p6|WGMzp4d8 zkn3z))bjxP*4j_!4MENg=}hy%UMQ~D9YMj(W=UoxTscvW;qH%^2pcy5Jw?E zzAF^(MM1KzsP41d#Ou1Icht%nGh429^llrp>-9Bq>2~NOrAcw0gvpZf29joI6bu}s zTbuNVh}&U73$0E-EVJk zadWWXV4~x7$KciVJ4je|sAM<8}BZ_O>v%cJbkVc5eMOXMn| z%T7ptK2}^0{ar1ZZ?vJ-;pv7bXV=#^W7=@R4=R=u6o?+TbyH;>dh=$MNFBa!DBjz} zEl+}m+6G`_i6J2_G4=@#9s-cC8!~QFd94G2t9whnUe{V)2P?~WZN2ET+P3mq_kit~ z6IUE+YC)=lB>m^>P0W#jX$$WdR1SKa{SYt_t#5#T&dSvd?VDH#20e+GsoKnCfpG}5 zf#)xWl!Rp4v2YplV_@=hY_>VJLhRmLDsP~Ohn`XwH#I>eY1fz6Hng<0x7If;gNW2!^lze5GP3SpUV87TJ6QoPelhxS@g*=(-)zh^9Laxof_;1uT z`}+SzuAfi;Z}h;!Ppd^6{*$A1isD^mBA37&iE;D(iBf!FsZG}?#^(Mr>3QY3_0#`w z|Ib&vC3I3&l!Q9qtsUd!A;n@wC8)~?|u1*^pxzEgBlBZ+Z zlrjo0K_~0wh1emI4C>$QvL?qih&2FLEBt#9NMNK1fO>;9b%kV!ymS>q5&Rc zOH@o2nHu zJ>X_bq#A^mPE14kVK<46eE1M{#|hh`Euf_m63%mcVMj_KB|_20+Ly2la56=bGHoi0 z{iK+WAH+pnOuXPL(|#Q5eIG9JI10mWQ;odxBzxQVdwMfnX_0~@G>){xp?gnET_k<_ zW5U=Q1sPYQ!pjS3Tw`%Sb<0^xqGjow1thvSTgtmdQiS(o|3d65g(wi>Nc-L3y|c9? zUz#=AK^svbA(OO89f+Q#s&E~A*DKz=C!+_94$X(V2iv?OqM^C! zxy$U(osfh~k~^fk-7MXKUi|71+_vqt?|{5Y*R5_;yw{p4;UA;D_4khpEIFu*p(2Cb z2-5)fCmQ76a)K2QOaqHa*a?x_px2XLy<(DO?YOBr5?w1lDbK z^+rucS->lNV6!8ZiPH*rm9d%zy&nsC3C3h(pJwz`;ND_fIM~# zViV!JRPml~s$vM;p{IzAt9tw2cFD~wi{rdmCEn#uvYCW`46u!)Zg5!l@g6!bq!UHS zXp;H;yc}k!O(So*eP&E*LVaExw-$3gHMSiJbSzy^p`WB-!NK9}_DJPbB)NacSEhL9 znL1$POkStw@=Y|l+QOq@Fjifj?>mb38>Y0_qJGJ>H!S*4ee@CM5KpbQ5A}B1w_q2I z)3e;_{5AQF*e`IW1unork4v;zTrSlI@)jIjzrnOEx7>BmEn}4Uo}C_6Rjh3On`^ig z7bYBlJ#gZg6yS`daz&^0-#x$wE@�wlD?I=M*oTM+{Mo`xj1EyK`-0LvG#|$_J8q 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 CFD*a- delta 160655 zcmdqK2Y6M*)<3*w_G#(8x06O1X>>wMNJ58%B!D0-bd)BbA}B%S+7)CgV*vs6DqaCa z#8^S}>h&rjhy^?3s#jwJ#l#34zu%hK=j0p+%KJY5|MxuK_uPv~rmR^rvu5>~{rA^% zKHZRI(fkff+*KO+2QzfuGa_Po$;25mm()+3wQ$+AxeK~1T0DE#2>!J#xVX2bY2AzQ zpW>pf-R=xah++7>gXYE`EN0iuev9qK4#k29_etJKr}xoOvoxVQPPuM_(~YHJ8|xzSjaB$LB_hhmjmRPTdjI#V`11ra5(jj(JGAH9te0@(q5%s60<{;iTZ6SW>$luEJm5~&$(UK{w6s~P zbmP|2?BEapEN>0cwxIVaDoWV(dFgwMKV~zY9k?YpR8})>i$CiBWy~$lVO54vJ`@1@ zF{7#c%A`bU(Hz%m*G~Fttsz=-l!@9H?#eKhRV1TnG&eR>T$AA2G`PL#W8CObIfOZl zhRS#}Z{fzK$^^_Jq0Jhg?|QZJVqP4i#SUq+&a}2!(`~LuE%0=!Lp!BwOBU6K0<)W} zt`MybMWLrpajmlUjH|aXW=PklHtRv3nu^LZu6$$DkSstBw0ZX#RCC7V(7F)#U0)3u z%^kzIT*Z?{#qigoVrY`bdbj#%%^!Wlv??0&xRE*{BE+G+&}KcYq3?@r)&YFi;1P!y zzmAEW3wTx^I+VoiEV>v?ow* zZ)KV*2$N!%6qfXi>~fN8tvYQ!VbIl>UcH>XA+9a7M*2x?cWW4fjm}GKv+mSf(KJR= ztJMqX?V2ma7%@6dZ?oQNTr#?cP2#`L*gAR^TfQrzrW4ce(29-H+B~$l(O6Wwo4?L? z<<;%c*_+0X!j4M`Kjd{|<*_rIqGzZLgD|0!G z@5U2}Jj`|lOqj*=salpXdQxf(7DICdY6DN7)M$ZdFR{hrjpE6p0`1zUDHW9i#|*xJ z#>R$;Ar}JF=sPL+g4#K!Sd1?wT?ov{7YHxng4#VcJ^6y#T{I)=g4(%eBwSFtf6Pq0 zpmyVCUD&v1W`+GFywS5~{AC*uf-z`L%muakan1$d=5N)?r;IJ{asgx|o7P@<)9PUt z40TY=1vecr@PeCG{12L5__Rijx?ltb4Zq-~BP;*9>1EZ%+>fLGdiT+;aM6XeJ90to zW?j&jxr;As%)=MdZnSaDk_(_<%r$fAg^hdQ0@@wAe2Uofg3a-l6FzkL?7wVN4CLOr z;sTJHJW7_B*>JKf7gx*>W~BN|(omy8(ba->Ejf-wH-1_X%`yzz)zrM7 z?t_-T%52`rD7)GT_30|z72b|Et%0XO!_}le@79gKUtJs{)oTv*`ae20=_REHjNBiEfSWQGM5A*LLHRl{WkzXv2e)HjL&G8Z^@@i8LKHnj4BjF%*7;N#!w+ewB@+ z%AD_R6w=;ED!_wmM&;^4Ni66PNJA5L%Wb=ETKzL)Cyj<1dNwEo$}#WHHKmS2chj}8 zpRBzqiI22XC_)EjLcJ6>E>2ZVfSxeb_0w%{t41 zjn0IM8A>xHn`)ZH*l^S2U^T@m)@FT8+8GO)bgTcva;mtETHl z=&hMxYEZoI(T)DMR`gLQpeNZNnnFQRD52mu8-;*&6i(~LzFQN_{s2$?$EyB;?kT`r z@|{9pd;c1Xk#JjHxI8}^=;#@XD;0A+86wu~=h1m>){PdIO&eV7l)NtpRiGh^@svfL zGvd3_=K9sLYs+nWSZuWxOG`!iKa3M;rG=pRP~)0A#`<5P*`-nCDlm@Sk&QK*ZUnDc zsdwq@F|U6NmZ$X1T$iMdWTFmi+UvQ-$7`2HMiFS7+;;1)CpTu?d1-?*Glp@HdtGZh zrv0U2ZmK;t>?0U7RfNX^)rNN0Y@;l1f9()z*Kk*`R@c;;j%uvB0wT8_$A8OlJJ=y@ z5%Iwi-Q4=;c$+n|2MHUs_x-^}h#Wtbu+T5`G#J9@Gp=67wd=aXgA?mCh`XY~w0C>x z#-VjFEYtXQUCO97D{~)*PB;z{-fAK*;MNHMN%)zz)fr-t*c3lvI~9=__}|o!)+t`j z={4P$Y9vL=6>9UX`c*fCF~1=gt(#giX;+UB8^i7=XstQ!a~NbbPo_kLPUaemLM02R z5JDy@+buA4fgu&crViHtrX|;0MRmBd+(7-Tt|%-*9GV)p-xU|4=pPsp{aUR?<6X%t z*ZAPB3~c^;wsm*MHAu1o(BByE2k|{|BF*(Wt1AXzqG&{H@kG==fd-Hfa=sg_@+|vQ zt4)=0&dE-JJ&yO3?cF^fv1Ro5JHM8_-lBl_gDp+pIfmM)mp`CKLbG)@B`J$5IDk zP31Zf@UC`OJSHfQGT2X~M$`}24hscGr;S4uEm@%*W;fP88(7!7i5~P@K2 znfHuV^^Fdr;hyX$@_GQd<2C@w*5sM#n{Mp6=OWN}%)Ket*Zg#&@4clagTL3W&6<<$ z>SNq-Z+CwXq93p;aOD{9+?$T3`~8jI?j0gwmIMFRSnQm&c@9Q?!`~Qp-$LWQ4PnNI z_mNBDV1Th@bBrx~;{9h_U5&{5iRbSRFb3a$qw&b5Fyo8+<4|x_4c&Wd#R?k9WC zf5ah%er=1i*szGkzWbBqiqC$WR{U!P>%5pWMS>ejO!^ypAFpOTjnHky==XS(v1ND1 ztN3V?aq~aA7~8ky8U3CLGrrxHhW3|58)4f!Za+WTa6DRMT)sV@Wg8D|r`8cMG{Y!= znqi1`FR{`v9N{t?*lMHx$!H^JM_$N4&4!K3u{E_6puC51a96Z3X$R5&$FjTe@=hz0 zlpWM&{UF9Yk8&erXS#80M_Nd^HpT2rB3uE;eu4mOiKX#<0BnqP1E`Pywmp#+Qqci` zUnGDzapwS-5$6U_DFIyhWLijN2LSdwNf;Eyp93H--VI<7091wy>Y($@JE?Qaxt)LZ zbRH~64|*ysWbiovVvI3Q5pQ@Y;hfQ*OK^`qL;^Sh07K3J5N)LFA`Dg~x&fqgM4?wF zx`7P^unc4KuGEmB=Kw1LpzrjNhLMmJDidBkgN&Dz&vq=9Fff zYD|o1v-+pH5vcMY5N`~6Hr3d-E5*3sSvrr0Q_p*P-$^w}p6+Y}KbL0Q^mH(!#DM3B z?cSP3BP9f#k4N2@W(4i-Y`lqX7w-;c1;(l8ve7Lk-N<=9mDNZRTkw3E5&KM_vElis z#3UsRG;NBTVdG~PV%qD{jdz|eNtG%pIRiWmsPc_;m@RVaYK_h>B(geV=nLuYw%oUE zPKLYf7-P)~Q9VtFHs4lLJgvrJxyoD3>PX#RsT@hhXD`G|f+)>!llVAlM^1#BBH3ArL3ekM{Fdlov~py+hZt|Hcrmd= zS|%~1RSnOSDjF%KZYR;;Or@}r?o4WpLPe^G<1%-B_~Ofq)f)Hg>4haav}dr<@;588)FphOJn_vV=qS=bN8hg-CvF|9z@AFS@H>fyGZ^P`AQms zbJS`iej6`;y8*vdFBy8e&N>#GcD@ z^~W+KX{{50wft$k`f7K-_P^LayLtW9|DQQMq~(^ZwT_dD?Qwq%G0KbScj>y>ndfE6 zd7LC!osBL3T+Al!ihS)pUF^MuM~UeR9bHAk^?p5fZToi&=M%W`@3#g(xq}t|Ju|}g zck86A-W!4DHw-!>Sw0kAlNJ(1DM?rPh8dUbPYRXRiOsVWhmFnq<5Z#DQ+V2VYk#*; zsgqkY5C&OlBQVn2y?P{Qv3Zix9y~#MkX?H)0MyoI-NRfmjtLrs?X!+*=w~F=Jx^Vu zBQ08zmrszi=?|Il#M|-Za*h3gyuY&1$i=2iD$lCGmQ-_0fq6HGd|EQpY1(3gxDkEe zarTh$`hm_k^}ig*gz^qgWP;&*CkkfmDskv~OPtt{#RH8g?+nnF>jlQ-PhyN0-}aZ+u#8;zrcFgIJ+4@!cHMS0G0HZmJiAQus06OEf-sHy7)kh|&HAOke@X zNzKxY2i{9#!N$J#UgH-rs*f^uAKr_rLBG5ctLWjz%!W5>}L-)SsVW4VqF zW@v-}_kJ!`easVgUDC9V=}%{0B+TRlhp2ws7G%u$(z*V1izN`qmt1Yh?T3uIA zJ7?y+dCIi|7tn{DK$4z%7%+oHk0JXsQW8Gao^lCt@CPFPh4_=aCS>0>wHBFw z<;%Z{@fSIM$nOBB4uMFaxB0c>IVh8siiBL5&@np z&|16EF@%$b{1fB|D*wo)RW6xczi8$aXXKg7@F{GLJp-e?_@z_+T4ha5RgJT_XYby` zXrr7GD;hT+whF1)ilr2TZs9rXPAnzNSp47I!EM&XI_&qYr%&c+t=)kOc>#cCo4#5n zr|;TxYbD_-?|+TO^`z`;eEZ)@mSYrtGh?juEn*Nli)z$ML6Ip|S0*uQ;F@1MbR_Vd zGL#I!e4IPmv!>tmQ49H0np%4SacsS(-5FP=apIelBv^qRwh6QH2(! z&jFj*o7TCn)x8BJm^Q7E83rjSp<{^_Z(5CqzFjs@p2MS7B7&yYK7^WPc2G{fP%o$8 zI&$YIdVo9m4BR=`*({^JnQYX>He-47q&QLnB&-2|MQm1`^aD2I=jQ5a<@1X(eSRd` zr1eey6LR;4*x`b<163vX+%CT&yQER_ub3`BY5?XPYuxu;JUm#SISe(CJatkcU*Xfi z?Fs~BB6SnYAhl++G@URHa(^mMB(U@MgN#Q*8ZA^kuM3~T2&SeaF5Ks!Kd48j;nQuBsj3A3rS8WZ4DQX6bc z`#HCtTqR5|h7xF$R|=I?!K6x}gd`KDi~ob|;O`f_)UNA-jkka9*468DtCf8u7@AKi zR68sjoly4)2oG@$r=xl@$0+$F19(sQB|S+o3T&Nnu49`p{KOC_26e4@#+F}_((<&H zv6zun>;1kY2@h*g?*CNRBIC%(`V4cmXpik-ko9sPQlpw$%F#U?@N$hQzh)SFehC~7 zbEwsc$(_t44b|iu_mv^w+q;T&-mSzz_$^ zMH|V%h{!gEwpn$;2CTpdXwnP(uTZ0)B_2wIStz&TM5r;LB_8oD#1qiNAIzZ5Vz;*w zj#}H;Fi>rhYrgSgTcWY2C7s0?O)Xie5Tao~k@kErP2t@zS0DEZTnr_t$SC_IsS6m> zM9ucCb!s!VdKrOERh0B~n1^#+jA;;^787=HMnh|-TM7AdB6|a z{C@M>un?k*L#^=*%1bHozD>j$>OJ&$f>n>GrY|j8zH%2Q|nX>$A}J=vGljFhBj+kIM(pV(I{-jZaOn+kmf^frS2AJO6f7;GAoNP%G#X3^qUA*7EMn>cXAEK zLV<~eazRllS~Uv7G_}-Y>LhK-vCbMH79ZGrcve&EG%fOYl!ik0dII5ow5C!As)+mx z*!~jubO6r)NhJfFzEP5SNOYQ7X3#`?MY#&x)HI7$(P;y&HfTQu1qC)zT*HB70_|H< z%S^zcwV-1vfwbz4y z>+?+|Iri)=C-!)Gv@1s`3sI-j5jO+NNRRnHF|YbR*`og-z?%}Ij#B#${SiI>yz@fq zv*x9&3NOndjrOD>M#Vk4fMU$J2XQ7zkf4is@vaP_J_L;VJ4v~^)Tlla)k{S=&S4f` z(xLP)i#)KYlk>FJ`9zHBH)GS8#AHQvzakhkCtgjdUD$@ki&Vy<^Dxo^4gOV<9wtco zRdp>z0Q<&RH}5g#{T2s$TNvxbbAqvR#Fj8YG?ctZhVW?(l04iKXSw-p(%eoVR5GG! zu#K1%v2hRod@UBE`|!^g#Vs^&i5UD#0R1o2&NOt$qrQ(rZ)IYFM^SpHV-y49#oqN)yt;K;OXu?_KyC$Jy@hRO`mqTWf8 zCJxE@rq;!vR;gvldTF%$tFsgLf=~CHo zo+UY#gB5YGA{+6<6>erGjmgWYqq6wO-=`$PC^rbbS4<#r-_ zWl(wIF>M%Id#pt36}Nlk>&!J=|ihjiJYBu%=WQdIN$ zG*^noYAfs9?XL-7@dHgy7~w^>ED_^Lht|3h_|i6};_u&h=@~e{2$3AG?5S7Mq-~ue z_5`qmGt zxI_Mar0=0okkp+3?s`d6{Og2&*_0i>$K{6`SvcosT)H;q7Ev0)ehCiLMvNLe zsCsN=O)cE|ja@@oB@>I1SzP0$F!ly-+#AV$()lsVdM8__A{$RyT*YE^9HS`AHj6mm zWGQh<6OEwLp}a1U((BTji5KHoAM;kDRdS|{OxWXDahNhu;@r0Qy-W;`XT8iUuy+x* zLZ*7AIF`y%z@!;hOqzK-G165bJuyx$j-V%t7hwr35=gzoMP341B2%Uj4uiDH%_qi` zs*9=VELVJ*z#^i_8AI80aCIQH54;!+wpxTekqttVQHhL_j7ltGZvu-JcON@6K}CFcmD z@gKG*k?EDZNAWX{zzBuFcvI-BgPHMFxx;^0L~+$o$zpF#||J1#}H&8aK7iy&8e=oZcMj-4AphXH*p$82fdJY;V z{3w^75>P^Eaj+ieoAMBg6bYUw2dh0^0XmaY9#zP4^E$xkA=&RNoS<2YErl%BH>mty zi+Hn;rHmz}Q{HL;T5<3TpMiG}yMP_Y#?|6k5RlcwMur{_M0E~{OZ*i=GONr=X_nNA zoMZTbxTVy23{y`DZ-D=qIo7OZpbF>AHHz622a1r z<$&0>OKeOZ5=QG}gG5JkG+cuK1Yd{3N9dBoo&>KKjTlHmw_c?~Dvn(aSsqRqoZ#3p z+-}~A`H+&aGkX)-g+z#mX>F&hk(D+atgX;|FiMfu{HqypkSXoOYMO|UwPuRTy0Rqk z_$(GACU#+glQVI z2k$Z2cgXgYG%qCe@NwKp%a+D;kZ60v_yusB5ToB&<72Y9_`T2>9Kw6Xg zp9lFt!^e|RP#Wk)et`FA|Glu$N@<^yMP*MGTU&abfksx2q=DY^3{>Vl(2Br6nU+ZG z$+E?#Jz1QX)RXx)(0WOwP{|tt`*aXWNHP+8;iQ2&f;xmKQ=X)-M4N6wilcg14LB+| z7I9Q5-)n=gD&V-X9`Z(2iyL}DaqlAb_hJbHeQ-gpBcRs1WB0^-Bre}{jEm&v#Uj5q zs{*)ddY=srk$Qj&4l$=jr(A-&JGjHCnczNG;0j942G>J^d%+Ek4zvU}Fyzm`ttpY% zeQ^#rIqu*)om~m;r#}T(+DC$0+lM72`>Y-EO8{;f1;QogE)j3_VFg*ZZ5paJ zQN`N6XRip90*sj#ZZ0sLTRDaGVShH%2@Hk( zD(lA*@M98w_)s=Zf=B$B%MzQE->QHz%A_0 zs(jHJDB=9>hC|0s!rAzza4Z8@RWz-uw6r1H+vT;mbO7t0SgzTdS}S1p25Ktv(+_~9 z5AoI*@vi|aGmdgw5OemZ@v%{^<#ejb#mA*=**LOi$!|akNO8N@;Kmp@L+j8B%FcI` ziYaT~lga}|V82;Hn!|i<63apVYXYwz;H#qm@bD~m5HJ8C(Sl{L&aPbs)QORD}`{6&fa8p>!eAhm;Pq0a41C@lYB`?UssqsJz)# zNmz$c_7J9ye-&B~X>~uuNKLK#AgDj4cGh86?$cGKGWCy@T~i0Qca^(@(GfYMm?YMY z)=j)!&XRM8i_s#U!9LZUjL=$#%7UTo1;b>)F!6Iao03UtCTW?T=GC&G8U=aM+X9`f zM%+`uk~)n>ncI&XqQOHF?`PT(YvbTmhn9%4QzA9d5h+eou%d=qbdb4!z#^W^x7Xv8 zIZhWz&6qNt0%&TjlVjG=(n0Ao9nYk;s)QkQ9|I+j3W&n8s< zea2{jXlfaUmTB4ol#|MNk&j}_wMkCw05$PI9}DPIV2(_`(oU1(+$^HIKpw9F-G=`? z9#c~Z_hc+0MM)eR#Nrw#;YhkWqqWvy?lW>M-tF#GIpbK0&*D3Bcgg@kOFV{pNn#+a z*lh_NEITFfWF;u&oVEfNGYMt!%pevLPue~VTiPA+fdiFz={>qEK_VGKNJ`OnRRZ-A zFV91+X}7^FhD{V~KHDwW5O!4jG=$9!!}Bln3Jjihp&u3HUBqP(EV6OqP-eHp9CY70 zRw>5jJ5Uv3-$>RqQ?3H@dd+DzU3;&CK_oMCNO^57@+#%aV(2KghF_~U zem;ubs`E4^7S^z?4e{`FaCF56!_#q6X0u}r!s(3&$$7Xuc__MH!{#e)qf@wpf(!%8 zhTGb$9zje@y~$)&((0+VE+k&T%vIt8f{C13Mi&$PnHW>c*62em1!B()mUIzZ$9g3B zK9JFkY;){@%+UTqZ@lIj%d;$8w(+pdS79}a;;}3Wd}ObBPy^gE$W1ZxbWuN+<*J-^ ze|PBzTx=Z63YFJpjxP3HWr<^n;-|4J8Yykj^gx4|J2pcX#j7j}-H#l2;J%=*9}64n zxp6F8!Ip1r5iu26#PO>v&C!FbUe9yMH0LuG*EOR45qRxF#Ew z$kb)o_eA4(c8N+}M@D3u^-?AZC$KDq@!d>J!5;;RgFXU}WCO?U5eJR%+*qjRrW0S+ ziU1&oix(%bX$rt3F0w9W#Yv)uj#7w(mk44-xi4FFuFfE8*E#k{b ztg~`}Q2-3L$~~7Y`dAzDCbP#FpUB1WZ&;-GaSH1LpIz=$mI1e`A!?_xBF`&s&97s@ z@v5DC#SO@f=Hg#d*`!$V?9!=KM-Pkz&0c4&4AH-y(F-TnGcm26jp(r5NbV}7c1hwZ z{0EIQxo}KlnT(5qX)GGgBUrV%@`|A~cCD^#(9jW;wPN33m;ei>u`Bs&e$ug~UM~37 z;d(>cfzgd)17k&LF6%3%_2MaF^K>?m6^k>|rT_dZhbWlA8dIF+@g;pD){`=55=;gc zwwbKP*KMKiWtxB5BASzux5qHwlcx7lV@DXL07I9)vHy_X@Ieye}tx1#NR)sW7U~jZc;u~((ezFyY=F~aN;x#Xm3|E^? z$QF$v^gO0pn$$>Nko76CS4>~#Q;T~5pr)Tyt(erC+2IqF9+9Tj6j_&JBh*qvaEW(a zhOC=v)-CGeU55}IV2Tdwl<{`Jtow1UcRyt)SnYDW*csEN`(O%92~hjW+D_m{U^aDj zvFH-^yQCx1G~hzTO?HP^aVg7}tXJwEJ(Q|)%pqR9lud4so@!Dds>t=xu0oI}L(0rZ z^2LEti7Uf1L*fmAQu1y{47&K8S92Incl*6GhuwZi`jk;>7433%nm4`ip?PeU&R=CB zWD#o&ky6P)u*sbMS$w#N?NX9~p^y;{&oZ&$GPaYKGEuvjEyr0quvnfo1f%{~%(|LR zY|{LBINEn-jg?E7&e&68ecZhITW{nU_*^p>Cc|5sf-9+)Tm%y`e>E=<%x z-NXYuc~!~>Zlyx@!z+(cg@hs@#p!lYbS0}6;a9K^N=ts=7#^n0Y?ynT5ma$~tM?+s1IajexW*Jv|{kxcgGLygP zs;q#C^;fY>U#2sSiTzix4PE3^aF@@T#uX9Z(w)bYiYF;4i9kM9M2JLlv3WV$k?@Q6 zW14cozQhZe^!yJe2@Mu?RNS|MJs2tj7T>F&C1RC!5w?GHcfndHJhBU|C~`?I%|~YXp}4cNkx_;y(a7{S+Rbj0_|+GuF|BNjvy0hAD6)l zS}n4U7Kl4mvT5vBadfF3C5}GBfL;R|2eCM}fhA%RPm5a`SSR&1Ck1WH7lpnOuQsq1 z?0QkYignMBSrbtAm^O-*sK$IRQ&Eo6cdr(kSFs9ytDh))&=MietYYTv%N2g2@>;fy zj~F3-xt3+n&$#Q@&T6Gbd8BJ^C{hZ#X*XlE75fwMTsrcNrW_zw;dy(l92 z#WXH5u18=sQ%t&^(Hj=`@W$(|XI&X+|C!aSAPIT3Hg9EL<&4SDP@Jt10jCg_CLcYG zMIai9q9#jNVpR&KG#@5eMad1Ux6+uRY~t!0SbwFF$?7nhU^lUmiORsCH-->JokRC} zps~spH8#=xM!7JkS!Wm5+{mu*0&s_&0Bjl8uHuIH$(RZm@og3zw?-o9YN-t7>Js+= zKWx6z{E^t{r~U4)Y1+|0{`ljkvX*eLz4oyo_WrnuIUxd_H?v4Y>UKL&OKA?>9C%^M zp~MP>i52AKRP9Fm3Wr#5Gs}*YYmK(;HQOCx$IUDYHJFm_=T&pUA%3`-4N|L>;V1gu z!V0`5d!=9FvRl}PjF)pU<~G)6h(cxvPHI>4?ka7uyexv#Lw6M@et0Taqcj@lf`v<+ zvld>yU5uuHkl#GFl* zwEpsmHq1mm?^I4kq`E*#hjoGm3RUDyg}6)9yazXmaQ(nED(5%$SOd+4S8;jDSiY!R zD?Kq4TwJ@BMMla8Y)CP4Xbxfq0Q!V@d@UQ{RCc7ve88=wxA$bA2E&K~NneVDJ6Te` z+JiILgHm%3JTC_04PqZ#w2+DUcd`u3UD{*jXbYHl=uVb8NG?D1l~f9L@6-2TMpj}I z33htb3YMg@v3+5^&qU}tZ&;ERfS3=g0Qq>|U%~3jB`op4I@T09+${%#h@IogC35n` zeFj^>FK1%X2G%cH|c;C%R*m;K^CjPUYb!TBBNw7TDNsJV%7ypOCsPDNLJ;YSV z0XI!`FGL42Sb2(wWDTOD;^Pf09e5uUMfb41;E~7gkvwt}YmB;={hL8t{pUV5nnj5- z55Qz{idpv~qVE*XsvrIv*hpS-UOc*Xj7PKf=Xea5;JCAkwZKY19`}P`M%lafsAu44)!^X^z<2@5YusJj_8=>Sl5s5^ z1)N4aFQ9JOej*M($Vy=$j_%DPW2FeX#%$x!cdD4Ec!;GdHhnensUBjvX^Icr4&i(i z;X=YWfbszP0XE^%%)~1Xu_21_VYmR9`clV5;=^o$VtiL|(eN-U3zGU5JzVf1ccqGV z9%c#17=MTRXxgT>>aQc?Xp7KuMAyHwL-2~w>*ONo5eS}d*xA05S#Wtg0^K%8?07^P zl~DLTe1!GrLhdYj9YNXDC$WYyVXBhI)O>t^u7l_rs*tmD#??)fJ<1B8GxT8M@<&-# zi7y+POz#jV4;E!O$@v6gK0Ar2)q#J4ior*N0V!34Ez)UzkFk#CcZ9i8M1Ch8hyAvQ zE?e0?wod%Em1S4TZ6BbrWXKgqcix&8Q&uu^Z!H*Xmh$k?ys-H+E(t@^R|ic4y8gA| z(#P05Cd5uZJxR1Z#=aZ!q_=iS6vII=x+ZmAEP=-kDb?iK$dTRUjuzs|Qml^=-5zHd z@iIY?v^1=24Rpai_}7^pZMjn{eVjG$YA%kw&tpXBHWrg5XOu)QQmD7}C6AX2YjI13 zl?*u-HQS`~Z#feyx3Spv7fhw>XhG(jMXRg4sE&vZ9})1U7NqL#OcE|nZKD)Sp3YO0j}xctBd*m|(I{0+P5R>YZI@aPppw^`_zU@3 zt!gLePq{{xIF8xew_VOAip$xs-r|extSczX#zpK7mWY#qjVgtOk zr`afci^A+5!$rz&M%RhGn?8z^%-yW<0+%!Y8M&Md&tN%k^O#02@|#%WgN;Zg3w=;G zAN`bMJWdx=o?~Nd-AP>t7I!|#==p>{6x%0b}md)P|z;X>(q7!1(l#JCmbkA%svjT`YYW zo{UuS)5|O&9#=#4jyT~$U2N&Y2Q<#!hvcgN-+KJHl_S?RMQr&OitZSx6WC_mPAm&fv$vQS^lx^QJtFo!X^Rm3-(-;m?XryMZIoj4^6(K`U|JUbrEN4B z{S{*Mn`|>>CwI5Sin6y@HMiPC>NVUMYDx}CHA}6oQSw=2v8qIm7Qem4rl)w0qjYR7 zqEDxg1_M6?hPCjp50&+dJU%=pPHQ+SC$3 zrJIo{eSi&%b15pU$EM3e#h%l~f z=v#^4pkhHk8PwEChgqGz6kkOalMUD) zTt_^N=t1%@$;+P+6W(JSt-#KKS6<))5u z7v^}sLoO*mow93#E9*v;jjW_4-9whSj|*TTr3NS=Zr5-vO1310=0D_xLxL&PZz#CZ zg@)q>m1k7_{FwwRh*Gf?ER>e@?k(nj#_WA0tHAiu_?5SSgxeET2<>S;J*Z1TK!5F& zLz_Nl=JZRaEnG(M<}&fzXW;CcjxoP*e{K50dGlsYUpjZ;0;>Ew6RoK1MBC)KSEK!NNe7hq);H0%ajzpltjX zECR2KAXD3Gv~W3EEUma)0lPMH#@wamBu46DJGy(<&RV#5{*swXX}}wF@eKhdOcH>} z!g-g^mrJw9XM`v<9~0j>GwWx}l=!yjV&YMBKLFgq{Iof^CboFq+y$2s=wgew7j@|| zZnUi0-1+sh$c;g={p@X}a_*=Dk_0wj~BOseBBH$QHg_qN;vuJ=XVZ84HBmSH< zm^XKcdkuoEVkMwJMr=MNZ?Fupisw-vt~tv5A_BC9i-;mTd-*r3Xro%%>c~K|wte?r zwTj+N?VT4bUU&&eYRSX(@E(Za<` z3HO-`)EY0hi541;);QTuTQYM|{o?wiie7g6KubGk9hc0(Yg)99-`m8z|M*hDl0|bD zm_uaR#iOXr^rE1pGnctnZ?fGR<;-&iSvq&V!t`#tNca+%nrCg<{CV{=>K83lm51zN zJSuUM$(*Z0LxWj!XU>xsl>;2&?sKb`)=!%!@vn4q5VQxZN_*>R}aGZ~sF0D>1?j#*1i+OE9S?Q3lEjFn#9a6y>H1#-!VGJaH2eTtylzk_u zaVHZOe}{G3)$Gn}c>C-oS8!^wEMCgG@ty<`4@{>nPJG9@E4yZlE(*VAB|%D?$Ja1$ z!$lX%zGo>zJDxzL_52fO?G9xfF$^}+ zPjo&7B`8%?pJMcSaiw45WvAHBJo=!wr$(wE`!tvW4K8WozjRg%@ZT~97=DA>cOW}l zsbT1bKUh9|0!zfsKUh!og}w%H9EFI3K^N991aG+eI8R7YnwbFpu-#<}fxOTt-&xxu3K);+)m|#&bYE#w^N`XWbO2px;Fs|s zX6AzITt~WaAQRUz9$nSmyMl`0P$s>_t9Qj&y(_6%opN-$n;jq<1{@7q%J+;f<`bFn zMy=pHfmH~>d4HHq-I=SG2>pmBiQ9&8$~-BC4_xPeXY6fd^vLEt#4i?JgmrvCWLx=B zUdu(WjZd)FRF>6MiupF)X*BdTKR>^bPG@Il-S}$yy*#@(hyEN|fj>rN7Z=ID>hNS? zZC%;OYOk`YF?E!WV|E`>HL?;}I^s(k?-oJd8btRI1gLUUdCmChI+17Rb=HByD$DD{ zYCFHNPgQx@2zQ&|mE+~mUAxH9#?)5U;O~*n9Df-Kf_jN0pt6A@w#+}U? zw>tQXoF~e8jTJ8ka7+8-GR2Ppyi;rkh?kEjtF0BC19@zDS#72K%bY~jz+t4AntxT7 z)l`nEbN^9ORb5$AH?*==Emw6-RUPJ1Ss`u=Jc3{5`Kxh71b;@Cei^bG zyf*fItJ>JF)PDL+;XW`s$MQaXDo0ikQDtHIM^@KmVRPIiSxp%>w#GaNSs+d#3U9zD8c{Z|azs}9 z@U_E-Ru8JGagVhujt}hH4oRJ&tf3fe)R>VzqjZ%dpGD|{+RXkn<3&pxpXdZ`HRH3p z<#c=!K39~~&EL&I5ffsX11{i^RTX1KRF&|vO}O{qyH^f$F<`A8iwKD_EhV#*$wdf8 z*&uqQl5>#QOkh2NL2HL`vOM-Pu_}Q-EED<2%?_=Gu5!zSzc-j`fassdd!yY=Ok9)5 zM=N~{kEvQiC~ERqA}3#(y~C(UE^mxZ;wg-eVWLkm?~1fYJRJ&bWSTO0mAVi%Z+C6S z1_?7SCG)XRAbmn5vJcwlGEtDif903zBFD+A;8yW;#zQZ?br^^~8N=u&?a1!Bc-zU- zk-`Q9@C_(WnoY4Ttf_pY{1y^~K><|;Nu6#a7jsg1x{9TeH$=To6-*0BO#U?{SQ?KN zdsDfYcQKSx$+b#VdRYDuD;`SYeW3&%P2-VZ^51e-mbms|7Tp-0&Z`;!FJkW*{NWC! zE4@e18M89^LRn4HMC}dP)$$(neAc)#lMh4E)%q-6kZ{)A5ni&8R%mFhTroV0Q}X8; zu{4XXV*8DWpEyNaHZM}SV5DJ6>UdF1$mX{=9s|L_2U{s~QC zhcAbA_;n61Vq3-LT`VRo!`wB>%)c0%;EA*Er{5yR=JNYFwy`yrXR#8IlE=G&xa_QP zd>$Xp^a$36+(UWdgU&o2xj-j6^Tg4(N}iJqHCvY+5%X?_4DwyrA?bNcgBpF((HXh%*f~Wgg59Ro{tjSp}D(CMDa{Zj9BaB z{-QLGN5ItytzYFjTVyiAcwI~?;3e|K^>PZ}sZWsY5sww{)b>(5DvO2xMtoYpg}i{?poYV7jNUk;2&^nRTR;1JKg|&byzEoNz=zJ`X%32u z-~qW3qWo@9kDfG>$3UNU_cm_hBB>kC=zy&3L=o$mnAnXg$8R}NyuZXZm5Cd>ai^Ib zfZ{+|Je-N=yYZEk=N?H33^`I1y_8$iu6L8)CqmneU5cgy@29;2UnqBV64!R;^zhOI zE*|a9hju!<%~o?Z7+rq4j#dgsDZU5KR-A`45O4M3acWCq5Wefhvuq_4TL~3m z^}LYOG`z4tL2HUJfO#zF4KghfH}~ebpcaI=l}h>s+*OEYSBU++d4E`&X1I|ap_go# z!nRo=y@aRYr6@F%eotf@;LK4H3Ei7U;5Jg-o0bHEXt$>vkEOcrQ@aCyYS?v1eb3kB z(@g3adyCdWwi54$WF0@J{Etj9I!umCxXOX^2W+uF2YOs z#CExXH<{z4-0;`M>QZiIEoAEA$x?oak~@H%>OP@eEuyfDcT%>X3XoycLW`JP#+M|? zC$=S${wMrt)s>T;o;jFh5p89>kOE!JJTgs+X`2I9DRw9pOe_{_sE#3CBgXdh5cLB& zeg5V%n-Bx}RdPhN0Av{dU=?ZQ{0%d48IvefiL2MzgsYr)E1+bo@{=eplB@W>OmjPwls|wm?~^JwZ{c9pXqO?*$7rY>*_Yt2^`oz3MQw+!kk4_p>z4 z9>hoM94n2`VjO)mbEA%UNZ2-T(t~64AT~_s!*~TSxmOn>hw)Ts6AOp&E;!^1%tIbo zC^J(o(cSAypDyKceeuLY3%!P}4qg_{`z+lxLi{|84+6wnn3()9i^bev_sv3(b~rCn zdo9z7N%a}P#Z$xiBsG16kYY#h$>pS;M(_mnPR=y20`b)do{|Q8UVY($I1r^DFm1BUs~f^pxg+`LBpJRX z7W<73c2kGzHb~__E*!mflq%+p(Mj1m+TnRlw@~0TuJQYkJc{XS9iER+hKU|kJcbpB zQB^z}F~L<1b;duoH{MXi(^)z_-G(rLvuco&$YvHJ!aT!VgON~$LqK025K~4&)%v=c z(}ODzm!(`pjOIV9Z~0IoeAooU7^o33W)d+L=_0*`rz!58Be^#;#1H5Lfa+ok^-8Bq z2FNJ1UuF{} z;4@WBkISJrU$8o!h2kiB@4pUjRVlclPaTg#{_Fr%Odra14;Ov*a9!naldS-DlLEG0 z^`b48W4wZ5%&*x>^XpvVnG`Lw1=GW)2wQs4iiD8wi(VDP0z_dPKV->aaeHc8D9%66 zCdQB96{+$lU`>_8`kPGilCUZ|6Bsm~R@Q%vm)%82qC-Xi8s;$7NH)put1i|v#6 z(`=DQUB)AlWJ;_`c(p_L*tH=;D=I2SNx?Hl+%uV9!J5Uj|3VBgRrHy{6A;9FL8U`c zhbJ2Q*hS$|=j&3j=0BuxJ_7ksBgdD{vLq%Lsps)?<-2>Y9!V8v*+o3-CA;R9iy zV@u@GbjsVl@@R5@98G`CYVsPmS07AQFsIqM;FrA+jcBfiN08J`ouWdHX+gwwZYzm5Ka=#<&vJRVxr%2u2QYZ zv4CoZ1%to#vgN$9(gmcwMk+Sk08cFENlLaMh5r5JJj*0&7(!5B=_n3IqWB8lIadn6 zd87b9<)a8Y$vh;YfV0xWO-Rcm1^jWckuF&wHKm6-Jd$7W#)nq$WsF}5?sE;N`?}DP zTA3Jq4fX@4<2q@Y|H8!a5Nx9ZwG@eL<}zeL4#sssgca zCC>)iTF4+eH?8D7VHKgAqE6)}L+Kl|a*_v`II)uVR$tJ@C(W!~Onwt4_I+WAhW3%$ z;bi9V#>EZXpL1M-ZlBCSe%560sVAC@x|i)qGJOLlO02q$$3j_)GLtN`nG~&*%?&P^*k#8 z_wdk!L}-Ahzn&*M)$RT6Dz%yvJ+viZZ(>v|4qngmu%NTZ%+yzNdUNk(E(WjWSxSb| z>IIM)w&#ASw&@+JZSZK^)>p4-bo`BX=G?A}k{fxg`F`Y7K+tq}k2c-NGmuyKcRCek z`{m^6+@g|Sl>ZQW?^d$f8B`#xLKt%uiqM-lee(==5eD4E>E??}`7ym}H{kBZP4H0V ziXU&1V`BXCjCoq6@cz}9I4PB4%FTQL#+<`D8uJ)jt{Ahi<`#Ie_@DrBs7fzZp|tJ( zuKPsjRz6g$ovI_A*`hl{+-q3kZj&eeF@N#cZ9FkK5}C|Fqy-FvpC%h# zFnQa6G`eHGTcbqtR-QJNK8H=NATpqHNu1($d9y2w-fqAjv6`RMqwp)fOhkIrZ1ZE{ zD2XR4lK940Wd@L1i2Hj9;^pl;64@(%tmEDBM8KNIAYYQi+qd&hc$ZfZv2=i%gUJgp zkCDSged3EA6iL8Kfz2PB!M954peIoxtSrM) zgP`QNp;Y*S!Sj^4_@5UbI$&i99_$kLNNdLn-3AgmdJ^KwLC4ouen1h z^dWEQ%5!2*jwi|6AV*WlvnNvXb$T^*l|@{8Cy$zvj>VEM>%oVi9@cAWNy8rWlAaWD z#-KVM&wsf+co-YE`~>|{=oJ}ue&9v)*Mkom&7oo7_aXFe@-9T5@@)ZdbAQmb^}X!uS&HD#~7Pqb;u8!OL*+P8f*nc9sV)KOZoa zc=!z8IlI^a2MQDm04~tHz6V!K$2rL%!UpRZuxdMKQA8~+hI6Zno*bn}LVj-^M+2Yp zYqR3Z+(&~gU7&>p-pykhXbICKVp#kl@+i<3g0R;r`ho{@h$To>9=NC@2VawyN`t(CqsLoniij9JvxtBBYTnX%<)d$gN4b2pERlMFyQhslldnICZ(RJU{! z#p`(t(wpeKrGYuoE+V0yhUrc)Vxd4QtGtJpzn&+I>nYa=yNat_ev<9xX&+H0DLyo1 z@`VxpKx_0X6309|oBSfjm;BVkrqJqO=bKu30}c%)=X-}gUeeK{8VLAV_43uCSV#ov zM1tbj)KVh5npq!|i1CfT+7vu@)Q5PPnKw@ln5koW)W4%tkUjy(Oc))F&nqHSh^Ts* zc=AV!UECl*kNw2a8sye*>Z%6{=T5#{%)f_Mh@Ct6rNTLsm6rBL!>(R znccNg+hJ^36DeN4AK`h^YA{9KM|Lr710QTUP12zLOovrU)C>DR)Qi5WBz;fE^}|MAshMJWU1%NaKgj7Nof9V&n>RK-@e%smOycgq(8WTUfv9U)7KmMRF*84 zew`hmjMh_vz3Na)U!``Oy+BzJHxN8q*%;+jM>ssdUg{ zlukd(A%eH^OR;&^uGeLJ%jQ;Era8pZTloy-amG26_cPo|ha>(QGZ1feKALl(F zLx0dk!!|x&!L=w^N9_iyCb?q%HXev}nw8pZ#$97b5pq>sW)&m1yIrc4HbQ%4k~c5M z_aU&%8*FY~-bwOufADfhBP8b9#1%XE8aFwEU2nE~*fk#PZU20yB(vA~;M`?Qek zdb3@z>l8_5Zgvg1g{u>G$*#p`Pw?xNzD}oq3;DbjJ}LM5-VXQrTea7Xd!FQFdi2_J z9&Y;H;u=B^H${n}r+F7_xlAcq^|Vw`zp;poPxD-Jf^T8K!1nWs`>LJ^s`H90D4f@B z_`hC9m>MF^aWHj|&k(FsG*%PHH0fH6GtyshnheIlcdi z%CgsZOr-KMpl5`FxRbjki&g)G?KYuB_ZNBpVo;L!~HI;|sm9&ubtL#mniQY@k&vdR_AJjjzk)wsc5$<%;ea z!OOdG{<`vJC}R|%=R(irCir2ci^fBG2uAPwH&2U}>XFB_foL$@X|#x!lPpn4zCYJx zlcS5Z1N7+pc9%^mHY$_iPSTCxfVP5n8(Kh8aL%gJnlCPUQwAWGDpv*tP^By5aTMbz z&TXogUQnQ70D@QJ$v1g&6zp1n`BK%JUX4tV@)l1CX|wv_88T|?haiGeu>IJdqEg+G z*wmt&A(cM&%q7@B1vWu~MIhbFLy|A{yd|;Ot%}L!c4HGFyTvETZa=7cQ_YoNLuI`q zS=J+nJ7qslREH)7Te*l1%`N+7WMWQ-hvo%cU4Dvb{B%G6g7Z3yd~hff4z_>kt}3{^ zZSWG~V+{1Xl@Gu{s7Agq~#VuH< zCk{(;|GmS7s<1SEbD00a_)AQNX@jvsc+bO(esmW8AMj3anE`8B6Ot@g6Pf#>2pf0XCSXiglxE`=nqYme}5 zV#n7=DcXC4(-U+1nE2+1On!oBrbx~|ye9C7nm`V+*31b|X!${Ml*-dc_{!iwe}ykV zeol~3KkTRc)x4ynR(_3kKW(=-p_kK_m6u%Cz8zUnb~FSwO9Qv zT5||ZFk;?iDDjEeK`#U$0{F-py#5V~+_yM!!?1Z|MX&zE{KmX0*!fITUAy0$syqMd ze(pS_HGGPQwsX|m`S2dlv4;`B8tg8?_x1>27qmw(8zcBOWCUysgvW|b{`TtBr#ymJ zy(54{eCTK9Ky3#mZy-!vyadtei>(IPfro~*1FtdzUw&q$A*zJOkp<8psAX7*S*Cj9 zAi@VaswrQvZw9zbUmSv8+H-(oByg^{Bk6AvF=g1sU0R274PD8u(1R!0@@cO_XEo?c z_PM|#LhAsIjdei#accP2W`^4RrTL^@4$4Kola{088!hIA9mju6wd;U+!2F=zFkr!? zVW`PpfS?k-VoU0bup}#NKZ-_D zrSALMJU=)RxE9=z+!l5uFY-t(R9}B%&M;x1CP$~cDsYGJs+6in4w;mk59ddiRq5;* zOZ$+q&{$ERXV7&Qr_2Gpo(L zdZ#o3aRH2!Ff1(abiWVSmyt)zb8rkU)d!2iwaB5VWg`&UM9+}M@{m$mff3nT<|hzI zRmiY7j5SIRtGD|3h}jLZ1z-^(wp5)1ONYKE2ln5Fn)N-iAFQR(og%@TtZ@F}RUu zXj8qv{ThxUuB%B-ulH{HcHzxFG9p2 z%62g?LC^)h+M94!4w)!zXCPD$URg@97}qjye$9xP=N9J8uO7CfX3^4?3yLdR73LvX zqYAf{kFK6yvm~!-f0)f!KL~2?+NFD?p%yoWen3V5z2-64 zoQOWLrOOCNmlO)bGHP?ppo-M(gG7_$cov^0YuU|qcS6`dZRVEo8=O!eqD2>Io$7hL zY0Fz2^AI$Ga-1alDqcdTP8%74&8KmKo7)-8B8Dg6Ao=IFs~#QvD4D0sGiC<_zkRN| zU7)F8NLo=r&n-p)|ux(3P7;hha?>tb!LjXwa#pm=Z4bM5RfFC3>YP7LhfQbK!m@% zU1#hK?084@I^&wzDl z=&_~*S0=o4*%eqjU125}Yl=gr-(pce3Z1>4N^osgdG|xTGS7$zkZA-a1NnvPg(yMb z*VQ`k%|1d&2Oy=9!HqNT7r+v>JcPdcle6P64xnf1e;hY1cNO0?b@I z5po_`8*q)?9Qv1o40A~^N9A^F)7Q2G(45+KBo?^^vV(dx=QIua~LkXl#6ieT- z>T}!L8XIc*aU7ca$qx8zNBnf=az}+o`t^$()GMJ!8~S~VW-eSZbB6u!G(@;tB3~Wx zi&zY6gQ(M=P}vb81{a`g+5@kQ;DMiXE+j=Tq`}OE%j{RRlFqYF<5|oivVqG!GV|1t z2$8I%sANzGY~lGTK9WNYP-ZcVs&P^V`bUbHh6&4ZP>2A(+v*AtO;pQhaS^y!&2^xf zWBG!V-Z$W*jTTdErFSFN6hZNA)$kZm*aE3F6oLQ=i~S1Ukad!x=n+{0m#&VM-wKQ~ zG)}9<>?0tbGC9dBPn9Le{}oA)tpwaoXQjS?hA<=%)!6}=-rHPaWiio)^VJ1TjDF}> zSrtH6iQN(3O{NcIu_^j()3FSuyOu#XAu)@lx*}Grw8z>5QH;-WOmdt^ieOvd#R$TJ zEf7p=cpT5pvoICG^rxvSzA>lWF{pOk7J8jObrHOQh#TFSCQq$TpjGGhRcb!!h}D5T$+WhaF-cRkAI zSy~>suF8MG!&Itp3>HG?^uU-#y|~p<8xlY}RliXrC>U#kD1r-U8zxd5+S^et3jHd#fOD*m)p<{m! zQFasRP_n4RB6UpRMY?qHPf{taRmta=d^4aot zVbN1WiH$pr*7W}IQst$JDLCc9z+uW@hi!3HF&$VROQljpUI8CSxR*<>D@vKJ3e1!XE5uS7&hbmu86?s3{hYvZ9gkb>IakT(2KFy?D4SI`G|?~ zu%b6Q;N~Jl(?USy+LSGdyHIkL&iO->U+;>cWh1y~+9JXg3eIeVFHhfd<`<@ch#b+< z9v6&a_I7#8P~|zIE0(Y}hnEnMz4zvbiS0NN0pkbqG4c&4`^E-*JRRq|U~=2iHtkB< zv?(cVe-S5(gMxOMs&lS0L$u*m3AG_t4D<6Yi&SMmq0C@YWEc*6hX`cni3x_;(gr>Z z3W$%u;|e%K_258cK(G~uq{MBult_mwNr|!Hq{OX;YSUP>3@atx%~E29y`LIkKW#os zLIe&a(vv(AVhaplW{7l1^^riz(Z@5?mxDx7EEF+hS&;U**-*JnM4mopDE;&ZWJJ|w zFoRk`=nFFo;PDLF*&^_06YxH>B;Iq}1mf!MrQ@bZ&H69w%!QX2k!oo(agWws(^bQ4 zk)b*@7nF(r?>IH0x#;LRNwYMA(~(-*hTJ1YeNqa{)Hj=pxGrR7rvpQ~jdjq`aFf## zk-*fgq)!=K^hi_h!O~?T-^mCTLtB}Fv=$=T;8a`^B<$ze@{Xj7fvQ0(fSQeHDT;A& ze=6!K)TCA-UESGIj0*bLMwDlz7AMfaZnsUblIFBNB2#9Q{1?J+1HwKFr=R+*+^csN9xByJgTS^s(wnz`x z_bo^_HsXunS6>#0B1q8smh`QdGjk=Goy+{{trAh#jnHc7rI9|uhn!Zul#ycaH9Ad+ zmy++n&Z%?ibX|z)c_RX~cGkD%_4~rF9%?NrbO+$(^mL$ego-T`eE_SB&)`j+rTqIh+%>FY0 zS=nJiMSPa#@DWF%08jTtQL1IJXkz55!NnpSub3aD<`s(`uF0ec3k)Ae!DRAWu^@N% z+fiyysmSQ04-wlh`*pOvD5s*3sT2LTi_$mxZx`jt=)YT(m!o-6x`ba8d`)X~IY>p& zI{>L7;CN1D@MbY8uLUNwx>O`<44I5rH_l3r@0OV0_}0hJ_T|&q+Z76C&8;a7ja1ix0lzO%^H=XX519|?K2 zvnbT3lf^dr0@fD8@Z~ZGCtc`qbvFZbogvDax58xS2BHI)HZ&033>&*$XZ-KRZvVlt z>Q2TN#crQ;kF1c`?e)%)Wyf#-H{{4FQWU>EhMx{=(4aVM44KbugrbpV;Y4+1y3%o% zuv-2)Gl1ai%M8`=3UifO(?fJL)4X$pL-BYI(ag2Ddd{rd;D+fblIw--!weD52fP}U z1$v5%V$IHfM29bQr^507viC6Bo(kfYQQGyYkLTWcPHYJ95|!9XP>?rJyLzvcAu#9#@&!^&-(%0Ggp(e4!q?#vH9~?IWg}h+PTBf3y%tSVhqX z-5~JH0CArI)Fz!U6_ha_JWIyRRy08nH1GSL2%2zTro(<1R?xg7M9_@Gq}}S0s$+^| zK@;4J+*xdjq^ygnA-lFjeKbh4f=Y#_Nx!!VH|z!`X%hwoSK9n6EZwF#(x!s6Ib3}` zSR6jh-R*L_4;I+hsMiU1HK{jN{L|6;4Bb+WMFfnzQ$gU;+K(k>B zpKMN9OnZtXy=Cao0u5rW;R2$302m-$bS+_n6eBZ@;t0rS%6IS*!egII5?upQur=hm zrv=@`X#E?U3U#1Zw_3IAEtP7gUMvb6{_d5dCJ5o(shjijGr_;MCL zu9F-5A>BgfXjl|@Y+}r0*1({$G?kGB+cgX52q0kIY#AwVW2MJF*J+JM9Lrrx{m3Tq((IhNFHie+r`Pj)}cj`nz ziSX*}NHa%Go*-faheyHQWA>MncbJL9T9Jg=eFjziU|(c|@rJjrlWP1JVI!Ekl(AQ+ z1p|Q!Pg6*mDTM~DArupbMj$MlvYruY{}?eyr&hVev!Ga(s54`rrHmXak~QYDd-GDF zq$+kzAQlX+qVm3dMvdre2aZGCymhQ-Y#USz_2O7D7xY^?PGloW26Y-VunH^RptB?Nz9tYQC_ek*@!+^OTzLof#h#L*cYK(hbOBok^mgtlr@+ zXkl)lqtdZ9pkxn|vEK(|X9w2a_3d>qRIkaRm!5%}fb%|CROfO?wc(@0B;r4;jl)5c zLF&x+zrh%H)JV~U$(1O{iC#K|4|prAPy>r9yDplk8>Wam%}77FF7gl)sRK1?Ej4|r z7?#G{35(>@LgED$s2(r6rLYhGSsTL`tNfQae zc;kJHl=-^Ubxe3JB7A`HBpxB;_mQof4KgJlKx>MazZSTP<$ZVTCy4dw^lY z;X16jxoXigR^P5L)w*e-nYIwwZ3z1EQd7M$O%TXEwvu0{rqjh8`j4Gby;Uu!yc1TK zbE}EL>_&0Y>F^9xsFWF^9OKTBYRU}p8&Edt4U89iGNKG;iWxd?hRpHL0H~YDwt;%< zJU>~C9t&%SJ!7doYp}-=uGTm(W|rt>n0InSR+f4ithP^mvV(n(W_gLmW+asXo5sMfk>44DC}nW+crmP&#_f6S&B@Weqtnpb;2cil4;qv z|G8LAo)(0S5DE#a`uL4f(UqxY)rcYv9K`8-96=Q(Q^HTCy1zz@*Gz-7$8tK&>;g4i z!?Mv8b^#u(6{z`*t!P!dNPKY42?r;Srv_MO6o_L$6aYV=g(N2~n}_r=+1zBE50z{; zE@nyNJoWTqaZVYVqRG(urcdt}94s0&PY3&HCP_s9k}sTOd_bMEL`*Vo)gTn=(Ip}h z`x@tKQ$y`pBKi+@UG6-+klA$MEGoVPiYlk|+obzUvYum?C;y`wzf{x&K^dk% zI;BmHw3G1hiHMO5Bg}*T8!i*Cnro#xuuM>L4@~E&e9lilWnC#b!3z=!iGw7mAo=lk zGcM1M|3>G5`nfDtdFGwb#}j=pI{=nl_yBUD)4(34sghDlPS|%t`c@67>@#v29G9bL ztcZO-v|P+GnyMiy1VxW-#_nGMd6q>jJYWNNx(~p%e*X&50v58jS1^kOe)5kiM3W>f znzn^=_P>PB4gnMh1;!ReUA`D;{VPRL4g*~Axf#_RvPQpAL(8iwDm9YFf8jh|DLNEu zHlPb0{LUU-5CB#JxkU4;mo7ag4}Uu5l*VAoD+N{P1G8q*AQ^fT3P!II{TQg?Ad43) zB)%%tHLFB-&E|bF@b)UGvXJ;am}JAw7s;Aj(Bp;Yi|)E?g}WQi*ESPM7v-80yVRTK zgGuM8gbPF(cnzv>WU7)2L~8Z z??Q2--kl`*JWWUXo(uU%N924MLW&hIG!qbu`Z5ydN8gJCYNu>X2ukQ`=Vsc0C-4rrD(;(R9&l8;Dy30D+|Op^jJ(L`pV=~BIZsVHsCJ;|p8G=eA~;!h#z zkjr3^+Ev5t+QSrWT*hXH1(uq6r5LDIT_&zVlB%&r5YES3zrMP14X(D|csc7J7e(lc z7hf(m8tqi_6@t*CQ4x+`aN`xY+DWy#QnbOKOI=)rdzaQNynht?=lc z*t$w}={2IF5sW3V-bcH}ssq=ELcPZ}#`1G{Y^UalYj6VW93P>y)=y%we2C6%7)LYM zwg;8Yx}0?y&x-Mh_d`4<7;^@yy(pMkNX}r`1zKzEspNHn@KKM%tMco_%8twt66h2q z5o2e(R^>Rp9JtR+@@jFK*Eb^t*j! z?|L!Q_88m7;88Yi>aZKd_?Q7BT6Srb*E+9!zzFrkjiQO|Z^es&ut@|H4MtBOta5|6 zLc8a151B>Lz8X{jsad#eNex$+D3z+)27wY38^kwyVkit7{xLo_{p!&%7RkoCghlSNO zDiE8p6;UFZQX|k-i4DN*0Y|kz7?}oa7g#xL(S}*+$KX||f&Ym!g4_jp z-&9L)5jW{G$~{SdiIQ=vn8U_34>AHMjN;POZMQm6VJ=AT?J&IGiqNqpD(f~DW|8aJ z^ERRWiaLZ%EdJQ4f&Rx2IL|W-);e5=czgqFl3OngKuFJDWvY71%5iH2EQ% z1>@%_ zBP$KZWK5>lHCE5vBl_hGHtNl;SHpQ)?WnZU1HJA==gkRPT#a-5Ks1j#)g||#W4rDX zSLhi6(Lu(edcZU)lIwo(*s^l@BIQ+3>RFw=iGGbsA+o0z&9bz&#%QaL-tmD*OdHny(Jy_Tpx*(rVv|M1*6 zK-%EpOl3VMTIq)$j;rhHUP}l}e@;ld8lS)h{WM;4IwZk{58He{o&##tj$L9m00UM$ zFJ@#sTYrx-(?K>}KXu@M$k^~h?--T4Tl9}Cq!Idn9EIf8q|P+maDGq$Q(yx+mgDEp zi#nPT z@t|hmuYSa%QhJ*f%Qlmq$`TVgaMV!S_J}>22{KC~4tpEQzU>v;4C5VD{DR0zWro7S zCy7o_Q6`e;G)zr@L9_xyHjD@5ID>iHzp8G3K@?_Etr44ZkW}d7nyn01_mVpFf|zHl zQlo)7TtZN;ark2k6qbOMarZ^Hh zhP6@Tr=eJ~zaPV6Zky0CycMM`{s8et72k_?!5;9pzKd3CzZaLW?nBTu=olGUSoe87 zx-LuYcvmC`2E8K&8+@eKZ&MK)c;sF2ks(L;E^exqW6S%3D!=whP+h+hSv>a8p}fH1 z5C1%r!)}|)8I0xU8wZKANuI(@>NAq9m{ga%epb&*1!| zy2fhK$07^o!t6$@2zX|Zfud(LQuFtTmCc;^U)p7S>UK=D{XQ5eHXA;1ZzHw+6Ooao z0psewsBPleFXD1bsY&%;v^4RbUX+-mdVM0U$ze?fBOpns{>O$VsiU8W@*Fm85xm3; zNzg`Mwx_(;Uz+(&j>XL7tIGZCMSM0XoZxnTvJPyyW4|!`=4DA9j4#Tfex$IZ6-<~R1u%5TJ7VuJ5tb;~zmBwqPl z0x^w8Tml8G4qT8fFX$YOUocNu@3x`+7~~h*5vTgChhKDMe$k5g#X7cC5?ku!?Dfz6 zs`fCmjAMtHWvpYCad~i?GNZUNETgzRQvLFsIHF@`@K)}8&nWfd5kzJ<+>LuX-Q^6S zy9Ef?s2%aO*!Xg^OIK(Cg^mF@-;36qrJGV9zn}lwn;6&XA~192UuH!;fMT zCOw^5Lse+MZ;ubt?>#OX2<`Xh@zn1Ob@KPx;iTqG~-pvm+OoSz4_s>x9=6oXZ)Gt4a zGQF4a^>BN+GLiOjJ2mcC(IB{?_a=sJ=rO#Zul|)c^fQU!HuS0_-p~pg`kugrCq)m- z+^cuBPN3SJSa&ZYKBcSFKgBj3TNF>(oQZ1xpCSu+tq&%;M>9tSRW*Wm(eR9Dfe^iw zHh$(tBQW5M7~yaMSf&BnL~4^1f$eo-l|W_ZC*ZG7fsFvDS5c}g4#l8L3uU28DH@av zk4%pYtTW|3cBzbgQS{d+#E3|lp|)A_WWM)RlVfa&1hQeK{$yp0ddV+O=XsmWiPd93 zD^9o=A6qv}z2cWBNfIfyH}E#CjRTYXB2tnBu_*4zDCzPxj4DTe;+}XtfL_tk0a3=y zTz#`a0^bZg9xbmB_W3sx7Obxtx#wTrS@e!`#7^*78!svS<*P>exXTYA@5V&N#fe1T zs~T&{Zcdl3B#N$rTnhUpL3^;QbYG&nI6>y=usu2us*=>U1lc%8ABKkk1e{Oj5Td)F zHOTl#l9lt5)QJR1AXGUGBt-@d4tr1pn67dH%Nxjbra95i2Zbi7R#x3RL6VxMUQd*Z zw2>rLeex%ZvCS;CGD-f|%KmHIGGOt38X**BI5Kh5XH?P^3%dYYHuhRTV8|8_iZ3KsHfrXelW} z^TrG{v<;@V=c6Jj@L@~YR`bXx@JMo!PH)J!1K^Q!O=fw{oi`iVEDyaNr9bm(BlUc- zJf1^*%xSjIX4`1R!tkq!>YWmKgn6CQ=Eo%Px;IK?Cg%Oiq`Dz$Pcc|xK^ysTa3q8D zCz4WhcRef*!yKw_uC{N2<@FDI*H)G|eDB3{xO+2PzBlG9zGtDvyI1ZHX~E}wd4^_$ zB)taZ{&B<{)@JB){&+_@tSJjvNbZ|NcYe+Y@NNW z^Wq5Ji#iZ%i61U6u0U1RLuTWgUFdf=C!1%}th%*s{Sr(4D@!J+{V$1l^>`2YGhCct zamBxzgW^ua`pV1qNgvf*EMWt{K|{UVQ=V7rvO%CdP}n2+H<3&m#riy;D;$|LkEZMz z@;O#frdWPBDVtB8?QWYUj+9NBJN@Xxh;tC5L|tEBP4a2=axZB|7gY$=piF9SK{@(y zWFM?9m2}=*h^k6uGILlI><0wi=*DNd9gV8j(HA(3l{Wd`cl5AOUzEx2CGHGdt22u! zHpqQ3>J5d=0AQOcdwUKb9`Y)wmiLw=;}g+81eN5#s+U3iMuHOpTAwM*L8+mx3BxuP72)G&~r@@bNmnp(Yh7vjRgM(Kg!`SsZy*0$b{j!F(7#B~{BIa+k&ffV$V# zM}bX58#h?$&mpqfj{7}|HJyt}N@~YYoGQGEg?>lc!!?rjFzKAmdvvID(s?`63O#|0 zDO$M>m9k$Oy~Wr(7O$%)v%FXAtel{%BQkR|0hZ-o5p`YE9y)qA*XtXU|CroV@12Dn6XEGz(KJ|dt2x-vGIK1srR8Z?VvK!uc6 zr9*16Jlv!r3VlJ#U$T5BDUXLnlm%N!1r}4=(g^n?+IQq8^y~2`WDGVK!Ibf6ljo)00u~dBDT)AAN5lRwMc+C?wo;#6M%C>gpWm|x z)+?$+*{tznAxICSk0Yk|sc|x^iKg@j zUn#D&(ji{N6oVF%fu=e=PM&v;gW<|qD`e68$-;#5!UM~^C=IMnqe?e|&=IS%o(TnR zEuvy3%C73zc)1LrF;5^cf-|D?aIZq@dyhAC_$)~iV?2uo*KS>_5S>|t$U6u!dTU(wbVsxqp+#1q?S>|#EZgp5D1GetA0b6gG zB3p#ccL!kYPLYGg=-tSr(E8iSQ%ec_S~Dzn)-s|Xlk%)ZVN69f(;^;9dOx9G+csXt zc}s~>7fh98=Yud(Lyw-_rYcIcsFof(-^)> znMFYDtgxp<2Y#%UccTQ(03&(B8*Q@!d#B4H!#wDPfa)bQowiS+Ja+fcW3dIH%NNa* zI}t$AWtOA>61c_Z&ywfb%k>pP;!*X`IpMs3NZJyN1d|YnFr)=9SGAq^qN|`dmS7H_ zK`Bh;m)p*j>F%;|xBf6`*-((-T$yd3fk>R8iZtLD_8ABTNS}e7g({jY^MaO_>qO`j zYwVr{vw4cwg!O@cWarL63ri1tFk3!mpx~z}tC7>S{D)ZebJXd%vOVHrUN#{=X~07c zj&*00!3rlCYScWr*`C0Kn82epdI8w97k67v;C96Mc}41w7CeFQl5yq`f}_D9oe4zh z<|(U_J%O*!_e>!7;&OWeV-~m*$VjvIXePo(5&RT-0s&|@bb)sQQQRSTY9ItVooRIK z0-nHxuoIXo0xvI+%M29sq-i6!DHOirG;Kg5OjSo}&=JhV-_0F6O%PyPv`B8TkKzrO zyM_eCmcQ6Jir>?-1!N6eqocT?rY<#cv3nG=O#na?Oj`FY_RI`_15jy9T3;`AX9mOL z_{6hG>#(U>Eb)q0*gwIUiS`A7`eEnD_MDWEJZ)v8ec0*hBLZ8N$ZHK_lqy{&S4IjS zYDxQix+JRc_=X?G|e zM;is&%B{h{q_iDvP$0dISrOh<8rA4eN0Fct%?n1np$i!*S-td=!=Qoy~+ zn00hO?GzhFV;!F!W3<%ob~}xLpyTJsBMJRO!iPJnAJ3Pq5h1V>?lIN)0@?KcpS!=E zyM{JBEqA7{RK;H^3qUjrQR7GUR<)PPmeGHExA|qV1=3)s&K_WoW?d!=x}LJu`w;B7 z2C|ZK2p*)+H)!EL1mZ!xWsf^BP``nj)$i*?;#4oP&|IzFxlGQFzuPNy6{*TKvIV+x zv$|l7d?=x*VTWfFk!cH=vsXxpM$9JYrx};aBK(fxeO2n%)iO^#eYvbNK2gtJA&U_? z`TZ6AqW4tlmGb$7CC-37FT!W$(Wn=vU+8PdRi%dmP-JA)h>D^80rBI05bc)h*@?JX zwvJxn^r=|&x>~k`&OcAr#G=TRgOE2VW_P8!^lI4w$LCX5^YIyF1irr-lV?0eWxOMc z>FwBjDDYtBU;8Bf$yI~?vYM-y>t!?Z0z+;3 z%W6HGIca11woY>>C$%4yTHeq#47t#nu0L8#^S#1Hp^5k^(d54ichH;wamQ9aknd~Jp%^p{1b`m|QwZ|qe!d<5CL!#YV( z7f#SCJ-A5Ktdlu9cIS3=(>i%~qiLo$+$PUNqS>$;BxN0EnSt6HtmKq1VF zZ)6ibFh_wMml(MBMliY|Cqv!>2vaUB$6`9xpge(UqTsI{#A+#&qMr{kua*wVkssvC zJ0(TLaIIIk9Z+VV@?WxvsSyPzUk`wYQ2c?>h)8;%91#K|0C_iZhme!_&TTR`@Xkh= zW90rUcrET141x^!TIa-If!zJXJwmOI@uvkQ+${SE9f@b+J6};G-lMnid-p>?yG>T4 zz2y)YmsoZHan~5C^Cp=G5*fFNXAM%>Rh#4zfQg1~K#qh(B6s5LavE-87gE3rWzA8* z9JzE5-?{d7nWK9_aKq12w(QQ^xfcP0dV$!}zE*@feY?Ecn5wS6LpF{lV08i8rX)O` zQEKNMa;ecswc9L9%mfn^J7i<_iujEVCVV$mb!NrVI*bi!c*VT#`ODcKP_F?kz+x*|$ka{Fq!hUxY5S&{@S)6x|8!K``HgTVw|EYdJxIEY3sm!*H2*)_?vY zoy1PhgU0Os-mXE3xY9bhipdjTf?sDK99?%9)@k%Dv?oXgAOfO?n1J+Y`l+Et-zmQ_ zA?uXgB@>ZXKk6>o6kF$YL)G3TEBvLzRQ&3O&9WIJs#olcf@px(l-Dd+08qFdm`j5e zpV6z|nPicq1oY~L8?2O~ApCX`y` z`{4-0^V4_BYs^?b_mi?}EH_gSWw0K(M-I?^ZNz;=A5g}s<-M{tkIkW&CZN4kESxcO z75?ovXXgAF6n(eXsJm88zE6%;x%WvMvg;gEO}tMo??(2zV|ljRvcj_S1VK&sKY)5D z#A7yLxv_nT=a#blNo9kG({QUKz@R0TD%>g$*J_%%3QYNBg6h&pHdu2ak@rZ-1B(MB z1Wbmw@RZg&bgqxH=5GnE9>+9_Mavtnb2|l} z9ZFwaRsY#BB+ls#6C}N5QpG(WGm3bDFqY7s-w}KyXf^l`a)}?1?`V2kXQ^vnkr|pp zF=|L9uUk&TC`qNU!UXeM0#~+lp8s-<#s_G%x#GcVoyaBEq2JP_?XwSms z^Eu9YL@c=B}OP0@{xoqaDW%PKw-j{TOBAW_@L+w_vz8N!T zRWF~vY(@3_<&1R%ENfa2-7@A3;7&F_EYoHX0Ns$K$K;=)0V^EPZmWh8aOD7PUGX|--vtEVIp z8_#YR?OU{D&VuSC=gpgW9u4Sz@B5OxE4gCklBIKM7E+@(yp7VxlC3}5z&EXW+4R}V z7Xf$*xdh7>^17W4wyyo%#C{BZn*geo)+}E#otF(zAi+T+(>ge48y#z5^#X1<*xNAA z`$GL`r`a#&esuT~oAEd5_AZF5r6J8_m3nh3T3_ypbM9 z<@aE}n-f!8{HRO@5j4=dTu*unl-^UfJ&N<}l-1pPqosEMdN!7ww}=Ni)7!3<#@eKP zC45U4^X|RE+n|6XPrVX;A5#c#&Ii41TBCYqa9)?rTsT8d8Ml1T+p_Qsr2N@CWD)wC zs6iO@K)@b@E2y7#`rFmpuGqVR%a_ii*+^gZ^IHV*{+;DbIDBSeb-X6T4yJh zhV1z{OBcvQdZ&0+&5{MxOyX^{6G+cbC-1JAUcG3Uy=z8$8+E3_$7ddssWV~R^WNy? z?FnzE1vN8x&bE4+m3i5cy*-wKF)ifn{;s!aZ{oDI|CZ@k$U5(ha_^^jmTJzO!yCMr zc8%!q^r=7XE320*#D|zT%&b|?Q?x3g4hAHrWj`8z(c>}| zo9r&{$NGCW*&-Y-D{GeUCVR!(Y5+Zc2_DCge)8U^@U9PNZpj>eIEB1A&bJ48Ke4iU z&NAvHEp<0BCa=Fsldo@V9{@19vyJ$>HHWzJUE z;cYjx{@Wb*zK^`ED&1BU&?OfwnMsEN4-^n&Zr{vd-sPBHvw&JTEU!5^d7K%6GM1xG zJR#GnPg%pgH%53#xn|a^`EwTXOs()X8tMHEaOkmMF7My$ZCC}~qZU0Wn_|^I^xhcd zo$DFXrq5h~BaX@IjJMfn?@8k{n>A; z^}?CiHOrUs0YIycqLjgh#-0HHLFa(X?un#L?~QS!QE)5^TC;Bok3JC%vF`pqPsvn2 zk`2L_fx^p5&}-3ZQ$UWa-5DLjmJRZSv2w~O_T*lqqDb55aqb}`FOn?FNEOrlwba+6 z_EhIdGny`*(Rw^F1yG$MnFSv;W2hDMIM>b*Dw%m&#!|}>fKGW@X4bl2VMpgG%JR4S z7wL1vGS9Q|^z7Xlp@sWWPb~8^O`xU>ykfsF&S#%jT7u)IakOy1n+>S#DY$IVr73Qg z8q(EVjeKnn+!50}-)TgxkU~uWxZEm4O!G8Mq=q#>+j&N&PI5nzL|2tA3C)jtg)-06 zY1HmnU45F{Mfhx?%+n}~8Ue%iyJuuhwfl)|y4r|fi0mFlGdQT0Hat(~Q9IyCct+xp zy*v$@P{ZknJJ~7II=P=|N>{HDP!a6UMEP7n%kywEYPJLB>76olviopzy84muF25sX zd7f=Stx$8qGm-_>t2EnL>S@=K+7%*+^;wx6B(YX>wMu%Q4oX~}rwgbZ@^{Dr#Z%1^ zm#0B%YH*8WO9?k{BrZ>zLTa-Y$>{3KXJsnP>3S!dMRffKsiK~fS)JXh3`?0}dAk-A zt~_rop{IMoVf~y;4=ynKq-K%s?asU_NqHV_OAp^*g=|rec;so>j#}=q)Pd(@esKOe z($&KupK+xn&%>RlS*+hXJ6c%swCPN3AUJuskrtLbje1d|3BbI)W|zze(pec@zSQp> ztt%>do@T4T!+!O}E=eFk_Vlw^b)R3wJ}FDAZn8e5Q5z@B{++03F#5(9kMIvcpe@?56_5HJMeIj64(@SU8I*> zgK~}MX%0|(EYdqP2bS2=Y8ZXvczb>uY{!#NDe_Mz(4rAzPzW z#((692Cq5x>;et-qxQ5g+Gdj2Lw+N+KxxCC6R!5LQ=MDE3U>x6 z>E;Wv3+{XvatBgyM>YHfS&BOuhW8mrv==D#f?SR;c%0hgqPO1$^@9hq(@+I3%8Ro4 zhJ|hdLfBYD@9cThY@v?72;WkvdgoP1@zJlFs`4e7fzm5;Uy}LR$cZ#z`GX}JCSI~R z{zUkS+UD3=J@gWXC~Y& z+f-v;kp2!! zD_@o4f{TL472`Etl&sfyQJygDMbX7yPkI++@@u>(uz_Fwnrv-{Rq1wc>d~AN=m(r? zwpfj#OZ#7w<$54*8Xf~F4Fo|6`D)nfY#>El)G&|=sHwvS(ygz{^9)l6x2VojW?dnO ztoBuzskU9>kBb0G1g!Z{j)nYjQ{D5X+^YkI|HeX&DvnpYCD-fD%?2XS+wy!4pK(p& zsD-!fZP{HO07R`q=2NqXTKJbdft&QAT57mo{_8bL56s0G?l7e@A3wy zFw~-VWn*Ojq_rl0Cb=AY5Ts6DLv4Lm&H)DjC9+qN_)4jv8owutv_+Y4Qm>+oKKVWN zIl-01J}32_+@93_EClZFfL`#vY@4n3&2T&ncvmKUUBQgr|B!n8eK`mrX<%D?l{ZAD zp&ET4CwngQ$pP=!Wgp04Da--zF1>LzDg{bG9s59z(S`O13%aR2PjF!~DvTX0%drw1 zI-X_E8$4!F>ZT9n1qRC1?f`yD(MK}2GS(O6>#eyQhjaX|{w?9~+zz&?i2}gSaPhQ6 zh8&S7>2iJ0#pC2@iv5!u(C}iH&z}OOPuk^Tb>btLYBW(%AIofZHMjm)rcWW0GPgy5 zBe$L6T6Fho1&(5YU}CQ#+<$F=;r203dk6I&1rAAPh8npn^t<%l6|rxU_|%R!n^Ne2a(Olj~nXB zeR8A;nD8(6$%1(15GXp~*-OAPKBQgdbO_i!@(ftwDZT~d%Z_6LeY{T1|3p4NPfzd& z@adP%qPL|)H98=lSUwEP^+<2CRuU;fUIiJbq`1^fT@tJ%c@zHUg%Yj)p*2fXy zmkcI<-u4Z5u1l@YSq2zt@8|M+y(u$5NLSLPr1Iim2erWbp_*;KeIdsfv5$d_5d?YU z&NB$PoqRwNh~qYO)d9J|{GIEAd}Uwce{VD&+nY@p8@zmilO z*wTUb9^(v&AP>`vd4tZnsPAwp}UNIZ} zLd$gEKE+`S)Na2Vb>Y{XDE2Wb&U`IY*LTjSzESuhUoP*Es~LdFK(C--!KY zI_wMPD_jqHivN{X8CK*%{n;(w%iBTHJ&y7Ly~k8@j>+12To)H%*9WRWv_2|~_} z$v_Z0%V*0I5vt|_lOUo13>fAtMyTDUALQjmgF}`#C}onRIvtmP`CHTZ8>dQ-NUFUx z&I(LBA$tm)Cx95>G{iIb8q)Vs-toYlNRfZ*7r9gKB05=bCTD5c&s@D3>Ta0te`u+k z6EZDuH37N#%PCHhXonD*_Mo?Rf5?^~v=R!Sv{$e-f^`uBpx$oj zm-%|Dbp^v~LDFn+s}0piySZx5A2PiZ2Mhh3&rZH3-5)(UsOHp6i zCU%6hmcDGY?WhHrzXQv8G%O8#f?4}h{*`ppQBRmzf&=#TZQnQ@C6|_*kp;lZyZwwL zyu8Z{_5K;z6rw~k9G)6!6cj*QlCaV!2~ZW*$rj9Bbes$<42F6k&FZAqeFxFt?mF34 zV}MfR4`Ld)*ML;e5tKRyhw(sJtav6Y1}Gvyvj38IrG6aJ>l&l36Va@pO8$^kQhuIs zQ@m9bt3%u&!U8$trbSk7U0%YCsyvs%bk?wqi2@>kQ^HB5(~X-xv#K>c6O%;92+CV# zF+C&NBMd#iVyFRG2*G^GuvVLhrX_OJ(Y`o=^VB7SP~R=Hr9Vd1j;EjkHrG}Q@deb8V?2(vIP z^{Hj0`#aLa3-v>S)f#QK2EaI5v&O5iQ-I%r{m;ptF?@{G@ksAJd;l$)ecjz3kOp< z^|wM-0PLL3Uvl~b9I9JM=-D||uLsGcbWHM1hdaD%s5g_Xv7LEQ@YcWG^izZDg9FcA zpCVIDy~k>+Yu7|M_2r?!h9OMAcQ2k|U83?nvZNZ7YE4Kg3JD;D7}v|*?gvw?W~j;; znFhlx?Bs?zC(Sx*yU*k8ULLZ^!NIY~7ig-Y6&JeKfVFj!hp_+NMh-x_Mc_tu6$r$t zh3RlM>dB^C_cuBavcKV%Xsd3>unMtDmKk+JZ)#u_s2?({Cf*(X2zGde>XK=-ueZ%- zgx}^<4Rv#-H9NS^VS8}*ISK)U>D@cL&v(S`3QB`*R8+Rr8q#1ub;(Alyh~7J)YZ^Y zex$*W5)xTiHSlH!8`e%<<2^c~!1O67Kc< zUC*j=zFyWnKvm9@Rq5l9I~p~^+1zz7IK|rsrC-H2wMP1RDWZ8PFp%qIU_(>uUOQ^l z4+4j%-a!rSVzq@Tldmpp$tMFO)i4y(+EP!nw0wqk18p-NYxYU*o% zPggQW9VxH~wP2?aXw=&3Xhv^w$iIy`P++wN4@6l6FAu!Q2;5v`eQlV%kXz!?+x4cp zqr{r8nO;(G=VwG zUlK|o(=>%S?2d0bv{hoNxHeW#TXf)T2QpdU^qbNKMWESf3pwoaHaMV}DDY*6B~o;6 zupYue^G17m_&R$#Dfu0Ex;#fVSynzo~|_wc3K?tZvIIqe<(I$Bjm2Q_>hfHR3XVPs29)qEY;YE36A(OxPywFO>N;Af_(AFj2! zs>7YEbUpwgpyAQ%UxI;mw(bhK*4|YA>1<8cOGJAnS1%Ez=>>D=kD6*=7i*l}(vj+t zmJDl)RI4yMsSCt~F4h|fcL*xk_@YM%|9`}MS%(AC;$438-1xjav5G zced=O`TxIev{JD%KL`;=+N)hRLXci`m6d|+`HqLM-eAIVWWit1Bb0RWZp{cyQ|YQr zPb(3!U{g&%F6W&PMi%^UeOVBE!cj1Svf$|YvLLn|$%08AoJCjNg}S2*o1#6PV^W>y zYf)}P7ZEsBX1#0bvjulC$z&nMVtckP}y2$_Tw*Dj`-cZan&(4oR=X*v=+ zI1y}4P$IDPXR9}pa8jQb1Z+OoibGbaqskp@m12>8^ehrA(5}pAOYNoD{h%@LN}=8c z$&3(CKd_SXfcK+U%3+&)raEjB0__ijtyx-1#Csf;c$R9oD!6h%DY0)@DREI)^1U@E zC6=ny_gW<>J-su@({ee5zHcc5>uXSH6&f8?_e!f2laI|m^;&R|>ndHg;no+p$k672 zp4a1y{jAc;WELU8Hb|{1L&2|M)*Q_uh%%BLxlwvp1fW2!z20h~o*HK5fR(>-J#Rx) z-3!AaaL_auZtY09>a5=T%pi;S(`6BD)a#?HtT_0^NVy0yic8ebBdnhFxCK&HNm;DV zEe;!M(nxDrkXv;1aEo?fySd6#;1=`M zI)GsDD+!^w|MQ%q!H?G;vnu(K<1-m=%{ErE-AJ<@Lp?vrqB4n#)Q}0*H3|Q5%tp+Z^xZ}r5AT(yo>HwQ zT06~+UjF@+QP-bz_ok|FlGQ`A?qx90f*~Nn+@ndhQFlzTT4N#hdl&*b=rV+ndNrDW zA-osL5ISmx;EL@b=G2jzJ5XFP{2FX(b(jML$C;C@X_`6Uoqx+5W`tu7ZNf5#iD9V~ zm7$^>R{By}SZ+x+zq>g!(}Tmvc~+5S==-2ro0qtN)-~`uCM`7^>>?^_hA~ChEDpibsP=W^p(rb5mF)b7D9pvsG9n6E2G| z$IV(9xL_WX%p@7*i8N)lHX%|SpAUPRo^TwKV|)NW#!QXi<1z5TQm`=1 z>PW(WHBt>+4tt(1JPSGpBu$vF{}LH^dO6a8jeu4yOO>(GqIBj*S+z_(BEtzyrRtK4 zt%78z=ak{4ZEEC{gG_Y38odg;g4MD60&7-TKU&d0JGMCe90aMOp|-fgBCz*jE6p@F`Sg)-jP z>vysGv4bbEW;(#Qt*MS&?&zxMn!|fZSJj15$d*hm#S5=8)tD=+POV%+KFVJ@a&}Nx zMFG$v0Bymz-$*^04{_&)6wB{e_$WRBWDpltE$W1M|5LVB6<4C3-~X}>>n_6o=M~xb zvlNah(<6~4D9~CnHRoEZfuE5aEwy=#RREXwFsgdQE9wJw4W-PIw@xp+do&G3QDAap zLBXvGIhrQp6z^=cRo~tz8mVKyLM7O8UA-p2+mP2gsxHZ~Uxz!rb|CcUdbWSsBJ8JO zPp>*Yy_%`kYprWjZa7PhjkT5c?kZuOm8wsyl66+T*5ymU@FNLLgh-m}85~0HxphxH zN%r@%PA}Gbe=*dI8>|{_Y9PJ0zin!WREtLmqQIVEyS$pk+19GxdSILUKUIMLMx3=Z zs(%n?|KHPnQ#Q-`>^?z48-=<_y^o=o!f<^7ONka zd;AWTW3QCjB{Jw%YjoMi780xFqSh8txatW)g6;Y&S$-9A12ul6+q{IT$vtFs_t4!jkzbwvs&LUTa#) z$+IeDBX6~XdJVcWX7O@k<9!z4gV8>8c?>jVHlnes^zQpC?JBjP4U>Y?&QPD+XU*5L zBT>o=w(JOqr0@>XXT!>lu&S=zYCW2A$yvN3i*#VSho~vH?tbeI9i-+O#F9`b=>cm_ zhj4ms0~CwJc--nkR91|!4MxwRP^(xl&4X4_bT7d0ur5E}OGlt%d6KZB}#mTDFELY^(}K zs$T!Ls7f0mV_jd%X4cv=`fCFJ1HHK|RAGzL1Wu`T9CcHlfQvMJGd)&9$0N9TM4_iBP?g?E-l+2tIG-=0YRT%A)8`xQOV0)+8JtZ=@Q5 z2dN0BGQP6Xve6+(LDB~lXzmcxDQ19zto$5gl|}9riZKJ)M>kBiAOH67pEkkF(c;7g zD|0k1657r|s`!Wx>4+6%>l|dj7@(~H-Urt`5iA6nkGvtKd%%LFxOD%zsH=eBi)*Rs zyl)W=wGxvfd{gMdlK{{|BVjE%o`af3!$cca5^h5YK?9*9w!}2Lbd$=1Ad1nK z=oZL{7!U=f!V-C=4uPpaakc<5^m;$DvC3^{C946?z)~F-(L~t=?Ib}Yf`ljd13h=* zth52yMuXkIDUr9h=y@v};@27tWkDqvv0k}q%kvhc{@zVhG2yJGv#SYo4f(qfNyr{A zg*4~Iz}sj_c|j5X$1v&~OWX+0v7(0fDoTx_iuS*x_6+ps+FX zRqrv7VAd_tR=agcfbbc4)XF5+yI<8Elo4wDi&nRwMv4WC32~3MRjD(qSM4E*#jTPI9-?2aEcQnl;qHKVSN`urC}=N!$zIZ@XL#oJ)! zkJ|WOOL2V=j~Se+9IiI%TB#lXWgqDzh%*1Rt_cQKz)**zmVJDn*M*f@nwsjNSAl;q z#k-Q5&pyyY{AW0sJ+`ej>eJWQ2&+8D`38NQ+v>v!%-_1uWs`c@wCfCfIA1Rm@5FUs zk8emMXCL2)fe$^t`}6UAxw_^vt3%e5&>#fQ8J=VX*1l;WW{tNEDUX#1mjeA$;V@m% zQpd$SJanqb7`8!YyXy}X9uS==)i(4 zBaCd0h^R2Ouxo-2tZ63df6|riis>W1H~U((Yg*9g-6&i zfK1PDI}O`sEeX1HYCJT2ZrDyB_#*lf>-PU44ci`_`ZQd!|LUHq>5!dcao9$w?1Kn5Bbg3p z`PsM^9Pmlv}8Od(W=F)c|icvT} zN~&8ve-i$ zVtn8%-B=Q%6~Lda6hq_(sqXYOx#w3PO~MA1Kp1LWuG}$?7OkeH)NpjOL-mZ_tc)L^0>AU(#F@p)<1d^4|pvNh{FRvjXK~|V**I}zkSHG65OZ*gy z10mbz^W$s$EH1VKIaKdQo%5ZQ*%%^hn0DT&_RJt6zdN@J_S4%+ z$F`H3>>^P&1WEw70L!%Wuln;lt2?Y@4Ht<_;QcQTOIVvpbJKg=-qJCkuSoU9mHrf9 zGj2X&^;O%afhaP*M=aNv@2xRLbG4w(Dl;EJxq^c-omdH=-G+tHNh^+8rLApMlTain zh&Ncq|$EnN!*cH(cq0mCI;EV$zU7~thv$G!} zW`n3k+7jf-_$7t_x(SG;3PL5`Ko<`ZDhi zkPKbsXE^(doAsw=lXcoGHRH6|;B78(beY~7&Rc#r#To53@(ESi^(SJgzS&f``q=(qZuBTD-% zLVbMPYEm0qnm#o8N#sEd4j2pEr``frQ8Vbo^_o@HYc`IWZ9A*kxO&ZME2!POXSJ)S z*RD4;Lp*N1ulBCjtRFSYqa?DBG4!j~Y$!GBPt5>^=8y}6X-Fozhit5&_h0U9L zw211_19O>MKe2~}dRPhxxrWh62^83*a~7b$gj-gH?-Pf#FB4X@P{no;N!S{LNwJpiO^54K3hgmStYq=SV-S(X3?E%S#5fN3vfqb+CPkgdBu0ZB z+o#Gn4*AOO`vFHj|1T*j=0qCbwS40$diNV@KL@T+i+do>hwb!S=CRB)-_?1(PWCP8 z*nnwj?!}FmXa4qo(};QI0IzMam1d0YYisp;nQ!#*+@t; z>QS8bane^cpkk!o*LNtkh-zb6$+;oEB=Y|;P8leSX?Cru_`}Lgs2Wia{`i%M0M=}6mUU#?2zCR$4*v(^3L#?!b@81Qq59Jr1}6}TzrYc7{7>r^=d0_^z}I5;V3+6jW1io$>a4-Ggcc41 zevr9D!@u`nOKdv1u}Rz}Y;U7GxF%!01EtNyKnsiYemP;ibJf-mtaoADG{!$mdumB2 zJ=eJDRsYS==R4tp9n>PjUji+5sRqP9WcUk>1sVaqt?54>D(?={-?(`TCuBz3WRa^) z0mpd)yd2Wz%fNld5*upIezO2x`$FL-kKunzRW1BKa=l)XfiWOTM`SGX=gq)u>F;G| z$2_H}n|7A3srG!qIRJlzHAo<%?zrW@)`;6`^0yJk-V=%N`9l-c-u-4Pjvh#{^PJtN zYCCv>%3wk>Zc6|y3O%uQw-bFO{hxqW!0$w&+eG7bPLaKR7rwoy-7`NaD?z59ZZ`8mv<@8-%(X~ck zZoGe#?PiO^rxAvWu_pK_XAe`al^K2jr&&{ z>cb>|`+iyrcoE0kE`hsnbkN-|wSCsskVwF!tQX85n+~8zKrcjOWSlRKgkQL%HzoTs zP}**3vY%3I#_J2ZPBoOy26&E97X3oKmh4}SRI{=ae@Y(j2YNec*Id-vZY*e2TZOtH z#Xr|>+#RkMU5LfChM>n}MfUVk+bRDq_TB?L$}0UEex7G0PYDU>y-gBA4J9EU9VQI| zAwUv38ir(mKuAbIM1_#pu>mT#Wi9BgYuDJuiiTa+)wKZXy142JYp;N=f(U-U`<$7{ z49V{M|Gw|K-uHU1Yu6?7oOA!qefoXw)9#Z7e%?)KHgFSSM*$IixPXjqcIa5B#|MaxyAj$#d1 zS9pNW>@jGK2^#Aq7mK-@S4@bJG)+A{k^YdRk3rETsdO4&ql6%abrdOzY_j3vAiLaQ z;dcpalQCr|p5tI07f0Fall6@_|J1XH@iC-$vYxJHQ$&iM2G+@T%1_a=<)#oe&oDRF zs5V6}D3FcdQcMM3XIt^Un&wLQE8AD>o#X==y_KR5!SN&?m`f*@wY1*g!7xUVs*iLC zg&Q&Sg?YtxI)~0r)%hsPO*XncRreZR!le_$G$`J8;=sGVCej}dV;gDuE7&#_YXTvV z(r){%bp1t`tmsbH2ZEQ&PT!>K$#|Vk-WK<2gLpo~cW3-;X|bc2U&@dLu@b#uaj?aX zO>(l&XJ5pU4)2-`ckzT=yv=x{B#))bGIYLLk)hG^8G0pN7LIi2&W=}o=S71nu~9*$K3N~m)fz@!nR+^Q z47rcrEBhMna$})&I6aVwIyn(?NP6?Y$KD()Tn5V!!II=IDUUWHm?KLclm~0My*E!$ z;DNggVv2-A79n?V@7YsALZzLS@)`dU6q=EU6rA-CGaVdrK<0I^w3EotK4lH))&FDv~Qhfq{?&d zSX%Ga?a-dEM!OXE9fs)V$T6QU+2NYFSSq)O@BN`M;1YRMtDZr|*pNZ=>neQ+4H&8q zqGtx_DcUDJdAQk|hXNWgSRa8r?CLuY7~lNsR_=g2#~V&zi8Y6oFVP3)o(TES2$b&szW=^w(7s{%$SE?nymJ3nBWNGYyK>LR zLcD#~5=&{~(K*;h;?wb?==e;1C^ij#W_KoDT0Lip&K5@o)uVnYyW}|&0^|6#VLcaxaxxHM-WskvZ zSJTvy`l=u{oYa&0of3FofWNTfUL(`&(g!$97Z(E4b+d(b5Vt7 z2RBOAx0z8W%z;hjBjfZ~spWVHLd)5sQqp)mHHaWI z8a#eDbG-hn_nlD$iI(Gf7PiOm#1c&$gSTCs6ZE^YWC}N7&T<3mCJ_G6ier2+zhpZ- zj*d*#<0)sNo{7h=dgviMXh+%qE#1y^@LVs$cTd#M&Xn^6xi19jXKcUs2`m=HL&4jN ztv)*yP0~xf$7aIuq%cm@WYH~?^i({uw~fu!LhIlJ#>?zns#Dn%eWX_#kuTZo!Gii^ z-TNeWr%p>I>n{xqOt?rG7@x@uy@Q$I?RZvgB(s4A^7q;lJ%=8iqDRX~>tlxJ)hT+6 z>g}CgRsV65zMZPq_mp^|Od=jK?J4o=rs->X+89}AV_q9b*Y^2>=^=|EQSqL|PQ6Z5 zFQUDL`m0ed_-31iQi^#k7RYuN=>u_H<0&>wC(qci_KX5F zI(5v{M^2L+?RJO)JSP!&dg9Ultnp#S7&LB#$g_LpG-8%sig5(TI(Z!Nj~$gZx^tHP zzE|o)Zhq;z#gl=hvv{t7Z*25rxjx(59UUl1(I>tLob~YP48Q%Yk55Y%EdWo^vr(^* zN*Fz?DJ{&O%L?RDJ8hk<-+`5w%nE%h%EP78*%f+=I+*rV=xnay?;&)&Lf_^P$J4}w zn^SPME)wmZU~ScT6!FSmobSL%E>zmVIik{D=yTCoH9XOC^;k`t5)yEq{%JcjfjdUx za9-pdHH%>^!>{V;!Bko$Qol^4MtsSR ze^R9>)exRtRrRcLHiqEW`!XznIGlcvwtBfTO5 z$%vIA;t4ygov-J4r5Mh%p@3eo(F61KvtfP{717001Qtq`przRec)pIuaF~sp_oJo(!|0~XjsR>$&oNjZ z*NVeGiU)t+=!5G+|1++y_HgxUUN6|_!KHeK>=r5ga3&*F*ciZF%!SMJK~j~1Wkl`- zu$TP6GM()ur^?BTHydK2!nz5bGs~oJmx=10(`R*e*gb>J)}K?gyLxnF91EG|mt`}t zZN9cfXS)TO8L0h^re$ly`p;E4#L6;s+t*dFI*1T__!C1RE0W*c4KpdX@(R$#Fx znYORfW6^@L>~!BceG2`!LeGPxU~hQUnvA{Hs##@o#c>OkY7KUpUaRMh<=d(v4%M8D zQ&Y1`s;ZpRWemH;69rr(8E9nQ2OOIjDi0*wmy;7^E4?Kg*+_IwT%91LP z&Vmr^$cig{4pN)+A!9PZj2CR6#bbhpZ1PN%6%}8R@`~F+_LfbW??#NE<~q?&pT>Q* zIz6xFxY1{L6dq>_a=5@{B`MIAp9r3`#IPtH0rh#LTjvK47wS~*)(4{%9$gP5VY^$` z;rpOLzj5nxV3M2->K+7}ojx|vL){{XzWToM~v~JmIn&VN7db_m`pW4)jh;C#?P*Q5>iWGc2N;r9zaim4`gzptd%{pkT!T?RlSZr&-Qll&cZU~D?haGDvnES<2=y>h9NytJ5X;r3;h2yR*V9${ zX^lRqr`Mprpw}eGUIS%*_F8|h`4+wAV6R@&9?)wp@b((Kw%yZfl0|u5+pE{$$#&Qb z!xC}R8NKEX^qOV=i(d1L=ryos>+3LuqQf-($G&ovoyIr*=f2YI?<JxKCdqGzEYA+l6=ozuJu}O6QgCSfjdDuUZLn-OJ6eut7@ru_-7GpII$F3%UjZX~=6F+3XaYJ79a+y09JJ`kgJ7e@6hcLmF0$EI z>3YoI-k9Cf5#x9&!yOSx54Sv+E@K@&E>JPMs&BS09gLoFjCzL;|To?Bwwh zB|>WADT_C3v~#0A3fAhlF-V;YN?YLC%4ayNd7hpTj=lGLygeIg9K41|tqj{Ifm+!r z8&#jD|1SHCIW7*iuqGJh(*(ELu>|DUq_b_$ayx5Twp>V|0jhl3D!Ln+Hhe%-aiY`pHn?e=jM>azvU4NlI zxQFb$9Rk}G<0Sdb3-#oI{?IV}&#i8fS2+Sd{~E>jSVO#69~~Cqe=mESMqL-{1$6ml zJ=&}Dinr%EVTG-NHIA$8ySD1dLH^?LlN)Sw z(H6Z;7UUK7UG4hJ(XttRkA)4qdoJexUQXh9neluPh?N?6CdgckvC}2(xTmYcQlw09s}@j+VRY~!J+%kpEy}%GKut!`P~M}4#RrT^L#i;N(2rfs##7I$FB4rZuFt7wk?#4^WxCTpn{p@= z@rE%N@7?RB_Lkv4f&M%F^h!Q~o^;(l43k$qfs534UZLNR#UcW0wI{S+f91(A-fi>g zbK+(qrbCn#W8=50ck6V?HcY`~W8Mgv_#W>uWAh^dS#t7Q5)Z`FrOF0 z=rX@?ZDZ5MMveeBeFt8te~ayS7IruaVH2W4fH?NneK#QvrZd0dS?4~_RAJ#vK}8}=oX9${7)Q$Kp>3L(}$4)KIvgEfG@ z<6EoKjo0d}@(=|s{DyQIl(^j|qr;S+Mj~h8rMfu=U9ep*gl@KHyQq!xjlPbK|H1J5 zv|ayB%gyoG9_Af%ER4xQgW30xI6fVRLc?^yCKgU-QR?-2W`y5UELhz}71!&u*Vv|3k#Nh z>kbf#}D`(C8cYrFJOJ=hD__i>GG+NEdq_;#}I4`*U8V&4KA^`}4%SF&#%7B)zC z^l-R_eQ&Z+C+RsozOS+`)--~#e_`KHJAFlZUJv#Y_ARs1h#Ld*_AmB@ittE~@6YV} z@|nIT+4ltO3*IP}ZZMOADw2AWUZjA@>>Z08*?!cEalae>v>O%Lf}k=N7yTfNjCG6CbgKo7Ix z`NA_!{f0bwub!Z#ex^nEPh=Q;hD#hIxk5WVSUx^MbMHqj3-N$pUh!}l-Fd%WFj(pu zn$Yj?wi7?`!3zUyK^Y6KJG~mpWRo09qr3tO<6wERJ#;laRT$AkJ9d7y?x<{!NWYH(gdSjq8T`jBQ^c~kef zJ`dEqi*f!z{oVfMfmg?2N97?s7aA#!y>myl^&I!a;+pRot15-}dYbaEK6V7}^Yei{ zDXkC$QI6vWU+$KtHF44q%J`4s3`BwIx%*+9{a2Ub%_@BhRQ}>F$nq7mtxMmn4xmww z>Wekp8ol;WJw={iz-bCx*jDMONA>R_MM=RDju3j>1iV5ImR-MiO#e1C$9J@A7=7}% zo&y=4Zu3Mwp?{;9d{zV(SVnl(KBZp(BXirdIM3M^TfbGKAATW z9naxdhn$1p80qNI_)}WRgFw|NPxkZr?=AXihw+nrm2%QWF5Q6Pw(E?th(_h)YQ+-& zkU`Lh04iu1N`V8uj=dK7AYqy13YW1@pSeC`sh_Xo9?*5 za74J3lQjW!a=xZ7uvaT5E6BOah@+Za#>B)XJY(E|B_Iw>p#_79blf1|A_DBu^r)Gb0( zB^d*8j>ZV5j}nY%&xarAjVfK7YD7j(QBIBv$i#43|A{`rexGvkw^YB*7)iElV|kpT zzOlApLmi%db`%#D@!+(=-QpSbslGt9XDKIBsq1shPw)6lH$pIo``ja&jX-x;Yi<7I z)>>B&B5Y+#{^XS{0Y0=RCooJ}AiL!)fuwk98fX|acb}eVpQD^CBS)K&M-5- z{7RpL?;&67rL_DTJxLu&=YOM5P8)?jaInAPTu@S3T~<|9GP|UrI`b6nR>1Z^9=-jI z&L-@C{zlKh)HC^8oLefO@!!HVh8BOTUywYOgZEQre9=;mr-<7eb$H!r1cyC~zWr7o zu8yPB@AOP{JWcsdPf;h(lJCG`B5nFkcSKF%u-vEEbOVA+ru!H>g1FD4 zy5X4KuFjyi@AWNu8ROe2`Fnj5z4JYo&!o&B^dagjn)QReUM;8Re$cbj+4PSekiiQ2 z^#?>Xhi3dsAFa-%3;%_~0rM#FM{uvCvwuYJD!TVaJx#5qmw(iU>+_lW)71SFCTfnK z0A4`P{iMI6E~K5uu~@Q*UO28#P#4qB$MwN!OBmd{*k9%>ETyR@^grb-V@RapI@eu` zVr_Mxle#yw;MK)Ip;Q2&R8qx4Nm=e0_p^SN5K0GVO_mW&rMi(|U#Fa0CB;*_Zp?{b zX%)~t=!kAC>gBn{FcwAbR8C$MfE-RoOla-lrm-Y$xpHzz0Ld$*K%W)OO*Mct+)+i# zEn}vArE+q)lu@r)#_Ys;B~?f zi&Fa;KijWVPF^B~)3`8Wz5Q(EjoJM=pTcOtEG@>z|VVwjS`9+YOs76I@B1KB;*TLjIh~IQB?L;1!T(*Zsd7% z!BAuH@O*CMQ3{4AcZ;jBuE|kY-{@+oho*luqoy#qT`6gB%yu{aOquz{*))8Zkp*Ei zcbJg|VbnOxU}1F4FrzkI2%`vPh8xev3ufpxERgb;)mapgYm9Y$be}*f!4vR!YlsEXpK}cdB+(bS#$sz4r)7>Z)IrmJ)e|UWxG_#&&M+t4 zG2Ez83wMn$%1{I|M;J4EL{n}3_l>7c7c#Dd?j2z`A)3A#VU$2L<&8AjAe!zTX9PyDKO5XuuF_YvI>l8kV-QPj4wkMa&EHlWS)zfFEwIl z-WVeWGRi#$ycg4N#ux*Wgp3NVx<7M1meSwH7%%4v`P5Ir7{sEfsl^>EnhM7A-J22? zO*Pkg_Kh{BYSGxf;qzpOIaMiiH*RP<-;*`oXw_-=wZ@zO)u#TdP5s}fO+}8e<68X% zMhHY+&IQIq9By@8V8p?A^TrE|tYjhK`Uwdqh1;f6r?a^qjHbsxpH#rzAzG<#T-&gr zwf0&EP^S1MIa8(M1Jj#*83AG)o6MSVkk+sAFR5vmyGH%3-n z>-vw|+%35d*V?uX?uLd5ML3_a8aLiCg+2U}5R8^m(z3$c=s33t0%;_BpT(>*73YT5 zjUTUW0I9waJivjIvB2GOzPrA5bz?pHwGfBn=!FX*hsM)K7aFX~{lcz^l(yN(F7WDd z#U}pl3E4 zr4Y927NZ<$U&R)q5^CS>Ee5N7_I6_m1RBB?(TsLu4qZFK2+2P~0i4V95{|i0DXw=r zKHl&T3AB8c4!9wusw)I<$Mg6w3?+o_sWZ${dTHW=HZpRXLecL)$ z%UZXiz7+~G(zU9A3)bz}h;Me!;~K*=;_mtpr%rESE<#gX&s?U`t_~w1n}fOoQ<}iox0~NevS+Wolg%U?m>Ga{aZCz64aLzAv z;MpTbX-QQzj>=b8qY3QdFmq}AMaFiz{b?g4VjhPdqYTG7UQ3<3g+9E&Wo7aFa<4iqr0&V z6N4n9x*zt z@<4p&)8!r`ebQ*|IT1>ke^sQGWusS?ixDa^fGC$sPGMOBU1tm(_83d?e94rjj8wdC zx%4R`7h3k^PZ{Znq{<1INvKj4AZeW+R1eecCYesT|iB`sQh@n*9A~BMd{x z=TBomani_V3>Suw9nToNa`4_WMp=(~&hJE@Iz5GXm(aLpjmc2Y&wUnSjgamQ^z3tJ z@PB*OSO7(RGOmj`Ev2`*jYrgF zbn#xygU~O4zPXm*qg?Xq-1O_@Iz!p$8Enl@Mn`l=l$zfaWd#lqfVR*;&pp1>bRDKm211s zoJuv?u+JDGF8KD?hzA)oSQdVApW%p$=Pf)1iQ@I_NO6V`_T9eOhjj}7`M?zK)!$HI zlN%RYV){JwTx=8PiM$!)G^v)Zx~G=dbUeH7DJx z1en(D2NoK3XRu39K%?F@M!*mdZlkjeA+A_qAR+_113j05`2fz8Q!itgTtk*`pdIfT z7iyiE6!SOZ6plVc9W-K5k#_IVD&A+cZT<3I{D}m7sY=BMjePGJBBo7a+BBx^gjMB( zMrHub!88ZcaMkzaU|J;8BAKRWyWTUVc~|L2;ha`MnphCSX!M&P_W`D(21dykif~vTmtCD- z-phYEEp5{93vVo;BAw;c!-`AFed}`!zEgnj6kr(V;Oi>^;Iazn!*Vf?!Mg=`w=;4y zSii{z#Jp%zu%0`;qBszKhk)N9cq?{FecwnzR(ZREncXg^w+rfUJI#6Dhzp?JDyX*# zDsEzKdEZEF?+JU0pxz>=*V}Q&(VLENk&g0`(rRaA<(!3qiMdGxxk&`sE6v1+jQWy3 ze{LZ9MuEOjpucB3u85$W3$dSwVgB4+{7Hl$5h7FCmkHoMW6o?0Ej<~yN}#V2=n82d zCZO0$^YR11R|@czX##ygALu-wsrv&X2JHe5r2DoKaj>6jd{iK>t%BE9!D@dm==eZr zyMVR}=r6sX;{u^u1aym2=QcM;C)bBaOHXb$3-V^c2{vlZNZ;5%P8SO3g#rrWG-p7^ z1VS$m&0Z#FiaAd}&lAug#uN#<;|4D(v^1!ingq5^#=wtK-r71b!f zjRO2$0N9H?D=@|D1a_Uk;;{Ldi3qB;27zr5*nEi{BpS4raZtsr72vf3e2z(79~rR$ zjb)9Xt`XF2y`v4Pt9pU07uY9zV}mMdwZN_x*u!UH+lQ3~)mFX$=L>MSbwmjprw3g|!qozM#!G{ocxXpR&P?ois#Y3V7H0fIb0 zaN6FB)6Bp~vjsF;K%eaeoe>Dl63{FG{j?W!dXR9)6xd9Gjp}!1wo3!qIt0`qpp$w* zgGRp$0nHH5RcAumhXoC+=>nTBushGh4s!;kAW1-z1oZh{(4avqQ9u&~^z&e78QRdC zK(+}2n;@_;VP}>>Ss*lCK;s2;N*L|_#E8l5sm?e-jT6-RUW^ul5vd4)k?Q(h)at-! zVg#cY!RUovQ0&O|#2GE1(E|EqFKE!f8zrDovN6Vmi_`}+#z;Yq6r84opIHp^0wWC* z&@cgA+Y34<5PE$kYh>4F^5}R|c%a&Zt0U#Z+VR{#ApAN3zfQnk?hQXfgWD<4I|ce* zz0qf=a61Hghd>YNk21u_lFN!sm?F|rT+vIjxmpCdS_E0#pT7RoNDffcwh8JsLA|U$ zIX*Mu1E^OB>J@_eM1PtaOubl8FBa5~`_tCXjD&!&8wGWvpvFW{7pMU>b*`YEE2xDL zymBTLSE$ikrgNtk2Z`Pd0=_}O*GKfK0$9ZetbsOxZWHL=Mevef{hVLk9;0fHY){nrJxo>(np^MDZp+)bqlI1k|Mq^ z;sSDCC#ZFTdQD`YHX(9f8Z?mC3UI9eKida5Xe3`Dz$*m!^I-5;F4)qbq1+|VE`g4V z>Ya`PlqwziLiG2-KIlQCd5vIJBbYVy0S+3@&k^8r1o$_7fP;o}hhr-DK!=#Sy%`la zVG!k2g@+GHaCalH4P;=pcOoQ11W}^txi5oeFX@7sE~ulT>ANqD#DI!V6Vx<8t&OJ4 zuZ)!P9&wc_sHuWV(Jeyz(E__5 zmh!#{D$^)IjS|$(-kgF)ib#Qt6xfG)V}r)*2!V|d*!RxFqD+GZ?fwGXUx4+vUfBr} zfZ+lgF0lE%u|X^T8gUzrA}cl`vop8#(Q0DH@SR$yg?3T&vrJ`+c~zcmtz zd)i(g_0!&*f>c3EaIyra=y+1U3#uJcP)$Ld65p#}f_j!Au!g{{>5ZKpn0{Sgb%EV= zCKk05q$`F9aEJi!Jri6$EJ!V}3#?sWzwM0;8k}qbE7zft6M8b|s~uMO{ry=JU`;SC z4FG#n9HMB9$p^BO3dyA9CpLHT98D(OaLwufPG#-kQ6>! z0L~VGUj-m=Kwl=P%LH|JV&Di}HKVNb%vtYJfnF-mOZ!3xO?#IJ^b&!-A`soKc$o(c zn2QB`v4DF5;XZWGh`C6h7YXzyeW8O!%!LBIP@rRy+WW{SkD31ZTOi;I1l*a_2Rdj3 zoiEVy1-hv(bWnv=M}66jDydDY7YNtXEwkfR_m1 zcV_^>k)O7fOMq1>rU6w^d;ljtIgp`HaeHuVOSe+MCI`WUZrcN!2iQCTb0_0|h&Oq5 zMe2e*xVga16}au~$$>hHU-|99&H;9gzti`OiBa5I3LA#m;#+VMk>zBpY}$#hXA*9LKs zE0e-pFR#iL3rJT=U~P!SDLHL7H03A zAU|ND0K69rKm+#y+Cw4)LP-m3WUSta37-!Zq6pOBv@=`6>^bwRFiME+{ZVY1k{?~; z*!b30h`2a%euj4!pgIj^P%}=C7JUnsIBm}3Hu~d_2H!otJ&nHl(MW3NySGJr!_$^| z+;;x`cy~oOCPvyq`A)~dG+{V`4fVmu2Jg6VBmM~{SJCQldx-UMLE^4bVGyX?3-V(oGNbx*99A|G$nj!$M0*gZ+b>xu0;*{0VV@VG6E}5 zXz`o~Zv~#4L9ZM)^7(m-gE-6>al$Zh0sSfm4Ed79F(lDsf<#%N=;Ai^EXJ z&qk!z9M`Q5*pteH?aVxrN=Qxq2S!iMO{C{-DzGed7wjhXcE&&E-?>pMxq z3qxYFH}4l?rQGZtf97WI2zulfgDp7W4XM61dn3=->{V6XqFtoY*{6(*ks^Q1d=>Lj zbP=`@&;Q>g%U0Yi<6BuO+o#IYP?!&>2;gnnr&+Wn>2L;)aV|+%Hs$JZ;RE*HGEY zOB-Lf$}6{}U<0?I&+AjSN+Vf_o_DBu1NSCadp>P^sXj)J{EEH!5p?WVV=!Ldyh}k_ z#HBRFyK#FvHf~pFA80q+WDb#6kPqPD*Bf3p+0OJE8fmI|j@K~dJ|x8{4O14uh=r-F zL>(64-#q*)=b;#P9=EGzN@^U73m?MCEga@%g)nle^cU4!Fi1$E!~C)cEWC5!$p=Ju zk5#;7BTChyQn_X(i!F4HQ9Sg7vwwujb|RpaO}yE#%#q~s8DXb3g~ ztHkFBHHv13m_y`Ga(F1Lz|3CYtgONN1xa*wh&j^sDGqDDj}P>Tzsf6X{=27TC_I?i z7bY7Hqn`F7S#^pKn|vAcV}5o;6q-#GYdII%HT)7)HR=j?`#4N0$|e%et*~KME)NOi z8ko(wd{q&5asj7Zx|sswvVpL94Eb3R3mD812bf2#7Hp4e5nt{>_X$csF(+WCN+)zP zH8zM+&6Fi7;f~}Pl*LTB4E@3|lY+w(GUaiYZ30D>_5tkd8)m(hrh3v$vtA8(-ab=W zQOux+EOVKBmK_f?p$^azAGFi7P;<&Gab+7NG6h{f96aOrEdy^6!5hAh%AO}~PHNl= zDmd;P(jGU4Bs3rHi>p+6Gt|tLTjW=(WbbE=_nq?Kro(~uYBaZ>nVX!#!zSKYRbc!$ zzq0Df7r}$+cy#w@1=`6Y{mjXd(H^f)|1fhd96!E`utA%cus|zXQ|UG%BnYp;58n+ z0b$@|It>5MS^Pn`^uRrvx;h+?taan4XdOS<`BS*Qxvz|+2P4ds_($U;JyfZ4<1kf=ySTjk#(4TL!c4?zou4AiboCsH zk2Euqwxvj9xU$OKR^yM!lR_1dX8hzorAczE(pXd2RJWgFc8d zhiQv4DKy&5(td@NpJ;P%=&e~Ybf!Yxm1eT#4du+Hix~E4HvK-@Ot&r`AYm!jjrv2J z50sumUq_n*wC8guI>yXuKYO4Ag( zKft%V(C0gGNDsD{ebYpl{Uy-bAKlWSv@gbt9sAYLoDSNf(Y z*ByE&o<_x*hIUIXjgK{Rv`NEhIetSw81BPR^KWrMQh>IMpof^4G15=$SY~>OFOH;N zKn!<{@)03Luj_s!Muye$Xl5KDxGRsEClE0 zP-wh4M0=@##>AVMXRR3{dB%8~Ew^-M8y>n?v7yavjFm)Rn`R=nmQxex>Uc9Hc4d*I zn@U|%p{sW7hV_>g({rF`wpnyA-b~Y)XVG!~9Z*gQ31-^jE4IiGaS9)5Ys8(!(xwfK zb!ClUjicu74j-ADesN)GO_8|KxS<7S+?yIFbV_oB=ouyFwdI$#G_Aw$g_qLR31)Id z(d7~lt*mynR^bk0Qw#T?Rr$C@6n>SDH*Tn$>uzZULob9c)ehe-$%f)S&s~emzjQrC zCYp)1MLYk*A4#PTz3z*>u4y5zH@ZdNDsNilc*hr1a&BAxt`8})QQrb{)NQz1+FEu( zp(gN3Z2nmy`f*Mwa2dCz&^hb$DTVGxG_!1Le^uxud}uT6^hKhX9&hzig_sIe8k$^n zvzzKRG`Ow)l$K;B#~)1g(OP7IqG03FXm*mBR$yjGnyIv+Jj-$V{FK*6S8zvX&W5(x z4vEl}*0wshyE5svBr|13T(lR(#`7=@qGLY^`mnU*Fcc8ppM3aJ+r& zFiGjJl$PMQQDx0+h-L`bnz26KD9ZAtT33Uc<>B6O(mP7ou%31$n-Pl!PhcNa30E2y zxEc@}PPEpqYAl~Dz3n)8S62OZudBZolDJXjJU6;!L^pW-5kX^p+dqZN797Em=^WIih(y*DH8iz)!zwc*K_+g9aM^nX zz3xG`wwzHBh zOErh5-cltAkvQRtr>^U3afzU=x@oPu@s4WRmkOhLL;v;69=^~mhPB9_@de6qB6B*esI+FW}u_8+W?sWSTiPG;E~|lcLaV??BM~b`32` z$6$F;6J3yQ4oPc~WZd6Dp4#eHZeo^&4NbLcTO(TW*nydmcwVb7TBHV-&fRs~F=H;E zhMBGnY^UZ7Gil`29X|FgO&k5`zr0iWh6_nB zA9o={u|0edJ)L2W()L|MUuBrd3ykd&7OAvCbXKi**Vellpn|M#{pChUF=fw3=N|Dp zAIl&SG5Buj?Qb1#-%U#$=16Vm@2SgSCefCA%uwybJ?zL%nteZ`Lr^ufEp9Xy#I*+f z;)Vz48wUj7kcTNM(~Q?X>!Kl zM+SnDA>ycX^SJP>*Vo4i7fLtu+k?m4%!HJ@ZW#g{iO;=@0?3~Yi#284^p8w4as1Xl zNvg0m7xyY^KYm4%+}iwI%*j zrES?}wk_s6l^)492iWp|!1K*HW+Hu;ZCV;$qWU=-`I?J&Xa_*c_{m0-2S62Zh43$) zpS#aAwM>&f8i4wLbAV~l!vo9^jr!4(1I)qN`2I{8q;*De@FaTve&|gzV`xr}i5J6` zSh|*xz>X~KhE!_JF|)G^(=^d+`s!zmnSw?UL(GJ89?Oxy1Opuu%k{9S$>=z8+|X8ae0p_=HutTabEO$#TVP zrnEuO6Sr-ZF{CSWa zICS1yN_E~$+F&S*ZMRbSU~sH>235EB4t8Y5ym6Nd=;vs^kG6s^ck!c42*n6;MxoV+ z=gUi~jyx*?eMR}&i<0K&n)*jNI@nCmw!cH6L(J6ncmBqJeto8Q?gx_AyMm!47nW33 zJ^zse__;UylRd)vEn~fNOY8}eXQ=3mQ|D#vt+tqf+R%;k!0uVm`qc1&FoOeREbGd=#AIRRPDxTvRz3X2}|D4V2yW8``*P@Ap!|mD2k2<}|qTOY7YYb*+bM=zTC~S6nh6 z9w~uV?q@p`ZjWHIlDym8%b&oY;MqDKwkZ-<8#dThvNZA8cv^F(h0yWpw zw)&spG{e!2r1m(iLuqk=`shQJ`a~_-8^2lH37TVPhc!( z2BZqiSno;Y5UI$EAoxbjtJ2z~f0)l77I@k=#b!v~P?-iX8V`3!KU4VeaC<=bq@Brg zGhRhk6`1u6Vp)|fePyYQAHXgLii%cDLVIr?K&g4qNM9a6Q}du>MC8ypdGKGFL!0tU z$C&&<5+9+gceS*-v3yitD`rfy2TOt|-^!+qJ(RbH(HnVY*2phM1|YcSv{p2=i3z+_ zASsy1t>;_FFrrjDmNN1&)iusyQsx}K@ho+D3E9cC8e`$|bmGoM)oQ97^9<4f>F&cUP%PLwm+H_0{ zTO*+%+%U_EUucj{G3#cZMIGiUEy5Ee;tzH0R_Wzy_i2~Vw*@HNjH@Ve3}$oJUfshddg?Xo7yu1N zc9LIrz}5$JkcR7pzlbdQAG_F*;|Do!rdt8hzPg=W;NRlk(xEYCV)Q-tFm9k9cl3Vh zHx?&>e)o{{m-&e9qUXk%i9V&6f2^yMDu4#>*Z=Y^Ln_*?gQ9b+Nplez_yu_b?C z&%uyhUcGe=-yru-vlhNA$-eC6yeixj2_8oB8`8lNCZTyhJBIjEv-fS`mQmZV83>{b zcGKUbgM-C%e8`TW{$Pg>+3Cfz%nYOJV?huF7}NiAb`0~QYQC~l*f=x8*7Xf+GxEnp z-@;_^I5Q#P^6wZr!Vi7>m~e}z<97c`5@kWQ9B0=^5yjBr6T;ySXa7~Y14{D;6WiUu zi)I`d>UD5QbVN!AXKCz5aqJlN?~3$9k|g_z^yO6HmSt1tkPc=P{bn{h^887145Amt zqq#)p(jojBn@0+|Y-3ACvm@UR{(3A8p8#krjPd1ubWDnCO|FNRY{}{jjghj$FlXP?mJI4Bn-<(a2 z6V1egOKREwEWiK3mBK9oC45`Yj&XkCmkq)#hy#+>vtzuU*x4rCJ%gvQiB2Pq;<8Ol znczo$v(@J=X{?2;s=mbMF2>vzD&J+&-NWhfD`?3iNd8x^pw0Xny^Zde1ZlWr8@+&$ zA^z@d9AYB$4<5MWq@wOB`gRi5gZp1iNt4Z#l;2)0G2YQZf_Odc<*RAVWK2ZQ-bwY7 zA)xo&Al$|WH*$bU)HvBpDp-4qa6r|7aIE183op=CyH+%~R@66sek)U_Abu&iU|Mdz z>n{4&WHaBm@Ge0Ug{BR-haQ=NxyQ08n9VGIm{v`}mcd(HboCVEs^W1bX06)0heJ&D zmzUZt-F?TM^qQmw#{IF^FIJf^1}$Cz;DrMiRjWU@>6_O@2$7;;g$LL%%^%soze{%@ zyETV|p9o-UJ`_S-Q_XaJuCw^+&%}4;@P5Y_;q-IqcS^eD%%E6I{R>?!thzXC^y^eJ zX>q!xiy(m!T@oq%WP`s-xC)j2T;^CZhr;f{5bWCH^^ftdZWX)bk}4J*$E8s7G&3Q3 zvx8X``cq^ZMmJBx_Hj)` zW{>lcSUbe*nQLE?+~X+SX(r7u#s^3067C|XdPPm^H*t&k-9$zdd$muskXGXwqG?M=A z#8mTwXz4Fhgqm6IOO8&|che%0%xi~4uh z{ty_3_0^QAl8MOxvFbN#Dt%ChJ#WsoPP$Q+%K8v5>C>nDePKb7An zljl=#uQ_i--uMw?u-P=t8bTwJtZ-UiY87~1TVdX<_TzIbY~l^uy>vmHnS+;9tAApH z5%4%Aw(i+}kxQO+~vgaMRyScJJ_b1-{A~&6bc7;Fsvw$!bXSu zNi2Z_2NO6kY(VH^Tz%v3={??T5Xg&Qt3KY(nLVF&`N{FHp&n5{>|h%`!oj(i%?_J_ zJyV&h3hBmfsdTe}9?<8u&-8k*#R+&|i&O&G0uS8S9F^`$>BhFGbh8Nx(2IQx+3p0~ zvn#xGwru9Bh`y?_k>$e#g>42OHnN**rmAgblIN0Z%o(cvU(vAsrWGAE z2#X2TFvuWkf|~-3e8P+?Lc)0gv#6$e@!XOijA$OA3Ud5MZx+5#UgEEyAQ#y*+C9dK z^%zf@nr-Z#{Lq*EUw`(0z2g6R)&KPue39*Gb2PO)jn&T0s%PiZW|2x0pEl=dr&Lew zv*x=hz4MHjEdgmZPwDgKH(LL{`&qotEKWUVW(b7(8MVJ?z83e9pMJ>yb(ofSn-jFj z5uQ7`&3D6T`im&g(rz=|)AFX7D@zJys*mn7<6{h*^$5;u8l~?y z*kLoQSlY1PEGExBGeRWCc7?J+5?`1JV$=b%A`CmU+@?^pVJbB}ZKg$}1=db!CH=b3 zOfCqj4vf~PWSIW`&=I{-g0vq%+9UfQq`zgx&%$ZGGcy$w^DJCB5($g`&p?b|^qT`_ zQpmU3MCEo;f3%(D`RFb4d~I|r2NW#g{9p0@uLS>BqW>$2uKugpWzW`LgDLQX<{+B( zHY()Gcg;IhTJl$O0MlH+L&<9wT8qJKT>Q;r|+m zFM8IrhIky7^`>esQDarwH^g$%xPI1=eg%Hu7+QW12RF*XtQhTW!?PmHvKw^Dw6bFa zZ|p&P(=m}bE|0MiSRzf4-nUU_j3p!zwu%Lg_QY7@X~WG{G_wq&d9hZy78&B%5No|= zr(a^Mvt(J!qb*6+;~LK7lqOl}2Kuw2%nI?ilC7MO42T17qzn9C*n9Q*Euz1dT4^+V zfE7xwWmxYI$%KZEc8u*-FJg)RYbk#T=F@CfX|e!D47B1sqcW`rHQJtGCDB6;E0Yoi zSX*s5>U*-AtSYd+qz|&KY-$^04YWtu>SS0C!s4`P$N(!MQN+30A5*m#1kC|&duG5~OD51<@R;K62d~1PvMiD)i?=2!N!|u6bjCI16vBe)zyZ>ve z|Eq(Z8gISC)xI18TQ;$a{R#S`T7kEZPnv@~?@X}Ps&vS0o?RT9Yb3N@Xvt|wUR>KW`|6Tqs@^e|N z43MqPdhPDnQ4tC`&AmTvcG(=-~j%o^vpWU-Z_B|hM1^PvChA&$QPVk;wA)Y7AV!ejog$7%f- z)Ym_zS#jFqs%OM9>qa&12|xKs|Cfi3EVrg*>a85r{;vLN2z~bfME6H)Ej*I7*4nMBuX=vhZ0%6(3E_@@ zo++)?6*~QO7ZinkOU#c{&!)}RmG=H3<$vL1pd}3VRCii1>(%pGgYBR8^F;M{QZKc- zz3|t(@P(d`E3J3!Y=mrtjrx_tD%lIyS<5urBsJEPwac>Ojg1m(h{Y;3EBGH%*GY^V z$v0Xv>>sO_ipD;h&dsvoJjZXe>R|Y)-b$tOZnkD>w`!h0-)ybZhF}BT+jIB(zYh4n zu!HWUzD?)cYR%SWsGhD{tz6aq4k$G8R>+RJZq%uHyOm+TG~_-@VPspz`0MUBwQ7Jm33U>&A+P3k+y7p~}jZbv3SY`CO4*;X@5a z?`8i8;V-SQ;;_)UUgFm0nTW&W2(->s-)L7>BFL40FzBA&S!uSkmkp}9+e)B+{LYHA z9sj`V>VLPDZ2QyKURNQzPDodtE%zI*_kHaB=ObR%hwM7%nAa8kd$`(uFlglOtvvlc zoGnMDKKeZ(+WdPfTL05=;c@FqHGv+0uO4ffjBw_|gJIfalTQ5J%GXw!H2fa?o;Jya zU;Pf8q6e^X41kZ^1K=wby~2QBEIP%%IiZwyFMt)H0{F&R0B*h4N@(9GJo+g`*w3F| zg+p{zB~X0lS5?oMeMbOkPPrh3Dn)b3%S(#bfZznY*{xttnM3kPfbz1!AU5rIt3+Wf zx|}zTf=GXlWfE2^$|?Rn4D%iFH0(YrLpv~-%I~vMwPC|(4gcPeN0;AcrD=c8r{CXa zWodtL(qHbw@Lf}{M8HGYAu;qg2P|4naStGd3zyUQ2dtsm6E1Q;U=7rsbJ5ig zSlL;BaB%>U3Eq)dP*$?g@8B}~+(ic-Km=c}p_9yKYy)LH2zOjF&3F**3C+~-AQDpD zN>@K<1Z$ie%Q*)JnMDF!T?4&cJujCgG{Nnsip2SY1$)J);ZVjXV|{PquR8v zdFnhhUpMPy)@n!Lw*$0e3V%7p zSC=wF+o3jVQR=?_^x`8{a-OETRHt%4`QFaIhqXi6Ue&2NH9V7{>{XA7zw^ZJF-6sO zs~yy@%gW3?pg5739k!#&enixPD4a^PdO$m%?pN{dd%86_KgjllV7E z?NB)Ko#^HqFiTU_E-%YwbOM)}DX?8iA^d~>p~Z94en!1i$qG53MWa_BG03~BHY3b_ zTM-u1griw4RKXYC&1$}_1%Er0B6OrYbtiz36C6vDedeWr5@GZ5AQ^W-jB$f@a9w=QYukr`;{G9 zGotPSt4fjcV+!cXb)Ye((}sV-2Xs`y_vq4@>M^Ag5p^iX5QY=M{~ZRZ8?^n(KT%GM z=}=a1C(MEjVF?-Sh2EugA=*y01x23+zi1AE1a-iji4uT_(JoS2)p^Jl=k}0b&-u+% z?^F*X5>D#d$n#-kH^MgCz(;c-mM9g14nDgDmrmf@xo&HbuWnV(QI969!hDRO|?UWgWiQUvR^p_+F|W6wM*NtFl8@Oyx)}p-_Z!) z1w3O8uz$N3lm$XFa=0Ii^1YD+M#0}4m@)i)XTZ1gcMAWO0RPUwZ|zZJObuB9KTdKU zc<^_7pyU7TcXI%v!0$XwM!<>T|8Zo2-vNne7loLqNsvsj4E!jH$H(-rwnIc!h?;#A z_4>A``yHqp9(TF(Iu+^K51dnRA+Ij{O4nYrjM4Dn23dr^hgFxp!*~x6D0^M7rvnvpfMc+Uv53oHvWo2kss4o@bVXz8;9X9mW3XrML7y2L>a<{_CxiEIF71| zY|*wZrMaCu19v$QNE5JzC@Dz&AoVcUZ4l;~Xo*oZLcv5aEA%NBaA>$nCNeB}y&ioG ziDC7q8NZyQNUbBJQ<<0$ZJVdM6guZwE3sWec3HlifqMrVHGTpn@POv~CnO)C>4jqL2=$hfolQ;qFxCsYj8LR<%cl9ft2=AkitbOcY-S zD%45;de$1*K3W~1?(nv;PUtCImd6maQ+?FFA76g}d>)FaQ_&3!Z7A`12&^I59JNdU z#0f$~p`AwKU#GHLMD@1vmVQ`y6m{02bi*gc23^jUrE(^AqL%shKs)ld8zr}21bGxf zu?yqr0SL8LtrGtVwbAM!R5VABsqRLjI*Q1c9V+`j&^pzfTBq{QGeUAGZYmtUP$`1K z*?uP?Ut*p>duybw8S6H(Xh2a|l;vAsQMBMotP6%e@&|K%VM?n@gMj zb}Ak1|CXg>R|&@ZMbc`)mMiIy#!1VwX^1Y$z5;z`zQ_F|E_kGujDmo^8Wd5ZWH!_}M%>#o<^xqEr{z2mw?1WC$V(U^K z6-|r>JSQpwG7N(gnk*9W?_K%Yzo!+d?ZHG<+y6gg`=6rBLPc@nP@*W)R(#Eaxb8-? zmHr(_wAalFvJ)N4@A1EIcVXNK4AGluZ=c|3gIz_P=)0(0sjrrPXSW;$NrYBxg=&LIW!*&1gO=P=no~CcDsLN26vkwJ4Ty z`0r8t+l%!7k(-U`5`MBpcS6D8P{%|acOar4Q19G-&t>6)??UkCP?{0_F@;X=wFVEl z6FitVbM8=f+jfYS!Y&T?nbr)+(SdC3r#XMHGTYP89`i8PMWe%@RYFrKL@<|~1E8U) z`J!?0cPCgzqwZKpvX)(dzR;<>ZA3$aF#Q-Z=F|=;heSinL>;3O!v6sJ!!eZJe#}t1 z5UxYHOZc+{ENlmhBIPj@s1sd=yG`)FOf3)5$-hkT(vbk42r^QHNEoU}LsJuFzyd4^U#&uEb}H-}fgc1eM~z()hF(mY|7ax?^mJUC8rbg+2lO{i z@jRqf{>#_sqd!{lnOSiEr+=OF>mRL*;j%G2h7t>G3Y;lbEk%8}kSeFh2+Eyiy=0}e z$EZ%#g(}#o?S>5C8dO!z5m&|-h@`ua+h`jU5yYRVb}746SuJCrZQY6fQHjvI5uq$M zF0(NxvrMf3YG5b#9_=W?ap@gJEPGLnvRu8?_J2cu4w{WqjkaZq2IoYgR1|CPzhlu) z5Vb#VoNU>GqHK$eV@fyv;|9yM5oL=KTn@oCMzpdhTghTD@R1>o5Q!v1<|!>9S*UQ9 zle@Wuz@k|xgwmCT-qV3RGSjovA8eg;|DUX+c8qJNR&JqrJOZQ1a4X%fC|X`bp;~Uc z9;t+ah3Vl@{O5ojm=!1(X2Vf-Aaobp2Naj)f?pYm4;;Kyraz`068}krL~#s_!$jOqbGvCA}T+p}j9#@$Cm73HCxRb=WvlHWbHE{PKUyRYhploFNuO zre$km0noRb)5;avjL-;-l=Al~TP36v_}ZN)lx}d$R_7^soYSF-2Hepzf*gW7Pn#Q( zhrlZl`2Q*HJ>c7_&j0`C+$-6ZydozM!b7~PiJY*?=>PrPE8B7iE&cxbdi|}}k)F@F zXFlsZ=iDnRPKmZma;0x5zbf{NmA*-VQl3?$ixwJc&b+YFH!hKr7``&bC|coQ)ali- zvdp$X9;0CXs!TD29c6sFnCm!t$lKGztrYGp#k!fJT(dnC?zx-@BCr7d6rs~0GBE92 z)0z#Y({d?dNM4m&d z2WaT8UnIB9G1Mf(GZ=4X;piAYY?j z9k*&i81^?{2JWoFGK^WNFV?_JrKy8T(sZk7LxWtb*K*E~rpiJ@6o+$RKGT^qpY+uu zqUbZep^Zg&z6#?(;Y|~g=U|Q&LQEQIP}|D<MI%3*ea)la=sx^h5rAt!MDA1|2S;Hv^=v`)ZE!hM}uYsKB( zi%@0dxxPX$LTv}hF+i22S`#iu(kMbab3VVboM7YXVP=?fgQLiK{7oY~ED#p!CmqNv zJ8ni>A)`8px>|Ha`IN03al2}ugCGthXjYjq)Imf}$u4Q~G?)-vY2d0`R+r7=P#Fgu z>@+aI@|1*-v%8|GMZIFH6~TBkC{C3wNn(Mwc=Z@Z^-*W?xY>{Q9M>JS89w}FRHlH+ z+~QTs4w?WqqRNtZ#y6S?_YJ$135R6|b~hdHDa?(Cd(p}%$_}`sJvDMrn#bm&j=sN+ z;ur#PW3`idNWG*~>9c`#qYYZqOp`2K>EN@qlv?;~BOrCEck!uB=x000qIzH9Hn65v z(qkmOt_izEfG3kw#|AV^Wu%7rEyIU_wmS46gKvhKXLWPfnuiMww2?P#$i`GGLWl~` z5ASq1%QnMKatP!K=xxV9t~Q-i8tqL=JNbQOl*V)rXw;!n*ymD|L36t(AGM-Zpma@7 zdEG18Qt8SzrB1ZMin2L$SdAu2o{B!{$S;(c@tp7CM5i=b4J9|`#t|AUMp^20RIY~O z#@NB-L7KD74x$sYag@Dig=IBa$P$S%LTN;nL{(*}NNWYU4Vg6G^H^XyOvID4bF#_` zTlge?fnBw|bg3nC)L(rgwos)ClNFbTt-?n7*^0Ip`$7{N(UM71#I$5?=OZyt(k*e5 zDUKb;nKbAFG@hV|IsSC6SwNH#rt`e>z9E56LvQaZ)pYAEGPjt%@;aYs zYX0}x1;W{^Q3HvXyr&sk?l5s@@0}tqP@!CR%!{rfa!cmSf^T%KTcMTMH_UUfw-yK- z+fCN7BpsG(dY_pyU|t^UPMYOxDcv%d?YxyHFopFck>uF;b zPYMl5`Ky)X+)-bxPWiiKiG-1EyB(&pxvas1>-Cs!7{!tZC*!!W7As&3l(w*izD=ch z7pep59MIs*n_a$*5=&&XSI5(9slU~6(Uz_5)wVgR^>k6G)hdXGs~)G-FcyUF5@F@Z zbDJL2Fs-;t$oBjrwiHW$9M7JzoA7}}$~U1g%9RdIqoN5@@K`2`=k9ArB~_5L8Ok(t zGt^lXj$egZnCIQ7FQ`xk^~b` zx=EV2hg?dgJ;pNR#OQjJGsl~;8|9v^@(9X4+ggiyXxfW`ud-Zvt$7}5m35XC7z%@K zHrHS#7ZCwP_^PIP0m~`V6Zw=?$z?(i>*=6oqa#FJt5lfkruucC?RhV~rOE9O^+H7! z{^8V#V+_hbZL8Pll{m_=80Ba|y$!dUROxVhw!@Z`b4;X#br}yk)yfB@(^I+R=rCfp z(j{hXwO9p0fGF=VUa-ok=c+;95En3s9y?Brb~`}LG=8wd(>F!EYI(eRxhvE7qHm)a zEp{gZ?AGZZ&n}KX!n7ZyWi+^N6ijj-N?lEgQ6^@ER0%1iBWQq4Z}Z4P;zgbUV4e(= z5EJnitfeI?i_>@WvYevyUA?G3uc4oc!0i@Kv!lUlE#;%K0Dn`)^PE|N394)w9XaHU z``2hzB_xa8c9D=Z<65d(%Vd*84Z0-{Qc`)5WYp_hbt`j;(BT6F<4fcbuTCXG?fItQ zs9cY=%AQ6mT3^?v2%qIL%gKC;eVU@uPxpSqlW zx6$SBLWlK7Ho7sZhp$kBtET$7G3`n8_32d1EgV?Wk zV_p6?Iowy?HyD@mKb-G~mk9>H!^%EJ<{U<*JneRyBROT_S~jajW7`FTxKqx}HCA-! z6vu|vSl#u_rkq#b<&?_oDu+{1j6ZIvZRX%@SOferL@F~V$p+_v`R~|NjI@R-nK8>*FDOF7yJOvD7`dso5He-|a(vpRTJI?184@=XEN7fk$gSRzj|Pcz6Lko&RwhG!Wm!(QtVqCwKBe^RDDCWQ-~>E;-9v$)~jvw(njFB zt>_VSl*aVcfWH_#k0MR=4Mtb$R=b6!2Ik@nqcoVbH_38~2|I1AKP4ShalN)uw8hy~ z`OMl&jYYlL|FSXbI|FMfwbl6V2Bz~bAK7A%MVwSVs3wmyPj1Nua8Dg}0Qc4bGdIM1 z<(9j6s1bJB>aI3qgb_2;E}E#}ICevhyxb7YAfM=}l^WvwieBX0&48Ep8=`H-JKi{G zsW%=??9pH>sAjr~8bi6DiFp}(MXQx&8qtJTjilX?+JJ-ku1VtExa+GL9XC&-2|+BT z-40`tIZ;PjZj{Z={bA+Kz|yb1Op|q}W8QQist9XUBLh?WCvXkpyVKSzQzWa2l!7bT zfF3ADO`5f{!HPMUm8E1_chgvuph@FC!chz}z-(j8GQi3lrG8s~8-f1XZg}k)=5ni9 z?O&yx#oApT(Cw&An-#KqVONw`JI_sJT`pOp?OtZe5bXxrvO~Nq=cG)vJwX1zd{wK| zJG9BnewVz^uLfvLQKnb~VA5z8Q{C>sa|3pA_# zZmu;Kl?k&iFT(C52?3EbZqbtS?fH)C&7u{%A}LwCz6Qu)X<=BFGr%bc$e@*%EZOcT zS;xEsBP}9bSItzzJuEdU-2ww*AjE7*I*wZ*XQR``yc^IAH+mRqY$la-^rnN!^{p%6 z{*xFL2}i|l^Jf#l;+dIUpBCrW)8YZ=`;^CU~C)rlAL#t8WVVMe#NkI@NaMEBTZ-AVw@Kw{Wo@7XJpj}3x^YlfCiXT; zvthkcAEoQo`nopYp;UGQzA2<}4iYldDRRY)4Q~d8n6DcJuJ3q^$x2WIc2{cudC$-n z7EGsx%C1~)I7-+vu=f~{{$T&ri{!PgPEK2xFyK90(NATgagyCDH(Oc8-Cn-Q$YkGf zj#Mm9Krh*tVOi|n;265=`M;m3eUao~6IQlPmGi!%xAFD#meD7i;k$$X?%3~fw%p~C zVTj*}!dyf7Yw28as_ceuU5=TzGOZYl>0t+%b~G=>I$}9`S8x~>k;F7YHnp!D94JW2 zJ`};{oQwDu3nRt%1UzaJDNZ?**Rv|z>w_gWza+05o2c+HqWbmf;jhEhtnM zEhjlNMQbhFnqsvlC`5)crsX_*q-RtGwuF6M4DKXU>LkvI=sw;S(@k@#B5+BM+ zlO=vmTQQtlFU`BUhwtnmzTS2jBgTqWHG>2cntvkntQC`*H-Ys%tY=fSs# z^PE@{x*o7%!V#I?PE^}-0ubmN&FZq$O#@A&!DjB33p(;E(0Cq}MV(GsIkCor(o%U1 z2JaZxzNXnKzzrNZRL-dp_C~CP&Y7Tz_n}Cq5osBnFBn-lpXzOTVKMBaF>VxdEo3!u zwC&1|l9uu6(SL^((J07nFjbBqLUhxEY;}-9j*Nm7e~8Jjb>Z=gQnosefeTB`qLTYy>@*lam2_wpj)8&Dh^~zdjF)TO)=y$|E)hiuLeR3EyTxh`|gaLg>biI(sM=ux{faJ^cjOk3tRAMrGH z2rbuxn=}m2hLEM{U~YIXPmC+-M%-EUT@P?IZMvQLYK@|NMj6AcN^QDO;g$;;&F!w# z+;(c@9lrMU5GTmfE0N3&A9K%2nH#T2;_SPn9r=KB|Mu!j_c9eg!Y1iopmghZ@(xsb|_=64+51^A2+( zDS+$>$WbS$$F|G4){TnOJvn+$H!hFcdpP$3Q}S+YgWXVP7vW{Q-Dp@Pm}}!daLAUG zrbp#Q(9=y#eMRhuWBmcz?~pVrf@)CISdND9h80BVxd~^Z<8kNEfJbaKdcxj-j)k2k zfm8M>+u7Ka+At`prui^TXP6#Cb;r=wYr2EW?XaZ5G*-1{vTJyjp*8cTHNGuIB<(TW z{OKE1*^n}yP%06jIpr+8fj#p5lyUX>=tDm3&%I8Lp>nrsM zlOp5Sw(jxX?d_tC|0~BMwB>RDAdZh$mj9O=A36N7%Kr(!!;G<t}O=;{!R7pf1p^G%JVb%)UF{|4uT2Wg~ zE1CIM(KiWK8O#KGeH(4oE2tm-LrrG^H4Vz6KDrmnjrH|rq3ZtE&sX}L+V6S|bt?Lal z&eZ2S1LeyhC3nKNQ0sc7CQkQB#%Wm6GmotGMK){k6tVv(b8ugAKEqf?fTvR$*YV}= zckRrc>wKF`?;AmZF$C!$YMQk%ka}|s%anPucn~0uSw*d&T?7xaree~1t=*oV$rXLu zSv&q6F+J%*-Gb3k%ci{t_tj$f{HYO03|_BWR+|FjT$PVae`evyUJe z9iXn0>aer+M%X%jn1H*{ScZ5#KoigNe230EDMhDCm6m0pQuA#i1&V zm31}VRxRpg3d+M)>j;yAZ*B+wq5XttL$19IbTF{Qj>m^baTkM|Z~LLme{bt+SY=|U zaOSXo`ZghYRKApdH-G)-|EK@IJpWHXDQV)d1ODk7{R8?s{{N+~Wmb^Du)+=^3zdL| zv*oA*Y}rX1eBdjB_bv;&A?hhm)O{}bMUJy0n0tr@w235Frb>Z;(k+>DVkC_|UnIxv zM7fED_TvjV3yRBoiZOsGcE@_{5%Qy%w3oU0E8m2OZa#HKkaX6#Rudu0R)5kd-Hv&< zdxV_M2iwY1E=sdeqmM@_Z;MuD$k)EDHXYd3=q+iz(r76USiEL_?HkW^mfMp1a8C(Y zkI-1Iw|(sk9aLUlPtf9+BCWIdX#^X`XmV(F%*wG32+*#wY;YYt>HVB~IiAN1e1m(n zY+WAIfw)UwlBw!`xskja?nZ~#3aze3Ih}%!N~>4Xt+aNcL)p=^TiR@l+X#82mBt_D zoTHDFgkgrh+MUu`R!^f^J(gWKN%AzsD#a`BG~R3Ou43C*8A07+PK7S#yaLZ{K zp+E{#PH8QZEafTgCKX9aYq@;sGhO`QtrNs1+Si<82nLW$N3ninf2Evz_S`ZRn7 zNm?#f%2PT}zm}9T;_);>< zG0VJ!;f#)`=|!$ zXA})(b2Wq_+C5X_}XbV;zXm)X9`aip_-1ZXmrBH z4zfScrh1TK5cNUEw)(rGG$C{CQ6H9ZN38XNmexw+nhSj6B2HaxQJrs~#uy%3|D0xX z+?32&{*B5WHPjek2=m&Emkm3b9#0%5_jMen zn^eg~>sCSssWTc~6&DU)GQY6>Bd5&rT4qXxjwj8lO!p`lrL!R8)%ogjw^$a|#i_X3 z_D@PQn>YhZ@@||{I9*I)G%&b{ILvSr$Q@bSid$*tSWpEJXRJZQQlQ=*&f?Lmdq1g{{&BqU6jlh zUjIaPRVjyuDT^tW_1jLrDSR)=$;edE-O7iSLT?8}zeHyx{ua=7J; zUFD*lY%mua?HMHn(eNBO>iYrL?TV>T$8vXZN!z$ zMFd^{NkT3&I{Gc9xr`ZVF*?*J|H_6b^)*$ls(rK2sWy9?5p%%kX>AisFqT?Ir^Fm< z$wRk5x1#yRaW_5KP?22D+<4cQszA6*eFrokq2U(~!PpJnauvwS-j#XWah&<*zDEs; zxaM+I=(8ymeWYx*D*Er0@TO&>a*ayAjg(}rk<1@_{?Q{=NWs%5UbldXF=EFvpVa$D za03|As_^?qAxM|m?R4K#)_n)vrx>V;@`o9h%aRago1?3s!*k`N@>OGMcF7K3r#lY+ zdrfP@eBG;`ug2Q2d6o0^D)tROjIaF50awJP$vgU20OtE1vA3D~~A!MDQp+<(D#b?G5&Q`xRdLYx(>+^3~W zK1~OpDxGt^8i)r526Wn88v=MWwVFP)eu-F66*@=SFys4_`C(5`(z+SmfM1I+O{+}1 zQaV6&VzcpUIh?4jg6?N$KOPh+ILy;XpGZ#8X& zg!^T*zNfRk#eOA;Bd%zy9k;?4rIhQ;rPS>}LY zqO+R}68nJ13um(R{_TdN7aQ_+nRn~`qg`KDGsM4DzYu#IAr?>-H zf-JoLA>l;dBH;4f<$8C?^rCzYL}N}Qkg#I?Y%P|STi4rlaEGqItBVk#o$mFem5Uf% zlI^b!DD2cNKOq?q&s$~wu9L|{%1lj-)(yGG4X|{5LmJ>{ihm*Uqkw2rKEB^?6| zYS1nPnrR}`Xyuf9IkZMM8qDkP%7@nHUiA>L+;Vi)*r88@HCQNTVVFk#jf^wtq5fcE zpcftE?oR6|$N9H2(t2 zuLcvd+(v1_E;vr4n}%JLEqDf$w#aJVr(I#AH+s*8=av_hWx#zZYZ!{7vd*@fp&1J! z=#oYx*#twH43By8=75kPWOoFlQFD?zNMYX9sSed!@l_if`&MI=cn+P$h{wFKtE-e3yIOA#Zrt+NI7-yN^1Z zVp$&T)>Sum0DYW{)H$)5?(Wc!iezToaQ_zGf@CX`nHj_VyNpdqoLRevwR)Uhq^ZHj z>2WzM^ZVick(KaPidJ*xx#66y@O&|YCC*vz)ypt8~8wJ)2-)o&9cBOX(@XHOO!+o&XO+6k$x>YJk1E z4&)?_VrbhPP_1Zbo;>x9H#?t8E%!45W4T+%dx3H0B=4}JFSk4|wYgJK*8yh@?)Ug% z)G3fjkMK7pQuNcxcO#PMnZA-@(RM43zUlWF-8^o)SW$S<#oZ0P(HEe41WNsy?rK#< znpqW-rL!q5leD#NL>?|#=Ec4u>T@)n8DwZW7 z2It*SLRpmKLBPSOZ}}N;=4v1dICj+ihdKmf1&n3qoD(?hvfBh{DODP1NblL|I0wsV zplYP7s<8%F{r;MJRTUXT7??M#O=W~2A5w>?E*KC(wq4w5dP`t`(6X{RfdI1@r*Jo z48xkrW?d{X%vGWgZ4A_P*?h6Q>kFEIGv9)^dZI&S(4-tGYr-d>WZiZU-w`r#M&8YZ zqBEdYQ*>0gOYpXK#7U+yB4a4!DrGZrYqUa6tzJAtQabHMmV$y)KSDR!UazF=WG1`0 zf1}a1*{h5{TJh^`AP0p9t>+#ihTyT=B5e`H5 z;#04+Q|bo(^J+>O`ChfEcZ4fU&tdEUW7Hq1JJGGUGIewX#%k0rsmUXDq=zPJ1l6Y* zY6cdX(W&m$GQ>q8o_cJyiza45&M?!?M4Oz>l1?*84$^gCAr1H_M{Vr_h6X7cBzVJ^ zoT2qf8VN|SSc)-}zpk*aCHF?#ixolDvbqx3k$4yu?(qn1s z%~qJJPRGuC*2f`cI>3jbBrSB&;YGO}B<5Qd|g-dwegsk!T=|PPF32HMa|YleSXcls90tW3xe%qeQRCSv_cd4|ET)gn_gAEp;9+ z*GfHBCwzFdUlY3MhKtf_bz8<#FG&Vf!d8&Zu^aU`78P6nmveK5<4&#BSSX_o?6v+$TDGn8Uw^L5YrR>foY}f_ZFANd zrTgaV&UiqCu0FY{8#Dz+o4O?og|Mtv6GL&=+U_UkKM_Wz9O#9)Ns{XHTIXMn2GI3_ zGiLQe{PSt9ryLpUJj&M_46V#!TF@Eo?on^Z>5L!@r9~|G>ZD@}isDXQULV+*4oe~^ zN2fQ*f7R%svMLRo@ag(3?Xb-Z%u&^}FZR`$_BdU}?1H>k5yBCMtrSl`|A6jo>|Y;C zat9D%0Okh|z>T)1%3Fjq1#YbUnSsnzFDC(`rrRy9qZ)?gG&&)-x}R=b6ADjG(A#L@ zH583gILVBYnRA=`BfS^lZCf)pHnF`;!GSmpsdLW5kxou^VJ$ohSTS@B+B!01+Aaq;9aLBFU6KmDW1p(x-9D)$|t*a3c1j(f-?qH!xO4 z%Ond<|5If)TyMyX7~`K{+B18P;WlRqUlTIw8e9f6F}q%6fz0=_I^yU)owYvwDnwr%ibbqcT*PTVnvRSE$s0TotClZaeD_S7j>=meObqerZERPu?4(YUabO{BulO z=74ejSrHvY+A37Uc{Tb>MV?;L6?y(|e8H3V=c)?cBn|!#N0D%7hBr!+jFqj7tD0MRbt4wsHbGy( z6NIB-Pt+UcN!O$&P-T4Gl{qV2Suimx<_X&|U(l1cb7pA4iq@KX17E{d%%rQ+CY8Bw zo00(j|51aU3I3B3lW{m{QI``nKdwljs$EvMsI^5+7PaLD9+sTM52z1pht_?H2Ayrr zo~0FAZ{eEmt8%>CoKbbk(0-57=;W$*nJQzj?k;P-4Fkb#LYz`XS9%LKoGEO}CO1-A zTeW1wjx&aWC+8`6V)Wp8r5yLlB3$jIU+qsyN$9j{9hxsT*RhtW`qU$;dZ<; z_Vqv64Db)v5iRqJGM6y^gNJmq(cgGhaUtwvYO`%P1uf8Ka-=M&FVC&$UTY-(ha_z$ z_&tg5H4j|;A&vd7%IHK$8bG(Pez~cX30vFxljh|~Ig--hACR(?Ns{6urM0ep2EUW| zhT?ZKzduhK{GsJzl#5A3$FiO9$}wvzNXrWuWYi8anE)xs>er1cC`z-rh(}f-^idv}nlCRfzB7srq*Q5g#ids$9`39XsIVISt;(KX-Ovx03{v$GDcJ>d+oDlN2Wj3EeP%vtWf0NAqQ~VnRo3iqjCo6Mss1Ms&{zY?E zt|BcXjRNmEki+}F0nM#s&m3=t% zI^CC*o4og(w5$JQ<6CB#j=#Z#LME`gf9uSs-Tj;D+YryqvZtNdeRuz|>RaTm+XQ9r z0L3z95C3(EWz&qzoNnYQTlhkR$O7mi_cc-kUk+XZU45{TjXfeafu}-WIMc{Z;NOAo zg#N18$bsN{!CTET(l*=hFWW`#2X{hu@cY20fb}=QUxuD@w2^bc{EO>^Tn>2p7$aAZ z@j3;*f!_RBBfkZ|2|gJ5G}7(hZg2*A%?U=9fjH~g1W;f@7dgkH43$Zp`> z6J*>ExN9Mm$k+?~KJ*)B7&!#IKX{`v`NiS0j2sSz+cFV)9VrHeo3h2(%$9UA7-mY% zIYzoj^T93Pub}h%uf+4fFh)LvUUr_5i@^ydBQFDPJRcE|!B}La()>bj225SK5BhvY zdK36U@Nc0{h4?*qG58nIM6Q+37x+Pu7R%we+9j6k&$P-$p6=5 zOuX30I9hs<0=Ix;&_^yY@+SB;@YT?l|IEny;AP;)p&z~kB?aFL{wMU>pBwon_^MqXqCW=~D2$;4L4)tVm124}iCO)X2i1B{zVNKv91Sef>_BJna*?1pEy2 z6T4cnnIHCpUxr@1k0n9yU%(yE4F_2AQ}E;9Cg^F+mL#qu<7G1T2E1^DC4T~c1b!EK zT#F^|f<3VH0O;Lcuw+EF$ZO2vROky=Tk>r!jWMV@q4)o%CGk3ulfmah|MMH_gLRVQ zzoo+&ws`AB^89vX4El@%?S$lq@H>`d{N_Mgem2vV*TAoVmqAaNZOcEv{{Wu?{XmN? zz5pFE>rbKYI^C8z;FG{T(32M0@)US6_%P_})3$sH{sR0I^cERg9&X?VaGBIT(5GIP zuw^wF{6f3jbe%0Vzp~{U@HXHn&{vQ)8VdWtIq0u%uw^swuHccsw&jGIYzcu60AB-r z`|oU-0X`Z00`$kX*^&S+1aE%3El-j%;Pb#m=*JU(u%(@hMP&3s-*Klc_ku44zX`o) znJsznHQ?Kz6FFN}fo}xg4qf?zE#2Tc#4;Ru^-H$AKMZz*hy2Z!U0${s_IA^d@*S@D_V`WY|6)c^AABcwgwt_w~rg z5m*d32Yti=a0PrI_*c-^9K>%egO3ESfZlhuM~(rfz~@1C9OjXmz&{6nm;n6!aE~k_ z;|ekwG4AT4JaRwyI&cK~jyWEA2Al)G0eum_*Zdjy8StN>*PQ5)%{N8iz~fKy$kr!& zWLxmd;G>~WJH;bAg5LyR2YuLS9@z{04mfcE;JPzCax@tY*z!BjvzB<|x8Uu;mqNde zNBJlCWbn{yJaX!G-Om6yPWfR6}yWxHu!*?c6i1h^G?mz}(_E%+4hnb5ni z*dGQyOEGlAo?bZ}oJ^3hC*YOoURg}WrQo4^d1c9dURe&l5_~uGw+DD-HTXL4jt6?> z_=CJsKT70!@DtqnkLyM!5mj{(nx zzV8yRY!5ye{0{WJmwM%3@L7tXPa|460eltsCg`O%F(Gg#_5VZM& zSN0j5!0VB*8{mwUUb&tEN3vinht3d<>^BAl1it`%+Gk!_23`&RJ@l9_$s5b!0zMjg z8PUg;V8i%s*rixFd*<3(7SzHAypHIuE4X`RLH(xRY=3O3;?_k z`YV1qLSkf0VTIb(Un!4_sFaVvbHLv~UpBr{W^5<26ubg@^|qDrJMc1a<93y@WvEhK z1$TiDhn}!wrEEMAk%CWzUbK6q%m#1H0+omE*{f2Pf+OI~_O6r>2N0Tck#Q0kM;<`s z=1K`n!gGOlnO!N*9aAaCg6{`^1AX!-m9h-1E8ef5PnlmSn@?uxWx=@>`pk1GC(DLNDs5lstF}3(lXR&;3iK z926ox1m6K&`$(nS2)-B`T3IRM{!uAw!JD!k917j|X{Ed{g#Z&g8+xXxk`YsxAUFwq zOm&r<4E`Co4LY&?&?@-@88?uz^+r{4=g2Dg2>dkob?7DIt7MmHB7X-jhrV#TDmf4A zWj#24w<_6b&nkHrTm_yFJ!;=7SqB~oJ`_4Uvr5Kpk4}N((B~e>0KjK~b4OMsWFo&h z{}(bYB;%*hU(BtN=fLgY9gnM$ThFc%{|>lj@axd&3#;VU;7S&ho1u5Us7js!Zwx*V z+WWIA=>dnp6QQSFRV8&hqEp})v}vo7L%|Ec`?V#ir23jFSwP0+WK4tJ@1`pG75E|W zPoW>YwMtfl-vxgTedBXgvh7anbXY+C0X^f@D%oOZ6byVJbmFZlX$8Lkz8kvwqbj); z{0(>)=&y@a@-ldH)|>4Ty;ZVuU6l;og|(Xu>(eS(^m&zx2k!`e2>Sdls$>sv7uoH zy*v8E+Kt(Q--W(@XW9hs4ZZ`qW>=p~1Mjyb{{LOTwP*O`Kr*&wg`0P#PqzJoPafVK zSIPo3?@pg=(na2$_-^nX&`-VNlLNwNJqyaP_k42CCVu%4ybb>TP3WUW_~n%8B9p*7 zZt9o4C;24-z8<{kWWPLquwVAvi=DFi|CazSAL18lZvqPZf5%L}Y=5d>Mu3-qtLOQN ziv02#_&Gc7`_%M7wnH2fzO0K$6qZMgGYfopqJNFOBy@|yc&91ZMED09tS=i zdQE+`+_FFN--V2EL#pNWK((x(z`o#@p=&p(mQ~>6z`H_!yk)g~1zrLkJF;319$hV4 zAAm-KkAZ$?T(ukuejL1Z>uPyu+iJNQ{8#Ybp=-9QmfwL_fxn!_0CuUCR}y4=NygY+ zt7SpBS^@_mZ`Sa;pl3v@Wqa^k@OjX~j<1$w;9l^)(1)KznS*dT<5+T`w>rOCy1{MW z1EF7DTrHl1MV{NND{ia$fnz;sU z^3=!!)ip8?{4elZ&^3vnHS#+$#%zOshd!TO=WF0yz#Y)D8*AhX@N95xQ;qy->l$gC zg`Wq%0e#t|8fgLF0M0`nGOb2#1U~@2ksa&eoonPv@FU>m(5u`jGn-r9(ql4jobv@7Cd%Vjr{UQHF7t27w~h?=d!I`2|f^DBfJdKL zBa7zM$R3B{YQeWcKfSO<&H_IJHfPkx7U$Q<{|JtNFM+=F z&KfxYoClw3O_Hg5YUj@5&naGyCvX@DboopeH_GBX@z%0q^=ojWn_Eo_Yk_0v`gs@S-2+Q{|^L2 GD$?#4_X3)2gGT=(^%g~>n zN2lN+;BC*Zm3uC%mD|B1!3Qm_m0?S2WgU17I1K&z(pvczd^lLHu9XjdTPsH#gHC{d zeQT{uyQ@}KgCCiU|34h?-aWN4{#X_Y3Ow;Zt-SmQ9fGTZ=mqovPuI%x;0a)PrdAGq zzE%Qr@ND2X^eB!tqTn;ZD_^gbzr9n-u?->se+9kEhqdw!_#W`Ik7_0MX{~G#BRWcu zu?X-RsgwC+3=83}p}(=}URGpmJLWAHO^c|z?qzn8Q z_&MnLTh+;G@Jrxpp`RLGCtrbI1)n~d>!CWCHW&H7NyhDfJErm@Wn{b!ehYfyv^qHm z{2uri=r?w#liA=e!IeAK$?iMVNh?^Uu%1Kjw{xAOz?I;$ptGdQz&`MEdTlyS(}P3c z9Q6J(>g4IU$bU8&3Bc@w>f~z*ECfFlrShS5GUGT-K)`wE6A!PGpMq}#PdKJd{&jMl zJPQ6Cywxdn^5m&?GUa#%2oB7vlLybOlU>2Vsl*J4I(hMmI>~`g1=n6#CrAIHPKKX= z{4XKn7l4m{#f(qD0>Dkz!{S_>Tm;^j-OQuVo%hwrxD#m*{4R9QQ#1m;7CiLnI=SxI zI#~zKf**zsbk&J{5{nZ!0=@FJIvE9i0esk-b#i2}P8KJ~n7lp9Az=4!>%{*P79a5O z&~r(1z$b#gGWF6_UoYo@?*tzK{n)sAc^^D{2R0Ybk4>+an@(mQ3H|{3FixXdPeCWZ zi=e&7)XNLte}Sh!Uw=xyBqpB9(z+wtYe1gV1`dN?T}Xv9>ZJgl4xS8s#AWsJBKQ{Y zCD6aj*304ZI12zj2EFfH^|BN^c_)r(pez1ZFT+k_u;6LX<2vhQfAG)1Gof1_sZYq& zWL!_iO^?*eqDSjx8Tb}(2lS}N>g56Ot>A;94}82{9s%D4J_ovHB?AO62X9-bm%#J& zQukBz1-$cn^>X@}dbtGL3-*{H($zae#+=Roc4e{pVu<|si^LG&Kgr3ZWXvNYW&%}J< z0y6qcd^dPC^buzUS;Par@kj?@Z!9&jq$P&_p;I-g8pf@=?AU^|t3f>tyaWijM zk?}bhk3sKtPC%{&e+iC355IsJf*bZAN`?+y7?3Byqrk^P-*ZVo-T?mye4cG&e{MM3 zX%X-335NbP_XkF9guZ}Zf3RD34R`WUk;h(63r|DUk5#gBOKWleF86lp23mJEEb--zy;{d zI6(>Gb^i>$`4P^4_TmJj2e0-x8BarB!3oFf_<$~OU}BYQ$_Di=Y<74At%h!Av%2?g z93X*vp|@wV`X{(G61*7t1vaOROlB+a=y!ec6E>r7($==%KS3YDX7r5dSPA&X1Yk9r z&z<%{zGUpc=5tRrpACC+!vTC1^gq~qz5w10ygQrE*V%mTxDRFu-j2=ZmTW$+1@8?$ z6#D1v6~6+{0zV4<8e6+R>`Ooj-X!mrC)v6ku^$T;IANaj%NtLzA0y)|GKN3xmj~IK zJqFH!zkUd@`ZBg+w}K1c$Dku$_{Fn7egJ$vbniGqcW^zkoI0K;c)My@ zbO4?dd>C|=ussKkOvnHK4Ui?Q_Rl2dr@;Hr;|ZHDigM}&J{h`&D0sJKMhm_L`p461 zWYbx&8~jV?O9)C|2HyaF7J33fX7_A@7w{?2#}PC755tPUw?SV=O!x@+vFZ5#mjUun zja>dCW<-Jgp!Xp)9*z!xe-8aK(pKPA;3uGWCB~Zoeg%9M^b|s}PrwE-o&~*dYONec z$W;rz2l}?zwQ?B|)mGq7pid_vI{auo{~==;UIDbyC7K~1IptWK7Wi7|i3A|kbGZ2cJ_ULP0ms$g3&2l7SKD>6aSW#ho&o(b z@xY7V#Fb?1y>*=&!}41@7nXr1$*%a4(-KofbESh~7U?jf# zRebsG;6tDo`84{ z3CNka+7G~cK)-`0-49Q?4m|cG+%k?!&h)Uo-Z@if@o!u?cju#zJAQsFQ*7~%8unh= Mhai}m^X|U=f8=}=d;kCd diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 83f3318aa0f6563349915a8b5e371ca0d9573482..c1ae6abb9962d2adb858afdb20bd7b4d01b4fbd7 100644 GIT binary patch literal 7043 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 RMIsPX(KzjykkZE|{sYbrIf(!O diff --git a/foxbin2prg.prg b/foxbin2prg.prg index e640754..fe3072b 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -36,6 +36,8 @@ * DO FOXBIN2PRG.PRG WITH "\FILE.PJX" && Genera "\FILE.PJ2" (BIN TO PRG CONVERSION) * DO FOXBIN2PRG.PRG WITH "\FILE.PJ2" && Genera "\FILE.PJX" (PRG TO BIN CONVERSION) * +* DO FOXBIN2PRG.PRG WITH "-c", cOutputFile && Generate a configuration (FoxBin2Prg.cfg) template +* *--------------------------------------------------------------------------------------------------- * * 04/11/2013 FDBOZZO v1.0 Creacin inicial de las clases y soporte de los archivos VCX/SCX/PJX @@ -225,24 +227,21 @@ * 01/04/2020 DH v1.19.51 Bug Fix: Manejo de AutoIncrement incompatible con Project Explorer (Dan Lauer) * 01/04/2020 FDBOZZO v1.19.51 Bug Fix: La conversin de tablas falla si algn campo contiene una palabra reservada como UNIQUE (DAJU78) * 01/04/2020 FDBOZZO v1.19.51 Bug Fix: No se respetan las propiedades de VCX/SCX con nombre "note" (Tracy Pearson) - -* fixes -* 14/02/2021 Lutz Scheffler conversion dbf -> prg, error if only test mode (toFoxBin2Prg.l_ProcessFiles is false) -* minor translations -* 14/02/2021 Lutz Scheffler conversion prg -> dbf, fields with .NULL. value are incorectly recreated -* 15/02/2021 Lutz Scheffler processing directory, flush log file after loop instead of file -* 16/02/2021 Lutz Scheffler conversion prg -> vcx, files per class could create one class multiple times -* mods -* 14/02/2021 Lutz Scheffler inserted option UseFilesPerDBC to split DBC processing from vcx / scx -* 15/02/2021 Lutz Scheffler inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx -* 15/02/2021 Lutz Scheffler inserted option ItemPerDBCCheck to split DBC processing from vcx / scx -* the three above are straight forward, so no extra comment are within the code -* 19/02/2021 Lutz Scheffler inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way -* 20/02/2021 Lutz Scheffler inserted option DBF_IncludeDeleted to allow including deleted records of DBF -* 21/02/2021 Lutz Scheffler German translation improved -* 21/02/2021 Lutz Scheffler Info screen-doc improved -* 21/02/2021 Lutz Scheffler added option to create config file template -* 21/02/2021 Lutz Scheffler added option to create config file template +* 14/02/2021 LScheffler v1.19.52 Bug Fix: conversion dbf -> prg, error if only test mode (toFoxBin2Prg.l_ProcessFiles is false) +* 14/02/2021 LScheffler v1.19.52 Bug Fix: conversion prg -> dbf, fields with .NULL. value are incorectly recreated +* 15/02/2021 LScheffler v1.19.53 Bug Fix: processing directory, flush log file after loop instead of file +* 16/02/2021 LScheffler v1.19.53 Bug Fix: conversion prg -> vcx, files per class could create one class multiple times +* 03/03/2021 LScheffler v1.19.54 Bug Fix: DBF_Conversion_Condition, problem with macro expansion +* 14/02/2021 LScheffler v1.21.02 Enhancement: inserted option UseFilesPerDBC to split DBC processing from vcx / scx +* 15/02/2021 LScheffler v1.21.02 Enhancement: inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx +* 15/02/2021 LScheffler v1.21.02 Enhancement: inserted option ItemPerDBCCheck to split DBC processing from vcx / scx +* the three above are straight forward, so no extra comment are within the code +* 19/02/2021 LScheffler v1.21.02 Enhancement: inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way +* 20/02/2021 LScheffler v1.21.02 Enhancement: inserted option DBF_IncludeDeleted to allow including deleted records of DBF +* 21/02/2021 LScheffler v1.21.02 Enhancement: German translation improved +* 21/02/2021 LScheffler v1.21.02 Enhancement: Info screen-doc improved +* 21/02/2021 LScheffler v1.21.02 Enhancement: added option to create config file template +* 23/02/2021 LScheffler v1.21.02 Enhancement: inserted option OldFilesPerDBC to define the use splitting of DBC like version pre 1.20.0 * @@ -833,7 +832,8 @@ Define Class c_foxbin2prg As Session + [] -*!* ;&& SF +*!* ;&& SF -> String to long +*!* + [] ; *!* + [] ; *!* + [] ; *!* + [] ; @@ -844,8 +844,8 @@ Define Class c_foxbin2prg As Session Dimension a_ProcessedFiles(1, 6) Protected n_CFG_Actual, l_Main_CFG_Loaded, o_Configuration, l_CFG_CachedAccess *-- - n_FB2PRG_Version = 1.19 - c_FB2PRG_Version_Real = '1.19.51' + n_FB2PRG_Version = 1.21 + c_FB2PRG_Version_Real = '1.21.02' *-- c_Language = '' && EN, FR, ES, DE c_SimulateError = '' && SIMERR_I0, SIMERR_I1, SIMERR_O1 @@ -893,7 +893,8 @@ Define Class c_foxbin2prg As Session * additional options controlling * - splitt of DBC separated from VCX/SCX * - new operations of DBF - n_UseFilesPerDBC = 0 + l_OldFilesPerDBC = .T. + n_UseFilesPerDBC = 0 l_RedirectFilePerDBCToMain = .F. l_ItemPerDBCCheck = .F. l_DBF_BinChar_Base64 = .T. @@ -1344,6 +1345,15 @@ Define Class c_foxbin2prg As Session * additional options controlling * - splitt of DBC separated from VCX/SCX * - new operations of DBF + Procedure l_OldFilesPerDBC_ACCESS + If This.n_CFG_Actual = 0 Or Isnull( This.o_Configuration( This.n_CFG_Actual ) ) + Return This.l_OldFilesPerDBC + Else + Return Nvl( This.o_Configuration( This.n_CFG_Actual ).l_OldFilesPerDBC, This.l_OldFilesPerDBC ) + Endif + Endproc + + Procedure n_UseFilesPerDBC_ACCESS If This.n_CFG_Actual = 0 Or Isnull( This.o_Configuration( This.n_CFG_Actual ) ) Return This.n_UseFilesPerDBC @@ -2344,35 +2354,54 @@ Define Class c_foxbin2prg As Session .writeLog( C_TAB + Justfname(lcConfigFile) + ' > OptimizeByFilestamp: ' + Transform(lcValue) ) Endif - Case Left( laConfig(m.I), 16 ) == Lower('UseClassPerFile:') - lcValue = Alltrim( Substr( laConfig(m.I), 17 ) ) - If Inlist( lcValue, '0', '1', '2' ) Then - lo_CFG.n_UseClassPerFile = Int( Val(lcValue) ) - .writeLog( C_TAB + Justfname(lcConfigFile) + ' > UseClassPerFile: ' + Transform(lcValue) ) - Endif - *!* Changed by: Lutz Scheffler 21.02.2021 *!* change date="{^2021-02-21,10:57:00}" * additional options controlling * - splitt of DBC separated from VCX/SCX * - new operations of DBF - Case Left( laConfig(m.I), 15 ) == Lower('UseFilesPerDBC:') + Case Left( laConfig(m.I), 16 ) == Lower('UseClassPerFile:') + lcValue = Alltrim( Substr( laConfig(m.I), 17 ) ) + If Inlist( lcValue, '0', '1', '2' ) Then + lo_CFG.n_UseClassPerFile = Int( Val(lcValue) ) + .writeLog( C_TAB + Justfname(lcConfigFile) + ' > UseClassPerFile: ' + Transform(lcValue) ) + IF !lo_CFG.l_OldFilesPerDBC THEN + lo_CFG.n_UseFilesPerDBC = lo_CFG.n_UseClassPerFile + .writeLog( C_TAB + Justfname(lcConfigFile) + ' => UseFilesPerDBC: ' + Transform(lcValue) ) + endif + Endif + + Case Left( laConfig(m.I), 15 ) == Lower('OldFilesPerDBC:') lcValue = Alltrim( Substr( laConfig(m.I), 16 ) ) If Inlist( lcValue, '0', '1' ) Then + lo_CFG.l_OldFilesPerDBC = ( Transform(lcValue) == '1' ) + .writeLog( C_TAB + Justfname(lcConfigFile) + ' > OldFilesPerDBC: ' + Transform(lcValue) ) + IF !lo_CFG.l_OldFilesPerDBC THEN + lo_CFG.n_UseFilesPerDBC = lo_CFG.n_UseClassPerFile + lo_CFG.l_RedirectFilePerDBCToMain = lo_CFG.l_RedirectClassPerFileToMain + lo_CFG.l_ItemPerDBCCheck = lo_CFG.l_ClassPerFileCheck + .writeLog( C_TAB + Justfname(lcConfigFile) + ' ==> UseFilesPerDBC: ' + Transform(lcValue) ) + .writeLog( C_TAB + Justfname(lcConfigFile) + ' ==> RedirectFilePerDBCToMain: ' + Transform(lcValue) ) + .writeLog( C_TAB + Justfname(lcConfigFile) + ' ==> ItemPerDBCCheck: ' + Transform(lcValue) ) + endif + Endif + + Case Left( laConfig(m.I), 15 ) == Lower('UseFilesPerDBC:') + lcValue = Alltrim( Substr( laConfig(m.I), 16 ) ) + If lo_CFG.l_OldFilesPerDBC AND Inlist( lcValue, '0', '1' ) Then lo_CFG.n_UseFilesPerDBC = Int( Val(lcValue) ) .writeLog( C_TAB + Justfname(lcConfigFile) + ' > UseFilesPerDBC: ' + Transform(lcValue) ) Endif Case Left( laConfig(m.I), 25 ) == Lower('RedirectFilePerDBCToMain:') lcValue = Alltrim( Substr( laConfig(m.I), 26 ) ) - If Inlist( lcValue, '0', '1' ) Then + If lo_CFG.l_OldFilesPerDBC AND Inlist( lcValue, '0', '1' ) Then lo_CFG.l_RedirectFilePerDBCToMain = ( Transform(lcValue) == '1' ) .writeLog( C_TAB + Justfname(lcConfigFile) + ' > RedirectFilePerDBCToMain: ' + Transform(lcValue) ) Endif Case Left( laConfig(m.I), 16 ) == Lower('ItemPerDBCCheck:') lcValue = Alltrim( Substr( laConfig(m.I), 17 ) ) - If Inlist( lcValue, '0', '1' ) Then + If lo_CFG.l_OldFilesPerDBC AND Inlist( lcValue, '0', '1' ) Then lo_CFG.l_ItemPerDBCCheck = ( Transform(lcValue) == '1' ) .writeLog( C_TAB + Justfname(lcConfigFile) + ' > ItemPerDBCCheck: ' + Transform(lcValue) ) Endif @@ -2390,13 +2419,16 @@ Define Class c_foxbin2prg As Session lo_CFG.l_DBF_IncludeDeleted = ( Transform(lcValue) == '1' ) .writeLog( C_TAB + Justfname(lcConfigFile) + ' > DBF_IncludeDeleted: ' + Transform(lcValue) ) Endif -*!* /Changed by: Lutz Scheffler 21.02.2021 Case Left( laConfig(m.I), 18 ) == Lower('ClassPerFileCheck:') lcValue = Alltrim( Substr( laConfig(m.I), 19 ) ) If Inlist( lcValue, '0', '1' ) Then lo_CFG.l_ClassPerFileCheck = ( Transform(lcValue) == '1' ) .writeLog( C_TAB + Justfname(lcConfigFile) + ' > ClassPerFileCheck: ' + Transform(lcValue) ) + IF !lo_CFG.l_OldFilesPerDBC THEN + lo_CFG.l_ItemPerDBCCheck = lo_CFG.l_ClassPerFileCheck + .writeLog( C_TAB + Justfname(lcConfigFile) + ' => ItemPerDBCCheck: ' + Transform(lcValue) ) + endif Endif Case Left( laConfig(m.I), 27 ) == Lower('RedirectClassPerFileToMain:') @@ -2404,7 +2436,12 @@ Define Class c_foxbin2prg As Session If Inlist( lcValue, '0', '1' ) Then lo_CFG.l_RedirectClassPerFileToMain = ( Transform(lcValue) == '1' ) .writeLog( C_TAB + Justfname(lcConfigFile) + ' > RedirectClassPerFileToMain: ' + Transform(lcValue) ) + IF !lo_CFG.l_OldFilesPerDBC THEN + lo_CFG.l_RedirectFilePerDBCToMain = lo_CFG.l_RedirectClassPerFileToMain + .writeLog( C_TAB + Justfname(lcConfigFile) + ' => RedirectFilePerDBCToMain: ' + Transform(lcValue) ) + endif Endif +*!* /Changed by: Lutz Scheffler 21.02.2021 Case Left( laConfig(m.I), 18 ) == Lower('RedirectClassType:') lcValue = Alltrim( Substr( laConfig(m.I), 19 ) ) @@ -2608,6 +2645,7 @@ Define Class c_foxbin2prg As Session * additional options controlling * - splitt of DBC separated from VCX/SCX * - new operations of DBF + .writeLog( C_TAB + 'l_OldFilesPerDBC: ' + Transform(.l_OldFilesPerDBC) ) .writeLog( C_TAB + 'n_UseFilesPerDBC: ' + Transform(.n_UseFilesPerDBC) ) .writeLog( C_TAB + 'l_RedirectFilePerDBCToMain: ' + Transform(.l_RedirectFilePerDBCToMain) ) .writeLog( C_TAB + 'l_ItemPerDBCCheck: ' + Transform(.l_ItemPerDBCCheck) ) @@ -4088,17 +4126,25 @@ Define Class c_foxbin2prg As Session lcForceAttribs = lcForceAttribs + '-R' Endif -*-- OPTIMIZACIN VC2/SC2/DC2: VERIFICO SI EL ARCHIVO BASE FUE PROCESADO PARA DESCARTAR REPROCESOS - If .n_UseClassPerFile > 0 And .l_RedirectClassPerFileToMain ; - OR Not Empty(.c_ClassToConvert) +*!* Changed by: Lutz Scheffler 03.03.2021 +*!* change date="{^2021-03-03,11:38:00}" +* Added option for DBC split + +*-- OPTIMIZACIN VC2/SC2: VERIFICO SI EL ARCHIVO BASE FUE PROCESADO PARA DESCARTAR REPROCESOS + If Inlist(lcExtension,"SCX","VCX",.c_VC2,.c_SC2); + AND (.n_UseClassPerFile > 0 And .l_RedirectClassPerFileToMain ; + OR Not Empty(.c_ClassToConvert)) Do Case +* SF +* n_RedirectClassType looks like lavacode. At least I see not where it set, except in cfg file, not documented in cfg Files Case .n_RedirectClassType = 1 Or Not Empty(.c_ClassToConvert) && Redireccionar solo esta clase If Occurs('.', Juststem(.c_InputFile)) = 0 Then lc_BaseFile = .c_InputFile Else lc_BaseFile = Forcepath( Forceext( Juststem( Juststem(.c_InputFile) ), Justext(.c_InputFile)) , Justpath(.c_InputFile) ) Endif +* /SF Case .n_UseClassPerFile = 1 And Inlist(lcExtension,.c_VC2,.c_SC2) If Occurs('.', Juststem(.c_InputFile)) = 0 Then @@ -4111,8 +4157,8 @@ Define Class c_foxbin2prg As Session If '.' $ Juststem(.c_InputFile) .c_InputFile = lc_BaseFile Endif - - Case .n_UseClassPerFile = 2 And Inlist(lcExtension,.c_VC2,.c_SC2) Or lcExtension = .c_DC2 +** SF, Problem, Fehler: DC2 hier nicht, das muss anders mit UseFilesPerDBC + Case .n_UseClassPerFile = 2 And Inlist(lcExtension,.c_VC2,.c_SC2) If Occurs('.', Juststem(.c_InputFile)) = 0 Then lc_BaseFile = .c_InputFile Else @@ -4127,6 +4173,28 @@ Define Class c_foxbin2prg As Session Endcase Endif +***************************** + +*-- OPTIMIZACIN DC2: VERIFICO SI EL ARCHIVO BASE FUE PROCESADO PARA DESCARTAR REPROCESOS + If Inlist(lcExtension,"DBC",.c_DC2); + AND .n_UseFilesPerDBC > 0 And .l_RedirectFilePerDBCToMain; + AND .n_UseFilesPerDBC = 1 + + If Occurs('.', Juststem(.c_InputFile)) = 0 Then + lc_BaseFile = .c_InputFile + Else + lc_BaseFile = Forcepath( Forceext( Juststem( Juststem( Juststem(.c_InputFile) ) ), Justext(.c_InputFile)) , Justpath(.c_InputFile) ) + Endif + +*-- Verifico si se debe forzar la redireccin al archivo principal + If '.' $ Juststem(.c_InputFile) + .c_InputFile = lc_BaseFile + Endif + + Endif + +*!* /Changed by: Lutz Scheffler 03.03.2021 + Erase ( .c_InputFile + '.ERR' ) If Not Empty(tcOriginalFileName) @@ -13265,7 +13333,7 @@ Define Class c_conversor_prg_a_dbf As c_conversor_prg_a_bin Enddefine && CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin -* SF, just locate +* SF, Analyse, just locate Define Class c_conversor_prg_a_dbc As c_conversor_prg_a_bin #If .F. Local This As c_conversor_prg_a_dbc Of 'FOXBIN2PRG.PRG' @@ -17825,7 +17893,7 @@ Define Class c_conversor_dbf_a_prg As c_conversor_bin_a_prg Endif loTextStream.WriteLine( C_FB2PRG_CODE ) && Replace VFP low-level file funcs.because the 8-16KB limit. -* SF, call table +* SF, Analyse, call table loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg ) loTextStream.Close() @@ -17952,7 +18020,7 @@ Define Class c_conversor_dbf_a_prg As c_conversor_bin_a_prg Enddefine -* SF just locate +* SF, Analyse, just locate Define Class c_conversor_dbc_a_prg As c_conversor_bin_a_prg #If .F. Local This As c_conversor_dbc_a_prg Of 'FOXBIN2PRG.PRG' @@ -25307,7 +25375,15 @@ Define Class CL_DBF_RECORDS As CL_COL_BASE Endif *!* /Changed by: Lutz Scheffler 21.02.2021 - Scan For &tc_DBF_Conversion_Condition. +*!* Changed by: Lutz Scheffler 01.03.2021 +*!* change date="{^2021-03-01,12:45:00}" +* failure with macro substitution
+* for wharever reason, macro substitution failed +* EVALUATE() should do +* Scan For &tc_DBF_Conversion_Condition. + Scan For EVALUATE(m.tc_DBF_Conversion_Condition) +*!* /Changed by: Lutz Scheffler 01.03.2021 + I = m.I + 1 lcText = loRecord.toText(@taFields, tnField_Count, tl_DBF_BinChar_Base64 ) @@ -25388,14 +25464,13 @@ Define Class CL_DBF_RECORD As CL_CUS_BASE * toFields (@! IN ) Estructura de los campos * tl_DBF_BinChar_Base64 out of settings (folder or per-file) Transform NocPTrans fields base64 *--------------------------------------------------------------------------------------------------- -* SF, added code to alternative prosessing NoCPTrans via tl_DBF_BinChar_Base64 -* SF, added code parse out deleted records. -* deleted records should only occur if calling method sends them, so we just accept *!* Changed by: Lutz Scheffler 21.02.2021 *!* change date="{^2021-02-21,10:57:00}" * general note: -* - added code to handle NoCPTrans coding with or without bas64, just like the flag 4096 of CURSORTOXML +* - added code to handle NoCPTrans coding with or without basr64, just like the flag 4096 of CURSORTOXML +* - added code parse out deleted records. +* deleted records should only occur if calling method sends them, so we just accept Lparameters tcLine, taCodeLines, I, tnCodeLines, toFields, tl_DBF_BinChar_Base64 @@ -25579,12 +25654,12 @@ Define Class CL_DBF_RECORD As CL_CUS_BASE * tnField_Count (@! IN ) Cantidad de campos * tl_DBF_BinChar_Base64 out of settings (folder or per-file) Transform NocPTrans fields base64 *--------------------------------------------------------------------------------------------------- -* SF, calling method decides if deleted records will be included, we just process +* SF, Analyse, calling method decides if deleted records will be included, we just process *!* Changed by: Lutz Scheffler 21.02.2021 *!* change date="{^2021-02-21,10:57:00}" * general note: -* - added code to handle NoCPTrans coding with or without bas64, just like the flag 4096 of CURSORTOXML +* - added code to handle NoCPTrans coding with or without base64, just like the flag 4096 of CURSORTOXML Lparameters taFields, tnField_Count, tl_DBF_BinChar_Base64 External Array taFields @@ -28874,6 +28949,7 @@ Define Class CL_CFG As Custom + [] ; + [] ; ; && SF + + [] ; + [] ; + [] ; + [] ; @@ -28927,6 +29003,7 @@ Define Class CL_CFG As Custom * - splitt of DBC separated from VCX/SCX * - new operations of DBF *!* /Changed by: Lutz Scheffler 21.02.2021 + l_OldFilesPerDBC = Null n_UseFilesPerDBC = Null l_RedirectFilePerDBCToMain = Null l_ItemPerDBCCheck = Null @@ -28989,6 +29066,7 @@ Define Class CL_CFG As Custom * additional options controlling * - splitt of DBC separated from VCX/SCX * - new operations of DBF + .l_OldFilesPerDBC = toParentCFG.l_OldFilesPerDBC .n_UseFilesPerDBC = toParentCFG.n_UseFilesPerDBC .l_RedirectFilePerDBCToMain = toParentCFG.l_RedirectFilePerDBCToMain .l_ItemPerDBCCheck = toParentCFG.l_ItemPerDBCCheck @@ -29225,7 +29303,10 @@ Define Class CL_LANG As Custom <<>> ENDTEXT TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + <<>>################################################################################################################ <<>>FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) + <<>>Version: <<_Screen.c_FB2PRG_EXE_Version>> + <<>>################################################################################################################ <<>> <<>>extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom) <<>>ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing @@ -29250,13 +29331,19 @@ Define Class CL_LANG As Custom <<>>FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) + <<>>FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) + <<>>MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) <<>>DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>DBF_Conversion_Support: 1 && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) <<>>DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf <<>>DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf + <<>> <<>>-- DBC options <<>>- File per DBC options (UseFilesPerDBC: 1) + <<>>OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings. + <<>> && Options below will only read if OldFilesPerDBC is set 1 before! + <<>> && If OldFilesPerDBC is set 0 later, alle setting will be lost <<>>UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files <<>> && 0 creates only a file.dc2 with all DBC (file) data <<>> && 1 creates a file.dc2 with DBC properties @@ -29267,20 +29354,24 @@ Define Class CL_LANG As Custom <<>>DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default) <<>>DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records <<>> - <<>>-- Class per file options (UseClassPerFile: 1) + <<>>-- CLASS and FORM options + <<>>- Class per file options (UseClassPerFile: 1) <<>>UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files <<>>RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 <<>>ClassPerFileCheck: 0 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion <<>> <<>>-- Example configuration for SourceSafe compatibility: - <<>>extension: pj2=pja - <<>>extension: vc2=vca - <<>>extension: sc2=sca - <<>>extension: fr2=fra - <<>>extension: lb2=lba - <<>>extension: mn2=mna - <<>>extension: db2=dba - <<>>extension: dc2=dca + <<>>extension: pj2=pja && Text file to PJX + <<>>extension: vc2=vca && Text file to VCX + <<>>extension: sc2=sca && Text file to SCX + <<>>extension: fr2=fra && Text file to FRX + <<>>extension: lb2=lba && Text file to LBX + <<>>extension: mn2=mna && Text file to MNX + <<>>extension: db2=dba && Text file to DBF + <<>>extension: dc2=dca && Text file to DBC + <<>>-- Additional extensions + <<>>extension: fk2=fkx && Text file to FKY + <<>>extension: me2=fkx && Text file to MEM <<>> <<>> ENDTEXT @@ -29415,7 +29506,10 @@ Define Class CL_LANG As Custom <<>> ENDTEXT TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + <<>>################################################################################################################ <<>>FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) + <<>>Version: <<_Screen.c_FB2PRG_EXE_Version>> + <<>>################################################################################################################ <<>> <<>>extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom) <<>>ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing @@ -29440,6 +29534,8 @@ Define Class CL_LANG As Custom <<>>FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) + <<>>FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) + <<>>MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) <<>>DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>DBF_Conversion_Support: 1 && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) <<>>DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf @@ -29447,6 +29543,9 @@ Define Class CL_LANG As Custom <<>> <<>>-- DBC options <<>>- File per DBC options (UseFilesPerDBC: 1) + <<>>OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings. + <<>> && Options below will only read if OldFilesPerDBC is set 1 before! + <<>> && If OldFilesPerDBC is set 0 later, alle setting will be lost <<>>UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files <<>> && 0 creates only a file.dc2 with all DBC (file) data <<>> && 1 creates a file.dc2 with DBC properties @@ -29457,20 +29556,24 @@ Define Class CL_LANG As Custom <<>>DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default) <<>>DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records <<>> - <<>>-- Class per file options (UseClassPerFile: 1) + <<>>-- CLASS and FORM options + <<>>- Class per file options (UseClassPerFile: 1) <<>>UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files <<>>RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 <<>>ClassPerFileCheck: 0 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion <<>> <<>>-- Example configuration for SourceSafe compatibility: - <<>>extension: pj2=pja - <<>>extension: vc2=vca - <<>>extension: sc2=sca - <<>>extension: fr2=fra - <<>>extension: lb2=lba - <<>>extension: mn2=mna - <<>>extension: db2=dba - <<>>extension: dc2=dca + <<>>extension: pj2=pja && Text file to PJX + <<>>extension: vc2=vca && Text file to VCX + <<>>extension: sc2=sca && Text file to SCX + <<>>extension: fr2=fra && Text file to FRX + <<>>extension: lb2=lba && Text file to LBX + <<>>extension: mn2=mna && Text file to MNX + <<>>extension: db2=dba && Text file to DBF + <<>>extension: dc2=dca && Text file to DBC + <<>>-- Additional extensions + <<>>extension: fk2=fkx && Text file to FKY + <<>>extension: me2=fkx && Text file to MEM <<>> <<>> ENDTEXT @@ -29609,8 +29712,10 @@ Define Class CL_LANG As Custom TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 <<>>################################################################################################################ <<>>FOXBIN2PRG.CFG Konfigurations Optionen: (Wird die Option nicht aufgefhrt, ist der Wert im Beispiel der Default) + <<>>Version: <<_Screen.c_FB2PRG_EXE_Version>> + <<>> <<>> Achtung, die Konfigurationsdatein werden vererbt. - <<>> 1. Defaultwerte + <<>> 1. Defaultwerte <<>> 2., optional FOXBIN2PRG.CFG im Vereichnis aus dem FOXBIN2PRG.EXE startet <<>> 3., optional FOXBIN2PRG.CFG in der Wurzel des Arbeitsverzeichnises <<>> 4., optional FOXBIN2PRG.CFG in jedem Verzeichnis bis zum Arbeitsverzeichnis @@ -29633,7 +29738,7 @@ Define Class CL_LANG As Custom <<>>RemoveNullCharsFromCode: 1 && 0=Aus 1=Lsche NULL (CHR(0)) Zeichen aus dem Quellcode <<>>RemoveZOrderSetFromProps: 0 && 0=Aus, 1=Entferne ZOrderSet Eigenschaft von Objekten <<>>Language: (auto) && Sprache fr Anzeigen und Logs. EN=English, FR=Franais, ES=Espaol, DE=Deutsch, Nicht definiert = Automatisch [DEFAULT] - <<>>ExcludeDBFAutoincNextval: 0 && 0=Aus, 1=Entferne diesen wert aus der Textdate der Datenbank (db2) + <<>>ExcludeDBFAutoincNextval: 0 && 0=Aus, 1=Entferne diesen Wert aus der Textdate der Datenbank (db2) <<>>PRG_Compat_Level: 0 && [0=Legacy], 1=Nutze HELPSTRING als Class Procedure Kommentar <<>> <<>>---------------------------------------------------------------------------------------------------------------- @@ -29644,6 +29749,8 @@ Define Class CL_LANG As Custom <<>>FRX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binrdatei (Merge) <<>>LBX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binrdatei (Merge) <<>>MNX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binrdatei (Merge) + <<>>FKY_Conversion_Support: 1 && 0=Aus, 1=Erzeuge nur Textdatei (Diff) + <<>>MEM_Conversion_Support: 1 && 0=Aus, 1=Erzeuge nur Textdatei (Diff) <<>>DBC_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binrdatei (Merge) <<>>DBF_Conversion_Support: 1 && 0=Aus <<>> && 1=Erzeuge Textdatei nur fr Struktur (Diff) @@ -29659,11 +29766,14 @@ Define Class CL_LANG As Custom <<>>---------------------------------------------------------------------------------------------------------------- <<>>-- Optionen fr DBC <<>>- Optionen fr Datei per DBC options (UseFilesPerDBC: 1) + <<>>OldFilesPerDBC: 0 && 1=Die unten stehenden DBC Optionen werden aktiviert, 0=Die UseClassPerFile settings werden genutzt. + <<>> && Die unten stehenden Optionen werden nur gelesen, wenn OldFilesPerDBC vorher 1 ist! + <<>> && Wird OldFilesPerDBC wieder auf 0 gesetzt, gehen diese Einstellungen verloren. <<>>UseFilesPerDBC: 0 && 0=Erzeuge eine dc2 Datei, 1=Erzeuge mehrfache Dateien.*.*.dc2 <<>> && 0 Erzeugt eine Datei .db2 mit allem Inhalt der DBC <<>> && 1 Erzeugt eine Datei .dc2 mit den Eigenschaften der Datenbank <<>> && und zustzlich eine Datei fr jedes Item der Datenbank (Gespeicherte Prozeduren, Tabellen, Views, ..) - <<>> && Achtung! Diese Dateien werden nmur dann in die Bindatei einbezogen, wenn RedirectFilePerDBCToMain 1 ist + <<>> && Achtung! Diese Dateien werden nur dann in die Bindatei einbezogen, wenn RedirectFilePerDBCToMain 1 ist <<>>RedirectFilePerDBCToMain 0 && Originale Dokumntation: 0=Keine Umlenkung, 1=Erzeuge .dbc, wenn .item.*.dc2 gewhlt wurde <<>> && Die Bimr-Datenbank wird nur dann automatisch zusammen gefgt, wenn diese Option 1 ist! <<>>ItemPerDBCCheck: 0 && 0=Aus, 1=Teste, ob .item.*.dc2 einbezogen wird. @@ -29677,7 +29787,9 @@ Define Class CL_LANG As Custom <<>> && Diese Option kann auch per Tabelle gesetzt werden. <<>> <<>>---------------------------------------------------------------------------------------------------------------- - <<>>-- Optionen fr Datei per Klasse (UseClassPerFile: 1) (fr VCX: vc2, fr SCX: sc2) + <<>> + <<>>-- Optionen fr CLASS und FORM + <<>>- Optionen fr Datei per Klasse (UseClassPerFile: 1) (fr VCX: vc2, fr SCX: sc2) <<>>UseClassPerFile: 0 && 0=Eine Textdatei pro VCX/SCX, 1=Mehrere Dateien .KlassenName.vc2 files, 2=Mehrere Dateien .Basisklasse.KlassenName.vc2 <<>> && Fr 1, 2 wird jeweils auch ein Headerdatei .vc2 erzeugt <<>>RedirectClassPerFileToMain: 0 && 0=Keine Umlenkung, 1=Klassen (und Objekte) werden in die VCX/SCX geschrieben wenn eine Datei [.Basisklasse].KlassenName.vc2 gewhlt wurde @@ -29685,14 +29797,17 @@ Define Class CL_LANG As Custom <<>> <<>>---------------------------------------------------------------------------------------------------------------- <<>>-- Beispiel fr genderte Textdatei Endungen, hier fr SourceSafe Kompatibiltt: - <<>>extension: pj2=pja - <<>>extension: vc2=vca - <<>>extension: sc2=sca - <<>>extension: fr2=fra - <<>>extension: lb2=lba - <<>>extension: mn2=mna - <<>>extension: db2=dba - <<>>extension: dc2=dca + <<>>extension: pj2=pja && Text Datei fr PJX + <<>>extension: vc2=vca && Text Datei fr VCX + <<>>extension: sc2=sca && Text Datei fr SCX + <<>>extension: fr2=fra && Text Datei fr FRX + <<>>extension: lb2=lba && Text Datei fr LBX + <<>>extension: mn2=mna && Text Datei fr MNX + <<>>extension: db2=dba && Text Datei fr DBF + <<>>extension: dc2=dca && Text Datei fr DBC + <<>>-- Zustzliche Endungen + <<>>extension: fk2=fkx && Text Datei fr FKY + <<>>extension: me2=fkx && Text Datei fr MEM <<>> <<>> ENDTEXT @@ -29837,7 +29952,10 @@ Define Class CL_LANG As Custom <<>> ENDTEXT TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + <<>>################################################################################################################ <<>>FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) + <<>>Version: <<_Screen.c_FB2PRG_EXE_Version>> + <<>>################################################################################################################ <<>> <<>>extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom) <<>>ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing @@ -29862,6 +29980,8 @@ Define Class CL_LANG As Custom <<>>FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) + <<>>FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) + <<>>MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff) <<>>DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) <<>>DBF_Conversion_Support: 1 && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) <<>>DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf @@ -29869,6 +29989,9 @@ Define Class CL_LANG As Custom <<>> <<>>-- DBC options <<>>- File per DBC options (UseFilesPerDBC: 1) + <<>>OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings. + <<>> && Options below will only read if OldFilesPerDBC is set 1 before! + <<>> && If OldFilesPerDBC is set 0 later, alle setting will be lost <<>>UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files <<>> && 0 creates only a file.dc2 with all DBC (file) data <<>> && 1 creates a file.dc2 with DBC properties @@ -29879,20 +30002,24 @@ Define Class CL_LANG As Custom <<>>DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default) <<>>DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records <<>> - <<>>-- Class per file options (UseClassPerFile: 1) + <<>>-- CLASS and FORM options + <<>>- Class per file options (UseClassPerFile: 1) <<>>UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files <<>>RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 <<>>ClassPerFileCheck: 0 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion <<>> <<>>-- Example configuration for SourceSafe compatibility: - <<>>extension: pj2=pja - <<>>extension: vc2=vca - <<>>extension: sc2=sca - <<>>extension: fr2=fra - <<>>extension: lb2=lba - <<>>extension: mn2=mna - <<>>extension: db2=dba - <<>>extension: dc2=dca + <<>>extension: pj2=pja && Text file to PJX + <<>>extension: vc2=vca && Text file to VCX + <<>>extension: sc2=sca && Text file to SCX + <<>>extension: fr2=fra && Text file to FRX + <<>>extension: lb2=lba && Text file to LBX + <<>>extension: mn2=mna && Text file to MNX + <<>>extension: db2=dba && Text file to DBF + <<>>extension: dc2=dca && Text file to DBC + <<>>-- Additional extensions + <<>>extension: fk2=fkx && Text file to FKY + <<>>extension: me2=fkx && Text file to MEM <<>> <<>> ENDTEXT