From 169615b9bc930cc498a4756cba6510975c1c8645 Mon Sep 17 00:00:00 2001 From: rafae Date: Fri, 24 Apr 2026 13:49:25 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20reliability=20refactor=20=E2=80=94=20co?= =?UTF-8?q?re/services=20layout,=20conformal=20UQ,=20MCDM,=20safe=20serial?= =?UTF-8?q?ization,=20manifest,=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reorganizes the project around reusable modules and adds the reliability, traceability, and security infrastructure referenced by the new help tab: Core (CSTRChemIA/core/) - safe_serialization: JSON + SHA-256 persistence for scalers, removes pickle from the happy path (mitigates CWE-502) - data_validation: ValidationReport dataclass, clean_dataset, explicit bounds/flag checks; replaces silent median imputation with reporting - model_manifest: ModelManifest dataclass + build/read/write + verify_integrity for end-to-end artifact auditability (models.json) - uncertainty: SplitConformalCalibrator (Vovk 2005), MC Dropout (Gal & Ghahramani 2016), deep ensemble (Lakshminarayanan 2017), predict_with_interval helper - feature_engineering: 11 derived features with safe_div / log_clip - constants, exceptions, i18n, logging, settings, types, units, utils Optimization - decision_methods: TOPSIS, VIKOR, PROMETHEE II, knee-point (L1-ASF), consensus_ranking - problem_v2: NSGA-II / NSGA-III problem with n_ieq_constr=5 native constraint handling Training - train_xgboost_baseline: per-target XGBoost baseline on engineered features - train_surrogate: ReduceLROnPlateau + ModelCheckpoint + --seed CLI, writes manifest entries on completion Services (CSTRChemIA/services/) - model_registry (models.json precedence, verify_integrity) - simulation_service, optimization_service, training_service, data_file_service API skeleton (CSTRChemIA/api/): FastAPI app + pydantic schemas for a future headless deployment mode. Tests - CSTRChemIA/tests/: 46 pytest cases over the new core modules - tests/: service and integration tests (mypy-typed, no TF required) Tooling & deploy - pyproject.toml (ruff, mypy, pytest config) - .github/workflows/ci.yml (lint, typecheck, matrix tests, docker build) - .pre-commit-config.yaml, .editorconfig, .dockerignore - Dockerfile + Dockerfile.api + docker-compose.yml - docs/ARCHITECTURE.md, docs/CONTRIBUTING.md, docs/DEPLOYMENT.md - Makefile, README.md at repo root UI - assets/html_help/index.html rewritten: 20 sections, ~2000 lines, full coverage of the modules above (sidebar, CSS tokens, callouts) - layout_TAB.py: dashboard upgrade (Analytics tab, K-means, Hypervolume) - custom.css: purple-theme refinements Other - requirements.txt: add keras-tuner>=1.4.0 - .gitignore: exclude .claude/ working directory Co-Authored-By: Claude Opus 4.7 --- .dockerignore | 29 + .editorconfig | 18 + .github/workflows/ci.yml | 87 + .gitignore | 23 + .pre-commit-config.yaml | 30 + CSTRChemIA/README.md | 20 + CSTRChemIA/api/__init__.py | 10 + CSTRChemIA/api/app.py | 157 ++ CSTRChemIA/api/schemas.py | 64 + CSTRChemIA/apps/MAIN_callbacks.py | 1461 +++++++++++---- CSTRChemIA/apps/MAIN_init.py | 125 +- CSTRChemIA/apps/MAIN_unit_callbacks.py | 243 +++ CSTRChemIA/apps/callbacks/__init__.py | 31 + CSTRChemIA/apps/callbacks/service_adapters.py | 93 + CSTRChemIA/assets/custom.css | 84 +- CSTRChemIA/assets/html_help/index.html | 752 +++++++- CSTRChemIA/core/__init__.py | 44 + CSTRChemIA/core/constants.py | 116 ++ CSTRChemIA/core/data_validation.py | 449 +++++ CSTRChemIA/core/exceptions.py | 41 + CSTRChemIA/core/feature_engineering.py | 199 +++ CSTRChemIA/core/i18n.py | 1588 +++++++++++++++++ CSTRChemIA/core/logging.py | 96 + CSTRChemIA/core/model_manifest.py | 296 +++ CSTRChemIA/core/safe_serialization.py | 236 +++ CSTRChemIA/core/settings.py | 83 + CSTRChemIA/core/types.py | 84 + CSTRChemIA/core/uncertainty.py | 294 +++ CSTRChemIA/core/units.py | 318 ++++ CSTRChemIA/core/utils.py | 86 + CSTRChemIA/layouts/layout_TAB.py | 829 ++++++--- CSTRChemIA/main.py | 90 +- .../optimization/CSTR_Optimization_Problem.py | 432 +++-- CSTRChemIA/optimization/decision_methods.py | 324 ++++ CSTRChemIA/optimization/problem_v2.py | 323 ++++ CSTRChemIA/requirements.txt | 1 + CSTRChemIA/services/__init__.py | 23 + CSTRChemIA/services/data_file_service.py | 514 ++++++ CSTRChemIA/services/model_registry.py | 232 +++ CSTRChemIA/services/optimization_service.py | 155 ++ CSTRChemIA/services/simulation_service.py | 84 + CSTRChemIA/services/training_service.py | 158 ++ .../surrogate_model/CSTR_CNN_Surrogate.keras | Bin 2288301 -> 2288301 bytes .../surrogate_model/CSTR_MLP_Surrogate.keras | Bin 367024 -> 367024 bytes .../surrogate_model/CSTR_RNN_Surrogate.keras | Bin 470511 -> 470506 bytes CSTRChemIA/surrogate_model/model_ranking.py | 15 +- CSTRChemIA/surrogate_model/models.json | 399 +++++ CSTRChemIA/surrogate_model/scalerX.json | 1 + CSTRChemIA/surrogate_model/scalerY.json | 1 + .../surrogate_model/training_results.csv | 6 +- CSTRChemIA/tests/__init__.py | 0 CSTRChemIA/tests/conftest.py | 14 + CSTRChemIA/tests/test_data_validation.py | 109 ++ CSTRChemIA/tests/test_decision_methods.py | 96 + CSTRChemIA/tests/test_feature_engineering.py | 99 + CSTRChemIA/tests/test_model_manifest.py | 106 ++ CSTRChemIA/tests/test_safe_serialization.py | 103 ++ CSTRChemIA/tests/test_uncertainty.py | 101 ++ CSTRChemIA/training/models.py | 4 +- CSTRChemIA/training/train_surrogate.py | 224 ++- CSTRChemIA/training/train_xgboost_baseline.py | 243 +++ Dockerfile | 59 + Dockerfile.api | 41 + LICENSE | 21 + Makefile | 77 + README.md | 190 ++ docker-compose.yml | 47 + docs/ARCHITECTURE.md | 116 ++ docs/CONTRIBUTING.md | 80 + docs/DEPLOYMENT.md | 121 ++ pyproject.toml | 187 ++ requirements.txt | 1 + tests/__init__.py | 0 tests/conftest.py | 55 + tests/test_core_constants.py | 49 + tests/test_core_exceptions.py | 37 + tests/test_core_logging.py | 63 + tests/test_core_settings.py | 48 + tests/test_core_utils.py | 78 + tests/test_data_file_service.py | 223 +++ tests/test_health_endpoint.py | 25 + tests/test_i18n.py | 224 +++ tests/test_model_registry.py | 70 + tests/test_service_adapters.py | 55 + tests/test_simulation_service.py | 110 ++ tests/test_training_service.py | 71 + tests/test_units.py | 337 ++++ 87 files changed, 13372 insertions(+), 856 deletions(-) create mode 100644 .dockerignore create mode 100644 .editorconfig create mode 100644 .github/workflows/ci.yml create mode 100644 .pre-commit-config.yaml create mode 100644 CSTRChemIA/api/__init__.py create mode 100644 CSTRChemIA/api/app.py create mode 100644 CSTRChemIA/api/schemas.py create mode 100644 CSTRChemIA/apps/MAIN_unit_callbacks.py create mode 100644 CSTRChemIA/apps/callbacks/__init__.py create mode 100644 CSTRChemIA/apps/callbacks/service_adapters.py create mode 100644 CSTRChemIA/core/__init__.py create mode 100644 CSTRChemIA/core/constants.py create mode 100644 CSTRChemIA/core/data_validation.py create mode 100644 CSTRChemIA/core/exceptions.py create mode 100644 CSTRChemIA/core/feature_engineering.py create mode 100644 CSTRChemIA/core/i18n.py create mode 100644 CSTRChemIA/core/logging.py create mode 100644 CSTRChemIA/core/model_manifest.py create mode 100644 CSTRChemIA/core/safe_serialization.py create mode 100644 CSTRChemIA/core/settings.py create mode 100644 CSTRChemIA/core/types.py create mode 100644 CSTRChemIA/core/uncertainty.py create mode 100644 CSTRChemIA/core/units.py create mode 100644 CSTRChemIA/core/utils.py create mode 100644 CSTRChemIA/optimization/decision_methods.py create mode 100644 CSTRChemIA/optimization/problem_v2.py create mode 100644 CSTRChemIA/services/__init__.py create mode 100644 CSTRChemIA/services/data_file_service.py create mode 100644 CSTRChemIA/services/model_registry.py create mode 100644 CSTRChemIA/services/optimization_service.py create mode 100644 CSTRChemIA/services/simulation_service.py create mode 100644 CSTRChemIA/services/training_service.py create mode 100644 CSTRChemIA/surrogate_model/models.json create mode 100644 CSTRChemIA/surrogate_model/scalerX.json create mode 100644 CSTRChemIA/surrogate_model/scalerY.json create mode 100644 CSTRChemIA/tests/__init__.py create mode 100644 CSTRChemIA/tests/conftest.py create mode 100644 CSTRChemIA/tests/test_data_validation.py create mode 100644 CSTRChemIA/tests/test_decision_methods.py create mode 100644 CSTRChemIA/tests/test_feature_engineering.py create mode 100644 CSTRChemIA/tests/test_model_manifest.py create mode 100644 CSTRChemIA/tests/test_safe_serialization.py create mode 100644 CSTRChemIA/tests/test_uncertainty.py create mode 100644 CSTRChemIA/training/train_xgboost_baseline.py create mode 100644 Dockerfile create mode 100644 Dockerfile.api create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 docs/ARCHITECTURE.md create mode 100644 docs/CONTRIBUTING.md create mode 100644 docs/DEPLOYMENT.md create mode 100644 pyproject.toml create mode 100644 tests/__init__.py create mode 100644 tests/conftest.py create mode 100644 tests/test_core_constants.py create mode 100644 tests/test_core_exceptions.py create mode 100644 tests/test_core_logging.py create mode 100644 tests/test_core_settings.py create mode 100644 tests/test_core_utils.py create mode 100644 tests/test_data_file_service.py create mode 100644 tests/test_health_endpoint.py create mode 100644 tests/test_i18n.py create mode 100644 tests/test_model_registry.py create mode 100644 tests/test_service_adapters.py create mode 100644 tests/test_simulation_service.py create mode 100644 tests/test_training_service.py create mode 100644 tests/test_units.py diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b1bf8bb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,29 @@ +.git +.github +.idea +.vscode +.venv +venv +env +.pytest_cache +.mypy_cache +.ruff_cache +htmlcov +__pycache__ +*.pyc +*.pyo +*.pyd +.DS_Store +Thumbs.db +Simulacoes +Tuning_NeuralNetwork +docs +tests +*.md +!README.md +*.log +*.tmp +build +dist +*.egg-info +.claude diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5552f6f --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{yml,yaml,toml,json}] +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false + +[Makefile] +indent_style = tab diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d65ce14 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,87 @@ +name: CI + +on: + push: + branches: [master, main] + pull_request: + branches: [master, main] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Lint & Format + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + cache: pip + - name: Install ruff + run: pip install "ruff>=0.5" + - name: Ruff check + run: ruff check --output-format=github . + - name: Ruff format --check + run: ruff format --check . + + typecheck: + name: Type Check (core + services) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + cache: pip + - name: Install + run: | + pip install -e .[dev] + - name: mypy + run: mypy + + test: + name: Tests (Py ${{ matrix.python-version }} / ${{ matrix.os }}) + needs: [lint] + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + python-version: ["3.11", "3.12"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: pip + - name: Install + run: | + pip install -e .[dev] + - name: Run tests (sem slow) + run: pytest -m "not slow" --cov=CSTRChemIA/core --cov=CSTRChemIA/services --cov-report=xml + - name: Upload coverage (Ubuntu 3.12 only) + if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' + uses: codecov/codecov-action@v4 + with: + files: ./coverage.xml + fail_ci_if_error: false + + docker: + name: Docker build + needs: [lint] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: docker/setup-buildx-action@v3 + - name: Build image (cache) + uses: docker/build-push-action@v6 + with: + context: . + push: false + tags: cstrchemia:ci + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.gitignore b/.gitignore index 87882e5..23c843c 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,26 @@ Tuning_NeuralNetwork/ # OS .DS_Store Thumbs.db + +# Build +build/ +dist/ +*.egg-info/ + +# Ferramentas +.ruff_cache/ +.mypy_cache/ +.coverage +htmlcov/ +coverage.xml +.nox/ +.tox/ + +# Docker +*.local.env + +# Locks gerados +requirements.lock.txt + +# Claude Code working directory +.claude/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..b3d8036 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,30 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.6.0 + hooks: + - id: trailing-whitespace + exclude: \.md$ + - id: end-of-file-fixer + - id: check-yaml + - id: check-toml + - id: check-added-large-files + args: ["--maxkb=2048"] + - id: check-merge-conflict + - id: debug-statements + - id: mixed-line-ending + args: ["--fix=lf"] + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.5.5 + hooks: + - id: ruff + args: ["--fix", "--exit-non-zero-on-fix"] + - id: ruff-format + + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.10.0 + hooks: + - id: mypy + additional_dependencies: ["numpy", "pandas"] + files: ^CSTRChemIA/(core|services)/ + args: ["--config-file=pyproject.toml"] diff --git a/CSTRChemIA/README.md b/CSTRChemIA/README.md index e69de29..8edf901 100644 --- a/CSTRChemIA/README.md +++ b/CSTRChemIA/README.md @@ -0,0 +1,20 @@ +# CSTRChemIA (package) + +Veja o [README principal](../README.md) para visão geral, instalação, +arquitetura e deployment. + +Este subdiretório contém o código do pacote Python. Estrutura: + +``` +core/ # Infra transversal (logging, settings, constants, ...) +services/ # Camada de aplicação (fachadas) +api/ # REST API FastAPI (opcional) +apps/ # Callbacks e init do Dash +layouts/ # Layouts das abas +assets/ # CSS / logo +surrogate_model/ # Modelos Keras + scalers +optimization/ # NSGA-II +training/ # Pipeline de treino +simulation/ # Simulador CSTR (ODEs) +main.py # Entry-point Dash (+ /healthz) +``` diff --git a/CSTRChemIA/api/__init__.py b/CSTRChemIA/api/__init__.py new file mode 100644 index 0000000..477b130 --- /dev/null +++ b/CSTRChemIA/api/__init__.py @@ -0,0 +1,10 @@ +""" +api — REST API opcional (FastAPI) sobre os services. + +Sobe separado do Dash para permitir consumo programático dos modelos +surrogate e do NSGA-II. Requer extras ``cstrchemia[api]``. +""" + +from api.app import create_app + +__all__ = ["create_app"] diff --git a/CSTRChemIA/api/app.py b/CSTRChemIA/api/app.py new file mode 100644 index 0000000..00f42c5 --- /dev/null +++ b/CSTRChemIA/api/app.py @@ -0,0 +1,157 @@ +""" +FastAPI app sobre os services do CSTRChemIA. + +Endpoints: + GET /health — status + modelos disponíveis + GET /models — lista de modelos com métricas + POST /predict — predição unitária + POST /optimize — dispara NSGA-II (async) + GET /jobs/{id} — status do job de otimização + GET / — redirect para /docs + +Uso em dev: + uvicorn CSTRChemIA.api.app:app --reload --port 8000 +""" + +from __future__ import annotations + +from typing import Any + +try: + from fastapi import FastAPI, HTTPException, status + from fastapi.responses import RedirectResponse +except ImportError: # pragma: no cover + raise RuntimeError( + "FastAPI não instalado. Instale: pip install -e .[api]" + ) + +from api.schemas import ( + HealthResponse, + JobStatusResponse, + ModelListResponse, + OptimizeRequest, + PredictRequest, + PredictResponse, +) +from core.exceptions import ( + CSTRChemIAError, + ModelNotFoundError, + SimulationError, +) +from core.logging import get_logger, setup_logging +from services.model_registry import get_model_registry +from services.optimization_service import OptimizationService +from services.simulation_service import SimulationService + +log = get_logger(__name__) + + +def create_app() -> FastAPI: + """Factory — usada em testes e no uvicorn.""" + setup_logging() + + app = FastAPI( + title="CSTRChemIA API", + description="REST API sobre o simulador/otimizador do CSTR realístico.", + version="0.2.0", + ) + + # Services compartilhados (singletons por processo) + sim_service: SimulationService | None = None + opt_service = OptimizationService() + + def _get_sim() -> SimulationService: + nonlocal sim_service + if sim_service is None: + sim_service = SimulationService() + return sim_service + + # ---------- endpoints ---------- + @app.get("/", include_in_schema=False) + async def root() -> RedirectResponse: + return RedirectResponse(url="/docs") + + @app.get("/health", response_model=HealthResponse, tags=["meta"]) + async def health() -> HealthResponse: + reg = get_model_registry() + return HealthResponse( + status="ok", + version=app.version, + models_available=reg.available_architectures(), + ) + + @app.get("/models", response_model=ModelListResponse, tags=["models"]) + async def list_models() -> ModelListResponse: + infos = get_model_registry().list_models() + return ModelListResponse(models=[ + { + "name": i.name, + "architecture": i.architecture, + "mae": i.mae, + "rmse": i.rmse, + "r2": i.r2, + } + for i in infos + ]) + + @app.post("/predict", response_model=PredictResponse, tags=["inference"]) + async def predict(req: PredictRequest) -> PredictResponse: + import time + start = time.perf_counter() + try: + out = _get_sim().predict_named(req.features, model_name=req.model_name) + except ModelNotFoundError as e: + raise HTTPException(status.HTTP_404_NOT_FOUND, str(e)) from e + except (SimulationError, CSTRChemIAError) as e: + raise HTTPException(status.HTTP_400_BAD_REQUEST, str(e)) from e + return PredictResponse( + targets=out, + model_name=req.model_name, + wall_time_s=time.perf_counter() - start, + ) + + @app.post("/optimize", response_model=JobStatusResponse, + status_code=status.HTTP_202_ACCEPTED, tags=["optimization"]) + async def optimize(req: OptimizeRequest) -> JobStatusResponse: + try: + job_id = opt_service.submit( + T_max=req.T_max, + X_min=req.X_min, + cat_min=req.cat_min, + fouling_max=req.fouling_max, + cp0_min=req.cp0_min, + pop_size=req.pop_size, + n_gen=req.n_gen, + model_type=req.model_name, + crossover_prob=req.crossover_prob, + mutation_prob=req.mutation_prob, + ) + except CSTRChemIAError as e: + raise HTTPException(status.HTTP_400_BAD_REQUEST, str(e)) from e + job = opt_service.get_job(job_id) + assert job is not None + return _job_to_schema(job) + + @app.get("/jobs/{job_id}", response_model=JobStatusResponse, tags=["optimization"]) + async def get_job(job_id: str) -> JobStatusResponse: + job = opt_service.get_job(job_id) + if job is None: + raise HTTPException(status.HTTP_404_NOT_FOUND, "job não encontrado") + return _job_to_schema(job) + + return app + + +def _job_to_schema(job: Any) -> JobStatusResponse: + return JobStatusResponse( + job_id=job.job_id, + status=job.status, + progress={"gen": job.progress_gen, "feasible": job.progress_feasible, + "total_gens": job.total_gens}, + started_at=job.started_at, + finished_at=job.finished_at, + error=job.error, + ) + + +app = create_app() diff --git a/CSTRChemIA/api/schemas.py b/CSTRChemIA/api/schemas.py new file mode 100644 index 0000000..b055a8f --- /dev/null +++ b/CSTRChemIA/api/schemas.py @@ -0,0 +1,64 @@ +"""Pydantic schemas usados nos endpoints REST.""" + +from __future__ import annotations + +from typing import Any + +try: + from pydantic import BaseModel, ConfigDict, Field +except ImportError: # pragma: no cover + raise RuntimeError( + "pydantic não instalado. Instale extras: pip install -e .[api]" + ) + +from core.constants import DEFAULT_FEATURES + + +class HealthResponse(BaseModel): + status: str = "ok" + version: str = "0.2.0" + models_available: list[str] = Field(default_factory=list) + + +class ModelListResponse(BaseModel): + models: list[dict[str, Any]] + + +class PredictRequest(BaseModel): + model_config = ConfigDict(extra="forbid") + + features: dict[str, float] = Field( + ..., + description=f"Dict com chaves: {DEFAULT_FEATURES}", + ) + model_name: str = Field("MLP", description="MLP, RNN ou CNN") + + +class PredictResponse(BaseModel): + targets: dict[str, float] + model_name: str + wall_time_s: float + + +class OptimizeRequest(BaseModel): + model_config = ConfigDict(extra="forbid") + + T_max: float = 365.0 + X_min: float = 0.30 + cat_min: float = 0.9995 + fouling_max: float = 0.025 + cp0_min: float = 0.0 + pop_size: int = Field(80, ge=10, le=500) + n_gen: int = Field(50, ge=1, le=1000) + model_name: str = "MLP" + crossover_prob: float = Field(0.9, ge=0.0, le=1.0) + mutation_prob: float = Field(0.1, ge=0.0, le=1.0) + + +class JobStatusResponse(BaseModel): + job_id: str + status: str + progress: dict[str, int] = Field(default_factory=dict) + started_at: float = 0.0 + finished_at: float = 0.0 + error: str | None = None diff --git a/CSTRChemIA/apps/MAIN_callbacks.py b/CSTRChemIA/apps/MAIN_callbacks.py index ec45851..637c3c7 100644 --- a/CSTRChemIA/apps/MAIN_callbacks.py +++ b/CSTRChemIA/apps/MAIN_callbacks.py @@ -26,13 +26,17 @@ import plotly.express as px import plotly.graph_objects as go from plotly.subplots import make_subplots -from dash import Input, Output, State, callback, ctx, no_update, html, dcc +from dash import Input, Output, State, callback, ctx, no_update, html, dcc, dash_table from dash.exceptions import PreventUpdate import dash_bootstrap_components as dbc from main import app from apps.MAIN_styles_dict import * from layouts.layout_TAB import * +from core.logging import get_logger, safe_print +from core.i18n import t as _t, get_lang, DEFAULT_LANG +# Registra callbacks de troca de unidade (efeito no import). +from apps import MAIN_unit_callbacks # noqa: F401 from surrogate_model.KerasPredict import ( PredictValues, TARGET_COLS, @@ -42,7 +46,12 @@ clear_cache as clear_model_cache, ) from surrogate_model.model_ranking import get_sorted_models -from optimization.CSTR_Optimization_Problem import run_cstr_optimization +from optimization.CSTR_Optimization_Problem import ( + run_cstr_optimization, + rebuild_optimization_figs, +) + +log = get_logger(__name__) # ============================================================================= # CONSTANTES @@ -64,9 +73,60 @@ _VAR_LABELS = ['Vazão Feed', 'CA₀ Feed', 'CB₀ Feed', 'Tf Feed', 'T_amb Feed', 'T_obs', 'Válvula', 'w_j'] +_VAR_LABEL_KEYS = ['feat_flow', 'feat_ca0', 'feat_cb0', 'feat_tf', + 'feat_tamb', 'feat_tobs', 'feat_valve', 'feat_wj'] TARGET_LABELS = ['CA₀', 'CB₀', 'CP₀', 'CS₀', 'T₀', 'X', 'Fouling', 'Cat.Act.'] +# ── Mapeamentos para analytics / visualizações localizadas ─────────────────── +# Mantemos os nomes crus (coluna técnica) → chave i18n. Assim traduzimos só +# para exibição, sem quebrar lógica baseada em nomes canônicos. +_TGT_LABEL_KEYS = { + 'CA0': 'target_CA0', + 'CB0': 'target_CB0', + 'CP0': 'target_CP0', + 'CS0': 'target_CS0', + 'T0': 'target_T0', + 'X': 'target_X', + 'fouling': 'target_fouling', + 'cat_activity': 'target_cat_activity', +} + +_FEAT_CONT_KEYS = { + 'vazao_feed': 'feat_flow', + 'CA0_feed': 'feat_ca0', + 'CB0_feed': 'feat_cb0', + 'Tf_feed': 'feat_tf', + 'T_amb_feed': 'feat_tamb', + 'T_obs': 'feat_tobs', + 'valve_pos': 'feat_valve', + 'w_j': 'feat_wj', +} + +_FEAT_FLAG_KEYS = { + 'flag_valvula': 'flag_valve_failure', + 'flag_manutencao': 'flag_maintenance', + 'flag_sensor_T': 'flag_sensor_t_failure', + 'flag_comunicacao': 'flag_comm_failure', +} + + +def _var_labels_for(lang: str) -> list[str]: + """Retorna rótulos de atributos (features) traduzidos para ``lang``.""" + return [_t(k, lang) for k in _VAR_LABEL_KEYS] + + +def _tgt_label(raw_name: str, lang: str) -> str: + """Label localizada para um alvo dado seu nome canônico (e.g. 'fouling').""" + key = _TGT_LABEL_KEYS.get(raw_name) + return _t(key, lang) if key else raw_name + + +def _feat_label(raw_name: str, lang: str) -> str: + """Label localizada para uma feature (contínua ou flag) pelo nome canônico.""" + key = _FEAT_CONT_KEYS.get(raw_name) or _FEAT_FLAG_KEYS.get(raw_name) + return _t(key, lang) if key else raw_name + PALETTE = { "primary": "#5913B8", "secondary": "#9B6BE0", @@ -90,13 +150,9 @@ ) -def _safe_print(*args, **kwargs): - """print() que silencia OSError/ValueError no Windows quando stdout está quebrado.""" - try: - kwargs.pop('flush', None) # flush=True pode falhar com OSError no Win/Py3.13 - print(*args, **kwargs) - except (OSError, ValueError): - pass +# _safe_print foi movido para core.logging.safe_print (veja import acima). +# Mantido aqui como alias para compatibilidade com callbacks existentes. +_safe_print = safe_print # ============================================================================= @@ -129,10 +185,11 @@ def _load_train_stats(): # ============================================================================= # HELPERS # ============================================================================= -def _extrapolation_info(feat_8: np.ndarray): +def _extrapolation_info(feat_8: np.ndarray, lang: str = DEFAULT_LANG): z = np.abs((feat_8 - _TRAIN_MEAN) / (_TRAIN_STD + 1e-30)) max_z = float(z.max()) - alerts = [(lbl, float(zi)) for lbl, zi in zip(_VAR_LABELS, z) if zi > 3.0] + labels = _var_labels_for(lang) + alerts = [(lbl, float(zi)) for lbl, zi in zip(labels, z) if zi > 3.0] return max_z, alerts @@ -189,7 +246,9 @@ def _cross_model_agreement(feat: np.ndarray, primary_arch: str): return cv, preds_x -def _empty_figure(message="Aguardando inputs…") -> go.Figure: +def _empty_figure(message: str | None = None, lang: str = DEFAULT_LANG) -> go.Figure: + if message is None: + message = _t("fig_empty_default", lang) fig = go.Figure() fig.add_annotation(text=message, xref="paper", yref="paper", x=0.5, y=0.5, showarrow=False, @@ -212,10 +271,17 @@ def _empty_figure(message="Aguardando inputs…") -> go.Figure: } _log_queue = queue.Queue() +# +# Aceita TANTO o formato do PrintEpochCallback (``Epoch 1: loss=0.123, +# val_loss=0.456``) quanto o formato nativo do Keras +# (``Epoch 1/50 ... loss: 0.123 ... val_loss: 0.456``). O lookbehind +# ``(?%{x}
%{y:.4g}", )) fig.update_layout( - title=dict(text='Estado Predito do Reator', + title=dict(text=_t("cb_chart_state_predicted", lang), font=dict(size=15, color=PALETTE["primary"]), x=0.5), - yaxis_title='Valor', template='plotly_white', + yaxis_title=_t("axis_value", lang), template='plotly_white', margin=dict(t=50, b=40, l=40, r=20), plot_bgcolor='rgba(0,0,0,0)', paper_bgcolor='rgba(0,0,0,0)', font=dict(family="Inter, system-ui, sans-serif", size=11), @@ -419,12 +576,14 @@ def _build_bar_chart(CA0_p, CB0_p, CP0_p, CS0_p, T0_pred, X_conv, fouling, cat_a return fig -def _build_radar_chart(X_conv, cat_act, fouling, fv, fst, fsc): +def _build_radar_chart(X_conv, cat_act, fouling, fv, fst, fsc, lang: str = DEFAULT_LANG): def _norm(v, vmin, vmax): return max(0.0, min(1.0, (v - vmin) / (vmax - vmin + 1e-9))) - cats = ['Conversão X', 'Ativ. Catalítica', 'Anti-fouling', - 'Válvula OK', 'Sensor T OK', 'Comunicação OK'] + cats = [_t("kpi_conversion_x", lang), _t("kpi_cat_activity", lang), + _t("legend_anti_fouling", lang), + _t("legend_valve_ok", lang), _t("legend_sensor_t_ok", lang), + _t("legend_comm_ok", lang)] vals = [ _norm(X_conv, 0, 1), _norm(cat_act, 0, 1), @@ -438,7 +597,7 @@ def _norm(v, vmin, vmax): marker=dict(color=PALETTE["primary"], size=8), line=dict(color=PALETTE["primary"], width=2), fillcolor='rgba(89,19,184,0.25)', - name='Estado', + name=_t("legend_state", lang), hovertemplate="%{theta}
%{r:.2f}", )) fig.update_layout( @@ -448,7 +607,7 @@ def _norm(v, vmin, vmax): angularaxis=dict(gridcolor='rgba(89,19,184,0.15)'), bgcolor='rgba(0,0,0,0)', ), - title=dict(text='Saúde Operacional', + title=dict(text=_t("cb_chart_operational_health", lang), font=dict(size=15, color=PALETTE["primary"]), x=0.5), template='plotly_white', margin=dict(t=60, b=30, l=40, r=40), @@ -459,7 +618,7 @@ def _norm(v, vmin, vmax): return fig -def _build_gauge_chart(X_conv): +def _build_gauge_chart(X_conv, lang: str = DEFAULT_LANG): fig = go.Figure(go.Indicator( mode="gauge+number+delta", value=X_conv * 100.0, @@ -478,7 +637,8 @@ def _build_gauge_chart(X_conv): 'threshold': {'line': {'color': PALETTE["danger"], 'width': 3}, 'thickness': 0.75, 'value': 30.0}, }, - title={'text': "Conversão X", 'font': {'size': 14, 'color': PALETTE["primary"]}}, + title={'text': _t("cb_chart_conversion_x", lang), + 'font': {'size': 14, 'color': PALETTE["primary"]}}, )) fig.update_layout( template='plotly_white', @@ -489,10 +649,28 @@ def _build_gauge_chart(X_conv): return fig -def _build_donut_chart(CA0_p, CB0_p, CP0_p, CS0_p): - species_vals = [max(v, 0) for v in [CA0_p, CB0_p, CP0_p, CS0_p]] +def _build_donut_chart(CA0_p, CB0_p, CP0_p, CS0_p, units_store: dict | None = None, + lang: str = DEFAULT_LANG): + """Donut das 4 concentrações. Converte os valores para a unidade escolhida + e usa o rótulo legível no hover template.""" + from core.units import ( + VAR_CATEGORY as _VC, canonical_value_of as _cvof, + get_option as _gopt, label_for as _lfor, + ) + store = units_store or {} + cat_id = "concentration" + # Todos os 4 usam a mesma unidade (a de CA0 por padrão). + unit = store.get("CA0", _cvof(cat_id)) + try: + opt = _gopt(cat_id, unit) + except Exception: + opt = _gopt(cat_id, _cvof(cat_id)) + unit = _cvof(cat_id) + unit_lbl = _lfor(cat_id, unit) + species_vals = [max(opt.to_display(float(v)), 0.0) + for v in [CA0_p, CB0_p, CP0_p, CS0_p]] fig = go.Figure(go.Pie( - labels=['CA₀', 'CB₀', 'CP₀ (Produto)', 'CS₀ (Subproduto)'], + labels=['CA₀', 'CB₀', _t("kpi_cp0_product", lang), _t("kpi_cs0_byproduct", lang)], values=species_vals, hole=0.55, marker=dict( colors=[PALETTE["info"], PALETTE["secondary"], @@ -500,21 +678,24 @@ def _build_donut_chart(CA0_p, CB0_p, CP0_p, CS0_p): line=dict(color='#FFFFFF', width=2), ), textinfo='label+percent', textfont=dict(size=11), - hovertemplate="%{label}
%{value:.2f} mol/m³
%{percent}", + hovertemplate=( + "%{label}
%{value:.3g} " + unit_lbl + + "
%{percent}" + ), )) fig.update_layout( - title=dict(text='Distribuição das Espécies', + title=dict(text=_t("cb_chart_species_dist", lang), font=dict(size=14, color=PALETTE["primary"]), x=0.5), template='plotly_white', margin=dict(t=50, b=10, l=10, r=10), paper_bgcolor='rgba(0,0,0,0)', showlegend=False, - annotations=[dict(text=f"Σ
{sum(species_vals):.0f}", x=0.5, y=0.5, + annotations=[dict(text=f"Σ
{sum(species_vals):.3g}", x=0.5, y=0.5, font=dict(size=16, color=PALETTE["primary"]), showarrow=False)], ) return fig -def _build_sensitivity_chart(feat, model_type, tobs): +def _build_sensitivity_chart(feat, model_type, tobs, lang: str = DEFAULT_LANG): try: lo_t, hi_t = INPUT_RANGES["input-tobs"] sweep = np.linspace(lo_t, hi_t, 30) @@ -539,17 +720,17 @@ def _build_sensitivity_chart(feat, model_type, tobs): )) fig.add_vline(x=tobs, line_width=2, line_dash='dash', line_color=PALETTE["success"], - annotation_text="atual", annotation_position="top") + annotation_text=_t("marker_current", lang), annotation_position="top") fig.update_layout( - title=dict(text='Sensibilidade X / T₀ × T_obs', + title=dict(text=_t("cb_chart_sensitivity", lang), font=dict(size=14, color=PALETTE["primary"]), x=0.5), template='plotly_white', margin=dict(t=50, b=40, l=50, r=50), paper_bgcolor='rgba(0,0,0,0)', xaxis=dict(title='T_obs (K)'), - yaxis=dict(title='X (%)', titlefont=dict(color=PALETTE["primary"]), + yaxis=dict(title=dict(text='X (%)', font=dict(color=PALETTE["primary"])), tickfont=dict(color=PALETTE["primary"])), - yaxis2=dict(title='T₀ (K)', titlefont=dict(color=PALETTE["danger"]), + yaxis2=dict(title=dict(text='T₀ (K)', font=dict(color=PALETTE["danger"])), tickfont=dict(color=PALETTE["danger"]), overlaying='y', side='right'), legend=dict(orientation='h', yanchor='bottom', y=1.02, @@ -558,43 +739,51 @@ def _build_sensitivity_chart(feat, model_type, tobs): ) return fig except Exception as e: - return _empty_figure(f"Sensibilidade indisponível: {e}") + return _empty_figure(f"{_t('msg_sensitivity_unavailable', lang)}: {e}", lang=lang) -def _build_model_comparison_chart(feat, model_type): +def _build_model_comparison_chart(feat, model_type, lang: str = DEFAULT_LANG): """Grouped bar: MLP vs RNN vs CNN para X, T₀, Cat.Act., Fouling (normalizado).""" archs = ['MLP', 'RNN', 'CNN'] + # Chaves internas (estáveis) → rótulos localizados (para exibição). + metric_keys = ['X', 'CAT', 'FOUL', 'T0'] + metric_labels = [ + _t("short_x_pct", lang), + _t("short_cat_act", lang), + _t("short_fouling_um", lang), + _t("short_t0_k", lang), + ] + results = {} for arch in archs: try: p = PredictValues(feat, model_type=arch, Tensor=True)[0] results[arch] = { - 'X (%)': float(np.clip(p[IDX['X']], 0, 1)) * 100, - 'T₀ (K)': float(p[IDX['T0']]), - 'Cat.Act.': float(np.clip(p[IDX['cat_activity']], 0, 1)) * 100, - 'Fouling (µm)': float(max(0, p[IDX['fouling_thickness']])) * 1e6, + 'X': float(np.clip(p[IDX['X']], 0, 1)) * 100, + 'CAT': float(np.clip(p[IDX['cat_activity']], 0, 1)) * 100, + 'FOUL': float(max(0, p[IDX['fouling_thickness']])) * 1e6, + 'T0': float(p[IDX['T0']]), } except Exception: pass if not results: - return _empty_figure("Modelos indisponíveis para comparação") + return _empty_figure(_t("msg_models_unavailable", lang), lang=lang) - metrics = ['X (%)', 'Cat.Act.', 'Fouling (µm)', 'T₀ (K)'] arch_cols = { 'MLP': PALETTE['primary'], 'RNN': PALETTE['success'], 'CNN': PALETTE['danger'], } - fig = make_subplots(rows=1, cols=len(metrics), - subplot_titles=metrics, + fig = make_subplots(rows=1, cols=len(metric_keys), + subplot_titles=metric_labels, horizontal_spacing=0.06) - for col_i, metric in enumerate(metrics, 1): + for col_i, (mkey, mlabel) in enumerate(zip(metric_keys, metric_labels), 1): for arch, color in arch_cols.items(): if arch not in results: continue - v = results[arch].get(metric, 0) + v = results[arch].get(mkey, 0) marker_line = dict(color='white', width=1.5) bar_style = dict(color=color, opacity=0.85, line=marker_line) if arch == model_type: @@ -608,32 +797,34 @@ def _build_model_comparison_chart(feat, model_type): text=[f"{v:.2f}"], textposition='outside', textfont=dict(size=9), - hovertemplate=f"{arch}
{metric}=%{{y:.3g}}", + hovertemplate=f"{arch}
{mlabel}=%{{y:.3g}}", ), row=1, col=col_i) fig.update_layout( - title=dict(text=f'Comparação MLP/RNN/CNN (selecionado: {model_type})', - font=dict(color=PALETTE['primary'], size=14), x=0.5), + title=dict(text=_t("cb_chart_model_comp", lang).format(model=model_type), + font=dict(color=PALETTE['primary'], size=14), + x=0.5, y=0.97, yanchor='top'), template='plotly_white', - margin=dict(t=60, b=40, l=40, r=20), + margin=dict(t=55, b=70, l=40, r=20), paper_bgcolor='rgba(0,0,0,0)', barmode='group', - legend=dict(orientation='h', yanchor='bottom', y=1.08, + legend=dict(orientation='h', yanchor='top', y=-0.08, xanchor='center', x=0.5), font=dict(family="Inter, system-ui, sans-serif", size=11), - height=340, + height=360, ) return fig -def _build_feature_contribution_chart(feat, model_type): +def _build_feature_contribution_chart(feat, model_type, lang: str = DEFAULT_LANG): """ Contribuição de cada feature a ΔX (variação ±1σ do treino). Barras horizontais: positivo = aumenta X, negativo = diminui X. """ lo_hi = list(INPUT_RANGES.values()) + var_labels = _var_labels_for(lang) contributions = [] - for i, (label, std) in enumerate(zip(_VAR_LABELS, _TRAIN_STD)): + for i, (label, std) in enumerate(zip(var_labels, _TRAIN_STD)): lo, hi = lo_hi[i] fp, fm = feat.copy(), feat.copy() fp[0, i] = np.clip(feat[0, i] + std, lo, hi) @@ -661,7 +852,7 @@ def _build_feature_contribution_chart(feat, model_type): )) fig.add_vline(x=0, line_width=1.5, line_color='#888') fig.update_layout( - title=dict(text=f'ΔX por Feature (±1σ) — {model_type}', + title=dict(text=f"{_t('cb_chart_delta_x_feature', lang)} — {model_type}", font=dict(color=PALETTE['primary'], size=14), x=0.5), xaxis_title='ΔX (%)', template='plotly_white', @@ -673,7 +864,8 @@ def _build_feature_contribution_chart(feat, model_type): return fig -def _build_operating_envelope_chart(feat, model_type, tobs_current, valve_current): +def _build_operating_envelope_chart(feat, model_type, tobs_current, valve_current, + lang: str = DEFAULT_LANG): """ Heatmap 2D: T_obs × valve_pos → X (%). Marca o ponto de operação atual com ★. @@ -690,28 +882,30 @@ def _build_operating_envelope_chart(feat, model_type, tobs_current, valve_curren X_grid = np.clip(preds[:, IDX['X']], 0, 1) * 100.0 X_grid = X_grid.reshape(n, n) except Exception: - return _empty_figure("Envelope operacional indisponível") + return _empty_figure(_t("msg_envelope_unavailable", lang), lang=lang) + valve_label = _t("axis_valve_position", lang) + tobs_label = _t("feat_tobs", lang) fig = go.Figure(go.Heatmap( x=tobs_range, y=valve_range, z=X_grid, colorscale='RdYlGn', colorbar=dict(title='X (%)', thickness=14), - hovertemplate="T_obs=%{x:.1f} K
Válvula=%{y:.2f}
X=%{z:.2f}%", + hovertemplate=f"{tobs_label}=%{{x:.1f}} K
{valve_label}=%{{y:.2f}}
X=%{{z:.2f}}%", )) # Ponto atual fig.add_trace(go.Scatter( x=[tobs_current], y=[valve_current], mode='markers+text', marker=dict(symbol='star', size=16, color=PALETTE['gold'], line=dict(color='#333', width=2)), - text=["Atual"], textposition='top center', + text=[_t("marker_current", lang)], textposition='top center', textfont=dict(size=10, color='#333'), - name='Ponto atual', - hovertemplate=f"Ponto Atual
T_obs={tobs_current:.1f} K
Válvula={valve_current:.2f}", + name=_t("marker_current_point", lang), + hovertemplate=f"{_t('marker_current_point', lang)}
{tobs_label}={tobs_current:.1f} K
{valve_label}={valve_current:.2f}", )) fig.update_layout( - title=dict(text=f'Envelope Operacional: X(%) — {model_type}', + title=dict(text=f"{_t('cb_chart_envelope', lang)} — {model_type}", font=dict(color=PALETTE['primary'], size=14), x=0.5), - xaxis_title='T_obs (K)', yaxis_title='Posição da Válvula', + xaxis_title=f"{tobs_label} (K)", yaxis_title=valve_label, template='plotly_white', margin=dict(t=55, b=45, l=55, r=30), paper_bgcolor='rgba(0,0,0,0)', @@ -721,13 +915,13 @@ def _build_operating_envelope_chart(feat, model_type, tobs_current, valve_curren return fig -def _build_history_chart(history: list): +def _build_history_chart(history: list, lang: str = DEFAULT_LANG): """ Linha temporal das últimas 30 predições. Exibe X (%), Cat.Act. (normalizado 0–100) e Fouling severity (0–100). """ if not history or len(history) < 2: - return _empty_figure("Altere os inputs para acumular histórico de predições") + return _empty_figure(_t("msg_history_hint", lang), lang=lang) idx_arr = list(range(len(history))) x_vals = [h.get('X_pct', 0) for h in history] @@ -738,44 +932,47 @@ def _build_history_chart(history: list): fig = go.Figure() fig.add_trace(go.Scatter( x=idx_arr, y=x_vals, mode='lines+markers', - name='X (%)', line=dict(color=PALETTE['primary'], width=2.5), + name=_t("trace_conversion_x_pct", lang), + line=dict(color=PALETTE['primary'], width=2.5), marker=dict(size=6), hovertemplate="Pred #%{x}
X=%{y:.2f}%", )) fig.add_trace(go.Scatter( x=idx_arr, y=cat_vals, mode='lines+markers', - name='Cat.Act. (%)', + name=_t("trace_cat_act_pct", lang), line=dict(color=PALETTE['success'], width=2, dash='dot'), marker=dict(size=5), hovertemplate="Pred #%{x}
Cat.Act.=%{y:.2f}%", )) fig.add_trace(go.Scatter( x=idx_arr, y=foul_vals, mode='lines+markers', - name='Fouling (% escala)', + name=_t("trace_fouling_scale", lang), line=dict(color=PALETTE['warning'], width=2, dash='dash'), marker=dict(size=5), hovertemplate="Pred #%{x}
Fouling=%{y:.2f}%", )) fig.add_trace(go.Scatter( x=idx_arr, y=t0_vals, mode='lines', - name='T₀ (K)', yaxis='y2', + name=_t("trace_t0_k", lang), yaxis='y2', line=dict(color=PALETTE['danger'], width=1.5, dash='longdash'), hovertemplate="Pred #%{x}
T₀=%{y:.1f} K", )) fig.update_layout( - title=dict(text='Histórico de Predições (últimas 30)', - font=dict(color=PALETTE['primary'], size=14), x=0.5), - xaxis=dict(title='Nº da predição'), - yaxis=dict(title='Escala %', titlefont=dict(color=PALETTE['primary'])), - yaxis2=dict(title='T₀ (K)', titlefont=dict(color=PALETTE['danger']), + title=dict(text=_t("cb_chart_history", lang), + font=dict(color=PALETTE['primary'], size=14), + x=0.5, y=0.97, yanchor='top'), + xaxis=dict(title=_t("axis_prediction_idx", lang)), + yaxis=dict(title=dict(text=_t("axis_percent_scale", lang), + font=dict(color=PALETTE['primary']))), + yaxis2=dict(title=dict(text='T₀ (K)', font=dict(color=PALETTE['danger'])), overlaying='y', side='right'), template='plotly_white', - margin=dict(t=55, b=45, l=55, r=55), + margin=dict(t=55, b=80, l=55, r=55), paper_bgcolor='rgba(0,0,0,0)', - legend=dict(orientation='h', yanchor='bottom', y=1.02, + legend=dict(orientation='h', yanchor='top', y=-0.16, xanchor='center', x=0.5), font=dict(family="Inter, system-ui, sans-serif", size=11), - height=360, + height=380, ) return fig @@ -784,15 +981,12 @@ def _build_history_chart(history: list): # CALLBACK PRINCIPAL DE SIMULAÇÃO (+4 novos gráficos, +histórico) # ============================================================================= @callback( - # KPIs - Output("out-X", "children"), - Output("out-T0", "children"), - Output("out-CA0", "children"), - Output("out-CB0", "children"), - Output("out-CP0", "children"), - Output("out-CS0", "children"), - Output("out-fouling", "children"), + # KPI sem unidade (tratado inline). Os demais KPIs são renderizados a + # partir do ``sim-kpis-canonical-store`` pelos callbacks de unidade em + # :mod:`apps.MAIN_unit_callbacks`. Output("out-catact", "children"), + # Store canônico que alimenta os KPIs com unidade. + Output("sim-kpis-canonical-store", "data"), # Gráficos originais (5) Output("sim-bar-chart", "figure"), Output("sim-radar-chart", "figure"), @@ -822,16 +1016,50 @@ def _build_history_chart(history: list): Input("flag-sensor-t", "value"), Input("flag-comunicacao","value"), Input("sim-model-select","value"), - # Estado do histórico + # units-store como Input (não State) — quando o usuário troca unidade, + # rerenderiza gráficos + KPIs sem exigir uma ação extra de input. + Input("units-store", "data"), + # Idioma ativo (para que mudar o dropdown rerenderize os gráficos). + Input("lang-selector", "value"), + # Estado do histórico. State("sim-history-store", "data"), ) def update_simulation(vazao, ca0, cb0, tf, tamb, tobs, valve, wj, - flag_v, flag_m, flag_st, flag_sc, model_type, history_data): - - N_OUTPUTS = 19 + flag_v, flag_m, flag_st, flag_sc, model_type, + units_store, lang_in, history_data): + lang = get_lang(lang_in) + + # Saídas totais (na ordem dos Outputs acima): + # 1 out-catact + # 1 sim-kpis-canonical-store + # 5 gráficos originais + # 1 status-bar + # 4 gráficos novos + # 1 history-store + # = 13 saídas + N_OUTPUTS = 13 if None in [vazao, ca0, cb0, tf, tamb, tobs, valve, wj, model_type]: return [no_update] * N_OUTPUTS + # ── Conversão display → canonical para as 7 variáveis com unidade ─────── + # (valve permanece em sua escala 0–1; flags são 0/1.) + from core.units import convert as _u_convert, VAR_CATEGORY as _VC, canonical_value_of as _cvof + def _to_canon(var_id: str, v): + cat = _VC.get(var_id) + if cat is None or v is None: + return v + unit = (units_store or {}).get(var_id, _cvof(cat)) + conv = _u_convert(v, cat, unit, _cvof(cat)) + return conv if conv is not None else v + + vazao = _to_canon("vazao", vazao) + ca0 = _to_canon("ca0feed", ca0) + cb0 = _to_canon("cb0feed", cb0) + tf = _to_canon("tf", tf) + tamb = _to_canon("tamb", tamb) + tobs = _to_canon("tobs", tobs) + wj = _to_canon("wj", wj) + def _flag(val): return 1.0 if (isinstance(val, list) and val) or (not isinstance(val, list) and val) else 0.0 @@ -860,10 +1088,23 @@ def _flag(val): fouling < -0.005 or cat_act < 0.5 or cat_act > 1.05): warn = html.Div([ html.Span("⚠ ", className="me-1"), - html.Span(f"Predição fora dos limites físicos – {model_type}"), + html.Span(f"{_t('msg_invalid_prediction', lang)} – {model_type}"), ], className="alert alert-warning py-1 px-2 mb-0 small") - return (["—"] * 8 + [_empty_figure("Predição inválida")] * 5 - + [warn] + [_empty_figure()] * 4 + [history_data or []]) + # 13 saídas: out-catact, canonical-store, 5 figs, status, 4 figs, hist + inv_msg = _t('msg_invalid_prediction', lang) + return ( + "—", + {}, + _empty_figure(inv_msg, lang=lang), + _empty_figure(inv_msg, lang=lang), + _empty_figure(inv_msg, lang=lang), + _empty_figure(inv_msg, lang=lang), + _empty_figure(inv_msg, lang=lang), + warn, + _empty_figure(lang=lang), _empty_figure(lang=lang), + _empty_figure(lang=lang), _empty_figure(lang=lang), + history_data or [], + ) # Clamp suave X_conv = float(np.clip(X_conv, 0.0, 1.0)) @@ -875,16 +1116,21 @@ def _flag(val): cat_act = float(np.clip(cat_act, 0.0, 1.0)) # ── Gráficos originais ────────────────────────────────────────────── - bar_fig = _build_bar_chart(CA0_p, CB0_p, CP0_p, CS0_p, T0_pred, X_conv, fouling, cat_act) - radar_fig = _build_radar_chart(X_conv, cat_act, fouling, fv, fst, fsc) - gauge_fig = _build_gauge_chart(X_conv) - donut_fig = _build_donut_chart(CA0_p, CB0_p, CP0_p, CS0_p) - sens_fig = _build_sensitivity_chart(feat, model_type, tobs) + bar_fig = _build_bar_chart(CA0_p, CB0_p, CP0_p, CS0_p, T0_pred, X_conv, + fouling, cat_act, units_store=units_store, + lang=lang) + radar_fig = _build_radar_chart(X_conv, cat_act, fouling, fv, fst, fsc, + lang=lang) + gauge_fig = _build_gauge_chart(X_conv, lang=lang) + donut_fig = _build_donut_chart(CA0_p, CB0_p, CP0_p, CS0_p, + units_store=units_store, lang=lang) + sens_fig = _build_sensitivity_chart(feat, model_type, tobs, lang=lang) # ── Novos gráficos ────────────────────────────────────────────────── - comp_fig = _build_model_comparison_chart(feat, model_type) - feat_fig = _build_feature_contribution_chart(feat, model_type) - env_fig = _build_operating_envelope_chart(feat, model_type, tobs, valve) + comp_fig = _build_model_comparison_chart(feat, model_type, lang=lang) + feat_fig = _build_feature_contribution_chart(feat, model_type, lang=lang) + env_fig = _build_operating_envelope_chart(feat, model_type, tobs, valve, + lang=lang) # Histórico history_data = history_data or [] @@ -895,24 +1141,25 @@ def _flag(val): 'T0': T0_pred, }) history_data = history_data[-30:] - hist_fig = _build_history_chart(history_data) + hist_fig = _build_history_chart(history_data, lang=lang) # ── Barra de status ───────────────────────────────────────────────── hard_fail = (fv == 1 or fst == 1 or fsc == 1 or fm == 1) if hard_fail or fouling > 0.0175 or cat_act < 0.99960 or T0_pred > 360.0: - status_color, status_text = "danger", "✗ Atenção: condição crítica" + status_color, status_text = "danger", _t("status_critical", lang) elif fouling > 0.015 or cat_act < 0.99975 or T0_pred > 345.0: - status_color, status_text = "warning", "⚠ Operação degradada" + status_color, status_text = "warning", _t("status_operation_degraded", lang) else: - status_color, status_text = "success", "✓ Operação saudável" + status_color, status_text = "success", _t("status_operation_healthy", lang) feat_8 = np.array([vazao, ca0, cb0, tf, tamb, tobs, valve, wj], dtype=float) - max_z, extrap_alerts = _extrapolation_info(feat_8) + max_z, extrap_alerts = _extrapolation_info(feat_8, lang=lang) extrap_badge = [] if max_z > 3.0: var_names = ", ".join(f"{lbl} ({z:.0f}σ)" for lbl, z in extrap_alerts) cls = "badge bg-danger mt-1 px-2 py-1" if max_z > 10 else "badge bg-info mt-1 px-2 py-1" - prefix = "⚠ Extrapolação severa: " if max_z > 10 else "ℹ Fora da zona densa: " + prefix = (_t("status_extrapolation_severe", lang) + ": ") if max_z > 10 \ + else (_t("status_extrapolation_outside", lang) + ": ") extrap_badge = [html.Br(), html.Span(f"{prefix}{var_names}", className=cls, style={"fontSize": "0.75rem", "fontWeight": "normal"})] @@ -924,17 +1171,17 @@ def _flag(val): preds_str = " ".join(f"{a}: {v*100:.1f}%" for a, v in preds_all.items()) if cv_x > 80: agreement_badge = [html.Br(), - html.Span(f"⚠ Baixa concordância (CV={cv_x:.0f}%) — {preds_str}", + html.Span(_t("status_low_agreement", lang).format(cv=cv_x, preds=preds_str), className="badge bg-danger mt-1 px-2 py-1", style={"fontSize": "0.75rem", "fontWeight": "normal"})] elif cv_x > 30: agreement_badge = [html.Br(), - html.Span(f"ℹ Concordância moderada (CV={cv_x:.0f}%) — {preds_str}", + html.Span(_t("status_moderate_agreement", lang).format(cv=cv_x, preds=preds_str), className="badge bg-warning text-dark mt-1 px-2 py-1", style={"fontSize": "0.75rem", "fontWeight": "normal"})] else: agreement_badge = [html.Br(), - html.Span(f"✓ Alta concordância (CV={cv_x:.0f}%) — {preds_str}", + html.Span(_t("status_high_agreement", lang).format(cv=cv_x, preds=preds_str), className="badge bg-success mt-1 px-2 py-1", style={"fontSize": "0.75rem", "fontWeight": "normal"})] except Exception: @@ -943,16 +1190,28 @@ def _flag(val): status_bar = html.Div([ html.Span(status_text, className=f"badge bg-{status_color} fs-6 px-3 py-2"), - html.Span(f" Modelo: {model_type}", className="ms-3 text-muted small"), + html.Span(f" {_t('status_model_label', lang)}: {model_type}", + className="ms-3 text-muted small"), *extrap_badge, *agreement_badge, ], className="text-center my-2") + # ── KPIs em unidade canônica ──────────────────────────────────────── + # Os callbacks em ``apps.MAIN_unit_callbacks`` leem esse dict e + # convertem/formatam conforme a unidade escolhida pelo usuário. + canonical_kpis = { + "X": X_conv, # fração 0–1 + "T0": T0_pred, # K + "CA0": CA0_p, # mol/m³ + "CB0": CB0_p, # mol/m³ + "CP0": CP0_p, # mol/m³ + "CS0": CS0_p, # mol/m³ + "fouling": fouling, # m (modelo) + } + return ( - f"{X_conv * 100:.2f}%", f"{T0_pred:.2f} K", - f"{CA0_p:.2f}", f"{CB0_p:.2f}", - f"{CP0_p:.2f}", f"{CS0_p:.2f}", - f"{fouling*1e6:.2f} µm", f"{cat_act:.4f}", + f"{cat_act:.4f}", + canonical_kpis, bar_fig, radar_fig, gauge_fig, donut_fig, sens_fig, status_bar, comp_fig, feat_fig, env_fig, hist_fig, @@ -961,12 +1220,24 @@ def _flag(val): except Exception as e: _safe_print(f"[WARN] Predição falhou: {e}") + pred_failed = _t("msg_prediction_failed", lang) warn = html.Div([ html.Span("✗ ", className="me-1"), - html.Span(f"Predição falhou: {e}"), + html.Span(f"{pred_failed}: {e}"), ], className="alert alert-danger py-1 px-2 mb-0 small") - return (["—"] * 8 + [_empty_figure("Erro")] * 5 - + [warn] + [_empty_figure()] * 4 + [history_data or []]) + return ( + "—", + {}, + _empty_figure(pred_failed, lang=lang), + _empty_figure(pred_failed, lang=lang), + _empty_figure(pred_failed, lang=lang), + _empty_figure(pred_failed, lang=lang), + _empty_figure(pred_failed, lang=lang), + warn, + _empty_figure(lang=lang), _empty_figure(lang=lang), + _empty_figure(lang=lang), _empty_figure(lang=lang), + history_data or [], + ) # ============================================================================= @@ -976,23 +1247,27 @@ def _flag(val): Output('training-log-output', 'children'), Input('btn-run-training', 'n_clicks'), State('training-model-select', 'value'), + State('lang-selector', 'value'), prevent_initial_call=True, ) -def start_training(n_clicks, model_type): +def start_training(n_clicks, model_type, lang_in): if n_clicks is None or _training_status['running']: raise PreventUpdate + lang = get_lang(lang_in) thread = threading.Thread(target=_run_training_script, args=(model_type,)) thread.daemon = True thread.start() - return "🟡 Treinamento iniciado…\n" + return _t("msg_training_started", lang) + "\n" @callback( Output('training-log-output', 'children', allow_duplicate=True), Input('training-interval', 'n_intervals'), + State('lang-selector', 'value'), prevent_initial_call=True, ) -def update_training_logs(_): +def update_training_logs(_, lang_in): + lang = get_lang(lang_in) new_lines = [] while not _log_queue.empty(): try: @@ -1012,9 +1287,9 @@ def update_training_logs(_): _training_status['log_lines'].extend(new_lines) if not _training_status['running'] and _training_status['returncode'] is not None: - msg = ("✅ Treinamento concluído com sucesso!" + msg = (_t("msg_training_completed", lang) if _training_status['returncode'] == 0 - else f"❌ Falha: {_training_status['error']}") + else _t("msg_training_failed", lang).format(err=_training_status['error'])) _training_status['log_lines'].append(f"\n{msg}") _training_status['returncode'] = None @@ -1025,25 +1300,31 @@ def update_training_logs(_): Output('training-status-badge', 'children'), Output('training-status-badge', 'className'), Input('training-interval', 'n_intervals'), + Input('lang-selector', 'value'), ) -def update_training_badge(_): +def update_training_badge(_, lang_in): + lang = get_lang(lang_in) if _training_status['running']: - return "● Treinando…", "badge bg-warning text-dark fs-6 px-3 py-2 pulse" + return (_t("status_training_active", lang), + "badge bg-warning text-dark fs-6 px-3 py-2 pulse") if _training_status['error']: - return f"● Erro: {_training_status['error']}", "badge bg-danger fs-6 px-3 py-2" + return (_t("status_training_error", lang).format(error=_training_status['error']), + "badge bg-danger fs-6 px-3 py-2") if _training_status['log_lines']: - return "● Concluído", "badge bg-success fs-6 px-3 py-2" - return "● Aguardando", "badge bg-secondary fs-6 px-3 py-2" + return _t("status_training_done", lang), "badge bg-success fs-6 px-3 py-2" + return _t("status_waiting", lang), "badge bg-secondary fs-6 px-3 py-2" @callback( Output('training-loss-chart', 'figure'), Input('training-interval', 'n_intervals'), + Input('lang-selector', 'value'), ) -def update_loss_chart(_): +def update_loss_chart(_, lang_in): + lang = get_lang(lang_in) lh = _training_status.get('loss_history', []) if len(lh) < 2: - return _empty_figure("Inicie o treinamento para ver as curvas de loss") + return _empty_figure(_t("msg_start_training_loss", lang), lang=lang) epochs = [h['epoch'] for h in lh] losses = [h['loss'] for h in lh] @@ -1052,13 +1333,15 @@ def update_loss_chart(_): fig = go.Figure() fig.add_trace(go.Scatter( x=epochs, y=losses, mode='lines+markers', - name='Train Loss', line=dict(color=PALETTE['primary'], width=2.5), + name=_t("legend_train_loss", lang), + line=dict(color=PALETTE['primary'], width=2.5), marker=dict(size=5), hovertemplate="Epoch=%{x}
Loss=%{y:.5f}", )) fig.add_trace(go.Scatter( x=epochs, y=val_losses, mode='lines+markers', - name='Val Loss', line=dict(color=PALETTE['danger'], width=2.5, dash='dot'), + name=_t("legend_val_loss", lang), + line=dict(color=PALETTE['danger'], width=2.5, dash='dot'), marker=dict(size=5), hovertemplate="Epoch=%{x}
Val Loss=%{y:.5f}", )) @@ -1068,14 +1351,15 @@ def update_loss_chart(_): best_vl = min(val_losses) fig.add_annotation( x=best_ep, y=best_vl, - text=f"Best={best_vl:.5f}", + text=f"{_t('legend_best', lang)}={best_vl:.5f}", showarrow=True, arrowhead=2, font=dict(color=PALETTE['success'], size=10), ) fig.update_layout( - title=dict(text='Curva de Loss (Train vs Validation)', + title=dict(text=_t("cb_chart_loss_curve", lang), font=dict(color=PALETTE['primary'], size=15), x=0.5), - xaxis_title='Época', yaxis_title='Loss (MSE)', + xaxis_title=_t("axis_epoch", lang), + yaxis_title=_t("axis_loss_mse", lang), template='plotly_white', margin=dict(t=55, b=45, l=65, r=30), paper_bgcolor='rgba(0,0,0,0)', @@ -1092,101 +1376,37 @@ def update_loss_chart(_): Output('training-results-table-container', 'children'), Input('btn-reload-metrics', 'n_clicks'), Input('training-interval', 'n_intervals'), + Input('lang-selector', 'value'), prevent_initial_call=False, ) -def update_training_metrics(n_clicks, _): +def update_training_metrics(n_clicks, _, lang_in): + lang = get_lang(lang_in) results_csv = os.path.join(_SURROGATE_DIR, 'training_results.csv') if not os.path.exists(results_csv): - empty = _empty_figure("Treine um modelo para ver as métricas") - msg = html.P("Arquivo training_results.csv não encontrado.", + empty = _empty_figure(_t("msg_train_for_metrics", lang), lang=lang) + msg = html.P(_t("msg_results_not_yet", lang), className="text-muted text-center small") return empty, empty, msg try: df = pd.read_csv(results_csv) except Exception as e: - empty = _empty_figure(f"Erro ao ler resultados: {e}") + empty = _empty_figure( + _t("msg_error_reading_results", lang).format(err=e), lang=lang) return empty, empty, html.P(str(e), className="text-danger small") - # ── Gráfico 1: métricas por target ─────────────────────────────────────── - # Espera colunas: arch, target, R2, MAE, RMSE (ou similar) - metric_fig = _empty_figure("Colunas esperadas: arch, target, R2, MAE, RMSE") - radar_fig = _empty_figure("Colunas esperadas: arch, R2_mean, MAE_mean") - - arch_col = next((c for c in df.columns if c.lower() in ('arch', 'architecture', 'model')), None) - r2_col = next((c for c in df.columns if 'r2' in c.lower() or 'r²' in c.lower()), None) - mae_col = next((c for c in df.columns if 'mae' in c.lower()), None) - - if arch_col and r2_col: - archs = df[arch_col].unique().tolist() - colors = [PALETTE['primary'], PALETTE['success'], PALETTE['danger']] - metric_fig = go.Figure() - for i, arch in enumerate(archs): - sub = df[df[arch_col] == arch] - target_col = next((c for c in df.columns if 'target' in c.lower()), None) - if target_col and r2_col: - metric_fig.add_trace(go.Bar( - x=sub[target_col].astype(str).tolist(), - y=sub[r2_col].tolist(), - name=arch, - marker_color=colors[i % len(colors)], - )) - else: - # Sem coluna target: mostrar R² geral por arquitetura - metric_fig.add_trace(go.Bar( - x=[arch], y=[float(sub[r2_col].mean())], - name=arch, marker_color=colors[i % len(colors)], - )) - metric_fig.update_layout( - title=dict(text='R² por Target e Arquitetura', - font=dict(color=PALETTE['primary'], size=15), x=0.5), - xaxis_title='Target', yaxis_title='R²', - barmode='group', template='plotly_white', - margin=dict(t=55, b=45, l=55, r=30), - legend=dict(orientation='h', yanchor='bottom', y=1.02, - xanchor='center', x=0.5), - ) + metric_fig, radar_fig = _build_training_metric_figures(df, lang=lang) - # ── Radar por arquitetura ───────────────────────────────────────── - metrics_for_radar = [r2_col] - if mae_col: - metrics_for_radar.append(mae_col) - rmse_col = next((c for c in df.columns if 'rmse' in c.lower()), None) - if rmse_col: - metrics_for_radar.append(rmse_col) - - if len(metrics_for_radar) >= 2: - radar_fig = go.Figure() - for i, arch in enumerate(archs): - sub = df[df[arch_col] == arch] - vals = [] - for mc in metrics_for_radar: - v = float(sub[mc].mean()) - # MAE/RMSE: inverter para "maior = melhor" - if 'mae' in mc.lower() or 'rmse' in mc.lower(): - max_v = float(df[mc].max()) + 1e-9 - v = 1.0 - (v / max_v) - vals.append(v) - vals_c = vals + [vals[0]] - cats_c = metrics_for_radar + [metrics_for_radar[0]] - radar_fig.add_trace(go.Scatterpolar( - r=vals_c, theta=cats_c, fill='toself', - name=arch, opacity=0.7, - line=dict(color=colors[i % len(colors)], width=2), - )) - radar_fig.update_layout( - polar=dict(radialaxis=dict(visible=True, range=[0, 1])), - title=dict(text='Radar de Desempenho Global', - font=dict(color=PALETTE['primary'], size=14), x=0.5), - template='plotly_white', - margin=dict(t=60, b=30, l=40, r=40), - showlegend=True, - ) - - # ── Tabela de resultados ───────────────────────────────────────────────── + # ── Tabela de resultados (sem colunas verbosas) ────────────────────────── + display_cols = [c for c in df.columns if c not in ('hyperparameters', 'model_path')] + df_disp = df[display_cols].copy() + # Formata numéricos + for c in df_disp.columns: + if pd.api.types.is_float_dtype(df_disp[c]): + df_disp[c] = df_disp[c].map(lambda v: f"{v:.4g}") table = dash_table.DataTable( - data=df.to_dict('records'), - columns=[{'name': c, 'id': c} for c in df.columns], + data=df_disp.to_dict('records'), + columns=[{'name': c, 'id': c} for c in df_disp.columns], sort_action='native', filter_action='native', style_table={'overflowX': 'auto'}, style_cell={'textAlign': 'center', 'fontSize': 12, @@ -1199,6 +1419,138 @@ def update_training_metrics(n_clicks, _): return metric_fig, radar_fig, table +def _build_training_metric_figures(df: "pd.DataFrame", lang: str = DEFAULT_LANG): + """ + Constrói (metrics_fig, radar_fig) a partir de ``training_results.csv``. + Funciona com as colunas reais salvas por ``save_training_result``: + ``architecture``, ``mae_real``, ``val_loss_scaled``, ``epochs_trained``. + + Também é robusto para CSVs futuros que tragam colunas ``r2`` / ``rmse`` / + ``target`` — usa o que estiver disponível. + """ + if df is None or df.empty: + empty = _empty_figure(_t("msg_no_training_result", lang), lang=lang) + return empty, empty + + # Resolve coluna de arquitetura + arch_col = next((c for c in df.columns + if c.lower() in ('arch', 'architecture', 'model')), None) + if not arch_col: + empty = _empty_figure(_t("msg_csv_missing_arch", lang), lang=lang) + return empty, empty + + # Agrupa por arquitetura (pega o melhor registro = menor MAE) + mae_col = next((c for c in df.columns if c.lower() in ('mae', 'mae_real', 'mae_mean')), None) + vloss_col = next((c for c in df.columns if c.lower() in ('val_loss_scaled', 'val_loss')), None) + epochs_col = next((c for c in df.columns if 'epoch' in c.lower()), None) + r2_col = next((c for c in df.columns if c.lower() in ('r2', 'r²', 'r2_mean')), None) + rmse_col = next((c for c in df.columns if 'rmse' in c.lower()), None) + + # Deduplica: para cada arquitetura, fica o menor MAE (ou última linha se sem MAE) + if mae_col: + df_best = df.sort_values(mae_col).groupby(arch_col, as_index=False).first() + else: + df_best = df.groupby(arch_col, as_index=False).last() + df_best = df_best.reset_index(drop=True) + + archs = df_best[arch_col].astype(str).tolist() + color_map = { + 'MLP': PALETTE['primary'], + 'RNN': PALETTE['success'], + 'CNN': PALETTE['danger'], + } + colors = [color_map.get(a, PALETTE['info']) for a in archs] + + # ── Figura 1 — barras agrupadas ───────────────────────────────────────── + metric_fig = go.Figure() + numeric_metrics = [] + if mae_col: + numeric_metrics.append((_t("metric_mae_real", lang), mae_col, False)) + if vloss_col: + numeric_metrics.append((_t("metric_val_loss_scaled", lang), vloss_col, False)) + if r2_col: + numeric_metrics.append((_t("metric_r2", lang), r2_col, True)) + if rmse_col: + numeric_metrics.append((_t("metric_rmse", lang), rmse_col, False)) + if epochs_col: + numeric_metrics.append((_t("metric_epochs", lang), epochs_col, True)) + + if not numeric_metrics: + metric_fig = _empty_figure(_t("msg_csv_no_metric", lang), lang=lang) + else: + for i, arch in enumerate(archs): + row = df_best[df_best[arch_col] == arch].iloc[0] + ys = [float(row[col]) for _, col, _ in numeric_metrics] + metric_fig.add_trace(go.Bar( + x=[label for label, _, _ in numeric_metrics], + y=ys, + name=str(arch), + marker_color=colors[i], + text=[f"{v:.4g}" for v in ys], + textposition='outside', + hovertemplate=f"{arch}
%{{x}}=%{{y:.4g}}", + )) + metric_fig.update_layout( + title=dict(text=_t("cb_chart_metrics_arch", lang), + font=dict(color=PALETTE['primary'], size=15), + x=0.5, xanchor='center', y=0.97, yanchor='top'), + xaxis_title=_t("axis_metric", lang), + yaxis_title=_t("axis_value", lang), + barmode='group', template='plotly_white', + margin=dict(t=70, b=60, l=60, r=30), + paper_bgcolor='rgba(0,0,0,0)', + legend=dict(orientation='h', yanchor='top', y=-0.15, + xanchor='center', x=0.5), + ) + + # ── Figura 2 — radar (normalizado 0..1 onde 1 = melhor) ──────────────── + if len(archs) < 2 or not numeric_metrics: + radar_fig = _empty_figure(_t("msg_need_two_archs", lang), lang=lang) + return metric_fig, radar_fig + + # Normaliza: para métricas onde higher_is_better=True, usa v/max; + # para higher_is_better=False, usa 1 - v/max (inverte). + labels = [label for label, _, _ in numeric_metrics] + norm_matrix = [] + for _, col, higher_better in numeric_metrics: + vals = df_best[col].astype(float).to_numpy() + vmax = float(np.nanmax(vals)) if vals.size else 1.0 + vmax = vmax if vmax > 1e-12 else 1.0 + norm = (vals / vmax) if higher_better else (1.0 - vals / vmax) + norm = np.clip(norm, 0.0, 1.0) + norm_matrix.append(norm) + norm_matrix = np.array(norm_matrix).T # shape (n_arch, n_metrics) + + radar_fig = go.Figure() + for i, arch in enumerate(archs): + vals = list(norm_matrix[i]) + [norm_matrix[i][0]] + cats = labels + [labels[0]] + radar_fig.add_trace(go.Scatterpolar( + r=vals, theta=cats, fill='toself', + name=str(arch), opacity=0.55, + line=dict(color=colors[i], width=2.2), + marker=dict(size=6, color=colors[i]), + hovertemplate=f"{arch}
%{{theta}}: %{{r:.3f}}", + )) + radar_fig.update_layout( + polar=dict( + radialaxis=dict(visible=True, range=[0, 1], + tickfont=dict(size=9)), + angularaxis=dict(tickfont=dict(size=10, color=PALETTE['primary'])), + ), + title=dict(text=_t("cb_chart_perf_radar", lang), + font=dict(color=PALETTE['primary'], size=14), + x=0.5, xanchor='center', y=0.97, yanchor='top'), + template='plotly_white', + margin=dict(t=70, b=40, l=45, r=45), + paper_bgcolor='rgba(0,0,0,0)', + showlegend=True, + legend=dict(orientation='h', yanchor='top', y=-0.08, + xanchor='center', x=0.5), + ) + return metric_fig, radar_fig + + # ============================================================================= # CALLBACKS DE OTIMIZAÇÃO # ============================================================================= @@ -1223,12 +1575,15 @@ def update_training_metrics(n_clicks, _): State('opt-tobs-max', 'value'), State('opt-wj-min', 'value'), State('opt-wj-max', 'value'), + State('units-store', 'data'), + State('lang-selector', 'value'), prevent_initial_call=True, ) def start_optimization(n_clicks, t_max, x_min, cat_min, fouling_max, cp0_min, pop_size, n_gen, model_type, crossover_prob, mutation_prob, vazao_min, vazao_max, valve_min, valve_max, - tobs_min, tobs_max, wj_min, wj_max): + tobs_min, tobs_max, wj_min, wj_max, units_store, lang_in): + lang = get_lang(lang_in) global _optimization_status, _opt_queue with _opt_lock: if _optimization_status['running']: @@ -1244,13 +1599,40 @@ def start_optimization(n_clicks, t_max, x_min, cat_min, fouling_max, cp0_min, except queue.Empty: break + # ── Conversão display → canonical para todas as variáveis com unidade ──── + from core.units import ( + convert as _u_convert, + VAR_CATEGORY as _VC, + canonical_value_of as _cvof, + ) + + def _tc(var_id, value, fallback): + if value is None: + return fallback + cat = _VC.get(var_id) + if cat is None: + return float(value) + unit = (units_store or {}).get(var_id, _cvof(cat)) + conv = _u_convert(value, cat, unit, _cvof(cat)) + return float(conv) if conv is not None else float(value) + + t_max_c = _tc("t_max", t_max, 365.0) + fouling_max_c = _tc("fouling_max", fouling_max, 0.025) + cp0_min_c = _tc("cp0_min", cp0_min, 0.0) + vazao_min_c = _tc("vazao_min", vazao_min, 0.00050) + vazao_max_c = _tc("vazao_max", vazao_max, 0.00120) + tobs_min_c = _tc("tobs_min", tobs_min, 324.0) + tobs_max_c = _tc("tobs_max", tobs_max, 365.0) + wj_min_c = _tc("wj_min", wj_min, 0.00010) + wj_max_c = _tc("wj_max", wj_max, 0.00999) + xl_arr = np.array([ - float(vazao_min or 0.00050), 1090.0, 925.0, 342.0, 285.0, - float(tobs_min or 324.0), float(valve_min or 0.01), float(wj_min or 0.00010), + vazao_min_c, 1090.0, 925.0, 342.0, 285.0, + tobs_min_c, float(valve_min or 0.01), wj_min_c, ]) xu_arr = np.array([ - float(vazao_max or 0.00120), 1310.0, 1085.0, 358.0, 311.0, - float(tobs_max or 365.0), float(valve_max or 1.00), float(wj_max or 0.00999), + vazao_max_c, 1310.0, 1085.0, 358.0, 311.0, + tobs_max_c, float(valve_max or 1.00), wj_max_c, ]) for i in range(len(xl_arr)): if xl_arr[i] >= xu_arr[i]: @@ -1260,11 +1642,11 @@ def start_optimization(n_clicks, t_max, x_min, cat_min, fouling_max, cp0_min, thread = threading.Thread( target=_run_optimization_thread, - args=(float(t_max or 365), float(x_min or 30) / 100.0, - float(cat_min or 0.90), float(fouling_max or 0.025), - float(cp0_min or 0.0), int(pop_size or 80), int(n_gen or 40), + args=(t_max_c, float(x_min or 30) / 100.0, + float(cat_min or 0.90), fouling_max_c, + cp0_min_c, int(pop_size or 80), int(n_gen or 40), model_type, float(crossover_prob or 0.9), float(mutation_prob or 0.1), - xl_arr, xu_arr), + xl_arr, xu_arr, lang), ) thread.daemon = True thread.start() @@ -1276,18 +1658,26 @@ def start_optimization(n_clicks, t_max, x_min, cat_min, fouling_max, cp0_min, Output('opt-progress-bar', 'value'), Output('opt-progress-text', 'children'), Input('opt-interval', 'n_intervals'), + Input('lang-selector', 'value'), prevent_initial_call=True, ) -def update_optimization_progress(_): +def update_optimization_progress(_, lang_in): global _optimization_status + lang = get_lang(lang_in) while not _opt_queue.empty(): msg = _opt_queue.get_nowait() if msg[0] == 'progress': _, gen, feasible = msg _optimization_status['progress'].update(gen=gen, feasible=feasible) elif msg[0] == 'result': - _, df, figs, metrics = msg - _optimization_status.update(result_df=df, figs=figs, metrics=metrics) + # Compatível com formato antigo (4 campos) e novo (5 campos com lang) + if len(msg) >= 5: + _, df, figs, metrics, figs_lang = msg + else: + _, df, figs, metrics = msg + figs_lang = DEFAULT_LANG + _optimization_status.update(result_df=df, figs=figs, metrics=metrics, + figs_lang=figs_lang) elif msg[0] == 'error': _, err = msg _optimization_status['error'] = err @@ -1297,15 +1687,15 @@ def update_optimization_progress(_): elapsed = (_optimization_status.get('metrics') or {}).get('elapsed_s', 0) return ( html.Div([html.Span("✓ ", className="text-success"), - html.Span(f"Otimização concluída — {n_sol} soluções em {elapsed:.1f}s")]), + html.Span(_t("opt_status_completed", lang).format(n=n_sol, elapsed=elapsed))]), 100, - f"Geração final: {_optimization_status['progress']['gen']}", + _t("opt_generation_final", lang).format(gen=_optimization_status['progress']['gen']), ) elif not _optimization_status['running'] and _optimization_status['error']: return ( html.Div([html.Span("✗ ", className="text-danger"), - html.Span(f"Erro: {_optimization_status['error']}")]), - 0, "Falha", + html.Span(_t("opt_error_prefix", lang).format(err=_optimization_status['error']))]), + 0, _t("opt_status_failure", lang), ) else: gen = _optimization_status['progress']['gen'] @@ -1314,9 +1704,10 @@ def update_optimization_progress(_): feasi = _optimization_status['progress']['feasible'] return ( html.Div([html.Span("● ", className="text-warning pulse"), - html.Span(f"Otimizando... Geração {gen}/{total} | Factíveis: {feasi}")]), + html.Span(_t("opt_status_optimizing", lang).format( + gen=gen, total=total, feasible=feasi))]), pct, - f"Geração {gen} / {total}", + _t("opt_generation_progress", lang).format(gen=gen, total=total), ) @@ -1335,32 +1726,48 @@ def update_optimization_progress(_): Output('opt-hypervolume-graph', 'figure'), Output('opt-decision-space-graph','figure'), Input('opt-interval', 'n_intervals'), + Input('lang-selector', 'value'), prevent_initial_call=True, ) -def update_optimization_results(_): +def update_optimization_results(_, lang_in): global _optimization_status + lang = get_lang(lang_in) if (not _optimization_status['running'] and _optimization_status['result_df'] is not None and _optimization_status['figs'] is not None): df = _optimization_status['result_df'] figs = _optimization_status['figs'] metrics = _optimization_status.get('metrics', {}) or {} - - kpi_children = _build_kpi_summary(metrics, df) + figs_lang = _optimization_status.get('figs_lang') + + # Se o idioma da UI mudou após a otimização, reconstrói as figuras + # traduzidas a partir dos dados armazenados (sem re-executar NSGA-II). + if figs_lang != lang: + try: + history = (metrics.get('history') or []) + constraints = metrics.get('constraints') + figs = rebuild_optimization_figs(df, history, constraints, lang=lang) + _optimization_status['figs'] = figs + _optimization_status['figs_lang'] = lang + except Exception: + # Em caso de falha, mantém figuras anteriores (silenciosamente) + pass + + kpi_children = _build_kpi_summary(metrics, df, lang=lang) return ( df.to_dict('records'), - figs.get('pareto', _empty_figure("Sem Pareto")), - figs.get('parcoords', _empty_figure("Sem parallel coords")), - figs.get('scatter3d', _empty_figure("Sem 3D")), - figs.get('convergence', _empty_figure("Sem convergência")), - figs.get('heatmap', _empty_figure("Sem heatmap")), - figs.get('violin', _empty_figure("Sem distribuição")), + figs.get('pareto', _empty_figure(_t("fig_empty_pareto", lang), lang=lang)), + figs.get('parcoords', _empty_figure(_t("fig_empty_parcoords", lang), lang=lang)), + figs.get('scatter3d', _empty_figure(_t("fig_empty_3d", lang), lang=lang)), + figs.get('convergence', _empty_figure(_t("fig_empty_convergence", lang), lang=lang)), + figs.get('heatmap', _empty_figure(_t("fig_empty_heatmap", lang), lang=lang)), + figs.get('violin', _empty_figure(_t("fig_empty_distribution", lang), lang=lang)), kpi_children, - figs.get('topsis', _empty_figure("Sem TOPSIS")), - figs.get('clusters', _empty_figure("Sem clusters")), - figs.get('hypervolume', _empty_figure("Sem hypervolume")), - figs.get('decision_space', _empty_figure("Sem espaço de decisão")), + figs.get('topsis', _empty_figure(_t("fig_empty_topsis", lang), lang=lang)), + figs.get('clusters', _empty_figure(_t("fig_empty_clusters", lang), lang=lang)), + figs.get('hypervolume', _empty_figure(_t("fig_empty_hypervolume", lang), lang=lang)), + figs.get('decision_space', _empty_figure(_t("fig_empty_decision_space", lang), lang=lang)), ) return (no_update,) * 12 @@ -1378,9 +1785,9 @@ def export_optimization_csv(n_clicks): return no_update -def _build_kpi_summary(metrics: dict, df) -> list: +def _build_kpi_summary(metrics: dict, df, lang: str = DEFAULT_LANG) -> list: if not metrics or metrics.get('n_feasible', 0) == 0: - return [html.P("Nenhuma solução factível encontrada. Relaxe as restrições.", + return [html.P(_t("msg_no_feasible", lang), className="text-warning text-center")] n = metrics['n_feasible'] @@ -1413,31 +1820,31 @@ def _kpi(title, value, color, icon): best_detail = "" if best_sol: best_detail = ( - f"Vazão={best_sol.get('vazao_feed', 0):.4g} m³/s | " - f"T_obs={best_sol.get('T_obs (K)', 0):.1f} K | " - f"Válvula={best_sol.get('valve_pos', 0):.2f} | " - f"T0={best_sol.get('T0 predita (K)', 0):.1f} K" + f"{_t('label_flow', lang)}={best_sol.get('vazao_feed', 0):.4g} m³/s | " + f"{_t('label_tobs', lang)}={best_sol.get('T_obs (K)', 0):.1f} K | " + f"{_t('label_valve', lang)}={best_sol.get('valve_pos', 0):.2f} | " + f"{_t('label_t0', lang)}={best_sol.get('T0 predita (K)', 0):.1f} K" ) return [ dbc.Row([ - _kpi("Soluções Factíveis", str(n), PALETTE['primary'], "🎯"), - _kpi("Melhor X", f"{best_x:.2f}%", PALETTE['success'], "📈"), - _kpi("Min. Fouling", f"{min_f:.2e} m", PALETTE['info'], "🛡️"), - _kpi("Melhor Cat.Act.", f"{best_c:.4f}", PALETTE['warning'], "⚗️"), - _kpi("Melhor CP0", f"{best_cp0:.1f}", PALETTE['secondary'],"🧪"), - _kpi("Tempo", f"{elapsed:.1f}s", PALETTE['muted'], "⏱️"), + _kpi(_t("kpi_feasible_solutions", lang), str(n), PALETTE['primary'], "🎯"), + _kpi(_t("kpi_best_x", lang), f"{best_x:.2f}%", PALETTE['success'], "📈"), + _kpi(_t("kpi_min_fouling", lang), f"{min_f:.2e} m", PALETTE['info'], "🛡️"), + _kpi(_t("kpi_best_cat_act", lang), f"{best_c:.4f}", PALETTE['warning'], "⚗️"), + _kpi(_t("kpi_best_cp0", lang), f"{best_cp0:.1f}", PALETTE['secondary'],"🧪"), + _kpi(_t("kpi_time", lang), f"{elapsed:.1f}s", PALETTE['muted'], "⏱️"), ], className="g-2 mb-2"), dbc.Row([ - _kpi("Média X", f"{avg_x:.2f}%", PALETTE['success'], "📊"), - _kpi("Média Fouling", f"{avg_f:.2e}", PALETTE['info'], "📉"), - _kpi("Média T0", f"{avg_t0:.1f} K", PALETTE['danger'], "🌡️"), - _kpi("Hypervolume", f"{hv:.4f}", PALETTE['primary'], "📐"), - _kpi("Spread", f"{spread:.3f}", PALETTE['warning'], "↔️"), + _kpi(_t("kpi_avg_x", lang), f"{avg_x:.2f}%", PALETTE['success'], "📊"), + _kpi(_t("kpi_avg_fouling", lang), f"{avg_f:.2e}", PALETTE['info'], "📉"), + _kpi(_t("kpi_avg_t0", lang), f"{avg_t0:.1f} K", PALETTE['danger'], "🌡️"), + _kpi(_t("kpi_hypervolume", lang), f"{hv:.4f}", PALETTE['primary'], "📐"), + _kpi(_t("kpi_spread", lang), f"{spread:.3f}", PALETTE['warning'], "↔️"), dbc.Col(md=2), ], className="g-2 mb-2"), html.Div([ - html.Span("🏆 Melhor solução (maior X): ", className="fw-bold small"), + html.Span(_t("msg_best_solution", lang), className="fw-bold small"), html.Span(best_detail, className="small text-muted"), ], className="text-center mt-1 p-2", style={"backgroundColor": "#E8F8F0", "borderRadius": "6px", @@ -1459,12 +1866,14 @@ def _kpi(title, value, color, icon): Output('analytics-dataset-kpis', 'children'), Output('analytics-stats-table', 'children'), Input('btn-load-analytics', 'n_clicks'), + Input('lang-selector', 'value'), prevent_initial_call=True, ) -def load_analytics(n_clicks): +def load_analytics(n_clicks, lang_in): """ Carrega estatísticas do dataset e métricas das arquiteturas de surrogate. """ + lang = get_lang(lang_in) # ── Carrega data_meta.json ──────────────────────────────────────────────── meta_path = os.path.join(_SURROGATE_DIR, 'data_meta.json') meta = {} @@ -1481,6 +1890,10 @@ def load_analytics(n_clicks): ] tgt_names = ['CA0', 'CB0', 'CP0', 'CS0', 'T0', 'X', 'fouling', 'cat_activity'] + # Rótulos localizados (para exibição nos gráficos/tabela). + feat_labels = [_feat_label(f, lang) for f in feat_names] + tgt_labels = [_tgt_label(t, lang) for t in tgt_names] + feat_mean = np.array(meta.get('scaler_X_mean', [0] * 12)) feat_std = np.array(meta.get('scaler_X_std', [1] * 12)) tgt_mean = np.array(meta.get('scaler_y_mean', [0] * 8)) @@ -1507,37 +1920,38 @@ def _ds_kpi(title, value, color, icon): ) dataset_kpis = dbc.Row([ - _ds_kpi("Total amostras", str(n_samples) if n_samples else "—", PALETTE['primary'], "📦"), - _ds_kpi("Treino", str(n_train) if n_train else "—", PALETTE['success'], "🎓"), - _ds_kpi("Validação", str(n_val) if n_val else "—", PALETTE['warning'], "🔍"), - _ds_kpi("Teste", str(n_test) if n_test else "—", PALETTE['danger'], "🧪"), - _ds_kpi("Features", "12", PALETTE['info'], "📥"), - _ds_kpi("Targets", "8", PALETTE['secondary'], "📤"), + _ds_kpi(_t("kpi_total_samples", lang), str(n_samples) if n_samples else "—", PALETTE['primary'], "📦"), + _ds_kpi(_t("kpi_train", lang), str(n_train) if n_train else "—", PALETTE['success'], "🎓"), + _ds_kpi(_t("kpi_validation", lang), str(n_val) if n_val else "—", PALETTE['warning'], "🔍"), + _ds_kpi(_t("kpi_test", lang), str(n_test) if n_test else "—", PALETTE['danger'], "🧪"), + _ds_kpi(_t("kpi_features", lang), "12", PALETTE['info'], "📥"), + _ds_kpi(_t("kpi_targets", lang), "8", PALETTE['secondary'], "📤"), ], className="g-2 mb-3") # ── Distribuição das features (boxplot normalizado) ────────────────────── # Simula 200 amostras a partir de mean ± std (distribuição aprox. normal) rng = np.random.default_rng(seed=0) n_sim = 300 - cont_names = feat_names[:8] # apenas features contínuas - cont_mean = feat_mean[:8] - cont_std = feat_std[:8] + cont_names = feat_names[:8] # nomes canônicos (p/ lógica) + cont_labels = feat_labels[:8] # rótulos localizados (p/ UI) + cont_mean = feat_mean[:8] + cont_std = feat_std[:8] feat_dist_fig = go.Figure() colors_feat = px.colors.qualitative.Vivid - for i, fname in enumerate(cont_names): + for i, flabel in enumerate(cont_labels): samples = rng.normal(0, 1, n_sim) # z-scores feat_dist_fig.add_trace(go.Box( - y=samples, name=fname, + y=samples, name=flabel, boxpoints='outliers', marker=dict(size=3, color=colors_feat[i % len(colors_feat)]), line=dict(color=colors_feat[i % len(colors_feat)]), opacity=0.8, )) feat_dist_fig.update_layout( - title=dict(text='Distribuição das Features (z-score)', + title=dict(text=_t("cb_chart_feat_dist", lang), font=dict(color=PALETTE['primary'], size=14), x=0.5), - yaxis_title='Z-score (σ)', + yaxis_title=_t("axis_z_score", lang), template='plotly_white', margin=dict(t=55, b=60, l=55, r=20), paper_bgcolor='rgba(0,0,0,0)', @@ -1549,19 +1963,19 @@ def _ds_kpi(title, value, color, icon): # ── Distribuição dos targets (violin) ──────────────────────────────────── tgt_dist_fig = go.Figure() colors_tgt = px.colors.qualitative.Safe - for i, tname in enumerate(tgt_names): + for i, tlabel in enumerate(tgt_labels): samples = rng.normal(0, 1, n_sim) tgt_dist_fig.add_trace(go.Violin( - y=samples, name=tname, + y=samples, name=tlabel, box_visible=True, meanline_visible=True, fillcolor=colors_tgt[i % len(colors_tgt)], opacity=0.65, line_color=colors_tgt[i % len(colors_tgt)], )) tgt_dist_fig.update_layout( - title=dict(text='Distribuição dos Targets (z-score)', + title=dict(text=_t("cb_chart_target_dist", lang), font=dict(color=PALETTE['primary'], size=14), x=0.5), - yaxis_title='Z-score (σ)', + yaxis_title=_t("axis_z_score", lang), template='plotly_white', margin=dict(t=55, b=60, l=55, r=20), paper_bgcolor='rgba(0,0,0,0)', @@ -1585,16 +1999,18 @@ def _ds_kpi(title, value, color, icon): corr_fig = go.Figure(go.Heatmap( z=corr_mat, - x=tgt_names, y=cont_names[:8], + x=tgt_labels, y=cont_labels, colorscale='RdBu', zmin=-1, zmax=1, colorbar=dict(title='ρ', thickness=14), - hovertemplate="Feature: %{y}
Target: %{x}
ρ=%{z:.2f}", + hovertemplate=(f"{_t('col_feature', lang)}: %{{y}}
" + f"{_t('col_target', lang)}: %{{x}}
" + "ρ=%{z:.2f}"), text=[[f"{v:.2f}" for v in row] for row in corr_mat], texttemplate="%{text}", textfont=dict(size=9), )) corr_fig.update_layout( - title=dict(text='Matriz de Correlação (estimativa de domain knowledge)', + title=dict(text=_t("cb_chart_corr", lang), font=dict(color=PALETTE['primary'], size=14), x=0.5), template='plotly_white', margin=dict(t=55, b=55, l=100, r=30), @@ -1603,43 +2019,20 @@ def _ds_kpi(title, value, color, icon): ) # ── Métricas por arquitetura (training_results.csv) ────────────────────── + # Reutiliza exatamente o mesmo construtor que a aba Training para + # garantir consistência visual e correção de bugs num único lugar. results_csv = os.path.join(_SURROGATE_DIR, 'training_results.csv') - metrics_fig = _empty_figure("Treine um modelo para ver métricas") - arch_radar_fig = _empty_figure("Treine um modelo para ver radar") - + metrics_fig = _empty_figure(_t("msg_train_for_metrics", lang), lang=lang) + arch_radar_fig = _empty_figure(_t("msg_need_two_archs", lang), lang=lang) if os.path.exists(results_csv): try: df_res = pd.read_csv(results_csv) - arch_col = next((c for c in df_res.columns - if c.lower() in ('arch', 'architecture', 'model')), None) - r2_col = next((c for c in df_res.columns if 'r2' in c.lower()), None) - mae_col = next((c for c in df_res.columns if 'mae' in c.lower()), None) - - if arch_col and r2_col: - archs = df_res[arch_col].unique().tolist() - colors = [PALETTE['primary'], PALETTE['success'], PALETTE['danger']] - metrics_fig = go.Figure() - for i, arch in enumerate(archs): - sub = df_res[df_res[arch_col] == arch] - target_col = next((c for c in df_res.columns - if 'target' in c.lower()), None) - xs = sub[target_col].tolist() if target_col else [arch] - ys = sub[r2_col].tolist() - metrics_fig.add_trace(go.Bar( - x=xs, y=ys, name=arch, - marker_color=colors[i % len(colors)], - )) - metrics_fig.update_layout( - title=dict(text='R² por Arquitetura', - font=dict(color=PALETTE['primary'], size=14), x=0.5), - xaxis_title='', yaxis_title='R²', - barmode='group', template='plotly_white', - margin=dict(t=55, b=45, l=55, r=30), - legend=dict(orientation='h', yanchor='bottom', y=1.02, - xanchor='center', x=0.5), - ) - except Exception: - pass + metrics_fig, arch_radar_fig = _build_training_metric_figures(df_res, lang=lang) + except Exception as e: # noqa: BLE001 + metrics_fig = _empty_figure( + _t("msg_error_reading_results", lang).format(err=e), lang=lang) + arch_radar_fig = _empty_figure( + _t("msg_error_reading_results", lang).format(err=e), lang=lang) # ── PCA scree ───────────────────────────────────────────────────────────── # Variância explicada estimada para 12 features (valores típicos de dados CSTR) @@ -1650,13 +2043,13 @@ def _ds_kpi(title, value, color, icon): pca_fig.add_trace(go.Bar( x=[f"PC{i+1}" for i in range(len(explained_var))], y=explained_var * 100, - name='Variância individual', + name=_t("legend_variance_individual", lang), marker_color=PALETTE['secondary'], )) pca_fig.add_trace(go.Scatter( x=[f"PC{i+1}" for i in range(len(cumvar))], y=cumvar * 100, - mode='lines+markers', name='Variância acumulada', + mode='lines+markers', name=_t("legend_variance_cumulative", lang), line=dict(color=PALETTE['danger'], width=2.5), marker=dict(size=6), yaxis='y', )) @@ -1664,10 +2057,10 @@ def _ds_kpi(title, value, color, icon): annotation_text='90%', annotation_position='right', annotation_font=dict(color=PALETTE['success'], size=9)) pca_fig.update_layout( - title=dict(text='Variância Explicada — PCA das Features', + title=dict(text=_t("cb_chart_pca", lang), font=dict(color=PALETTE['primary'], size=14), x=0.5), - xaxis_title='Componente Principal', - yaxis_title='Variância Explicada (%)', + xaxis_title=_t("axis_pca_component", lang), + yaxis_title=_t("axis_explained_var", lang), template='plotly_white', margin=dict(t=55, b=45, l=60, r=30), paper_bgcolor='rgba(0,0,0,0)', @@ -1680,19 +2073,19 @@ def _ds_kpi(title, value, color, icon): error_fig = go.Figure() tgt_errors_std = [12.5, 11.8, 8.2, 7.9, 0.42, 0.018, 2.1e-4, 4.2e-5] tgt_units = ['mol/m³', 'mol/m³', 'mol/m³', 'mol/m³', 'K', '—', 'm', '—'] - for i, (tname, err_std, unit) in enumerate(zip(tgt_names, tgt_errors_std, tgt_units)): + for i, (tlabel, err_std, unit) in enumerate(zip(tgt_labels, tgt_errors_std, tgt_units)): samples = rng.normal(0, err_std, 500) error_fig.add_trace(go.Violin( - y=samples, name=f"{tname} ({unit})", + y=samples, name=f"{tlabel} ({unit})", box_visible=True, meanline_visible=True, fillcolor=colors_tgt[i % len(colors_tgt)], opacity=0.65, line_color=colors_tgt[i % len(colors_tgt)], )) error_fig.update_layout( - title=dict(text='Distribuição do Erro de Predição por Target', + title=dict(text=_t("cb_chart_error_dist", lang), font=dict(color=PALETTE['primary'], size=14), x=0.5), - yaxis_title='Erro (unidade do target)', + yaxis_title=_t("axis_error_unit", lang), template='plotly_white', margin=dict(t=55, b=60, l=60, r=20), paper_bgcolor='rgba(0,0,0,0)', @@ -1701,20 +2094,28 @@ def _ds_kpi(title, value, color, icon): ) # ── Tabela de estatísticas ──────────────────────────────────────────────── + col_feature = _t("col_feature", lang) + col_mean = _t("col_mean", lang) + col_std = _t("col_std", lang) + col_min = _t("col_min_est", lang) + col_max = _t("col_max_est", lang) + col_type = _t("col_type", lang) + type_cont = _t("type_continuous", lang) + type_flag = _t("type_flag", lang) stats_rows = [] - for i, fname in enumerate(cont_names): + for i, flabel in enumerate(cont_labels): stats_rows.append({ - 'Feature': fname, - 'Média': f"{cont_mean[i]:.4g}", - 'Desvio Padrão': f"{cont_std[i]:.4g}", - 'Min estimado': f"{cont_mean[i] - 3*cont_std[i]:.4g}", - 'Max estimado': f"{cont_mean[i] + 3*cont_std[i]:.4g}", - 'Tipo': 'Contínua', + col_feature: flabel, + col_mean: f"{cont_mean[i]:.4g}", + col_std: f"{cont_std[i]:.4g}", + col_min: f"{cont_mean[i] - 3*cont_std[i]:.4g}", + col_max: f"{cont_mean[i] + 3*cont_std[i]:.4g}", + col_type: type_cont, }) - for fname in feat_names[8:]: + for flabel in feat_labels[8:]: stats_rows.append({ - 'Feature': fname, 'Média': '0/1', 'Desvio Padrão': '—', - 'Min estimado': '0', 'Max estimado': '1', 'Tipo': 'Flag', + col_feature: flabel, col_mean: '0/1', col_std: '—', + col_min: '0', col_max: '1', col_type: type_flag, }) stats_table = dash_table.DataTable( @@ -1727,10 +2128,344 @@ def _ds_kpi(title, value, color, icon): 'color': '#5913B8', 'border': '1px solid #D4C5F0'}, style_data={'border': '1px solid #EEE'}, style_data_conditional=[ - {'if': {'filter_query': "{Tipo} = 'Flag'"}, + {'if': {'filter_query': f"{{{col_type}}} = '{type_flag}'"}, 'backgroundColor': '#FFF9E6', 'color': '#7B6B00'}, ], ) return (feat_dist_fig, tgt_dist_fig, corr_fig, metrics_fig, arch_radar_fig, pca_fig, error_fig, dataset_kpis, stats_table) + + +# ============================================================================= +# GERENCIADOR DE ARQUIVOS DE DADOS (ABA ANALYTICS) +# ============================================================================= +from services.data_file_service import get_data_file_service + + +# ── helpers locais ────────────────────────────────────────────────────────── +def _dfm_kpi_card(icon, title, value, color="primary"): + return dbc.Col( + dbc.Card( + dbc.CardBody([ + html.Div([ + html.Span(icon + " ", style={"fontSize": "1.1rem"}), + html.Span(title, className="text-muted small fw-semibold"), + ]), + html.H4(str(value), className=f"fw-bold text-{color} mb-0 mt-1"), + ], className="p-3"), + className=f"shadow-sm h-100 kpi-card kpi-card-{color}", + ), + md=3, + ) + + +def _dfm_build_kpis(summary: dict, lang: str = DEFAULT_LANG): + by_kind = summary.get("by_kind", {}) + return dbc.Row([ + _dfm_kpi_card("📦", _t("dfm_kpi_files", lang), + summary.get("n_files", 0), "primary"), + _dfm_kpi_card("💾", _t("dfm_kpi_size", lang), + summary.get("total_human", "0 B"), "info"), + _dfm_kpi_card("📏", _t("dfm_kpi_rows", lang), + f"{summary.get('total_rows', 0):,}".replace(",", "."), + "success"), + _dfm_kpi_card( + "🧩", _t("dfm_kpi_features_targets", lang), + f"{by_kind.get('features', 0)} / {by_kind.get('targets', 0)}", + "warning", + ), + ], className="g-2") + + +def _dfm_apply_filters(files: list[dict], kind: str, source: str, search: str) -> list[dict]: + out = files + if kind and kind != "ALL": + out = [f for f in out if f.get("kind") == kind] + if source and source != "ALL": + out = [f for f in out if f.get("source") == source] + if search: + q = search.strip().lower() + if q: + out = [f for f in out + if q in f.get("filename", "").lower() + or q in f.get("rel_path", "").lower()] + return out + + +# ────────────────────────────────────────────────────────────────────────────── +# CALLBACK: refresh — popula store + tabela + KPIs +# ────────────────────────────────────────────────────────────────────────────── +@callback( + Output("dfm-files-store", "data"), + Output("dfm-file-table", "data"), + Output("dfm-kpis", "children"), + Output("dfm-file-table", "selected_rows"), + Output("dfm-refresh-interval", "disabled"), + Input("dfm-btn-refresh", "n_clicks"), + Input("dfm-refresh-interval", "n_intervals"), + Input("dfm-filter-kind", "value"), + Input("dfm-filter-source", "value"), + Input("dfm-search", "value"), + Input("lang-selector", "value"), + State("dfm-file-table", "selected_rows"), + prevent_initial_call=False, +) +def dfm_refresh(n_refresh, n_tick, kind, source, search, lang_in, current_selection): + """ + Recarrega a lista de arquivos (ou apenas reaplica filtros sobre o store). + + Distingue recarga "hard" (botão / intervalo) de "soft" (mudança de filtro) + para não tocar no disco sem necessidade. + """ + lang = get_lang(lang_in) + trig = (ctx.triggered_id or "") + + svc = get_data_file_service() + + # Decide se precisa rescanear o disco + hard_refresh_triggers = {"dfm-btn-refresh", "dfm-refresh-interval"} + if trig in hard_refresh_triggers or trig == "": + try: + files = [f.to_dict() for f in svc.discover()] + except Exception as e: # noqa: BLE001 + log.exception("Falha em discover()") + files = [] + # Show a friendly error in the KPI bar + err_kpis = dbc.Alert( + _t("dfm_discover_failed", lang).format( + err=f"{type(e).__name__}: {e}"), + color="danger", className="small mb-0", + ) + return [], [], err_kpis, [], False + else: + # Soft refresh — reaproveita o que está no store (lê via State ausente → + # fallback: descobre de novo, que é barato) + try: + files = [f.to_dict() for f in svc.discover()] + except Exception: + files = [] + + # Aplica filtros + filtered = _dfm_apply_filters(files, kind, source, search) + + # KPIs calculam sobre a lista COMPLETA (visão global), não sobre filtros. + total_bytes = sum(int(f.get("size_bytes", 0)) for f in files) + total_rows = sum(max(0, int(f.get("rows", 0))) for f in files) + by_kind: dict[str, int] = {} + for f in files: + k = f.get("kind", "other") + by_kind[k] = by_kind.get(k, 0) + 1 + + def _human_bytes(n: int) -> str: + units = ["B", "KB", "MB", "GB", "TB"] + s = float(n) + for u in units: + if s < 1024 or u == units[-1]: + return f"{s:.1f} {u}" if u != "B" else f"{int(s)} B" + s /= 1024 + return f"{s:.1f} TB" + + kpis = _dfm_build_kpis({ + "n_files": len(files), + "total_human": _human_bytes(total_bytes), + "total_rows": total_rows, + "by_kind": by_kind, + }, lang=lang) + + # Quando lista muda, limpamos seleção para evitar índice inválido + new_selection = [] + + # Ativa auto-refresh assim que lista é populada + interval_disabled = len(files) == 0 + + return files, filtered, kpis, new_selection, interval_disabled + + +# ────────────────────────────────────────────────────────────────────────────── +# CALLBACK: selection → preview + habilita botão delete +# ────────────────────────────────────────────────────────────────────────────── +@callback( + Output("dfm-preview-table", "data"), + Output("dfm-preview-table", "columns"), + Output("dfm-preview-name", "children"), + Output("dfm-preview-stats", "children"), + Output("dfm-btn-delete", "disabled"), + Output("dfm-selected-path-store", "data"), + Input("dfm-file-table", "selected_rows"), + Input("lang-selector", "value"), + State("dfm-file-table", "data"), + prevent_initial_call=False, +) +def dfm_on_select(selected_rows, lang_in, table_data): + """Carrega preview do arquivo selecionado via DataFileService.read_preview.""" + lang = get_lang(lang_in) + if not selected_rows or not table_data: + return [], [], _t("dfm_preview_placeholder", lang), "", True, None + + try: + idx = selected_rows[0] + row = table_data[idx] + except (IndexError, TypeError, KeyError): + return [], [], _t("dfm_preview_invalid", lang), "", True, None + + path = row.get("path") + if not path: + return [], [], _t("dfm_preview_no_path", lang), "", True, None + + svc = get_data_file_service() + try: + records, cols, total = svc.read_preview(path, n_rows=200) + except Exception as e: # noqa: BLE001 + log.exception("read_preview falhou para %s", path) + err_msg = html.Span( + [html.I(className="me-1"), + _t("dfm_preview_read_err", lang).format( + err=f"{type(e).__name__}: {e}")], + className="text-danger", + ) + return [], [], row.get("filename", ""), err_msg, True, path + + columns = [{"name": c, "id": c} for c in cols] + + # Cabeçalho amigável + name_label = html.Span([ + html.Span(row.get("kind_icon", "📄"), className="me-1"), + html.Code(row.get("filename", ""), className="me-2"), + html.Span(f"({row.get('kind_label', '—')})", + className="text-muted small"), + ]) + + stats_label = html.Span( + _t("dfm_preview_stats", lang).format( + shown=len(records), total=total, + cols=len(cols), size=row.get('size_human', '') + ).replace(",", "."), + className="text-muted small", + ) + + return records, columns, name_label, stats_label, False, path + + +# ────────────────────────────────────────────────────────────────────────────── +# CALLBACK: botão delete → abre confirm +# ────────────────────────────────────────────────────────────────────────────── +@callback( + Output("dfm-confirm-delete", "displayed"), + Output("dfm-confirm-delete", "message"), + Input("dfm-btn-delete", "n_clicks"), + State("dfm-selected-path-store", "data"), + State("dfm-file-table", "selected_rows"), + State("dfm-file-table", "data"), + State("lang-selector", "value"), + prevent_initial_call=True, +) +def dfm_ask_delete(n_clicks, path, selected_rows, table_data, lang_in): + if not n_clicks or not path: + raise PreventUpdate + lang = get_lang(lang_in) + try: + row = table_data[selected_rows[0]] + filename = row.get("filename", os.path.basename(path)) + kind = row.get("kind_label", "—") + except Exception: + filename = os.path.basename(path) + kind = "—" + msg = _t("dfm_confirm_delete", lang).format( + filename=filename, kind=kind, path=path) + return True, msg + + +# ────────────────────────────────────────────────────────────────────────────── +# CALLBACK: confirmação OK → executa delete + feedback + força refresh +# ────────────────────────────────────────────────────────────────────────────── +@callback( + Output("dfm-action-feedback", "children"), + Output("dfm-btn-refresh", "n_clicks"), + Input("dfm-confirm-delete", "submit_n_clicks"), + State("dfm-selected-path-store", "data"), + State("dfm-btn-refresh", "n_clicks"), + prevent_initial_call=True, +) +def dfm_confirm_delete(submit_n, path, current_refresh_clicks): + if not submit_n or not path: + raise PreventUpdate + + svc = get_data_file_service() + result = svc.delete(path) + + color = "success" if result.get("ok") else "danger" + icon = "✓" if result.get("ok") else "✗" + body = dbc.Alert( + [html.Strong(f"{icon} "), + result.get("message", ""), + html.Br() if result.get("path") else "", + html.Small(result.get("path", ""), className="text-muted") if result.get("path") else ""], + color=color, className="py-2 small mb-0", + dismissable=True, + ) + + # Força refresh incrementando n_clicks do botão (triggera dfm_refresh) + new_clicks = (current_refresh_clicks or 0) + 1 + return body, new_clicks + + +# ────────────────────────────────────────────────────────────────────────────── +# CALLBACK: upload → salva via serviço, mostra feedback, força refresh +# ────────────────────────────────────────────────────────────────────────────── +@callback( + Output("dfm-upload-feedback", "children"), + Output("dfm-btn-refresh", "n_clicks", allow_duplicate=True), + Input("dfm-upload", "contents"), + State("dfm-upload", "filename"), + State("dfm-upload", "last_modified"), + State("dfm-btn-refresh", "n_clicks"), + State("lang-selector", "value"), + prevent_initial_call=True, +) +def dfm_on_upload(contents_list, filenames, last_mod, current_refresh_clicks, lang_in): + if not contents_list: + raise PreventUpdate + lang = get_lang(lang_in) + + # dcc.Upload devolve lista OU item único conforme `multiple` + if isinstance(contents_list, str): + contents_list = [contents_list] + filenames = [filenames] if isinstance(filenames, str) else filenames + + svc = get_data_file_service() + results = [] + for content, name in zip(contents_list, filenames or []): + res = svc.save_upload(content or "", name or "unnamed.csv", overwrite=False) + results.append((name, res)) + + ok_count = sum(1 for _, r in results if r.get("ok")) + fail_count = len(results) - ok_count + + no_msg = _t("dfm_upload_no_message", lang) + items = [] + for orig_name, r in results: + ok = r.get("ok") + icon = "✅" if ok else "⚠️" + color = "text-success" if ok else "text-danger" + items.append(html.Li([ + html.Span(icon + " ", className=color), + html.Code(orig_name or "unnamed"), + html.Span(" → ", className="text-muted"), + html.Span(r.get("message", no_msg), + className=color + " small"), + ])) + + alert_color = ( + "success" if fail_count == 0 + else ("warning" if ok_count > 0 else "danger") + ) + feedback = dbc.Alert([ + html.Strong(_t("dfm_upload_summary", lang).format( + ok=ok_count, fail=fail_count)), + html.Ul(items, className="mb-0 mt-1 small"), + ], color=alert_color, dismissable=True, className="py-2 mb-0") + + # Força refresh para exibir os novos arquivos + new_clicks = (current_refresh_clicks or 0) + 1 + return feedback, new_clicks diff --git a/CSTRChemIA/apps/MAIN_init.py b/CSTRChemIA/apps/MAIN_init.py index 738ff6d..258eaeb 100644 --- a/CSTRChemIA/apps/MAIN_init.py +++ b/CSTRChemIA/apps/MAIN_init.py @@ -20,14 +20,25 @@ from main import app from apps.MAIN_styles_dict import * # noqa: F401,F403 from config import PORT +from core.i18n import ( + DEFAULT_LANG, + LANGUAGES, + t as _t, +) # ============================== # CONSTANTES # ============================== -DEFAULT_IP = '0.0.0.0' -BASE_URL = f'http://{DEFAULT_IP}:{PORT}/' -APP_NAME = "CSTR Simulator & Optimizer" +# Bind em 0.0.0.0 permite acessar de outras máquinas na rede, mas +# navegadores não conseguem abrir `http://0.0.0.0` (ERR_ADDRESS_INVALID no +# Windows/Chrome). Usamos 127.0.0.1 para a URL que abre no browser. +BIND_HOST = '0.0.0.0' +BROWSE_HOST = '127.0.0.1' +BASE_URL = f'http://{BROWSE_HOST}:{PORT}/' +APP_NAME = "CSTRChemIA - CSTR Simulator & Optimizer" APP_VERSION = "v1.0" +# Alias mantido para retrocompat com código que importa DEFAULT_IP. +DEFAULT_IP = BIND_HOST # ============================== @@ -41,43 +52,113 @@ def open_browser(): def run_chemsimia(): """ Inicia o servidor Dash. Em sistemas não-Linux, abre automaticamente - o navegador após 1 segundo. + o navegador após 1 segundo (em http://127.0.0.1:PORT). + + O servidor escuta em 0.0.0.0 para permitir acesso remoto. """ if platform.system() != "Linux": Timer(1, open_browser).start() - app.run(host=DEFAULT_IP, port=PORT, debug=False) + app.run(host=BIND_HOST, port=PORT, debug=False) # ============================== # COMPONENTES DO HEADER # ============================== +def _build_language_selector(): + """ + Dropdown compacto de seleção de idioma — canto direito do header. + + Persistência em ``sessionStorage`` via ``persistence_type='session'`` mantém + o idioma escolhido entre trocas de aba e recargas da página. + """ + return html.Div( + className="cstr-lang-selector", + style={ + "display": "flex", + "alignItems": "center", + "gap": "8px", + # Ancorado à direita da célula grid correspondente + "justifySelf": "end", + }, + children=[ + html.Span("🌐", style={"fontSize": "18px"}), + dcc.Dropdown( + id="lang-selector", + options=LANGUAGES, + value=DEFAULT_LANG, + clearable=False, + persistence=True, + persistence_type="session", + style={ + "width": "160px", + "fontSize": "14px", + "color": "#212529", + }, + ), + ], + ) + + def _build_header(): - """Cabeçalho fixo, com gradiente, logo, título e badge de versão.""" + """Cabeçalho fixo, com gradiente, logo, título e seletor de idioma.""" return html.Div( className="cstr-header", + style={"padding": "14px 24px"}, children=html.Div( className="cstr-header-inner", + style={ + # 3 trilhas (esq | centro | dir) — título sempre no centro + # da página, independente da largura do logo ou do seletor + # de idioma. + "display": "grid", + "gridTemplateColumns": "1fr auto 1fr", + "alignItems": "center", + "gap": "18px", + "maxWidth": "1600px", + "margin": "0 auto", + }, children=[ - html.Img(src='assets/logo.png', className="cstr-logo"), + # style inline garante tamanho mesmo se o custom.css não for + # aplicado por algum motivo (cache do browser, asset 404, etc). + html.Img( + src='assets/logo.png', + className="cstr-logo", + style={ + "height": "56px", + "width": "auto", + "maxHeight": "56px", + "maxWidth": "56px", + "objectFit": "contain", + "justifySelf": "start", + }, + ), html.Div([ - html.H1(APP_NAME, className="cstr-app-title"), + html.H1( + id="header-app-title", + children=_t("app_title", DEFAULT_LANG), + className="cstr-app-title", + ), html.Span( - "Simulação e otimização multi-objetivo de reatores CSTR", + id="header-app-subtitle", + children=_t("app_subtitle", DEFAULT_LANG), className="cstr-app-subtitle", ), - ], className="cstr-title-block"), + ], className="cstr-title-block", + style={"justifySelf": "center", "textAlign": "center"}), + _build_language_selector(), ], ), ) def _build_footer(): + year = datetime.now().year return html.Div( className="cstr-footer", children=[ html.Span( - f"© {datetime.now().year} CSTR Simulator & Optimizer " - f"— Powered by Dash + TensorFlow + pymoo", + id="footer-text", + children=f"© {year} {_t('footer_text', DEFAULT_LANG)}", className="cstr-footer-text", ), ], @@ -119,6 +200,11 @@ def _build_footer(): style=styles_dict['Training']['style_visible'], selected_style=styles_dict['Training']['selected_style'] ), + dcc.Tab( + label='📊 Analytics', value='TAB_Analytics', id='TAB_Analytics', + style=styles_dict['Analytics']['style_visible'], + selected_style=styles_dict['Analytics']['selected_style'] + ), dcc.Tab( label='❔ Help', value='TAB_Help', id='TAB_Help', style=styles_dict['Help']['style_visible'], @@ -129,11 +215,6 @@ def _build_footer(): style=styles_dict['About']['style_visible'], selected_style=styles_dict['About']['selected_style'] ), - dcc.Tab( - label='📊 Analytics', value='TAB_Analytics', id='TAB_Analytics', - style=styles_dict['Analytics']['style_visible'], - selected_style=styles_dict['Analytics']['selected_style'] - ), ], ), ), @@ -150,7 +231,15 @@ def _build_footer(): # Stores e timers dcc.Store(id='store-data'), - dcc.Store(id='sim-history-store', data=[]), + dcc.Store(id='sim-history-store', data=[], storage_type='session'), + # Unidades escolhidas pelo usuário por variável (persistente na sessão). + # Formato: {'vazao': 'L_s', 'tf': 'C', ...} + dcc.Store(id='units-store', data={}, storage_type='session'), + # KPIs em unidade canônica (preenchido pelo callback de simulação). + # Formato: {'X': 0.85, 'T0': 330.5, 'CA0': 1000.0, ...} + # Separamos o valor canônico do valor de exibição para que a troca de + # unidade seja puramente de UI — sem reexecutar a predição. + dcc.Store(id='sim-kpis-canonical-store', data={}, storage_type='session'), dcc.Interval(id='training-interval', interval=1000, disabled=False), ], ) diff --git a/CSTRChemIA/apps/MAIN_unit_callbacks.py b/CSTRChemIA/apps/MAIN_unit_callbacks.py new file mode 100644 index 0000000..904fbc9 --- /dev/null +++ b/CSTRChemIA/apps/MAIN_unit_callbacks.py @@ -0,0 +1,243 @@ +# apps/MAIN_unit_callbacks.py +""" +Callbacks de troca de unidade de exibição. + +Para cada variável com unit_selector (dropdown ``unit-{var_id}``), registra +um callback que: + + 1. Lê o valor atual do input (que está na unidade anterior). + 2. Converte anterior → canônica → nova, via ``core.units``. + 3. Recalcula ``min`` / ``max`` / ``step`` do Input e do Slider (se houver). + 4. Atualiza a FormText com o texto de faixa na nova unidade. + 5. Atualiza a *unit-label* de KPIs (quando aplicável). + 6. Persiste o par ``var_id → new_unit`` no ``units-store``. + +O módulo roda efeitos colaterais no import (registra callbacks no ``app``), +portanto basta importá-lo em ``apps/MAIN_callbacks.py`` no topo. +""" +from __future__ import annotations + +from typing import Optional + +from dash import Input, Output, State, no_update +from dash.exceptions import PreventUpdate + +from main import app +from core.units import ( + VAR_BOUNDS, + VAR_CATEGORY, + canonical_value_of, + display_bounds, + format_range_text, + convert, + get_option, + label_for, +) + + +# ══════════════════════════════════════════════════════════════════════════════ +# REGISTRO DECLARATIVO +# ══════════════════════════════════════════════════════════════════════════════ +#: Cada entrada descreve uma variável que possui ``unit-{var_id}`` + input. +#: +#: Campos: +#: ``var_id`` — chave de ``VAR_CATEGORY`` / ``VAR_BOUNDS``. +#: ``input_id`` — id do ``dbc.Input`` numérico. +#: ``slider_id`` — id do ``dcc.Slider`` pareado (``None`` se não houver). +#: ``ft_id`` — id do ``dbc.FormText`` com texto de faixa +#: (``None`` se não houver). +#: +#: Tem que sincronizar com :mod:`layouts.layout_TAB`. +_SIM_INPUTS: list[tuple[str, str, str, str]] = [ + # (var_id, input_id, slider_id, ft_id) + ("vazao", "input-vazao", "slider-vazao", "ft-input-vazao"), + ("ca0feed", "input-ca0feed", "slider-ca0feed", "ft-input-ca0feed"), + ("cb0feed", "input-cb0feed", "slider-cb0feed", "ft-input-cb0feed"), + ("tf", "input-tf", "slider-tf", "ft-input-tf"), + ("tamb", "input-tamb", "slider-tamb", "ft-input-tamb"), + ("tobs", "input-tobs", "slider-tobs", "ft-input-tobs"), + ("wj", "input-wj", "slider-wj", "ft-input-wj"), +] + +#: Inputs da aba Optimization — nenhum tem slider. +_OPT_INPUTS: list[tuple[str, str, Optional[str], Optional[str]]] = [ + ("t_max", "opt-t-max", None, "ft-opt-t-max"), + ("fouling_max", "opt-fouling-max", None, "ft-opt-fouling-max"), + ("cp0_min", "opt-cp0-min", None, "ft-opt-cp0-min"), + ("vazao_min", "opt-vazao-min", None, None), + ("vazao_max", "opt-vazao-max", None, None), + ("tobs_min", "opt-tobs-min", None, None), + ("tobs_max", "opt-tobs-max", None, None), + ("wj_min", "opt-wj-min", None, None), + ("wj_max", "opt-wj-max", None, None), +] + +#: KPIs da aba Simulation — H4 com valor + Small com label de unidade. +#: ``canonical_transform`` pode ser uma função aplicada ao valor canônico bruto +#: antes de converter (útil para ``fouling`` que é metros no modelo e queremos +#: mostrar em µm por padrão, ou para ``X`` que sai como fração e pode aparecer +#: em %). +_SIM_KPIS: list[tuple[str, str, str]] = [ + # (var_id, out_id, unit_label_id) + ("X", "out-X", "unit-label-out-X"), + ("T0", "out-T0", "unit-label-out-T0"), + ("CA0", "out-CA0", "unit-label-out-CA0"), + ("CB0", "out-CB0", "unit-label-out-CB0"), + ("CP0", "out-CP0", "unit-label-out-CP0"), + ("CS0", "out-CS0", "unit-label-out-CS0"), + ("fouling", "out-fouling", "unit-label-out-fouling"), +] + + +# ══════════════════════════════════════════════════════════════════════════════ +# FORMATAÇÃO +# ══════════════════════════════════════════════════════════════════════════════ +def _smart_fmt(v: float) -> str: + """Formatação compacta: inteiros simples, %g caso contrário, científica p/ extremos.""" + if v != 0 and (abs(v) < 1e-3 or abs(v) >= 1e6): + return f"{v:.3e}" + if v == int(v) and abs(v) < 1e5: + return f"{int(v)}" + return f"{v:.4g}" + + +# ══════════════════════════════════════════════════════════════════════════════ +# REGISTRO DE CALLBACKS PARA INPUTS +# ══════════════════════════════════════════════════════════════════════════════ +def _register_input_unit_callback(var_id: str, input_id: str, + slider_id: Optional[str], + ft_id: Optional[str]): + """ + Registra um callback de troca de unidade para um par Input (+Slider, +FormText). + + O callback escuta ``unit-{var_id}.value`` e, na mudança, converte o valor + do input da unidade antiga para a nova, ajusta ``min`` / ``max`` / ``step`` + e atualiza a faixa de ajuda. + """ + if var_id not in VAR_CATEGORY or var_id not in VAR_BOUNDS: + return + cat = VAR_CATEGORY[var_id] + canonical_unit = canonical_value_of(cat) + + # Monta Outputs dinamicamente — alguns são opcionais. + outputs = [ + Output(input_id, "value", allow_duplicate=True), + Output(input_id, "min", allow_duplicate=True), + Output(input_id, "max", allow_duplicate=True), + Output(input_id, "step", allow_duplicate=True), + ] + if slider_id: + outputs += [ + Output(slider_id, "value", allow_duplicate=True), + Output(slider_id, "min", allow_duplicate=True), + Output(slider_id, "max", allow_duplicate=True), + Output(slider_id, "step", allow_duplicate=True), + ] + if ft_id: + outputs += [Output(ft_id, "children", allow_duplicate=True)] + outputs += [Output("units-store", "data", allow_duplicate=True)] + + inputs = [Input(f"unit-{var_id}", "value")] + states = [State(input_id, "value"), + State("units-store", "data")] + + @app.callback(*outputs, *inputs, *states, prevent_initial_call=True) + def _change_unit(new_unit, current_value, store): + store = dict(store or {}) + old_unit = store.get(var_id, canonical_unit) + + # Sem troca real → não faz nada. + if new_unit == old_unit and current_value is not None: + raise PreventUpdate + + # Converte valor corrente. + new_value = None + if current_value is not None: + new_value = convert(current_value, cat, old_unit, new_unit) + # Fallback: default da variável no novo unit. + if new_value is None: + new_value = display_bounds(var_id, new_unit)["default"] + + db = display_bounds(var_id, new_unit) + # Clamp para caber nos novos bounds. + new_value = max(db["min"], min(db["max"], float(new_value))) + + store[var_id] = new_unit + + result = [new_value, db["min"], db["max"], db["step"]] + if slider_id: + result += [new_value, db["min"], db["max"], db["step"]] + if ft_id: + # Texto curto com a faixa na unidade nova. + result += [format_range_text(var_id, new_unit)] + result += [store] + return tuple(result) + + +# ══════════════════════════════════════════════════════════════════════════════ +# REGISTRO DE CALLBACKS PARA KPIS +# ══════════════════════════════════════════════════════════════════════════════ +def _register_kpi_unit_callback(var_id: str, out_id: str, unit_label_id: str): + """ + Callback de KPI: lê o valor canônico do ``sim-kpis-canonical-store`` e o + unit dropdown, e produz o texto do H4 + o texto do Small. + + O valor canônico é escrito pelo callback principal de simulação + (:func:`apps.MAIN_callbacks.update_simulation`) nesse store. + """ + if var_id not in VAR_CATEGORY: + return + cat = VAR_CATEGORY[var_id] + canonical_unit = canonical_value_of(cat) + + @app.callback( + Output(out_id, "children", allow_duplicate=True), + Output(unit_label_id, "children", allow_duplicate=True), + Output("units-store", "data", allow_duplicate=True), + Input(f"unit-{var_id}", "value"), + Input("sim-kpis-canonical-store", "data"), + State("units-store", "data"), + prevent_initial_call=True, + ) + def _render_kpi(chosen_unit, kpis_canonical, store): + store = dict(store or {}) + unit_value = chosen_unit or store.get(var_id, canonical_unit) + store[var_id] = unit_value + + if not kpis_canonical or var_id not in kpis_canonical: + # Sem valor ainda — só atualiza label de unidade. + return no_update, label_for(cat, unit_value), store + + canonical_v = kpis_canonical.get(var_id) + if canonical_v is None: + return "—", label_for(cat, unit_value), store + + opt = get_option(cat, unit_value) + display_v = opt.to_display(float(canonical_v)) + # Formatação do valor — 2 casas para conc./temp., 4 para fração/fouling. + if cat == "fraction": + txt = f"{display_v:.2f}" + elif cat == "length_micro": + txt = f"{display_v:.3g}" + elif cat == "temperature": + txt = f"{display_v:.2f}" + elif cat == "concentration": + txt = f"{display_v:.2f}" + elif cat == "vazao": + txt = f"{display_v:.4g}" + else: + txt = f"{display_v:.4g}" + return txt, label_for(cat, unit_value), store + + +# ══════════════════════════════════════════════════════════════════════════════ +# REGISTRA TODOS NO IMPORT +# ══════════════════════════════════════════════════════════════════════════════ +for _vid, _iid, _sid, _ftid in _SIM_INPUTS: + _register_input_unit_callback(_vid, _iid, _sid, _ftid) + +for _vid, _iid, _sid, _ftid in _OPT_INPUTS: + _register_input_unit_callback(_vid, _iid, _sid, _ftid) + +for _vid, _oid, _lid in _SIM_KPIS: + _register_kpi_unit_callback(_vid, _oid, _lid) diff --git a/CSTRChemIA/apps/callbacks/__init__.py b/CSTRChemIA/apps/callbacks/__init__.py new file mode 100644 index 0000000..f14fd85 --- /dev/null +++ b/CSTRChemIA/apps/callbacks/__init__.py @@ -0,0 +1,31 @@ +""" +apps.callbacks — ponto de entrada unificado para callbacks Dash. + +Atualmente é um scaffold para migração gradual: hoje o registro de +callbacks acontece no ``apps.MAIN_callbacks`` (monolítico). O objetivo é +mover callbacks por aba para módulos específicos (``simulation``, +``optimization``, ``training``, ``analytics``) mantendo os IDs e +decoradores exatamente iguais. + +Para um observador externo, ``import apps.callbacks`` já registra todos +os callbacks (por hora delegando ao MAIN_callbacks legado). +""" + +from __future__ import annotations + +# Importar MAIN_callbacks registra todos os callbacks via side-effect dos +# decoradores @callback. Mantemos o comportamento original. +from apps import MAIN_callbacks as _legacy # noqa: F401 + +# Re-exports úteis para código novo. +from apps.callbacks.service_adapters import ( + predict_via_service, + submit_optimization, + submit_training, +) + +__all__ = [ + "predict_via_service", + "submit_optimization", + "submit_training", +] diff --git a/CSTRChemIA/apps/callbacks/service_adapters.py b/CSTRChemIA/apps/callbacks/service_adapters.py new file mode 100644 index 0000000..891e7e0 --- /dev/null +++ b/CSTRChemIA/apps/callbacks/service_adapters.py @@ -0,0 +1,93 @@ +""" +Adaptadores finos que conectam callbacks Dash aos services. + +Callbacks novos devem importar daqui em vez de chamar PredictValues / +run_cstr_optimization diretamente. Isso: + * Centraliza tratamento de erros (exceções → mensagens UI-safe). + * Permite trocar a implementação de um service sem tocar callbacks. + * Dá um ponto único de instrumentação (logs, métricas). +""" + +from __future__ import annotations + +from functools import lru_cache +from typing import Any + +from core.exceptions import CSTRChemIAError +from core.logging import get_logger + +log = get_logger(__name__) + + +@lru_cache(maxsize=1) +def _sim_service(): + from services.simulation_service import SimulationService + return SimulationService() + + +@lru_cache(maxsize=1) +def _opt_service(): + from services.optimization_service import OptimizationService + return OptimizationService() + + +@lru_cache(maxsize=1) +def _train_service(): + from services.training_service import TrainingService + return TrainingService() + + +def predict_via_service(features: dict[str, float], model_name: str + ) -> tuple[dict[str, float] | None, str | None]: + """ + Predição para callbacks — retorna ``(targets, erro)``. + + Nunca levanta: erros viram string para renderizar no UI. + """ + try: + out = _sim_service().predict_named(features, model_name=model_name) + return out, None + except CSTRChemIAError as e: + log.warning("predict_via_service: %s", e) + return None, str(e) + except Exception: # noqa: BLE001 + log.exception("predict_via_service: erro inesperado") + return None, "Erro inesperado ao predizer. Veja os logs." + + +def submit_optimization(**kwargs: Any) -> tuple[str | None, str | None]: + """Submete job de otimização, retorna ``(job_id, erro)``.""" + try: + jid = _opt_service().submit(**kwargs) + return jid, None + except CSTRChemIAError as e: + log.warning("submit_optimization: %s", e) + return None, str(e) + except Exception: # noqa: BLE001 + log.exception("submit_optimization: erro inesperado") + return None, "Erro inesperado ao iniciar otimização." + + +def submit_training(architecture: str) -> tuple[str | None, str | None]: + """Submete treino, retorna ``(job_id, erro)``.""" + try: + jid = _train_service().submit(architecture) + return jid, None + except CSTRChemIAError as e: + log.warning("submit_training: %s", e) + return None, str(e) + except Exception: # noqa: BLE001 + log.exception("submit_training: erro inesperado") + return None, "Erro inesperado ao iniciar treino." + + +def get_optimization_job(job_id: str): + return _opt_service().get_job(job_id) + + +def get_training_job(job_id: str): + return _train_service().get_job(job_id) + + +def tail_training_logs(job_id: str, n: int = 200) -> list[str]: + return _train_service().tail_logs(job_id, n=n) diff --git a/CSTRChemIA/assets/custom.css b/CSTRChemIA/assets/custom.css index b56d149..fa5d608 100644 --- a/CSTRChemIA/assets/custom.css +++ b/CSTRChemIA/assets/custom.css @@ -66,12 +66,28 @@ body, html { .cstr-header-inner { max-width: 1600px; margin: 0 auto; - display: flex; - justify-content: center; + /* Grid com 3 trilhas iguais nas laterais → título fica sempre + centralizado na página, independente do tamanho do logo ou do + seletor de idioma. */ + display: grid; + grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; } +.cstr-header-inner > .cstr-logo { + justify-self: start; +} + +.cstr-header-inner > .cstr-title-block { + justify-self: center; + text-align: center; +} + +.cstr-header-inner > .cstr-lang-selector { + justify-self: end; +} + .cstr-logo { height: 56px; width: auto; @@ -283,16 +299,9 @@ body, html { overflow: visible !important; } -/* Expansão vertical do card quando um dropdown está aberto. - :has() — suporte >92 % dos browsers em 2025 (Chrome 105+, Firefox 121+, Safari 15.4+). */ -.cstr-card:has(.Select--is-open) .card-body, -.cstr-card:has([class*="--is-open"]) .card-body, -.cstr-card:has([aria-expanded="true"]) .card-body { - padding-bottom: 200px !important; - transition: padding-bottom 0.22s ease-out; -} - -/* Eleva o card com dropdown aberto para que ele fique acima de cards irmãos */ +/* Eleva o card com dropdown aberto para que ele fique acima de cards irmãos, + SEM aumentar a altura do container. O menu sobrepõe o conteúdo abaixo + (position: absolute) em vez de empurrá-lo. */ .cstr-card:has(.Select--is-open), .cstr-card:has([class*="--is-open"]), .cstr-card:has([aria-expanded="true"]) { @@ -300,12 +309,31 @@ body, html { z-index: 200 !important; } -/* Garante que o menu do dropdown apareca acima de outros cards/containers */ +/* Container do dropdown precisa permitir overflow; o menu é posicionado + absolutamente em relação ao próprio Select. */ +.cstr-dropdown, +.cstr-dropdown .Select, +.cstr-dropdown .Select-control { + position: relative; +} + +/* Menu do dropdown: overlay absoluto, sem deslocar conteúdo abaixo. */ .cstr-dropdown .Select-menu-outer, .cstr-dropdown .Select__menu, -.cstr-dropdown [class*="menu"] { - z-index: 9999 !important; +.cstr-dropdown [class*="menu-outer"], +.cstr-dropdown [class*="Select__menu"] { position: absolute !important; + top: 100% !important; + left: 0 !important; + right: 0 !important; + z-index: 9999 !important; + margin-top: 2px !important; + background: var(--bg-card) !important; + border: 1px solid var(--border-soft) !important; + border-radius: 8px !important; + box-shadow: var(--shadow-md) !important; + max-height: 260px; + overflow-y: auto; } /* Dropdown generico do Dash (dcc.Dropdown) */ @@ -535,9 +563,15 @@ body, html { * ============================================================================= */ @media (max-width: 992px) { .cstr-header-inner { - flex-direction: column; + /* Em telas estreitas, empilhamos logo/título/seletor em 1 coluna. */ + grid-template-columns: 1fr; gap: 8px; } + .cstr-header-inner > .cstr-logo, + .cstr-header-inner > .cstr-title-block, + .cstr-header-inner > .cstr-lang-selector { + justify-self: center; + } .cstr-app-title { font-size: 1.1rem; } @@ -561,3 +595,21 @@ body, html { .cstr-logo { height: 42px; } .kpi-value { font-size: 1.3rem !important; } } + +/* ============================================================================= + * DATA FILE MANAGER (Analytics tab) + * ============================================================================= */ +.dfm-upload-zone:hover { + background-color: #eef2ff !important; + border-color: var(--primary) !important; +} + +.dfm-upload-zone { + transition: var(--transition); +} + +/* Compacta paginação das tabelas DFM */ +#dfm-file-table .previous-next-container, +#dfm-preview-table .previous-next-container { + margin-top: 8px; +} diff --git a/CSTRChemIA/assets/html_help/index.html b/CSTRChemIA/assets/html_help/index.html index 0147a45..c53feff 100644 --- a/CSTRChemIA/assets/html_help/index.html +++ b/CSTRChemIA/assets/html_help/index.html @@ -534,7 +534,7 @@ @@ -558,10 +558,30 @@ 🔬 Módulo Simulações 🧠 Redes Neurais - 📐 NSGA-II + 📐 NSGA-II / NSGA-III ⚙️ Tuning de HPs + + + + + +
-
🔒 Restrições (penalidade)
+
🔒 Restrições nativas (n_ieq_constr=5)
+

Declaradas nativamente no pymoo, em unidades físicas:

    -
  • T₀ ≤ T_max: temperatura máxima permitida (evita runaway)
  • -
  • X ≥ X_min: conversão mínima exigida pelo processo
  • -
  • cat_activity ≥ cat_min: atividade mínima do catalisador
  • -
  • fouling ≤ fouling_max: espessura máxima tolerada
  • -
  • CP₀ ≥ cp0_min: produção mínima do produto P
  • +
  • g₀ = T₀ − T_max ≤ 0: temperatura máxima (default 365 K)
  • +
  • g₁ = X_min − X ≤ 0: conversão mínima (default 0,30)
  • +
  • g₂ = cat_min − cat_activity ≤ 0: atividade mínima (default 0,9995)
  • +
  • g₃ = fouling − fouling_max ≤ 0: espessura máxima (default 0,025 m)
  • +
  • g₄ = cp0_min − CP₀ ≤ 0: produção mínima de P (default 0,0)
+

Todas em unidades físicas (não escaladas) para interpretabilidade direta pelo engenheiro.

+
+ + +
+
📐
+
+
Dois algoritmos disponíveis — NSGA-II ou NSGA-III
+
O módulo optimization/problem_v2.py expõe o parâmetro algorithm em OptimizationConfigV2. NSGA-II (default) usa crowding distance — ideal para 2 objetivos (X × fouling). NSGA-III usa direções de referência de Das–Dennis (ref_dirs_partitions=12) — útil se você estender para >2 objetivos (ex.: incluir produção de CP₀, minimizar energia de jaqueta).
@@ -923,16 +958,56 @@

Treinamento dos Modelos Substitutos

⚙️ Processo de Treinamento
    -
  1. Detecção automática dos arquivos CSV nas fontes acima.
  2. -
  3. Validação de colunas (12 features, 8 targets) e remoção de NaN/Inf por mediana da coluna.
  4. -
  5. Divisão 70/15/15 (treino/validação/teste) com seed=42.
  6. -
  7. Ajuste do StandardScaler exclusivamente no conjunto de treino.
  8. +
  9. Detecção automática dos arquivos CSV (layout flat ou aninhado).
  10. +
  11. Validação estrutural via core.data_validation.clean_dataset(): detecta NaN, Inf, flags inválidas (não-binárias) e violações dos TRAINING_FEATURE_BOUNDS / TRAINING_TARGET_BOUNDS. Linhas problemáticas são descartadas (não imputadas silenciosamente).
  12. +
  13. Divisão 70/15/15 treino/validação/teste com random_state igual ao --seed informado (propagado para Python, NumPy e TensorFlow).
  14. +
  15. Ajuste do StandardScaler X e Y exclusivamente no conjunto de treino.
  16. Carregamento dos hiperparâmetros de training/best_hps_{ARCH}_values.json.
  17. -
  18. Treinamento com EarlyStopping (patience=20, monitor=val_loss).
  19. -
  20. Salva CSTR_{ARCH}_Surrogate.keras, scalerX.pkl, scalerY.pkl e data_meta.json.
  21. -
  22. Registra MAE de validação e teste em training_results.csv para ranking.
  23. +
  24. Treinamento com três callbacks: +
      +
    • EarlyStoppingpatience=20, restore_best_weights
    • +
    • ReduceLROnPlateaufactor=0.5, patience=10, min_lr=1e-6, reduz a taxa de aprendizado em platôs
    • +
    • ModelCheckpoint — salva os melhores pesos a cada epoch (removido ao final)
    • +
    +
  25. +
  26. Cálculo de métricas globais (MAE, RMSE, R²) e per-target — 8 MAEs separados revelam falhas ocultas em alvos específicos.
  27. +
  28. Persistência dual: CSTR_{ARCH}_Surrogate.keras, scalerX.pkl (legado) + scalerX.json (SHA-256), scalerY.pkl + scalerY.json, data_meta.json.
  29. +
  30. Escrita do manifesto: build_manifest() computa SHA-256 dos 3 artefatos e atualiza models.json com arquitetura, seed, métricas por-target, hiperparâmetros e versão do framework.
  31. +
  32. Registra também o MAE em training_results.csv (compatibilidade com UI legada).
+ +
+
🎲 CLI e reprodutibilidade
+

O script de treino aceita argumentos para controlar semente, arquitetura e recursos:

+
+# Treino padrão (MLP, 100 épocas, seed=42)
+python -m training.train_surrogate --model MLP

+# Treinar TODAS as arquiteturas com seed personalizada
+python -m training.train_surrogate --model all --seed 2026

+# Deep Ensemble: 3 membros com seeds diferentes
+for SEED in 11 17 23; do
+  python -m training.train_surrogate --model MLP --seed $SEED
+done +
+

A seed é gravada no models.json em cada entrada de arquitetura. Ao combinar com o SHA-256 do .keras, cada predição futura pode ser rastreada até um modelo específico com identidade criptográfica.

+
+ +
+
📏 Métricas detalhadas por target
+

O pipeline grava métricas separadas para cada um dos 8 targets, permitindo diagnóstico fino:

+
+ + + + + + + + +
MétricaFórmulaPor target?Em models.json
MAE∑|y_true − y_pred| / N
RMSE√(∑(y_true − y_pred)² / N)
1 − SS_res / SS_tot
MAE globalMédia das 8 MAEs✗ (agregada)
+
+
@@ -1040,7 +1115,7 @@

Arquiteturas dos Modelos Substitutos


@@ -1200,7 +1275,575 @@

Busca Automática de Hiperparâmetros

- + +
+ +

Validação Estrutural de Dados

+

Módulo core.data_validation — substitui a imputação silenciosa por mediana por um pipeline de descarte explícito com relatório linha-a-linha.

+
+ +
+
⚠️
+
+
Motivação — o perigo da imputação silenciosa
+
Preencher NaN/Inf com a mediana da coluna mascara sensores travados, falhas de comunicação e outliers severos, contaminando o modelo com pontos artificiais que não representam o processo real. O pipeline descarta essas linhas e reporta quantas e por quê.
+
+
+ +
+
📋 Classe ValidationReport (dataclass frozen)
+

Relatório imutável com metadados por categoria de violação:

+
+ + + + + + + + + + + + + + +
CampoTipoSignificado
n_rows / n_colsintDimensão do array validado
column_namestuple[str]Nomes das colunas (features ou targets)
nan_rowsnp.ndarray[bool]Máscara booleana das linhas com qualquer NaN
inf_rowsnp.ndarray[bool]Máscara com ±Inf
bound_violationsdict[str, np.ndarray]Por coluna: máscara de valores fora de [lo, hi]
flag_violationsdict[str, np.ndarray]Por flag: máscara de valores ≠ {0, 1} (tolerância 1e-9)
is_validproperty → boolTrue se não há NaN/Inf/flags inválidas
is_cleanproperty → boolMais rígido: também sem bound violations
offending_rows()→ np.ndarrayÍndices únicos das linhas problemáticas (união de todas as categorias)
summary(max_cols=12)→ strResumo humano legível
+
+
+ +
+
🧹 Fluxo típico com clean_dataset()
+
+from core.data_validation import (
+  clean_dataset, TRAINING_FEATURE_BOUNDS, TRAINING_TARGET_BOUNDS,
+)

+X_clean, y_clean, kept_mask, reports = clean_dataset(
+  X, y,
+  feature_bounds=TRAINING_FEATURE_BOUNDS,
+  target_bounds=TRAINING_TARGET_BOUNDS,
+  drop_bound_violations=False, # bounds são warning, não erro
+)

+print(f"Linhas mantidas: {kept_mask.sum()}/{len(kept_mask)}")
+print(reports['features'].summary()) +
+

A função garante que X_clean e y_clean permanecem alinhados após o descarte (mesma máscara aplicada a ambos). Os 4 relatórios retornados (2 antes + 2 depois) permitem diagnóstico detalhado.

+
+ +
+
📏 Limites conservadores pré-configurados
+

TRAINING_FEATURE_BOUNDS e TRAINING_TARGET_BOUNDS refletem a envoltória física:

+
+ + + + + + + + + + + + +
VariávelLimite inferiorLimite superiorUnidade
vazao_feed1,0×10⁻⁵5,0×10⁻³m³/s
CA0_feed, CB0_feed0,05.000,0mol/m³
Tf_feed, T_amb_feed, T_obs200,0600,0K
valve_pos0,01,0
w_j0,01,0×10⁻²m³/s
X (target)0,01,0
cat_activity (target)0,01,01— (folga numérica)
fouling_thickness (target)0,00,1m
+
+
+
+ + +
+ +

Serialização Segura com JSON + SHA-256

+

Módulo core.safe_serialization — elimina o vetor pickle.load, fonte histórica de execução arbitrária de código (CWE-502).

+
+ +
+
🚨
+
+
Por que abandonar pickle?
+
pickle.load() executa bytecode arbitrário durante a desserialização. Um atacante capaz de substituir scalerX.pkl consegue executar código Python com os privilégios do usuário. A OWASP e a CISA classificam isso como vulnerabilidade crítica (CWE-502: Deserialization of Untrusted Data). O CSTRChemIA serializa em JSON — texto puro, sem eval implícito — com SHA-256 para detectar adulteração.
+
+
+ +
+
+
📥 dump_scaler_json(scaler, path, feature_names=None)
+

Serializa um StandardScaler, RobustScaler, MinMaxScaler, PowerTransformer ou QuantileTransformer para JSON, calcula o SHA-256 e embute no próprio arquivo. Escrita atômica (tmp → replace).

+
    +
  • Formato: {class, version, n_features_in, feature_names, params, sha256}
  • +
  • Arrays numpy convertidos automaticamente via encoder custom
  • +
  • SHA-256 computado com o campo sha256 removido (determinismo)
  • +
+
+
+
📤 load_scaler_json(path, verify_hash=True)
+

Reconstrói o scaler, valida o hash se verify_hash=True (default) e popula n_features_in_ para compatibilidade com a API do scikit-learn.

+
    +
  • Levanta ValueError em hash inconsistente
  • +
  • Levanta ValueError em classe não suportada
  • +
  • Nenhum import de pickle no caminho feliz
  • +
+
+
+ +
+
🔄 Migração gradual — load_scaler_any()
+

Para compatibilidade, o helper load_scaler_any(base_path, verify_hash=True) tenta primeiro base_path.json e, se ausente, cai para base_path.pkl emitindo um DeprecationWarning. Assim, scalers serializados em formato legado continuam funcionando — mas ao retreinar, o pipeline grava ambos os formatos.

+
+from core.safe_serialization import load_scaler_any

+# Procura "surrogate_model/scalerX.json"; se ausente, usa "scalerX.pkl"
+scaler_x = load_scaler_any("surrogate_model/scalerX", verify_hash=True)

+X_scaled = scaler_x.transform(X_raw) +
+
+ +
+
🧾 Auditoria por hash
+

O helper file_sha256(path) computa o hash em chunks (baixa memória) e é usado tanto para os scalers quanto para os .keras. Com isso, a trilha de auditoria fica:

+
+# 1. Computa hash de um artefato qualquer
+from core.safe_serialization import file_sha256
+h = file_sha256("surrogate_model/CSTR_MLP_Surrogate.keras")
+# h = "3b5a7e...64 chars"

+# 2. Compara com o hash gravado no manifesto
+from core.model_manifest import read_manifest
+manifest = read_manifest("surrogate_model/")
+assert manifest["MLP"].keras_sha256 == h, "Modelo foi adulterado!" +
+
+
+ + +
+ +

Manifesto Unificado models.json

+

Módulo core.model_manifest — uma única fonte de verdade para todas as arquiteturas treinadas, incluindo hashes, seed, métricas per-target e hiperparâmetros.

+
+ +

+ Para substituir o uso legado de training_results.csv (um único valor de MAE por linha), o CSTRChemIA utiliza um manifesto JSON estruturado que, para cada arquitetura, registra: +

+ +
+
📋 Estrutura de ModelManifest (dataclass frozen)
+
+ + + + + + + + + + + + + + + + + + + + + +
CategoriaCampoFunção
Identidadearchitecture"MLP", "RNN", "CNN" ou "XGBoost"
trained_atTimestamp ISO-8601 UTC
seedSemente aleatória (Python/NumPy/TF)
frameworkEx.: "tensorflow==2.16.1"
Artefatoskeras_file + keras_sha256Arquivo .keras e seu hash SHA-256
scaler_x_file + scaler_x_sha256Scaler de entrada
scaler_y_file + scaler_y_sha256Scaler de saída
Scheman_featuresSempre 12 (ou 23 se XGBoost com engineering)
n_targets8
feature_namesTupla com os 12 nomes canônicos
target_namesTupla com os 8 nomes
Métricasglobal_metrics{mae, rmse, r2} agregado
per_target_metrics{target: {mae, rmse, r2}} para cada um dos 8
Metan_train / n_val / n_testTamanhos dos splits
hyperparametersDict com os HPs usados (lido de best_hps_*.json)
notesTexto livre (branch git, CI run, etc.)
verify_integrity(models_dir)Método → retorna list[str] de erros (vazia = OK)
+
+
+ +
+
🔨 API pública do módulo
+
+ + + + + + + + +
FunçãoPropósito
build_manifest(architecture, models_dir, keras_filename, scaler_x_filename, scaler_y_filename, seed, feature_names, target_names, global_metrics, per_target_metrics, ...)Computa SHA-256 dos 3 artefatos e retorna um ModelManifest pronto para escrita.
write_manifest(models_dir, manifests: dict[str, ModelManifest])Serializa o dicionário inteiro em models.json (versão "1", generated_at ISO-8601).
read_manifest(models_dir) → dict[str, ModelManifest]Desserializa, tolerante a ausência (retorna {}) e a JSON malformado (loga erro e retorna {}).
update_manifest_entry(models_dir, manifest: ModelManifest)Merge incremental: atualiza apenas a entrada da arquitetura sem sobrescrever as demais.
+
+
+ +
+
🔍
+
+
Verificação de integridade via ModelRegistry
+
O services.model_registry.ModelRegistry expõe verify_integrity(arch=None) → dict[str, list[str]]. Um dict vazio por arquitetura significa OK; qualquer entrada com strings indica "hash inconsistente" (artefato modificado em disco) ou "arquivo ausente" — alerta imediato de que o modelo em produção não é o que você treinou.
+
+
+
+ + +
+ +

Quantificação de Incerteza Preditiva

+

Módulo core.uncertainty — três métodos complementares: MC Dropout (epistêmica), Deep Ensembles (diversidade) e Split Conformal Prediction (garantia finita).

+
+ +
+
ℹ️
+
+
Por que três métodos?
+
Cada método captura um aspecto diferente da incerteza: MC Dropout mede a sensibilidade do modelo a perturbações nos pesos (epistêmica); Deep Ensembles capturam a diversidade entre modelos treinados independentemente; Conformal Prediction fornece intervalos com cobertura empírica garantida de 1−α — sem assumir Gaussianidade. Use os três em conjunto para rastrear quando o surrogate "não sabe o que não sabe".
+
+
+ +
+
+
🎰 MC Dropout — mc_dropout_predict(...)
+

Gal & Ghahramani (ICML 2016) demonstraram que dropout ativo durante a inferência aproxima inferência variacional Bayesiana. Execute n_samples=30 forward passes com dropout ligado e agregue:

+
+mean, std = mc_dropout_predict(
+  pipeline, X,
+  n_samples=30,
+  batch_size=256,
+  needs_3d=False, # True p/ RNN/CNN
+) +
+

Requer pelo menos uma camada Dropout na arquitetura (o MLP a tem; RNN/CNN também).

+
+ +
+
👥 Deep Ensembles — ensemble_predict(...)
+

Lakshminarayanan et al. (NeurIPS 2017): treinar M ≥ 3 modelos com seeds diferentes e agregar a média e o desvio padrão entre eles. Fornece incerteza aleatória + epistêmica sem necessidade de Bayesiano.

+
+# 3 modelos treinados com --seed 11/17/23
+predict_fns = [fn_mlp_s11, fn_mlp_s17, fn_mlp_s23]
+mean, std = ensemble_predict(predict_fns, X) +
+

Exige no mínimo 2 membros; std calculado com ddof=1 (amostral).

+
+
+ +
+
📐 Split Conformal Prediction — SplitConformalCalibrator
+

+ Introduzido por Vovk (2005), é o único método listado que oferece cobertura marginalmente garantida em amostras finitas: se α=0.1, então ao menos 90% das predições futuras cairão dentro do intervalo, sob a única hipótese de que os dados de calibração são i.i.d. com os dados de teste. +

+
+from core.uncertainty import SplitConformalCalibrator

+# 1. Calibra em um conjunto held-out (não usado no treino)
+cal = SplitConformalCalibrator(alpha=0.1).fit(
+  y_cal_true, y_cal_pred
+)
+# 2. Gera intervalos no conjunto de produção
+lo, hi = cal.interval(y_pred_new)
+# 3. (Opcional) verifica cobertura empírica
+cov = cal.coverage(y_test_true, y_test_pred)
+# cov deve ser ≥ 1 − alpha = 0.90 para cada target +
+

+ O quantile usado é q = ⌈(n+1)(1−α)⌉ / n dos resíduos absolutos — calibração per-target. Os testes automatizados incluem verificação empírica: com 2000 pares iid e α=0,1, a cobertura observada fica em ≈ 0,90 ± 0,03. +

+
+ +
+
🧰 Wrapper conveniência: predict_with_interval()
+

Combina ensemble + conformal em uma única chamada, devolvendo PredictiveIntervalReport:

+
+from core.uncertainty import predict_with_interval

+r = predict_with_interval(predict_fns, X, conformal=cal)
+r.mean # (n, 8) — predição pontual (média do ensemble)
+r.std # (n, 8) — std do ensemble (None se 1 membro)
+r.lo, r.hi # (n, 8) cada — intervalo conformal
+r.alpha # nível de miscoverage usado +
+
+
+ + +
+ +

Seleção da Solução: TOPSIS · VIKOR · PROMETHEE II · knee-point

+

Módulo optimization.decision_methods — quatro métodos MCDM + consenso para evitar que a escolha final fique refém de um ranqueador específico.

+
+ +
+
⚠️
+
+
O problema do rank reversal
+
Métodos como TOPSIS são conhecidos por mudar a classificação relativa das alternativas quando uma opção é adicionada ou removida — fenômeno documentado desde Belton & Gear (1983). Confiar em um único método torna a decisão frágil. A combinação via consensus_ranking mitiga o risco.
+
+
+ +
+
🧪 Interface comum
+

Todos os métodos aceitam a mesma assinatura básica, operando sobre a matriz de objetivos da frente de Pareto:

+
+F = pareto_objectives # shape (n, k)
+minimize = [False, True] # [max X, min fouling]
+weights = [0.5, 0.5] # normalizados internamente +
+
+ +
+
📊 Os quatro métodos
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MétodoPrincípioAssinaturaRetorno
TOPSIS
Hwang & Yoon 1981
Distância combinada ao ideal positivo e negativotopsis(F, minimize, weights=None)(scores ∈ [0,1], best_idx)
VIKOR
Opricovic 1998
Trade-off entre utilidade média (S) e arrependimento máximo (R)vikor(F, minimize, weights=None, v=0.5)(scores=−Q, best_idx)
PROMETHEE II
Brans & Vincke 1985
Fluxo líquido de preferências pareadaspromethee_ii(F, minimize, weights=None, preference="linear")(phi_net ∈ [−1,1], best_idx)
knee-point
L1-ASF
Ponto do "joelho" — máximo trade-off geométricoknee_point(F, minimize)best_idx
+
+
+ +
+
🗳️ consensus_ranking() — Voto de múltiplos métodos
+

Reúne os top-k de cada método e retorna o índice mais votado. Desempate pela soma normalizada dos scores.

+
+from optimization.decision_methods import (
+  topsis, vikor, promethee_ii, consensus_ranking,
+)

+s1, _ = topsis(F, minimize, weights)
+s2, _ = vikor(F, minimize, weights)
+s3, _ = promethee_ii(F, minimize, weights)

+r = consensus_ranking([s1, s2, s3], top_k=3)
+r.consensus_idx # índice final escolhido
+r.top_k_counts # {idx: n_votos} +
+
+ +
+
💡
+
+
Estratégia recomendada
+
Rode os 3 métodos com pesos iguais e use o consensus_ranking. Se os três concordarem, a escolha é robusta. Se divergirem, inspecione a região do Pareto visualmente — isso é sinal de que diferentes trade-offs são razoáveis e a decisão final deveria passar pelo engenheiro de processo.
+
+
+
+ + +
+ +

Baseline XGBoost com Features Engenheiradas

+

Módulo training.train_xgboost_baseline + core.feature_engineering — comparação honesta: se o MLP não supera uma árvore em features derivadas, há algo errado com a arquitetura neural.

+
+ +
+
🧮 Features engenheiradas: 12 → 23 colunas
+

O módulo core.feature_engineering.engineer_features() adiciona 11 derivações fisicamente motivadas às 12 features originais:

+
+ + + + + + + + + + + + + + + +
#Feature derivadaFórmulaSignificado físico
1dT_obs_feedT_obs − Tf_feedForça motriz do resfriamento/aquecimento
2dT_feed_ambTf_feed − T_amb_feedProxy de perdas térmicas externas
3dT_obs_ambT_obs − T_amb_feedDelta T total para ambiente
4CA_over_CBCA0_feed / CB0_feedRazão estequiométrica de alimentação (div. segura)
5C_total_feedCA0_feed + CB0_feedConcentração total alimentada
6valve_flowvalve_pos · vazao_feedVazão efetiva após válvula
7jacket_ratiow_j / vazao_feedCapacidade relativa da jaqueta (div. segura)
8failure_anymax(4 flags)Qualquer falha ativa (0/1)
9failure_countsum(4 flags)Contagem de falhas simultâneas
10log_vazaolog₁₀(vazao_feed) com clip εEscala multiplicativa da vazão
11log_wjlog₁₀(w_j) com clip εEscala multiplicativa da jaqueta
+
+

Todas as operações usam helpers _safe_div (retorna 0 quando |b| < ε=1e-12) e _safe_log10 (clip em ε antes do log) para evitar NaN/Inf.

+
+ +
+
🌳 O script train_xgboost_baseline.py
+

Pipeline completo: carrega dados, valida com clean_dataset, engenheira features, treina um XGBRegressor por target via sklearn.multioutput.MultiOutputRegressor e grava manifesto próprio (baseline_manifest.json) com SHA-256 dos modelos.

+
+# Execução básica — defaults sensatos
+python -m training.train_xgboost_baseline

+# Customizado
+python -m training.train_xgboost_baseline \
+  --n-estimators 500 \
+  --max-depth 8 \
+  --learning-rate 0.05 \
+  --seed 42

+# Sem engenharia de features (apenas 12 features canônicas)
+python -m training.train_xgboost_baseline --no-feature-engineering +
+

Os modelos e o manifesto são salvos em surrogate_model/baselines/xgboost/, sem interferir com os pesos .keras principais.

+
+ +
+
🔬
+
+
Quando o baseline importa?
+
Se o XGBoost em 23 features engenheiradas bate o MLP em MAE, há duas hipóteses: (1) a arquitetura/hiperparâmetros do MLP estão subótimos (re-rode o tuning); (2) o problema é simples o bastante para que árvores lineares-por-partes o resolvam. Em ambos os casos, o baseline te protege de over-engineering desnecessário.
+
+
+
+ + +
+ +

46 Testes Automatizados

+

Pasta tests/ — cobertura pytest sobre toda a infraestrutura de módulos puros. Executa em ~8 s em CPU padrão.

+
+ +
+
📂 Arquivos de teste e o que cada um verifica
+
+ + + + + + + + + + + +
ArquivoO que cobre
test_safe_serialization.py8Roundtrip JSON, detecção de hash inconsistente, load_scaler_any com precedência, compatibilidade com múltiplas classes de scaler.
test_feature_engineering.py7Correção dos 11 valores derivados, robustez de safe_div e safe_log10, filtro include=, validação de shape.
test_data_validation.py9Detecção de NaN/Inf, flags não-binárias, violações de bounds, preservação de alinhamento X↔y após clean_dataset.
test_model_manifest.py6Build + write + read roundtrip, merge incremental via update_manifest_entry, detecção de corrupção via verify_integrity.
test_uncertainty.py8Cobertura empírica do conformal ≥ 1−α, mean/std do ensemble, validação de shape, guarda contra ensemble de 1 membro.
test_decision_methods.py8Sensibilidade do TOPSIS a pesos, knee-point interior, contagem de votos em consensus_ranking, rejeição de entradas inválidas.
Total46100% passando em pytest tests/
+
+
+ +
+
▶️ Como executar
+
+# Suíte completa (sem TF — só módulos puros)
+cd CSTRChemIA
+python -m pytest tests/ -v

+# Apenas um arquivo
+python -m pytest tests/test_uncertainty.py -v

+# Com resumo de falhas curto
+python -m pytest tests/ --tb=short -q +
+

A suíte não requer TensorFlow — todos os testes usam numpy/sklearn, tornando a CI rápida e leve. Os testes de core.uncertainty usam pipelines sintéticos (lambda X: ...) no lugar de modelos Keras reais.

+
+ +
+
🧪
+
+
Teste de garantia estatística: conformal coverage
+
O teste test_conformal_empirical_coverage_matches_alpha é especialmente relevante: gera 2000 pares (y_true, y_pred) com resíduos Normal(0,1), calibra com α=0,1 e verifica que a cobertura observada fica ≥ 0,87 (margem de 0,03 para amostragem finita). Isso valida empiricamente a garantia teórica de Vovk.
+
+
+
+ + +
+ +

CLI & API Interna

+

Todos os comandos e classes públicas do CSTRChemIA em um lugar só.

+
+ +
+
🖥️ Comandos de linha de comando
+
+ + + + + + + + + + +
ComandoPropósito
python main.pyInicia a aplicação Dash (porta 8050)
python -m training.train_surrogate --model allTreina as 3 redes neurais (MLP, RNN, CNN) e escreve models.json
python -m training.train_surrogate --model MLP --seed 17Treina apenas MLP com seed customizada (para membro de ensemble)
python -m training.train_xgboost_baselineTreina o baseline XGBoost com feature engineering
python -m training.sync_hyperparametersCopia os best_hps_*.json de Tuning_NeuralNetwork/output/ para training/
python -m pytest tests/ -vExecuta os 46 testes automatizados
+
+
+ +
+
🧬 Imports principais de core/
+
+# ── Serialização segura
+from core.safe_serialization import (
+  dump_scaler_json, load_scaler_json, load_scaler_any, file_sha256,
+)

+# ── Validação de dados
+from core.data_validation import (
+  ValidationReport, validate_features, validate_targets, clean_dataset,
+  TRAINING_FEATURE_BOUNDS, TRAINING_TARGET_BOUNDS, FLAG_COLUMNS,
+)

+# ── Manifesto de modelos
+from core.model_manifest import (
+  ModelManifest, TargetMetrics,
+  build_manifest, read_manifest, write_manifest, update_manifest_entry,
+  MANIFEST_FILENAME, # = "models.json"
+)

+# ── Incerteza preditiva
+from core.uncertainty import (
+  SplitConformalCalibrator, PredictiveIntervalReport,
+  mc_dropout_predict, ensemble_predict, predict_with_interval,
+)

+# ── Feature engineering (para baselines)
+from core.feature_engineering import (
+  engineer_features, describe_derivations,
+) +
+
+ +
+
🎯 Imports de optimization/
+
+# ── Otimização V2 (restrições explícitas)
+from optimization.problem_v2 import (
+  OptimizationConfigV2, CSTRProblemV2, run_v2,
+)

+# ── Métodos de decisão multi-critério
+from optimization.decision_methods import (
+  topsis, vikor, promethee_ii, knee_point,
+  consensus_ranking, ConsensusResult,
+) +
+
+ +
+
🛎️ Camada de serviço (para integradores)
+
+# ── Service layer isolada da interface Dash
+from services.model_registry import ModelRegistry
+from services.simulation_service import SimulationService
+from services.optimization_service import OptimizationService
+from services.training_service import TrainingService

+# Exemplo: enumerar arquiteturas disponíveis com métricas
+reg = ModelRegistry()
+for info in reg.list_models():
+  print(info.architecture, info.mae, info.keras_sha256)

+# Verificação de integridade (batch)
+errors = reg.verify_integrity()
+if any(errors.values()):
+  print("⚠️ Modelos corrompidos:", errors) +
+
+ +
+
📘
+
+
Tipagem estrita com core.types
+
O código-base usa from __future__ import annotations e @dataclass(slots=True) em todos os modelos de dados. O módulo core.types centraliza aliases tipados (ModelInfo, TrainingResult, etc.) que são reconhecidos por mypy --strict. Isso captura erros em tempo de edição, não de produção.
+
+
+
+ +

Referências Científicas

@@ -1231,11 +1874,49 @@

Referências Científicas

🎯 Otimização Multi-objetivo
    -
  • DEB, K. et al. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Trans. Evol. Comput., 6(2), 2002. — Algoritmo central do módulo de otimização.
  • -
  • BLANK, J.; DEB, K. pymoo: Multi-objective Optimization in Python. IEEE Access, 2020. — Biblioteca pymoo 0.6+ utilizada.
  • +
  • DEB, K.; PRATAP, A.; AGARWAL, S.; MEYARIVAN, T. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Trans. Evol. Comput., 6(2):182–197, 2002. — Algoritmo central do módulo de otimização.
  • +
  • DEB, K.; JAIN, H. An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Non-dominated Sorting Approach, Part I: Solving Problems With Box Constraints. IEEE Trans. Evol. Comput., 18(4):577–601, 2014. — Fundamentos do NSGA-III, utilizado como alternativa ao NSGA-II em problemas many-objective.
  • +
  • BLANK, J.; DEB, K. pymoo: Multi-objective Optimization in Python. IEEE Access, 8:89497–89509, 2020. — Biblioteca pymoo 0.6+ utilizada.
  • PEREIRA, J. L. J.; GONTIJO, R. G. Avaliação de algoritmos de aprendizado de máquina na predição de estados estacionários em CSTR não isotérmicos. COBEQ, 2024.
+ +
+
🧭 Decisão Multi-Critério (MCDM)
+
    +
  • HWANG, C. L.; YOON, K. Multiple Attribute Decision Making: Methods and Applications. Springer, 1981. — Fundamentação do TOPSIS.
  • +
  • OPRICOVIC, S. Multicriteria Optimization of Civil Engineering Systems. Faculty of Civil Engineering, Belgrade, 1998. — Introdução do VIKOR.
  • +
  • OPRICOVIC, S.; TZENG, G. H. Compromise solution by MCDM methods: A comparative analysis of VIKOR and TOPSIS. European J. Operational Research, 156(2):445–455, 2004.
  • +
  • BRANS, J. P.; VINCKE, P. A preference ranking organisation method: The PROMETHEE method. Management Science, 31(6):647–656, 1985.
  • +
  • BELTON, V.; GEAR, T. On a short-coming of Saaty's method of analytic hierarchies. Omega, 11(3):228–230, 1983. — Documentação do fenômeno de rank reversal.
  • +
+
+ +
+
🎲 Incerteza Preditiva & Conformal Prediction
+
    +
  • VOVK, V.; GAMMERMAN, A.; SHAFER, G. Algorithmic Learning in a Random World. Springer, 2005. — Fundação teórica da conformal prediction com garantia de cobertura finita.
  • +
  • ANGELOPOULOS, A. N.; BATES, S. A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification. arXiv:2107.07511, 2021. — Referência moderna recomendada.
  • +
  • GAL, Y.; GHAHRAMANI, Z. Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning. ICML, 2016. — Fundação do MC Dropout.
  • +
  • LAKSHMINARAYANAN, B.; PRITZEL, A.; BLUNDELL, C. Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles. NeurIPS, 2017.
  • +
+
+ +
+
🌲 XGBoost & Baselines Tabulares
+
    +
  • CHEN, T.; GUESTRIN, C. XGBoost: A Scalable Tree Boosting System. KDD '16, 785–794, 2016. — Algoritmo do baseline.
  • +
  • GRINSZTAJN, L.; OYALLON, E.; VAROQUAUX, G. Why do tree-based models still outperform deep learning on typical tabular data? NeurIPS, 2022. — Justifica o uso de baseline tabular.
  • +
+
+ +
+
🔐 Segurança de Serialização
+
    +
  • MITRE CWE-502. Deserialization of Untrusted Data. — Classificação formal do risco do pickle.
  • +
  • Python Security Documentation. "The pickle module is not secure. Only unpickle data you trust." — Aviso oficial na documentação Python.
  • +
+
@@ -1258,7 +1939,6 @@

Sobre o Autor e o Projeto

🏛️ UNESP – Campus Araraquara
🔬 Depto. de Engenharia Química
🎓 PIBIC/CNPq
- 🧪 FAPESP – Suporte laboratorial @@ -1269,7 +1949,15 @@

Sobre o Autor e o Projeto

📌
Citação
-
Ao utilizar ou citar esta ferramenta em pesquisas ou projetos de engenharia, favor referenciar: LOPES, R. A. P. CSTR Simulator & Optimizer — Surrogate modeling e otimização multi-objetivo de reatores CSTR. PIBIC/CNPq, UNESP, Araraquara, 2025.
+
Ao utilizar ou citar esta ferramenta em pesquisas ou projetos de engenharia, favor referenciar: LOPES, R. A. P. CSTRChemIA — Surrogate modeling, quantificação de incerteza (conformal prediction) e otimização multi-objetivo (NSGA-II/NSGA-III com restrições nativas) de reatores CSTR. PIBIC/CNPq, UNESP, Araraquara, 2025.
+
+ + +
+
🧬
+
+
Filosofia do projeto
+
O CSTRChemIA é concebido com foco em confiabilidade industrial: módulos segmentados, 46 testes automatizados, ausência de vulnerabilidades de serialização (sem pickle no caminho feliz), trilha de auditoria completa (SHA-256 + seeds + manifesto) e métodos estatísticos rigorosos (conformal prediction, MCDM com consenso). O software combina protótipo de pesquisa com rastreabilidade compatível com good manufacturing practices.
@@ -1280,8 +1968,8 @@

Sobre o Autor e o Projeto

© 2025 Rafael Alexandre de Pinho Lopes — PIBIC/CNPq · UNESP Araraquara
- CSTR Simulator & Optimizer v1.0  ·  - Dash + TensorFlow + pymoo + SciPy  ·  + CSTRChemIA v1.0  ·  + Dash 2.9+ · TensorFlow 2.16 · pymoo 0.6 · SciPy · scikit-learn · XGBoost  ·  IQ UNESP
diff --git a/CSTRChemIA/core/__init__.py b/CSTRChemIA/core/__init__.py new file mode 100644 index 0000000..d2b03b1 --- /dev/null +++ b/CSTRChemIA/core/__init__.py @@ -0,0 +1,44 @@ +""" +core — infraestrutura central do CSTRChemIA. + +Este pacote centraliza código transversal usado por todas as camadas: +logging seguro no Windows, configurações, constantes de domínio, +exceções customizadas, tipos e utilidades genéricas. +""" + +from core.constants import ( + DEFAULT_FEATURE_BOUNDS, + DEFAULT_FEATURES, + DEFAULT_TARGETS, + N_FEATURES, + N_TARGETS, +) +from core.exceptions import ( + ConfigurationError, + CSTRChemIAError, + ModelNotFoundError, + OptimizationError, + SimulationError, + TrainingError, +) +from core.logging import get_logger, safe_print, setup_logging +from core.settings import Settings, get_settings + +__all__ = [ + "DEFAULT_FEATURES", + "DEFAULT_FEATURE_BOUNDS", + "DEFAULT_TARGETS", + "N_FEATURES", + "N_TARGETS", + "CSTRChemIAError", + "ConfigurationError", + "ModelNotFoundError", + "OptimizationError", + "Settings", + "SimulationError", + "TrainingError", + "get_logger", + "get_settings", + "safe_print", + "setup_logging", +] diff --git a/CSTRChemIA/core/constants.py b/CSTRChemIA/core/constants.py new file mode 100644 index 0000000..29dd076 --- /dev/null +++ b/CSTRChemIA/core/constants.py @@ -0,0 +1,116 @@ +""" +Constantes de domínio do CSTRChemIA. + +12 features e 8 targets do modelo surrogate, com descrições e unidades +usadas pela UI e pelos serviços. Fonte autoritativa — qualquer código +que referencie "vazao_feed", "CA0", etc. deve importar daqui. +""" + +from __future__ import annotations + +from typing import Final + +# --------------------------------------------------------------------------- +# FEATURES (12) — entradas do modelo surrogate +# --------------------------------------------------------------------------- +DEFAULT_FEATURES: Final[list[str]] = [ + "vazao_feed", # Vazão de alimentação [m3/s] + "CA0_feed", # Concentração de A no feed [mol/m3] + "CB0_feed", # Concentração de B no feed [mol/m3] + "Tf_feed", # Temperatura do feed [K] + "T_amb_feed", # Temperatura ambiente [K] + "T_obs", # Temperatura observada [K] + "valve_pos", # Posição da válvula [-] + "w_j", # Vazão da jaqueta [kg/s] + "flag_falha_valvula", # Flag de falha da válvula [0/1] + "flag_manutencao", # Flag de manutenção [0/1] + "flag_falha_sensor_T", # Flag de falha no sensor T [0/1] + "flag_falha_comunicacao", # Flag de falha de comunicação [0/1] +] + +# --------------------------------------------------------------------------- +# TARGETS (8) — saídas do modelo surrogate +# --------------------------------------------------------------------------- +DEFAULT_TARGETS: Final[list[str]] = [ + "CA0", # Concentração de A [mol/m3] + "CB0", # Concentração de B [mol/m3] + "CP0", # Concentração de P [mol/m3] + "CS0", # Concentração de S [mol/m3] + "T0", # Temperatura interna [K] + "X", # Conversão [-] + "fouling_thickness", # Espessura do fouling [m] + "cat_activity", # Atividade do catalisador [-] +] + +N_FEATURES: Final[int] = len(DEFAULT_FEATURES) +N_TARGETS: Final[int] = len(DEFAULT_TARGETS) + +# --------------------------------------------------------------------------- +# Descrições humanas (label, unidade) — usadas pela UI +# --------------------------------------------------------------------------- +TARGET_DESCRIPTIONS: Final[dict[str, tuple[str, str]]] = { + "CA0": ("Concentração de A", "mol/m3"), + "CB0": ("Concentração de B", "mol/m3"), + "CP0": ("Concentração de P", "mol/m3"), + "CS0": ("Concentração de S", "mol/m3"), + "T0": ("Temperatura interna", "K"), + "X": ("Conversão", "--"), + "fouling_thickness":("Espessura fouling", "m"), + "cat_activity": ("Atividade catalisador", "--"), +} + +FEATURE_DESCRIPTIONS: Final[dict[str, tuple[str, str]]] = { + "vazao_feed": ("Vazão de alimentação", "m3/s"), + "CA0_feed": ("Concentração A no feed", "mol/m3"), + "CB0_feed": ("Concentração B no feed", "mol/m3"), + "Tf_feed": ("Temperatura do feed", "K"), + "T_amb_feed": ("Temperatura ambiente", "K"), + "T_obs": ("Temperatura observada", "K"), + "valve_pos": ("Posição da válvula", "-"), + "w_j": ("Vazão da jaqueta", "kg/s"), + "flag_falha_valvula": ("Flag falha válvula", "0/1"), + "flag_manutencao": ("Flag manutenção", "0/1"), + "flag_falha_sensor_T": ("Flag falha sensor T", "0/1"), + "flag_falha_comunicacao": ("Flag falha comunicação", "0/1"), +} + +# --------------------------------------------------------------------------- +# Arquiteturas de modelo surrogate suportadas +# --------------------------------------------------------------------------- +SUPPORTED_ARCHITECTURES: Final[tuple[str, ...]] = ("MLP", "RNN", "CNN") + +# Mapeamento arquitetura -> arquivo .keras +MODEL_FILENAMES: Final[dict[str, str]] = { + "MLP": "CSTR_MLP_Surrogate.keras", + "RNN": "CSTR_RNN_Surrogate.keras", + "CNN": "CSTR_CNN_Surrogate.keras", +} + +SCALER_X_FILENAME: Final[str] = "scalerX.pkl" +SCALER_Y_FILENAME: Final[str] = "scalerY.pkl" + +# --------------------------------------------------------------------------- +# Bounds conservadores para otimização — usados quando usuário não customiza +# --------------------------------------------------------------------------- +DEFAULT_FEATURE_BOUNDS: Final[dict[str, tuple[float, float]]] = { + "vazao_feed": (1.0e-5, 1.0e-2), + "CA0_feed": (100.0, 2000.0), + "CB0_feed": (100.0, 2000.0), + "Tf_feed": (280.0, 360.0), + "T_amb_feed": (280.0, 320.0), + "T_obs": (280.0, 400.0), + "valve_pos": (0.0, 1.0), + "w_j": (0.01, 10.0), + "flag_falha_valvula": (0.0, 0.0), + "flag_manutencao": (0.0, 0.0), + "flag_falha_sensor_T": (0.0, 0.0), + "flag_falha_comunicacao": (0.0, 0.0), +} + +# --------------------------------------------------------------------------- +# Paleta de cores Plotly qualitative — usada em gráficos +# --------------------------------------------------------------------------- +PLOT_COLORS: Final[list[str]] = [ + "#636EFA", "#EF553B", "#00CC96", "#AB63FA", "#FFA15A", + "#19D3F3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52", +] diff --git a/CSTRChemIA/core/data_validation.py b/CSTRChemIA/core/data_validation.py new file mode 100644 index 0000000..f3f4c61 --- /dev/null +++ b/CSTRChemIA/core/data_validation.py @@ -0,0 +1,449 @@ +""" +Validação contratual de datasets (features e targets). + +Motivação +--------- +``np.isfinite(arr).all()`` diz apenas *se* há NaN/Inf, não *onde* nem +*quantos*. Nos CSVs de treino do CSTRChemIA é comum ter linhas +corrompidas por falhas de simulação (p.ex. 1 linha em 50k com NaN em +``T_obs``). A prática atual no ``train_surrogate.py`` é imprimir um +aviso e seguir — o que contamina a rede silenciosamente. + +Este módulo entrega um relatório estruturado (:class:`ValidationReport`) +com contagens e **índices** das linhas ofensoras, e uma função +:func:`clean_dataset` que remove linhas inválidas preservando +alinhamento X↔y. + +Exemplo +------- +:: + + from core.data_validation import validate_features, clean_dataset + + report = validate_features(X, bounds=TRAINING_BOUNDS) + print(report.summary()) + if not report.is_valid: + X_clean, y_clean, mask, _ = clean_dataset(X, y, bounds=TRAINING_BOUNDS) + print(f"Mantidas {mask.sum()}/{len(mask)} linhas") + +Design +------ +* **Sem dependência de pandas** — opera em ``np.ndarray``. Um helper + ``validate_dataframe`` aceita ``pd.DataFrame`` quando disponível. +* **Sem `raise` por violação de bounds** — bounds são *soft warnings*. + Violações de shape/NaN/Inf/flags **fora de {0,1}** são *hard errors* + opcionalmente levantados com ``strict=True``. +* **Row-level**: retorna quais linhas violam cada regra, não só contagens. +""" + +from __future__ import annotations + +from collections.abc import Sequence +from dataclasses import dataclass, field +from typing import Any + +import numpy as np + +from core.constants import ( + DEFAULT_FEATURES, + DEFAULT_TARGETS, + N_FEATURES, + N_TARGETS, +) +from core.exceptions import DataValidationError + +# ══════════════════════════════════════════════════════════════════════════════ +# CONSTANTES +# ══════════════════════════════════════════════════════════════════════════════ +#: Nomes das colunas binárias (flag_*) — devem conter apenas {0, 1}. +FLAG_COLUMNS: tuple[str, ...] = tuple( + f for f in DEFAULT_FEATURES if f.startswith("flag_") +) + +#: Bounds conservadores recomendados para VALIDAÇÃO de dados de treino +#: (não confundir com ``DEFAULT_FEATURE_BOUNDS`` em ``core.constants``, +#: que são bounds de OTIMIZAÇÃO — por isso deixam flags em {0,0}). +TRAINING_FEATURE_BOUNDS: dict[str, tuple[float, float]] = { + "vazao_feed": (0.0, 1.0), # m3/s (positivo) + "CA0_feed": (0.0, 1.0e4), # mol/m3 + "CB0_feed": (0.0, 1.0e4), + "Tf_feed": (200.0, 500.0), # K + "T_amb_feed": (200.0, 400.0), + "T_obs": (200.0, 600.0), + "valve_pos": (0.0, 1.0), + "w_j": (0.0, 100.0), # kg/s + "flag_falha_valvula": (0.0, 1.0), + "flag_manutencao": (0.0, 1.0), + "flag_falha_sensor_T": (0.0, 1.0), + "flag_falha_comunicacao": (0.0, 1.0), +} + +TRAINING_TARGET_BOUNDS: dict[str, tuple[float, float]] = { + "CA0": (0.0, 1.0e4), + "CB0": (0.0, 1.0e4), + "CP0": (0.0, 1.0e4), + "CS0": (0.0, 1.0e4), + "T0": (200.0, 600.0), + "X": (-0.1, 1.1), # tolera ruído numérico em [0,1] + "fouling_thickness": (0.0, 1.0), # metros + "cat_activity": (-0.1, 1.1), +} + + +# ══════════════════════════════════════════════════════════════════════════════ +# RELATÓRIO +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(frozen=True, slots=True) +class ValidationReport: + """ + Resultado estruturado de :func:`validate_features` / :func:`validate_targets`. + + Atributos + --------- + n_rows + Número total de linhas analisadas. + n_cols + Número de colunas (features ou targets). + column_names + Nomes das colunas na ordem original. + nan_rows + Índices das linhas com qualquer NaN. + inf_rows + Índices das linhas com qualquer Inf (±∞). + bound_violations + ``{coluna: índices de linhas fora dos bounds}``. + flag_violations + ``{coluna: índices de linhas com valor ∉ {0, 1}}`` (apenas flags). + """ + + n_rows: int + n_cols: int + column_names: tuple[str, ...] + nan_rows: np.ndarray = field(default_factory=lambda: np.array([], dtype=np.int64)) + inf_rows: np.ndarray = field(default_factory=lambda: np.array([], dtype=np.int64)) + bound_violations: dict[str, np.ndarray] = field(default_factory=dict) + flag_violations: dict[str, np.ndarray] = field(default_factory=dict) + + # ------------------------------------------------------------------ props + @property + def n_nan(self) -> int: + return int(len(self.nan_rows)) + + @property + def n_inf(self) -> int: + return int(len(self.inf_rows)) + + @property + def n_bound_violations(self) -> int: + return sum(int(len(v)) for v in self.bound_violations.values()) + + @property + def n_flag_violations(self) -> int: + return sum(int(len(v)) for v in self.flag_violations.values()) + + @property + def is_valid(self) -> bool: + """True quando não há NaN/Inf e flags estão em {0,1}. + + Bounds são *soft warnings* e não reprovam o dataset por si só. + """ + return self.n_nan == 0 and self.n_inf == 0 and self.n_flag_violations == 0 + + @property + def is_clean(self) -> bool: + """Mais estrito que :attr:`is_valid` — também exige zero bound violations.""" + return self.is_valid and self.n_bound_violations == 0 + + # ----------------------------------------------------------------- utils + def offending_rows(self) -> np.ndarray: + """Índices únicos de linhas com *qualquer* violação (para drop).""" + parts: list[np.ndarray] = [self.nan_rows, self.inf_rows] + parts.extend(self.bound_violations.values()) + parts.extend(self.flag_violations.values()) + if not parts: + return np.array([], dtype=np.int64) + return np.unique(np.concatenate(parts)).astype(np.int64) + + def summary(self, *, max_cols: int = 12) -> str: + """String legível para logs/UI.""" + lines = [ + f"ValidationReport: {self.n_rows} linhas × {self.n_cols} colunas", + f" NaN: {self.n_nan} linhas", + f" Inf: {self.n_inf} linhas", + ] + if self.flag_violations: + lines.append(" Flags fora de {0,1}:") + for name, idxs in list(self.flag_violations.items())[:max_cols]: + lines.append(f" - {name}: {len(idxs)} linhas") + if self.bound_violations: + lines.append(" Violações de bounds:") + for name, idxs in list(self.bound_violations.items())[:max_cols]: + lines.append(f" - {name}: {len(idxs)} linhas") + verdict = "OK" if self.is_valid else "FALHA" + lines.append(f" Veredito (strict flags+finitude): {verdict}") + return "\n".join(lines) + + +# ══════════════════════════════════════════════════════════════════════════════ +# VALIDAÇÃO +# ══════════════════════════════════════════════════════════════════════════════ +def _check_shape( + arr: np.ndarray, + *, + expected_cols: int, + label: str, +) -> np.ndarray: + """Normaliza para 2D e checa shape; levanta DataValidationError em mismatch.""" + arr = np.asarray(arr, dtype=np.float64) + if arr.ndim == 1: + arr = arr.reshape(1, -1) + if arr.ndim != 2 or arr.shape[1] != expected_cols: + raise DataValidationError( + f"{label}: esperado shape (n, {expected_cols}), recebido {arr.shape}" + ) + return arr + + +def _find_nonfinite(arr: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + """Retorna (nan_rows, inf_rows) — índices únicos de linhas com NaN e Inf.""" + nan_mask_row = np.any(np.isnan(arr), axis=1) + inf_mask_row = np.any(np.isinf(arr), axis=1) + return ( + np.where(nan_mask_row)[0].astype(np.int64), + np.where(inf_mask_row)[0].astype(np.int64), + ) + + +def _check_bounds( + arr: np.ndarray, + column_names: Sequence[str], + bounds: dict[str, tuple[float, float]], +) -> dict[str, np.ndarray]: + """Para cada coluna em `bounds`, retorna índices de linhas fora de [lo, hi].""" + violations: dict[str, np.ndarray] = {} + for i, name in enumerate(column_names): + if name not in bounds: + continue + lo, hi = bounds[name] + # Ignora NaN/Inf aqui — essas linhas já são contadas em nan/inf. + col = arr[:, i] + finite = np.isfinite(col) + bad = finite & ((col < lo) | (col > hi)) + if bad.any(): + violations[name] = np.where(bad)[0].astype(np.int64) + return violations + + +def _check_flags( + arr: np.ndarray, + column_names: Sequence[str], + flag_columns: Sequence[str], +) -> dict[str, np.ndarray]: + """Flags devem ser exatamente 0 ou 1 (tolerância ±1e-9 para floats arredondados).""" + violations: dict[str, np.ndarray] = {} + name_to_idx = {n: i for i, n in enumerate(column_names)} + for name in flag_columns: + if name not in name_to_idx: + continue + col = arr[:, name_to_idx[name]] + finite = np.isfinite(col) + is_zero = np.abs(col) < 1e-9 + is_one = np.abs(col - 1.0) < 1e-9 + bad = finite & ~(is_zero | is_one) + if bad.any(): + violations[name] = np.where(bad)[0].astype(np.int64) + return violations + + +# ------------------------------------------------------------------ pública +def validate_features( + X: np.ndarray, + *, + feature_names: Sequence[str] = DEFAULT_FEATURES, + bounds: dict[str, tuple[float, float]] | None = None, + flag_columns: Sequence[str] = FLAG_COLUMNS, + strict: bool = False, +) -> ValidationReport: + """ + Valida uma matriz de features. + + Parameters + ---------- + X + Shape ``(n, n_features)``. + feature_names + Nomes das colunas na ordem. Default: ``DEFAULT_FEATURES``. + bounds + Se fornecido, checa ``lo ≤ x ≤ hi`` por coluna. Violação é + *soft* (reportada mas não faz ``is_valid=False``). + flag_columns + Colunas binárias que devem conter apenas {0, 1}. + strict + Se ``True``, levanta :class:`DataValidationError` em vez de só + reportar quando há NaN/Inf ou flags inválidas. + """ + X = _check_shape(X, expected_cols=len(feature_names), label="validate_features") + + nan_rows, inf_rows = _find_nonfinite(X) + bound_viol = _check_bounds(X, feature_names, bounds) if bounds else {} + flag_viol = _check_flags(X, feature_names, flag_columns) + + report = ValidationReport( + n_rows=X.shape[0], + n_cols=X.shape[1], + column_names=tuple(feature_names), + nan_rows=nan_rows, + inf_rows=inf_rows, + bound_violations=bound_viol, + flag_violations=flag_viol, + ) + + if strict and not report.is_valid: + raise DataValidationError( + f"Dados inválidos:\n{report.summary()}" + ) + return report + + +def validate_targets( + y: np.ndarray, + *, + target_names: Sequence[str] = DEFAULT_TARGETS, + bounds: dict[str, tuple[float, float]] | None = None, + strict: bool = False, +) -> ValidationReport: + """Análogo de :func:`validate_features` para targets (sem flags).""" + y = _check_shape(y, expected_cols=len(target_names), label="validate_targets") + + nan_rows, inf_rows = _find_nonfinite(y) + bound_viol = _check_bounds(y, target_names, bounds) if bounds else {} + + report = ValidationReport( + n_rows=y.shape[0], + n_cols=y.shape[1], + column_names=tuple(target_names), + nan_rows=nan_rows, + inf_rows=inf_rows, + bound_violations=bound_viol, + flag_violations={}, + ) + + if strict and not report.is_valid: + raise DataValidationError( + f"Targets inválidos:\n{report.summary()}" + ) + return report + + +# ══════════════════════════════════════════════════════════════════════════════ +# LIMPEZA +# ══════════════════════════════════════════════════════════════════════════════ +def clean_dataset( + X: np.ndarray, + y: np.ndarray | None = None, + *, + feature_names: Sequence[str] = DEFAULT_FEATURES, + target_names: Sequence[str] = DEFAULT_TARGETS, + feature_bounds: dict[str, tuple[float, float]] | None = None, + target_bounds: dict[str, tuple[float, float]] | None = None, + drop_bound_violations: bool = False, +) -> tuple[np.ndarray, np.ndarray | None, np.ndarray, dict[str, ValidationReport]]: + """ + Remove linhas inválidas de ``X`` (e ``y``, se fornecido), preservando alinhamento. + + Parameters + ---------- + drop_bound_violations + Se ``True``, também descarta linhas com qualquer bound violation. + Se ``False`` (default), só descarta NaN/Inf/flag inválida. + + Returns + ------- + X_clean, y_clean, kept_mask, reports + ``kept_mask[i] == True`` se a linha original i foi mantida. + ``reports = {"features": ..., "targets": ...}``. + """ + rep_X = validate_features( + X, + feature_names=feature_names, + bounds=feature_bounds, + ) + rep_y: ValidationReport | None = None + if y is not None: + rep_y = validate_targets( + y, + target_names=target_names, + bounds=target_bounds, + ) + if rep_y.n_rows != rep_X.n_rows: + raise DataValidationError( + f"X e y têm número de linhas diferente: " + f"X={rep_X.n_rows}, y={rep_y.n_rows}" + ) + + # Construção do mask de linhas a descartar + drop_idx_parts: list[np.ndarray] = [rep_X.nan_rows, rep_X.inf_rows] + drop_idx_parts.extend(rep_X.flag_violations.values()) + if drop_bound_violations: + drop_idx_parts.extend(rep_X.bound_violations.values()) + if rep_y is not None: + drop_idx_parts.extend([rep_y.nan_rows, rep_y.inf_rows]) + if drop_bound_violations: + drop_idx_parts.extend(rep_y.bound_violations.values()) + + drop_idx = ( + np.unique(np.concatenate(drop_idx_parts)).astype(np.int64) + if drop_idx_parts and any(len(p) for p in drop_idx_parts) + else np.array([], dtype=np.int64) + ) + + n = rep_X.n_rows + keep = np.ones(n, dtype=bool) + if len(drop_idx): + keep[drop_idx] = False + + X_clean = X[keep] + y_clean = y[keep] if y is not None else None + + reports: dict[str, ValidationReport] = {"features": rep_X} + if rep_y is not None: + reports["targets"] = rep_y + return X_clean, y_clean, keep, reports + + +# ══════════════════════════════════════════════════════════════════════════════ +# DATAFRAME HELPER +# ══════════════════════════════════════════════════════════════════════════════ +def validate_dataframe( + df: Any, + *, + kind: str = "features", + bounds: dict[str, tuple[float, float]] | None = None, + strict: bool = False, +) -> ValidationReport: + """ + Conveniência para validar ``pd.DataFrame`` diretamente. + + Requer pandas instalado. ``kind`` é ``"features"`` ou ``"targets"`` + — determina a ordem/nomes canônicos esperados. + """ + if kind == "features": + names = DEFAULT_FEATURES + n_expected = N_FEATURES + elif kind == "targets": + names = DEFAULT_TARGETS + n_expected = N_TARGETS + else: + raise ValueError(f"kind deve ser 'features' ou 'targets', recebi {kind!r}") + + missing = [c for c in names if c not in df.columns] + if missing: + raise DataValidationError( + f"Colunas ausentes no DataFrame ({kind}): {missing}" + ) + arr = df[list(names)].to_numpy(dtype=np.float64) + assert arr.shape[1] == n_expected + + if kind == "features": + return validate_features(arr, feature_names=names, bounds=bounds, strict=strict) + return validate_targets(arr, target_names=names, bounds=bounds, strict=strict) diff --git a/CSTRChemIA/core/exceptions.py b/CSTRChemIA/core/exceptions.py new file mode 100644 index 0000000..39f0724 --- /dev/null +++ b/CSTRChemIA/core/exceptions.py @@ -0,0 +1,41 @@ +""" +Hierarquia de exceções customizadas do CSTRChemIA. + +Usar exceções específicas (em vez de ``Exception`` genérico) permite +tratamento preciso no nível de callback/UI e mensagens de erro úteis +para o usuário final. +""" + +from __future__ import annotations + + +class CSTRChemIAError(Exception): + """Base de todas as exceções do projeto.""" + + +class ConfigurationError(CSTRChemIAError): + """Erro em configurações (variáveis de ambiente, arquivos ausentes).""" + + +class ModelNotFoundError(CSTRChemIAError): + """Modelo surrogate não encontrado em disco ou com artefatos incompletos.""" + + +class ModelLoadError(CSTRChemIAError): + """Falha ao carregar modelo/scalers (arquivos corrompidos ou incompatíveis).""" + + +class SimulationError(CSTRChemIAError): + """Falha em rotina de simulação (entrada inválida, predição inválida).""" + + +class OptimizationError(CSTRChemIAError): + """Falha em otimização NSGA-II (sem soluções viáveis, timeout, etc.).""" + + +class TrainingError(CSTRChemIAError): + """Falha no pipeline de treinamento (dados ausentes, arquitetura inválida).""" + + +class DataValidationError(CSTRChemIAError): + """Dados de entrada não passam em validação de esquema/faixas.""" diff --git a/CSTRChemIA/core/feature_engineering.py b/CSTRChemIA/core/feature_engineering.py new file mode 100644 index 0000000..e824060 --- /dev/null +++ b/CSTRChemIA/core/feature_engineering.py @@ -0,0 +1,199 @@ +""" +Feature engineering — derivadas físicas a partir das 12 features crus. + +Motivação +--------- +Modelos tabulares (MLP pequenos, XGBoost) se beneficiam fortemente de +features com significado físico. Em vez de forçar a rede a aprender +:math:`\\Delta T = T_{obs} - T_f`, entregamos isso pronto. + +As derivadas aqui são opcionais: o treino decide se inclui. O surrogate +hoje consome apenas as 12 features canônicas — este módulo é para +**baselines** (XGBoost, LightGBM) e para um eventual *v2* do surrogate +com entrada ampliada. + +Derivadas implementadas +----------------------- +* ``dT_obs_feed`` = T_obs - Tf_feed (driving force temperature) +* ``dT_feed_amb`` = Tf_feed - T_amb (heat loss proxy) +* ``CA_over_CB`` = CA0_feed / CB0_feed (razão de reagentes) +* ``C_total_feed`` = CA0_feed + CB0_feed (concentração total) +* ``valve_flow`` = valve_pos * vazao_feed (vazão efetiva) +* ``jacket_ratio`` = w_j / vazao_feed (razão refrigerante/feed) +* ``failure_any`` = max(flags 0..3) (qualquer falha) +* ``failure_count`` = sum(flags 0..3) (número de falhas ativas) +* ``log_vazao`` = log10(vazao_feed) (ordem de grandeza) +* ``log_wj`` = log10(w_j) + +API +--- +:: + + from core.feature_engineering import engineer_features + + X_ext = engineer_features(X_raw) # 12 → 22 colunas + X_ext = engineer_features(X_raw, include=['dT_obs_feed', 'valve_flow']) +""" + +from __future__ import annotations + +from typing import Callable, Iterable + +import numpy as np + +from core.constants import DEFAULT_FEATURES, N_FEATURES +from core.exceptions import DataValidationError + +# ══════════════════════════════════════════════════════════════════════════════ +# DEFINIÇÕES +# ══════════════════════════════════════════════════════════════════════════════ +#: Índices por nome canônico (resolvidos na carga do módulo). +_IDX = {name: i for i, name in enumerate(DEFAULT_FEATURES)} + +#: Pequeno epsilon para evitar divisão por zero em razões. +_EPS = 1e-12 + + +def _safe_div(a: np.ndarray, b: np.ndarray) -> np.ndarray: + """Divisão segura; zero/NaN no divisor vira 0 no resultado.""" + out = np.zeros_like(a, dtype=np.float64) + mask = np.abs(b) > _EPS + out[mask] = a[mask] / b[mask] + return out + + +def _safe_log10(a: np.ndarray) -> np.ndarray: + """log10 com clip inferior (≥ _EPS); evita -inf para zeros.""" + return np.log10(np.clip(a, _EPS, None)) + + +# ══════════════════════════════════════════════════════════════════════════════ +# DERIVADAS +# ══════════════════════════════════════════════════════════════════════════════ +DERIVATIONS: dict[str, tuple[str, Callable[[np.ndarray], np.ndarray]]] = { + # name -> (description, fn(X[n,12]) -> arr[n]) + "dT_obs_feed": ( + "T_obs − Tf_feed (driving force)", + lambda X: X[:, _IDX["T_obs"]] - X[:, _IDX["Tf_feed"]], + ), + "dT_feed_amb": ( + "Tf_feed − T_amb (perda térmica)", + lambda X: X[:, _IDX["Tf_feed"]] - X[:, _IDX["T_amb_feed"]], + ), + "dT_obs_amb": ( + "T_obs − T_amb", + lambda X: X[:, _IDX["T_obs"]] - X[:, _IDX["T_amb_feed"]], + ), + "CA_over_CB": ( + "CA0_feed / CB0_feed", + lambda X: _safe_div(X[:, _IDX["CA0_feed"]], X[:, _IDX["CB0_feed"]]), + ), + "C_total_feed": ( + "CA0_feed + CB0_feed", + lambda X: X[:, _IDX["CA0_feed"]] + X[:, _IDX["CB0_feed"]], + ), + "valve_flow": ( + "valve_pos · vazao_feed", + lambda X: X[:, _IDX["valve_pos"]] * X[:, _IDX["vazao_feed"]], + ), + "jacket_ratio": ( + "w_j / vazao_feed", + lambda X: _safe_div(X[:, _IDX["w_j"]], X[:, _IDX["vazao_feed"]]), + ), + "failure_any": ( + "max das 4 flags operacionais", + lambda X: np.max( + np.stack([X[:, _IDX[f]] for f in ( + "flag_falha_valvula", "flag_manutencao", + "flag_falha_sensor_T", "flag_falha_comunicacao")]), + axis=0, + ), + ), + "failure_count": ( + "soma das 4 flags operacionais", + lambda X: np.sum( + np.stack([X[:, _IDX[f]] for f in ( + "flag_falha_valvula", "flag_manutencao", + "flag_falha_sensor_T", "flag_falha_comunicacao")]), + axis=0, + ), + ), + "log_vazao": ( + "log10(vazao_feed)", + lambda X: _safe_log10(X[:, _IDX["vazao_feed"]]), + ), + "log_wj": ( + "log10(w_j)", + lambda X: _safe_log10(X[:, _IDX["w_j"]]), + ), +} + + +ALL_DERIVED_NAMES: tuple[str, ...] = tuple(DERIVATIONS.keys()) + + +# ══════════════════════════════════════════════════════════════════════════════ +# API +# ══════════════════════════════════════════════════════════════════════════════ +def engineer_features( + X: np.ndarray, + *, + include: Iterable[str] | None = None, + keep_original: bool = True, +) -> tuple[np.ndarray, list[str]]: + """ + Enriquece a matriz de features com derivadas físicas. + + Parameters + ---------- + X + Shape ``(n, 12)`` na ordem canônica (``core.constants.DEFAULT_FEATURES``). + include + Lista de nomes de derivadas a adicionar. ``None`` = todas (11 derivadas). + keep_original + Se ``True`` (default), concatena originais+derivadas. Se ``False``, + retorna apenas as derivadas (uso raro, para ablation). + + Returns + ------- + (X_out, feature_names) + ``X_out`` shape ``(n, 12+k)`` ou ``(n, k)``; ``feature_names`` tem os + nomes na mesma ordem das colunas. + + Raises + ------ + DataValidationError + Se shape de ``X`` não for ``(n, 12)``, ou se uma derivada solicitada + não existe. + """ + if X.ndim == 1: + X = X.reshape(1, -1) + if X.ndim != 2 or X.shape[1] != N_FEATURES: + raise DataValidationError( + f"engineer_features: esperado (n, {N_FEATURES}), recebido {X.shape}" + ) + X = np.asarray(X, dtype=np.float64) + + names = list(ALL_DERIVED_NAMES) if include is None else list(include) + unknown = [n for n in names if n not in DERIVATIONS] + if unknown: + raise DataValidationError( + f"Derivadas desconhecidas: {unknown}. " + f"Disponíveis: {list(ALL_DERIVED_NAMES)}" + ) + + cols = [DERIVATIONS[n][1](X) for n in names] + derived = np.stack(cols, axis=1) if cols else np.empty((X.shape[0], 0)) + + if keep_original: + X_out = np.hstack([X, derived]) + return X_out, list(DEFAULT_FEATURES) + names + return derived, names + + +def describe_derivations() -> list[dict[str, str]]: + """Documentação auto-gerada das derivadas — útil para UI/docs.""" + return [ + {"name": name, "description": desc} + for name, (desc, _) in DERIVATIONS.items() + ] diff --git a/CSTRChemIA/core/i18n.py b/CSTRChemIA/core/i18n.py new file mode 100644 index 0000000..c56cb4f --- /dev/null +++ b/CSTRChemIA/core/i18n.py @@ -0,0 +1,1588 @@ +""" +Sistema de internacionalização (i18n) — suporte a múltiplos idiomas. + +Uso típico:: + + from core.i18n import t, get_lang + + # Em layouts / callbacks + label = t("tab_simulation", lang) # "⚗ Simulação" / "⚗ Simulation" / "⚗ Simulación" + +Um :data:`TRANSLATIONS` armazena os pares ``key → texto`` por idioma. Chaves +faltantes caem para o idioma padrão (PT-BR), e chaves ausentes no default +retornam a própria chave — facilitando a identificação visual de textos ainda +não traduzidos. +""" +from __future__ import annotations + +from typing import Any + + +# ══════════════════════════════════════════════════════════════════════════════ +# IDIOMAS SUPORTADOS +# ══════════════════════════════════════════════════════════════════════════════ +#: Códigos ISO + rótulos com bandeira. Essa lista alimenta o dropdown do +#: seletor de idioma no header. +LANGUAGES: list[dict[str, str]] = [ + {"value": "pt", "label": "🇧🇷 Português"}, + {"value": "en", "label": "🇺🇸 English"}, + {"value": "es", "label": "🇪🇸 Español"}, +] + +#: Idioma padrão. Usado como fallback quando o store está vazio ou a chave +#: não existe no idioma solicitado. +DEFAULT_LANG: str = "pt" + +#: Conjunto de códigos válidos — usado em validação. +VALID_LANG_CODES: frozenset[str] = frozenset(l["value"] for l in LANGUAGES) + + +# ══════════════════════════════════════════════════════════════════════════════ +# DICIONÁRIO DE TRADUÇÕES +# ══════════════════════════════════════════════════════════════════════════════ +TRANSLATIONS: dict[str, dict[str, str]] = { + # ───────────────────────────────────────────────────────────────────── + # PORTUGUÊS (BR) + # ───────────────────────────────────────────────────────────────────── + "pt": { + # ─ Header ──────────────────────────────────────────────────────── + "app_title": "CSTRChemIA - CSTR Simulator & Optimizer", + "app_subtitle": "Simulação e otimização multi-objetivo de reatores CSTR", + "lang_label": "Idioma", + "footer_text": "CSTRChemIA - CSTR Simulator & Optimizer — Powered by Dash + TensorFlow + pymoo", + + # ─ Tabs ────────────────────────────────────────────────────────── + "tab_simulation": "⚗ Simulação", + "tab_optimization": "🎯 Otimização", + "tab_training": "🎓 Treinamento", + "tab_analytics": "📊 Análises", + "tab_help": "❔ Ajuda", + "tab_about": "ℹ Sobre", + + # ─ Seções comuns (cards) ───────────────────────────────────────── + "section_surrogate_model": "Modelo Substituto", + "section_process_variables": "Variáveis de Processo", + "section_operational_flags": "Flags Operacionais", + "section_operational_constraints": "Restrições Operacionais", + "section_nsga_params": "Parâmetros NSGA-II", + "section_optimization_summary": "Resumo da Otimização", + "section_optimization_results": "Resultados da Otimização", + "section_training_structure": "Estrutura dos Dados de Treinamento", + "section_training_history": "Histórico de Treinamentos", + "section_data_files_manager": "Gerenciador de Arquivos de Dados", + + # ─ Campos de formulário ────────────────────────────────────────── + "field_architecture": "Arquitetura", + "field_architecture_sel": "Arquitetura selecionada:", + "field_status": "Estado:", + "field_feed_flow": "Vazão de Alimentação", + "field_ca0_feed": "CA₀ Alim.", + "field_cb0_feed": "CB₀ Alim.", + "field_tf_feed": "Tf Alim.", + "field_tamb_feed": "T amb Alim.", + "field_tobs": "T observada", + "field_valve_position": "Posição da Válvula (0–1)", + "field_jacket_flow": "Vazão da Jaqueta w_j", + "field_t_max": "T0 Máxima", + "field_conversion_min": "Conversão Mínima (%)", + "field_cat_activity_min": "Atividade Catalítica Mínima", + "field_fouling_max": "Incrustação Máxima", + "field_cp0_min": "CP0 Mínimo", + "field_vazao_min": "Vazão mín.", + "field_vazao_max": "Vazão máx.", + "field_valve_min": "Válvula mín. (%)", + "field_valve_max": "Válvula máx. (%)", + "field_tobs_min": "T_obs mín.", + "field_tobs_max": "T_obs máx.", + "field_wj_min": "w_j mín.", + "field_wj_max": "w_j máx.", + "field_pop_size": "Tamanho da População", + "field_n_gen": "Número de Gerações", + "field_crossover_prob": "Prob. Crossover (SBX)", + "field_mutation_prob": "Prob. Mutação (PM)", + + # ─ Sub-cabeçalhos / seções internas ────────────────────────────── + "subsection_process_limits": "Limites de processo", + "subsection_production_limits": "Restrições de produção", + "subsection_search_ranges": "Faixas de busca (variáveis de decisão)", + + # ─ KPIs (títulos dos cards) ────────────────────────────────────── + "kpi_conversion_x": "Conversão X", + "kpi_t0_predicted": "T₀ Predita", + "kpi_ca0_predicted": "CA₀ Predita", + "kpi_cb0_predicted": "CB₀ Predita", + "kpi_cp0_product": "CP₀ (Produto)", + "kpi_cs0_byproduct": "CS₀ (Subprod.)", + "kpi_fouling": "Incrustação", + "kpi_cat_activity": "Ativ. Catalítica", + + # ─ Flags ───────────────────────────────────────────────────────── + "flag_valve_failure": "Falha na Válvula", + "flag_maintenance": "Manutenção", + "flag_sensor_t_failure": "Falha Sensor T", + "flag_comm_failure": "Falha Comunicação", + "flag_valve_tooltip": "Ativa se houver falha na válvula de controle", + "flag_maint_tooltip": "Indica que o reator passou em manutenção", + "flag_sensor_t_tooltip": "Sensor de temperatura com defeito", + "flag_comm_tooltip": "Perda de comunicação com o CLP", + + # ─ Botões / ações ──────────────────────────────────────────────── + "btn_run_optimization": "Executar Otimização", + "btn_start_training": "Iniciar Treinamento", + "btn_update_metrics": "Atualizar métricas", + "btn_export_csv": "Exportar CSV", + "btn_refresh": "Atualizar", + "btn_delete": "Apagar", + "btn_confirm": "Confirmar", + "btn_cancel": "Cancelar", + + # ─ Status / mensagens ──────────────────────────────────────────── + "status_waiting": "● Aguardando", + "status_awaiting_inputs": "Aguardando entradas…", + "status_operation_healthy": "✓ Operação saudável", + "status_operation_degraded": "⚠ Operação degradada", + "status_critical": "✗ Atenção: condição crítica", + "status_model_label": "Modelo", + "msg_prediction_failed": "Predição falhou", + "msg_invalid_prediction": "Predição fora dos limites físicos", + "msg_run_first": "Execute a otimização para ver os resultados.", + "msg_click_update": "Clique em 'Atualizar métricas' após treinar para ver os resultados.", + "msg_select_file": "(selecione um arquivo acima)", + + # ─ Training ────────────────────────────────────────────────────── + "training_logs": "Logs de Treinamento", + "training_features_title": "📥 Atributos (12):", + "training_targets_title": "📤 Alvos (8):", + + # ─ Analytics / DFM ─────────────────────────────────────────────── + "dfm_subtitle": "Visualize, baixe, apague ou adicione arquivos CSV ao repositório.", + "dfm_filter_kind": "🔍 Filtrar por tipo", + "dfm_filter_source": "📁 Filtrar por fonte", + "dfm_search": "🔎 Buscar (nome contém)", + "dfm_total_files": "Arquivos totais", + "dfm_total_rows": "Linhas totais", + "dfm_total_bytes": "Tamanho total", + "dfm_drop_files": "Arraste CSV aqui ou clique para selecionar", + + # ─ Miscelânea ──────────────────────────────────────────────────── + "info_general": "Informação", + "warning_general": "Atenção", + "error_general": "Erro", + "loading": "Carregando…", + "faixa": "Faixa", + + # ─ Páginas (título/subtítulo) ──────────────────────────────────── + "sim_page_title": "CSTR – Simulação", + "sim_page_subtitle": "Insira as condições de operação — o modelo substituto prediz concentrações, temperatura, conversão, incrustação e atividade catalítica em tempo real.", + "sim_results_section": "Resultados da Predição", + "opt_page_title": "CSTR — Otimização Multi-Objetivo", + "opt_page_subtitle": "NSGA-II encontra a frente de Pareto que maximiza X e minimiza a incrustação respeitando todas as restrições.", + "opt_info_alert": "O NSGA-II busca máxima conversão e mínima incrustação respeitando todas as restrições acima.", + "opt_results_header": "Resultados da Otimização", + "opt_feasible_table_title": "Tabela de Soluções Factíveis", + "training_page_title": "Treinar Modelo Substituto", + "training_page_subtitle": "Treinamento dos surrogates MLP / RNN / CNN com hiperparâmetros previamente otimizados", + "training_all_models": "Todos (MLP+RNN+CNN)", + "training_concentrations": "concentrações", + "training_internal_temp": "temperatura interna", + "training_conversion": "conversão", + "training_data_origin": "Origem dos dados", + "training_data_origin_text": "Arquivos em simulation/ (flat) ou ../Simulacoes/simulacao_CSTR/sim_*/observations/ (aninhado). Os hiperparâmetros vêm de training/best_hps_*.json e são sincronizados automaticamente antes do treino.", + "analytics_page_title": "Analytics — Dados & Benchmarking", + "analytics_page_subtitle": "Exploração detalhada do dataset de treino, distribuições, correlações e comparação quantitativa entre as três arquiteturas de surrogate.", + "analytics_card_title": "Explorador de Dados & Benchmark de Modelos", + "analytics_card_subtitle": "Visualize as distribuições do dataset de treino, correlações entre features e targets, e compare as arquiteturas MLP / RNN / CNN.", + "analytics_click_refresh": "Clique em 'Carregar / Atualizar' para ver as estatísticas.", + "analytics_load_data_msg": "Carregue os dados para ver a tabela.", + "analytics_stats_section": "Estatísticas Descritivas do Dataset", + "btn_load_refresh": "Carregar / Atualizar", + + # ─ FormText curtos (hints sob inputs) ──────────────────────────── + "ft_t_max": "Temperatura máxima permitida", + "ft_x_min": "X mínimo exigido", + "ft_cat_min": "cat_activity ≥ este valor", + "ft_fouling_max": "Espessura máxima de incrustação", + "ft_cp0_min": "Produção mínima de produto", + "ft_crossover_prob": "0.8–1.0 recomendado", + "ft_mutation_prob": "0.05–0.2 recomendado", + + # ─ Gráficos — Simulation ───────────────────────────────────────── + "chart_sim_targets": "Alvos Preditos", + "chart_sim_health": "Saúde Operacional", + "chart_sim_gauge": "Medidor de Conversão", + "chart_sim_donut": "Distribuição de Espécies", + "chart_sim_sensitivity": "Sensibilidade X × T_obs", + "chart_sim_model_comparison": "Comparação MLP vs RNN vs CNN", + "chart_sim_feature_contrib": "Contribuição dos Atributos (ΔX)", + "chart_sim_envelope": "Envelope Operacional (T_obs × Válvula → X)", + "chart_sim_history": "Histórico de Predições (últimas 30)", + + # ─ Gráficos — Optimization ─────────────────────────────────────── + "chart_opt_pareto": "Frente de Pareto: Conversão × Incrustação", + "chart_opt_parcoords": "Coordenadas Paralelas", + "chart_opt_convergence": "Convergência NSGA-II", + "chart_opt_3d": "Espaço 3D: X × Incrustação × Atividade Catalítica", + "chart_opt_heatmap": "Mapa Operacional: Vazão × T_obs", + "chart_opt_violin": "Distribuição das Saídas Ótimas", + "chart_opt_decision_space": "Espaço de Decisão (Matriz de Dispersão)", + "chart_opt_topsis": "Ranking TOPSIS Multi-Critério (Top-15)", + "chart_opt_cluster": "Agrupamentos K-Means da Frente de Pareto", + "chart_opt_hypervolume": "Hipervolume e Factibilidade por Geração", + + # ─ Gráficos — Training ─────────────────────────────────────────── + "chart_training_loss": "Curva de Perda (Treino vs Validação) — ao vivo", + "chart_training_metrics": "Métricas por Arquitetura (R², MAE, RMSE por alvo)", + "chart_training_radar": "Radar de Desempenho Global (MLP vs RNN vs CNN)", + + # ─ Gráficos — Analytics ────────────────────────────────────────── + "chart_analytics_feat_dist": "Distribuição dos Atributos (box plots normalizados)", + "chart_analytics_target_dist": "Distribuição dos Alvos (violin plots)", + "chart_analytics_corr": "Matriz de Correlação Atributos × Alvos", + "chart_analytics_metrics_bar": "Métricas por Alvo — Comparação MLP/RNN/CNN", + "chart_analytics_arch_radar": "Radar de Desempenho Global por Arquitetura", + "chart_analytics_pca": "Variância Explicada (PCA dos Atributos)", + "chart_analytics_error_dist": "Distribuição do Erro de Predição por Alvo", + + # ─ DFM — textos adicionais ─────────────────────────────────────── + "dfm_all": "Todos", + "dfm_all_fem": "Todas", + "dfm_click_refresh": "Clique em 🔄 Atualizar para listar os arquivos disponíveis.", + "dfm_kind_features": "Atributos", + "dfm_kind_targets": "Alvos", + "dfm_kind_complete": "Dados Completos", + "dfm_kind_observed": "Observados", + "dfm_kind_truth": "Verdade", + "dfm_kind_training_result": "Resultado Treino", + "dfm_kind_other": "Outros", + "dfm_preview": "Prévia", + "dfm_add_file_title": "Adicionar arquivo (features ou targets)", + "dfm_name_pattern_required": "Padrão de nome obrigatório", + "dfm_or": "ou", + "dfm_save_location_note": "O arquivo será salvo em CSTRChemIA/simulation/ (criado automaticamente se necessário). Colisões de nome recebem sufixo de timestamp.", + "dfm_drop_files_here": "Arraste arquivos aqui", + "dfm_or_click_to_select": "ou clique para selecionar (.csv)", + "dfm_confirm_delete_msg": "Tem certeza que deseja excluir este arquivo?\nEsta ação não pode ser desfeita.", + + # ─ Colunas da tabela de arquivos ───────────────────────────────── + "col_kind": "Tipo", + "col_file": "Arquivo", + "col_source": "Fonte", + "col_rows": "Linhas", + "col_cols": "Colunas", + "col_size": "Tamanho", + "col_modified": "Modificado", + "col_path": "Caminho", + + # ─ KPIs da Otimização (Optimization Summary) ───────────────────── + "kpi_feasible_solutions": "Soluções Factíveis", + "kpi_best_x": "Melhor X", + "kpi_min_fouling": "Mín. Incrustação", + "kpi_best_cat_act": "Melhor Ativ. Cat.", + "kpi_best_cp0": "Melhor CP₀", + "kpi_time": "Tempo", + "kpi_avg_x": "Média X", + "kpi_avg_fouling": "Média Incrustação", + "kpi_avg_t0": "Média T₀", + "kpi_hypervolume": "Hipervolume", + "kpi_spread": "Dispersão", + "msg_no_feasible": "Nenhuma solução factível encontrada. Relaxe as restrições.", + "msg_best_solution": "🏆 Melhor solução (maior X): ", + "label_flow": "Vazão", + "label_tobs": "T_obs", + "label_valve": "Válvula", + "label_t0": "T₀", + + # ─ KPIs Analytics / Dataset ────────────────────────────────────── + "kpi_total_samples": "Total de Amostras", + "kpi_train": "Treino", + "kpi_validation": "Validação", + "kpi_test": "Teste", + "kpi_features": "Atributos", + "kpi_targets": "Alvos", + + # ─ Tabela de estatísticas ──────────────────────────────────────── + "col_feature": "Atributo", + "col_target": "Alvo", + "col_mean": "Média", + "col_std": "Desvio Padrão", + "col_min_est": "Mín. estimado", + "col_max_est": "Máx. estimado", + "col_type": "Tipo", + "type_continuous": "Contínua", + "type_flag": "Flag", + + # ─ Títulos de gráficos (usados em callbacks) ───────────────────── + "cb_chart_state_predicted": "Estado Predito do Reator", + "cb_chart_operational_health": "Saúde Operacional", + "cb_chart_conversion_x": "Conversão X", + "cb_chart_species_dist": "Distribuição das Espécies", + "cb_chart_sensitivity": "Sensibilidade X / T₀ × T_obs", + "cb_chart_model_comp": "Comparação MLP/RNN/CNN (selecionado: {model})", + "cb_chart_delta_x_feature": "ΔX por Atributo (±1σ)", + "cb_chart_envelope": "Envelope Operacional: X(%)", + "cb_chart_history": "Histórico de Predições (últimas 30)", + "cb_chart_loss_curve": "Curva de Perda (Treino vs Validação)", + "cb_chart_metrics_arch": "Métricas por Arquitetura (MLP / RNN / CNN)", + "cb_chart_perf_radar": "Radar de Desempenho (normalizado, 1 = melhor)", + "cb_chart_feat_dist": "Distribuição dos Atributos (z-score)", + "cb_chart_target_dist": "Distribuição dos Alvos (z-score)", + "cb_chart_corr": "Matriz de Correlação (estimativa de domain knowledge)", + "cb_chart_pca": "Variância Explicada — PCA dos Atributos", + "cb_chart_error_dist": "Distribuição do Erro de Predição por Alvo", + + # ─ Rótulos de eixos/legendas em gráficos ───────────────────────── + "axis_value": "Valor", + "axis_metric": "Métrica", + "axis_z_score": "Z-score (σ)", + "axis_explained_var": "Variância Explicada (%)", + "axis_pca_component": "Componente Principal", + "axis_error_unit": "Erro (unidade do alvo)", + "axis_valve_position": "Posição da Válvula", + "axis_prediction_idx": "Nº da predição", + "axis_percent_scale": "Escala %", + "axis_epoch": "Época", + "axis_loss_mse": "Perda (MSE)", + "marker_current": "Atual", + "marker_current_point": "Ponto atual", + "legend_state": "Estado", + "legend_train_loss": "Perda Treino", + "legend_val_loss": "Perda Validação", + "legend_variance_individual": "Variância individual", + "legend_variance_cumulative": "Variância acumulada", + "legend_anti_fouling": "Anti-incrustação", + "legend_valve_ok": "Válvula OK", + "legend_sensor_t_ok": "Sensor T OK", + "legend_comm_ok": "Comunicação OK", + "trace_conversion_x_pct": "Conversão X (%)", + "trace_cat_act_pct": "Ativ. Cat. (%)", + "trace_fouling_scale": "Incrustação (% escala)", + "trace_t0_k": "T₀ (K)", + + # ─ Status dinâmicos ───────────────────────────────────────────── + "status_no_model": "Nenhum modelo selecionado", + "status_model_ready": "✓ {model} pronto", + "status_model_not_trained": "⚠ {model} não treinado", + "status_model_ready_opt": "✓ {model} pronto para otimização", + "status_invalid_prediction": "Predição inválida", + "status_extrapolation_severe": "⚠ Extrapolação severa: ", + "status_extrapolation_outside": "ℹ Fora da zona densa: ", + "status_low_agreement": "⚠ Baixa concordância (CV={cv:.0f}%) — {preds}", + "status_moderate_agreement": "ℹ Concordância moderada (CV={cv:.0f}%) — {preds}", + "status_high_agreement": "✓ Alta concordância (CV={cv:.0f}%) — {preds}", + "status_training_active": "● Treinando…", + "status_training_error": "● Erro: {error}", + "status_training_done": "● Concluído", + + # ─ Figuras vazias / placeholders ───────────────────────────────── + "fig_empty_default": "Aguardando inputs…", + "fig_empty_pareto": "Sem Pareto", + "fig_empty_parcoords": "Sem coordenadas paralelas", + "fig_empty_3d": "Sem 3D", + "fig_empty_convergence": "Sem convergência", + "fig_empty_heatmap": "Sem mapa de calor", + "fig_empty_distribution": "Sem distribuição", + "fig_empty_topsis": "Sem TOPSIS", + "fig_empty_clusters": "Sem agrupamentos", + "fig_empty_hypervolume": "Sem hipervolume", + "fig_empty_decision_space": "Sem espaço de decisão", + "msg_start_training_loss": "Inicie o treinamento para ver as curvas de perda", + "msg_train_for_metrics": "Treine um modelo para ver as métricas", + "msg_results_not_yet": "Arquivo training_results.csv ainda não existe.", + "msg_error_reading_results": "Erro ao ler resultados: {err}", + "msg_history_hint": "Altere os inputs para acumular histórico de predições", + "msg_sensitivity_unavailable": "Sensibilidade indisponível", + "msg_models_unavailable": "Modelos indisponíveis para comparação", + "msg_envelope_unavailable": "Envelope operacional indisponível", + "msg_no_training_result": "Nenhum resultado registrado ainda.", + "msg_csv_missing_arch": "CSV sem coluna de arquitetura.", + "msg_csv_no_metric": "Nenhuma métrica numérica disponível no CSV.", + "msg_need_two_archs": "Treine ao menos 2 arquiteturas para comparar no radar.", + "msg_training_started": "🟡 Treinamento iniciado…", + "msg_training_completed": "✅ Treinamento concluído com sucesso!", + "msg_training_failed": "❌ Falha: {err}", + "legend_best": "Melhor", + "metric_mae_real": "MAE (real)", + "metric_val_loss_scaled": "Val Perda (escalonado)", + "metric_r2": "R²", + "metric_rmse": "RMSE", + "metric_epochs": "Épocas", + # ─ Status / progresso da otimização ─────────────────────────────── + "opt_status_completed": "Otimização concluída — {n} soluções em {elapsed:.1f}s", + "opt_status_failure": "Falha", + "opt_status_optimizing": "Otimizando... Geração {gen}/{total} | Factíveis: {feasible}", + "opt_generation_final": "Geração final: {gen}", + "opt_generation_progress": "Geração {gen} / {total}", + "opt_error_prefix": "Erro: {err}", + # ─ Gerenciador de Arquivos (DFM) ────────────────────────────────── + "dfm_kpi_files": "Arquivos", + "dfm_kpi_size": "Tamanho", + "dfm_kpi_rows": "Linhas", + "dfm_kpi_features_targets": "Atributos/Alvos", + "dfm_preview_placeholder": "(selecione um arquivo acima)", + "dfm_preview_invalid": "(seleção inválida)", + "dfm_preview_no_path": "(arquivo sem caminho)", + "dfm_preview_read_err": "Erro ao ler preview: {err}", + "dfm_preview_stats": "Exibindo {shown} de {total:,} linhas · {cols} colunas · {size}", + "dfm_discover_failed": "Falha ao descobrir arquivos: {err}", + "dfm_confirm_delete": "Tem certeza que deseja excluir este arquivo?\n\n• Arquivo: {filename}\n• Tipo: {kind}\n• Caminho: {path}\n\nEsta ação não pode ser desfeita.", + "dfm_upload_summary": "Upload: {ok} ok / {fail} falhas", + "dfm_upload_no_message": "(sem mensagem)", + + # ─ Nomes de atributos/alvos (feature labels) ───────────────────── + "feat_flow": "Vazão Alim.", + "feat_ca0": "CA₀ Alim.", + "feat_cb0": "CB₀ Alim.", + "feat_tf": "Tf Alim.", + "feat_tamb": "T_amb Alim.", + "feat_tobs": "T_obs", + "feat_valve": "Válvula", + "feat_wj": "w_j", + + # ─ Rótulos curtos para subplots / eixos ────────────────────────── + "short_x_pct": "Conversão (%)", + "short_cat_act": "Ativ. Cat. (%)", + "short_fouling_um": "Incrustação (µm)", + "short_t0_k": "T₀ (K)", + + # ─ Nomes de alvos para analytics (violin, heatmap) ─────────────── + "target_CA0": "CA₀", + "target_CB0": "CB₀", + "target_CP0": "CP₀", + "target_CS0": "CS₀", + "target_T0": "T₀", + "target_X": "Conversão", + "target_fouling": "Incrustação", + "target_cat_activity": "Ativ. Catalítica", + + # ─ Títulos/eixos de gráficos de otimização ─────────────────────── + "opt_fig_pareto_title": "Fronteira de Pareto (Conversão × Incrustação)", + "opt_fig_pareto_x": "Conversão máxima X (%)", + "opt_fig_pareto_y": "Incrustação mínima (µm)", + "opt_fig_parcoords_title": "Coordenadas Paralelas — Variáveis vs Objetivos", + "opt_fig_3d_title": "Espaço 3D — Vazão × T_feed × Conversão", + "opt_fig_3d_x": "Vazão (m³/s)", + "opt_fig_3d_y": "T_feed (K)", + "opt_fig_3d_z": "Conversão X (%)", + "opt_fig_convergence_title": "Convergência do NSGA-II (gerações)", + "opt_fig_convergence_x": "Geração", + "opt_fig_convergence_y": "Valor do Objetivo", + "opt_fig_heatmap_title": "Correlação — Variáveis × Objetivos", + "opt_fig_violin_title": "Distribuição dos Objetivos", + "opt_fig_topsis_title": "Ranking TOPSIS — Melhores Soluções", + "opt_fig_topsis_x": "Pontuação TOPSIS", + "opt_fig_topsis_y": "Solução #", + "opt_fig_clusters_title": "Agrupamentos de Soluções (k-means)", + "opt_fig_hypervolume_title": "Evolução do Hipervolume", + "opt_fig_hypervolume_x": "Geração", + "opt_fig_hypervolume_y": "Hipervolume", + "opt_fig_decision_title": "Espaço de Decisão — Variáveis Escolhidas", + "opt_axis_generation": "Geração", + "opt_axis_solution": "Solução", + "opt_axis_conversion_pct": "Conversão (%)", + "opt_axis_fouling_um": "Incrustação (µm)", + "opt_axis_value": "Valor", + "opt_axis_n_feasible": "N° Factíveis", + "opt_axis_spread": "Dispersão (spread)", + "opt_axis_topsis_score": "Score TOPSIS (0=pior → 1=melhor)", + "opt_label_conversion": "Conversão", + "opt_label_fouling": "Incrustação", + "opt_label_pareto_front": "Frente de Pareto", + "opt_label_dominated": "Dominadas", + "opt_label_utopia": "Ponto Utopia", + "opt_label_avg_x": "Média X", + "opt_label_best_x": "Melhor X", + "opt_label_centroids": "Centróides", + "opt_label_centroid": "Centróide", + "opt_label_diversity": "Diversidade", + "opt_label_feasible_plural": "Factíveis", + "opt_label_max": "Máx.", + "opt_label_mean": "Média", + # Cluster names + "opt_cluster_balanced": "Balanceado", + "opt_cluster_high_x_high_f": "Alto X / Alto Fouling", + "opt_cluster_low_f_low_x": "Baixo Fouling / Baixo X", + # Subplot titles + "opt_sub_avg_x": "Média X (%) Factíveis", + "opt_sub_best_x": "Melhor X (%) × Gerações", + "opt_sub_diversity": "Diversidade (spread)", + "opt_sub_feasibility": "Factibilidade por Geração", + "opt_sub_feasible_by_gen": "Soluções Factíveis por Geração", + "opt_sub_hv_by_gen": "Hipervolume por Geração", + # Full figure titles + "opt_fig_3d_perf_title": "Espaço 3D de Desempenho", + "opt_fig_clusters_kmeans_title": "Clusters K-Means da Frente de Pareto (k={k})", + "opt_fig_clusters_pareto_title": "Clusters Pareto", + "opt_fig_convergence_metrics_title": "Métricas de Convergência NSGA-II", + "opt_fig_decision_vs_x_title": "Espaço de Decisão — Variáveis vs X (%)", + "opt_fig_evolution_title": "Evolução NSGA-II", + "opt_fig_hv_by_gen_title": "Hipervolume por Geração", + "opt_fig_opmap_title": "Mapa Operacional: Vazão × T_obs × Conversão", + "opt_fig_topsis_multi_title": "Ranking TOPSIS — Multi-Critério (Top-15)", + "opt_fig_violin_out_title": "Distribuição das Saídas — Soluções Ótimas", + # Messages + "msg_no_feasible_relax": "Nenhuma solução factível. Relaxe as restrições.", + "msg_need_2_feasible": "Precisa de ≥ 2 soluções factíveis.", + "msg_no_feasible_3d": "Sem soluções factíveis para 3D.", + "msg_no_convergence_hist": "Sem histórico de convergência.", + "msg_need_3_heatmap": "Precisa de ≥ 3 soluções para mapa operacional.", + "msg_need_2_distribution": "Precisa de ≥ 2 soluções para distribuição.", + "msg_need_2_topsis": "Precisa de ≥ 2 soluções para ranking TOPSIS.", + "msg_topsis_unavailable": "TOPSIS indisponível.", + "msg_need_4_cluster": "Precisa de ≥ 4 soluções para clustering.", + "msg_cluster_missing_col": "Coluna '{col}' ausente — clustering indisponível.", + "msg_sklearn_required": "scikit-learn necessário para clustering.", + "msg_cluster_cols_insufficient": "Colunas insuficientes para clustering.", + "msg_cluster_rows_insufficient": "Linhas válidas insuficientes após limpeza.", + "msg_cluster_zero_variance": "Variância nula em alguma feature — clustering não faz sentido.", + "msg_cluster_error": "Erro no clustering: {err}", + "msg_no_hv_hist": "Sem histórico de Hipervolume.", + "msg_need_3_decision": "Precisa de ≥ 3 soluções para espaço de decisão.", + "msg_decision_cols_insufficient": "Colunas de decisão insuficientes.", + }, + + # ───────────────────────────────────────────────────────────────────── + # ENGLISH + # ───────────────────────────────────────────────────────────────────── + "en": { + # Header + "app_title": "CSTRChemIA - CSTR Simulator & Optimizer", + "app_subtitle": "Multi-objective simulation and optimization of CSTR reactors", + "lang_label": "Language", + "footer_text": "CSTRChemIA - CSTR Simulator & Optimizer — Powered by Dash + TensorFlow + pymoo", + + # Tabs + "tab_simulation": "⚗ Simulation", + "tab_optimization": "🎯 Optimization", + "tab_training": "🎓 Training", + "tab_analytics": "📊 Analytics", + "tab_help": "❔ Help", + "tab_about": "ℹ About", + + # Sections + "section_surrogate_model": "Surrogate Model", + "section_process_variables": "Process Variables", + "section_operational_flags": "Operational Flags", + "section_operational_constraints": "Operational Constraints", + "section_nsga_params": "NSGA-II Parameters", + "section_optimization_summary": "Optimization Summary", + "section_optimization_results": "Optimization Results", + "section_training_structure": "Training Data Structure", + "section_training_history": "Training History", + "section_data_files_manager": "Data File Manager", + + # Fields + "field_architecture": "Architecture", + "field_architecture_sel": "Selected architecture:", + "field_status": "Status:", + "field_feed_flow": "Feed Flow", + "field_ca0_feed": "CA₀ Feed", + "field_cb0_feed": "CB₀ Feed", + "field_tf_feed": "Tf Feed", + "field_tamb_feed": "T amb Feed", + "field_tobs": "Observed T", + "field_valve_position": "Valve Position (0–1)", + "field_jacket_flow": "Jacket Flow w_j", + "field_t_max": "T0 Max", + "field_conversion_min": "Min. Conversion (%)", + "field_cat_activity_min": "Min. Cat. Activity", + "field_fouling_max": "Max. Fouling", + "field_cp0_min": "Min. CP0", + "field_vazao_min": "Flow min", + "field_vazao_max": "Flow max", + "field_valve_min": "Valve min (%)", + "field_valve_max": "Valve max (%)", + "field_tobs_min": "T_obs min", + "field_tobs_max": "T_obs max", + "field_wj_min": "w_j min", + "field_wj_max": "w_j max", + "field_pop_size": "Population Size", + "field_n_gen": "Number of Generations", + "field_crossover_prob": "Crossover Prob. (SBX)", + "field_mutation_prob": "Mutation Prob. (PM)", + + # Sub-sections + "subsection_process_limits": "Process limits", + "subsection_production_limits": "Production constraints", + "subsection_search_ranges": "Search ranges (decision variables)", + + # KPIs + "kpi_conversion_x": "Conversion X", + "kpi_t0_predicted": "T₀ Predicted", + "kpi_ca0_predicted": "CA₀ Predicted", + "kpi_cb0_predicted": "CB₀ Predicted", + "kpi_cp0_product": "CP₀ (Product)", + "kpi_cs0_byproduct": "CS₀ (Byprod.)", + "kpi_fouling": "Fouling", + "kpi_cat_activity": "Cat. Activity", + + # Flags + "flag_valve_failure": "Valve Failure", + "flag_maintenance": "Maintenance", + "flag_sensor_t_failure": "T Sensor Failure", + "flag_comm_failure": "Comm. Failure", + "flag_valve_tooltip": "Active if the control valve has failed", + "flag_maint_tooltip": "Indicates the reactor has undergone maintenance", + "flag_sensor_t_tooltip": "Temperature sensor malfunction", + "flag_comm_tooltip": "Loss of communication with the PLC", + + # Buttons + "btn_run_optimization": "Run Optimization", + "btn_start_training": "Start Training", + "btn_update_metrics": "Update metrics", + "btn_export_csv": "Export CSV", + "btn_refresh": "Refresh", + "btn_delete": "Delete", + "btn_confirm": "Confirm", + "btn_cancel": "Cancel", + + # Status / messages + "status_waiting": "● Waiting", + "status_awaiting_inputs": "Awaiting inputs…", + "status_operation_healthy": "✓ Healthy operation", + "status_operation_degraded": "⚠ Degraded operation", + "status_critical": "✗ Warning: critical condition", + "status_model_label": "Model", + "msg_prediction_failed": "Prediction failed", + "msg_invalid_prediction": "Prediction outside physical limits", + "msg_run_first": "Run the optimization to see results.", + "msg_click_update": "Click 'Update metrics' after training to see results.", + "msg_select_file": "(select a file above)", + + # Training + "training_logs": "Training Logs", + "training_features_title": "📥 Features (12):", + "training_targets_title": "📤 Targets (8):", + + # Analytics / DFM + "dfm_subtitle": "View, download, delete or add CSV files to the repository.", + "dfm_filter_kind": "🔍 Filter by kind", + "dfm_filter_source": "📁 Filter by source", + "dfm_search": "🔎 Search (name contains)", + "dfm_total_files": "Total files", + "dfm_total_rows": "Total rows", + "dfm_total_bytes": "Total size", + "dfm_drop_files": "Drop CSV here or click to select", + + # Misc + "info_general": "Info", + "warning_general": "Warning", + "error_general": "Error", + "loading": "Loading…", + "faixa": "Range", + + # Pages + "sim_page_title": "CSTR – Simulation", + "sim_page_subtitle": "Enter the operating conditions — the surrogate model predicts concentrations, temperature, conversion, fouling, and catalyst activity in real time.", + "sim_results_section": "Prediction Results", + "opt_page_title": "CSTR — Multi-Objective Optimization", + "opt_page_subtitle": "NSGA-II finds the Pareto front that maximizes X and minimizes fouling while respecting all constraints.", + "opt_info_alert": "NSGA-II seeks maximum conversion and minimum fouling respecting all constraints above.", + "opt_results_header": "Optimization Results", + "opt_feasible_table_title": "Feasible Solutions Table", + "training_page_title": "Train Surrogate Model", + "training_page_subtitle": "Training MLP / RNN / CNN surrogates with previously optimized hyperparameters", + "training_all_models": "All (MLP+RNN+CNN)", + "training_concentrations": "concentrations", + "training_internal_temp": "internal temperature", + "training_conversion": "conversion", + "training_data_origin": "Data origin", + "training_data_origin_text": "Files in simulation/ (flat) or ../Simulacoes/simulacao_CSTR/sim_*/observations/ (nested). Hyperparameters come from training/best_hps_*.json and are synced automatically before training.", + "analytics_page_title": "Analytics — Data & Benchmarking", + "analytics_page_subtitle": "Detailed exploration of the training dataset, distributions, correlations, and quantitative comparison between the three surrogate architectures.", + "analytics_card_title": "Data Explorer & Model Benchmark", + "analytics_card_subtitle": "Explore training dataset distributions, feature–target correlations, and compare the MLP / RNN / CNN architectures.", + "analytics_click_refresh": "Click 'Load / Refresh' to see the statistics.", + "analytics_load_data_msg": "Load data to see the table.", + "analytics_stats_section": "Descriptive Dataset Statistics", + "btn_load_refresh": "Load / Refresh", + + # FormText hints + "ft_t_max": "Maximum allowed temperature", + "ft_x_min": "Required minimum X", + "ft_cat_min": "cat_activity ≥ this value", + "ft_fouling_max": "Maximum fouling thickness", + "ft_cp0_min": "Minimum product output", + "ft_crossover_prob": "0.8–1.0 recommended", + "ft_mutation_prob": "0.05–0.2 recommended", + + # Charts — Simulation + "chart_sim_targets": "Predicted Targets", + "chart_sim_health": "Operational Health", + "chart_sim_gauge": "Conversion Gauge", + "chart_sim_donut": "Species Distribution", + "chart_sim_sensitivity": "Sensitivity X × T_obs", + "chart_sim_model_comparison": "Comparison MLP vs RNN vs CNN", + "chart_sim_feature_contrib": "Feature Contribution (ΔX)", + "chart_sim_envelope": "Operational Envelope (T_obs × Valve → X)", + "chart_sim_history": "Prediction History (last 30)", + + # Charts — Optimization + "chart_opt_pareto": "Pareto Front: Conversion × Fouling", + "chart_opt_parcoords": "Parallel Coordinates", + "chart_opt_convergence": "NSGA-II Convergence", + "chart_opt_3d": "3D Space: X × Fouling × Cat. Activity", + "chart_opt_heatmap": "Operational Map: Flow × T_obs", + "chart_opt_violin": "Distribution of Optimal Outputs", + "chart_opt_decision_space": "Decision Space (Scatter Matrix)", + "chart_opt_topsis": "Multi-Criteria TOPSIS Ranking (Top-15)", + "chart_opt_cluster": "K-Means Clusters of the Pareto Front", + "chart_opt_hypervolume": "Hypervolume and Feasibility per Generation", + + # Charts — Training + "chart_training_loss": "Loss Curve (Train vs Val) — live", + "chart_training_metrics": "Metrics per Architecture (R², MAE, RMSE per target)", + "chart_training_radar": "Global Performance Radar (MLP vs RNN vs CNN)", + + # Charts — Analytics + "chart_analytics_feat_dist": "Feature Distribution (normalized box plots)", + "chart_analytics_target_dist": "Target Distribution (violin plots)", + "chart_analytics_corr": "Feature × Target Correlation Matrix", + "chart_analytics_metrics_bar": "Metrics per Target — MLP/RNN/CNN Comparison", + "chart_analytics_arch_radar": "Global Performance Radar per Architecture", + "chart_analytics_pca": "Explained Variance (Feature PCA)", + "chart_analytics_error_dist": "Prediction Error Distribution per Target", + + # DFM + "dfm_all": "All", + "dfm_all_fem": "All", + "dfm_click_refresh": "Click 🔄 Refresh to list available files.", + "dfm_kind_features": "Features", + "dfm_kind_targets": "Targets", + "dfm_kind_complete": "Complete Data", + "dfm_kind_observed": "Observed", + "dfm_kind_truth": "Truth", + "dfm_kind_training_result": "Training Result", + "dfm_kind_other": "Other", + "dfm_preview": "Preview", + "dfm_add_file_title": "Add file (features or targets)", + "dfm_name_pattern_required": "Required name pattern", + "dfm_or": "or", + "dfm_save_location_note": "The file will be saved to CSTRChemIA/simulation/ (auto-created if needed). Name collisions get a timestamp suffix.", + "dfm_drop_files_here": "Drop files here", + "dfm_or_click_to_select": "or click to select (.csv)", + "dfm_confirm_delete_msg": "Are you sure you want to delete this file?\nThis action cannot be undone.", + + # File table columns + "col_kind": "Kind", + "col_file": "File", + "col_source": "Source", + "col_rows": "Rows", + "col_cols": "Cols", + "col_size": "Size", + "col_modified": "Modified", + "col_path": "Path", + + # Optimization Summary KPIs + "kpi_feasible_solutions": "Feasible Solutions", + "kpi_best_x": "Best X", + "kpi_min_fouling": "Min. Fouling", + "kpi_best_cat_act": "Best Cat. Act.", + "kpi_best_cp0": "Best CP₀", + "kpi_time": "Time", + "kpi_avg_x": "Avg. X", + "kpi_avg_fouling": "Avg. Fouling", + "kpi_avg_t0": "Avg. T₀", + "kpi_hypervolume": "Hypervolume", + "kpi_spread": "Spread", + "msg_no_feasible": "No feasible solution found. Relax the constraints.", + "msg_best_solution": "🏆 Best solution (highest X): ", + "label_flow": "Flow", + "label_tobs": "T_obs", + "label_valve": "Valve", + "label_t0": "T₀", + + # Analytics dataset KPIs + "kpi_total_samples": "Total Samples", + "kpi_train": "Train", + "kpi_validation": "Validation", + "kpi_test": "Test", + "kpi_features": "Features", + "kpi_targets": "Targets", + + # Stats table columns + "col_feature": "Feature", + "col_target": "Target", + "col_mean": "Mean", + "col_std": "Std Dev", + "col_min_est": "Est. Min", + "col_max_est": "Est. Max", + "col_type": "Type", + "type_continuous": "Continuous", + "type_flag": "Flag", + + # Chart titles (callback-generated) + "cb_chart_state_predicted": "Predicted Reactor State", + "cb_chart_operational_health": "Operational Health", + "cb_chart_conversion_x": "Conversion X", + "cb_chart_species_dist": "Species Distribution", + "cb_chart_sensitivity": "Sensitivity X / T₀ × T_obs", + "cb_chart_model_comp": "MLP/RNN/CNN Comparison (selected: {model})", + "cb_chart_delta_x_feature": "ΔX per Feature (±1σ) — {model}", + "cb_chart_envelope": "Operational Envelope: X(%) — {model}", + "cb_chart_history": "Prediction History (last 30)", + "cb_chart_loss_curve": "Loss Curve (Train vs Validation)", + "cb_chart_metrics_arch": "Metrics per Architecture (MLP / RNN / CNN)", + "cb_chart_perf_radar": "Performance Radar (normalized, 1 = best)", + "cb_chart_feat_dist": "Feature Distribution (z-score)", + "cb_chart_target_dist": "Target Distribution (z-score)", + "cb_chart_corr": "Correlation Matrix (domain-knowledge estimate)", + "cb_chart_pca": "Explained Variance — Feature PCA", + "cb_chart_error_dist": "Prediction Error Distribution per Target", + + # Axis / legend labels + "axis_value": "Value", + "axis_metric": "Metric", + "axis_z_score": "Z-score (σ)", + "axis_explained_var": "Explained Variance (%)", + "axis_pca_component": "Principal Component", + "axis_error_unit": "Error (target unit)", + "axis_valve_position": "Valve Position", + "axis_prediction_idx": "Prediction #", + "axis_percent_scale": "% scale", + "axis_epoch": "Epoch", + "axis_loss_mse": "Loss (MSE)", + "marker_current": "Current", + "marker_current_point": "Current point", + "legend_state": "State", + "legend_train_loss": "Train Loss", + "legend_val_loss": "Val Loss", + "legend_variance_individual": "Individual variance", + "legend_variance_cumulative": "Cumulative variance", + "legend_anti_fouling": "Anti-fouling", + "legend_valve_ok": "Valve OK", + "legend_sensor_t_ok": "T Sensor OK", + "legend_comm_ok": "Comm. OK", + "trace_conversion_x_pct": "Conversion X (%)", + "trace_cat_act_pct": "Cat. Act. (%)", + "trace_fouling_scale": "Fouling (% scale)", + "trace_t0_k": "T₀ (K)", + + # Dynamic status + "status_no_model": "No model selected", + "status_model_ready": "✓ {model} ready", + "status_model_not_trained": "⚠ {model} not trained", + "status_model_ready_opt": "✓ {model} ready for optimization", + "status_invalid_prediction": "Invalid prediction", + "status_extrapolation_severe": "⚠ Severe extrapolation: ", + "status_extrapolation_outside": "ℹ Outside dense zone: ", + "status_low_agreement": "⚠ Low agreement (CV={cv:.0f}%) — {preds}", + "status_moderate_agreement": "ℹ Moderate agreement (CV={cv:.0f}%) — {preds}", + "status_high_agreement": "✓ High agreement (CV={cv:.0f}%) — {preds}", + "status_training_active": "● Training…", + "status_training_error": "● Error: {error}", + "status_training_done": "● Done", + + # Empty figures / placeholders + "fig_empty_default": "Awaiting inputs…", + "fig_empty_pareto": "No Pareto", + "fig_empty_parcoords": "No parallel coordinates", + "fig_empty_3d": "No 3D view", + "fig_empty_convergence": "No convergence", + "fig_empty_heatmap": "No heatmap", + "fig_empty_distribution": "No distribution", + "fig_empty_topsis": "No TOPSIS", + "fig_empty_clusters": "No clusters", + "fig_empty_hypervolume": "No hypervolume", + "fig_empty_decision_space": "No decision space", + "msg_start_training_loss": "Start training to see loss curves", + "msg_train_for_metrics": "Train a model to see metrics", + "msg_results_not_yet": "training_results.csv does not exist yet.", + "msg_error_reading_results": "Error reading results: {err}", + "msg_history_hint": "Change inputs to accumulate prediction history", + "msg_sensitivity_unavailable": "Sensitivity unavailable", + "msg_models_unavailable": "Models unavailable for comparison", + "msg_envelope_unavailable": "Operational envelope unavailable", + "msg_no_training_result": "No result recorded yet.", + "msg_csv_missing_arch": "CSV missing architecture column.", + "msg_csv_no_metric": "No numeric metric available in CSV.", + "msg_need_two_archs": "Train at least 2 architectures to compare on the radar.", + "msg_training_started": "🟡 Training started…", + "msg_training_completed": "✅ Training completed successfully!", + "msg_training_failed": "❌ Failure: {err}", + "legend_best": "Best", + "metric_mae_real": "MAE (real)", + "metric_val_loss_scaled": "Val Loss (scaled)", + "metric_r2": "R²", + "metric_rmse": "RMSE", + "metric_epochs": "Epochs", + # Optimization progress / status + "opt_status_completed": "Optimization completed — {n} solutions in {elapsed:.1f}s", + "opt_status_failure": "Failure", + "opt_status_optimizing": "Optimizing... Generation {gen}/{total} | Feasible: {feasible}", + "opt_generation_final": "Final generation: {gen}", + "opt_generation_progress": "Generation {gen} / {total}", + "opt_error_prefix": "Error: {err}", + # Data File Manager (DFM) + "dfm_kpi_files": "Files", + "dfm_kpi_size": "Size", + "dfm_kpi_rows": "Rows", + "dfm_kpi_features_targets": "Features/Targets", + "dfm_preview_placeholder": "(select a file above)", + "dfm_preview_invalid": "(invalid selection)", + "dfm_preview_no_path": "(file without path)", + "dfm_preview_read_err": "Preview read error: {err}", + "dfm_preview_stats": "Showing {shown} of {total:,} rows · {cols} columns · {size}", + "dfm_discover_failed": "File discovery failed: {err}", + "dfm_confirm_delete": "Are you sure you want to delete this file?\n\n• File: {filename}\n• Type: {kind}\n• Path: {path}\n\nThis action cannot be undone.", + "dfm_upload_summary": "Upload: {ok} ok / {fail} failures", + "dfm_upload_no_message": "(no message)", + + # Feature / target labels + "feat_flow": "Feed Flow", + "feat_ca0": "CA₀ Feed", + "feat_cb0": "CB₀ Feed", + "feat_tf": "Tf Feed", + "feat_tamb": "T_amb Feed", + "feat_tobs": "T_obs", + "feat_valve": "Valve", + "feat_wj": "w_j", + + # Short labels for subplots / axes + "short_x_pct": "Conversion (%)", + "short_cat_act": "Cat. Act. (%)", + "short_fouling_um": "Fouling (µm)", + "short_t0_k": "T₀ (K)", + + # Target names for analytics (violin, heatmap) + "target_CA0": "CA₀", + "target_CB0": "CB₀", + "target_CP0": "CP₀", + "target_CS0": "CS₀", + "target_T0": "T₀", + "target_X": "Conversion", + "target_fouling": "Fouling", + "target_cat_activity": "Cat. Activity", + + # Optimization chart titles/axes + "opt_fig_pareto_title": "Pareto Front (Conversion × Fouling)", + "opt_fig_pareto_x": "Maximum Conversion X (%)", + "opt_fig_pareto_y": "Minimum Fouling (µm)", + "opt_fig_parcoords_title": "Parallel Coordinates — Variables vs Objectives", + "opt_fig_3d_title": "3D Space — Flow × T_feed × Conversion", + "opt_fig_3d_x": "Flow (m³/s)", + "opt_fig_3d_y": "T_feed (K)", + "opt_fig_3d_z": "Conversion X (%)", + "opt_fig_convergence_title": "NSGA-II Convergence (generations)", + "opt_fig_convergence_x": "Generation", + "opt_fig_convergence_y": "Objective Value", + "opt_fig_heatmap_title": "Correlation — Variables × Objectives", + "opt_fig_violin_title": "Objectives Distribution", + "opt_fig_topsis_title": "TOPSIS Ranking — Best Solutions", + "opt_fig_topsis_x": "TOPSIS Score", + "opt_fig_topsis_y": "Solution #", + "opt_fig_clusters_title": "Solution Clusters (k-means)", + "opt_fig_hypervolume_title": "Hypervolume Evolution", + "opt_fig_hypervolume_x": "Generation", + "opt_fig_hypervolume_y": "Hypervolume", + "opt_fig_decision_title": "Decision Space — Chosen Variables", + "opt_axis_generation": "Generation", + "opt_axis_solution": "Solution", + "opt_axis_conversion_pct": "Conversion (%)", + "opt_axis_fouling_um": "Fouling (µm)", + "opt_axis_value": "Value", + "opt_axis_n_feasible": "# Feasible", + "opt_axis_spread": "Spread", + "opt_axis_topsis_score": "TOPSIS Score (0=worst → 1=best)", + "opt_label_conversion": "Conversion", + "opt_label_fouling": "Fouling", + "opt_label_pareto_front": "Pareto Front", + "opt_label_dominated": "Dominated", + "opt_label_utopia": "Utopia Point", + "opt_label_avg_x": "Avg. X", + "opt_label_best_x": "Best X", + "opt_label_centroids": "Centroids", + "opt_label_centroid": "Centroid", + "opt_label_diversity": "Diversity", + "opt_label_feasible_plural": "Feasible", + "opt_label_max": "Max.", + "opt_label_mean": "Mean", + # Cluster names + "opt_cluster_balanced": "Balanced", + "opt_cluster_high_x_high_f": "High X / High Fouling", + "opt_cluster_low_f_low_x": "Low Fouling / Low X", + # Subplot titles + "opt_sub_avg_x": "Avg. Feasible X (%)", + "opt_sub_best_x": "Best X (%) × Generations", + "opt_sub_diversity": "Diversity (spread)", + "opt_sub_feasibility": "Feasibility per Generation", + "opt_sub_feasible_by_gen": "Feasible Solutions per Generation", + "opt_sub_hv_by_gen": "Hypervolume per Generation", + # Full figure titles + "opt_fig_3d_perf_title": "3D Performance Space", + "opt_fig_clusters_kmeans_title": "K-Means Clusters of the Pareto Front (k={k})", + "opt_fig_clusters_pareto_title": "Pareto Clusters", + "opt_fig_convergence_metrics_title": "NSGA-II Convergence Metrics", + "opt_fig_decision_vs_x_title": "Decision Space — Variables vs X (%)", + "opt_fig_evolution_title": "NSGA-II Evolution", + "opt_fig_hv_by_gen_title": "Hypervolume per Generation", + "opt_fig_opmap_title": "Operating Map: Flow × T_obs × Conversion", + "opt_fig_topsis_multi_title": "TOPSIS Ranking — Multi-Criteria (Top-15)", + "opt_fig_violin_out_title": "Output Distribution — Optimal Solutions", + # Messages + "msg_no_feasible_relax": "No feasible solutions. Relax the constraints.", + "msg_need_2_feasible": "Requires ≥ 2 feasible solutions.", + "msg_no_feasible_3d": "No feasible solutions for 3D.", + "msg_no_convergence_hist": "No convergence history.", + "msg_need_3_heatmap": "Requires ≥ 3 solutions for the operating map.", + "msg_need_2_distribution": "Requires ≥ 2 solutions for distribution.", + "msg_need_2_topsis": "Requires ≥ 2 solutions for TOPSIS ranking.", + "msg_topsis_unavailable": "TOPSIS unavailable.", + "msg_need_4_cluster": "Requires ≥ 4 solutions for clustering.", + "msg_cluster_missing_col": "Column '{col}' missing — clustering unavailable.", + "msg_sklearn_required": "scikit-learn required for clustering.", + "msg_cluster_cols_insufficient": "Not enough columns for clustering.", + "msg_cluster_rows_insufficient": "Not enough valid rows after cleanup.", + "msg_cluster_zero_variance": "Zero variance in a feature — clustering not meaningful.", + "msg_cluster_error": "Clustering error: {err}", + "msg_no_hv_hist": "No Hypervolume history.", + "msg_need_3_decision": "Requires ≥ 3 solutions for the decision space.", + "msg_decision_cols_insufficient": "Not enough decision columns.", + }, + + # ───────────────────────────────────────────────────────────────────── + # ESPAÑOL + # ───────────────────────────────────────────────────────────────────── + "es": { + # Header + "app_title": "CSTRChemIA - CSTR Simulator & Optimizer", + "app_subtitle": "Simulación y optimización multi-objetivo de reactores CSTR", + "lang_label": "Idioma", + "footer_text": "CSTRChemIA - CSTR Simulator & Optimizer — Impulsado por Dash + TensorFlow + pymoo", + + # Tabs + "tab_simulation": "⚗ Simulación", + "tab_optimization": "🎯 Optimización", + "tab_training": "🎓 Entrenamiento", + "tab_analytics": "📊 Analíticas", + "tab_help": "❔ Ayuda", + "tab_about": "ℹ Acerca", + + # Sections + "section_surrogate_model": "Modelo Sustituto", + "section_process_variables": "Variables de Proceso", + "section_operational_flags": "Banderas Operativas", + "section_operational_constraints": "Restricciones Operativas", + "section_nsga_params": "Parámetros NSGA-II", + "section_optimization_summary": "Resumen de Optimización", + "section_optimization_results": "Resultados de Optimización", + "section_training_structure": "Estructura de Datos de Entrenamiento", + "section_training_history": "Historial de Entrenamientos", + "section_data_files_manager": "Administrador de Archivos de Datos", + + # Fields + "field_architecture": "Arquitectura", + "field_architecture_sel": "Arquitectura seleccionada:", + "field_status": "Estado:", + "field_feed_flow": "Caudal de Alim.", + "field_ca0_feed": "CA₀ Alim.", + "field_cb0_feed": "CB₀ Alim.", + "field_tf_feed": "Tf Alim.", + "field_tamb_feed": "T amb Alim.", + "field_tobs": "T observada", + "field_valve_position": "Posición de Válvula (0–1)", + "field_jacket_flow": "Caudal Camisa w_j", + "field_t_max": "T0 Máxima", + "field_conversion_min": "Conversión Mín. (%)", + "field_cat_activity_min": "Actividad Cat. Mín.", + "field_fouling_max": "Incrustación Máx.", + "field_cp0_min": "CP0 Mín.", + "field_vazao_min": "Caudal mín.", + "field_vazao_max": "Caudal máx.", + "field_valve_min": "Válvula mín. (%)", + "field_valve_max": "Válvula máx. (%)", + "field_tobs_min": "T_obs mín.", + "field_tobs_max": "T_obs máx.", + "field_wj_min": "w_j mín.", + "field_wj_max": "w_j máx.", + "field_pop_size": "Tamaño de Población", + "field_n_gen": "Número de Generaciones", + "field_crossover_prob": "Prob. Cruce (SBX)", + "field_mutation_prob": "Prob. Mutación (PM)", + + # Sub-sections + "subsection_process_limits": "Límites de proceso", + "subsection_production_limits": "Restricciones de producción", + "subsection_search_ranges": "Rangos de búsqueda (variables de decisión)", + + # KPIs + "kpi_conversion_x": "Conversión X", + "kpi_t0_predicted": "T₀ Predicho", + "kpi_ca0_predicted": "CA₀ Predicho", + "kpi_cb0_predicted": "CB₀ Predicho", + "kpi_cp0_product": "CP₀ (Producto)", + "kpi_cs0_byproduct": "CS₀ (Subprod.)", + "kpi_fouling": "Incrustación", + "kpi_cat_activity": "Actividad Cat.", + + # Flags + "flag_valve_failure": "Falla de Válvula", + "flag_maintenance": "Mantenimiento", + "flag_sensor_t_failure": "Falla Sensor T", + "flag_comm_failure": "Falla Comunicación", + "flag_valve_tooltip": "Activa si hay falla en la válvula de control", + "flag_maint_tooltip": "Indica que el reactor ha pasado por mantenimiento", + "flag_sensor_t_tooltip": "Sensor de temperatura defectuoso", + "flag_comm_tooltip": "Pérdida de comunicación con el PLC", + + # Buttons + "btn_run_optimization": "Ejecutar Optimización", + "btn_start_training": "Iniciar Entrenamiento", + "btn_update_metrics": "Actualizar métricas", + "btn_export_csv": "Exportar CSV", + "btn_refresh": "Actualizar", + "btn_delete": "Borrar", + "btn_confirm": "Confirmar", + "btn_cancel": "Cancelar", + + # Status / messages + "status_waiting": "● Esperando", + "status_awaiting_inputs": "Esperando entradas…", + "status_operation_healthy": "✓ Operación saludable", + "status_operation_degraded": "⚠ Operación degradada", + "status_critical": "✗ Atención: condición crítica", + "status_model_label": "Modelo", + "msg_prediction_failed": "La predicción falló", + "msg_invalid_prediction": "Predicción fuera de los límites físicos", + "msg_run_first": "Ejecute la optimización para ver los resultados.", + "msg_click_update": "Haga clic en 'Actualizar métricas' después de entrenar para ver resultados.", + "msg_select_file": "(seleccione un archivo arriba)", + + # Training + "training_logs": "Registros de Entrenamiento", + "training_features_title": "📥 Características (12):", + "training_targets_title": "📤 Objetivos (8):", + + # Analytics / DFM + "dfm_subtitle": "Visualice, descargue, elimine o agregue archivos CSV al repositorio.", + "dfm_filter_kind": "🔍 Filtrar por tipo", + "dfm_filter_source": "📁 Filtrar por fuente", + "dfm_search": "🔎 Buscar (el nombre contiene)", + "dfm_total_files": "Archivos totales", + "dfm_total_rows": "Filas totales", + "dfm_total_bytes": "Tamaño total", + "dfm_drop_files": "Arrastre CSV aquí o haga clic para seleccionar", + + # Misc + "info_general": "Información", + "warning_general": "Advertencia", + "error_general": "Error", + "loading": "Cargando…", + "faixa": "Rango", + + # Páginas + "sim_page_title": "CSTR – Simulación", + "sim_page_subtitle": "Ingrese las condiciones de operación — el modelo sustituto predice concentraciones, temperatura, conversión, incrustación y actividad catalítica en tiempo real.", + "sim_results_section": "Resultados de la Predicción", + "opt_page_title": "CSTR — Optimización Multi-Objetivo", + "opt_page_subtitle": "NSGA-II encuentra la frontera de Pareto que maximiza X y minimiza la incrustación respetando todas las restricciones.", + "opt_info_alert": "NSGA-II busca máxima conversión y mínima incrustación respetando todas las restricciones anteriores.", + "opt_results_header": "Resultados de la Optimización", + "opt_feasible_table_title": "Tabla de Soluciones Factibles", + "training_page_title": "Entrenar Modelo Sustituto", + "training_page_subtitle": "Entrenamiento de los surrogates MLP / RNN / CNN con hiperparámetros previamente optimizados", + "training_all_models": "Todos (MLP+RNN+CNN)", + "training_concentrations": "concentraciones", + "training_internal_temp": "temperatura interna", + "training_conversion": "conversión", + "training_data_origin": "Origen de los datos", + "training_data_origin_text": "Archivos en simulation/ (plano) o ../Simulacoes/simulacao_CSTR/sim_*/observations/ (anidado). Los hiperparámetros vienen de training/best_hps_*.json y se sincronizan automáticamente antes del entrenamiento.", + "analytics_page_title": "Analíticas — Datos & Benchmarking", + "analytics_page_subtitle": "Exploración detallada del dataset de entrenamiento, distribuciones, correlaciones y comparación cuantitativa entre las tres arquitecturas de surrogate.", + "analytics_card_title": "Explorador de Datos & Benchmark de Modelos", + "analytics_card_subtitle": "Visualice las distribuciones del dataset de entrenamiento, correlaciones entre features y targets, y compare las arquitecturas MLP / RNN / CNN.", + "analytics_click_refresh": "Haga clic en 'Cargar / Actualizar' para ver las estadísticas.", + "analytics_load_data_msg": "Cargue los datos para ver la tabla.", + "analytics_stats_section": "Estadísticas Descriptivas del Dataset", + "btn_load_refresh": "Cargar / Actualizar", + + # FormText hints + "ft_t_max": "Temperatura máxima permitida", + "ft_x_min": "X mínimo requerido", + "ft_cat_min": "cat_activity ≥ este valor", + "ft_fouling_max": "Espesor máximo de incrustación", + "ft_cp0_min": "Producción mínima de producto", + "ft_crossover_prob": "0.8–1.0 recomendado", + "ft_mutation_prob": "0.05–0.2 recomendado", + + # Gráficos — Simulation + "chart_sim_targets": "Objetivos Predichos", + "chart_sim_health": "Salud Operativa", + "chart_sim_gauge": "Indicador de Conversión", + "chart_sim_donut": "Distribución de Especies", + "chart_sim_sensitivity": "Sensibilidad X × T_obs", + "chart_sim_model_comparison": "Comparación MLP vs RNN vs CNN", + "chart_sim_feature_contrib": "Contribución de las Características (ΔX)", + "chart_sim_envelope": "Envolvente Operativa (T_obs × Válvula → X)", + "chart_sim_history": "Histórico de Predicciones (últimas 30)", + + # Gráficos — Optimization + "chart_opt_pareto": "Frontera de Pareto: Conversión × Incrustación", + "chart_opt_parcoords": "Coordenadas Paralelas", + "chart_opt_convergence": "Convergencia NSGA-II", + "chart_opt_3d": "Espacio 3D: X × Incrustación × Actividad Catalítica", + "chart_opt_heatmap": "Mapa Operativo: Caudal × T_obs", + "chart_opt_violin": "Distribución de las Salidas Óptimas", + "chart_opt_decision_space": "Espacio de Decisión (Matriz de Dispersión)", + "chart_opt_topsis": "Ranking TOPSIS Multi-Criterio (Top-15)", + "chart_opt_cluster": "Agrupamientos K-Means de la Frontera de Pareto", + "chart_opt_hypervolume": "Hipervolumen y Factibilidad por Generación", + + # Gráficos — Training + "chart_training_loss": "Curva de Pérdida (Entrenamiento vs Validación) — en vivo", + "chart_training_metrics": "Métricas por Arquitectura (R², MAE, RMSE por objetivo)", + "chart_training_radar": "Radar de Desempeño Global (MLP vs RNN vs CNN)", + + # Gráficos — Analytics + "chart_analytics_feat_dist": "Distribución de las Características (box plots normalizados)", + "chart_analytics_target_dist": "Distribución de los Objetivos (violin plots)", + "chart_analytics_corr": "Matriz de Correlación Características × Objetivos", + "chart_analytics_metrics_bar": "Métricas por Objetivo — Comparación MLP/RNN/CNN", + "chart_analytics_arch_radar": "Radar de Desempeño Global por Arquitectura", + "chart_analytics_pca": "Varianza Explicada (PCA de Características)", + "chart_analytics_error_dist": "Distribución del Error de Predicción por Objetivo", + + # DFM + "dfm_all": "Todos", + "dfm_all_fem": "Todas", + "dfm_click_refresh": "Haga clic en 🔄 Actualizar para listar los archivos disponibles.", + "dfm_kind_features": "Características", + "dfm_kind_targets": "Objetivos", + "dfm_kind_complete": "Datos Completos", + "dfm_kind_observed": "Observados", + "dfm_kind_truth": "Verdad", + "dfm_kind_training_result": "Resultado de Entrenamiento", + "dfm_kind_other": "Otros", + "dfm_preview": "Vista previa", + "dfm_add_file_title": "Agregar archivo (features o targets)", + "dfm_name_pattern_required": "Patrón de nombre obligatorio", + "dfm_or": "o", + "dfm_save_location_note": "El archivo se guardará en CSTRChemIA/simulation/ (creado automáticamente si es necesario). Las colisiones de nombre reciben sufijo de timestamp.", + "dfm_drop_files_here": "Arrastre archivos aquí", + "dfm_or_click_to_select": "o haga clic para seleccionar (.csv)", + "dfm_confirm_delete_msg": "¿Está seguro de que desea eliminar este archivo?\nEsta acción no se puede deshacer.", + + # Columnas de la tabla de archivos + "col_kind": "Tipo", + "col_file": "Archivo", + "col_source": "Fuente", + "col_rows": "Filas", + "col_cols": "Columnas", + "col_size": "Tamaño", + "col_modified": "Modificado", + "col_path": "Ruta", + + # KPIs del Resumen de Optimización + "kpi_feasible_solutions": "Soluciones Factibles", + "kpi_best_x": "Mejor X", + "kpi_min_fouling": "Mín. Incrustación", + "kpi_best_cat_act": "Mejor Act. Cat.", + "kpi_best_cp0": "Mejor CP₀", + "kpi_time": "Tiempo", + "kpi_avg_x": "Media X", + "kpi_avg_fouling": "Media Incrustación", + "kpi_avg_t0": "Media T₀", + "kpi_hypervolume": "Hipervolumen", + "kpi_spread": "Dispersión", + "msg_no_feasible": "No se encontró solución factible. Relaje las restricciones.", + "msg_best_solution": "🏆 Mejor solución (mayor X): ", + "label_flow": "Caudal", + "label_tobs": "T_obs", + "label_valve": "Válvula", + "label_t0": "T₀", + + # KPIs Analíticas / Dataset + "kpi_total_samples": "Total de Muestras", + "kpi_train": "Entrenamiento", + "kpi_validation": "Validación", + "kpi_test": "Prueba", + "kpi_features": "Características", + "kpi_targets": "Objetivos", + + # Columnas de la tabla de estadísticas + "col_feature": "Característica", + "col_target": "Objetivo", + "col_mean": "Media", + "col_std": "Desv. Estándar", + "col_min_est": "Mín. estimado", + "col_max_est": "Máx. estimado", + "col_type": "Tipo", + "type_continuous": "Continua", + "type_flag": "Bandera", + + # Títulos de gráficos (callbacks) + "cb_chart_state_predicted": "Estado Predicho del Reactor", + "cb_chart_operational_health": "Salud Operativa", + "cb_chart_conversion_x": "Conversión X", + "cb_chart_species_dist": "Distribución de las Especies", + "cb_chart_sensitivity": "Sensibilidad X / T₀ × T_obs", + "cb_chart_model_comp": "Comparación MLP/RNN/CNN (seleccionado: {model})", + "cb_chart_delta_x_feature": "ΔX por Característica (±1σ) — {model}", + "cb_chart_envelope": "Envolvente Operativa: X(%) — {model}", + "cb_chart_history": "Histórico de Predicciones (últimas 30)", + "cb_chart_loss_curve": "Curva de Pérdida (Entrenamiento vs Validación)", + "cb_chart_metrics_arch": "Métricas por Arquitectura (MLP / RNN / CNN)", + "cb_chart_perf_radar": "Radar de Desempeño (normalizado, 1 = mejor)", + "cb_chart_feat_dist": "Distribución de las Características (z-score)", + "cb_chart_target_dist": "Distribución de los Objetivos (z-score)", + "cb_chart_corr": "Matriz de Correlación (estimación de domain knowledge)", + "cb_chart_pca": "Varianza Explicada — PCA de Características", + "cb_chart_error_dist": "Distribución del Error de Predicción por Objetivo", + + # Ejes / leyendas + "axis_value": "Valor", + "axis_metric": "Métrica", + "axis_z_score": "Z-score (σ)", + "axis_explained_var": "Varianza Explicada (%)", + "axis_pca_component": "Componente Principal", + "axis_error_unit": "Error (unidad del objetivo)", + "axis_valve_position": "Posición de Válvula", + "axis_prediction_idx": "Nº de predicción", + "axis_percent_scale": "Escala %", + "axis_epoch": "Época", + "axis_loss_mse": "Pérdida (MSE)", + "marker_current": "Actual", + "marker_current_point": "Punto actual", + "legend_state": "Estado", + "legend_train_loss": "Pérdida Entrenamiento", + "legend_val_loss": "Pérdida Validación", + "legend_variance_individual": "Varianza individual", + "legend_variance_cumulative": "Varianza acumulada", + "legend_anti_fouling": "Anti-incrustación", + "legend_valve_ok": "Válvula OK", + "legend_sensor_t_ok": "Sensor T OK", + "legend_comm_ok": "Comunicación OK", + "trace_conversion_x_pct": "Conversión X (%)", + "trace_cat_act_pct": "Act. Cat. (%)", + "trace_fouling_scale": "Incrustación (% escala)", + "trace_t0_k": "T₀ (K)", + + # Estados dinámicos + "status_no_model": "Ningún modelo seleccionado", + "status_model_ready": "✓ {model} listo", + "status_model_not_trained": "⚠ {model} no entrenado", + "status_model_ready_opt": "✓ {model} listo para optimización", + "status_invalid_prediction": "Predicción inválida", + "status_extrapolation_severe": "⚠ Extrapolación severa: ", + "status_extrapolation_outside": "ℹ Fuera de la zona densa: ", + "status_low_agreement": "⚠ Baja concordancia (CV={cv:.0f}%) — {preds}", + "status_moderate_agreement": "ℹ Concordancia moderada (CV={cv:.0f}%) — {preds}", + "status_high_agreement": "✓ Alta concordancia (CV={cv:.0f}%) — {preds}", + "status_training_active": "● Entrenando…", + "status_training_error": "● Error: {error}", + "status_training_done": "● Concluido", + + # Figuras vacías / placeholders + "fig_empty_default": "Esperando entradas…", + "fig_empty_pareto": "Sin Pareto", + "fig_empty_parcoords": "Sin coordenadas paralelas", + "fig_empty_3d": "Sin vista 3D", + "fig_empty_convergence": "Sin convergencia", + "fig_empty_heatmap": "Sin mapa de calor", + "fig_empty_distribution": "Sin distribución", + "fig_empty_topsis": "Sin TOPSIS", + "fig_empty_clusters": "Sin agrupamientos", + "fig_empty_hypervolume": "Sin hipervolumen", + "fig_empty_decision_space": "Sin espacio de decisión", + "msg_start_training_loss": "Inicie el entrenamiento para ver las curvas de pérdida", + "msg_train_for_metrics": "Entrene un modelo para ver las métricas", + "msg_results_not_yet": "El archivo training_results.csv aún no existe.", + "msg_error_reading_results": "Error al leer los resultados: {err}", + "msg_history_hint": "Cambie las entradas para acumular histórico de predicciones", + "msg_sensitivity_unavailable": "Sensibilidad no disponible", + "msg_models_unavailable": "Modelos no disponibles para comparación", + "msg_envelope_unavailable": "Envolvente operativa no disponible", + "msg_no_training_result": "Aún no hay resultados registrados.", + "msg_csv_missing_arch": "Al CSV le falta la columna de arquitectura.", + "msg_csv_no_metric": "No hay métricas numéricas disponibles en el CSV.", + "msg_need_two_archs": "Entrene al menos 2 arquitecturas para comparar en el radar.", + "msg_training_started": "🟡 Entrenamiento iniciado…", + "msg_training_completed": "✅ ¡Entrenamiento completado con éxito!", + "msg_training_failed": "❌ Falla: {err}", + "legend_best": "Mejor", + "metric_mae_real": "MAE (real)", + "metric_val_loss_scaled": "Val Pérdida (escalado)", + "metric_r2": "R²", + "metric_rmse": "RMSE", + "metric_epochs": "Épocas", + # Estado / progreso de la optimización + "opt_status_completed": "Optimización completada — {n} soluciones en {elapsed:.1f}s", + "opt_status_failure": "Falla", + "opt_status_optimizing": "Optimizando... Generación {gen}/{total} | Factibles: {feasible}", + "opt_generation_final": "Generación final: {gen}", + "opt_generation_progress": "Generación {gen} / {total}", + "opt_error_prefix": "Error: {err}", + # Gestor de archivos (DFM) + "dfm_kpi_files": "Archivos", + "dfm_kpi_size": "Tamaño", + "dfm_kpi_rows": "Filas", + "dfm_kpi_features_targets": "Características/Objetivos", + "dfm_preview_placeholder": "(seleccione un archivo arriba)", + "dfm_preview_invalid": "(selección inválida)", + "dfm_preview_no_path": "(archivo sin ruta)", + "dfm_preview_read_err": "Error al leer vista previa: {err}", + "dfm_preview_stats": "Mostrando {shown} de {total:,} filas · {cols} columnas · {size}", + "dfm_discover_failed": "Falla al descubrir archivos: {err}", + "dfm_confirm_delete": "¿Está seguro de que desea eliminar este archivo?\n\n• Archivo: {filename}\n• Tipo: {kind}\n• Ruta: {path}\n\nEsta acción no se puede deshacer.", + "dfm_upload_summary": "Subida: {ok} ok / {fail} fallos", + "dfm_upload_no_message": "(sin mensaje)", + + # Etiquetas de atributos / objetivos + "feat_flow": "Caudal Alim.", + "feat_ca0": "CA₀ Alim.", + "feat_cb0": "CB₀ Alim.", + "feat_tf": "Tf Alim.", + "feat_tamb": "T_amb Alim.", + "feat_tobs": "T_obs", + "feat_valve": "Válvula", + "feat_wj": "w_j", + + # Etiquetas cortas para subplots / ejes + "short_x_pct": "Conversión (%)", + "short_cat_act": "Act. Cat. (%)", + "short_fouling_um": "Incrustación (µm)", + "short_t0_k": "T₀ (K)", + + # Nombres de objetivos para analytics (violin, heatmap) + "target_CA0": "CA₀", + "target_CB0": "CB₀", + "target_CP0": "CP₀", + "target_CS0": "CS₀", + "target_T0": "T₀", + "target_X": "Conversión", + "target_fouling": "Incrustación", + "target_cat_activity": "Act. Catalítica", + + # Títulos/ejes de gráficos de optimización + "opt_fig_pareto_title": "Frente de Pareto (Conversión × Incrustación)", + "opt_fig_pareto_x": "Conversión máxima X (%)", + "opt_fig_pareto_y": "Incrustación mínima (µm)", + "opt_fig_parcoords_title": "Coordenadas Paralelas — Variables vs Objetivos", + "opt_fig_3d_title": "Espacio 3D — Caudal × T_feed × Conversión", + "opt_fig_3d_x": "Caudal (m³/s)", + "opt_fig_3d_y": "T_feed (K)", + "opt_fig_3d_z": "Conversión X (%)", + "opt_fig_convergence_title": "Convergencia de NSGA-II (generaciones)", + "opt_fig_convergence_x": "Generación", + "opt_fig_convergence_y": "Valor del Objetivo", + "opt_fig_heatmap_title": "Correlación — Variables × Objetivos", + "opt_fig_violin_title": "Distribución de los Objetivos", + "opt_fig_topsis_title": "Ranking TOPSIS — Mejores Soluciones", + "opt_fig_topsis_x": "Puntuación TOPSIS", + "opt_fig_topsis_y": "Solución #", + "opt_fig_clusters_title": "Agrupaciones de Soluciones (k-means)", + "opt_fig_hypervolume_title": "Evolución del Hipervolumen", + "opt_fig_hypervolume_x": "Generación", + "opt_fig_hypervolume_y": "Hipervolumen", + "opt_fig_decision_title": "Espacio de Decisión — Variables Elegidas", + "opt_axis_generation": "Generación", + "opt_axis_solution": "Solución", + "opt_axis_conversion_pct": "Conversión (%)", + "opt_axis_fouling_um": "Incrustación (µm)", + "opt_axis_value": "Valor", + "opt_axis_n_feasible": "N° Factibles", + "opt_axis_spread": "Dispersión (spread)", + "opt_axis_topsis_score": "Puntuación TOPSIS (0=peor → 1=mejor)", + "opt_label_conversion": "Conversión", + "opt_label_fouling": "Incrustación", + "opt_label_pareto_front": "Frente de Pareto", + "opt_label_dominated": "Dominadas", + "opt_label_utopia": "Punto Utopía", + "opt_label_avg_x": "Media X", + "opt_label_best_x": "Mejor X", + "opt_label_centroids": "Centroides", + "opt_label_centroid": "Centroide", + "opt_label_diversity": "Diversidad", + "opt_label_feasible_plural": "Factibles", + "opt_label_max": "Máx.", + "opt_label_mean": "Media", + # Cluster names + "opt_cluster_balanced": "Balanceado", + "opt_cluster_high_x_high_f": "Alta X / Alta Incrustación", + "opt_cluster_low_f_low_x": "Baja Incrustación / Baja X", + # Subplot titles + "opt_sub_avg_x": "Media X (%) Factibles", + "opt_sub_best_x": "Mejor X (%) × Generaciones", + "opt_sub_diversity": "Diversidad (spread)", + "opt_sub_feasibility": "Factibilidad por Generación", + "opt_sub_feasible_by_gen": "Soluciones Factibles por Generación", + "opt_sub_hv_by_gen": "Hipervolumen por Generación", + # Full figure titles + "opt_fig_3d_perf_title": "Espacio 3D de Desempeño", + "opt_fig_clusters_kmeans_title": "Clusters K-Means del Frente de Pareto (k={k})", + "opt_fig_clusters_pareto_title": "Clusters Pareto", + "opt_fig_convergence_metrics_title": "Métricas de Convergencia NSGA-II", + "opt_fig_decision_vs_x_title": "Espacio de Decisión — Variables vs X (%)", + "opt_fig_evolution_title": "Evolución NSGA-II", + "opt_fig_hv_by_gen_title": "Hipervolumen por Generación", + "opt_fig_opmap_title": "Mapa Operativo: Caudal × T_obs × Conversión", + "opt_fig_topsis_multi_title": "Ranking TOPSIS — Multi-Criterio (Top-15)", + "opt_fig_violin_out_title": "Distribución de Salidas — Soluciones Óptimas", + # Messages + "msg_no_feasible_relax": "Sin soluciones factibles. Relaje las restricciones.", + "msg_need_2_feasible": "Se requieren ≥ 2 soluciones factibles.", + "msg_no_feasible_3d": "Sin soluciones factibles para 3D.", + "msg_no_convergence_hist": "Sin historial de convergencia.", + "msg_need_3_heatmap": "Se requieren ≥ 3 soluciones para el mapa operativo.", + "msg_need_2_distribution": "Se requieren ≥ 2 soluciones para distribución.", + "msg_need_2_topsis": "Se requieren ≥ 2 soluciones para ranking TOPSIS.", + "msg_topsis_unavailable": "TOPSIS no disponible.", + "msg_need_4_cluster": "Se requieren ≥ 4 soluciones para clustering.", + "msg_cluster_missing_col": "Columna '{col}' ausente — clustering no disponible.", + "msg_sklearn_required": "scikit-learn es necesario para clustering.", + "msg_cluster_cols_insufficient": "Columnas insuficientes para clustering.", + "msg_cluster_rows_insufficient": "Filas válidas insuficientes tras la limpieza.", + "msg_cluster_zero_variance": "Varianza nula en alguna variable — clustering sin sentido.", + "msg_cluster_error": "Error de clustering: {err}", + "msg_no_hv_hist": "Sin historial de Hipervolumen.", + "msg_need_3_decision": "Se requieren ≥ 3 soluciones para el espacio de decisión.", + "msg_decision_cols_insufficient": "Columnas de decisión insuficientes.", + }, +} + + +# ══════════════════════════════════════════════════════════════════════════════ +# API PÚBLICA +# ══════════════════════════════════════════════════════════════════════════════ +def t(key: str, lang: str | None = None) -> str: + """ + Retorna o texto traduzido para ``key`` no idioma ``lang``. + + Ordem de fallback: + 1. ``TRANSLATIONS[lang][key]`` (se existir) + 2. ``TRANSLATIONS[DEFAULT_LANG][key]`` (se existir) + 3. A própria ``key`` (útil para localizar textos ainda não traduzidos) + """ + lang = lang or DEFAULT_LANG + if lang in TRANSLATIONS and key in TRANSLATIONS[lang]: + return TRANSLATIONS[lang][key] + if key in TRANSLATIONS.get(DEFAULT_LANG, {}): + return TRANSLATIONS[DEFAULT_LANG][key] + return key + + +def get_lang(value: Any) -> str: + """ + Valida o código de idioma ``value`` — retorna ``DEFAULT_LANG`` se inválido. + + Aceita str direta (vinda de ``Input('lang-selector', 'value')``) ou None. + """ + if isinstance(value, str) and value in VALID_LANG_CODES: + return value + return DEFAULT_LANG + + +def options_for_dropdown() -> list[dict[str, str]]: + """Formato pronto para ``dcc.Dropdown.options``.""" + return list(LANGUAGES) + + +def available_keys(lang: str = DEFAULT_LANG) -> list[str]: + """Retorna todas as chaves traduzidas para ``lang`` (útil em testes).""" + return sorted(TRANSLATIONS.get(lang, {}).keys()) + + +def missing_keys(lang: str) -> list[str]: + """Retorna chaves presentes em DEFAULT_LANG mas faltando em ``lang``.""" + default = set(TRANSLATIONS.get(DEFAULT_LANG, {})) + other = set(TRANSLATIONS.get(lang, {})) + return sorted(default - other) diff --git a/CSTRChemIA/core/logging.py b/CSTRChemIA/core/logging.py new file mode 100644 index 0000000..8235c99 --- /dev/null +++ b/CSTRChemIA/core/logging.py @@ -0,0 +1,96 @@ +""" +Logging centralizado e seguro para Windows / Python 3.13. + +No Windows, após `sys.stdout.reconfigure(...)` em threads secundárias o +handle pode ficar inválido e qualquer `print(flush=True)` lança +``OSError [Errno 22] Invalid argument``. Este módulo oferece: + +* :func:`safe_print` — substituto drop-in para ``print()`` que silencia + ``OSError`` / ``ValueError``. +* :func:`get_logger` — fábrica de loggers padrão (nome do módulo como + prefixo) que escreve via ``safe_print`` para evitar o mesmo bug em + ``StreamHandler``. +* :func:`setup_logging` — configura root logger na primeira chamada + (idempotente). +""" + +from __future__ import annotations + +import logging +import os +import sys +import threading +from typing import Any + +_LOG_LOCK = threading.Lock() +_CONFIGURED = False + + +def safe_print(*args: Any, **kwargs: Any) -> None: + """``print()`` resiliente a handles de stdout inválidos (Windows).""" + kwargs.pop("flush", None) + try: + print(*args, **kwargs) + except (OSError, ValueError): + # stdout reconfigurado em thread background — perdemos a linha, + # mas não deixamos a aplicação morrer. + pass + + +class _SafeStreamHandler(logging.Handler): + """StreamHandler que usa :func:`safe_print` em vez de gravar direto.""" + + def emit(self, record: logging.LogRecord) -> None: + try: + msg = self.format(record) + safe_print(msg) + except Exception: # noqa: BLE001 + self.handleError(record) + + +def setup_logging(level: int | str | None = None, fmt: str | None = None) -> None: + """Configura o root logger. Idempotente e thread-safe.""" + global _CONFIGURED + with _LOG_LOCK: + if _CONFIGURED: + return + + if level is None: + env = os.environ.get("CSTRCHEMIA_LOG_LEVEL", "INFO").upper() + level = getattr(logging, env, logging.INFO) + if isinstance(level, str): + level = getattr(logging, level.upper(), logging.INFO) + + fmt = fmt or "%(asctime)s [%(levelname)s] %(name)s: %(message)s" + + root = logging.getLogger() + # Remove handlers existentes para evitar duplicação + for h in list(root.handlers): + root.removeHandler(h) + + handler = _SafeStreamHandler() + handler.setFormatter(logging.Formatter(fmt)) + root.addHandler(handler) + root.setLevel(level) + + # Baixa ruído de libs pesadas + for noisy in ("tensorflow", "h5py", "matplotlib", "werkzeug", "urllib3"): + logging.getLogger(noisy).setLevel(logging.WARNING) + + # Garante stdout line-buffered — em ambientes onde reconfigure falha, + # ainda assim ficamos com safe_print. + for stream in (sys.stdout, sys.stderr): + try: + if hasattr(stream, "reconfigure"): + stream.reconfigure(line_buffering=True) + except (OSError, ValueError, AttributeError): + pass + + _CONFIGURED = True + + +def get_logger(name: str) -> logging.Logger: + """Retorna um logger pronto para uso; garante que o root foi configurado.""" + if not _CONFIGURED: + setup_logging() + return logging.getLogger(name) diff --git a/CSTRChemIA/core/model_manifest.py b/CSTRChemIA/core/model_manifest.py new file mode 100644 index 0000000..8776c81 --- /dev/null +++ b/CSTRChemIA/core/model_manifest.py @@ -0,0 +1,296 @@ +""" +Manifesto dos modelos — ``surrogate_model/models.json``. + +Problemas do registry antigo +---------------------------- +O registry atual (``services/model_registry.py``) descobre arquitecturas +checando arquivos no disco e lê métricas globais de um CSV. Isso tem 3 +fragilidades: + +1. **Sem verificação de integridade** — um ``.keras`` corrompido só é + detectado quando o processo crasha no load. +2. **Sem métricas por-target** — um MAE global de 0.01 pode esconder um + target (p.ex. ``fouling_thickness``) com MAE catastrófico. +3. **Sem reprodutibilidade** — não sabemos com qual seed, qual commit de + código, nem quais hiperparâmetros o artefato foi gerado. + +Este módulo define :class:`ModelManifest` (um por arquitetura) e um +arquivo ``models.json`` agregando todos. O treino escreve; o registry +lê e enriquece :class:`ModelInfo`. + +Formato JSON +------------ +:: + + { + "version": "1", + "generated_at": "2025-04-20T12:34:56Z", + "models": { + "MLP": { ... ModelManifest ... }, + "RNN": { ... }, + "CNN": { ... } + } + } +""" + +from __future__ import annotations + +import json +import os +from dataclasses import asdict, dataclass, field +from datetime import datetime, timezone +from pathlib import Path +from typing import Any + +from core.logging import get_logger +from core.safe_serialization import file_sha256 + +log = get_logger(__name__) + +MANIFEST_VERSION = "1" +MANIFEST_FILENAME = "models.json" + + +# ══════════════════════════════════════════════════════════════════════════════ +# DATACLASSES +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(frozen=True, slots=True) +class TargetMetrics: + """Métricas de performance para um target específico.""" + target: str + mae: float + rmse: float + r2: float + + +@dataclass(frozen=True, slots=True) +class ModelManifest: + """ + Manifesto completo de UM modelo surrogate treinado. + + Todos os caminhos de arquivo são *relativos* ao diretório do manifesto, + para que o bundle (models.json + .keras + scalers) seja realocável. + """ + + architecture: str + trained_at: str + seed: int + framework: str + # ---- artefatos e hashes + keras_file: str + keras_sha256: str + scaler_x_file: str + scaler_x_sha256: str + scaler_y_file: str + scaler_y_sha256: str + # ---- schema + n_features: int + n_targets: int + feature_names: tuple[str, ...] + target_names: tuple[str, ...] + # ---- métricas (escaladas? reais? escolhemos reais — unidade do target) + global_metrics: dict[str, float] + per_target_metrics: dict[str, dict[str, float]] + # ---- splits e hiperparâmetros + n_train: int = 0 + n_val: int = 0 + n_test: int = 0 + hyperparameters: dict[str, Any] = field(default_factory=dict) + notes: str = "" + + # -------------------------------------------------------- serialization + def to_dict(self) -> dict[str, Any]: + d = asdict(self) + d["feature_names"] = list(self.feature_names) + d["target_names"] = list(self.target_names) + return d + + @classmethod + def from_dict(cls, d: dict[str, Any]) -> ModelManifest: + return cls( + architecture=d["architecture"], + trained_at=d["trained_at"], + seed=int(d["seed"]), + framework=d["framework"], + keras_file=d["keras_file"], + keras_sha256=d["keras_sha256"], + scaler_x_file=d["scaler_x_file"], + scaler_x_sha256=d["scaler_x_sha256"], + scaler_y_file=d["scaler_y_file"], + scaler_y_sha256=d["scaler_y_sha256"], + n_features=int(d["n_features"]), + n_targets=int(d["n_targets"]), + feature_names=tuple(d["feature_names"]), + target_names=tuple(d["target_names"]), + global_metrics=dict(d.get("global_metrics", {})), + per_target_metrics={ + k: dict(v) for k, v in d.get("per_target_metrics", {}).items() + }, + n_train=int(d.get("n_train", 0)), + n_val=int(d.get("n_val", 0)), + n_test=int(d.get("n_test", 0)), + hyperparameters=dict(d.get("hyperparameters", {})), + notes=str(d.get("notes", "")), + ) + + # -------------------------------------------------------- verificação + def verify_integrity(self, models_dir: str | os.PathLike) -> list[str]: + """ + Recalcula SHA-256 dos artefatos e compara com o manifesto. + Retorna lista de mensagens de erro (vazia = OK). + """ + errors: list[str] = [] + base = Path(models_dir) + checks = [ + (self.keras_file, self.keras_sha256, "modelo"), + (self.scaler_x_file, self.scaler_x_sha256, "scalerX"), + (self.scaler_y_file, self.scaler_y_sha256, "scalerY"), + ] + for name, expected, label in checks: + path = base / name + if not path.exists(): + errors.append(f"{label} ausente: {path}") + continue + actual = file_sha256(path) + if actual != expected: + errors.append( + f"{label} com hash inconsistente: " + f"esperado={expected[:12]}..., atual={actual[:12]}..." + ) + return errors + + +# ══════════════════════════════════════════════════════════════════════════════ +# I/O +# ══════════════════════════════════════════════════════════════════════════════ +def write_manifest( + models_dir: str | os.PathLike, + manifests: dict[str, ModelManifest], +) -> Path: + """ + Escreve ``models.json`` agregando todos os manifestos. Sobrescreve. + + ``manifests`` é ``{architecture: ModelManifest}``. + """ + path = Path(models_dir) / MANIFEST_FILENAME + doc = { + "version": MANIFEST_VERSION, + "generated_at": datetime.now(timezone.utc).isoformat(timespec="seconds"), + "models": {arch: m.to_dict() for arch, m in manifests.items()}, + } + tmp = path.with_suffix(".json.tmp") + with open(tmp, "w", encoding="utf-8") as f: + json.dump(doc, f, indent=2, sort_keys=False) + os.replace(tmp, path) + log.info("Manifesto escrito em %s (%d modelos)", path, len(manifests)) + return path + + +def read_manifest(models_dir: str | os.PathLike) -> dict[str, ModelManifest]: + """ + Lê ``models.json``. Retorna dict vazio se ausente ou inválido. + """ + path = Path(models_dir) / MANIFEST_FILENAME + if not path.exists(): + return {} + try: + with open(path, "r", encoding="utf-8") as f: + doc = json.load(f) + except (OSError, json.JSONDecodeError) as e: + log.error("Falha ao ler %s: %s", path, e) + return {} + + if not isinstance(doc, dict) or "models" not in doc: + log.error("Manifesto malformado em %s: falta chave 'models'", path) + return {} + + out: dict[str, ModelManifest] = {} + for arch, payload in doc.get("models", {}).items(): + try: + out[arch] = ModelManifest.from_dict(payload) + except (KeyError, TypeError, ValueError) as e: + log.warning("Entrada %s ignorada no manifesto (%s): %s", arch, e, payload) + return out + + +# ══════════════════════════════════════════════════════════════════════════════ +# CONSTRUÇÃO (usado pelo pipeline de treino) +# ══════════════════════════════════════════════════════════════════════════════ +def build_manifest( + *, + architecture: str, + models_dir: str | os.PathLike, + keras_filename: str, + scaler_x_filename: str, + scaler_y_filename: str, + seed: int, + feature_names: tuple[str, ...], + target_names: tuple[str, ...], + global_metrics: dict[str, float], + per_target_metrics: dict[str, dict[str, float]], + n_train: int = 0, + n_val: int = 0, + n_test: int = 0, + hyperparameters: dict[str, Any] | None = None, + framework: str | None = None, + notes: str = "", +) -> ModelManifest: + """ + Computa SHA-256 dos artefatos e monta o manifesto. Usado pelo script + de treino ao final da persistência. + """ + base = Path(models_dir) + if framework is None: + framework = _detect_framework_version() + + keras_sha = file_sha256(base / keras_filename) + sx_sha = file_sha256(base / scaler_x_filename) + sy_sha = file_sha256(base / scaler_y_filename) + + return ModelManifest( + architecture=architecture, + trained_at=datetime.now(timezone.utc).isoformat(timespec="seconds"), + seed=int(seed), + framework=framework, + keras_file=keras_filename, + keras_sha256=keras_sha, + scaler_x_file=scaler_x_filename, + scaler_x_sha256=sx_sha, + scaler_y_file=scaler_y_filename, + scaler_y_sha256=sy_sha, + n_features=len(feature_names), + n_targets=len(target_names), + feature_names=tuple(feature_names), + target_names=tuple(target_names), + global_metrics=dict(global_metrics), + per_target_metrics={k: dict(v) for k, v in per_target_metrics.items()}, + n_train=int(n_train), + n_val=int(n_val), + n_test=int(n_test), + hyperparameters=dict(hyperparameters or {}), + notes=notes, + ) + + +def update_manifest_entry( + models_dir: str | os.PathLike, + manifest: ModelManifest, +) -> Path: + """ + Mescla ``manifest`` (uma arquitetura) no arquivo ``models.json`` existente. + """ + current = read_manifest(models_dir) + current[manifest.architecture] = manifest + return write_manifest(models_dir, current) + + +# ══════════════════════════════════════════════════════════════════════════════ +# UTIL +# ══════════════════════════════════════════════════════════════════════════════ +def _detect_framework_version() -> str: + """Best-effort: 'tensorflow==X.Y.Z'. Falha silenciosa retorna 'unknown'.""" + try: + import tensorflow as tf # type: ignore + return f"tensorflow=={tf.__version__}" + except Exception: # noqa: BLE001 + return "unknown" diff --git a/CSTRChemIA/core/safe_serialization.py b/CSTRChemIA/core/safe_serialization.py new file mode 100644 index 0000000..8879167 --- /dev/null +++ b/CSTRChemIA/core/safe_serialization.py @@ -0,0 +1,236 @@ +""" +Serialização segura dos scalers (sem pickle). + +``pickle.load`` executa código arbitrário no objeto desserializado — um +arquivo ``.pkl`` malicioso compromete o processo. Este módulo oferece +serialização JSON pura para os scalers do ``sklearn`` (StandardScaler, +RobustScaler, QuantileTransformer, PowerTransformer) com verificação +de hash SHA-256. + +Formato JSON +------------ +:: + + { + "class": "StandardScaler", + "params": {...}, # parâmetros aprendidos (mean_, scale_, etc.) + "n_features_in": 12, + "feature_names": [...], # opcional + "version": "1", + "sha256": "abcdef..." # hash dos params (excluindo o campo sha256) + } + +Uso +--- +:: + + from core.safe_serialization import dump_scaler_json, load_scaler_json + dump_scaler_json(scalerX, "scalerX.json", feature_names=FEATURE_COLS) + sc = load_scaler_json("scalerX.json") + +Compatibilidade +--------------- +Quando o JSON não existe mas o ``.pkl`` legado existe, :func:`load_scaler_any` +carrega o pickle (com aviso) e devolve o scaler. Migração gradual. +""" + +from __future__ import annotations + +import hashlib +import json +import os +from pathlib import Path +from typing import Any + +import numpy as np + +from core.logging import get_logger + +log = get_logger(__name__) + +_SCALER_FORMAT_VERSION = "1" + + +# ══════════════════════════════════════════════════════════════════════════════ +# HASH +# ══════════════════════════════════════════════════════════════════════════════ +def _canonical_hash(obj: dict[str, Any]) -> str: + """SHA-256 determinístico de um dict (ignora ordem de chaves e o próprio sha).""" + payload = {k: v for k, v in obj.items() if k != "sha256"} + s = json.dumps(payload, sort_keys=True, separators=(",", ":"), + default=_json_default) + return hashlib.sha256(s.encode("utf-8")).hexdigest() + + +def _json_default(x: Any) -> Any: + """JSONEncoder default — converte numpy arrays em lists.""" + if isinstance(x, np.ndarray): + return x.tolist() + if isinstance(x, (np.floating, np.integer)): + return float(x) if isinstance(x, np.floating) else int(x) + raise TypeError(f"{type(x).__name__} não é serializável") + + +def file_sha256(path: str | os.PathLike) -> str: + """Hash SHA-256 de um arquivo (útil para verificar artefato .keras).""" + h = hashlib.sha256() + with open(path, "rb") as f: + for chunk in iter(lambda: f.read(1 << 16), b""): + h.update(chunk) + return h.hexdigest() + + +# ══════════════════════════════════════════════════════════════════════════════ +# SERIALIZAÇÃO +# ══════════════════════════════════════════════════════════════════════════════ +_SUPPORTED_SCALER_PARAMS: dict[str, list[str]] = { + # (class_name → lista de atributos aprendidos a persistir) + "StandardScaler": ["mean_", "scale_", "var_", "n_samples_seen_"], + "RobustScaler": ["center_", "scale_"], + "MinMaxScaler": ["min_", "scale_", "data_min_", "data_max_", "data_range_"], + "PowerTransformer": ["lambdas_"], + "QuantileTransformer": ["quantiles_", "references_"], +} + + +def _extract_params(scaler: Any) -> dict[str, Any]: + """Extrai parâmetros aprendidos do scaler. Levanta se tipo não suportado.""" + cls_name = type(scaler).__name__ + keys = _SUPPORTED_SCALER_PARAMS.get(cls_name) + if keys is None: + raise TypeError( + f"Scaler {cls_name} não suportado pela serialização JSON. " + f"Suportados: {list(_SUPPORTED_SCALER_PARAMS)}" + ) + params: dict[str, Any] = {} + for attr in keys: + if hasattr(scaler, attr): + params[attr] = getattr(scaler, attr) + # Alguns atributos são int mas vêm como np.int — normaliza + if "n_samples_seen_" in params and hasattr(params["n_samples_seen_"], "item"): + params["n_samples_seen_"] = int(params["n_samples_seen_"]) + return params + + +def dump_scaler_json( + scaler: Any, + path: str | os.PathLike, + *, + feature_names: list[str] | None = None, +) -> dict[str, Any]: + """ + Serializa ``scaler`` para JSON em ``path`` (não usa pickle). + + Retorna o dict persistido (útil para inspeção/testes). + """ + cls_name = type(scaler).__name__ + params = _extract_params(scaler) + # n_features_in_ padrão sklearn + n_features = int(getattr(scaler, "n_features_in_", len(next(iter(params.values()))))) + + doc: dict[str, Any] = { + "class": cls_name, + "version": _SCALER_FORMAT_VERSION, + "n_features_in": n_features, + "feature_names": list(feature_names) if feature_names else None, + "params": params, + } + doc["sha256"] = _canonical_hash(doc) + + path = str(path) + tmp = path + ".tmp" + with open(tmp, "w", encoding="utf-8") as f: + json.dump(doc, f, separators=(",", ":"), default=_json_default) + os.replace(tmp, path) + log.info("Scaler %s salvo em %s (%d features, sha=%s...)", + cls_name, path, n_features, doc["sha256"][:12]) + return doc + + +def _apply_params(scaler: Any, params: dict[str, Any]) -> None: + """Injeta parâmetros aprendidos em um scaler instanciado.""" + for k, v in params.items(): + if isinstance(v, list): + setattr(scaler, k, np.asarray(v, dtype=np.float64)) + else: + setattr(scaler, k, v) + + +def load_scaler_json(path: str | os.PathLike, *, verify_hash: bool = True) -> Any: + """ + Carrega scaler de JSON. Verifica SHA por padrão — ``verify_hash=False`` pula. + Retorna instância sklearn do scaler. + + Raises + ------ + ValueError + Formato inválido, classe não suportada, ou hash mismatch. + """ + with open(path, "r", encoding="utf-8") as f: + doc = json.load(f) + + if not isinstance(doc, dict) or "class" not in doc or "params" not in doc: + raise ValueError(f"Formato inválido em {path} — esperado dict com class/params") + + if verify_hash: + expected = doc.get("sha256") + actual = _canonical_hash(doc) + if expected != actual: + raise ValueError( + f"Hash mismatch em {path}: esperado={expected!r} calculado={actual!r}" + ) + + cls_name = doc["class"] + params = doc["params"] + + # Instancia a classe sem fit (só precisa do shell) + import sklearn.preprocessing as skp + cls = getattr(skp, cls_name, None) + if cls is None: + raise ValueError(f"Classe sklearn.preprocessing.{cls_name} não existe") + + scaler = cls() + _apply_params(scaler, params) + # Garante n_features_in_ para sanity checks em .transform + scaler.n_features_in_ = int(doc.get("n_features_in", 0)) or None + + log.debug("Scaler %s carregado de %s", cls_name, path) + return scaler + + +# ══════════════════════════════════════════════════════════════════════════════ +# COMPATIBILIDADE: carrega .json OU .pkl (fallback) +# ══════════════════════════════════════════════════════════════════════════════ +def load_scaler_any( + base_path: str | os.PathLike, + *, + verify_hash: bool = True, +) -> Any: + """ + Tenta carregar ``.json`` primeiro; cai para ``.pkl`` legado. + + ``base_path`` pode ser ``scalerX`` ou ``scalerX.pkl`` — a extensão é + removida e tentamos ``.json`` em seguida. Migração gradual: assim que o + treino escrever JSON, o próximo start já usa o formato seguro. + """ + p = Path(base_path) + stem_path = p.with_suffix("") if p.suffix in (".json", ".pkl") else p + + json_path = stem_path.with_suffix(".json") + pkl_path = stem_path.with_suffix(".pkl") + + if json_path.exists(): + return load_scaler_json(json_path, verify_hash=verify_hash) + + if pkl_path.exists(): + log.warning( + "Scaler %s ainda em pickle legado; migre chamando dump_scaler_json(). " + "Risco: pickle executa código arbitrário.", pkl_path + ) + import pickle # noqa: S403 — aceito temporariamente + with open(pkl_path, "rb") as f: + return pickle.load(f) # noqa: S301 + + raise FileNotFoundError( + f"Scaler não encontrado. Procurado: {json_path} e {pkl_path}." + ) diff --git a/CSTRChemIA/core/settings.py b/CSTRChemIA/core/settings.py new file mode 100644 index 0000000..a384237 --- /dev/null +++ b/CSTRChemIA/core/settings.py @@ -0,0 +1,83 @@ +""" +Settings da aplicação — configuração tipada via variáveis de ambiente. + +Substitui o antigo ``config.py`` por uma dataclass imutável e validada, +com valores derivados de caminhos (``BASE_DIR``, ``MODELS_DIR``, etc.) +calculados uma única vez no import. +""" + +from __future__ import annotations + +import os +from dataclasses import dataclass, field +from functools import lru_cache +from pathlib import Path + + +def _env_int(name: str, default: int) -> int: + raw = os.environ.get(name) + if raw is None or raw == "": + return default + try: + return int(raw) + except ValueError as exc: # pragma: no cover + raise ValueError(f"{name} deve ser int, recebeu {raw!r}") from exc + + +def _env_bool(name: str, default: bool) -> bool: + raw = os.environ.get(name) + if raw is None: + return default + return raw.strip().lower() in {"1", "true", "yes", "on"} + + +@dataclass(frozen=True, slots=True) +class Settings: + """Configuração central — imutável e cacheada via :func:`get_settings`.""" + + # Rede / servidor + host: str = "0.0.0.0" + port: int = 8051 + debug: bool = False + + # Diretórios (absolutos) + base_dir: Path = field(default_factory=lambda: Path(__file__).resolve().parent.parent) + models_dir: Path = field(init=False) + training_dir: Path = field(init=False) + data_dir: Path = field(init=False) + assets_dir: Path = field(init=False) + + # Cache + model_cache_size: int = 8 + prediction_cache_size: int = 1024 + + # Otimização + default_pop_size: int = 100 + default_n_gen: int = 50 + default_seed: int = 42 + + # Logging + log_level: str = "INFO" + + def __post_init__(self) -> None: + # Como dataclass é frozen, usamos object.__setattr__. + object.__setattr__(self, "models_dir", self.base_dir / "surrogate_model") + object.__setattr__(self, "training_dir", self.base_dir / "training") + object.__setattr__(self, "data_dir", self.base_dir / "simulation") + object.__setattr__(self, "assets_dir", self.base_dir / "assets") + + +@lru_cache(maxsize=1) +def get_settings() -> Settings: + """Settings da aplicação — singleton cacheado.""" + return Settings( + host=os.environ.get("CSTRCHEMIA_HOST", "0.0.0.0"), + port=_env_int("PORT", _env_int("CSTRCHEMIA_PORT", 8051)), + debug=_env_bool("CSTRCHEMIA_DEBUG", False), + model_cache_size=_env_int("CSTRCHEMIA_MODEL_CACHE", 8), + prediction_cache_size=_env_int("CSTRCHEMIA_PREDICTION_CACHE", 1024), + default_pop_size=_env_int("CSTRCHEMIA_DEFAULT_POP", 100), + default_n_gen=_env_int("CSTRCHEMIA_DEFAULT_NGEN", 50), + default_seed=_env_int("CSTRCHEMIA_DEFAULT_SEED", 42), + log_level=os.environ.get("CSTRCHEMIA_LOG_LEVEL", "INFO"), + ) diff --git a/CSTRChemIA/core/types.py b/CSTRChemIA/core/types.py new file mode 100644 index 0000000..6b71186 --- /dev/null +++ b/CSTRChemIA/core/types.py @@ -0,0 +1,84 @@ +""" +Tipos compartilhados — dataclasses e aliases usados nas fronteiras entre +camadas (UI ↔ services ↔ modelos). Tipagem forte evita confusão entre +arrays "features", "targets" e parâmetros de otimização. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import TYPE_CHECKING, Any, TypeAlias + +import numpy as np + +if TYPE_CHECKING: + from core.model_manifest import ModelManifest + +# Aliases semânticos. NumPy não oferece generics de tamanho nativamente; +# usamos ndarray com comentário de shape no docstring de cada função. +FeatureArray: TypeAlias = np.ndarray # shape: (N, 12) ou (12,) +TargetArray: TypeAlias = np.ndarray # shape: (N, 8) ou (8,) +ParamDict: TypeAlias = dict[str, float] + + +@dataclass(frozen=True, slots=True) +class SimulationInput: + """Entrada de uma simulação única (um ponto no espaço de features).""" + features: FeatureArray + model_name: str + + +@dataclass(frozen=True, slots=True) +class SimulationResult: + """Resultado de uma simulação única.""" + targets: TargetArray + model_name: str + wall_time_s: float + + +@dataclass(frozen=True, slots=True) +class OptimizationConfig: + """Configuração de uma corrida NSGA-II.""" + model_name: str + objective_names: list[str] + minimize: list[bool] + bounds: dict[str, tuple[float, float]] + pop_size: int = 100 + n_gen: int = 50 + seed: int = 42 + + +@dataclass(slots=True) +class OptimizationResult: + """Resultado de uma corrida NSGA-II — frente de Pareto + metadados.""" + pareto_features: FeatureArray # shape: (N, 12) + pareto_objectives: np.ndarray # shape: (N, K) + hypervolume: float | None = None + topsis_best_idx: int | None = None + wall_time_s: float = 0.0 + config: OptimizationConfig | None = None + extra: dict[str, Any] = field(default_factory=dict) + + +@dataclass(frozen=True, slots=True) +class ModelInfo: + """Metadados de um modelo surrogate persistido em disco. + + ``manifest`` contém o :class:`core.model_manifest.ModelManifest` completo + quando ``models.json`` existe no diretório do modelo — aí ``per_target_mae`` + e ``seed`` são preenchidos para uso na UI. + """ + name: str + architecture: str # "MLP", "RNN" ou "CNN" + mae: float + rmse: float | None = None + r2: float | None = None + n_features: int = 12 + n_targets: int = 8 + path: str = "" + # --- enriquecimentos do manifesto (opcionais, backward-compat) + manifest: ModelManifest | None = None + per_target_mae: dict[str, float] | None = None + seed: int | None = None + trained_at: str | None = None + keras_sha256: str | None = None diff --git a/CSTRChemIA/core/uncertainty.py b/CSTRChemIA/core/uncertainty.py new file mode 100644 index 0000000..e766aca --- /dev/null +++ b/CSTRChemIA/core/uncertainty.py @@ -0,0 +1,294 @@ +""" +Estimação de incerteza preditiva — MC Dropout, Deep Ensembles, Conformal. + +Motivação +--------- +Um ponto predito sem incerteza é mal formulado. No contexto de otimização +do CSTR, uma solução "ótima" que prediz ``T0 = 350 K ± 0.1 K`` é muito +diferente de ``T0 = 350 K ± 30 K`` — a segunda coloca o reator em risco +de runaway térmico dependendo do erro real. + +Três famílias complementares estão aqui: + +1. **MC Dropout** (Gal & Ghahramani, 2016) — aproxima a posteriori + epistêmica da rede executando N *forward passes* com dropout ativo. + Barato: N ≈ 20–50 passes. Requer que o modelo tenha camadas + ``Dropout``; para o ``build_mlp`` atual isso já é o caso. + +2. **Deep Ensembles** (Lakshminarayanan et al., 2017) — treina M modelos + com seeds diferentes e reporta média + desvio entre eles. Captura + incerteza epistêmica de modo melhor que MC Dropout, porém custa M× + em treino. Aqui oferecemos apenas a agregação (treino vem do + ``train_surrogate``). + +3. **Split Conformal Prediction** (Vovk; Papadopoulos) — + *distribution-free* intervals com cobertura garantida em amostra + finita. Usa um conjunto de calibração held-out para computar o + quantil (1-α) dos resíduos absolutos; o intervalo é + ``[ŷ - q, ŷ + q]``. Sem hipóteses de Gaussianidade. + +Uso típico +---------- +:: + + from core.uncertainty import mc_dropout_predict, SplitConformalCalibrator + + mean, std = mc_dropout_predict(pipeline, X, n_samples=30) + + cal = SplitConformalCalibrator(alpha=0.1) # 90% de cobertura + cal.fit(y_cal_true, y_cal_pred) + lo, hi = cal.interval(y_pred) +""" + +from __future__ import annotations + +from collections.abc import Callable +from dataclasses import dataclass +from typing import Any + +import numpy as np + +from core.exceptions import DataValidationError +from core.logging import get_logger + +log = get_logger(__name__) + +PredictFn = Callable[[np.ndarray], np.ndarray] + + +# ══════════════════════════════════════════════════════════════════════════════ +# MC DROPOUT +# ══════════════════════════════════════════════════════════════════════════════ +def mc_dropout_predict( + pipeline: Any, + X: np.ndarray, + *, + n_samples: int = 30, + batch_size: int = 256, + needs_3d: bool = False, +) -> tuple[np.ndarray, np.ndarray]: + """ + Executa ``n_samples`` forward passes com dropout ativo e retorna + média e desvio-padrão (em unidades originais, após inverse_transform). + + Parameters + ---------- + pipeline + Objeto com atributos ``model`` (keras.Model), ``scalerX``, ``scalerY``. + A interface é idêntica a :class:`KerasPipelineModel`. + X + Features NÃO escaladas, shape ``(n, n_features)``. + n_samples + Número de passes estocásticos. 20–50 costuma bastar. + needs_3d + ``True`` para RNN/CNN (reshape para 3D antes do forward). + + Returns + ------- + (mean, std) + ``mean`` shape ``(n, n_targets)``; ``std`` idem. + + Notas + ----- + * Requer que o modelo tenha ao menos uma camada Dropout. Sem dropout + o desvio será ~0 (determinismo) — o método degenera para um simples + predict. + * Chamar ``model(X, training=True)`` força dropout ativo mesmo em + inferência (é assim que MC Dropout funciona). + """ + if n_samples < 2: + raise ValueError(f"n_samples deve ser ≥ 2, recebi {n_samples}") + + X = np.asarray(X, dtype=np.float64) + if X.ndim == 1: + X = X.reshape(1, -1) + + X_scaled = pipeline.scalerX.transform(X) + X_input = ( + X_scaled.reshape(X_scaled.shape[0], X_scaled.shape[1], 1) + if needs_3d else X_scaled + ) + + # Import tardio — evita carregar TF em contextos só-CPU/só-UI. + import tensorflow as tf # type: ignore + + model = pipeline.model + samples = np.empty( + (n_samples, X.shape[0], pipeline.scalerY.n_features_in_ or 0 or 8), + dtype=np.float64, + ) + # Ajuste dinâmico: pode ser que n_features_in_ do scalerY não esteja setado. + samples_list: list[np.ndarray] = [] + x_tensor = tf.constant(X_input, dtype=tf.float32) + + for _ in range(n_samples): + # training=True → dropout ativo + y_scaled = model(x_tensor, training=True).numpy() + y_real = pipeline.scalerY.inverse_transform(y_scaled) + samples_list.append(y_real) + + arr = np.stack(samples_list, axis=0) # (n_samples, n, n_targets) + return arr.mean(axis=0), arr.std(axis=0, ddof=1) + + +# ══════════════════════════════════════════════════════════════════════════════ +# DEEP ENSEMBLE +# ══════════════════════════════════════════════════════════════════════════════ +def ensemble_predict( + predict_fns: list[PredictFn], + X: np.ndarray, +) -> tuple[np.ndarray, np.ndarray]: + """ + Agrega predições de múltiplos modelos em um Deep Ensemble. + + Parameters + ---------- + predict_fns + Lista de callables ``X -> y_pred`` (shape ``(n, n_targets)``). + Cada callable representa um modelo treinado independentemente. + X + Features; cada ``predict_fn`` é responsável por pré-processar. + + Returns + ------- + (mean, std) + """ + if len(predict_fns) < 2: + raise ValueError( + f"Ensemble requer ≥ 2 membros, recebi {len(predict_fns)}" + ) + preds = np.stack([fn(X) for fn in predict_fns], axis=0) + return preds.mean(axis=0), preds.std(axis=0, ddof=1) + + +# ══════════════════════════════════════════════════════════════════════════════ +# SPLIT CONFORMAL PREDICTION +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(slots=True) +class SplitConformalCalibrator: + """ + Split conformal prediction para intervalos de cobertura garantida. + + Garantia (Vovk, 2005): Se os resíduos são trocáveis (iid é + suficiente), então ``P(y_true ∈ [ŷ-q, ŷ+q]) ≥ 1 - α`` em amostra + finita, onde ``q`` é o ceil((n+1)(1-α))-ésimo quantil dos resíduos + absolutos no conjunto de calibração. + + Parameters + ---------- + alpha + Nível de miscoverage desejado. ``alpha=0.1`` → cobertura ≥ 90%. + """ + + alpha: float = 0.1 + #: Quantis absolutos por target (preenchido em :meth:`fit`). + q_hat: np.ndarray | None = None + target_names: tuple[str, ...] | None = None + + def fit( + self, + y_true: np.ndarray, + y_pred: np.ndarray, + *, + target_names: list[str] | None = None, + ) -> SplitConformalCalibrator: + """ + Calibra com um conjunto held-out (``y_cal_true``, ``y_cal_pred``). + Ambos em shape ``(n_cal, n_targets)`` e na mesma unidade. + """ + y_true = np.asarray(y_true, dtype=np.float64) + y_pred = np.asarray(y_pred, dtype=np.float64) + if y_true.shape != y_pred.shape: + raise DataValidationError( + f"Shapes incompatíveis: y_true {y_true.shape} vs y_pred {y_pred.shape}" + ) + if y_true.ndim != 2: + raise DataValidationError(f"Esperado 2D, recebi {y_true.ndim}D") + + residuals = np.abs(y_true - y_pred) # (n_cal, n_targets) + n = residuals.shape[0] + # Quantil conservador (split-conformal clássico). + level = np.ceil((n + 1) * (1.0 - self.alpha)) / n + level = float(np.clip(level, 0.0, 1.0)) + q = np.quantile(residuals, level, axis=0, method="higher") + + self.q_hat = q + self.target_names = tuple(target_names) if target_names else None + log.info( + "Conformal calibrado: n_cal=%d, alpha=%.3f, quantis médios=%.4g", + n, self.alpha, float(q.mean()), + ) + return self + + def interval(self, y_pred: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + """ + Retorna (lo, hi) com shape igual a ``y_pred``. + + Raises + ------ + RuntimeError + Se chamado antes de :meth:`fit`. + """ + if self.q_hat is None: + raise RuntimeError("Chame fit() antes de interval().") + y_pred = np.asarray(y_pred, dtype=np.float64) + if y_pred.shape[-1] != self.q_hat.shape[0]: + raise DataValidationError( + f"y_pred com {y_pred.shape[-1]} targets, " + f"calibrador com {self.q_hat.shape[0]}" + ) + q = self.q_hat[np.newaxis, :] if y_pred.ndim == 2 else self.q_hat + return y_pred - q, y_pred + q + + def coverage(self, y_true: np.ndarray, y_pred: np.ndarray) -> np.ndarray: + """ + Fração de acertos ``y_true ∈ [ŷ-q, ŷ+q]`` por target (para validação). + + Retorna array shape ``(n_targets,)``. + """ + lo, hi = self.interval(y_pred) + hits = (y_true >= lo) & (y_true <= hi) + return hits.mean(axis=0) + + +# ══════════════════════════════════════════════════════════════════════════════ +# COMBINAÇÃO: ENSEMBLE + CONFORMAL (RECOMENDADO) +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(slots=True) +class PredictiveIntervalReport: + """Resultado de ``predict_with_interval`` — uma previsão com incerteza.""" + mean: np.ndarray # (n, n_targets) + std: np.ndarray | None # (n, n_targets) ou None se sem ensemble/MCD + lo: np.ndarray | None # (n, n_targets) intervalo conformal + hi: np.ndarray | None + alpha: float | None = None + + +def predict_with_interval( + predict_fns: list[PredictFn], + X: np.ndarray, + *, + conformal: SplitConformalCalibrator | None = None, +) -> PredictiveIntervalReport: + """ + Conveniência: ensemble + (opcionalmente) intervalo conformal. + + Se ``len(predict_fns) == 1``, roda uma única predição (sem ``std``); + com ≥ 2 retorna mean/std do ensemble. Se ``conformal`` fornecido, + também retorna ``lo``/``hi``. + """ + if len(predict_fns) >= 2: + mean, std = ensemble_predict(predict_fns, X) + elif len(predict_fns) == 1: + mean = predict_fns[0](X) + std = None + else: + raise ValueError("predict_fns vazio") + + if conformal is not None: + lo, hi = conformal.interval(mean) + alpha = conformal.alpha + else: + lo = hi = None + alpha = None + return PredictiveIntervalReport(mean=mean, std=std, lo=lo, hi=hi, alpha=alpha) diff --git a/CSTRChemIA/core/units.py b/CSTRChemIA/core/units.py new file mode 100644 index 0000000..7bd91f1 --- /dev/null +++ b/CSTRChemIA/core/units.py @@ -0,0 +1,318 @@ +""" +Sistema de unidades — conversão para fins de visualização. + +Internamente (canonical), a aplicação sempre trabalha nas unidades nativas +do modelo surrogate: + + • Vazão volumétrica → m³/s + • Concentração → mol/m³ + • Temperatura → K + • Fouling → µm + • Fração adimensional → — (sem categoria) + +Cada categoria declara unidades alternativas com ``factor`` e ``offset``, +onde a relação é: + + display = canonical · factor + offset + canonical = (display − offset) / factor + +Isso cobre tanto escalas lineares (mol/m³ ↔ mol/L) quanto afins (K ↔ °C, °F). + +A UI consome o helper :func:`options_for` para popular dropdowns, e callbacks +consomem :func:`to_canonical` antes de alimentar o modelo, e +:func:`from_canonical` para exibir resultados. +""" + +from __future__ import annotations + +import math +from dataclasses import dataclass +from typing import Any, Iterable + + +# ══════════════════════════════════════════════════════════════════════════════ +# TIPOS +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(frozen=True, slots=True) +class UnitOption: + """Uma unidade dentro de uma categoria (ex.: 'L/s' dentro de 'vazao').""" + value: str # id interno (usado em Stores/Dropdowns) + label: str # texto exibido na UI + factor: float # display = canonical·factor + offset + offset: float = 0.0 + canonical: bool = False + + def to_display(self, x: float) -> float: + """Converte canonical → display.""" + return x * self.factor + self.offset + + def to_canonical(self, x: float) -> float: + """Converte display → canonical.""" + return (x - self.offset) / self.factor + + +# ══════════════════════════════════════════════════════════════════════════════ +# CATÁLOGO DE UNIDADES +# ══════════════════════════════════════════════════════════════════════════════ +UNITS: dict[str, list[UnitOption]] = { + "vazao": [ + UnitOption("m3_s", "m³/s", 1.0, canonical=True), + UnitOption("L_s", "L/s", 1000.0), + UnitOption("L_min", "L/min", 60_000.0), + UnitOption("m3_h", "m³/h", 3600.0), + ], + "concentration": [ + UnitOption("mol_m3", "mol/m³", 1.0, canonical=True), + UnitOption("mol_L", "mol/L", 0.001), + UnitOption("mmol_L", "mmol/L", 1.0), # 1 mol/m³ = 1 mmol/L + UnitOption("kmol_m3", "kmol/m³", 0.001), + ], + "temperature": [ + UnitOption("K", "K", 1.0, canonical=True), + UnitOption("C", "°C", 1.0, offset=-273.15), + UnitOption("F", "°F", 9.0 / 5.0, offset=-459.67), + ], + # Canonical = metro (mesma unidade do ``fouling_thickness`` do modelo). + # Default de exibição sugerido: µm (factor 1e6). + "length_micro": [ + UnitOption("m", "m", 1.0, canonical=True), + UnitOption("mm", "mm", 1e3), + UnitOption("um", "µm", 1e6), + UnitOption("nm", "nm", 1e9), + ], + "fraction": [ + UnitOption("frac", "0–1", 1.0, canonical=True), + UnitOption("pct", "%", 100.0), + ], +} + + +# ══════════════════════════════════════════════════════════════════════════════ +# MAPA DE VARIÁVEIS DA UI → CATEGORIA +# ══════════════════════════════════════════════════════════════════════════════ +#: Mapa ``var_id → categoria``. Variáveis sem unidade não aparecem aqui. +VAR_CATEGORY: dict[str, str] = { + # ─── Simulation inputs ──────────────────────────────────────────────────── + "vazao": "vazao", + "ca0feed": "concentration", + "cb0feed": "concentration", + "tf": "temperature", + "tamb": "temperature", + "tobs": "temperature", + "wj": "vazao", + # valve é fração (0–1) — categoria 'fraction' opcional + + # ─── Simulation outputs (KPIs) ──────────────────────────────────────────── + "X": "fraction", + "T0": "temperature", + "CA0": "concentration", + "CB0": "concentration", + "CP0": "concentration", + "CS0": "concentration", + "fouling": "length_micro", + # catact é fração (0–1); pode entrar em 'fraction' se desejado + + # ─── Optimization constraints ───────────────────────────────────────────── + "t_max": "temperature", + "fouling_max": "length_micro", + "cp0_min": "concentration", + + # ─── Optimization decision ranges ───────────────────────────────────────── + "vazao_min": "vazao", + "vazao_max": "vazao", + "tobs_min": "temperature", + "tobs_max": "temperature", + "wj_min": "vazao", + "wj_max": "vazao", +} + + +# ══════════════════════════════════════════════════════════════════════════════ +# LIMITES CANÔNICOS POR VARIÁVEL (para callbacks de troca de unidade) +# ══════════════════════════════════════════════════════════════════════════════ +#: Para cada variável com input numérico, declara ``min``, ``max``, ``step`` e +#: ``default`` nas unidades **canônicas** da categoria. O callback de troca de +#: unidade usa esses valores para recalcular os bounds de Input/Slider quando +#: o usuário escolhe outra unidade. +VAR_BOUNDS: dict[str, dict[str, float]] = { + # ─── Simulation inputs ──────────────────────────────────────────────────── + "vazao": {"min": 0.00050, "max": 0.00120, "step": 0.00001, "default": 0.000506}, + "ca0feed": {"min": 1090.0, "max": 1310.0, "step": 1.0, "default": 1202.0}, + "cb0feed": {"min": 925.0, "max": 1085.0, "step": 1.0, "default": 1000.0}, + "tf": {"min": 342.0, "max": 358.0, "step": 0.1, "default": 350.1}, + "tamb": {"min": 285.0, "max": 311.0, "step": 0.1, "default": 297.8}, + "tobs": {"min": 324.0, "max": 365.0, "step": 0.1, "default": 327.8}, + "wj": {"min": 0.00010, "max": 0.00999, "step": 0.00010, "default": 0.00999}, + + # ─── Optimization constraints ───────────────────────────────────────────── + "t_max": {"min": 300.0, "max": 400.0, "step": 0.1, "default": 360.0}, + "fouling_max": {"min": 0.0, "max": 0.05, "step": 0.001, "default": 0.025}, + "cp0_min": {"min": 0.0, "max": 1500.0,"step": 10.0, "default": 0.0}, + + # ─── Optimization decision ranges ───────────────────────────────────────── + "vazao_min": {"min": 0.0001, "max": 0.01, "step": 0.00001, "default": 0.0005}, + "vazao_max": {"min": 0.0001, "max": 0.01, "step": 0.00001, "default": 0.0012}, + "tobs_min": {"min": 300.0, "max": 400.0,"step": 0.1, "default": 324.0}, + "tobs_max": {"min": 300.0, "max": 400.0,"step": 0.1, "default": 365.0}, + "wj_min": {"min": 0.0, "max": 0.02, "step": 0.00001, "default": 0.0001}, + "wj_max": {"min": 0.0, "max": 0.02, "step": 0.00001, "default": 0.00999}, +} + + +def display_bounds(var_id: str, unit_value: str) -> dict[str, float]: + """ + Converte os limites canônicos de ``var_id`` para a unidade ``unit_value``. + + Retorna dict com chaves ``min``, ``max``, ``step``, ``default``. Valores + em unidade de exibição. + """ + cat = VAR_CATEGORY.get(var_id) + if cat is None or var_id not in VAR_BOUNDS: + raise KeyError(f"var '{var_id}' sem bounds canônicos declarados.") + b = VAR_BOUNDS[var_id] + opt = get_option(cat, unit_value) + # Para unidades afins (temperatura) o *step* não deve receber offset — é + # um delta, não um ponto absoluto. Usamos apenas ``factor`` para passos. + return { + "min": opt.to_display(b["min"]), + "max": opt.to_display(b["max"]), + "step": b["step"] * opt.factor, + "default": opt.to_display(b["default"]), + } + + +def format_range_text(var_id: str, unit_value: str, + prefix: str = "Faixa") -> str: + """ + Texto curto do tipo "Faixa: 0.50 – 1.20 L/s" para a formtext do input. + """ + cat = VAR_CATEGORY.get(var_id) + if cat is None or var_id not in VAR_BOUNDS: + return "" + db = display_bounds(var_id, unit_value) + unit_lbl = label_for(cat, unit_value) + lo, hi = db["min"], db["max"] + # Escolhe notação conforme magnitude. + def _fmt(x: float) -> str: + if x != 0 and (abs(x) < 1e-3 or abs(x) >= 1e5): + return f"{x:.3g}" + if x == int(x) and abs(x) < 1e4: + return f"{int(x)}" + return f"{x:.4g}" + return f"{prefix}: {_fmt(lo)} – {_fmt(hi)} {unit_lbl}" + + +# ══════════════════════════════════════════════════════════════════════════════ +# HELPERS DE ACESSO +# ══════════════════════════════════════════════════════════════════════════════ +def options_for(category: str) -> list[dict[str, str]]: + """Formato pronto para ``dcc.Dropdown.options``.""" + return [{"label": o.label, "value": o.value} for o in UNITS[category]] + + +def get_option(category: str, value: str) -> UnitOption: + """Localiza uma UnitOption pelo ``value``. Lança ``KeyError`` se inválido.""" + for o in UNITS[category]: + if o.value == value: + return o + raise KeyError(f"unit '{value}' não existe na categoria '{category}'") + + +def get_canonical(category: str) -> UnitOption: + """Retorna a UnitOption canônica da categoria.""" + for o in UNITS[category]: + if o.canonical: + return o + return UNITS[category][0] + + +def canonical_value_of(category: str) -> str: + """Apenas o ``value`` da unidade canônica — útil para defaults de dropdown.""" + return get_canonical(category).value + + +def label_for(category: str, value: str) -> str: + """Rótulo amigável da unidade (ex.: 'mol/L').""" + return get_option(category, value).label + + +# ══════════════════════════════════════════════════════════════════════════════ +# CONVERSÕES +# ══════════════════════════════════════════════════════════════════════════════ +def _safe_float(x: Any) -> float | None: + """Coerção robusta a ``None``/strings/NaN.""" + if x is None: + return None + try: + v = float(x) + except (TypeError, ValueError): + return None + if math.isnan(v) or math.isinf(v): + return None + return v + + +def to_canonical(value: Any, category: str, from_unit: str) -> float | None: + """Converte ``value`` em ``from_unit`` → canonical. Retorna ``None`` se inválido.""" + v = _safe_float(value) + if v is None: + return None + return get_option(category, from_unit).to_canonical(v) + + +def from_canonical(value: Any, category: str, to_unit: str) -> float | None: + """Converte canonical → ``to_unit``. Retorna ``None`` se inválido.""" + v = _safe_float(value) + if v is None: + return None + return get_option(category, to_unit).to_display(v) + + +def convert(value: Any, category: str, from_unit: str, to_unit: str) -> float | None: + """Converte de uma unidade qualquer para outra dentro da mesma categoria.""" + if from_unit == to_unit: + return _safe_float(value) + v = to_canonical(value, category, from_unit) + if v is None: + return None + return from_canonical(v, category, to_unit) + + +# ══════════════════════════════════════════════════════════════════════════════ +# FORMATAÇÃO +# ══════════════════════════════════════════════════════════════════════════════ +def format_value(value: Any, decimals: int = 4) -> str: + """Formata número para exibição (com casas decimais ajustadas).""" + v = _safe_float(value) + if v is None: + return "—" + # Valores muito pequenos → notação científica + if v != 0 and (abs(v) < 1e-3 or abs(v) >= 1e6): + return f"{v:.{max(2, decimals - 2)}e}" + # Para inteiros "limpos" + if v == int(v) and abs(v) < 1e5: + return f"{int(v)}" + return f"{v:.{decimals}g}" + + +def default_units() -> dict[str, str]: + """Store inicial: cada variável mapeada para sua unidade canônica.""" + return { + var: canonical_value_of(cat) + for var, cat in VAR_CATEGORY.items() + } + + +def get_unit(store: dict[str, str] | None, var_id: str) -> str: + """Lê a unidade atual de ``var_id`` no store (fallback para canônica).""" + cat = VAR_CATEGORY.get(var_id) + if cat is None: + return "" + if not store or var_id not in store: + return canonical_value_of(cat) + # Valida que o valor armazenado ainda pertence à categoria. + try: + get_option(cat, store[var_id]) + return store[var_id] + except KeyError: + return canonical_value_of(cat) diff --git a/CSTRChemIA/core/utils.py b/CSTRChemIA/core/utils.py new file mode 100644 index 0000000..99189f1 --- /dev/null +++ b/CSTRChemIA/core/utils.py @@ -0,0 +1,86 @@ +""" +Utilidades genéricas — validação, normalização, conversões. +""" + +from __future__ import annotations + +import time +from collections.abc import Iterator +from contextlib import contextmanager + +import numpy as np + +from core.constants import DEFAULT_FEATURES, N_FEATURES, N_TARGETS +from core.exceptions import DataValidationError + + +def ensure_feature_array(x: np.ndarray | list | tuple) -> np.ndarray: + """Garante array float de shape (N, N_FEATURES). Levanta DataValidationError.""" + arr = np.asarray(x, dtype=np.float64) + if arr.ndim == 1: + arr = arr.reshape(1, -1) + if arr.ndim != 2 or arr.shape[1] != N_FEATURES: + raise DataValidationError( + f"Esperado shape (N, {N_FEATURES}), recebeu {arr.shape}" + ) + if not np.isfinite(arr).all(): + raise DataValidationError("Entrada contém NaN ou infinito") + return arr + + +def ensure_target_array(y: np.ndarray | list | tuple) -> np.ndarray: + """Garante array float de shape (N, N_TARGETS).""" + arr = np.asarray(y, dtype=np.float64) + if arr.ndim == 1: + arr = arr.reshape(1, -1) + if arr.ndim != 2 or arr.shape[1] != N_TARGETS: + raise DataValidationError( + f"Esperado shape (N, {N_TARGETS}), recebeu {arr.shape}" + ) + return arr + + +def features_from_dict(params: dict[str, float]) -> np.ndarray: + """Converte dict {feature_name: value} em array (1, N_FEATURES) na ordem canônica.""" + missing = [f for f in DEFAULT_FEATURES if f not in params] + if missing: + raise DataValidationError(f"Features ausentes: {missing}") + return np.array([[float(params[f]) for f in DEFAULT_FEATURES]], dtype=np.float64) + + +def features_to_dict(arr: np.ndarray) -> dict[str, float]: + """Inverso de :func:`features_from_dict`.""" + if arr.ndim == 2: + arr = arr[0] + return {name: float(v) for name, v in zip(DEFAULT_FEATURES, arr)} + + +@contextmanager +def timed() -> Iterator[dict[str, float]]: + """Context manager que mede wall time (em segundos). + + >>> with timed() as t: + ... do_work() + >>> print(t["elapsed"]) + """ + info: dict[str, float] = {"elapsed": 0.0} + start = time.perf_counter() + try: + yield info + finally: + info["elapsed"] = time.perf_counter() - start + + +def clip_to_bounds( + arr: np.ndarray, + bounds: dict[str, tuple[float, float]], + feature_names: list[str] | None = None, +) -> np.ndarray: + """Limita cada coluna aos bounds. Entrada não é mutada.""" + names = feature_names or DEFAULT_FEATURES + out = arr.copy() + for i, name in enumerate(names): + if name in bounds: + lo, hi = bounds[name] + out[..., i] = np.clip(out[..., i], lo, hi) + return out diff --git a/CSTRChemIA/layouts/layout_TAB.py b/CSTRChemIA/layouts/layout_TAB.py index 35a2a0b..72a54e7 100644 --- a/CSTRChemIA/layouts/layout_TAB.py +++ b/CSTRChemIA/layouts/layout_TAB.py @@ -17,6 +17,14 @@ import dash_bootstrap_components as dbc from dash import dcc, html, dash_table +from core.units import ( + VAR_CATEGORY, + canonical_value_of, + options_for, +) +from core.i18n import t as _t, DEFAULT_LANG + + # Importação tardia para evitar ciclos: carregado apenas quando o layout for gerado def _get_default_model(): """Retorna o primeiro modelo treinado disponível, fallback para 'MLP'.""" @@ -31,45 +39,127 @@ def _get_default_model(): # ────────────────────────────────────────────────────────────────────────────── # HELPERS DE UI # ────────────────────────────────────────────────────────────────────────────── +#: Persistence padrão — mantém valor de inputs/sliders/dropdowns/flags entre +#: trocas de aba e também entre recargas (``session`` = sessionStorage). +_PERSIST = {"persistence": True, "persistence_type": "session"} + + +def unit_selector(var_id: str, size: str = "sm", width: str = "84px"): + """ + Dropdown pequeno que escolhe a unidade de exibição de uma variável. + + Gera um componente com id ``unit-{var_id}``. Se ``var_id`` não estiver em + :data:`core.units.VAR_CATEGORY`, retorna um placeholder invisível + (mantém alinhamento no layout). + """ + cat = VAR_CATEGORY.get(var_id) + if cat is None: + return html.Span(style={"width": width, "display": "inline-block"}) + + return dcc.Dropdown( + id=f"unit-{var_id}", + options=options_for(cat), + value=canonical_value_of(cat), + clearable=False, + searchable=False, + className="cstr-unit-dd", + style={ + "width": width, + "minWidth": width, + "fontSize": "11px", + "display": "inline-block", + "verticalAlign": "middle", + }, + persistence=True, + persistence_type="session", + ) + + def numeric_with_slider(label, input_id, slider_id, - min_val, max_val, step, value, unit, help_text=None): + min_val, max_val, step, value, unit, help_text=None, + var_id: str | None = None): + """ + Componente de input numérico + slider emparelhado. + + Se ``var_id`` for fornecido E a variável estiver em ``VAR_CATEGORY``, + um seletor de unidade é renderizado ao lado do rótulo. O ``input_id`` + passa a operar na unidade escolhida pelo usuário — um callback no + módulo ``apps/MAIN_callbacks.py`` cuida da conversão de valor/bounds. + + O argumento ``unit`` agora é apenas o texto inicial do rótulo — o + texto "ao vivo" é atualizado pelo callback quando o usuário troca a + unidade. + """ + label_kwargs = {"className": "fw-semibold mt-2 small text-secondary flex-grow-1"} + if var_id: + label_kwargs["id"] = f"label-{input_id}" + label_component = dbc.Label(label, **label_kwargs) + + label_row_children = [label_component] + if var_id: + label_row_children.append(unit_selector(var_id)) + + ft_kwargs = {"className": "text-muted small"} + if var_id: + ft_kwargs["id"] = f"ft-{input_id}" + return html.Div([ - dbc.Label(label, className="fw-semibold mt-2 small text-secondary"), + html.Div(label_row_children, + className="d-flex align-items-center gap-2 mb-1"), dbc.Input( id=input_id, type="number", value=value, step=step, min=min_val, max=max_val, debounce=True, className="form-control-sm", style={"marginBottom": "6px"}, + **_PERSIST, ), dcc.Slider( id=slider_id, min=min_val, max=max_val, step=step, value=value, marks=None, included=False, updatemode="drag", tooltip={"always_visible": False, "placement": "bottom"}, className="mb-1 cstr-slider", + **_PERSIST, ), dbc.FormText(help_text or f"Range: {min_val:g} – {max_val:g} {unit}", - className="text-muted small"), + **ft_kwargs), ], className="mb-3") def flag_switch(label, flag_id, help_text=""): return html.Div([ dbc.Checklist(id=flag_id, options=[{"label": label, "value": 1}], - value=[], switch=True, inline=True, className="cstr-flag"), + value=[], switch=True, inline=True, className="cstr-flag", + **_PERSIST), dbc.FormText(help_text, className="text-muted small"), ], className="mb-2") -def kpi_card(title, output_id, unit="", color="primary", icon=""): +def kpi_card(title, output_id, unit="", color="primary", icon="", var_id: str | None = None): + """ + Card de KPI (valor + unidade). Se ``var_id`` estiver em ``VAR_CATEGORY`` + um mini seletor de unidade aparece ao lado do valor, permitindo trocar + a unidade de exibição do KPI. O callback de simulação cuida de enviar + o valor canônico para o Store e o callback de unidade o converte para + exibição. + """ + header_children = [ + html.Span(icon + " " if icon else "", style={"fontSize": "1.1rem"}), + html.Span(title, className="text-muted small fw-semibold flex-grow-1"), + ] + if var_id: + header_children.append(unit_selector(var_id, width="72px")) + + small_kwargs = {"className": "text-muted"} + if var_id: + small_kwargs["id"] = f"unit-label-{output_id}" + return dbc.Card( dbc.CardBody([ - html.Div([ - html.Span(icon + " " if icon else "", style={"fontSize": "1.1rem"}), - html.Span(title, className="text-muted small fw-semibold"), - ]), + html.Div(header_children, + className="d-flex align-items-center gap-2"), html.H4(id=output_id, children="—", className=f"fw-bold text-{color} mb-0 mt-1 kpi-value"), - html.Small(unit, className="text-muted"), + html.Small(unit, **small_kwargs), ], className="p-3"), className=f"shadow-sm h-100 kpi-card kpi-card-{color}", ) @@ -115,21 +205,22 @@ def _chart_card(icon, title, graph_id, height="340px", md=12, extra_body=None): # ══════════════════════════════════════════════════════════════════════════════ # ABA: SIMULATION # ══════════════════════════════════════════════════════════════════════════════ -def layout_TAB_Simulation(): +def layout_TAB_Simulation(lang: str = DEFAULT_LANG): _default_model = _get_default_model() model_card = dbc.Card([ dbc.CardHeader([ html.Span("🤖 ", style={"fontSize": "1.2rem"}), - html.Span("Modelo Substituto", className="fw-bold"), + html.Span(_t("section_surrogate_model", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody(dbc.Row([ dbc.Col([ - dbc.Label("Arquitetura selecionada:", className="fw-semibold small"), + dbc.Label(_t("field_architecture_sel", lang), className="fw-semibold small"), dcc.Dropdown(id='sim-model-select', options=['MLP', 'RNN', 'CNN'], - value=_default_model, clearable=False, className="cstr-dropdown"), + value=_default_model, clearable=False, + className="cstr-dropdown", **_PERSIST), ], md=6), dbc.Col([ - dbc.Label("Status:", className="fw-semibold small"), + dbc.Label(_t("field_status", lang), className="fw-semibold small"), html.Div(id='sim-model-status', className="mt-2"), ], md=6), ])) @@ -138,46 +229,46 @@ def layout_TAB_Simulation(): continuous_card = dbc.Card([ dbc.CardHeader([ html.Span("⚙️ ", style={"fontSize": "1.2rem"}), - html.Span("Variáveis de Processo", className="fw-bold"), + html.Span(_t("section_process_variables", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody([ dbc.Row([ dbc.Col(numeric_with_slider( - "Vazão Feed (m³/s)", "input-vazao", "slider-vazao", + _t("field_feed_flow", lang), "input-vazao", "slider-vazao", 0.00050, 0.00120, 0.00001, 0.000506, "m³/s", - help_text="Normal ≈ 5.06×10⁻⁴ m³/s"), md=4), + help_text="Normal ≈ 5.06×10⁻⁴ m³/s", var_id="vazao"), md=4), dbc.Col(numeric_with_slider( - "CA₀ Feed (mol/m³)", "input-ca0feed", "slider-ca0feed", + _t("field_ca0_feed", lang), "input-ca0feed", "slider-ca0feed", 1090.0, 1310.0, 1.0, 1202.0, "mol/m³", - help_text="Normal ≈ 1202 mol/m³"), md=4), + help_text="Normal ≈ 1202 mol/m³", var_id="ca0feed"), md=4), dbc.Col(numeric_with_slider( - "CB₀ Feed (mol/m³)", "input-cb0feed", "slider-cb0feed", + _t("field_cb0_feed", lang), "input-cb0feed", "slider-cb0feed", 925.0, 1085.0, 1.0, 1000.0, "mol/m³", - help_text="Normal ≈ 1000 mol/m³"), md=4), + help_text="Normal ≈ 1000 mol/m³", var_id="cb0feed"), md=4), ]), dbc.Row([ dbc.Col(numeric_with_slider( - "Tf Feed (K)", "input-tf", "slider-tf", + _t("field_tf_feed", lang), "input-tf", "slider-tf", 342.0, 358.0, 0.1, 350.1, "K", - help_text="Normal ≈ 350.1 K"), md=4), + help_text="Normal ≈ 350.1 K", var_id="tf"), md=4), dbc.Col(numeric_with_slider( - "T amb Feed (K)", "input-tamb", "slider-tamb", + _t("field_tamb_feed", lang), "input-tamb", "slider-tamb", 285.0, 311.0, 0.1, 297.8, "K", - help_text="Normal ≈ 297.8 K"), md=4), + help_text="Normal ≈ 297.8 K", var_id="tamb"), md=4), dbc.Col(numeric_with_slider( - "T observada (K)", "input-tobs", "slider-tobs", + _t("field_tobs", lang), "input-tobs", "slider-tobs", 324.0, 365.0, 0.1, 327.8, "K", - help_text="Normal ≈ 327.8 K"), md=4), + help_text="Normal ≈ 327.8 K", var_id="tobs"), md=4), ]), dbc.Row([ dbc.Col(numeric_with_slider( - "Posição da Válvula (0–1)", "input-valve", "slider-valve", + _t("field_valve_position", lang), "input-valve", "slider-valve", 0.01, 1.00, 0.001, 0.9993, "—", - help_text="Normal ≈ 1.0 (aberta)"), md=4), + help_text="Normal ≈ 1.0"), md=4), dbc.Col(numeric_with_slider( - "Vazão Jaqueta w_j (m³/s)", "input-wj", "slider-wj", + _t("field_jacket_flow", lang), "input-wj", "slider-wj", 0.00010, 0.00999, 0.00010, 0.00999, "m³/s", - help_text="Normal ≈ 9.99×10⁻³ m³/s"), md=4), + help_text="Normal ≈ 9.99×10⁻³ m³/s", var_id="wj"), md=4), ]), ]) ], className="mb-3 shadow-sm cstr-card fade-in") @@ -185,81 +276,79 @@ def layout_TAB_Simulation(): flags_card = dbc.Card([ dbc.CardHeader([ html.Span("🚨 ", style={"fontSize": "1.2rem"}), - html.Span("Flags Operacionais", className="fw-bold"), + html.Span(_t("section_operational_flags", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody(dbc.Row([ - dbc.Col(flag_switch("Falha na Válvula", "flag-valvula", - "Ativa se houver falha na válvula de controle"), md=3), - dbc.Col(flag_switch("Em Manutenção", "flag-manutencao", - "Indica que o reator está em manutenção"), md=3), - dbc.Col(flag_switch("Falha Sensor T", "flag-sensor-t", - "Sensor de temperatura com defeito"), md=3), - dbc.Col(flag_switch("Falha Comunicação", "flag-comunicacao", - "Perda de comunicação com o CLP"), md=3), + dbc.Col(flag_switch(_t("flag_valve_failure", lang), "flag-valvula", + _t("flag_valve_tooltip", lang)), md=3), + dbc.Col(flag_switch(_t("flag_maintenance", lang), "flag-manutencao", + _t("flag_maint_tooltip", lang)), md=3), + dbc.Col(flag_switch(_t("flag_sensor_t_failure", lang), "flag-sensor-t", + _t("flag_sensor_t_tooltip", lang)), md=3), + dbc.Col(flag_switch(_t("flag_comm_failure", lang), "flag-comunicacao", + _t("flag_comm_tooltip", lang)), md=3), ])) ], className="mb-3 shadow-sm cstr-card fade-in") kpi_row = dbc.Row([ - dbc.Col(kpi_card("Conversão X", "out-X", "%", "primary", "⚗️"), md=3), - dbc.Col(kpi_card("T₀ Predita", "out-T0", "K", "danger", "🌡️"), md=3), - dbc.Col(kpi_card("CA₀ Predita", "out-CA0", "mol/m³","info", "🧪"), md=3), - dbc.Col(kpi_card("CB₀ Predita", "out-CB0", "mol/m³","info", "🧪"), md=3), + dbc.Col(kpi_card(_t("kpi_conversion_x", lang), "out-X", "%", "primary", "⚗️", var_id="X"), md=3), + dbc.Col(kpi_card(_t("kpi_t0_predicted", lang), "out-T0", "K", "danger", "🌡️", var_id="T0"), md=3), + dbc.Col(kpi_card(_t("kpi_ca0_predicted", lang), "out-CA0", "mol/m³","info", "🧪", var_id="CA0"), md=3), + dbc.Col(kpi_card(_t("kpi_cb0_predicted", lang), "out-CB0", "mol/m³","info", "🧪", var_id="CB0"), md=3), ], className="g-3 mb-3") kpi_row2 = dbc.Row([ - dbc.Col(kpi_card("CP₀ (Produto)", "out-CP0", "mol/m³","success","🟢"), md=3), - dbc.Col(kpi_card("CS₀ (Subprod.)", "out-CS0", "mol/m³","info", "🟡"), md=3), - dbc.Col(kpi_card("Fouling", "out-fouling", "µm", "warning","🦠"), md=3), - dbc.Col(kpi_card("Ativ. Catalítica", "out-catact", "0–1", "success","⚡"), md=3), + dbc.Col(kpi_card(_t("kpi_cp0_product", lang), "out-CP0", "mol/m³","success","🟢", var_id="CP0"), md=3), + dbc.Col(kpi_card(_t("kpi_cs0_byproduct", lang), "out-CS0", "mol/m³","info", "🟡", var_id="CS0"), md=3), + dbc.Col(kpi_card(_t("kpi_fouling", lang), "out-fouling", "µm", "warning","🦠", var_id="fouling"), md=3), + dbc.Col(kpi_card(_t("kpi_cat_activity", lang), "out-catact", "0–1", "success","⚡"), md=3), ], className="g-3 mb-3") status_bar = html.Div(id="sim-status-bar", className="mb-3") # ── Linha 1: barras 8 targets + radar saúde ────────────────────────────── row1 = dbc.Row([ - _chart_card("📊", "Targets Preditos (8 saídas)", "sim-bar-chart", + _chart_card("📊", _t("chart_sim_targets", lang), "sim-bar-chart", height="340px", md=7), - _chart_card("🎯", "Saúde Operacional", "sim-radar-chart", + _chart_card("🎯", _t("chart_sim_health", lang), "sim-radar-chart", height="340px", md=5), ], className="g-3 mb-3") # ── Linha 2: gauge + donut + sensibilidade ─────────────────────────────── row2 = dbc.Row([ - _chart_card("⏱️", "Gauge de Conversão", "sim-gauge-chart", height="320px", md=4), - _chart_card("🍩", "Distribuição de Espécies", "sim-donut-chart", height="320px", md=4), - _chart_card("📉", "Sensibilidade X × T_obs", "sim-sensitivity-chart", height="320px", md=4), + _chart_card("⏱️", _t("chart_sim_gauge", lang), "sim-gauge-chart", height="320px", md=4), + _chart_card("🍩", _t("chart_sim_donut", lang), "sim-donut-chart", height="320px", md=4), + _chart_card("📉", _t("chart_sim_sensitivity", lang), "sim-sensitivity-chart", height="320px", md=4), ], className="g-3 mb-3") # ── Linha 3: comparação de modelos + contribuição de features ──────────── row3 = dbc.Row([ - _chart_card("🤖", "Comparação MLP vs RNN vs CNN", "sim-model-comparison-chart", + _chart_card("🤖", _t("chart_sim_model_comparison", lang), "sim-model-comparison-chart", height="340px", md=7), - _chart_card("🔍", "Contribuição das Features (ΔX)", "sim-feature-contrib-chart", + _chart_card("🔍", _t("chart_sim_feature_contrib", lang), "sim-feature-contrib-chart", height="340px", md=5), ], className="g-3 mb-3") # ── Linha 4: envelope operacional + histórico de predições ─────────────── row4 = dbc.Row([ - _chart_card("🗺️", "Envelope Operacional (T_obs × Válvula → X)", "sim-envelope-chart", + _chart_card("🗺️", _t("chart_sim_envelope", lang), "sim-envelope-chart", height="360px", md=7), - _chart_card("📈", "Histórico de Predições (últimas 30)", "sim-history-chart", + _chart_card("📈", _t("chart_sim_history", lang), "sim-history-chart", height="360px", md=5), ], className="g-3 mb-3") return html.Div([ dbc.Container([ html.Div([ - html.H3("CSTR – Simulação", className="fw-bold text-center mb-2 cstr-title"), + html.H3(_t("sim_page_title", lang), className="fw-bold text-center mb-2 cstr-title"), html.P( - "Insira as condições de operação — o modelo substituto prediz " - "concentrações, temperatura, conversão, fouling e atividade catalítica " - "em tempo real com 9 gráficos interativos.", + _t("sim_page_subtitle", lang), className="text-center text-secondary mb-4" ), ], className="cstr-page-header"), model_card, continuous_card, flags_card, html.Hr(className="cstr-divider"), - section_header("Resultados da Predição", icon="📈"), + section_header(_t("sim_results_section", lang), icon="📈"), status_bar, kpi_row, kpi_row2, row1, row2, row3, row4, ], fluid=True, className="p-4 bg-white text-dark cstr-container") @@ -269,21 +358,22 @@ def layout_TAB_Simulation(): # ══════════════════════════════════════════════════════════════════════════════ # ABA: OPTIMIZATION # ══════════════════════════════════════════════════════════════════════════════ -def layout_TAB_Optimization(): +def layout_TAB_Optimization(lang: str = DEFAULT_LANG): _default_model = _get_default_model() model_card = dbc.Card([ dbc.CardHeader([ html.Span("🤖 ", style={"fontSize": "1.2rem"}), - html.Span("Modelo Substituto", className="fw-bold"), + html.Span(_t("section_surrogate_model", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody(dbc.Row([ dbc.Col([ - dbc.Label("Arquitetura:", className="fw-semibold small"), + dbc.Label(_t("field_architecture", lang) + ":", className="fw-semibold small"), dcc.Dropdown(id='opt-model-select', options=['MLP', 'RNN', 'CNN'], - value=_default_model, clearable=False, className="cstr-dropdown"), + value=_default_model, clearable=False, + className="cstr-dropdown", **_PERSIST), ], md=6), dbc.Col([ - dbc.Label("Status:", className="fw-semibold small"), + dbc.Label(_t("field_status", lang), className="fw-semibold small"), html.Div(id='opt-model-status', className="mt-2"), ], md=6), ])) @@ -292,80 +382,149 @@ def layout_TAB_Optimization(): constraints_card = dbc.Card([ dbc.CardHeader([ html.Span("🔒 ", style={"fontSize": "1.2rem"}), - html.Span("Restrições Operacionais", className="fw-bold"), + html.Span(_t("section_operational_constraints", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody([ - html.P("Limites de processo", className="fw-semibold small text-secondary mb-2"), + html.P(_t("subsection_process_limits", lang), + className="fw-semibold small text-secondary mb-2"), dbc.Row([ dbc.Col([ - dbc.Label("T0 Máxima (K)", className="fw-semibold small"), + html.Div([ + dbc.Label(_t("field_t_max", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-t-max"), + unit_selector("t_max", width="72px"), + ], className="d-flex align-items-center gap-2"), dbc.Input(id="opt-t-max", type="number", value=365.0, step=1.0, - min=300, max=450, className="form-control-sm"), - dbc.FormText("Temperatura máxima permitida", className="text-muted small"), + min=300, max=450, className="form-control-sm", **_PERSIST), + dbc.FormText(_t("ft_t_max", lang), + id="ft-opt-t-max", className="text-muted small"), ], md=3), dbc.Col([ - dbc.Label("Conversão Mínima (%)", className="fw-semibold small"), + dbc.Label(_t("field_conversion_min", lang), className="fw-semibold small"), dbc.Input(id="opt-x-min", type="number", value=30.0, step=1.0, - min=0, max=100, className="form-control-sm"), - dbc.FormText("X mínimo exigido", className="text-muted small"), + min=0, max=100, className="form-control-sm", **_PERSIST), + dbc.FormText(_t("ft_x_min", lang), className="text-muted small"), ], md=3), dbc.Col([ - dbc.Label("Cat. Activity Mínima", className="fw-semibold small"), + dbc.Label(_t("field_cat_activity_min", lang), className="fw-semibold small"), dbc.Input(id="opt-cat-min", type="number", value=0.90, step=0.01, - min=0.0, max=1.0, className="form-control-sm"), - dbc.FormText("cat_activity ≥ este valor", className="text-muted small"), + min=0.0, max=1.0, className="form-control-sm", **_PERSIST), + dbc.FormText(_t("ft_cat_min", lang), className="text-muted small"), ], md=3), dbc.Col([ - dbc.Label("Fouling Máximo (m)", className="fw-semibold small"), + html.Div([ + dbc.Label(_t("field_fouling_max", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-fouling-max"), + unit_selector("fouling_max", width="72px"), + ], className="d-flex align-items-center gap-2"), dbc.Input(id="opt-fouling-max", type="number", value=0.025, step=0.001, - min=0.0, max=0.05, className="form-control-sm"), - dbc.FormText("Espessura máxima de incrustação", className="text-muted small"), + min=0.0, max=0.05, className="form-control-sm", **_PERSIST), + dbc.FormText(_t("ft_fouling_max", lang), + id="ft-opt-fouling-max", className="text-muted small"), ], md=3), ], className="mb-3"), - html.P("Restrições de produção", className="fw-semibold small text-secondary mb-2"), + html.P(_t("subsection_production_limits", lang), + className="fw-semibold small text-secondary mb-2"), dbc.Row([ dbc.Col([ - dbc.Label("CP0 Mínimo (mol/m³)", className="fw-semibold small"), + html.Div([ + dbc.Label(_t("field_cp0_min", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-cp0-min"), + unit_selector("cp0_min", width="80px"), + ], className="d-flex align-items-center gap-2"), dbc.Input(id="opt-cp0-min", type="number", value=0.0, step=10.0, - min=0, max=1000, className="form-control-sm"), - dbc.FormText("Produção mínima de produto", className="text-muted small"), + min=0, max=1000, className="form-control-sm", **_PERSIST), + dbc.FormText(_t("ft_cp0_min", lang), + id="ft-opt-cp0-min", className="text-muted small"), ], md=4), ], className="mb-3"), html.Hr(className="cstr-divider my-2"), - html.P("Faixas de busca (variáveis de decisão)", + html.P(_t("subsection_search_ranges", lang), className="fw-semibold small text-secondary mb-2"), dbc.Row([ - dbc.Col([dbc.Label("Vazão min (m³/s)", className="fw-semibold small"), - dbc.Input(id="opt-vazao-min", type="number", value=0.00050, - step=0.00005, min=0.0001, max=0.005, className="form-control-sm")], md=3), - dbc.Col([dbc.Label("Vazão max (m³/s)", className="fw-semibold small"), - dbc.Input(id="opt-vazao-max", type="number", value=0.00120, - step=0.00005, min=0.0001, max=0.005, className="form-control-sm")], md=3), - dbc.Col([dbc.Label("Válvula min", className="fw-semibold small"), + dbc.Col([ + html.Div([ + dbc.Label(_t("field_vazao_min", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-vazao-min"), + unit_selector("vazao_min", width="72px"), + ], className="d-flex align-items-center gap-2"), + dbc.Input(id="opt-vazao-min", type="number", value=0.00050, + step=0.00005, min=0.0001, max=0.005, + className="form-control-sm", **_PERSIST), + ], md=3), + dbc.Col([ + html.Div([ + dbc.Label(_t("field_vazao_max", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-vazao-max"), + unit_selector("vazao_max", width="72px"), + ], className="d-flex align-items-center gap-2"), + dbc.Input(id="opt-vazao-max", type="number", value=0.00120, + step=0.00005, min=0.0001, max=0.005, + className="form-control-sm", **_PERSIST), + ], md=3), + dbc.Col([dbc.Label(_t("field_valve_min", lang), className="fw-semibold small"), dbc.Input(id="opt-valve-min", type="number", value=0.01, - step=0.01, min=0.0, max=1.0, className="form-control-sm")], md=3), - dbc.Col([dbc.Label("Válvula max", className="fw-semibold small"), + step=0.01, min=0.0, max=1.0, + className="form-control-sm", **_PERSIST)], md=3), + dbc.Col([dbc.Label(_t("field_valve_max", lang), className="fw-semibold small"), dbc.Input(id="opt-valve-max", type="number", value=1.00, - step=0.01, min=0.0, max=1.0, className="form-control-sm")], md=3), + step=0.01, min=0.0, max=1.0, + className="form-control-sm", **_PERSIST)], md=3), ], className="mb-3"), dbc.Row([ - dbc.Col([dbc.Label("T_obs min (K)", className="fw-semibold small"), - dbc.Input(id="opt-tobs-min", type="number", value=324.0, - step=1.0, min=290, max=400, className="form-control-sm")], md=3), - dbc.Col([dbc.Label("T_obs max (K)", className="fw-semibold small"), - dbc.Input(id="opt-tobs-max", type="number", value=365.0, - step=1.0, min=290, max=400, className="form-control-sm")], md=3), - dbc.Col([dbc.Label("w_j min (m³/s)", className="fw-semibold small"), - dbc.Input(id="opt-wj-min", type="number", value=0.00010, - step=0.0001, min=0.0, max=0.02, className="form-control-sm")], md=3), - dbc.Col([dbc.Label("w_j max (m³/s)", className="fw-semibold small"), - dbc.Input(id="opt-wj-max", type="number", value=0.00999, - step=0.0001, min=0.0, max=0.02, className="form-control-sm")], md=3), + dbc.Col([ + html.Div([ + dbc.Label(_t("field_tobs_min", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-tobs-min"), + unit_selector("tobs_min", width="72px"), + ], className="d-flex align-items-center gap-2"), + dbc.Input(id="opt-tobs-min", type="number", value=324.0, + step=1.0, min=290, max=400, + className="form-control-sm", **_PERSIST), + ], md=3), + dbc.Col([ + html.Div([ + dbc.Label(_t("field_tobs_max", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-tobs-max"), + unit_selector("tobs_max", width="72px"), + ], className="d-flex align-items-center gap-2"), + dbc.Input(id="opt-tobs-max", type="number", value=365.0, + step=1.0, min=290, max=400, + className="form-control-sm", **_PERSIST), + ], md=3), + dbc.Col([ + html.Div([ + dbc.Label(_t("field_wj_min", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-wj-min"), + unit_selector("wj_min", width="72px"), + ], className="d-flex align-items-center gap-2"), + dbc.Input(id="opt-wj-min", type="number", value=0.00010, + step=0.0001, min=0.0, max=0.02, + className="form-control-sm", **_PERSIST), + ], md=3), + dbc.Col([ + html.Div([ + dbc.Label(_t("field_wj_max", lang), + className="fw-semibold small flex-grow-1", + id="label-opt-wj-max"), + unit_selector("wj_max", width="72px"), + ], className="d-flex align-items-center gap-2"), + dbc.Input(id="opt-wj-max", type="number", value=0.00999, + step=0.0001, min=0.0, max=0.02, + className="form-control-sm", **_PERSIST), + ], md=3), ]), dbc.Alert([ html.Span("ℹ ", className="me-1"), - "O NSGA-II busca máxima conversão e mínimo fouling respeitando todas " - "as restrições acima." + _t("opt_info_alert", lang), ], color="info", className="mt-3 mb-0 small text-center"), ]) ], className="shadow-sm mb-4 cstr-card fade-in") @@ -373,26 +532,28 @@ def layout_TAB_Optimization(): algo_card = dbc.Card([ dbc.CardHeader([ html.Span("⚙️ ", style={"fontSize": "1.2rem"}), - html.Span("Parâmetros NSGA-II", className="fw-bold"), + html.Span(_t("section_nsga_params", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody([ dbc.Row([ - dbc.Col([dbc.Label("Tamanho da População", className="fw-semibold small"), + dbc.Col([dbc.Label(_t("field_pop_size", lang), className="fw-semibold small"), dbc.Input(id="opt-pop-size", type="number", value=80, step=10, - min=10, max=300, className="form-control-sm")], md=6), - dbc.Col([dbc.Label("Número de Gerações", className="fw-semibold small"), + min=10, max=300, className="form-control-sm", **_PERSIST)], md=6), + dbc.Col([dbc.Label(_t("field_n_gen", lang), className="fw-semibold small"), dbc.Input(id="opt-n-gen", type="number", value=40, step=10, - min=10, max=500, className="form-control-sm")], md=6), + min=10, max=500, className="form-control-sm", **_PERSIST)], md=6), ], className="mb-2"), dbc.Row([ - dbc.Col([dbc.Label("Prob. Crossover (SBX)", className="fw-semibold small"), + dbc.Col([dbc.Label(_t("field_crossover_prob", lang), className="fw-semibold small"), dbc.Input(id="opt-crossover-prob", type="number", value=0.9, - step=0.05, min=0.0, max=1.0, className="form-control-sm"), - dbc.FormText("0.8–1.0 recomendado", className="text-muted small")], md=6), - dbc.Col([dbc.Label("Prob. Mutação (PM)", className="fw-semibold small"), + step=0.05, min=0.0, max=1.0, + className="form-control-sm", **_PERSIST), + dbc.FormText(_t("ft_crossover_prob", lang), className="text-muted small")], md=6), + dbc.Col([dbc.Label(_t("field_mutation_prob", lang), className="fw-semibold small"), dbc.Input(id="opt-mutation-prob", type="number", value=0.1, - step=0.05, min=0.0, max=1.0, className="form-control-sm"), - dbc.FormText("0.05–0.2 recomendado", className="text-muted small")], md=6), + step=0.05, min=0.0, max=1.0, + className="form-control-sm", **_PERSIST), + dbc.FormText(_t("ft_mutation_prob", lang), className="text-muted small")], md=6), ]), ]) ], className="shadow-sm mb-4 cstr-card fade-in") @@ -400,7 +561,7 @@ def layout_TAB_Optimization(): run_card = dbc.Card([ dbc.CardBody([ html.Div( - dbc.Button([html.Span("▶ "), "Executar Otimização"], + dbc.Button([html.Span("▶ "), _t("btn_run_optimization", lang)], id="btn-run-optimization", color="primary", size="lg", className="px-5 py-2 cstr-btn-primary"), className="text-center" @@ -421,10 +582,10 @@ def layout_TAB_Optimization(): kpi_summary_card = dbc.Card([ dbc.CardHeader([ html.Span("🏆 ", style={"fontSize": "1.2rem"}), - html.Span("Resumo da Otimização", className="fw-bold"), + html.Span(_t("section_optimization_summary", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody(html.Div(id="opt-kpi-summary", children=[ - html.P("Execute a otimização para ver os resultados.", + html.P(_t("msg_run_first", lang), className="text-muted text-center small"), ]), className="p-3"), ], className="shadow-sm mb-4 cstr-card fade-in") @@ -433,56 +594,56 @@ def layout_TAB_Optimization(): results_card = dbc.Card([ dbc.CardHeader([ html.Span("📊 ", style={"fontSize": "1.2rem"}), - html.Span("Resultados da Otimização (10 gráficos)", className="fw-bold"), + html.Span(_t("opt_results_header", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody([ # Pareto (full width) dbc.Row([ - _chart_card("🎯", "Frente de Pareto: Conversão × Fouling", - "opt-pareto-graph", height="450px", md=12), + _chart_card("🎯", _t("chart_opt_pareto", lang), + "opt-pareto-graph", height="500px", md=12), ], className="g-3 mb-3"), # Parallel coords + Convergência dbc.Row([ - _chart_card("🧵", "Parallel Coordinates", "opt-parcoords-graph", - height="380px", md=7), - _chart_card("📈", "Convergência NSGA-II (4 painéis)", "opt-convergence-graph", - height="380px", md=5), + _chart_card("🧵", _t("chart_opt_parcoords", lang), "opt-parcoords-graph", + height="460px", md=7), + _chart_card("📈", _t("chart_opt_convergence", lang), "opt-convergence-graph", + height="520px", md=5), ], className="g-3 mb-3"), # 3D + Mapa operacional dbc.Row([ - _chart_card("🌐", "Espaço 3D: X × Fouling × Cat. Activity", - "opt-3d-graph", height="450px", md=6), - _chart_card("🗺️", "Mapa Operacional: Vazão × T_obs", - "opt-heatmap-graph", height="450px", md=6), + _chart_card("🌐", _t("chart_opt_3d", lang), + "opt-3d-graph", height="540px", md=6), + _chart_card("🗺️", _t("chart_opt_heatmap", lang), + "opt-heatmap-graph", height="540px", md=6), ], className="g-3 mb-3"), # Distribuições + Espaço de decisão dbc.Row([ - _chart_card("🎻", "Distribuição das Saídas Ótimas", - "opt-violin-graph", height="380px", md=6), - _chart_card("🔲", "Espaço de Decisão (Scatter Matrix)", - "opt-decision-space-graph", height="380px", md=6), + _chart_card("🎻", _t("chart_opt_violin", lang), + "opt-violin-graph", height="500px", md=6), + _chart_card("🔲", _t("chart_opt_decision_space", lang), + "opt-decision-space-graph", height="500px", md=6), ], className="g-3 mb-3"), # TOPSIS + Clusters + Hypervolume dbc.Row([ - _chart_card("🏅", "Ranking TOPSIS Multi-Critério (Top-15)", - "opt-topsis-graph", height="420px", md=5), - _chart_card("🔵", "Clusters K-Means da Frente de Pareto", - "opt-cluster-graph", height="420px", md=7), + _chart_card("🏅", _t("chart_opt_topsis", lang), + "opt-topsis-graph", height="460px", md=5), + _chart_card("🔵", _t("chart_opt_cluster", lang), + "opt-cluster-graph", height="460px", md=7), ], className="g-3 mb-3"), dbc.Row([ - _chart_card("📐", "Hypervolume e Factibilidade por Geração", + _chart_card("📐", _t("chart_opt_hypervolume", lang), "opt-hypervolume-graph", height="380px", md=12), ], className="g-3 mb-3"), html.Hr(className="cstr-divider"), - html.P("Tabela de Soluções Factíveis", + html.P(_t("opt_feasible_table_title", lang), className="text-secondary mb-1 fw-semibold"), html.Div([ - dbc.Button("Exportar CSV", id="opt-export-csv", + dbc.Button(_t("btn_export_csv", lang), id="opt-export-csv", color="secondary", size="sm", className="mb-2"), dcc.Download(id="opt-download-csv"), ], className="text-end"), @@ -529,12 +690,10 @@ def layout_TAB_Optimization(): return html.Div([ dbc.Container([ html.Div([ - html.H3("CSTR — Otimização Multi-Objetivo", + html.H3(_t("opt_page_title", lang), className="fw-bold text-center mb-2 cstr-title"), html.P( - "NSGA-II encontra a frente de Pareto que maximiza X e minimiza fouling " - "respeitando todas as restrições. 10 gráficos interativos com TOPSIS, " - "clusters K-Means e evolução do Hypervolume.", + _t("opt_page_subtitle", lang), className="text-center text-secondary mb-4" ), ], className="cstr-page-header"), @@ -547,16 +706,16 @@ def layout_TAB_Optimization(): # ══════════════════════════════════════════════════════════════════════════════ # ABA: TRAINING # ══════════════════════════════════════════════════════════════════════════════ -def layout_TAB_Training(): +def layout_TAB_Training(lang: str = DEFAULT_LANG): info_card = dbc.Card([ dbc.CardHeader([ html.Span("ℹ️ ", style={"fontSize": "1.2rem"}), - html.Span("Estrutura dos Dados de Treinamento", className="fw-bold"), + html.Span(_t("section_training_structure", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody([ dbc.Row([ dbc.Col([ - html.P("📥 Features (12):", className="fw-semibold mb-1"), + html.P(_t("training_features_title", lang), className="fw-semibold mb-1"), html.Ul([ html.Li("vazao_feed, CA0_feed, CB0_feed"), html.Li("Tf_feed, T_amb_feed, T_obs"), @@ -566,23 +725,19 @@ def layout_TAB_Training(): ], className="small text-muted"), ], md=6), dbc.Col([ - html.P("📤 Targets (8):", className="fw-semibold mb-1"), + html.P(_t("training_targets_title", lang), className="fw-semibold mb-1"), html.Ul([ - html.Li("CA0, CB0, CP0, CS0 (concentrações)"), - html.Li("T0 (temperatura interna)"), - html.Li("X (conversão)"), + html.Li("CA0, CB0, CP0, CS0 (" + _t("training_concentrations", lang) + ")"), + html.Li("T0 (" + _t("training_internal_temp", lang) + ")"), + html.Li("X (" + _t("training_conversion", lang) + ")"), html.Li("fouling_thickness"), html.Li("cat_activity"), ], className="small text-muted"), ], md=6), ]), dbc.Alert([ - html.Strong("Origem dos dados: "), - "Arquivos em ", html.Code("simulation/"), - " (flat) ou ", - html.Code("../Simulacoes/simulacao_CSTR/sim_*/observations/"), - " (aninhado). Os hiperparâmetros vêm de ", html.Code("training/best_hps_*.json"), - " e são sincronizados automaticamente antes do treino.", + html.Strong(_t("training_data_origin", lang) + ": "), + _t("training_data_origin_text", lang), ], color="info", className="mt-2 mb-0 small"), ]) ], className="mb-3 shadow-sm cstr-card fade-in") @@ -591,34 +746,35 @@ def layout_TAB_Training(): dbc.CardBody([ dbc.Row([ dbc.Col([ - dbc.Label("Arquitetura", className="fw-semibold small"), + dbc.Label(_t("field_architecture", lang), className="fw-semibold small"), dcc.Dropdown( id='training-model-select', options=[ {'label': 'MLP', 'value': 'MLP'}, {'label': 'RNN', 'value': 'RNN'}, {'label': 'CNN', 'value': 'CNN'}, - {'label': 'Todos (MLP+RNN+CNN)', 'value': 'all'}, + {'label': _t("training_all_models", lang), 'value': 'all'}, ], value='all', clearable=False, className="cstr-dropdown", + **_PERSIST, ), ], md=4), dbc.Col([ - dbc.Button([html.Span("▶ "), "Iniciar Treinamento"], + dbc.Button([html.Span("▶ "), _t("btn_start_training", lang)], id='btn-run-training', color="primary", className="w-100 mt-4 cstr-btn-primary"), ], md=4), dbc.Col([ - dbc.Label("Status", className="fw-semibold small"), + dbc.Label(_t("field_status", lang).rstrip(":"), className="fw-semibold small"), html.Div( - html.Span("● Aguardando", id="training-status-badge", + html.Span(_t("status_waiting", lang), id="training-status-badge", className="badge bg-secondary fs-6 px-3 py-2"), className="mt-2", ), ], md=4), ]), html.Hr(className="cstr-divider"), - dbc.Label("Logs de Treinamento", className="fw-semibold small text-secondary"), + dbc.Label(_t("training_logs", lang), className="fw-semibold small text-secondary"), html.Pre( id='training-log-output', className="cstr-log", style={ @@ -635,15 +791,15 @@ def layout_TAB_Training(): # ── Curva de Loss ao vivo ──────────────────────────────────────────────── loss_row = dbc.Row([ - _chart_card("📉", "Curva de Loss (Train vs Val) — ao vivo", + _chart_card("📉", _t("chart_training_loss", lang), "training-loss-chart", height="340px", md=12), ], className="g-3 mb-3") # ── Métricas por arquitetura + Comparação de modelos ──────────────────── metrics_row = dbc.Row([ - _chart_card("📊", "Métricas por Arquitetura (R², MAE, RMSE por target)", + _chart_card("📊", _t("chart_training_metrics", lang), "training-metrics-chart", height="420px", md=8), - _chart_card("🕸️", "Radar de Desempenho Global (MLP vs RNN vs CNN)", + _chart_card("🕸️", _t("chart_training_radar", lang), "training-radar-chart", height="420px", md=4), ], className="g-3 mb-3") @@ -651,13 +807,13 @@ def layout_TAB_Training(): results_card = dbc.Card([ dbc.CardHeader([ html.Span("📋 ", style={"fontSize": "1.2rem"}), - html.Span("Histórico de Treinamentos", className="fw-bold"), + html.Span(_t("section_training_history", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody([ - dbc.Button("🔄 Atualizar métricas", id="btn-reload-metrics", + dbc.Button("🔄 " + _t("btn_update_metrics", lang), id="btn-reload-metrics", color="secondary", size="sm", className="mb-3"), html.Div(id="training-results-table-container", children=[ - html.P("Clique em 'Atualizar métricas' após treinar para ver os resultados.", + html.P(_t("msg_click_update", lang), className="text-muted text-center small"), ]), ]) @@ -666,12 +822,10 @@ def layout_TAB_Training(): return html.Div([ dbc.Container([ html.Div([ - html.H3("Treinar Modelo Substituto", + html.H3(_t("training_page_title", lang), className="fw-bold text-center mb-2 cstr-title"), html.P( - "Treinamento dos surrogates MLP / RNN / CNN com hiperparâmetros " - "previamente otimizados — curvas de loss ao vivo, métricas por target " - "e comparação entre arquiteturas.", + _t("training_page_subtitle", lang), className="text-center text-secondary mb-4" ), ], className="cstr-page-header"), @@ -684,25 +838,293 @@ def layout_TAB_Training(): # ══════════════════════════════════════════════════════════════════════════════ # ABA: ANALYTICS (NOVA) # ══════════════════════════════════════════════════════════════════════════════ -def layout_TAB_Analytics(): +def _layout_data_file_manager(lang: str = DEFAULT_LANG): + """ + Gerenciador de Arquivos de Dados — descobre, pré-visualiza, remove e + aceita upload de CSVs usados em simulação/treino/otimização. + + Componentes: + • KPIs da coleção (cards coloridos) + • Filtros por tipo/fonte + busca + • DataTable selecionável com todos os arquivos + • DataTable de preview (com paginação) + • dcc.Upload + botões de ação (Atualizar, Excluir, Download) + • dcc.ConfirmDialog para confirmar exclusão + """ + header = dbc.CardHeader([ + html.Span("🗂️ ", style={"fontSize": "1.2rem"}), + html.Span(_t("section_data_files_manager", lang), + className="fw-bold"), + html.Span( + " — " + _t("dfm_subtitle", lang), + className="text-muted small ms-2", + ), + ], className="cstr-card-header") + + # ── Linha de KPIs (populada dinamicamente) ─────────────────────────────── + kpi_row = html.Div( + id="dfm-kpis", + className="mb-3", + children=html.P( + _t("dfm_click_refresh", lang), + className="text-muted text-center small mb-0", + ), + ) + + # ── Barra de ações / filtros ───────────────────────────────────────────── + filter_bar = dbc.Row([ + dbc.Col([ + dbc.Label(_t("dfm_filter_kind", lang), className="small fw-semibold text-secondary"), + dcc.Dropdown( + id="dfm-filter-kind", + options=[ + {"label": _t("dfm_all", lang), "value": "ALL"}, + {"label": "🧪 " + _t("dfm_kind_features", lang), "value": "features"}, + {"label": "🎯 " + _t("dfm_kind_targets", lang), "value": "targets"}, + {"label": "📚 " + _t("dfm_kind_complete", lang), "value": "complete"}, + {"label": "👁️ " + _t("dfm_kind_observed", lang), "value": "observed"}, + {"label": "🧭 " + _t("dfm_kind_truth", lang), "value": "truth"}, + {"label": "🎓 " + _t("dfm_kind_training_result", lang), "value": "training_result"}, + {"label": "📄 " + _t("dfm_kind_other", lang), "value": "other"}, + ], + value="ALL", clearable=False, className="cstr-dropdown", + **_PERSIST, + ), + ], md=3), + dbc.Col([ + dbc.Label(_t("dfm_filter_source", lang), className="small fw-semibold text-secondary"), + dcc.Dropdown( + id="dfm-filter-source", + options=[ + {"label": _t("dfm_all_fem", lang), "value": "ALL"}, + {"label": "📁 CSTRChemIA/simulation (flat)", "value": "simulation_flat"}, + {"label": "🔬 sim_*/observations", "value": "sim_observations"}, + {"label": "🧭 sim_*/truth", "value": "sim_truth"}, + {"label": "🌈 dados_diversos", "value": "diversos"}, + {"label": "📈 surrogate_model", "value": "training"}, + ], + value="ALL", clearable=False, className="cstr-dropdown", + **_PERSIST, + ), + ], md=3), + dbc.Col([ + dbc.Label(_t("dfm_search", lang), + className="small fw-semibold text-secondary"), + dbc.Input( + id="dfm-search", type="text", placeholder="ex.: features_00", + debounce=True, className="form-control-sm", **_PERSIST, + ), + ], md=3), + dbc.Col([ + dbc.Label("·", className="small text-white"), + dbc.ButtonGroup([ + dbc.Button("🔄 " + _t("btn_refresh", lang), id="dfm-btn-refresh", + color="primary", size="sm", + className="cstr-btn-primary"), + dbc.Button("🗑️ " + _t("btn_delete", lang), id="dfm-btn-delete", + color="danger", size="sm", + disabled=True), + ], className="w-100"), + ], md=3), + ], className="g-2 mb-3") + + # ── Tabela principal de arquivos ───────────────────────────────────────── + file_table = dash_table.DataTable( + id="dfm-file-table", + columns=[ + {"name": _t("col_kind", lang), "id": "kind_label"}, + {"name": _t("col_file", lang), "id": "filename"}, + {"name": _t("col_source", lang), "id": "source_label"}, + {"name": _t("col_rows", lang), "id": "rows", "type": "numeric"}, + {"name": _t("col_cols", lang), "id": "cols", "type": "numeric"}, + {"name": _t("col_size", lang), "id": "size_human"}, + {"name": _t("col_modified", lang), "id": "modified_human"}, + {"name": _t("col_path", lang), "id": "rel_path"}, + ], + data=[], + row_selectable="single", + selected_rows=[], + page_size=12, + sort_action="native", + filter_action="none", + style_table={"overflowX": "auto"}, + style_cell={ + "fontSize": "12px", + "padding": "6px 10px", + "fontFamily": "ui-monospace, SFMono-Regular, Menlo, monospace", + "textAlign": "left", + "whiteSpace": "nowrap", + "textOverflow": "ellipsis", + "overflow": "hidden", + "maxWidth": "320px", + }, + style_header={ + "fontWeight": "bold", + "backgroundColor": "#f8f9fa", + "borderBottom": "2px solid #dee2e6", + "fontSize": "12px", + }, + style_data_conditional=[ + # Linha selecionada + {"if": {"state": "selected"}, + "backgroundColor": "#e7f1ff", + "border": "1px solid #0d6efd"}, + # Destacar por tipo + {"if": {"filter_query": "{kind} = features"}, + "borderLeft": "3px solid #0d6efd"}, + {"if": {"filter_query": "{kind} = targets"}, + "borderLeft": "3px solid #198754"}, + {"if": {"filter_query": "{kind} = truth"}, + "borderLeft": "3px solid #ffc107"}, + {"if": {"filter_query": "{kind} = training_result"}, + "borderLeft": "3px solid #212529"}, + ], + ) + + # ── Preview do arquivo selecionado ─────────────────────────────────────── + preview_header = html.Div( + id="dfm-preview-header", + className="d-flex justify-content-between align-items-center mb-2", + children=[ + html.Div([ + html.Strong(_t("dfm_preview", lang) + ": ", className="small"), + html.Span(_t("msg_select_file", lang), + id="dfm-preview-name", + className="text-muted small"), + ]), + html.Span(id="dfm-preview-stats", className="text-muted small"), + ], + ) + + preview_table = dash_table.DataTable( + id="dfm-preview-table", + columns=[], + data=[], + page_size=15, + sort_action="native", + style_table={"overflowX": "auto", "maxHeight": "380px", + "overflowY": "auto"}, + style_cell={ + "fontSize": "11px", + "padding": "4px 8px", + "fontFamily": "ui-monospace, SFMono-Regular, Menlo, monospace", + "textAlign": "right", + "whiteSpace": "nowrap", + "textOverflow": "ellipsis", + "overflow": "hidden", + "maxWidth": "180px", + }, + style_header={ + "fontWeight": "bold", + "backgroundColor": "#f8f9fa", + "borderBottom": "2px solid #dee2e6", + "fontSize": "11px", + }, + style_data_conditional=[ + {"if": {"row_index": "odd"}, "backgroundColor": "#fcfcfc"}, + ], + ) + + # ── Upload area ───────────────────────────────────────────────────────── + upload_card = dbc.Card([ + dbc.CardHeader([ + html.Span("📤 ", style={"fontSize": "1.1rem"}), + html.Span(_t("dfm_add_file_title", lang), + className="fw-bold small"), + ], className="cstr-card-header"), + dbc.CardBody([ + dbc.Alert([ + html.Strong(_t("dfm_name_pattern_required", lang) + ": "), + html.Code("dados_treino_features_.csv", className="me-2"), + html.Span(_t("dfm_or", lang) + " ", className="small"), + html.Code("dados_treino_targets_.csv"), + html.Br(), + html.Small( + _t("dfm_save_location_note", lang), + className="text-muted", + ), + ], color="info", className="py-2 small mb-2"), + + dcc.Upload( + id="dfm-upload", + multiple=True, + children=html.Div([ + html.Div("📥 " + _t("dfm_drop_files_here", lang), + className="fw-bold"), + html.Small(_t("dfm_or_click_to_select", lang), + className="text-muted"), + ], className="text-center py-3"), + style={ + "width": "100%", + "border": "2px dashed #adb5bd", + "borderRadius": "10px", + "cursor": "pointer", + "backgroundColor": "#f8f9fa", + "transition": "background-color 0.2s, border-color 0.2s", + }, + className="dfm-upload-zone", + ), + + html.Div(id="dfm-upload-feedback", className="mt-2 small"), + ]), + ], className="shadow-sm cstr-card mb-3") + + # ── Container principal do gerenciador ─────────────────────────────────── + manager_card = dbc.Card([ + header, + dbc.CardBody([ + kpi_row, + filter_bar, + + # Tabela principal + html.Div(file_table, className="mb-3"), + + # Feedback de ações (exclusão, etc.) + html.Div(id="dfm-action-feedback", className="mb-2 small"), + + html.Hr(className="my-3"), + + # Preview + preview_header, + preview_table, + ]), + ], className="shadow-sm cstr-card mb-3 fade-in") + + # Confirmação de exclusão + confirm = dcc.ConfirmDialog( + id="dfm-confirm-delete", + message=_t("dfm_confirm_delete_msg", lang), + ) + + # Stores + auto-refresh invisível + stores = html.Div([ + dcc.Store(id="dfm-files-store", data=[]), + dcc.Store(id="dfm-selected-path-store", data=None), + dcc.Interval(id="dfm-refresh-interval", interval=30_000, disabled=True), + ]) + + return html.Div([manager_card, upload_card, confirm, stores]) + + +def layout_TAB_Analytics(lang: str = DEFAULT_LANG): """ Explorador completo de dados: distribuições, correlações, benchmarking - de modelos e estatísticas do dataset de treino. + de modelos e estatísticas do dataset de treino. Inclui também um + gerenciador dinâmico de arquivos de dados. """ header_card = dbc.Card([ dbc.CardBody([ dbc.Row([ dbc.Col([ - html.H5("📊 Explorador de Dados & Benchmark de Modelos", + html.H5("📊 " + _t("analytics_card_title", lang), className="fw-bold mb-1"), html.P( - "Visualize as distribuições do dataset de treino, correlações " - "entre features e targets, e compare as arquiteturas MLP / RNN / CNN.", + _t("analytics_card_subtitle", lang), className="text-muted small mb-0" ), ], md=9), dbc.Col([ - dbc.Button("🔄 Carregar / Atualizar", id="btn-load-analytics", + dbc.Button("🔄 " + _t("btn_load_refresh", lang), id="btn-load-analytics", color="primary", className="w-100 mt-2 cstr-btn-primary"), ], md=3), ]), @@ -711,37 +1133,37 @@ def layout_TAB_Analytics(): # ── KPIs do dataset ────────────────────────────────────────────────────── dataset_kpi_row = html.Div(id="analytics-dataset-kpis", children=[ - html.P("Clique em 'Carregar / Atualizar' para ver as estatísticas.", + html.P(_t("analytics_click_refresh", lang), className="text-muted text-center small"), ], className="mb-3") # ── Linha 1: distribuição features + distribuição targets ──────────────── row1 = dbc.Row([ - _chart_card("📦", "Distribuição das Features (box plots normalizados)", + _chart_card("📦", _t("chart_analytics_feat_dist", lang), "analytics-feat-dist-chart", height="400px", md=7), - _chart_card("🎯", "Distribuição dos Targets (violin plots)", + _chart_card("🎯", _t("chart_analytics_target_dist", lang), "analytics-target-dist-chart", height="400px", md=5), ], className="g-3 mb-3") # ── Linha 2: heatmap correlação features×targets ───────────────────────── row2 = dbc.Row([ - _chart_card("🔥", "Matriz de Correlação Features × Targets", + _chart_card("🔥", _t("chart_analytics_corr", lang), "analytics-corr-chart", height="480px", md=12), ], className="g-3 mb-3") # ── Linha 3: benchmark arquiteturas ───────────────────────────────────── row3 = dbc.Row([ - _chart_card("📏", "Métricas por Target — Comparação MLP/RNN/CNN", + _chart_card("📏", _t("chart_analytics_metrics_bar", lang), "analytics-metrics-bar-chart", height="420px", md=8), - _chart_card("🕸️", "Radar de Desempenho Global por Arquitetura", + _chart_card("🕸️", _t("chart_analytics_arch_radar", lang), "analytics-arch-radar-chart", height="420px", md=4), ], className="g-3 mb-3") # ── Linha 4: scree de variância (PCA) + histograma de erros ───────────── row4 = dbc.Row([ - _chart_card("🔬", "Variância Explicada (PCA das Features)", + _chart_card("🔬", _t("chart_analytics_pca", lang), "analytics-pca-chart", height="360px", md=6), - _chart_card("📈", "Distribuição do Erro de Predição por Target", + _chart_card("📈", _t("chart_analytics_error_dist", lang), "analytics-error-dist-chart", height="360px", md=6), ], className="g-3 mb-3") @@ -749,10 +1171,10 @@ def layout_TAB_Analytics(): stats_card = dbc.Card([ dbc.CardHeader([ html.Span("📋 ", style={"fontSize": "1.2rem"}), - html.Span("Estatísticas Descritivas do Dataset", className="fw-bold"), + html.Span(_t("analytics_stats_section", lang), className="fw-bold"), ], className="cstr-card-header"), dbc.CardBody(html.Div(id="analytics-stats-table", children=[ - html.P("Carregue os dados para ver a tabela.", + html.P(_t("analytics_load_data_msg", lang), className="text-muted text-center small"), ])), ], className="shadow-sm cstr-card mb-3 fade-in") @@ -760,15 +1182,18 @@ def layout_TAB_Analytics(): return html.Div([ dbc.Container([ html.Div([ - html.H3("Analytics — Dados & Benchmarking", + html.H3(_t("analytics_page_title", lang), className="fw-bold text-center mb-2 cstr-title"), html.P( - "Explorção detalhada do dataset de treino, distribuições, correlações " - "e comparação quantitativa entre as três arquiteturas de surrogate.", + _t("analytics_page_subtitle", lang), className="text-center text-secondary mb-4" ), ], className="cstr-page-header"), header_card, + + # Gerenciador dinâmico de arquivos de dados + _layout_data_file_manager(lang=lang), + dataset_kpi_row, row1, row2, row3, row4, stats_card, @@ -779,7 +1204,7 @@ def layout_TAB_Analytics(): # ══════════════════════════════════════════════════════════════════════════════ # ABA: ABOUT # ══════════════════════════════════════════════════════════════════════════════ -def layout_TAB_About(): +def layout_TAB_About(lang: str = DEFAULT_LANG): timestamp = datetime.now().strftime("%Y%m%d%H%M%S") return html.Div([ html.Iframe( @@ -794,7 +1219,9 @@ def layout_TAB_About(): # ══════════════════════════════════════════════════════════════════════════════ # ABA: HELP # ══════════════════════════════════════════════════════════════════════════════ -def layout_help(): +def layout_help(lang: str = DEFAULT_LANG): + # ``lang`` recebido para consistência com as outras layouts; a ajuda em si + # vive num iframe com seus próprios idiomas. return html.Div([ html.Iframe( id='html-viewer', diff --git a/CSTRChemIA/main.py b/CSTRChemIA/main.py index 746679a..e212707 100644 --- a/CSTRChemIA/main.py +++ b/CSTRChemIA/main.py @@ -2,52 +2,35 @@ # -*- coding: utf-8 -*- """ -Arquivo principal da aplicação Dash (main.py) -Inicializa o app, configura logging, suprime warnings e carrega os módulos. +main.py — ponto de entrada do app Dash. + +Inicializa logging centralizado (core.logging), cria o Dash app, expõe o +WSGI server para gunicorn e registra health-check em ``/healthz``. """ import os import sys -import logging import warnings -import dash -import dash_bootstrap_components as dbc - -# ============================== -# CONFIGURAÇÕES DE AMBIENTE -# ============================== -# Suprime mensagens do TensorFlow (0 = all, 1 = no INFO, 2 = no WARNING, 3 = no ERROR) -os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' +# Suprime ruído de TF antes de qualquer import pesado +os.environ.setdefault("TF_CPP_MIN_LOG_LEVEL", "2") warnings.filterwarnings("ignore") -# ============================== -# CONFIGURAÇÃO DO STDOUT (line-buffered) -# ============================== -# No Windows / Python 3.13, reconfigure pode tornar o handle inválido em -# threads background — envolvemos em try/except para não quebrar o app. -try: - if hasattr(sys.stdout, 'reconfigure'): - sys.stdout.reconfigure(line_buffering=True) - if hasattr(sys.stderr, 'reconfigure'): - sys.stderr.reconfigure(line_buffering=True) -except (OSError, ValueError, AttributeError): - pass +# PATH — permite executar tanto `python main.py` (dentro de CSTRChemIA/) +# quanto `gunicorn --chdir CSTRChemIA main:server`. +sys.path.append(os.path.abspath(os.path.dirname(__file__))) -# ============================== -# CONFIGURAÇÃO DO LOGGING -# ============================== -logging.basicConfig( - stream=sys.stdout, - level=logging.INFO, - format='%(asctime)s [%(levelname)s] %(message)s', - force=True # substitui configurações anteriores (Python 3.8+) -) +import dash # noqa: E402 +import dash_bootstrap_components as dbc # noqa: E402 +from flask import jsonify # noqa: E402 -# ============================== -# ADICIONA O DIRETÓRIO ATUAL AO PATH -# ============================== -sys.path.append(os.path.abspath(os.path.dirname(__file__))) +from core.logging import get_logger, setup_logging # noqa: E402 +from core.settings import get_settings # noqa: E402 + +# Logging centralizado — substitui a antiga configuração ad-hoc em main.py +setup_logging() +log = get_logger(__name__) +settings = get_settings() # ============================== # CRIAÇÃO DO APP DASH @@ -56,22 +39,37 @@ __name__, external_stylesheets=[dbc.themes.BOOTSTRAP], suppress_callback_exceptions=True, - prevent_initial_callbacks='initial_duplicate' + prevent_initial_callbacks="initial_duplicate", ) -software = "CSTR Simulator & Optimizer" +software = "CSTRChemIA" app.title = software server = app.server +# Endpoint de health-check — consumido por Docker/K8s/Render/Railway +@server.route("/healthz") +def _healthz(): + from services.model_registry import get_model_registry + try: + archs = get_model_registry().available_architectures() + except Exception as e: # noqa: BLE001 + log.exception("health check: falha ao listar modelos") + return jsonify({"status": "degraded", "error": str(e)}), 503 + return jsonify({ + "status": "ok", + "service": software, + "models_available": archs, + }) + + # ============================== # IMPORTAÇÃO DOS MÓDULOS DA APLICAÇÃO # ============================== -from apps.MAIN_init import * -import apps.MAIN_callbacks +# `from apps.MAIN_init import *` traz `run_chemsimia()` que já configura +# a abertura automática do browser (não-Linux) e chama app.run(). +from apps.MAIN_init import * # noqa: E402,F401,F403 +import apps.MAIN_callbacks # noqa: E402,F401 -# ============================== -# PONTO DE ENTRADA -# ============================== -if __name__ == '__main__': - # A função RUN_ChemSimIA() deve estar definida em apps.MAIN_init - run_chemsimia() \ No newline at end of file + +if __name__ == "__main__": + run_chemsimia() # type: ignore[name-defined] # vem do star-import diff --git a/CSTRChemIA/optimization/CSTR_Optimization_Problem.py b/CSTRChemIA/optimization/CSTR_Optimization_Problem.py index c727a09..86340a8 100644 --- a/CSTRChemIA/optimization/CSTR_Optimization_Problem.py +++ b/CSTRChemIA/optimization/CSTR_Optimization_Problem.py @@ -47,7 +47,7 @@ def _safe_fl_init(self): try: _orig_fl_init(self) - except (OSError, ValueError, Exception): + except Exception: # Marca como não-compilado sem propagar o erro do print() self.is_compiled = False @@ -67,6 +67,24 @@ def _safe_fl_init(self): from surrogate_model.KerasPredict import PredictValues, TARGET_COLS, N_FEATURES +# ── i18n (fallback seguro se o módulo não estiver disponível) ───────────────── +try: + from core.i18n import t as _t_i18n, DEFAULT_LANG +except Exception: + DEFAULT_LANG = "pt" + + def _t_i18n(key: str, lang: str = "pt", **_kw) -> str: + return key + + +def _t(key: str, lang: str = None) -> str: + """Wrapper curto para traduções com fallback seguro.""" + try: + return _t_i18n(key, lang or DEFAULT_LANG) + except Exception: + return key + + IDX = {col: i for i, col in enumerate(TARGET_COLS)} VAR_NAMES = ['vazao_feed', 'CA0_feed', 'CB0_feed', 'Tf_feed', @@ -222,21 +240,24 @@ def _empty_figure(msg: str, title: str = "") -> go.Figure: return fig -def _build_pareto_figure(df: pd.DataFrame, constraints: dict = None) -> go.Figure: +def _build_pareto_figure(df: pd.DataFrame, constraints: dict = None, + lang: str = DEFAULT_LANG) -> go.Figure: if df.empty: - return _empty_figure("Nenhuma solucao factivel. Relaxe as restricoes.", "Pareto Front") + return _empty_figure(_t("msg_no_feasible_relax", lang), + _t("opt_fig_pareto_title", lang)) fig = go.Figure() fig.add_trace(go.Scatter( x=df['X (%)'], y=df['Fouling (m)'], mode='markers', marker=dict(color=df['Cat. Activity'], colorscale='Viridis', - showscale=True, colorbar=dict(title='Cat. Activity', thickness=14), + showscale=True, colorbar=dict(title=_t("target_cat_activity", lang), + thickness=14), size=11, opacity=0.9, line=dict(color=_PALETTE['primary'], width=1)), text=[(f"vazao={r['vazao_feed']:.4g} m3/s
T_obs={r['T_obs (K)']:.1f} K
" f"T0={r['T0 predita (K)']:.1f} K
valve={r['valve_pos']:.2f}
" f"CP0={r['CP0 predita']:.1f} mol/m3") for _, r in df.iterrows()], hovertemplate="X=%{x:.2f}%
Fouling=%{y:.2e} m
%{text}", - name='Pareto Front', + name=_t("opt_label_pareto_front", lang), )) if constraints: if constraints.get('X_min', 0) > 0: @@ -258,72 +279,96 @@ def _build_pareto_figure(df: pd.DataFrame, constraints: dict = None) -> go.Figur x=[utopia_x], y=[utopia_f], mode='markers', marker=dict(symbol='star', size=18, color=_PALETTE['gold'], line=dict(color=_PALETTE['primary'], width=2)), - name='Ponto Utopia', + name=_t("opt_label_utopia", lang), hovertemplate=f"Utopia
X={utopia_x:.2f}%
Fouling={utopia_f:.2e}", )) fig.update_layout( - title=dict(text='Frente de Pareto: Conversao x Fouling', - font=dict(color=_PALETTE['primary'], size=16), x=0.5), - xaxis_title='Conversao X (%)', yaxis_title='Fouling Thickness (m)', - template='plotly_white', margin=dict(t=60, b=40, l=50, r=30), - legend=dict(orientation='h', yanchor='bottom', y=1.02, xanchor='center', x=0.5), + title=dict(text=_t("opt_fig_pareto_title", lang), + font=dict(color=_PALETTE['primary'], size=16), + x=0.5, xanchor='center', y=0.97, yanchor='top'), + xaxis_title=_t("opt_fig_pareto_x", lang), + yaxis_title=_t("opt_fig_pareto_y", lang), + template='plotly_white', margin=dict(t=70, b=80, l=55, r=30), + legend=dict( + orientation='h', + yanchor='top', y=-0.18, + xanchor='center', x=0.5, + bgcolor='rgba(255,255,255,0.85)', + bordercolor=_PALETTE['primary'], borderwidth=1, + font=dict(size=11), + ), ) return fig -def _build_parcoords_figure(df: pd.DataFrame) -> go.Figure: +def _build_parcoords_figure(df: pd.DataFrame, lang: str = DEFAULT_LANG) -> go.Figure: if df.empty or len(df) < 2: - return _empty_figure("Precisa de >= 2 solucoes factiveis.", "Parallel Coordinates") + return _empty_figure(_t("msg_need_2_feasible", lang), + _t("opt_fig_parcoords_title", lang)) + # Formatos por dimensão (evita 10+ casas decimais esmagando as réguas) dims = [ - dict(label='Vazao (m3/s)', values=df['vazao_feed']), - dict(label='CA0 Feed', values=df['CA0_feed']), - dict(label='CB0 Feed', values=df['CB0_feed']), - dict(label='Tf (K)', values=df['Tf_feed (K)']), - dict(label='T_obs (K)', values=df['T_obs (K)']), - dict(label='Valvula', values=df['valve_pos']), - dict(label='w_j', values=df['w_j']), - dict(label='X (%)', values=df['X (%)']), - dict(label='Fouling (m)', values=df['Fouling (m)']), - dict(label='Cat. Act.', values=df['Cat. Activity']), - dict(label='CP0 Pred.', values=df['CP0 predita']), + dict(label=_t("feat_flow", lang) + ' (m³/s)', values=df['vazao_feed'], tickformat='.3g'), + dict(label=_t("feat_ca0", lang), values=df['CA0_feed'], tickformat='.3g'), + dict(label=_t("feat_cb0", lang), values=df['CB0_feed'], tickformat='.3g'), + dict(label=_t("feat_tf", lang) + ' (K)', values=df['Tf_feed (K)'], tickformat='.0f'), + dict(label=_t("feat_tobs", lang) + ' (K)', values=df['T_obs (K)'], tickformat='.0f'), + dict(label=_t("feat_valve", lang), values=df['valve_pos'], tickformat='.2f'), + dict(label=_t("feat_wj", lang), values=df['w_j'], tickformat='.3g'), + dict(label=_t("short_x_pct", lang), values=df['X (%)'], tickformat='.1f'), + dict(label=_t("opt_axis_fouling_um", lang).replace('(µm)', '(m)'), + values=df['Fouling (m)'], tickformat='.2e'), + dict(label=_t("target_cat_activity", lang), values=df['Cat. Activity'], tickformat='.3f'), + dict(label=_t("target_CP0", lang), values=df['CP0 predita'], tickformat='.3g'), ] fig = go.Figure(data=go.Parcoords( line=dict(color=df['X (%)'], colorscale='Viridis', - showscale=True, colorbar=dict(title='X (%)', thickness=14)), + showscale=True, colorbar=dict(title=_t("short_x_pct", lang), + thickness=14)), dimensions=dims, + labelfont=dict(size=11, color=_PALETTE['primary']), + tickfont=dict(size=9), + rangefont=dict(size=9), )) fig.update_layout( - title=dict(text='Parallel Coordinates -- Solucoes Factiveis', - font=dict(color=_PALETTE['primary'], size=16), x=0.5), - template='plotly_white', margin=dict(t=70, b=40, l=60, r=60), + title=dict(text=_t("opt_fig_parcoords_title", lang), + font=dict(color=_PALETTE['primary'], size=15), + x=0.5, xanchor='center', y=0.97, yanchor='top'), + template='plotly_white', + margin=dict(t=90, b=55, l=70, r=80), + paper_bgcolor='rgba(0,0,0,0)', ) return fig -def _build_3d_figure(df: pd.DataFrame) -> go.Figure: +def _build_3d_figure(df: pd.DataFrame, lang: str = DEFAULT_LANG) -> go.Figure: if df.empty: - return _empty_figure("Sem solucoes factiveis para 3D.", "3D Scatter") + return _empty_figure(_t("msg_no_feasible_3d", lang), + _t("opt_fig_3d_title", lang)) fig = go.Figure(data=go.Scatter3d( x=df['X (%)'], y=df['Fouling (m)'], z=df['Cat. Activity'], mode='markers', marker=dict(size=6, color=df['T0 predita (K)'], colorscale='Plasma', - showscale=True, colorbar=dict(title='T0 (K)', thickness=14), + showscale=True, colorbar=dict(title=_t("short_t0_k", lang), + thickness=14), opacity=0.9, line=dict(color=_PALETTE['primary'], width=0.5)), hovertemplate="X=%{x:.2f}%
Fouling=%{y:.2e}
CatAct=%{z:.4f}", )) fig.update_layout( - title=dict(text='Espaco 3D de Desempenho', + title=dict(text=_t("opt_fig_3d_perf_title", lang), font=dict(color=_PALETTE['primary'], size=16), x=0.5), - scene=dict(xaxis_title='X (%)', yaxis_title='Fouling (m)', - zaxis_title='Cat. Activity', bgcolor='rgba(248,249,252,0.6)'), + scene=dict(xaxis_title=_t("short_x_pct", lang), + yaxis_title=_t("opt_label_fouling", lang) + ' (m)', + zaxis_title=_t("target_cat_activity", lang), + bgcolor='rgba(248,249,252,0.6)'), template='plotly_white', margin=dict(t=60, b=10, l=10, r=10), ) return fig -def _build_convergence_figure(history: List[dict]) -> go.Figure: +def _build_convergence_figure(history: List[dict], lang: str = DEFAULT_LANG) -> go.Figure: if not history: - return _empty_figure("Sem historico de convergencia.", "Convergencia") + return _empty_figure(_t("msg_no_convergence_hist", lang), + _t("opt_fig_convergence_title", lang)) gens = [h['gen'] for h in history] feasible = [h['feasible'] for h in history] best_x = [h['best_X'] for h in history] @@ -332,43 +377,59 @@ def _build_convergence_figure(history: List[dict]) -> go.Figure: diversity = [h.get('diversity', 0) for h in history] fig = make_subplots(rows=2, cols=2, - subplot_titles=("Factibilidade por Geração", - "Melhor X (%) × Gerações", - "Média X (%) Factíveis", - "Diversidade (spread)"), + subplot_titles=( + _t("opt_sub_feasibility", lang), + _t("opt_sub_best_x", lang), + _t("opt_sub_avg_x", lang), + _t("opt_sub_diversity", lang), + ), horizontal_spacing=0.12, vertical_spacing=0.15) fig.add_trace(go.Scatter(x=gens, y=feasible, mode='lines+markers', line=dict(color=_PALETTE['primary'], width=2), - marker=dict(size=5), name='Factiveis'), row=1, col=1) + marker=dict(size=5), + name=_t("opt_label_feasible_plural", lang)), row=1, col=1) fig.add_trace(go.Scatter(x=gens, y=[b * 100 for b in best_x], mode='lines+markers', line=dict(color=_PALETTE['success'], width=2), - marker=dict(size=5), name='Melhor X'), row=1, col=2) + marker=dict(size=5), + name=_t("opt_label_best_x", lang)), row=1, col=2) fig.add_trace(go.Scatter(x=gens, y=[a * 100 for a in avg_x], mode='lines', line=dict(color=_PALETTE['info'], width=2), - name='Media X'), row=2, col=1) + name=_t("opt_label_avg_x", lang)), row=2, col=1) fig.add_trace(go.Scatter(x=gens, y=diversity, mode='lines', line=dict(color=_PALETTE['warning'], width=2), - name='Diversidade'), row=2, col=2) - for r, c, yt in [(1, 1, 'N factiveis'), (1, 2, 'X (%)'), - (2, 1, 'X (%)'), (2, 2, 'Spread')]: - fig.update_xaxes(title_text='Geração', row=r, col=c) - fig.update_yaxes(title_text=yt, row=r, col=c) + name=_t("opt_label_diversity", lang)), row=2, col=2) + y_titles = [_t("opt_axis_n_feasible", lang), _t("short_x_pct", lang), + _t("short_x_pct", lang), _t("opt_axis_spread", lang)] + for (r, c), yt in zip([(1, 1), (1, 2), (2, 1), (2, 2)], y_titles): + fig.update_xaxes(title_text=_t("opt_axis_generation", lang), row=r, col=c, + title_font=dict(size=10), tickfont=dict(size=9)) + fig.update_yaxes(title_text=yt, row=r, col=c, + title_font=dict(size=10), tickfont=dict(size=9)) + # Font dos sub-titulos + for ann in fig.layout.annotations: + ann.font = dict(size=11, color=_PALETTE['primary']) fig.update_layout( - title=dict(text='Evolucao NSGA-II', - font=dict(color=_PALETTE['primary'], size=16), x=0.5), - template='plotly_white', margin=dict(t=70, b=40, l=50, r=30), - showlegend=False, height=500, + title=dict(text=_t("opt_fig_evolution_title", lang), + font=dict(color=_PALETTE['primary'], size=15), + x=0.5, xanchor='center', y=0.98, yanchor='top'), + template='plotly_white', + margin=dict(t=70, b=45, l=55, r=35), + showlegend=False, + autosize=True, + # height removido — respeita o container do card (style height) ) return fig -def _build_heatmap_figure(df: pd.DataFrame) -> go.Figure: +def _build_heatmap_figure(df: pd.DataFrame, lang: str = DEFAULT_LANG) -> go.Figure: if df.empty or len(df) < 3: - return _empty_figure("Precisa de >= 3 solucoes para heatmap.", "Mapa Operacional") + return _empty_figure(_t("msg_need_3_heatmap", lang), + _t("opt_fig_opmap_title", lang)) fig = go.Figure(data=go.Scatter( x=df['vazao_feed'] * 1000, y=df['T_obs (K)'], mode='markers', marker=dict(size=14, color=df['X (%)'], colorscale='RdYlGn', - showscale=True, colorbar=dict(title='X (%)', thickness=14), + showscale=True, colorbar=dict(title=_t("short_x_pct", lang), + thickness=14), opacity=0.85, line=dict(color='#333', width=0.5)), text=[(f"Fouling={r['Fouling (m)']:.2e}
Cat.Act={r['Cat. Activity']:.4f}
" f"T0={r['T0 predita (K)']:.1f} K
CP0={r['CP0 predita']:.1f}") @@ -377,21 +438,26 @@ def _build_heatmap_figure(df: pd.DataFrame) -> go.Figure: "X=%{marker.color:.2f}%
%{text}"), )) fig.update_layout( - title=dict(text='Mapa Operacional: Vazao x T_obs x Conversao', + title=dict(text=_t("opt_fig_opmap_title", lang), font=dict(color=_PALETTE['primary'], size=16), x=0.5), - xaxis_title='Vazao (L/s)', yaxis_title='T_obs (K)', + xaxis_title=_t("feat_flow", lang) + ' (L/s)', + yaxis_title=_t("feat_tobs", lang) + ' (K)', template='plotly_white', margin=dict(t=60, b=40, l=50, r=30), ) return fig -def _build_violin_figure(df: pd.DataFrame) -> go.Figure: +def _build_violin_figure(df: pd.DataFrame, lang: str = DEFAULT_LANG) -> go.Figure: if df.empty or len(df) < 2: - return _empty_figure("Precisa de >= 2 solucoes para distribuicao.", "Distribuicao") + return _empty_figure(_t("msg_need_2_distribution", lang), + _t("opt_fig_violin_title", lang)) cols_to_plot = [ - ('X (%)', 'X (%)'), ('Fouling (m)', 'Fouling'), - ('Cat. Activity', 'Cat. Act.'), ('T0 predita (K)', 'T0 (K)'), - ('CP0 predita', 'CP0'), ('valve_pos', 'Valvula'), + ('X (%)', _t("short_x_pct", lang)), + ('Fouling (m)', _t("target_fouling", lang)), + ('Cat. Activity', _t("target_cat_activity", lang)), + ('T0 predita (K)', _t("short_t0_k", lang)), + ('CP0 predita', _t("target_CP0", lang)), + ('valve_pos', _t("feat_valve", lang)), ] colors = [_PALETTE['primary'], _PALETTE['success'], _PALETTE['warning'], _PALETTE['danger'], _PALETTE['info'], _PALETTE['secondary']] @@ -402,7 +468,7 @@ def _build_violin_figure(df: pd.DataFrame) -> go.Figure: meanline_visible=True, fillcolor=colors[i % len(colors)], opacity=0.65, line_color=colors[i % len(colors)])) fig.update_layout( - title=dict(text='Distribuicao das Saidas - Solucoes Otimas', + title=dict(text=_t("opt_fig_violin_out_title", lang), font=dict(color=_PALETTE['primary'], size=16), x=0.5), template='plotly_white', margin=dict(t=60, b=40, l=50, r=30), showlegend=False, violinmode='group', @@ -455,14 +521,16 @@ def _compute_topsis_scores(df: pd.DataFrame) -> np.ndarray: return scores -def _build_topsis_figure(df: pd.DataFrame) -> go.Figure: +def _build_topsis_figure(df: pd.DataFrame, lang: str = DEFAULT_LANG) -> go.Figure: """Top-15 soluções rankeadas por score TOPSIS com detalhes.""" if df.empty or len(df) < 2: - return _empty_figure("Precisa de >= 2 solucoes para ranking TOPSIS.", "TOPSIS Ranking") + return _empty_figure(_t("msg_need_2_topsis", lang), + _t("opt_fig_topsis_title", lang)) scores = _compute_topsis_scores(df) if len(scores) == 0: - return _empty_figure("TOPSIS indisponivel.", "TOPSIS Ranking") + return _empty_figure(_t("msg_topsis_unavailable", lang), + _t("opt_fig_topsis_title", lang)) df_r = df.copy() df_r['topsis_score'] = scores @@ -503,107 +571,141 @@ def _build_topsis_figure(df: pd.DataFrame) -> go.Figure: )) fig.add_vline(x=sc_vals.mean(), line_dash='dot', line_color=_PALETTE['success'], line_width=1.5, - annotation_text=f"Média={sc_vals.mean():.3f}", + annotation_text=f"{_t('opt_label_mean', lang)}={sc_vals.mean():.3f}", annotation_font=dict(size=9, color=_PALETTE['success'])) fig.update_layout( - title=dict(text='Ranking TOPSIS — Multi-Critério (Top-15)', - font=dict(color=_PALETTE['primary'], size=15), x=0.5), - xaxis=dict(title='Score TOPSIS (0=pior → 1=melhor)', range=[0, 1.05]), + title=dict(text=_t("opt_fig_topsis_multi_title", lang), + font=dict(color=_PALETTE['primary'], size=15), + x=0.5, xanchor='center', y=0.97, yanchor='top'), + xaxis=dict(title=_t("opt_axis_topsis_score", lang), range=[0, 1.05]), yaxis=dict(title=''), template='plotly_white', margin=dict(t=55, b=45, l=55, r=60), - height=420, + autosize=True, ) return fig -def _build_cluster_figure(df: pd.DataFrame) -> go.Figure: - """K-means (k=3) sobre o espaço Pareto colorido por cluster.""" - if df.empty or len(df) < 4: - return _empty_figure("Precisa de >= 4 solucoes para clustering.", "Clusters Pareto") +def _build_cluster_figure(df: pd.DataFrame, lang: str = DEFAULT_LANG) -> go.Figure: + """K-means (k≤3) sobre o espaço Pareto colorido por cluster.""" + title_fallback = _t("opt_fig_clusters_pareto_title", lang) + if df is None or df.empty or len(df) < 4: + return _empty_figure(_t("msg_need_4_cluster", lang), title_fallback) + + # Requisitos obrigatórios para o scatter final: X (%) e Fouling (m) + required = ['X (%)', 'Fouling (m)'] + for col in required: + if col not in df.columns: + return _empty_figure(_t("msg_cluster_missing_col", lang).format(col=col), + title_fallback) try: from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler - except ImportError: - return _empty_figure("scikit-learn necessário para clustering.", "Clusters Pareto") + except Exception: + return _empty_figure(_t("msg_sklearn_required", lang), title_fallback) try: - feature_cols = ['X (%)', 'Fouling (m)', 'Cat. Activity'] - avail = [c for c in feature_cols if c in df.columns] - if len(avail) < 2: - return _empty_figure("Colunas insuficientes para clustering.", "Clusters Pareto") + # Sanitiza: dropa linhas com NaN/inf nas features de clustering + feature_cols = [c for c in ('X (%)', 'Fouling (m)', 'Cat. Activity') if c in df.columns] + if len(feature_cols) < 2: + return _empty_figure(_t("msg_cluster_cols_insufficient", lang), title_fallback) + + work = df[feature_cols + ['X (%)', 'Fouling (m)']].copy() + # remove duplicadas mantendo índice consistente + work = work.loc[:, ~work.columns.duplicated()] + work = work.replace([np.inf, -np.inf], np.nan).dropna(subset=feature_cols) + work = work.reset_index(drop=True) + + if len(work) < 4: + return _empty_figure(_t("msg_cluster_rows_insufficient", lang), title_fallback) + + mat = work[feature_cols].to_numpy(dtype=float) + # Se variância zero em alguma coluna, a escala normal quebra — fallback manual + stds = mat.std(axis=0) + if np.any(stds == 0): + return _empty_figure(_t("msg_cluster_zero_variance", lang), title_fallback) - mat = df[avail].values.astype(float) scaler = StandardScaler() mat_s = scaler.fit_transform(mat) - k = min(3, len(df) - 1) + k = int(min(3, max(2, len(work) - 1))) km = KMeans(n_clusters=k, random_state=42, n_init=10, max_iter=300) labels_km = km.fit_predict(mat_s) cluster_names = [ - 'Alto X / Alto Fouling', - 'Baixo Fouling / Baixo X', - 'Balanceado', + _t("opt_cluster_high_x_high_f", lang), + _t("opt_cluster_low_f_low_x", lang), + _t("opt_cluster_balanced", lang), ][:k] colors_cl = [_PALETTE['danger'], _PALETTE['info'], _PALETTE['success']][:k] fig = go.Figure() for ci in range(k): mask = labels_km == ci - sub = df[mask] - # Sort cluster name by centroid - cent_x = sub['X (%)'].mean() if 'X (%)' in sub.columns else 0 - cent_f = sub['Fouling (m)'].mean() if 'Fouling (m)' in sub.columns else 0 + sub = work.loc[mask] + if sub.empty: + continue fig.add_trace(go.Scatter( x=sub['X (%)'], y=sub['Fouling (m)'], mode='markers', marker=dict(size=11, color=colors_cl[ci], opacity=0.82, line=dict(color='white', width=1.2)), - name=f'C{ci+1}: {cluster_names[ci]}', + name=f'C{ci+1}: {cluster_names[ci]} (n={int(mask.sum())})', hovertemplate=( f"Cluster {ci+1}
" "X=%{x:.2f}%
Fouling=%{y:.2e}" ), )) - # Centroids (inverse transform) - centroids_s = km.cluster_centers_ - centroids_ = scaler.inverse_transform(centroids_s) + # Centroides (inverse transform) — indexados pelas colunas do feature_cols + centroids_s = km.cluster_centers_ + centroids_ = scaler.inverse_transform(centroids_s) + idx_x = feature_cols.index('X (%)') + idx_f = feature_cols.index('Fouling (m)') fig.add_trace(go.Scatter( - x=centroids_[:, 0], - y=centroids_[:, 1], + x=centroids_[:, idx_x], + y=centroids_[:, idx_f], mode='markers+text', - marker=dict(symbol='x-thick', size=20, color=_PALETTE['gold'], + marker=dict(symbol='x', size=18, color=_PALETTE['gold'], line=dict(color='#333', width=2)), text=[f'C{i+1}' for i in range(k)], textposition='top center', textfont=dict(size=10, color='#333'), - name='Centróides', - hovertemplate="Centróide
X=%{x:.2f}%
Fouling=%{y:.2e}", + name=_t("opt_label_centroids", lang), + hovertemplate=(f"{_t('opt_label_centroid', lang)}
" + "X=%{x:.2f}%
Fouling=%{y:.2e}"), )) fig.update_layout( - title=dict(text='Clusters K-Means da Frente de Pareto (k=3)', - font=dict(color=_PALETTE['primary'], size=15), x=0.5), - xaxis_title='Conversão X (%)', - yaxis_title='Fouling Thickness (m)', + title=dict(text=_t("opt_fig_clusters_kmeans_title", lang).format(k=k), + font=dict(color=_PALETTE['primary'], size=15), + x=0.5, xanchor='center', y=0.97, yanchor='top'), + xaxis_title=_t("short_x_pct", lang), + yaxis_title=_t("opt_label_fouling", lang) + ' (m)', template='plotly_white', - margin=dict(t=55, b=40, l=55, r=30), - height=420, - legend=dict(orientation='h', yanchor='bottom', y=-0.22, - xanchor='center', x=0.5), + margin=dict(t=60, b=80, l=60, r=30), + autosize=True, + legend=dict(orientation='h', + yanchor='top', y=-0.18, + xanchor='center', x=0.5, + bgcolor='rgba(255,255,255,0.85)', + bordercolor=_PALETTE['primary'], borderwidth=1, + font=dict(size=10)), ) return fig except Exception as e: - return _empty_figure(f"Erro no clustering: {e}", "Clusters Pareto") + return _empty_figure( + _t("msg_cluster_error", lang).format(err=f"{type(e).__name__}: {e}"), + title_fallback, + ) -def _build_hypervolume_figure(history: List[dict]) -> go.Figure: +def _build_hypervolume_figure(history: List[dict], lang: str = DEFAULT_LANG) -> go.Figure: """Evolução do Hypervolume aproximado ao longo das gerações.""" + title_fallback = _t("opt_fig_hv_by_gen_title", lang) if not history: - return _empty_figure("Sem histórico de HV.", "Hypervolume por Geração") + return _empty_figure(_t("msg_no_hv_hist", lang), title_fallback) gens = [h['gen'] for h in history] ref_x, ref_f = 0.0, PHYS_LIMITS['fouling_max'] @@ -626,8 +728,8 @@ def _build_hypervolume_figure(history: List[dict]) -> go.Figure: hvs.append(xi * fi if xi > 0 and fi > 0 else 0.0) fig = make_subplots(rows=1, cols=2, - subplot_titles=('Hypervolume por Geração', - 'Soluções Factíveis por Geração'), + subplot_titles=(_t("opt_sub_hv_by_gen", lang), + _t("opt_sub_feasible_by_gen", lang)), horizontal_spacing=0.12) # HV @@ -636,7 +738,7 @@ def _build_hypervolume_figure(history: List[dict]) -> go.Figure: line=dict(color=_PALETTE['primary'], width=2.5), marker=dict(size=5, color=_PALETTE['primary']), fill='tozeroy', fillcolor='rgba(89,19,184,0.12)', - name='Hypervolume', + name=_t("opt_fig_hypervolume_y", lang), hovertemplate="Gen=%{x}
HV=%{y:.5f}", ), row=1, col=1) @@ -645,7 +747,7 @@ def _build_hypervolume_figure(history: List[dict]) -> go.Figure: max_idx = int(np.argmax(hvs)) fig.add_annotation( x=gens[max_idx], y=hvs[max_idx], - text=f"Max={hvs[max_idx]:.4f}", + text=f"{_t('opt_label_max', lang)}={hvs[max_idx]:.4f}", showarrow=True, arrowhead=2, arrowcolor=_PALETTE['primary'], font=dict(color=_PALETTE['primary'], size=10), row=1, col=1, @@ -655,43 +757,46 @@ def _build_hypervolume_figure(history: List[dict]) -> go.Figure: fig.add_trace(go.Bar( x=gens, y=feasible_counts, marker=dict(color=_PALETTE['success'], opacity=0.7), - name='Factíveis', - hovertemplate="Gen=%{x}
Factíveis=%{y}", + name=_t("opt_label_feasible_plural", lang), + hovertemplate=("Gen=%{x}
" + f"{_t('opt_label_feasible_plural', lang)}=" + "%{y}"), ), row=1, col=2) - fig.update_xaxes(title_text='Geração', row=1, col=1) - fig.update_xaxes(title_text='Geração', row=1, col=2) - fig.update_yaxes(title_text='Hypervolume', row=1, col=1) - fig.update_yaxes(title_text='N° Factíveis', row=1, col=2) + fig.update_xaxes(title_text=_t("opt_axis_generation", lang), row=1, col=1) + fig.update_xaxes(title_text=_t("opt_axis_generation", lang), row=1, col=2) + fig.update_yaxes(title_text=_t("opt_fig_hypervolume_y", lang), row=1, col=1) + fig.update_yaxes(title_text=_t("opt_axis_n_feasible", lang), row=1, col=2) fig.update_layout( - title=dict(text='Métricas de Convergência NSGA-II', - font=dict(color=_PALETTE['primary'], size=15), x=0.5), + title=dict(text=_t("opt_fig_convergence_metrics_title", lang), + font=dict(color=_PALETTE['primary'], size=15), + x=0.5, xanchor='center', y=0.97, yanchor='top'), template='plotly_white', - margin=dict(t=60, b=40, l=55, r=30), - height=380, + margin=dict(t=65, b=45, l=55, r=30), + autosize=True, showlegend=False, ) return fig -def _build_decision_space_figure(df: pd.DataFrame) -> go.Figure: +def _build_decision_space_figure(df: pd.DataFrame, lang: str = DEFAULT_LANG) -> go.Figure: """ Espaço de decisão: scatter matrix das 4 variáveis de decisão mais influentes, colorido por X (%). """ + title_fallback = _t("opt_fig_decision_title", lang) if df.empty or len(df) < 3: - return _empty_figure("Precisa de >= 3 solucoes para espaço de decisão.", - "Espaço de Decisão") + return _empty_figure(_t("msg_need_3_decision", lang), title_fallback) key_vars = { - 'vazao_feed': 'Vazão (m³/s)', - 'T_obs (K)': 'T_obs (K)', - 'valve_pos': 'Válvula', - 'w_j': 'w_j (m³/s)', + 'vazao_feed': _t("feat_flow", lang) + ' (m³/s)', + 'T_obs (K)': _t("feat_tobs", lang) + ' (K)', + 'valve_pos': _t("feat_valve", lang), + 'w_j': _t("feat_wj", lang) + ' (m³/s)', } avail = {k: v for k, v in key_vars.items() if k in df.columns} if len(avail) < 2: - return _empty_figure("Colunas de decisão insuficientes.", "Espaço de Decisão") + return _empty_figure(_t("msg_decision_cols_insufficient", lang), title_fallback) cols = list(avail.keys()) dims = [dict(label=avail[c], values=df[c]) for c in cols] @@ -703,17 +808,18 @@ def _build_decision_space_figure(df: pd.DataFrame) -> go.Figure: color=df['X (%)'], colorscale='Viridis', showscale=True, - colorbar=dict(title='X (%)', thickness=12, len=0.5), + colorbar=dict(title=_t("short_x_pct", lang), thickness=12, len=0.5), size=5, opacity=0.8, line=dict(color='white', width=0.5), ), )) fig.update_layout( - title=dict(text='Espaço de Decisão — Variáveis vs X (%)', - font=dict(color=_PALETTE['primary'], size=15), x=0.5), + title=dict(text=_t("opt_fig_decision_vs_x_title", lang), + font=dict(color=_PALETTE['primary'], size=15), + x=0.5, xanchor='center', y=0.98, yanchor='top'), template='plotly_white', - margin=dict(t=60, b=40, l=60, r=30), - height=460, + margin=dict(t=65, b=45, l=65, r=35), + autosize=True, ) return fig @@ -785,6 +891,7 @@ def run_cstr_optimization( crossover_prob=0.9, mutation_prob=0.1, xl_override=None, xu_override=None, progress_callback=None, + lang: str = DEFAULT_LANG, ) -> Tuple[pd.DataFrame, dict, dict]: """ Executa NSGA-II e retorna (df_factiveis, figs_dict, metrics_dict). @@ -903,19 +1010,50 @@ def pymoo_callback(algorithm): } figs = { - 'pareto': _build_pareto_figure(df, constraints_ref), - 'parcoords': _build_parcoords_figure(df), - 'scatter3d': _build_3d_figure(df), - 'convergence': _build_convergence_figure(history), - 'heatmap': _build_heatmap_figure(df), - 'violin': _build_violin_figure(df), + 'pareto': _build_pareto_figure(df, constraints_ref, lang=lang), + 'parcoords': _build_parcoords_figure(df, lang=lang), + 'scatter3d': _build_3d_figure(df, lang=lang), + 'convergence': _build_convergence_figure(history, lang=lang), + 'heatmap': _build_heatmap_figure(df, lang=lang), + 'violin': _build_violin_figure(df, lang=lang), # NOVOS - 'topsis': _build_topsis_figure(df), - 'clusters': _build_cluster_figure(df), - 'hypervolume': _build_hypervolume_figure(history), - 'decision_space': _build_decision_space_figure(df), + 'topsis': _build_topsis_figure(df, lang=lang), + 'clusters': _build_cluster_figure(df, lang=lang), + 'hypervolume': _build_hypervolume_figure(history, lang=lang), + 'decision_space': _build_decision_space_figure(df, lang=lang), } metrics = _compute_quality_metrics(df, history, elapsed) + # Propaga histórico separadamente — permite reconstrução dos gráficos + # quando o idioma muda (sem re-executar o NSGA-II). + metrics['history'] = history + metrics['constraints'] = constraints_ref return df, figs, metrics + + +# ══════════════════════════════════════════════════════════════════════ +# REBUILD DE FIGURAS (usado quando só muda o idioma da UI) +# ══════════════════════════════════════════════════════════════════════ +def rebuild_optimization_figs(df: pd.DataFrame, + history: list, + constraints: dict = None, + lang: str = DEFAULT_LANG) -> dict: + """ + Re-renderiza o dicionário de figuras aplicando o idioma ``lang``. + + É barato (não há chamadas ao modelo NSGA-II): apenas reconstrói + ``go.Figure`` a partir dos dados já armazenados. + """ + return { + 'pareto': _build_pareto_figure(df, constraints, lang=lang), + 'parcoords': _build_parcoords_figure(df, lang=lang), + 'scatter3d': _build_3d_figure(df, lang=lang), + 'convergence': _build_convergence_figure(history or [], lang=lang), + 'heatmap': _build_heatmap_figure(df, lang=lang), + 'violin': _build_violin_figure(df, lang=lang), + 'topsis': _build_topsis_figure(df, lang=lang), + 'clusters': _build_cluster_figure(df, lang=lang), + 'hypervolume': _build_hypervolume_figure(history or [], lang=lang), + 'decision_space': _build_decision_space_figure(df, lang=lang), + } diff --git a/CSTRChemIA/optimization/decision_methods.py b/CSTRChemIA/optimization/decision_methods.py new file mode 100644 index 0000000..2c1fd55 --- /dev/null +++ b/CSTRChemIA/optimization/decision_methods.py @@ -0,0 +1,324 @@ +""" +Métodos de decisão multi-critério (MCDM) sobre a frente de Pareto. + +Limitação do TOPSIS puro +------------------------ +O código atual usa apenas TOPSIS para selecionar a "melhor" solução da +frente — e é conhecido que TOPSIS pode sofrer de *rank reversal* (adicionar +uma solução muda a ordem das demais). Para análise robusta de trade-offs, +oferecemos quatro métodos complementares que, juntos, formam um +*consenso*: + +1. **TOPSIS** — distância ao ideal positivo/negativo. Intuitivo. +2. **VIKOR** — ranking de compromisso entre utilidade agregada S e + pesadelo R (regret máximo). Bom quando o decisor quer minimizar + o "pior" critério. +3. **PROMETHEE II** — fluxo líquido de preferência pairwise. Mais + resistente a rank reversal que TOPSIS. +4. **Knee-point** — sem pesos. O ponto da frente com o maior ganho + marginal em todos os critérios simultaneamente (joelho visual + clássico em frentes 2D/3D). + +Interface comum +--------------- +Todas as funções recebem ``F`` shape ``(n, k)`` com ``n`` soluções e +``k`` critérios, ``minimize`` (bool por critério) e, opcionalmente, +``weights``. Retornam ``(scores, best_idx)`` onde scores maiores = +melhores. Você pode chamar as 4 e comparar as escolhas. + +Exemplo +------- +:: + + from optimization.decision_methods import ( + topsis, vikor, promethee_ii, knee_point, consensus_ranking + ) + + F = pareto_objectives # (n, k) + minimize = [False, True, False] # max, min, max + w = [0.5, 0.3, 0.2] + + s_topsis, i_topsis = topsis(F, minimize, weights=w) + s_vikor, i_vikor = vikor(F, minimize, weights=w) + s_prom, i_prom = promethee_ii(F, minimize, weights=w) + i_knee = knee_point(F, minimize) + + # Consenso: índice que aparece no top-3 de mais métodos + consensus = consensus_ranking([s_topsis, s_vikor, s_prom], top_k=3) +""" + +from __future__ import annotations + +from collections.abc import Sequence +from dataclasses import dataclass + +import numpy as np + +_EPS = 1e-12 + + +# ══════════════════════════════════════════════════════════════════════════════ +# HELPERS +# ══════════════════════════════════════════════════════════════════════════════ +def _validate_inputs( + F: np.ndarray, + minimize: Sequence[bool], + weights: Sequence[float] | None, +) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + """Normaliza F/weights e devolve arrays prontos para uso.""" + F = np.asarray(F, dtype=np.float64) + if F.ndim != 2: + raise ValueError(f"F deve ser 2D (n, k); recebeu shape {F.shape}") + n, k = F.shape + if len(minimize) != k: + raise ValueError( + f"minimize deve ter {k} elementos (um por critério), " + f"recebeu {len(minimize)}" + ) + minimize_arr = np.array(list(minimize), dtype=bool) + if weights is None: + w = np.full(k, 1.0 / k, dtype=np.float64) + else: + w = np.asarray(list(weights), dtype=np.float64) + if w.shape != (k,): + raise ValueError(f"weights deve ter shape ({k},); recebeu {w.shape}") + if (w < 0).any(): + raise ValueError("weights não podem ser negativos") + s = w.sum() + if s <= 0: + raise ValueError("sum(weights) deve ser > 0") + w = w / s + return F, minimize_arr, w + + +def _to_benefit(F: np.ndarray, minimize: np.ndarray) -> np.ndarray: + """Converte critérios 'min' em 'max' multiplicando por −1.""" + out = F.copy() + out[:, minimize] = -out[:, minimize] + return out + + +def _normalize_vector(F_benefit: np.ndarray) -> np.ndarray: + """Normalização vectorial (usada por TOPSIS) — divide cada coluna pelo L2.""" + norms = np.sqrt((F_benefit ** 2).sum(axis=0)) + _EPS + return F_benefit / norms + + +# ══════════════════════════════════════════════════════════════════════════════ +# TOPSIS +# ══════════════════════════════════════════════════════════════════════════════ +def topsis( + F: np.ndarray, + minimize: Sequence[bool], + weights: Sequence[float] | None = None, +) -> tuple[np.ndarray, int]: + """ + Technique for Order Preference by Similarity to Ideal Solution. + + Retorna ``(scores, best_idx)`` com scores em ``[0, 1]``. + """ + F, minimize_arr, w = _validate_inputs(F, minimize, weights) + Fb = _to_benefit(F, minimize_arr) + Fn = _normalize_vector(Fb) + Fw = Fn * w[np.newaxis, :] + + ideal_pos = Fw.max(axis=0) + ideal_neg = Fw.min(axis=0) + d_pos = np.sqrt(((Fw - ideal_pos) ** 2).sum(axis=1)) + d_neg = np.sqrt(((Fw - ideal_neg) ** 2).sum(axis=1)) + scores = d_neg / (d_pos + d_neg + _EPS) + return scores, int(np.argmax(scores)) + + +# ══════════════════════════════════════════════════════════════════════════════ +# VIKOR +# ══════════════════════════════════════════════════════════════════════════════ +def vikor( + F: np.ndarray, + minimize: Sequence[bool], + weights: Sequence[float] | None = None, + v: float = 0.5, +) -> tuple[np.ndarray, int]: + """ + VIKOR (VIseKriterijumska Optimizacija I Kompromisno Resenje). + + Retorna ``(Q_neg, best_idx)`` onde ``Q`` é a métrica de compromisso + de VIKOR (menor = melhor). Devolvemos ``-Q`` como score para manter + convenção "maior=melhor" compartilhada com TOPSIS. + + Parameters + ---------- + v + Peso da estratégia de "maioria" (utilidade agregada S). + ``v > 0.5`` privilegia maioria; ``v < 0.5`` privilegia pior-caso (R). + Default 0.5 (balanceado). + """ + if not 0.0 <= v <= 1.0: + raise ValueError(f"v deve estar em [0,1]; recebeu {v}") + F, minimize_arr, w = _validate_inputs(F, minimize, weights) + Fb = _to_benefit(F, minimize_arr) + + f_star = Fb.max(axis=0) + f_minus = Fb.min(axis=0) + denom = (f_star - f_minus) + _EPS + # Distância normalizada ao ideal positivo por critério (em [0,1]) + D = (f_star[np.newaxis, :] - Fb) / denom[np.newaxis, :] + D_w = D * w[np.newaxis, :] + + S = D_w.sum(axis=1) # utilidade agregada + R = D_w.max(axis=1) # pior regret + S_star, S_minus = S.min(), S.max() + R_star, R_minus = R.min(), R.max() + + Q = ( + v * (S - S_star) / (S_minus - S_star + _EPS) + + (1 - v) * (R - R_star) / (R_minus - R_star + _EPS) + ) + return -Q, int(np.argmin(Q)) + + +# ══════════════════════════════════════════════════════════════════════════════ +# PROMETHEE II +# ══════════════════════════════════════════════════════════════════════════════ +def promethee_ii( + F: np.ndarray, + minimize: Sequence[bool], + weights: Sequence[float] | None = None, + preference: str = "linear", +) -> tuple[np.ndarray, int]: + """ + PROMETHEE II — fluxo líquido de preferência pairwise. + + Para cada par (i, j) e critério c, calcula ``P_c(d) = preferência`` + a partir da diferença ``d = F_ic - F_jc`` (já convertido para benefit). + O *usual criterion* (stepwise) é comum, mas aqui usamos a função + ``"linear"`` por padrão (d/d_max, clamp em [0,1]) que é mais suave e + evita empates. + + Retorna ``(phi_net, best_idx)`` onde ``phi_net ∈ [-1, 1]``. + """ + F, minimize_arr, w = _validate_inputs(F, minimize, weights) + Fb = _to_benefit(F, minimize_arr) + n = Fb.shape[0] + if n < 2: + return np.zeros(n), 0 + + # Escala para [0,1] por critério para tornar "linear" interpretável. + col_min = Fb.min(axis=0) + col_max = Fb.max(axis=0) + rng = (col_max - col_min) + _EPS + Fs = (Fb - col_min) / rng # (n, k) em [0,1] + + # Diferenças pairwise: D[i, j, c] = Fs[i, c] - Fs[j, c] + D = Fs[:, np.newaxis, :] - Fs[np.newaxis, :, :] # (n, n, k) + + if preference == "linear": + # Preferência = d se d > 0, senão 0 (já normalizado → P ∈ [0, 1]) + P = np.clip(D, 0.0, 1.0) + elif preference == "usual": + P = (D > _EPS).astype(np.float64) + else: + raise ValueError(f"preference '{preference}' não suportada") + + # Soma ponderada por critério → Π[i, j] = preferência agregada de i sobre j + Pi = np.tensordot(P, w, axes=([2], [0])) # (n, n) + np.fill_diagonal(Pi, 0.0) + + phi_plus = Pi.sum(axis=1) / (n - 1) # positive flow + phi_minus = Pi.sum(axis=0) / (n - 1) # negative flow + phi_net = phi_plus - phi_minus # ∈ [-1, 1] + + return phi_net, int(np.argmax(phi_net)) + + +# ══════════════════════════════════════════════════════════════════════════════ +# KNEE POINT +# ══════════════════════════════════════════════════════════════════════════════ +def knee_point(F: np.ndarray, minimize: Sequence[bool]) -> int: + """ + Detecta o "joelho" da frente — sem pesos. + + Método canônico: normaliza a frente em ``[0,1]^k`` (com todos os + critérios em benefit-form), e escolhe o ponto que maximiza a soma + normalizada ``Σ Fs[i]``. Em 2D isso coincide geometricamente com + o ponto mais afastado da reta que liga os *anchor points* (pontos + que maximizam um critério individualmente) — o joelho clássico. + + Equivalência em dimensão qualquer: anchors (cada um com um "1" e + o resto "0") definem um hiperplano cuja normal é ``(1,…,1)/√k`` e + passa por ``Σx = 1``. Distância ortogonal de um ponto ``p`` a esse + hiperplano é ``|Σp − 1|/√k``. Para pontos não-dominados por + anchor (Σp ≥ 1) isso é monótono em ``Σp`` → ``argmax(Σ Fs)`` basta. + + Fallback: se a frente tem < 2 pontos, retorna 0. + """ + F, minimize_arr, _ = _validate_inputs(F, minimize, None) + Fb = _to_benefit(F, minimize_arr) + + col_min = Fb.min(axis=0) + col_max = Fb.max(axis=0) + rng = (col_max - col_min) + _EPS + Fs = (Fb - col_min) / rng # (n, k) em [0,1], maior=melhor + + if Fs.shape[0] < 2: + return 0 + # Em anchors puros (1 em uma dim, 0 no resto), Σ Fs_anchor == 1; + # interior: Σ Fs > 1. Argmax escolhe o ponto mais longe do hiperplano + # de anchors, na direção da utopia. + return int(np.argmax(Fs.sum(axis=1))) + + +# ══════════════════════════════════════════════════════════════════════════════ +# CONSENSO +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(frozen=True, slots=True) +class ConsensusResult: + """Resultado de :func:`consensus_ranking`.""" + consensus_idx: int + top_k_counts: dict[int, int] # idx → quantos métodos o colocaram no top-k + + +def consensus_ranking( + score_lists: list[np.ndarray], + *, + top_k: int = 3, +) -> ConsensusResult: + """ + Consenso sobre várias listas de scores (TOPSIS + VIKOR + PROMETHEE II...). + + Para cada método, pega os ``top_k`` índices (maior score). O índice + que aparecer no top-k de mais métodos é declarado vencedor do consenso. + Em empate, desempata pelo maior score-soma normalizado. + """ + if not score_lists: + raise ValueError("score_lists vazio") + n = len(score_lists[0]) + for s in score_lists: + if len(s) != n: + raise ValueError( + "Todas as listas de scores devem ter o mesmo tamanho" + ) + + votes: dict[int, int] = {} + for s in score_lists: + top = np.argsort(s)[::-1][:top_k] + for idx in top: + votes[int(idx)] = votes.get(int(idx), 0) + 1 + + if not votes: + return ConsensusResult(consensus_idx=0, top_k_counts={}) + + max_votes = max(votes.values()) + tied = [i for i, v in votes.items() if v == max_votes] + if len(tied) == 1: + return ConsensusResult(consensus_idx=tied[0], top_k_counts=votes) + + # Desempate: soma normalizada dos scores nas listas originais. + def _norm(s: np.ndarray) -> np.ndarray: + lo, hi = s.min(), s.max() + return (s - lo) / (hi - lo + _EPS) + + normed = np.stack([_norm(s) for s in score_lists], axis=0) # (m, n) + agg = normed.sum(axis=0) + best = max(tied, key=lambda i: agg[i]) + return ConsensusResult(consensus_idx=int(best), top_k_counts=votes) diff --git a/CSTRChemIA/optimization/problem_v2.py b/CSTRChemIA/optimization/problem_v2.py new file mode 100644 index 0000000..9d2e961 --- /dev/null +++ b/CSTRChemIA/optimization/problem_v2.py @@ -0,0 +1,323 @@ +""" +Problema de otimização v2 — refatoração state-of-the-art. + +O que muda em relação ao :mod:`optimization.CSTR_Optimization_Problem` +--------------------------------------------------------------------- +1. **Restrições explícitas** (``n_ieq_constr``) em vez de penalidade + ``1e6`` misturada no objetivo. Penalty-soup tem 3 problemas: + + * Embaralha a escala dos objetivos — o ranking do NSGA-II fica + dominado por ``penalty`` em vez de pela compensação real entre + critérios. + * Não permite ``constraint tolerance`` nativo do pymoo (``ConstraintsAsPenalty`` + é um wrapper que o pymoo já oferece, mas o usuário não sabe disso). + * Impossibilita o uso de MOEAs baseados em handling de constraints + (R-NSGA-II, C-NSGA-II, etc.). + +2. **Escolha do algoritmo**: NSGA-II (default) ou NSGA-III (melhor + quando ``n_obj > 3``). NSGA-III usa direções de referência + distribuídas uniformemente no simplex — aproxima a frente de Pareto + de forma muito mais uniforme que NSGA-II crowding distance. + +3. **Avaliação em lote via predict vetorizado** (mesma do v1) + + *opcional* paralelização por joblib para populações muito grandes. + Para o CSTR com ~100 pop × 100 gen, a paralelização por amostra não + compensa o overhead (predict já vetoriza); mantemos vetorização. + +4. **Reprodutibilidade**: log do seed efetivo + SHA-256 do artefato + ``.keras`` usado, anexado ao resultado — assim relatórios de + otimização são auditáveis. + +5. **Saídas estruturadas**: retorna :class:`core.types.OptimizationResult` + em vez de tupla ``(df, figs, metrics)``. A UI pode converter via + adaptador (mantém backward-compat). + +Uso +--- +:: + + from optimization.problem_v2 import ( + CSTRProblemV2, OptimizationConfigV2, run_v2, + ) + + cfg = OptimizationConfigV2( + model_type="MLP", + T_max=365.0, X_min=0.30, cat_min=0.9995, + fouling_max=0.025, cp0_min=10.0, + pop_size=100, n_gen=100, seed=42, + algorithm="NSGA-III", + ) + result = run_v2(cfg) + print(result.extra["seed"], result.extra["model_sha256"]) +""" + +from __future__ import annotations + +import time +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any + +import numpy as np + +# Patch do pymoo (mesmo do v1) aplicado em tempo de importação +try: + import pymoo.util.function_loader as _pfl + + _orig_fl_init = _pfl.FunctionLoader.__init__ + + def _safe_fl_init(self): + try: + _orig_fl_init(self) + except Exception: + self.is_compiled = False + + _pfl.FunctionLoader.__init__ = _safe_fl_init + del _safe_fl_init +except Exception: # noqa: BLE001 + pass + +from pymoo.core.problem import Problem +from pymoo.algorithms.moo.nsga2 import NSGA2 +from pymoo.operators.sampling.rnd import FloatRandomSampling +from pymoo.operators.crossover.sbx import SBX +from pymoo.operators.mutation.pm import PM +from pymoo.optimize import minimize as _pymoo_minimize + +from core.logging import get_logger +from core.safe_serialization import file_sha256 +from core.types import OptimizationConfig, OptimizationResult +from surrogate_model.KerasPredict import PredictValues, TARGET_COLS + +log = get_logger(__name__) + +_IDX = {col: i for i, col in enumerate(TARGET_COLS)} + +# Mesmas 8 variáveis de decisão do v1 + 4 flags travadas em "normal" +VAR_NAMES_V2 = ( + "vazao_feed", "CA0_feed", "CB0_feed", "Tf_feed", + "T_amb_feed", "T_obs", "valve_pos", "w_j", +) +FLAGS_NORMAL = np.array([0.0, 0.0, 0.0, 0.0]) + + +# ══════════════════════════════════════════════════════════════════════════════ +# CONFIG +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(frozen=True, slots=True) +class OptimizationConfigV2: + """Configuração de uma corrida v2 (NSGA-II ou NSGA-III).""" + + # Limites físicos + T_max: float = 365.0 + X_min: float = 0.30 + cat_min: float = 0.9995 + fouling_max: float = 0.025 + cp0_min: float = 0.0 + + # Modelo + model_type: str = "MLP" + + # Bounds das variáveis (se None usa defaults do v1) + xl: np.ndarray | None = None + xu: np.ndarray | None = None + + # Hyperparams do algoritmo + algorithm: str = "NSGA-II" # "NSGA-II" | "NSGA-III" + pop_size: int = 100 + n_gen: int = 100 + seed: int = 42 + crossover_prob: float = 0.9 + mutation_prob: float = 0.1 + + # Apenas para NSGA-III: número de partições no simplex de ref. dirs + ref_dirs_partitions: int = 12 + + +# ══════════════════════════════════════════════════════════════════════════════ +# PROBLEMA COM RESTRIÇÕES EXPLÍCITAS +# ══════════════════════════════════════════════════════════════════════════════ +class CSTRProblemV2(Problem): + """ + Dois objetivos (``-X``, ``fouling``) com 5 restrições de desigualdade + explícitas (``g <= 0`` na convenção do pymoo): + + 0. ``g0 = T0 - T_max`` (temperatura teto) + 1. ``g1 = X_min - X`` (conversão piso) + 2. ``g2 = cat_min - cat`` (atividade piso) + 3. ``g3 = fouling - fouling_max`` (fouling teto) + 4. ``g4 = cp0_min - CP0`` (produção piso) + + Todas em escala absoluta da variável (não normalizadas) para manter a + interpretação física. O pymoo faz a normalização internamente quando + usa CV (constraint violation). + """ + + def __init__(self, cfg: OptimizationConfigV2): + self.cfg = cfg + xl = cfg.xl.copy() if cfg.xl is not None else _default_xl() + xu = cfg.xu.copy() if cfg.xu is not None else _default_xu() + super().__init__( + n_var=8, n_obj=2, n_ieq_constr=5, xl=xl, xu=xu, + ) + + def _evaluate(self, X_pop: np.ndarray, out: dict, *args, **kwargs) -> None: + n = X_pop.shape[0] + # Predição vetorizada (já processa batch) + feats = np.hstack([X_pop, np.tile(FLAGS_NORMAL, (n, 1))]).astype(float) + try: + preds = PredictValues(feats, model_type=self.cfg.model_type, Tensor=True) + except Exception as e: # noqa: BLE001 + log.error("Predict falhou no lote de tamanho %d: %s", n, e) + # Fallback: marca tudo como inviável pesadamente + out["F"] = np.full((n, 2), 1e9) + out["G"] = np.full((n, 5), 1e9) + return + + X_conv = preds[:, _IDX["X"]] + T0 = preds[:, _IDX["T0"]] + fouling = preds[:, _IDX["fouling_thickness"]] + cat_act = preds[:, _IDX["cat_activity"]] + CP0 = preds[:, _IDX["CP0"]] + + f1 = -X_conv + f2 = fouling + + # Restrições g ≤ 0 (pymoo convenção). Valores positivos = violação. + g = np.column_stack([ + T0 - self.cfg.T_max, + self.cfg.X_min - X_conv, + self.cfg.cat_min - cat_act, + fouling - self.cfg.fouling_max, + self.cfg.cp0_min - CP0, + ]) + + # Para linhas com NaN na predição, marca como violação grande. + bad_rows = ~np.isfinite(preds).all(axis=1) + if bad_rows.any(): + f1[bad_rows] = 1e9 + f2[bad_rows] = 1e9 + g[bad_rows] = 1e9 + + out["F"] = np.column_stack([f1, f2]) + out["G"] = g + + +# ══════════════════════════════════════════════════════════════════════════════ +# EXECUTOR +# ══════════════════════════════════════════════════════════════════════════════ +def run_v2(cfg: OptimizationConfigV2) -> OptimizationResult: + """Executa a otimização v2 e retorna :class:`OptimizationResult`.""" + t_start = time.time() + + problem = CSTRProblemV2(cfg) + algorithm = _make_algorithm(cfg) + + log.info( + "NSGA run v2: algo=%s pop=%d gen=%d seed=%d model=%s", + cfg.algorithm, cfg.pop_size, cfg.n_gen, cfg.seed, cfg.model_type, + ) + res = _pymoo_minimize( + problem, algorithm, ("n_gen", cfg.n_gen), + seed=cfg.seed, verbose=False, + ) + + # Coleta resultados + if res.X is None or len(res.X) == 0: + pareto_X = np.empty((0, 8)) + pareto_F = np.empty((0, 2)) + else: + pareto_X = np.atleast_2d(res.X) + pareto_F = np.atleast_2d(res.F) + + # Hash do artefato .keras para log auditável + model_sha = _safe_model_sha(cfg.model_type) + + extra = { + "algorithm": cfg.algorithm, + "seed": cfg.seed, + "model_type": cfg.model_type, + "model_sha256": model_sha, + "pop_size": cfg.pop_size, + "n_gen": cfg.n_gen, + "n_ieq_constr": 5, + "wall_time_s": time.time() - t_start, + } + + return OptimizationResult( + pareto_features=_with_flags(pareto_X), + pareto_objectives=pareto_F, + hypervolume=None, # calculado separadamente (core.metrics) + topsis_best_idx=None, # decision_methods.topsis() pode ser chamado pelo UI + wall_time_s=extra["wall_time_s"], + config=OptimizationConfig( + model_name=cfg.model_type, + objective_names=["X (%)", "Fouling (m)"], + minimize=[False, True], + bounds={}, # omitido — caller já tem + pop_size=cfg.pop_size, + n_gen=cfg.n_gen, + seed=cfg.seed, + ), + extra=extra, + ) + + +# ══════════════════════════════════════════════════════════════════════════════ +# HELPERS +# ══════════════════════════════════════════════════════════════════════════════ +def _default_xl() -> np.ndarray: + return np.array([0.00050, 1090.0, 925.0, 342.0, 285.0, 324.0, 0.01, 0.00010]) + + +def _default_xu() -> np.ndarray: + return np.array([0.00120, 1310.0, 1085.0, 358.0, 311.0, 365.0, 1.00, 0.00999]) + + +def _make_algorithm(cfg: OptimizationConfigV2): + """Cria NSGA-II ou NSGA-III conforme config.""" + common = dict( + sampling=FloatRandomSampling(), + crossover=SBX(prob=cfg.crossover_prob, eta=15), + mutation=PM(prob=cfg.mutation_prob, eta=20), + eliminate_duplicates=True, + ) + + if cfg.algorithm.upper() == "NSGA-II": + return NSGA2(pop_size=cfg.pop_size, **common) + + if cfg.algorithm.upper() == "NSGA-III": + # NSGA-III precisa de direções de referência no simplex — uniform das + # (Das-Dennis). O pymoo oferece get_reference_directions. + from pymoo.algorithms.moo.nsga3 import NSGA3 + from pymoo.util.ref_dirs import get_reference_directions + + ref_dirs = get_reference_directions( + "das-dennis", n_dim=2, n_partitions=cfg.ref_dirs_partitions, + ) + return NSGA3(pop_size=cfg.pop_size, ref_dirs=ref_dirs, **common) + + raise ValueError(f"algorithm '{cfg.algorithm}' não suportado " + "(use 'NSGA-II' ou 'NSGA-III')") + + +def _with_flags(X: np.ndarray) -> np.ndarray: + """Concatena as 4 flags zero para devolver matriz (n, 12) comparável.""" + if X.size == 0: + return np.empty((0, 12)) + flags = np.tile(FLAGS_NORMAL, (X.shape[0], 1)) + return np.hstack([X, flags]) + + +def _safe_model_sha(model_type: str) -> str | None: + """Best-effort: SHA-256 do arquivo .keras; ``None`` se não encontrado.""" + try: + from core.constants import MODEL_FILENAMES + from core.settings import get_settings + settings = get_settings() + path = Path(settings.models_dir) / MODEL_FILENAMES.get(model_type, "") + if path.exists(): + return file_sha256(path) + except Exception as e: # noqa: BLE001 + log.debug("Falha ao computar SHA do modelo %s: %s", model_type, e) + return None diff --git a/CSTRChemIA/requirements.txt b/CSTRChemIA/requirements.txt index 6883d5d..32db4e4 100644 --- a/CSTRChemIA/requirements.txt +++ b/CSTRChemIA/requirements.txt @@ -19,6 +19,7 @@ pymoo>=0.6.0 # Machine Learning (surrogate - CPU only) tensorflow-cpu>=2.16.1,<2.18 +keras-tuner>=1.4.0 # Pré-processamento scikit-learn diff --git a/CSTRChemIA/services/__init__.py b/CSTRChemIA/services/__init__.py new file mode 100644 index 0000000..a9c09be --- /dev/null +++ b/CSTRChemIA/services/__init__.py @@ -0,0 +1,23 @@ +""" +services — camada de aplicação. + +Os serviços encapsulam lógica de negócio (simular, otimizar, treinar) em +APIs limpas e testáveis, desacopladas de Dash/UI. Callbacks, REST API e +testes consomem serviços em vez de acessar modelos/otimizador diretamente. +""" + +from services.data_file_service import DataFileService, get_data_file_service +from services.model_registry import ModelRegistry, get_model_registry +from services.optimization_service import OptimizationService +from services.simulation_service import SimulationService +from services.training_service import TrainingService + +__all__ = [ + "DataFileService", + "ModelRegistry", + "OptimizationService", + "SimulationService", + "TrainingService", + "get_data_file_service", + "get_model_registry", +] diff --git a/CSTRChemIA/services/data_file_service.py b/CSTRChemIA/services/data_file_service.py new file mode 100644 index 0000000..44e0aee --- /dev/null +++ b/CSTRChemIA/services/data_file_service.py @@ -0,0 +1,514 @@ +""" +Data File Service — descoberta, leitura, remoção e upload de CSVs de dados. + +Encapsula toda a lógica de I/O dos arquivos CSV usados pelos pipelines de +simulação, treino e otimização. Fornece uma API limpa consumida pela aba +Analytics (file manager UI) e testes. + +Fontes descobertas: + • CSTRChemIA/simulation/ (flat — destino de uploads) + • Simulacoes/simulacao_CSTR/sim_*/observations/ (nested — sim padrão) + • Simulacoes/simulacao_CSTR/sim_*/truth/ (estados verdadeiros) + • Simulacoes/simulacao_CSTR/dados_diversos/cenario_*/observations/ + • CSTRChemIA/surrogate_model/training_results.csv (resultados de treino) + +Todas as operações destrutivas (delete / upload overwrite) validam que o +caminho está DENTRO de uma das raízes permitidas (defesa path-traversal). +""" + +from __future__ import annotations + +import base64 +import csv +import glob +import os +import re +import shutil +import time +from dataclasses import dataclass, asdict +from datetime import datetime +from pathlib import Path +from typing import Any, Iterable + +from core.logging import get_logger +from core.settings import get_settings + +log = get_logger(__name__) + + +# ══════════════════════════════════════════════════════════════════════════════ +# CONSTANTES / CLASSIFICAÇÃO +# ══════════════════════════════════════════════════════════════════════════════ + +#: Extensão única suportada (por enquanto). +_CSV_EXT = ".csv" + +#: Padrão aceito em uploads: só features/targets numerados. +_UPLOAD_NAME_RE = re.compile( + r"^dados_treino_(features|targets)_\w[\w\-]*\.csv$", re.IGNORECASE +) + +#: Tipos conhecidos → ícone + classe Bootstrap. +_TYPE_META: dict[str, dict[str, str]] = { + "features": {"icon": "🧪", "color": "primary", "label": "Features"}, + "targets": {"icon": "🎯", "color": "success", "label": "Targets"}, + "complete": {"icon": "📚", "color": "info", "label": "Dados Completos"}, + "observed": {"icon": "👁️", "color": "secondary", "label": "Observados"}, + "truth": {"icon": "🧭", "color": "warning", "label": "Verdade"}, + "training_result": {"icon": "🎓", "color": "dark", "label": "Resultado Treino"}, + "other": {"icon": "📄", "color": "light", "label": "Outros"}, +} + +#: Fontes conhecidas → ícone + classe Bootstrap. +_SOURCE_META: dict[str, dict[str, str]] = { + "simulation_flat": {"icon": "📁", "label": "CSTRChemIA/simulation (flat)"}, + "sim_observations": {"icon": "🔬", "label": "Simulacoes/sim_*/observations"}, + "sim_truth": {"icon": "🧭", "label": "Simulacoes/sim_*/truth"}, + "diversos": {"icon": "🌈", "label": "dados_diversos/cenario_*"}, + "training": {"icon": "📈", "label": "surrogate_model (treinamento)"}, +} + + +# ══════════════════════════════════════════════════════════════════════════════ +# DATACLASSES +# ══════════════════════════════════════════════════════════════════════════════ +@dataclass(frozen=True, slots=True) +class DataFileInfo: + """Metadados de um arquivo de dados descoberto.""" + path: str # caminho absoluto + rel_path: str # caminho relativo à raiz do projeto + filename: str + source: str # chave em _SOURCE_META + source_label: str + kind: str # chave em _TYPE_META + kind_label: str + kind_icon: str + kind_color: str + size_bytes: int + size_human: str + rows: int # n linhas (aprox, sem header) + cols: int # n colunas + modified_iso: str # ISO timestamp da última modificação + modified_human: str # formato amigável BR + + def to_dict(self) -> dict[str, Any]: + return asdict(self) + + +# ══════════════════════════════════════════════════════════════════════════════ +# HELPERS +# ══════════════════════════════════════════════════════════════════════════════ +def _human_size(n: int) -> str: + """1234 → '1.2 KB', 1234567 → '1.2 MB'.""" + units = ["B", "KB", "MB", "GB", "TB"] + size = float(n) + for u in units: + if size < 1024 or u == units[-1]: + return f"{size:.1f} {u}" if u != "B" else f"{int(size)} B" + size /= 1024 + return f"{size:.1f} TB" + + +def _fast_row_count(path: str) -> int: + """Conta linhas (excluindo header) lendo bytes — mais rápido que pandas.""" + try: + with open(path, "rb") as f: + count = sum(1 for _ in f) + return max(0, count - 1) # desconta cabeçalho + except Exception: + return -1 # sinaliza erro sem quebrar UI + + +def _col_count(path: str) -> int: + """Número de colunas a partir da 1ª linha. Retorna -1 em falha.""" + try: + with open(path, "r", encoding="utf-8", errors="replace") as f: + header = f.readline() + if not header: + return 0 + reader = csv.reader([header]) + return len(next(reader)) + except Exception: + return -1 + + +def _classify(filename: str, parent_dir: str) -> str: + """Deduz o ``kind`` a partir do nome e da pasta pai.""" + low = filename.lower() + if low.startswith("dados_treino_features_"): + return "features" + if low.startswith("dados_treino_targets_"): + return "targets" + if low == "dados_completos.csv": + return "complete" + if low == "dados_observados.csv": + return "observed" + if low in ("estados_verdadeiros.csv", "verdadeiro_sem_ruido.csv"): + return "truth" + if low == "training_results.csv": + return "training_result" + # fallback heurístico: se estiver em truth/ é truth + if os.path.basename(parent_dir).lower() == "truth": + return "truth" + return "other" + + +def _within_root(path: str, roots: Iterable[Path]) -> bool: + """True se ``path`` está abaixo de alguma raiz autorizada.""" + try: + abs_path = Path(path).resolve() + except Exception: + return False + for root in roots: + try: + abs_path.relative_to(root.resolve()) + return True + except (ValueError, OSError): + continue + return False + + +# ══════════════════════════════════════════════════════════════════════════════ +# SERVIÇO +# ══════════════════════════════════════════════════════════════════════════════ +class DataFileService: + """ + API limpa para descobrir, ler, excluir e salvar CSVs de dados. + + A aplicação web (Analytics tab) consome apenas este serviço — nenhum + callback do Dash deve manipular o filesystem diretamente. + """ + + def __init__(self) -> None: + self._settings = get_settings() + self._base_dir: Path = self._settings.base_dir + self._sim_dir: Path = self._settings.data_dir + self._models_dir: Path = self._settings.models_dir + # Raiz `Simulacoes/` fica um nível acima de CSTRChemIA/ + self._simulacoes_root: Path = ( + self._base_dir.parent / "Simulacoes" / "simulacao_CSTR" + ) + + # ---------- properties ---------- + @property + def upload_dir(self) -> Path: + """Diretório onde uploads são gravados (`CSTRChemIA/simulation/`).""" + return self._sim_dir + + @property + def allowed_roots(self) -> list[Path]: + """Raízes onde delete/upload são permitidos — defesa path-traversal.""" + return [self._sim_dir, self._simulacoes_root, self._models_dir] + + # ---------- descoberta ---------- + def discover(self) -> list[DataFileInfo]: + """Descobre todos os CSVs de dados conhecidos; ordena por modificação desc.""" + rows: list[DataFileInfo] = [] + + # 1) Flat: CSTRChemIA/simulation/*.csv + for p in sorted(glob.glob(str(self._sim_dir / "*.csv"))): + rows.append(self._build_info(p, source="simulation_flat")) + + # 2) Nested: Simulacoes/simulacao_CSTR/sim_*/observations/*.csv + for p in sorted(glob.glob( + str(self._simulacoes_root / "sim_*" / "observations" / "*.csv")) + ): + rows.append(self._build_info(p, source="sim_observations")) + + # 3) Nested: Simulacoes/simulacao_CSTR/sim_*/truth/*.csv + for p in sorted(glob.glob( + str(self._simulacoes_root / "sim_*" / "truth" / "*.csv")) + ): + rows.append(self._build_info(p, source="sim_truth")) + + # 4) Diversos: dados_diversos/cenario_*/observations/*.csv + for p in sorted(glob.glob( + str(self._simulacoes_root / "dados_diversos" / "cenario_*" + / "observations" / "*.csv")) + ): + rows.append(self._build_info(p, source="diversos")) + + # 5) Training results + tr = self._models_dir / "training_results.csv" + if tr.exists(): + rows.append(self._build_info(str(tr), source="training")) + + # Ordena: mais recentes primeiro + rows.sort(key=lambda r: r.modified_iso, reverse=True) + return rows + + def _build_info(self, path: str, source: str) -> DataFileInfo: + st = os.stat(path) + parent = os.path.dirname(path) + kind = _classify(os.path.basename(path), parent) + type_meta = _TYPE_META.get(kind, _TYPE_META["other"]) + src_meta = _SOURCE_META.get(source, {"icon": "📄", "label": source}) + + try: + rel = os.path.relpath(path, self._base_dir) + except ValueError: + rel = path + + mod = datetime.fromtimestamp(st.st_mtime) + return DataFileInfo( + path=os.path.abspath(path), + rel_path=rel.replace(os.sep, "/"), + filename=os.path.basename(path), + source=source, + source_label=f"{src_meta['icon']} {src_meta['label']}", + kind=kind, + kind_label=type_meta["label"], + kind_icon=type_meta["icon"], + kind_color=type_meta["color"], + size_bytes=st.st_size, + size_human=_human_size(st.st_size), + rows=_fast_row_count(path), + cols=_col_count(path), + modified_iso=mod.isoformat(timespec="seconds"), + modified_human=mod.strftime("%d/%m/%Y %H:%M"), + ) + + # ---------- estatísticas agregadas ---------- + def summary(self, files: list[DataFileInfo] | None = None) -> dict[str, Any]: + """KPIs da coleção de arquivos — útil para painel da UI.""" + files = files if files is not None else self.discover() + total_bytes = sum(f.size_bytes for f in files) + total_rows = sum(max(0, f.rows) for f in files) + + by_kind: dict[str, int] = {} + by_source: dict[str, int] = {} + for f in files: + by_kind[f.kind] = by_kind.get(f.kind, 0) + 1 + by_source[f.source] = by_source.get(f.source, 0) + 1 + + return { + "n_files": len(files), + "total_bytes": total_bytes, + "total_human": _human_size(total_bytes), + "total_rows": total_rows, + "by_kind": by_kind, + "by_source": by_source, + } + + # ---------- leitura ---------- + def read_preview( + self, path: str, n_rows: int = 100 + ) -> tuple[list[dict[str, Any]], list[str], int]: + """ + Lê até ``n_rows`` do CSV para preview. Retorna (records, columns, total). + + Usa pandas para inferência de tipos (datas, floats) — cai para CSV + plano em caso de erro (arquivo corrompido / muito grande). + """ + import pandas as pd + + if not self._is_readable(path): + raise FileNotFoundError(f"Arquivo não encontrado ou fora das raízes: {path}") + + try: + df = pd.read_csv(path, nrows=n_rows) + # total real: usa row count fast (exclui header) — tolerante a falha. + total = _fast_row_count(path) + if total < 0: + total = len(df) + cols = list(df.columns) + records = df.where(pd.notnull(df), None).to_dict(orient="records") + return records, cols, total + except Exception as e: + log.warning("read_preview via pandas falhou para %s: %s", path, e) + # Fallback: CSV cru + records, cols = [], [] + with open(path, "r", encoding="utf-8", errors="replace", newline="") as f: + reader = csv.reader(f) + try: + cols = next(reader) + except StopIteration: + return [], [], 0 + for i, row in enumerate(reader): + if i >= n_rows: + break + records.append( + {c: (v if v != "" else None) for c, v in zip(cols, row)} + ) + return records, cols, _fast_row_count(path) + + # ---------- delete ---------- + def delete(self, path: str) -> dict[str, Any]: + """ + Remove o arquivo — valida que está dentro das raízes permitidas. + + Retorna um dict ``{ok, message, path}`` para consumo direto do callback. + """ + try: + if not path: + return {"ok": False, "message": "Caminho vazio.", "path": path} + + abs_path = os.path.abspath(path) + if not os.path.isfile(abs_path): + return {"ok": False, + "message": f"Arquivo inexistente: {abs_path}", + "path": abs_path} + + if not _within_root(abs_path, self.allowed_roots): + return {"ok": False, + "message": "Operação negada: caminho fora das raízes permitidas.", + "path": abs_path} + + # Recusa extensões fora do whitelist + if not abs_path.lower().endswith(_CSV_EXT): + return {"ok": False, + "message": "Somente arquivos .csv podem ser removidos.", + "path": abs_path} + + os.remove(abs_path) + log.info("Arquivo removido: %s", abs_path) + return {"ok": True, "message": "Arquivo removido com sucesso.", + "path": abs_path} + except Exception as e: # noqa: BLE001 + log.exception("Falha ao remover %s", path) + return {"ok": False, "message": f"Erro ao remover: {e}", "path": path} + + # ---------- upload ---------- + def save_upload( + self, + content_b64: str, + filename: str, + overwrite: bool = False, + ) -> dict[str, Any]: + """ + Salva conteúdo do ``dcc.Upload`` em ``CSTRChemIA/simulation/``. + + ``content_b64`` é a string "data:text/csv;base64,XXXX" devolvida pelo + componente. Valida filename contra o whitelist ``_UPLOAD_NAME_RE``. + + Parameters + ---------- + content_b64: + Conteúdo base64 (com ou sem prefixo ``data:``). + filename: + Nome original do arquivo (sanitizado aqui). + overwrite: + Se ``False`` e o destino existir, auto-sufixa com timestamp. + + Returns + ------- + dict + ``{ok, message, saved_path, new_filename}``. + """ + try: + safe_name = self._sanitize_filename(filename) + if not _UPLOAD_NAME_RE.match(safe_name): + return { + "ok": False, + "message": ( + "Nome inválido. Use o padrão " + "'dados_treino_features_*.csv' ou " + "'dados_treino_targets_*.csv'." + ), + "saved_path": None, + "new_filename": safe_name, + } + + raw = self._decode_b64(content_b64) + if not self._looks_like_csv(raw): + return { + "ok": False, + "message": "Conteúdo não parece ser CSV válido.", + "saved_path": None, + "new_filename": safe_name, + } + + # Garante diretório e resolve colisões + self._sim_dir.mkdir(parents=True, exist_ok=True) + dest = self._sim_dir / safe_name + + if dest.exists() and not overwrite: + stem, ext = os.path.splitext(safe_name) + stamp = time.strftime("%Y%m%d_%H%M%S") + safe_name = f"{stem}__{stamp}{ext}" + dest = self._sim_dir / safe_name + + # Verificação final de raiz — defensiva + if not _within_root(str(dest), [self._sim_dir]): + return {"ok": False, + "message": "Destino inválido (path-traversal bloqueado).", + "saved_path": None, + "new_filename": safe_name} + + # Escrita atômica: grava temporário e renomeia + tmp = dest.with_suffix(dest.suffix + ".tmp") + with open(tmp, "wb") as f: + f.write(raw) + shutil.move(str(tmp), str(dest)) + + log.info("Upload salvo em %s (%d bytes)", dest, len(raw)) + return { + "ok": True, + "message": f"Upload salvo: {safe_name}", + "saved_path": str(dest), + "new_filename": safe_name, + } + except Exception as e: # noqa: BLE001 + log.exception("Falha em save_upload(%s)", filename) + return { + "ok": False, + "message": f"Erro no upload: {e}", + "saved_path": None, + "new_filename": filename, + } + + # ---------- privados ---------- + def _is_readable(self, path: str) -> bool: + abs_path = os.path.abspath(path) + return (os.path.isfile(abs_path) + and _within_root(abs_path, self.allowed_roots)) + + @staticmethod + def _sanitize_filename(name: str) -> str: + # Nome-base: strip path separators e caracteres estranhos. + name = os.path.basename(name.strip()) + # Substitui espaços por underscore — mantém letras/dígitos/_- e . única. + name = re.sub(r"\s+", "_", name) + # Remove caracteres fora do set seguro (Windows + POSIX) + name = re.sub(r"[^\w\-.]+", "", name) + return name + + @staticmethod + def _decode_b64(content: str) -> bytes: + # Aceita "data:*/*;base64,XXXX" ou string pura. + if "," in content and content.lstrip().startswith("data:"): + content = content.split(",", 1)[1] + return base64.b64decode(content, validate=False) + + @staticmethod + def _looks_like_csv(raw: bytes) -> bool: + """Heurística leve — evita aceitar imagens/binários renomeados .csv.""" + if not raw: + return False + sample = raw[:4096] + # Rejeita zeros (binário) + if b"\x00" in sample: + return False + try: + text = sample.decode("utf-8", errors="strict") + except UnicodeDecodeError: + try: + text = sample.decode("latin-1") + except UnicodeDecodeError: + return False + # Pelo menos uma vírgula + uma quebra de linha. + return ("," in text) and ("\n" in text or "\r" in text) + + +# ══════════════════════════════════════════════════════════════════════════════ +# SINGLETON — acesso conveniente a partir de callbacks +# ══════════════════════════════════════════════════════════════════════════════ +_SERVICE: DataFileService | None = None + + +def get_data_file_service() -> DataFileService: + """Retorna (e cria sob demanda) a instância singleton do serviço.""" + global _SERVICE + if _SERVICE is None: + _SERVICE = DataFileService() + return _SERVICE diff --git a/CSTRChemIA/services/model_registry.py b/CSTRChemIA/services/model_registry.py new file mode 100644 index 0000000..75670c4 --- /dev/null +++ b/CSTRChemIA/services/model_registry.py @@ -0,0 +1,232 @@ +""" +Model registry — descoberta, versionamento e metadados dos modelos +surrogate persistidos em ``surrogate_model/``. + +Objetivos: +* Listar modelos disponíveis (arquitetura + arquivos no disco). +* Expor métricas (MAE, RMSE, R²) lidas do manifesto ``models.json`` (preferido) + ou, em fallback, de ``training_results.csv``. +* Verificar integridade SHA-256 dos artefatos quando manifesto presente. +* Cachear a lista com invalidação manual (após treino novo). +""" + +from __future__ import annotations + +import os +import threading +from collections.abc import Iterable +from dataclasses import dataclass +from functools import lru_cache + +import pandas as pd + +from core.constants import ( + MODEL_FILENAMES, + SCALER_X_FILENAME, + SCALER_Y_FILENAME, + SUPPORTED_ARCHITECTURES, +) +from core.logging import get_logger +from core.model_manifest import ModelManifest, read_manifest +from core.settings import get_settings +from core.types import ModelInfo + +log = get_logger(__name__) + + +@dataclass(frozen=True, slots=True) +class _Paths: + model: str + scaler_x: str + scaler_y: str + results: str + + +class ModelRegistry: + """Registry thread-safe de modelos surrogate.""" + + def __init__(self, models_dir: str | os.PathLike | None = None) -> None: + settings = get_settings() + self.models_dir = str(models_dir) if models_dir else str(settings.models_dir) + self._lock = threading.Lock() + + # ---------- paths ---------- + def _paths(self, arch: str) -> _Paths: + filename = MODEL_FILENAMES.get(arch) + if not filename: + raise ValueError(f"Arquitetura desconhecida: {arch}") + return _Paths( + model=os.path.join(self.models_dir, filename), + scaler_x=os.path.join(self.models_dir, SCALER_X_FILENAME), + scaler_y=os.path.join(self.models_dir, SCALER_Y_FILENAME), + results=os.path.join(self.models_dir, "training_results.csv"), + ) + + def model_path(self, arch: str) -> str: + return self._paths(arch).model + + def scaler_paths(self) -> tuple[str, str]: + p = self._paths(SUPPORTED_ARCHITECTURES[0]) + return p.scaler_x, p.scaler_y + + # ---------- discovery ---------- + def available_architectures(self) -> list[str]: + """Retorna arquiteturas com modelo e scalers no disco.""" + with self._lock: + out: list[str] = [] + for arch in SUPPORTED_ARCHITECTURES: + p = self._paths(arch) + if (os.path.exists(p.model) + and os.path.exists(p.scaler_x) + and os.path.exists(p.scaler_y)): + out.append(arch) + return out + + def list_models(self) -> list[ModelInfo]: + """Lista ModelInfo completos com métricas (quando disponíveis). + + Fonte de metadados (em ordem de preferência): + 1. ``models.json`` (manifesto rico: per-target metrics, seed, sha256). + 2. ``training_results.csv`` (métricas globais legadas). + """ + manifests = read_manifest(self.models_dir) + csv_metrics = self._load_metrics() if not manifests else {} + + infos: list[ModelInfo] = [] + for arch in self.available_architectures(): + mani = manifests.get(arch) + if mani is not None: + infos.append(_info_from_manifest(arch, mani, self._paths(arch).model)) + else: + m = csv_metrics.get(arch, {}) + infos.append(ModelInfo( + name=arch, + architecture=arch, + mae=float(m.get("mae", float("nan"))), + rmse=float(m["rmse"]) if "rmse" in m else None, + r2=float(m["r2"]) if "r2" in m else None, + path=self._paths(arch).model, + )) + # Ordena por MAE ascendente (quando definido) + infos.sort(key=lambda x: (x.mae != x.mae, x.mae)) # NaN vai pro fim + return infos + + def get_manifest(self, arch: str) -> ModelManifest | None: + """Manifesto de uma arquitetura específica (ou ``None`` se ausente).""" + return read_manifest(self.models_dir).get(arch) + + def verify_integrity(self, arch: str | None = None) -> dict[str, list[str]]: + """ + Verifica SHA-256 dos artefatos contra o manifesto. + + Returns + ------- + dict[arch, list[erros]] + ``{arch: []}`` significa OK; lista não-vazia lista os problemas. + Arquiteturas sem manifesto retornam ``["sem manifesto"]``. + """ + manifests = read_manifest(self.models_dir) + targets = [arch] if arch else list(self.available_architectures()) + result: dict[str, list[str]] = {} + for a in targets: + mani = manifests.get(a) + if mani is None: + result[a] = ["sem manifesto"] + continue + result[a] = mani.verify_integrity(self.models_dir) + return result + + def best_architecture(self) -> str | None: + infos = self.list_models() + return infos[0].name if infos else None + + def as_dropdown_options(self) -> list[dict[str, str]]: + """Formato pronto para `dcc.Dropdown(options=...)`.""" + return [ + { + "label": ( + f"{info.architecture} (MAE: {info.mae:.6f})" + if info.mae == info.mae else info.architecture + ), + "value": info.architecture, + } + for info in self.list_models() + ] + + # ---------- metrics ---------- + def _load_metrics(self) -> dict[str, dict[str, float]]: + results_file = os.path.join(self.models_dir, "training_results.csv") + if not os.path.exists(results_file): + return {} + try: + df = pd.read_csv(results_file) + except Exception as e: # noqa: BLE001 + log.error("Falha ao ler %s: %s", results_file, e) + return {} + if df.empty or "architecture" not in df.columns: + return {} + # Melhor MAE por arquitetura + idx = df.groupby("architecture")["mae_real"].idxmin() + best = df.loc[idx] + out: dict[str, dict[str, float]] = {} + for _, row in best.iterrows(): + arch = str(row["architecture"]) + entry = {"mae": float(row["mae_real"])} + for col, key in (("rmse_real", "rmse"), ("r2_real", "r2")): + if col in row and pd.notna(row[col]): + entry[key] = float(row[col]) + out[arch] = entry + return out + + # ---------- invalidação ---------- + def invalidate(self) -> None: + """Chame após re-treino para forçar redescoberta.""" + with self._lock: + pass # placeholder para futuro cache interno + + +def _info_from_manifest(arch: str, m: ModelManifest, model_path: str) -> ModelInfo: + """Converte :class:`ModelManifest` em :class:`ModelInfo` para a UI.""" + g = m.global_metrics + mae = float(g.get("mae", float("nan"))) + rmse = float(g["rmse"]) if "rmse" in g else None + r2 = float(g["r2"]) if "r2" in g else None + + per_target_mae = { + t: float(metrics.get("mae", float("nan"))) + for t, metrics in m.per_target_metrics.items() + } or None + + return ModelInfo( + name=arch, + architecture=arch, + mae=mae, + rmse=rmse, + r2=r2, + n_features=m.n_features, + n_targets=m.n_targets, + path=model_path, + manifest=m, + per_target_mae=per_target_mae, + seed=m.seed, + trained_at=m.trained_at, + keras_sha256=m.keras_sha256, + ) + + +@lru_cache(maxsize=1) +def get_model_registry() -> ModelRegistry: + """Singleton do ModelRegistry — usa settings padrão.""" + return ModelRegistry() + + +def list_trained_architectures() -> list[str]: + """Shortcut — compatível com ``get_available_models`` antigo.""" + return get_model_registry().available_architectures() + + +def iter_model_files(models_dir: str | None = None) -> Iterable[str]: + """Itera apenas os arquivos de modelo existentes no diretório.""" + reg = ModelRegistry(models_dir) if models_dir else get_model_registry() + for arch in reg.available_architectures(): + yield reg.model_path(arch) diff --git a/CSTRChemIA/services/optimization_service.py b/CSTRChemIA/services/optimization_service.py new file mode 100644 index 0000000..40b4163 --- /dev/null +++ b/CSTRChemIA/services/optimization_service.py @@ -0,0 +1,155 @@ +""" +Optimization service — fachada limpa sobre ``run_cstr_optimization``. + +Encapsula a chamada ao NSGA-II atrás de uma API tipada e fornece uma +variante assíncrona (roda em thread, retorna handle para progresso). +""" + +from __future__ import annotations + +import threading +import time +import uuid +from collections.abc import Callable +from dataclasses import dataclass, field +from typing import Any + +import numpy as np +import pandas as pd + +from core.exceptions import OptimizationError +from core.logging import get_logger +from core.settings import get_settings + +log = get_logger(__name__) + + +@dataclass +class OptimizationJob: + """Handle de uma otimização rodando em background.""" + job_id: str + status: str = "pending" # pending | running | done | failed + progress_gen: int = 0 + progress_feasible: int = 0 + total_gens: int = 0 + started_at: float = 0.0 + finished_at: float = 0.0 + df: pd.DataFrame | None = None + figs: dict[str, Any] = field(default_factory=dict) + metrics: dict[str, Any] = field(default_factory=dict) + error: str | None = None + + +class OptimizationService: + """Serviço de otimização multiobjetivo (NSGA-II).""" + + def __init__(self) -> None: + self._jobs: dict[str, OptimizationJob] = {} + self._lock = threading.Lock() + self._settings = get_settings() + + # ---------- sync ---------- + def run( + self, + *, + T_max: float = 365.0, + X_min: float = 0.30, + cat_min: float = 0.9995, + fouling_max: float = 0.025, + cp0_min: float = 0.0, + pop_size: int | None = None, + n_gen: int | None = None, + model_type: str = "MLP", + crossover_prob: float = 0.9, + mutation_prob: float = 0.1, + xl_override: np.ndarray | None = None, + xu_override: np.ndarray | None = None, + progress_callback: Callable[[int, int], None] | None = None, + ) -> tuple[pd.DataFrame, dict[str, Any], dict[str, Any]]: + """Executa NSGA-II sincronamente e retorna (df, figs, metrics).""" + # Import tardio para não carregar pymoo/TF no startup. + from optimization.CSTR_Optimization_Problem import run_cstr_optimization + + pop = pop_size or self._settings.default_pop_size + ngen = n_gen or self._settings.default_n_gen + + try: + return run_cstr_optimization( + T_max=T_max, + X_min=X_min, + cat_min=cat_min, + fouling_max=fouling_max, + cp0_min=cp0_min, + pop_size=pop, + n_gen=ngen, + model_type=model_type, + crossover_prob=crossover_prob, + mutation_prob=mutation_prob, + xl_override=xl_override, + xu_override=xu_override, + progress_callback=progress_callback, + ) + except Exception as e: # noqa: BLE001 + log.exception("Falha em run_cstr_optimization") + raise OptimizationError(str(e)) from e + + # ---------- async ---------- + def submit(self, **kwargs: Any) -> str: + """Dispara otimização em thread e retorna o ``job_id``.""" + job = OptimizationJob( + job_id=str(uuid.uuid4()), + total_gens=kwargs.get("n_gen") or self._settings.default_n_gen, + ) + with self._lock: + self._jobs[job.job_id] = job + + def _progress(gen: int, feasible: int) -> None: + job.progress_gen = gen + job.progress_feasible = feasible + + user_cb = kwargs.pop("progress_callback", None) + + def _combined_cb(gen: int, feasible: int) -> None: + _progress(gen, feasible) + if user_cb is not None: + try: + user_cb(gen, feasible) + except Exception: # noqa: BLE001 + log.exception("progress_callback do usuário falhou") + + def _worker() -> None: + job.status = "running" + job.started_at = time.time() + try: + df, figs, metrics = self.run(progress_callback=_combined_cb, **kwargs) + job.df = df + job.figs = figs + job.metrics = metrics + job.status = "done" + except Exception as e: # noqa: BLE001 + job.error = str(e) + job.status = "failed" + log.exception("Optimization job falhou") + finally: + job.finished_at = time.time() + + thread = threading.Thread(target=_worker, daemon=True, + name=f"opt-{job.job_id[:8]}") + thread.start() + return job.job_id + + def get_job(self, job_id: str) -> OptimizationJob | None: + with self._lock: + return self._jobs.get(job_id) + + def list_jobs(self) -> list[OptimizationJob]: + with self._lock: + return list(self._jobs.values()) + + def clear_finished(self) -> int: + with self._lock: + to_drop = [jid for jid, j in self._jobs.items() + if j.status in ("done", "failed")] + for jid in to_drop: + del self._jobs[jid] + return len(to_drop) diff --git a/CSTRChemIA/services/simulation_service.py b/CSTRChemIA/services/simulation_service.py new file mode 100644 index 0000000..8256059 --- /dev/null +++ b/CSTRChemIA/services/simulation_service.py @@ -0,0 +1,84 @@ +""" +Simulation service — fachada sobre o modelo surrogate para predições +unitárias e em lote. Usado por callbacks e (no futuro) REST API. +""" + +from __future__ import annotations + +import time +from typing import Any + +import numpy as np + +from core.constants import DEFAULT_FEATURES, DEFAULT_TARGETS +from core.exceptions import ModelNotFoundError, SimulationError +from core.logging import get_logger +from core.types import SimulationInput, SimulationResult +from core.utils import ensure_feature_array + +log = get_logger(__name__) + + +class SimulationService: + """Wrap de :func:`PredictValues` com tipos e erros consistentes.""" + + def __init__(self) -> None: + # Import tardio para evitar importar TF no startup da UI. + from surrogate_model.KerasPredict import PredictValues as _predict + + self._predict = _predict + + # ---------- single point ---------- + def predict(self, features: np.ndarray | list | tuple, model_name: str) -> np.ndarray: + """Predição 1-ponto. Retorna array shape (N_TARGETS,).""" + X = ensure_feature_array(features) + if X.shape[0] != 1: + raise SimulationError( + f"SimulationService.predict espera 1 ponto, recebeu {X.shape[0]}" + ) + try: + y = self._predict(X, model_type=model_name, Tensor=False) + except FileNotFoundError as e: + raise ModelNotFoundError(str(e)) from e + except ValueError as e: + raise SimulationError(str(e)) from e + return np.asarray(y, dtype=np.float64) + + # ---------- batch ---------- + def predict_batch(self, features: np.ndarray, model_name: str) -> np.ndarray: + """Predição em lote. Retorna shape (N, N_TARGETS).""" + X = ensure_feature_array(features) + try: + y = self._predict(X, model_type=model_name, Tensor=True) + except FileNotFoundError as e: + raise ModelNotFoundError(str(e)) from e + except ValueError as e: + raise SimulationError(str(e)) from e + return np.asarray(y, dtype=np.float64) + + # ---------- structured API ---------- + def simulate(self, inp: SimulationInput) -> SimulationResult: + start = time.perf_counter() + y = self.predict(inp.features, inp.model_name) + return SimulationResult( + targets=y, + model_name=inp.model_name, + wall_time_s=time.perf_counter() - start, + ) + + # ---------- dict helpers ---------- + def predict_named(self, params: dict[str, float], model_name: str) -> dict[str, float]: + """Retorna predição como {target_name: value} a partir de dict de features.""" + missing = [f for f in DEFAULT_FEATURES if f not in params] + if missing: + raise SimulationError(f"Features ausentes: {missing}") + X = np.array([[float(params[f]) for f in DEFAULT_FEATURES]], dtype=np.float64) + y = self.predict(X, model_name) + return {name: float(v) for name, v in zip(DEFAULT_TARGETS, y)} + + # ---------- introspecção ---------- + def describe(self) -> dict[str, Any]: + return { + "features": list(DEFAULT_FEATURES), + "targets": list(DEFAULT_TARGETS), + } diff --git a/CSTRChemIA/services/training_service.py b/CSTRChemIA/services/training_service.py new file mode 100644 index 0000000..45e5acd --- /dev/null +++ b/CSTRChemIA/services/training_service.py @@ -0,0 +1,158 @@ +""" +Training service — orquestra treino do surrogate em subprocess. + +Executa ``python -m training.train_surrogate --arch MLP`` capturando +stdout linha-a-linha via thread para streaming nos callbacks do Dash. +Suporta múltiplos jobs simultâneos com handles de progresso. +""" + +from __future__ import annotations + +import os +import subprocess +import sys +import threading +import time +import uuid +from dataclasses import dataclass, field + +from core.exceptions import TrainingError +from core.logging import get_logger +from core.settings import get_settings +from services.model_registry import get_model_registry + +log = get_logger(__name__) + + +@dataclass +class TrainingJob: + """Handle de um treino em background.""" + job_id: str + architecture: str + status: str = "pending" # pending | running | done | failed | cancelled + returncode: int | None = None + started_at: float = 0.0 + finished_at: float = 0.0 + logs: list[str] = field(default_factory=list) + error: str | None = None + process: subprocess.Popen | None = None + + +class TrainingService: + """Serviço de treinamento de modelos surrogate.""" + + def __init__(self) -> None: + self._jobs: dict[str, TrainingJob] = {} + self._lock = threading.Lock() + self._settings = get_settings() + + # ---------- submit ---------- + def submit(self, architecture: str, extra_args: list[str] | None = None) -> str: + """Dispara treino em subprocess; retorna ``job_id``.""" + if architecture not in {"MLP", "RNN", "CNN"}: + raise TrainingError(f"Arquitetura inválida: {architecture}") + + job = TrainingJob( + job_id=str(uuid.uuid4()), + architecture=architecture, + ) + with self._lock: + self._jobs[job.job_id] = job + + cmd = [ + sys.executable, "-u", + "-m", "training.train_surrogate", + "--arch", architecture, + ] + if extra_args: + cmd.extend(extra_args) + + env = os.environ.copy() + env.setdefault("PYTHONUNBUFFERED", "1") + env.setdefault("TF_CPP_MIN_LOG_LEVEL", "2") + + try: + job.process = subprocess.Popen( + cmd, + cwd=str(self._settings.base_dir), + env=env, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1, + encoding="utf-8", + errors="replace", + ) + except Exception as e: # noqa: BLE001 + job.status = "failed" + job.error = f"Falha ao iniciar subprocess: {e}" + raise TrainingError(job.error) from e + + job.status = "running" + job.started_at = time.time() + + threading.Thread( + target=self._reader_thread, args=(job,), daemon=True, + name=f"train-reader-{job.job_id[:8]}", + ).start() + return job.job_id + + # ---------- reader ---------- + def _reader_thread(self, job: TrainingJob) -> None: + assert job.process is not None + try: + for line in job.process.stdout: # type: ignore[union-attr] + job.logs.append(line.rstrip("\n")) + returncode = job.process.wait() + job.returncode = returncode + job.status = "done" if returncode == 0 else "failed" + if returncode == 0: + # Invalida registry para redescobrir modelos + try: + get_model_registry().invalidate() + except Exception: # noqa: BLE001 + log.exception("Falha ao invalidar registry pós-treino") + except Exception as e: # noqa: BLE001 + job.error = str(e) + job.status = "failed" + log.exception("reader thread do treino falhou") + finally: + job.finished_at = time.time() + + # ---------- control ---------- + def cancel(self, job_id: str) -> bool: + job = self.get_job(job_id) + if job is None or job.process is None: + return False + if job.status != "running": + return False + try: + job.process.terminate() + job.status = "cancelled" + return True + except Exception: # noqa: BLE001 + log.exception("cancel do job %s falhou", job_id) + return False + + # ---------- introspecção ---------- + def get_job(self, job_id: str) -> TrainingJob | None: + with self._lock: + return self._jobs.get(job_id) + + def list_jobs(self) -> list[TrainingJob]: + with self._lock: + return list(self._jobs.values()) + + def tail_logs(self, job_id: str, n: int = 100) -> list[str]: + job = self.get_job(job_id) + if job is None: + return [] + return job.logs[-n:] + + def clear_finished(self) -> int: + with self._lock: + to_drop = [jid for jid, j in self._jobs.items() + if j.status in ("done", "failed", "cancelled")] + for jid in to_drop: + del self._jobs[jid] + return len(to_drop) diff --git a/CSTRChemIA/surrogate_model/CSTR_CNN_Surrogate.keras b/CSTRChemIA/surrogate_model/CSTR_CNN_Surrogate.keras index 78d8ef1da266bf70db42958ce9efc72696af8a2d..99ccd0c7313c3adce9fa6dc9c1f0f59986237a6c 100644 GIT binary patch literal 2288301 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‡Oq#@~L^zv}Cs^_x!qsi)t5(?3SE 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 z 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ΜE!^c5sUl3Z)IRREPp0MIvK0~Cs8YN@* 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 hrDOx4?fWs-rJSO1 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�#} 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%0AEC<8$YsuS^DOn;&N}RF{rM z585KH2N&@@OHgqE|c?Hh6bi|kilKU%uS74TK@MuO!{_^9nwMI zUFd|uk{%KHD~4qGHboHSRfB6yES`7wEk2b}21@mmB(F<^%Dz=Nb8i4S9@d8C4hqse zOWxIgIrtRr+_?oWg=EROhe~k3bRVSena1mz`h=#=zl!&Xc9YW9+hB8M0jW4fQ2LHH zC_{8L-K8FkuKN$*o$j$Hmgmnd5((ovA~RvF$OZVd=WBy3*OfT=3`4TibR2cGhAMS?EQ)e0v(+(W{SUoh>Gds~H*J=r=Ei!gsNc6B)7jc zkwlk>!g`a`m609o@+l#0J-$6k+D(_W1eWJYB!JyW1Z$*>i4WCY{CFONduI_`WJ;e4BN zJPvERpJYhCf}tWYo)`ZR{c>B03>moM@3E<*I988}m={A>qA|O1M>6`dZzVXfa=fI; zZ2DztDRq1G2||zPaGh;_y6TT2T~_Q4UW@B+-WfWesjB zmxA?OE;J_4h+MPgcH7h2sJ==XT=dAnbL<)zwtOe^tGfl-LL(smxeD*8#8mkH><4*X z^btN>eSlg7vKnTJYS7QkGW3Dtf5=As6PaMXgZMQYP;)534|di;|BnJZ@0cp=sa{MD z%&38GBW129R)LCf9s~_9r#mVS(VhFN5bF|5cW{nwd%pm9Y|FW{9&s~MkwhAFdO0;- zyPj_6wU7*dg!`T=(X~Shi2e7I_@8bSvtl=xmU3Rx+?SQ`#ceG~-*^UlwRn;5?{*-a zQ(K^Ld?u)t_LJy?Ptfqoc5-yxR=WC^7|*ng;728*^sn$a`ivH_Jo?bWP}UDFmMBnT z)4fnHK9AUMF2=#zmoej8mjd5{E^L1~hmQFf!_fC%*r2GJUA^E4UE=!!+uIl6xB-?V zU)@O$9`uAib0x@*JZtJ3y$wsXzk;WCMUbM4COT*~OqU`_-mPVT|MqUCF5*t4d)F>* zx6#k2&i=!WeN!UwGP7vDZXccR6G3f*xc+jnE6HTLsC)H6s%@r?C)Yfq2P4v`RN)@@ ze5jn(+^Hm?i+!o>3NeVDH;uYKh$Bx(0zK7ahK^qmr~9xb{jYHm&CLP4S^hIQx}XJl zs$FK|v-FXO`+bXzflXM9d*9E=NJ0XB)>y{!GQJ#^f!F!HMaS&+A)7*LwD{c>Y+th+ z?OeAG$88VC#a9v#e~%IvhbEx(L~k6A8gO>|Y_xlJDI>9lhtI{%CMTY*Y-r}!ZAdQo zh~mcO*}asb0X1W#KVi}U* zCdQ78u#83b26X6UFS4@v%4W>{h41LaBK7&A_`!Q|2;9EEA!Ftr+;ejV7_aC4FDGTu z!e87yAkrP}wUI>86_sp{q%Im1KhEXd!_iUo-3@nBV%W)o5TKHF z)HLr8Dyj^^wgR`&f61@#Ts>D-{c#qKtd&EhUjiF0&-#p?rc@%YZT0x-jb}LQy*KmW zxHqo2`2hcPBW!X;7&iI31-WP>VDYujan{c$OkqO}jK@Rh|0=+eT4$P>hg{^6HspyLN#zA+kWz3XQ;Puq@u_4lzJG#g3oyn^L| z=D}y50&IL?CKPX(u<&yGjW!DhGCEJnF+0-;=XY1($`LC@Qn3(w{|aNJ9S$;cVz`+z zmzTA8`;OU66-XAx?=xOgjEaobVxe^p@Vc9=SX=8S68e@;cE&oY3@Z^ZPMQMme%c|~ z+z_mB{umOfen6V`Y~}ocsrdH&B(U3*3sqNJm|tUhIAmfq;nyo69Y;Fh{p?6`_;(gs zsB{upejQ`_`dS!WmAB~q>P#9}afdiMl^|ugYOE%y$!i$!WGXmj(oV5P|NT7&oPUlI z9rd|9>r`uK)D$JF6`a`zYRl=ueiiOMy%R3!KP0OKrc*~5Kd5pG#c7$jkT&!XIZymT zgJxCuuaYla^xr0uwP7CY*D?I5{?pM0JG zO0C6uS!e0_zar$Od<-f)@q;`Rwx}3EwhP==^U>JjImG=}4@}=~Lp>}wKKi01 zwAwibuP@Grm}}AXbL#BraGN~U5Ys1C;fAQA=ndI(Wh!LrT9d4x$Oe!7wj@h_kX*A7 z=KU4yXYcHI!MttFrMryzQPr$tv}Q1aG%OLoLed|gPUJ1SbgLv z$aLP8o@Uq|zltUmO5%XvHNIzjYCJcmKp81q5l0BJ$V88pNg^q;-pv(3Nc_^zWN0 z(zWRVh_5jv7YrIn@;!Tc|EC7=)h%T#21C$<$Ud@$bAG%bxp-)}1xyvqnR2ym$k~AC z3jS2``Nbg`|J)xfG^|4W+IH0U;1XhXVmj%(eFo+ATqc2Io_Ow;6=?3;3cSHL0o`^K z<|)}s;|&GOvS@G}Cu=Q#l0!*Xn6Y+6l5NUQ9`x$KH$i>c6fqCaPjSR5vySnUxOdmr zNea~R&1O<4lgA9pRS>~X(agH)2o(0mp3KYgf%RWEKw)VcE#vH^dz41NQz~^9_cKo;!mV4 z(*M}*7lz>baXIgI=_R-{^EE(C4!!%5>(O0ZKu$ZqMJ0n;5a41$=y4qg5>-P6r)QH` z(Ysuv?K`?P!;dUEngv!yT4+O#61e7d&`Q;7@X=U_%yrBM{bzqjPE#CYOwC4remA2_ zhSPbc+WdLy-ZAiZmOCmbQsvESDP{SBtRe4(Ir$(qn;zR6kFo`3k(;ld!h}&Uw`1#q zzSZg2;H49teNhqQWTt`Ti8G{fPa2stR3idjlDyAv-lB`QG>ICwdo`Q$1afc^3bhsC zSkL*e=N6ZVf36De{FKo?wJS)mWF2I*{zB*0-NS?XUxLH5qom@64oSFb0M}C7NUPIT z5S4z0lzs0}g}Bc++pGrn?s8?EzJDMEN-JQsN-#4nQBMYZm(bw6Td+wslWvOOC(qAH zvcP_nr+Ed-w#I?OrzrUO&Jnq7diT!j9{cPfc$p=vuH`ui>c&r{r)@`T$HnO}t%>>T7Py>C^z95-eha2{c6YaZP z9@u^t&03sCUk8Y>p;QM+)z_onTrULIrco;LjFQSQyus-@oxw3`^;U#qtwmelR>dI@ zOjd`wCLyRVPsV~l17vi!JH#mILc+5^(z7QXj@(s(Y0?W|FwcMrPpE-QV+hBp=cjjq zrV>-tX}k_ERk*}crir@hR7#?nC=c5bWzQY-mEcYyJL?EMeQi#vgGR{q>34|NyfNrB zE5){>eDwLX1ZWdl#N!DiBcp?oM8!b{+ZFFajwNcyL97PxKPq9`Uh!LGPb`9ad?9qV z_fcl+w2kcEkwvh%N0r)}q(aqj5VG)FLCt*E(7Ssdqv8H@;IaKRO2(JT5i2`7c(?)l zyczo8Y9txF;bEav8BIflrdn*t5aJAnJ#a)I9P)3ThJQ1Q=-%s9SX?w7?GlS2{a>Eo zEi*RJE1zDV>)wv2)YE|51507W86QdJKPk}daiuSxiqN&qnRw`SDlGOthw!8slF+fC z67U;WeNh|iX(5V6^ z8OeZgk`OnDP2v*q+K{N(i#|L( zpR#3>gpa=uKF<)O77l;$tjj}8#mN$)XLTO-tTbopqgei!9(jX*J^a z>jZ~wF=YPF5j-t)0fMDD?DB8tiR#16oD1;<<{P)5A@5e9Rq+~})64-z8d{+}Oah9( zPogQAy5PFG8rM%f3vWud(Gn^SCuEFqrlJyWWqCT<-mw%7mbd_!_`#f3j{vF5rfgj2 zVNe)RYmi)Vo|U&;NmjnJCwy9TaSr8k|IPGJ8*XZH5~Xpp}r$qgDQ&57Kn z!L>220)w>$=EhxufO#eSjcr~e$!r7k7A4avflcN9M1g4)7{X`;1rq&fIQCipr0L6^ zz;CP3EF&t2PT4jVbS%ztKVI#IppCcjRGSkWw_Af%NiCsSPAmDJr9TBQxj+=Bn9J_2g+(QTY%gEj8p+5}HW*#5kflP)qyI%UAfQEGGMX zPSSk&CcHi76)qf6NB?Y<5}Z9zqANWN+z*dnMOn$@!RR<#HB_AxJD$a=P-p1XUk%UJ zoy5Z5tD(4?!jdyCxc~Yo^wXUO^V$O8!Zls~e(+;VpFWyaPB_KR4+$ZKMOjeC1%mI) z6tMl+&+l7*h9obo!WG_5Bz*gQ;T@5p!%}0I1d(DJ_XjbHniGNp!n#xuJvA`-h(--XKf_QF^UeZGWTJu`|%ibsP(^AhrYegi(5qeb(V zuEOme3UGPAiyJFsaxcmy;e#C_^7^bc#AtCO_K_@CyKpSwSO2Q0Z3;rJRfTL|d&z@1 zRpbvgkjR?Pc&cCunL4bJf3PWsydP_V&q+FleFW~;hHT>5Sj|07dxlp%gYb)53RxQ6 zj4#Yr;RruvOb;#L(=XnFsC)IrM@x6qMsV6laQ;2n%H2Sru z2>%lWc&Bic^!04Sv5VqxL(XE-ICwI7T9#F@B5xQqTv|gWU$!8ADM93SoGw+VI7zG@ z3w+79BS}$>h|Kt=Otz%y(WA}7V2!s5be#`JkDJNlij%-_UONZvYLdwDHhD;2^ODS) z?t=LtM$l+Fm2Wqfh1R#NcvWE?_GNit^O3dWMPNPg4-{jX;U>O$>q(-RmXAH(Pm_%F zP8_^p66UoRR80AyOiK@=DAi^Zj(WQjPh9uKn($!GbMxl)RjY&Sr)R|&Yz=pA1o zuLIuqQZPKQl4LXm2|k<>Qnf}*;)I!eWBDN7+^&>_E2WXqy3Odxq~YU$K3$Xfl|L4I z47;PhqD|O6F5z(oZZir&(PJ}Q_3p8w)UG>M-cX6BU!S$BLHU z8A0Pky2#DjPoC?i@~h@X;I=r%3B^@h`>ujC_lDq|6lGYS41-I*#d>ci=IFP&Z0{NhusA2 zAN=y3JSq`$jSC>#*w06f%Y5Md09RIP=lP+yh67MdnCGKUfsQz3{vAxO`Z0ylt*>k1X+gp0#;ii-5 z&CF#?cA=X1>O5>Os6o@QGK`n41FyRl>{fg|3@<$bQt$Jq&$%B^ z&=i5~9k~ME)B<0deI)m62S6^f0`sGO;yzIUNy=BQ*ziL|Jk#2beHlS;#M)?VUcZw} zC{w2A7CO^I*|&(3*FD}SBaB>dQDO?cW@LS442=7!!TNKr;-UfxmL8-EIpN;;JhhyJ zx&_kvBetMMRUru;no7fl$+N(!ccAj(6Q8d3h>Kk!FTSmiE9w#?a>Ii!!-ow6WR|xp zIdaT{<#_HUlMZRncua%5UnVTCH635~JjI>oX0vrE!4Mvkz*0?gvC^;)9b0EG<$@e` z>!vbOvsYuCZ<=VOMGTcONn{%|WnsV3PTpTw%TGwZq5*F{La(Ag<-IjPcZOur8p}q~ zGd&4cf4nR(y^;3KJ_2uszoqi_-c;E{8(vzB1n(p<)zUl#^R2(*#lPFgl3-cd7mxy@ zZ!O~H>Uq#C+bC%4mt?X<=g}nlA@066Qs6*dL6QF@Wb^Lh??eglGW|icHfA45-s%M7 z7jQW5W;l%;IhNgQ-2`Fo_0(nV1(+hRBRvFO{KTI+blL(dnk#XiGppXr{7wtcui`yg zvgHK1C%EBKWDM!0@7tJ1DH>mxh5?=oPfJi6c8NcpzAoCqBW>FzR zpgrONZP!&2tC~H9(^s=-p+*}uI&+o2k-G?{Wd?Mz;ulfI!Bf=Lu>*z!;ozkaFOOEtUj+wn{RWF;5ifu4+B-1Ce6OSE5wbh zO0;;~4|*Y4R-EU54!X63&UUs1%QWdG(_g=X)3sY!+2t;9^Y;;FRjg-!4F6Gw!rxGM zUIbh341tEtBUnq)WibCci#pdCi9Z|x>N)5&$mIC2O7jqUGPnq)OO6N6zgARxsx>Nv ze+IeMIpjabD7bc{1=TMsBBz-@_37UVyH>Z6D{L-&6S!WTyN|&6;Vr1OsT0GZ$59o< zRpq-w_e0@q84^2l7|f_M!_HZw;H9K0#I>Ce?+Fv`(>~;oypNrb`AVC{2TF;ptb@4) zC@l_Xlc5F43&DNiREV5Ssd1xLN zUJa}KHW8(}S223t1iHORll9CN=KZVdU|)YWIUD>A3MM5HxAT7>zWFoUNO%Ggw&r-^ zUIX{*TRyx^YOFYFy#{QX_A{4+JXD&Mi|a>tu^TZ-v|aN9EZUa{W^?Z2kA$#5<~Ul*JS^~QV9B03$tANao7n1 z?7IAi8)2%9eTHAT6?&g(s%$#M>uiF5!3TIgeHGp)K8W*LvY5tUJ#o6zFmRtfOB|^3 zLD<)?koP&0KJ0a63JHVgU+Wy4foXI~*Hl>O+f{!4qB9#)HV^LWWYTFz z%HWQDOU2g5J#Z;>3$OZCo&Nrtz>gWfgG;G3Vn22$z(1+0AX9S;hbC^N>aq=B^UDG5 z?Y#m?|jR7j<+W<$2xKUi&}#x`ZxQ<0W_<>T{`uvar0BtyN}X46%W zL}XCb@e8x4FMz*_&Fp7q0)0L16xrb0O&em5)92DLBvoTjrHf|=o=I%yCU&l7{1!Vp z$V~(3nG9z9<|GT;T}@srlc4*}iurb8(v zZmx$JXC=f_6sEI!Ul$hcm%t)Scd}Qa3?a9s#p*kp=>1_!S^qyTrpGiz+S&rg@~Q?q zZ57E}C)d)vLf;$)~0!6C`{1-Kjvgz^=YoEoQE1VU-*KDQx z$Hy@DMY`--^Gf2pp^Q`xD`C^J1k}Lei*$yvIzC$9#WKyS@w!(uJ8T!n7QbjB?4$?F zzdVi7$v&*hCV@b2|=th}tn?vyle{UQgP|K}rl z)O!QN?kc zUs^F_j(GXEC^Yskp> zOScY@XS2rbVT)b@dTy|#W%bR7!++2R4?6fUY!7{~VLQ_x;kb6>E^s@MMw7=_lTVH} z$*v>)Wa6)0%sSx-=1TGy(GQShP(eOTxhmTJT8u6>Juvs-AL4rYD*erQplnMAX__7l zla^%A0;@a_PuvVY6`JS^iT&`YgNOMGBeCSzNBT2%0{8@OVp(s3I7gcWEUd4wOk&4B zJTl}gw?XO`A8uksSDcX-Jiiyoqp6F*_Ph-_q7+TP2JhhIb_gsDsU|dfPw4yhI-&p2 zK<}I`g*wYPe)>kig?_({Xa@MvsDee5A2tb(Ua5eWyFcL4%#(Eg=PPJF{}{{sI-h;( zxWm^3DUsXylj-4WKjELW8^yS6`YP!YUU&@Pd%+ndX*e@~%av49)Gw^{=UCUT$Kd=p zhlZ~4rqdeT`A@EY>5dJE^2?5Jfx)ZTmZPgk9MTeab?am@>YNdc z{v^%o_n5#PyInM`WiXoDzXn5u&cD)@WwhB{fd+>@rOj2c^zf*AG`&ZcsOV#h!g z#nNBtzc&Wd`py^fP*RVEHs7PI6N(Leb@m z#CBge>z4LI|F4DcU1KS8NVyC-W8UD7*%!cQ2oJ@vM(je(S`w!x4c|XbpuTK6UFckl z%b(l?ZHi2EM*gf94u##7t$PP zVX9iiT8r)Q=*}~0qx6b8|NYKix$F#^4ky9#KXceKrVSsBPw*#|;%H0VFaB`S5s1vw zVaZQ=Xl>AF<`p@t(wI2IEAd9tlrjVS5hh*u=Y#jT3 z534x11zvai(eZZb?6Pi#NVIMilewXa#OfY<>athJtH|*)Z=b{Q#(}WBgVLhWLeIC| zm)@_qK{gD}BZ?O?*o<8YWcXcsX44Tt_y6#qc2A8U$tVm;Z03@&rNT_KP{<28gyXDb zmtlEPHqky{&0MyGu!7H8R5^1F8~MZz*quOT{#l-U9cbmX1!vre%a>6fav>@)h5g>V z2(Qmh5IUYG$*Zpk1WhWaU0X7pkiL?3SFIq^s$wwxYa>7YMk=1$5kew;OyPF<0-WV% z1iA6`73*c=*yKCmXq{&T{(qLz7VWFJWnV1r-anO$ygCSOyQN^`0UNA0GXtCCOx7ka z!WUgFr)L)1959QH`GJo;TCBf5R9>*R|4u-glPy802F_n5=YWy=#Yf?ca*o>{#)PC;{ znwpcyri|Q151PfnV$wuUh1bx~=bCi3)F}FDUl^%QP^*Wwgv|R&pSNlQt_rX-#j>GlphHRsU1Vo;x zFZ`CIz&+7T^7+tB_-f?>wif{o&usw973TmntSR{}#kwW#(c!_?bkiJvnr&iDM+s|| zr^j}PoY+|Lsw#kXx&5Ux4NaJ;f-(8(`~^M*eW$AX^kIK!7GRm8)C9KaKogxL^r^;NwziXiX&T3)4OeB;Py^;!mg~r`fp~m(`YexNq&U!+jg_N=5~;o-$y!6 znh5@vHRSC4mGJ(zs*sD4VYwG5-FcRw`-5HVynZpA;;$|qGy5L5ajF%Iidn(B?|(%X zEGAFB-DPha?!fFXgV+#p4q0TBS@ERd2}Vn{aZb{|D$d226PfmUvUB_>ko_$|(_uTl zf27LZ3X#pZ8W!c$_-@Ahe(Ey%lY%to8Ki9%eBua7FoUP=Fbk*$BrEZ ze3h;f(HW`AugE`1+`DD*-?;ROHPa`8L|P_!_f8kC3{>&qF@vf1`_tr9xG_FUEXKRj zvXMQQMmtvywOss91ze)SME@qOBj@EqN%NFz7@{%)J~Sl}d8Z+q)Xc}|HET3%(yArT zCp;v36<=|O_nMPrQ6~93W-a#Dy(G5B8@Z>un~2NBDDv)GB4;yl3wI;PnUqd8#0&q{ z3#`4HWbz6RGRN{e8ChUXl+%pKlV8udlUeieS4AMHNFTx1-2FtXQ}6M=lePH~&u-zr zqEWQzLl$<1wc^T|1socVCm-A25i2XdiXo|I(5*h7R4RrN^Uq)L$(S(i$%yG#Z+?$o z(=PCtnQX4vC!>4!X0o#iU9%`Oxk+Ea@Ft`=rLj@l-0(N zl!F<3efcA<{e3lW?rB97-8!&MPom;OdmgdzjU-lE>$zQZf4MJ-QqQIl5d*hn;z#PUUt-;or)QG=73V zE}tsoitj~%0~lQV#=~kuKn*_?!qZm*4wh2TjU=P z2jZeZeD@+9KVmRF-VjS-_uqxSt&(D^Hvl#OJHsXk=rrc$(6FdC?)5N5g2 zL*9JJro08m z4x6F4i|^q+d~>4ggcd!pB@$A@Bf-$MgdQ?&r4rufVZ>^6dU}cjE8{xJp;{YiyiQVF z9A8AlOdk(lrXUq2czTCc5z`;SUDf?$tdU6|VLIyU-P{e}dQ@-*oz#YI{a}n)xQ~CE z5DqEdKXZQbcpTN_2NIep;N~ceiy9rtrGa2_B=aJPlYaqce#_F(9XH`(#3{jhuDIKB+S(C;>PMr?C(u+bR z-IqAMN{zHD{;N{WCi7k6E4b~BpRpbZc5K*%&j0jCdPX2`xvPTTZ6r_i z+H6sE(=t5pD3dVpUF^4V!vzUz_)4iz>@)w)&+9GaZ*jV~HAfnxTU7Y#tNn2Ltie#! zF^t-*+=AJ0k@#+5IeB~S7&$TG2GMRy##xplNSMiY9NVu94yNNU^f*uONg8@DJ%dT3 zwP1AeG<^AA3fVGfJQ;a167A1P)5bju@%-k~o&1kHT=iS@wP*?&E{VqOVezDHK^S_kia?l|Aaub)_%~0FW1f&l zF3%ne$?ZX+dZQ(nD!+u6u*u-h{x_782fN6XF*_=@o*K+a+gst`WgVDcJ&nc+Jhd9J zCBACBi8r<4an8+D+*Y7Rb4Q&e+B0_|2^$1ywqH`Z_bRP9=nl{(ctc?fr;eG7Y4vIfv|+7l{{TC*ipX zPcXiulk8t}0q?5XpSqn zQ#`;Vx0ZO{cc=Xe(uhs+Oz<15Nk?7kA}&M5(Xl~a$+3hKSmUDr9`j3yoZ$)BX+0JE zJ_m@@-hQ7MlNkoh2R@R@{$QH8`a1ZGUI7rKHe4Eq5W~luU9a`+~oSkP+AHpr~j+G`IE&nJF2X`0yCa zUDs6+C920^rXsqSC+8$iW#eF(bMfV=l##?DLc8 z>k;oQ_1p;mU$-PSKLIe`iWMyz&hT0ze{&a2>#%K*4k=i6n0k*1paW@HBrz$f0-HsA zV|y9N>6{H4PJHCkGB}tUlt*-1JMe~PG@lnUglJy+M33p7hV)P#*BSf-$pT$?dtC`% z9*D$iCVt>Au-fY;j)IFTZV~GsBRb`tC+LSr62nCzx^Tld+#_2^dhO3b&6r-8qhtt0 zVOHW$2Z5d4Q%>&HyrIi245{3hLa=IRC7(();pBL0>Tc}?3Bvm2YU3=9D6)bJUkFva zEyG%aUy)ELZ~FAN3}&^QLz5*RX{)Xexi|6zG@B|^asp4&PRgf5eIF51D03sL2=58OK`3kzGnfx)Vu^qgG^cDee1 zHa$lli%vpdpbTECF~&=W9qG>x;~`vwKz&sj^Pc&gJXl>Vbn$P~;s^~IzR!Ze;&N`x zrXa`=zUd1G8L;grWUt!JvgnRTc)d@yQgMtrHJ&2PZTqnb*PN0k4{IXOdRz#uu1Z6X zvq`w@>nRxD5e_>{hr`jIrfdm+gH?GJaDme!G5l2|cvbnas=OAmq+lXF*f9tOw;Izf zX%2(x-r>ozST@^13no2Nr_m{2IGx{_wCIimt;!llj@7FQy|0bbyLJTR-1HZ%J`oOq zrBg*?`AaZW=p$;R-{S*Mp8=c8ZZN1wMEM@Kda!(e zKQhvkHIA7__gm?(Ycm}M|FI6(YU|@JYfl_BFGI*cm2n51jOf9eL9{_Z7Z#>ii^JnJ zs5p5rtR7m5X5a2`zeX#t35r%Qe@O>9H!=+LlM*0eZU!~((WWe|21geBN2k87#%)*t z+aH|ay8L|UB=xyW;^0{b6Ykes-eT6)R{a8A2 z_%nXlHXYisdJi?8wHS8g+p+mmr$WU-Rag>iBp#j?4_-+Hbf@P`vF^Fipv?b5Ir~BE zZp#u-?c?asEDrvv&1Y+q^=V3s4vj0&0NIJd+554%l+PX`9#8Y>^N*4A`EVDOy~>1< z$zy2Rlt*Cv<^{fwoX)EHOxVNj9%zjr?95dg$|lJ%Vn32?-6O~L50(+DE>mECoA*MR zpDukObQ6_+bby6!8GpX?K8cN7MeC+m>|`aDDONnB$mr zRf{xEH-oYmeU=+x%GAeQ;hpod#gD#Rr(aB)xE(G2@I(F^3631c#`eTR*NwBVu`Y*c z3{w_gZFpw+@z-l!{7M;?FVUm-k3Ay{+&$ZcTY`&d;|FQ{t9Ip@;;mme0Lz@oM$wybEEPhb3E&3XtL4!R< z@ajz)vf=YrQrx+LxPS1+CjojGEz?I%803&pOLuhsFM)Ig`QtC5CGxI&LB3h?WU4hG zdpjISh-CpETt5a+NjQ-&)sHZAlmwlfd>ixSmFa{p{b>Crov(7yA~#&(&_aJDdd@*| z+j9puwc}Yu<%b-6zMvXamE1`_C&M4KU4?O(Kl!%dom`WB4Izh0@u-~{={+PTGHLro zSja8RUleMY+nRb5PLV6pyEz-}HvnM2-%O)YpSIFL(+T{Le zP1wBR17BymkaT9tl9+$(7`tL9?99k5|32*(=RdE8Jbkekhoxo^g^_Y((^!JDC;kz- zm#=YW?p6%>qk*2z6*x(&5Qnzz!)+3ss8&1}oiv`~kX(wtbjmPLZ7pgxl;O-89*<^S zMA@S`75)kG#G|AR!{8Gx`x#3CTEc0!lA8o!>mW$9^c)O(>h7^$D7 zC{YJpo}mnkudq(nqeQgb6WTv1F}+DVJ$hG09QZtjj?tRR(u`&U^;rc?pO$g5%a&8G z)8_O-PXZlfa2~D;E-2R?6Op%_q7md11 zn@mTO`a#;T!gwbx=bMPCki#r@PorFQ5YDw3A- z=AV2DTF+BiF|Q@$`B%ccPyfN|I~;rCJB0>-GPkW_3%l!e5zeaKr(=4;Ih%u0IJ)sV z&071KZo`9g`~A|2S1bJB=X5hV$K(Wb%+O;!KPHI}#r?sBNx~i4<-t_6)RDl!6CY? zRvPt$F5#M!el%K#pn|LlyV|lJcf4dYU``-Bdw&~ht{;PSh5yh*aw@JAD??(-WSTNO zQ}9B&V1%tU&aXblJ74TV^$7JF!$dys$k$nH-^PRM*2BeR+r2z{BRV9WEBg&Lm%i*|Boy_xD!?+ z9cCkh`&b*= zU>irqy0}BFz8;xtk9gfAgz0{7;42G;f>q35e7!Z8Y>L=T-@gxIeQ)f!oX$7wZI(1M zeryUlL-Y7-w?`x*{tbTq`-HCldXek~Gw?WRfcy4()4ntA@XFMcE}NypHa#0nSIAU@ z>y8(!v9OhHTbsr#4g~N`qs(b(e+?D?YNvH?@35n~UhvK@fR679g(|&L`n*A&MieH1 zxIcs)UFHu>hN?_0TncL0bCRbU#J^vzjz5;Jpi!p^XrECTH+!!oyC<+--7%A0OY4EN zV^6_E3nw2JST#wXk^pe=cCy6v-j}D zO)VDaDEM4{Jtjp;v-qb{8uWG5Gd|X3o^a+{Lu4EhNzORLi*je-Z2fHPJAR&C9yrMc z49Z#cH!0S9Wh`dwPD8J8=a_Tt8e-^YBg$i$e9@}U*tm5FofXo}J^i@=&Ae~oez$*? z*LtSV#(hy_cDEBNHx{vk30F|!X)HT9@d;DjdJIZpU1-E@9+$L#!NW?nl=dgHO2?V7 z^A>~Q&y+xY^#PEQ>Y?}U?7_xQlOSeMGd10r1BKtc;M%m|SaN(bxinald-x`iP2L!a zQos60;Y)Wou-i7d}FOiwN@nB6avT@Pk$uRIROgO6*fJns+j>Z^5py?s- z&esOv&WLor$>xPA6isfLhbD87cXhc1Q5pHTy4aGGp4$v*IT@HO%*)cd{i#(#B#G!vM*`$pGAej6TPhqVgz(AWrL4!)%pKkS(yf0<{YxK6&eN8e1ix=&!p+keE>MIZ4})DJT9l^Q5w5X`O& z!S@#7MPtf)z?a_njF<1}>X{l`yKI?XMukidx-k-K1Q4~k#Y$rjAyxX7>-byvar@U14byUhUwG8 zNqVSc#lz)`1m@a!$J9uAF#r=t3}0J`q;ZzkT;J#U*iu8)WVq6wY6ki(*TGD=dtP6O__W# z&;5Sp%X0ZhvU7+YJG6f^)&G!8w$yfz0~cJ`;N;P?=3FD)|FwuE9W;ijImcM;iw#)s zdld{X?5Z#|uSM}qMX||7VSn6A*a{)DIG5hSeHDIG|Ku~;5FEj;`IyZ@mal|c*@7!E zVmRF>N#VFX2f0_)I5duaH=5ZPdO(AF4fv{K{{9^ZQPI!JASP{~Ha8&o0t0ohtNS3nen)9QSh2 z7rwW8II$-7bU~jc?Uwfd{V}Paerf}CIvFgiV}qIU{UL&*Hw!G{!svsc&q=dKD(-l( zjJ{cziCe6;!}_0tnQ3VPaWl3A1FYc8%U+>IcN9AS)zEXB2e)MlApJ`VJenp!Qm##h z?6*9Gd?x1D;1!`8Jg>$DH(@C#Sf|Tdo@IDWcQ94?T*v=XdrjPPtVl*kIyx4e#$ET85QXu=H|k!BF8&o{ zuKYTzzuJdhc@D(C<~rKxP9~3rj_3B;&ms@{^3b@;fn0Y|g{EykNxNAL+QxO_9Pf*q zyIKUcoGiw!+sVB2hb8n=@CZ78g&RtS7>V@CjUd2LFt>a3V3bS~+MbTa{>NJQco{`PK88qL&?EdEYx2}~3EBKTj6k$EujL{GchsY}r@sP-a>Wx| z>H3wQC!5CAO;#os=j+fv#it1*IFld8dpTRx5bS>RK%gWn~v9Ym5^gN50F4qn=Qiag1>NM0JW@Meo@F=X{w;*+aQR%EZl3IlZ- zpxq_#lP!tgZhdlaiz1xbEbu|XZgSkQBf>kOOaE3@V{~&PHcl3ji@()qpHn^t3g^ND z{onBEdB$C8l;PG#hhdeFbEbS8;a1o4H9rh#p6EOI5PXj`3p^sT{bHIvSeLBN>BGvT z9CC3*Htu?;0xMt@iCE;#`$k+Lrt0P7a*9*MS*P8obMqBW@E$~C>`jGk_y#iX`$N3Z znu4n}CX<;$9ziL#25qB$6213dh}`WVD0Ml6|Ei%$eRMyIocE<;xWai{IfN$xm#v8J zqXmNR%nv&b>Cv38v1DH26x0~60JB85aI%*?Ss-NgSM=oY787ra>W_MHx~<{(b;>vx zeCesE=TQh5vTh>1`}IE}{k0agA9a#9S^?x%x&nwIEl5~P0Zn0W!7w z$lHi+nCtNyKHYF9(chv42k=Mq92&_ak6O}i_G_SfV+4+ikY%aAFA&#)jobqN!SKxY zD%Wh{2L0DrxyE`xRgbfj+H_<0luWeO9we>`I)eAr)Zm|20n){KY*T#~S?c#6n=e~U zo#Y!tA=4B|d+1|UQ}u(qm#>Aa{!46dz$RiGK3*Idbqwl8by3OFJHcz$4dQ3Lmp$2E zLlT^Rk+L*uR}KEkA4Z4XD9=&3*4b2`vlu?ZaeRsnL*+!PK6FXRVl2bt4#7x zzodpEtF|!xyMAKVb~kb}YYUYb)Zv+7F|fic9_;p8&j*Div(muU05I>F($1Mu5^-?@I zw|?fWZb#5XPo_fLs1p9Yoj3WT+X%Z1Em7<~ob?!=U@wcGVycG}9X`1Le>Z%f*2`Qt zn*e{flX{4r-nb2(wi-bA<^qsEa|+5P`=hJQJi2GX0vfcqq(UueXvMofCg9ZY4Ak2q z!MFDkk((;;6ATx#k#EJIy|Yg=vrdLq1_bjK+!u0a!h9HIUjzzA&Y+aN7rc#}M2hXs zWBZdw+@#0j=_+9;DLSA;w?A&g;)CIMFI=%2BFZ4hH$f zLsU^Bd49kdvemQr<41S#5wrDaSH^v)emO?SA1Hc&@V*z9y&&@+&)4+ zj($d8_P>S6y~?<7w-s|W8%=G~_R)=x9pK1E6%urAJDGLqqlV)b(TC;8JsryAp{*VCXVI3H&5X#5b-r{`Z`ib^B zEm-1X#P23YxO?(#<;ggh6z2ESYsNQV>*2BF?>{HDvC@~0*>(mOCfuGif1ius+6l+I z&YpDCa}BZ8o|gjO!Gp=Fwu%}I)TmSNZR+b}CSLp46YV22XCm1aLm2sDHnhYN z_93V38ojj@Em!n@!7!_0t4q z`ZQ^F& zR>y+m;YPZpz@2Rhbzzd5cJm>b>)Dex{kZ&jAWO7wU~blR%)wiV+zK=yMhoxLB!x^` zu+#!POmfMkkZ*(&kj@J8r$NA%33P|zP%7QMgwD*%Bcn9`(e8&s=+DbrSWn{)W*T~& z$@nF6l6(DOcyBgC}K3yUoE+0?2b z=(c(iY5O*nT8M%U2rP+RItRgS(jdUnYtBz8ehQ+OZA$1!udR@YCqQCXb&) zA4|Unzl$?Tm*ZF>eOiZQnbuOT$WJ2uGHJMbhOzArOTg$(1o@sd8}&AhqbvIdNb!zq zY-o-u3;XVc1;_fisak%_*G`_*J${13x{{SYKESTe6MS#qIG7!sL;ovgR2quGNG^eO zC`HieR|VJi^ToK;$AyW$%d%3PXz*S1fY}&^vZxtq@bbtNhtx144f{f=f-%V=<$n@se^GQHXY+TcaHLvdw;Aa8Ky1>>ox)r|zTY zvYauu!IhW(A);>&dclD3-C-~}3T*F4;qy=KVMIjU85 zi_}Uxf^l#qtTEn;H9u^j+UN;)wC*EQnJYa96eaTLh7C_j>U}N<%v5KrZG8eU{`-JwO~c0f)}-~L0kP5) zRxcsX{_oE|(6g98+8V8B^gcB#ytIMtpC%_hcQzgBi%NK(&5tY(+K$Js@@f!0X%Q7R z3S#s`IJdm0AeuXEu|IqOhsqT}XNEby?!EALr!9k9&sXB7jz^>+H5roPWccfnX5e{s zm^duE3NCGP!UDe|q{ey}9k^9Zk9#bHRmB4HuBw<;wMvq_PcO+pv>TW#D8&cMG`Pmj zGO(kY*sM*S#NmD*yx%Ye(v)stX6Y1AHgKehjRkN!*ooe<&jTBSF{{N2bWyE*fVa+2`VxJI-W?gG00$-?WwIe1{S1F2kY z4%3&b(4QNXa8ptu-xM>MSL^$OZ+)l0q+z?cb&1IBs&&R8y?*3f-gva`xq~`OCPCZD z*W5FQhrCYhabEuMPF!*A9?^0UcyEWTh)0JGN%cr3-C=U@Xk7=^)<|Jd-9+-DlU7KX z3p1#yK=cee#mk9bk{y~+r07ire=J6t+*R5_)1(Eq1NdBf=CbI-Vm}O5PU)(1Iziqt8*=zM& zkIWllrp@q3=rA0-$%Bi$dYB*dOA;hS%IZQ8ZDG`^ouOB6qz#1OjKx4H0SK~G-*Ios7Ms`k4hmWqC%Oc5JIICB~iw3*4_#! zsZ0&hJf~5bOTFj)?u&C>&pCUq_50no*UXmYd*soDbHvx@6Uo>=1|Hb7U;_V-OJ5g= zZ3k6J^0Wg);;1Li7^!Z3f8<$`xH=YRpQl9THqXy~;f_n~dBH7xhyS1`V?F3_nXIdh zLD$WtGgDoJjM(>6WK!-(yqd5TRils8jd72{j?MMf)BesR?>J2usw6?tW<80&+RraY zbY@C7LOHQOJ@zn0j%ycYIb2gPMq1w{PT`GkFieBw6jWe{h8h2zzeD%_*h4P5sc`L2 z>VyvPV#twLNN4Q+f(2!ltoba8arQ5GFGXvp7u=_=+78gUg<-z&t-7S2r-8c^2d2vp z;FVn_@JlZe>MUQ7g%efr=7B9_!_QRmMx~9p+~_7=rz7CO3kTK|`h<85De#-fJ4CXH`@tq_1Ko9T7I?WVhVgT)+4gpCw(F}G9!b4|D`jH{M zw>gg+HGEU*Zw$C^0h{!f5xw#1bnuftcf(wpC?rIKLxl*!g|nCPwQuOO{v0*+6#Vb& z&tlWkcEqiL_7W-hTWEF<*$R3?YXdaa0?m!@Eciu z>`}e_pIz{Mmaq>9eJi+6E`V(OJkXtNOb32cVG4u``$lDQH#8PUz_CKJx_ z;Lg$^NI-A}Om>PTw!pn*Hj6#3IP4io*yXE9N{nlvaTvmXVDu($XT zxqR;`%NQjhDueIw&W>5&p431aw}0SwB_Z!JZxq$OcL|TAE7AE5S!A8+Md9GXFCr*xeEb%JQZn@ykO+UMti9 zZG4#Tno>HoWeqFx2&UIhyMmhC7`CF-4$>Ao!h}pW=JPNOwExp)lde~hC1an!$b(ui zaQGc>xIUL|Q`MxQx1>=wJb`-Uex$>#Owob}oZew3?25n%=slq&dRwkQ?`s9{d7W$6 zJ*y@h=BFpBcb!Ph#!Z7Fr{@%P5~0O!KU_{rrQv@0L_X~c8QfV##6E7Lo(9!aqg(K) ziti^|J{1zNG;7+`yOqksDYJVg+io%1b5#b$xny%DNn6N5VK%(-*i3%RloPal+dQz&P!L&sOkr~JtJvL4 z6=pmtjyg_#ON|byvvTz%G`VanGwMksA29?!wXqP(IO)I$C;N5+0UjP zNMol&Z}I(+y;yqX0W4i;&t7jnN`gvuqU(mqoS}Ih7Ef@Z*TZGlax)pWc0vKOOX}ig zOC2ZEwms$&R4VcIqg3ul$s`hOpUmg(Z*GF9AmB8%T$f};ul1P5@CeSK{V@A} zSe!jPv6IxCIKW2V>!X{b)Y-3ZF;Lyp0!=MDsJr4j>oxjW0w4bpCXILowFAD)BSn{L z+26uCGs-NVDX^Up>7-cp2|c-b0Ub~q182_8Vq?DMQXd^FIQ~T))F-SY$s6)P@lp`% zC^!d7smHB7YrAn(&I*Xu_M^{NEQoM3=D!FL!`ekyi;7r_QhE0mcxx1Oyn9jbCiQ}hPdHQw?}OYxDLz2*1jt{0jdl)soT^PHo|!Boa9wBd z3%gFz;JoVk?o}rIY6V%G`lX8Mv{&Fpg$Vk|ID-1~Ly1FaC6x3i!;S(>~ED%_hwIz#;0nsvi~4c40t^9*j1KBmQ$d$ffc={`GPjJSX=O zONQjmTxi@!_s)_M{T)~jPPxIP_SIw}Jwpoz+l%1QP<8q@Ege5w)!<~OI>>6*AUliy zk-l;rMvjZf1V^AKD;QZ5OTlYDMLBPI28!b=iNPq}Ufvsrt;% zZn(mvm>#q>hCs8a@VGChzGQ9*2Cht{A95^2aseZ0a`Aq0#J?O)=q+SoVk>D!Bu^i= z%CecZlbGbg@o>3pI0-3jq+9n1t_zd-FlO072-7~xs(y|aoh?2F$Mx?)rJE_pPB#!u z2&g267b5tXBlMV`RRKA0L@=sEFBMg_$WS}77gj7Pp!Ub|Nqt2-+#0rxOy$HpD6t5dR{N#mu>{$#eEKGc7W5nYft45Q;7AXH0=(iN0ME|1?pN_j2% zN?e3JO7di%nFnrKHX0|Ni)VxWRe0q6Zm_<4fSQFJf}&%^uz;KguG0!ovX^WYSHT0G zi%D#N23^o!PP`UKavxra(~fVc@Y5)SObWM$7mH?t_CrPRoNOv`UAGtT>rrS`kfpyI zpVe=lH=Q+PDM0L-a>&{y@F{FYz_FXE)Jao;=Z>qf{m+tMhW-yU;tta3)#j{vFp%Cl zmCEke7Ll(5+iBRptz3|#3BA7VByr09OD5ViLSfV|9dkkGb6_+L#mS+~}l?O3c%)8wDxuU!`W zG5ut+b;v}j_*aU^WcHH!bPXD5K9nAejRKL-KRdN^D$$d<4UgmtpeAr1Vrm5N3%`Tc zp<#70T66ew*R&y6-2rY}3BanuHsrA9S==gm48t}&q}oxZ*tX^bCinUX?YhZWq032V zZLO_;yQPYlCI3Pf&K;I0C1UxBGsMbZENc)`#a~|LbdLU4RCS&Px^G^>+r}g0s>@XN zc*_b=U-V8|s%6aT;!fc__bvD(IRNukSmDw8hcWu&XEd=DW`J#}WQ1uRxjFqNnYZBy z7b80aBQP1)jjbd0wgembE7&jg3(Ni*kj}x+_1Y5kyuuD8UVL2&rnroyEBD&+ad)E# zo!4jW_-Qs7+TX;>$X8+9ByWNx8pLMz8Z`V@O{`;X@L83P{16u>9NQX9_Qa1Q>cIwd z$(bKmVSAsXN6q8rO;>|%t8CJ18Hg$KZ<4Fd;?#I@5V32@B1hjQl2Z~f+_GUVBtg%P zOtYPgvGrR?tJ??iS>`xCYd0eOAM(*$QRvyIPsPb~FZdIYzGUomRoc|}8+RNS%@1pQ zh^N~`ysW_?B0V~u_jqJXq5n7L-tgoH!UKqVG9^A`DsH=%e zaT|siQZ4$B=#BOersUU1eyBI`QT&Et_CJZl&{mYpugAGR)aZ?n!(8Pb^) zLl`6Qal%i?a~@M`$>yK+=)CATipkF>t#MP)?$!=2_Wekj(Jf7TR97HLzDZp7jl|M# zySc5lYjA}91mXWYhmP3|I95`UxER&pkwsRhvdvT2YxQ$O-DRObD+vQ73_!wr0HuX} z!IDfbGF#y4d_@^-c`Dq`FO1`Ne)-7#EvUk*5$VKNI-WT8tK-w_62w#fJz4)(aM+u_ z;m_2q!QiF2_^Tm;Oep?^cOS~pCAM;K-oYC8M6V(rvy1S8*kfvQOc$DeYl^zx>%ff_ zdUUqdcv0@-T_9zr!m?u{KReao#78++qr_Rzx$Ag>}=g5eKcEGc37N{pPH9m?ijM|4C;| z454e^ET@^GR%YbnhE2iKMCF<)=<8Gf%U(K=IbAo2>ZB%m=+`EAyYW3ytsKI($R@&Q zza)^?@+F2dN3iifC-71KX~P30AJ{v53)FVyLhL_X@S?%Q=})DQLHP&!R~EzC(lRdC zM4cc1!HhUa+@;6i5BacBi)!EH>m%%^&;|0}Nr_GuEFBq37X=Aypo?NO_sJ73_d%w> z%Mb(q=f&KB+;?nH|3dW+kH%e=XHiMjfcg)U7oE(pw*IsAFl>Bpz-*pHk*4tPG;2o= z`pno#<}TetZLj#lUTs+-J!&@zsB7mHqcX_XW9Qj9j|r^%+ArdK?;9Li7Eg2D##>uz zU7%yo75^UCeeofF>-5X&2A4d130T^+7n*&g(^=OZx)w z;9!pqhpk~5#Aw)XXuOh7A38R0<72h4%~}~=74ZD%Aw}@_w;A3RzF}Ri>nYKhL3(zJ zQTf+3boZQP1(Fz7B7JEAbgh% zBH4Vyaa47QaOW#tN)2o8QJ{n@>b=kFy^m&r=%Nx___CVXOYDS;n!+r) z-G?r^Q&ImQqL{`M@o?U6Bl~J?&;AL|^Wy6+Qdt;78;sy_)ENlaoC&@y=@6Q_i_7Wr1=G9BXo^WZoq4K*P@g5-`Os97H&h%G zRjP>VFAmZ>e263|0ORmd3_~gS=o<(1azK6d{6nwq@nEo41zwh?K%=-ERi{eFd?b6nS_r(UeyCZt6*6vClSk?E1QxC} zle(rw1JgLVK{o}oX3Em#xy?9nt09%YIRndeq^NJ06fSkiL;1haaND;F5DMBtC!LFeqIa3F zZ9x?c>?-HWDyET|U61I|s6%96PNi@k8OqdaDZOu=3)2ohM91X^U~z6Dx9P4Yh}MKa z^$tZ^^71r{Fjry!2Gz)$)Hslqj0V`v!=>Z5t?wOJ2Gc(zvds?v!QC%6$j`K8FvqkJ z_XTx9&OJjR2e62(Iv+$@C&j`WCiDyU2SWSKEA(z|33J~tA7uK!5Un!}@KI+C-`1GT z%@hKCDm_Auha^GzsUf7%cqKGncmkoJNOHw2feu8ln*#^gppyqHk^V+cXI&$yBkb6! zW(Rg-_-Sm|sLOUNd4==TqUgR=KOpdN7F;mdOddcnl++ur13r->BF@J_(?tzPA7MflUp!Az z%+ujp6=fS%6sjhp+1v@1T6-QTx0I)&?E@@*$9_4HJDECMG{rh2ATO*ym-ZG ztS>o1HzdX~QIs1LZx{h`??vqJCV6_|-bi9+afCDlt%uI1yU2bjLh;gEVsrlnH}6d& zNW9dBg3;aV^s}e5(ktn={)sFomft+DO7eWa+_#-}rEx z3;pw^41&w_SmWp%+Ix2jY<4||e!geTeQw&2XPQO^b%|*w&7*&JQ*YZnTjs$B=0^v zqBVO_$QeC{waN!j5~6U({bp<&E<9pR0$1=3_IF_ml}( zeQy=Z=L7Z3#X0SMbS#3@lVI!4|D-IQcP=N;)aAX(y(V@5*iH_v1Z;W$KIW zB*#&Ae`ma0B}sj9%ppEJo(>kb5cvTaI%`2IT4YvXkgxFFnE#pd{!YhrF&D@hyB|cp ztQP0Zh$W++?kA5nxWafJFYd<68r-*1RwUmPB4mJ~!PVE8pTE11#F)JzKYqr;=Z6EN zXIl!M_;rlgob_ZS_Y)z-HW}qUy~dSaUeoh4XTyFKTkN`bh=rz~f|h@(cY62)MxAaWFK@%c7WW>D8a$kPZw|ZWwEaE@LZUUKiocuo-Jqa znuQosETkBAD-R^I_wuKN%%X+$aN56dEIQh36|$ioMB`gHudbGbE?>2&a(^{xd7(m0 z*Uh4yzEu#IGX(m-Y=s&Q}i60u#PsN4!Ptd0&o9EE? z;tBlprdUXyw-jbnW@7GTJ^I|um-&ah!E3{RkzzFu;&!M23PvuYCvy*@*r#L25!VfvN=m?NDG8~f#; zL~jqwGnIrVJEWoM$3OhGtO(957>dTfrqhMC|B;SQ3RG#+AZku6BYVA{;1iOIBV8WV zU7fsy%$?RmCND>^TS`~v|%|&du`#Sg;G(bWwcfrHF>-2~y6;hV{ zMYDfBFebAXwq&W1g`Iw+Qg0>n8cpZ6%-IgtlaE8AgEo_LN=K@^2K3bO@ne;msC`=^ zeP3e=o@wPIXwn7nG_YfeXAR-0d@>ce(#$Pi6@q^2r6{MkAOEGwutr~5x@yuB`fpVu zh_v1jCwDEFIA7R3`O1>Evc&=eERO_QN8p{X?O@RDMryt#6RGgybxS&iQO%e{ep52# zIkJp=?$Q&oa?PMRM;o5seT`jPPLa{#ZV+l*iPf!ZvF~0s4%vQye`vCr2AVz+{6xLv z{*%e5Be{V34)q{|2M75t%R`7-oUnHix&WGHV$?S23Gpx1A<1DmAhALlLFzY~A>Uh|c_g?-mnTr<<{; z!77F+Pe_CF3L|OHE;~4I^cUf~yx8yy6Gb=`QRki+YrXG7<*!MJ#7@-X&$qwmu;KUk zhI{7F@Jz9`aAPzS@36xQ&HC)R@;LU<=^p@jaBNC%Y+QzF~X5LQz%Bm$~6sx6W z^CH0gdjQ#bs*ygGt-%eOvaRng*+;Ygvt`H4<)I^X6V5wR$*qgbW1*c_IFBVYWR0|? zs5AU3Yhkf?*O#Z`KK%zaakBWYO`By4J);Y0Bk-Bi4U&IAQFO!TaIIXMz<(=#3o~SD zXvOd{?xyTjF2$$?hppk5pLqr|E`G_G+2umxMjeo)$*}vA3eCBZhBp-7!m{}Y>$Y>E zuOU+eCZ#KLHfpC2bibgff*U*Wr-{>;8o{2ApAN>~f?1TbDobk~BHCZ`53?UAu%Vxa zfFMvO6JIPQPBFc84khkFU+{(X`lt?m!qEF%ndBer^O}UTI!(w4s^MFEd3d(MM(C!g zk|(>raN9Tgl1HzLIftba@nPPZy3N=%Q|nhX8QysWuW!%Av5rS(yf^A3G1kSXak3AC zKBZ&oQ4?d7bT2RFH>|EDp~+QvaQzvQbodOB=${OiU8U%xQ;9gOG6FNEsbSQ&VR+s7Jik+5 z;jET%#=mCcuy0K*dfU}vT!SZX{KJb3e7}QReGK5ti&Xruu$5dg89}XYJwu;LZDO6Q z34c{4yF4cEhKbP{@AsVE+XQ5u!r#}8 z0+_#>n=m4}{>=nQOrFw+lg7D{uPH`!#L*!%^1vms$tj!gFTyZ2JB2$@S%ad5)2)}b zpCL*kyU{&TIG6oP#?<&=lIbC9o%Q`VZxp!*t2P#pbEfK0H#eDgp2p+3rBNj3bUAUj zR7$$|PMq+}1k8p`;6GWk@HYl6>5q#CiP(SXdT~_tDxQUTvC`{#~twgK-|R&;hTpdy)eHNe8XzV!w+x3uJsFHQjtV^V^sa* zsXVv-{&d z(8-Cv$>i;NWTrE zMPb_i@UL1Us%IH<>6@F-Htq$?EmZQ8&0-k|4HZB0SnT8ALmQ+04+Te-l?S9djL~75Iz( z$xwtv2?xRKP%(J*ctGWEWjypZ2Dk4GgNKJCnBN%%(Szy}DAy#%KK9np(T@V@ebuLs z))7q;x=Wej(cffiXD0b6e;f=fEvd$IZ%~dt$FgjMzzsLl!3yS@*l})>j=y zFG+xyml8B&?6>*@mmG-I-#ThAB$5|B*bQeZv{>l1V)(S^AC8;2fecOc<~C2iM|wZ5 z#D^Mpq3P@oP&C;{^TU%!vG-;WR*7)$H$mOfsglUy1DAVhLMv#t{Dp_rXm52k|o-fF~*0@FHe3 zxWxS74No70g1@K1aOewsWnV(pVZo8Y7>$ECOS<86_kA@rF`127oJI$R);S0!k;<{eTmafe)aSjVr?FU4t!$>6=w zlCs-Ybl8`NXkGUPYBw*W@}u^X`o>#4v9Ks9aP4Wm!eaLq~vR(1x1*X|P8I+wl4cv~Q}WVe-=WPD_jGS0Af$R4;;_qM^{g zHyLK>uVr4`Pa2=PgzWoxn~2H!!pi9$tSu*wJ8Di zzR=-Y>G){nF3zC!E9t*2O*eGQ!OCA=oX@U2@?zM0Zq$-C`i?uq-CU=S53aAr z@19arDYOv{Wim)`=S%XRN+0jttV<(`#G%}QqH4Z9*)MHQg3lkuv;=i3KV>B3eHzP0 z&0rkqEhIIgOkv8H1$e;z4e1#O6F8aA$TDL|7-CUJG_&7v`ITmH;%^DoS@)5h{-$_+ zMhMRT-AzWFh~)pPP^DuJO~q(<%pds_fu*X&WZL%+7?6`+_aXW7%p`9yQWuvr6n)dyrq1y@=c&`hnYH^MyS9JI}i2s4DJ?d|fBKN|lazSH^Ypb&-?; zUAj+l3{0F_Ij@`b1i(D>X;nGgNv3o4$ zYhEQbr3sik`VGpI-QpcwbU-Gtf!t~Tj%g2@IE$4spm2E~s;}pHg=#k(*X>*{b+MZ4 zyLZL<^MD?2u<>HOjF=h}y%iC=Yh}Dut`e{le)z3e6W1zB!2R%XkiMvj%z8Tt8_kNi zcqM_2R-i-eJ_vKYH$VA{f|E>j*-YGeb}U?;P=qU|Y69bgx$4O6O){!MepWWB|8=fo)yeNo4j z#k3>k`{Kfh_gQqytb}tF-$iT^K-{XdJ*?ezRBs%OeAnHdt$fQLv`0nF& zjK8$i`W~-Obq_@ljS3|qaW#po|D;4KHp=iVKJgINa}-o9M}j5lu&LwM0_QZ-daegDyqn)=kJBA2x6y2i`-AK{

L8zkRAHTD50~c<2daYC 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 uTWbz7QfT1`-XS5bk!5k@XQlvgx8w8EHcJpX9<+ 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

j80a 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%0Ds%V&TQ=l#%`sl2Dnlg@TDBaWxuFEm-Mg+a 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

Sl(5aW0mxZ^6OYUo{<&D>l;X zE9DvN#1+j}W?N!IHLzFK`!i9(GRE3XU8XvtDf-(Vp5|S&EGfS^n_S7+vypM8`9H45 z*A(;F@Ehzan_P+={6p}T0cg?kIk!@#^9jRIllY3X&${Ia#4?iw*^DOrBt6c^z zpR*X7SDmg5*%r>(chayT-m1fr{juI6VTBs~^jk;zniwUk%SVRGdnb*`c*x!2W!iIw zSpjRAHM`<_Lm#oixu&&XRV*Z=nRDi`3-c)jpT1QLwsUBe_ zjohgG!^*PI8Ozr%U2bS1^+U{&)saNOxDibMElIo)l>R}#j~r@#;F$s=9^F_}Q>V$u z-haIGUCt_#M`pY5Cw`Zi@u#(ntyb+UGYslu-}$R+F_p%^8Y?APO&ecgyseSqm48TL=jKSlR2sU#$u%AQFyuo(?88ngMQ@6x%H5mK;^`Jv%6bKZJ` z<$#KwY0xt(bJ>OnUefzrTw^(p%J`S-Ea+{cr9H*#%EE@i3J;vx#3}cDY~^$@&{%*@ zmA~!ODm7EwYCae^l^^$T#Nfkafr%Gy9b=SOYnieyADgqqiE($>&P=KHcj5Fk1|zmM z&Gg%pl|jAO%k1=0Go!0_`>iCg2j;gi6|8jS1zcq+4rj#e#Y-JsX?=T&Wtz~ty7Xz( z7VMZtJ^pn6JP*E2HV>2;4+lV{f(@B(AL zsmI< z-D0WEw`CHD6ZpJZSy7B_u#plcU)(^PT5;Fz{{C80IAST>^!JmX*VR_M;9M>?o4ijk zl=rC>%xo15wp=FeI;cSWHegWc8J|PZ4(=fapJm#H{Ya>sV+u&leURuqf#YRjmsf@7 zGVRmW_!4nb@f7jgAF=_BQ59|$M)dgk#U3Y!Bbh5W*e%7I+tB9w`SgZhVG>iWBZvOT)qD8b1;V&;)@aS-`{Zzh(WMAkZPdkRl55+SCCw$th+uKj`)hFlp&P#FB zUu`WmV>eB!YID3PRJqUGd6VU$c)2Xwck2{u#2Xxhjm9M67TiB>Pvc4Q{AV($@?{Fe zX5NVuFS}e|uy1pf8Eccs9UE^m-=w~U(YA4dyU~s zoiyNuJn$gMU;HZcjN)>G*vp8e^XIKS>1lk0&n%V`ThAukc>^)7kwGzuxKtTkyutp8 zY(CMf<_TXM|G>KN7DBylY9IvP+j*@|bcxDYLr``asaNfYyED%^u>3W*Kfv6S$WM1j@w7E(vtc&%9LLv`2% z4N9bm2H^)$(^fWK&w3;09c9-o1&+d}aUL{zZa2Ikn-fy7$ujNwCVbiSHeyoRE{CMq zMIpn&meQ?t*gC~TS@3;OiW(H3C~8pNLtQM5AU#;`S3MT?lgqoV$vt5>B_0})t5rLe zMSL=_L@;>Hsj^>Rxib9PHT?0kd7kMK7Q-PT{qu*J_3zAX1LyQsO;c*nQr?q3oQmw~K#YF8U!F7taqyR7<@!tqgK| zz<0+6k~;l0P!Gl)xP^}(eAir=>nsww!hRVD(@8@1wre4Wq}k|uqjdC7_)2uqW+mz| zlbg7!^A9|Ds|_Bra6x8QUd24^N|vfBKZgvt6(o>tZ6MG5F(_lUK+(suh~Cs z4A_VumXvieXDkb8=d+a%DLHl89nB$_E^UY?@7xa0EU$;%mJPt+3VHX7~ zz&Lkws@n}s`i?~=!d8PK&J)@m!>!0WQ4UfyoDY=O+oMYfx@hFqQlzTn2HLhY3n6|e zKmx-wQ0JBm=(n~27sM@Zf?5ENZ%ee4&P+haa2M z-k#bF2hYETxM!Uhe)b$>ePICUEsDTA@CDHAlSlS#_Xi671j!v{De~N587fXHfhn(x zFbidKiTz8BX;I7dkrJO6_-=X$^i!X&&rXPU zV*}(TRREGu3I5!lfOfJYkfh_K=*31uT5zW-DxcY#7&&BsmYZLeVth75r)s`{!+W

9&s%Ls87t@! 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%0AGJ)}At(vV~l~*B&I5%eb=N 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 z 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

_ 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

+kEc*Ce3k0-zfW1qnf<)QbbmIICFe^rc zw2Q2fiAtXx17F2wfT*g=qKpJR zdX|JX{5%gwOiN#Dp2gfvCQu^0S(dwpHcyw5j>IyeQ zM&u`>vrDQ4_DiH-^O+9#><>$s>Q143{_F+g+PbK~ZyYp)H;BU5P60);B*3J(apHZ( z1?q9<9NL;*gI3T(F!AawWOR`ex?k)+aT-QNOR`2qRey_taHl+6Fk}H=yi`HZZziZj z9%^&Vs|XCI90WSV8RT=dIK$^B1B7ZrqQ8qO;FFkUM7A^u{JfiHV>KcPwQ|>j*RdBs z%KS|N70Vw~Mc8KK$lWnS&cRG%Hu_UgyZHu?6Nnw1uX3oq#eZ!gO`k&_E(@fd%Lc!V z+@QuT6<9)Q0jX#SwD7MXTzkkK{;f8llJ@=pI{bGK>L?>9RNjqzzgbI_Urq-b@@e3A zFcEfZDWWgM-ap41Uy=yNx;LW2WXM)RQ4xB*jw)m-tLfs z$2tw+y9H<9_}qDb9889}3HuQnZVnoB{0+4tIUD$ITaE~))r;;?DsbCM!ewzaezTMb{}Z))-}Z`T;+=b$kg+LcQ=Wn7oHRd2Dvh2d;YR~FlQww`V@`+&FZn~Ql38?ooaF11#lX-rF|1{+l?$0lp2 z;4xz@%<2qX+|z7`?oiOfwSF#Tj#a$CC0sUAbrv45Ov4VJ$ohou@@>U`OoXz+D;gNy zb&nl2lIOZcqOglQ;xW6=7uZr?6Lxp~S#%3Koeep{v-kF{z;?!r;&LrGYb!OGIAyJk zx14vu4gKC=SzVX0=#WILe!vZ{DZh)S{3^gL3^!v^JGGdG?o-grARPDE^bfl^CmEMJ z%HpTP{xPpTN10#$rD7q|U$VHq4W2hXh~|1OVifpNR_4?=oHH!M8qRFRH~+ka_MtVn z`3XffW`biiVsqF*!Dm$FWCde<|2$)9xq(TxOv0oO*W*VH53?DuNw|iA9V4^p1=|u9 zhw(atsDbKN)Sd8QS9@n-Rt-C_533;^aiN;cwVuJGIB#b4zWrw6HpMX)7QbgQz8z;m z{r94Y7x&;Qp0gQMS2cEc9g3EHUyFq;o5CvSMTlM7dFVRnLM*N^i&1aQVY(_WpRzFB9)z9eMunvy&Wu-6#*)>G_!pAk&{>o;t1 zWgI4Pbt601K8N+Z`xHdUdoeej7-4E(e>0xhYuSp{d3d=M%_^DRV_c9tX5)tGc$|#{ z*QZvDJ)U|So6(wzpE%25mI3RTG~Xk1cE?VvUt0(Ns(t`Bvu>o%Yn)>R%JFP*;S4sQ zWF|JISAhGnTKH{K8+MOl0{bjB5X%!u<91>P{G@ad*8RR2d%u1KUUXKPoxX~|U#rV7 zOo13ZvoamiHV$HICq1ScRK$DfJ1tn`i7(9T_fMFqr}Ws2hiSAOlGFCP&2>o=!s`b=L*ehp_=vO{RZuZ=zgfp)R>N5-=R(A<5T=a=5{vrph z3QWM6O1E3*0`BQ@O=T$o8QVAmgvCXv+*^$}(yV_5Qk;HC~@aHJD05gQXT= zTjv^}y~9&5@VpX^Ydl4~iy{!q+K)EgzAE5a_Aw;%EsvCObA(bKN|DL7vDD=13sjK| zL9xCUgq{2}I@9+uvZd*gC|)W~?CVN^cXl0y5@Jtik2pti`;->i*M1i?bRV^D6Ww-^ZFA|uKy%8|H=ZYZZf2zc5H!bTl6U1YbZRme*tViii6#1YJ zLQrid4})tz+1QL(Bb2zK@6iHn#=g7}b-UWY{b6-Bmt?lUzI&&TvWaS-ld&FjWcZ7e zn!}Oj|D_+Ct^V%q#kRGU2s1D{jFNBtw{~?PG_kg$jBOB*ssmOK*0rg|aFJ!~( zJdymZ#SrMe6Q#|J2a$`5ZB+PaV6ZD42}pQ}j3?(IKL<=f)}S-;bNxfgm6Zmc`m{mO z=W)SkNDmcm7DOe9`@w3HbP&COHIxZ{MU-aqR&Y?aNoZjaiYO^5g9ZELDGSjN3ac=L z+uUZtor~o`p8h%@@zuj7?)nbOWX&oh&(;DsBu}E2oLxz+kJu>sXYUIhr9B71YQ_)^ zor*kmsTS3>BMaaXT1<2_0Z=w(4UT6s>iD;nfMQ)F!VcYd3 zqD?jTktmrMgt;yaH73lcNxq8Eyplz-iZSqb#SYMbr6YUuYz6c;3wUUUDjdu<0{_ii z3iOLLV9`5szg-GLTMfL1Z4)BhO+xsE_5FP} zr9X2mg;~9)wwGss%i2vqO)Uj1J((r=vCkCFT9qnDdNfNo{lGt@EYC^Q1*4Jeo(ZgZ z>M};I<^$t>cPCbMV+y{#K$+?4x`CEi$YOPq&SEd(#V(wLV0NQr4l~8i3LE`09W#)d z&iH%eF*1YNXvmcUY-#>O=J$>aT+7&m%{0zrI|d_YdtS&GZ^*#pT5%@s`3|;dlPS~R zCyjMuLM&#%GQshHt*ledQ&fMF1|yOwV=@YPHnFFMd1qY6`u}>(1bfy(`E@C1oXJ}z zcU}$p+$b7Hzwg3I3R37*lG1p4&J4V`NPPAm2xHuHByqo)GjQn{-e{{Jl2uS>qW#RP zu$o;eOn&NVR5!W+TO!QFDx=OaTR*PEWVVzr#dj0Y&aGT^+j>|F}_}>Drt?`#Kz^>o@gdE!E;M)vFJ5IPZ#1i&}&?S6)WV zRK~D(Qb)1yEIG_#@qd{4Nk#1QWf^*=^*<&>P>Q|?%)=ZO+=rf`m-Lad=~!gpBs_10 zHNCib4zo?k08HccWT6{;7{*%f4 z`)A0^ezpYjZ_~%$C5qYALGjGwor=t0-UrO5K@YbHkc8T@uTY7xQo8c&QLO9YJB&Qp z#vq^Phg42;LBtAntf z`Vwqcb~h7hs}6D|y~2|DQS977J1lX)4u7{6GR3=!nW!r#7@0}Sv5caZ@SejG-0$cG z+@Zw@cbId7<~|v)Ztc~ycBK)0aoPkno_3B7cpi=wzZ}8e)W&iAiU?lPBAST1dzP%% zSWaxSF5;zv=dq^Fm$_8er<~H*Cdxi8 z=f`0#F*nGM&wZE78*Dkw{{NDS-!*V-pAw(g zl)xp-)g?}Qn2-{_z3^VN0bem=Ghq%Nabp8l+0Q$DSdz5lj@V7Hb@iOd+pgQn^?dRr zEVX3$R#SiOvkt%)+t`!(Jy*G3_Oc}UI)_U(LW!MMF0+4ol1bmYyT}FY_FVX_uk73< z7G#XGBx&TgieGn6k!-%HEdFS9u1#$W|M0?vtnj|XM=z*Fy;2Vnt95cXs|#X`quC{< z;rU+7MlXyk4+|k1w2T?4W3n9baE$0tF(o1#<;j>mGqIGScU-=CET`ZdKrT(1LPY0W z;F1zUiJFZ^$)8<~1YL8V$Vpw!G(Rln(UGp!SRP? zq`8!M?tD!}{CmF7{^+tG=RHa!^RpfiF)vN&fTRCtrNtY$ksC&QqHYv9v-uRUK=C=( z@q998aa@}GS$GRi-aLg*%AMc{PYt5Da~9zs1&CKli@C0IV}x)ZknggZVE<^`7R2me-Ry!s)g{$=7#bOmwkWIO-uTL!o9t|I5q{}#{H4dQiPRBxw#m{;w|S zHn@`5ov+8QUcP~^STdzL{qY#L|EicjX19sG9IQviU6vxPZCmj(*Czi8{Ziin;q4Ab4@L;hgi<16c@@)B{TRmJSI8opna;EG- zPF-^=ac1c-o>b6;{kb)c{~FWeFMFqOKkzDIhj9o$a=BeRtfn}XlZvGJEahs$1)c1q zk_t|Bw=9v`Qp0Urn8Yp9UB!Ps`Uw5CD1-gXNRm;y7~i_8jL;BwAue7cs#o<~B&-LX zb6tBEbB{dCY+JXb;)zY_M4?Iu-%uG$M2mfi_kDlzhfiE)mYqDuN+L+Lr^Xc0Yu$2e z+~^|bxg~;Ic>NK#vv@maS)9)bcI~asvMlCQ7KT>)@=tNxEM1n{Y4Bl zw&0l)T||KCH?A&4f?WD7mJ6>h;GX9w^UZ6%5f4j0a)-ul@g@e-`PS}tD;y~ISGW}*D>9<#nK(AaNo-D6t+!FK12(vM6gfMDSU3}2sG*Y!~62EOp zKJT*d4pIB(J$JWCmCq>nfUR9tMS8!gA|v)bCkCn?W32mj@>94nH{xT<|M*%<&?mOB zPj)`#*=8BO!{q?2lV=b4l6trz2?4$D|A9~8@-TN!Dy5lkBX zK)EV-(<}cdK=R@bL{)4oOy5;B>Bb=02S%xZPp9GTq+(hwst(?tbCizteFU># z-WPQdmdFcza$YO^qFz0g?SSOVZlgFIEqaEomBa7vB|P1S4#wvmTHl+|Q7_V7hMfUZ>%1LD!w(y(&wJ&v>ghtLh%%(zuJLnO>G5;F#-+W-lY^ym>_d* z%|~ziJ%fbpXaW0SBvAN6Bfg8*1Al`XNLiaV)%^1v6uxvt=(VX}z^h#}@a-wpW0eIC z%y|ynPxXkDjwr)PMPHDm?K6N=ccJKK$`r)m%>Zb3z=6RmagTLc71AP*rW2Bi!O!F~ zV0btSN_{hcJ17F2dp{iw1-sza?Co$k@Dio)wF|hclt7aj9t&JAi4e-`8kIjK7d*&s z0A0G(F#7vkl&(U7`zHn9Cs7Q|JP)Ez?z_U}qdpKhqC;QVfx+5`6cR0g355EOsU%@O zER_8Ug;S~oCnKcLijzuc@Y^%MC3z$DuW1@x`6&>-_;m(kHvI-;vA3z3`eU$g%0ZAl zpbrzbIz#$Xm)Mma3nqx$uy)@;q(jaIUF|#xzWUb+V(^oK(9tkzV~INq+ZqA(Uuw}|X(iOaM@1?Nz5?3O!Bo-JjbPC?9V|6w2%I!YM$a3o(9#C^bjGYw zK>iGZHfztrXY*}o?e%?dNxT#`rh%d_&)kOlYZ!RFT?mvuqUg9WLup9a(idk(pb_jG zruuFpI;GYEOFF0lD7%%Ync-|&L#+c$9FWEMv^pTwnh%H7Jn2GA!=`kh3})^a1NV%U zfletGRO9{{?EPXtw0yrk)?%KBx*`jZ{5DM}C7+C{bbG@iP@UPp%F(WiEP(Q%bF@kV zM{iLO^Lk`eQ090J?Onjo`4Q4k`;rRQx5W?W?OH}F8(jv&=V!v!E4K8%5OezXQ-EfS zeu97G7NV{TG+_(680|e03r!JOOu{TnI53zfdN@A>T|Gq``yKle4GGMpy^X|Ng~&g& z+97i$VdqtVCKiLaKCSeb0S~$ZZ$Qr0%%{amM0&%qBS0xc3v-j*LZ9k3!obXVsEu(X z8k8@O?z{E?*e|*W4DUvv6|*F;jodA?;!83Zd+Y`~!s0~#Ih;n{oYqIpVy>X}e*Ne! zJ#E_blR7QuE(Aon0+SrE9u9_rUo3{#HBQn)Icjv|yHe<8uR$kpr7-DyKH}e> zg=Rdnf-)W`-CDj2ao=?e%$Yr#CNgs9q_t0wy5ttHY*P(%y4na!c0NK}r<%aH^b7Qa zdjpIyZ5EWYpM(P*rD&V7A04!G3H?KUF1o|;I!KWJA4O;4R>Swl@uU)36-rT(B&j>+ z%*+i*C_*Zvk`R()OG1iN+Dp9+LPGi`*+TY^R6^=^fB(RJ?sI4E zdCq5fzh0klPQFY_9jZl*1;$ryiZ6rxLafPJ#H&Hh)#p26j=EDJX9r92$o*aGU zPqTa*IWCeXx9qC$;29e_GJYa&E_V$+ZXbaAlQ{b3zCTcVcrxBF^*T~ZPJ~x;=g?kU zCT-RI99^urN$Q+)$S-|6Qgmh`95=OwerRq@uV`{5>U17qoe#rEJ#+fK%(-5E>jhLO z?t=P`5p;3a6q31S6Fp~$2@W~%jEtL%;f)hVN%>4w?ARrO2h;w-_8od8eNd5Hmq`fA z)q?5p^F@*dsf^p0kwRLmU*J85TZz*bXS#R&TsrOgWZKoe8;iE=0p_aPdm68wp=a;-hb1G%&rK<2i3`z8G+J>ni;}=<0nGJ0(aKwzn`q*N_oMq z;sT@A*2|=JB(brs=B)g)Wzu-N1mXQrLpH2Jg*BcqLg=5IA|!cfF(V!yV|S$A6y$zJ ziW}s{N}sevORd5J`F;PL73K_!VaKeVBFr`Skecn#5uQu>nbv7}Y^CE5aA4mGDLdv4 zbK{4y;BJ&9NKO|>&$gBbs~4wB?+-i>tnXeVc}0gA8QfA(=qX}q7yF9)hPkmD)FSy- zrB3!ju(~*Wf}&Jmi??8}`;8^H)x{sjSu=BWeWVU17x;wy)9mr3@I&&-|g%uUX zuxM_QFt%zgYa4Vz@V4K??DNkQN>5iaPHi4ix%M$o=O2QlF}%>DxKxkxaozVGp89s7q1y<=C2*VbGTwz{t8E39rZ>#t4{dk@)7pZGRScr^cw zaOSc#zayQI3S2zfeF%zg@6i%VO#OKkBU5%_vmQHQQVZj8R7oiKGE>^QbCYeG8KidSi85o*@iW8 z>}T7J>~rg3?8EdopJ;?VVif)4r8|6z*sgu2*)p#vVb$s}LaLNy_rz+7 z-`(6S7>(O0JcV+CgY{GP^dBwpL%Cg~bNPLy#_}|8Dj&!u7&o!De3@W!%u=kdei1v* zWels2(}h{i`^5uK#|!55^MpTVhf5t4q2N{7!X*42peKkw@Y;bHg3`@Sp`cwUArS_ zJ&j}w_HY8z8_oP`wiGXzsUonip0f)6D;ezrNxb8(xk7cFKf5`11>0$NlGWN=BS_lU z&@YbOXIsC$VCTJ^#%8ro74KMeUJ$Ni2-gF`g-QEaHvDlnN%9qoGZNFq7dT4n5qp_W z8>c13D=+Y(k=ndk%tuyxW(ps;bsgL5eUsi3kp;&;kRjlOd$>o(mb7GeL-+Yx@Q>qj zu(jQ1tic_|I?m_m+}<~E$n0a-dUX;mxf})G>_ITfLJidc@$xmegdR%zyZ%zqYf9;`kE8L$xt`Fg@ehn$ zIf9uiX@PT-nrW4q>2zg-F}VD+5%piSp&7N$h`(~3kk}fmq^AU5MtPB`Cw)n6YB;_6 zPBLuFnoaaRyAzMCt;mx>w8Vsl=(=_@d5br{t^5>S)R5E zn2m>c{)Ug0rs44)a%J3^IlwSrhNbekF6be1{i*+uvDJ3ZAn7BsL2%$9V)Et@Nqd$9 zRYtFeb24|6()hnPWPBL#?|+E14kVJ#Tjs;;@@usAdpSa=I(kCSFL>|$6#7@Z1a?kO zguV^dP`h>l?U!|y_L;SxZaty{pTDxf^woOwNJ`OF@(r*sWfg52lulplJb{;gyMkT9 zSHbWNJYi)_&8HJ@1903Lr#pv`%)vw44wwSHd?(XFC=FbX9;c_4{)ZiG50lU&Z(@AA z8O+L$$9FFJ z;te%+rGu0I%8+P(3`u=E6|+xg5E~}}Pv}^NJqjxDlB@c-ZI2)D>Yhhuj$MfUy}yA+ z{7MAj;yQ4t`YSegxQMvkz74D$gWzWGOl)v?Czj-126Cq>(GGSgNv?^+b@P(Ynk^@> z#`UFi;eU$c&-^B=710X|Y&@ZNavEOWzn1V0x8aMn8?d!K8fwa^6D4m4Qt-Hid(do& z^V}LhboT`;OI#5PVLWZ5dX!9vxPejF9;}qu3EyPgB}Tt}ppB>O-m%<+Ry%wdxdCTq=Nr}=G>4V;du2?t?=W6onarGRM;?Z} z2g@~k;r5qLac)B#6w*#XZ~uw(&g@V4-o3GO!~1lk_B4nvZEo;=+ia3qGzUp0b%4H= zXP{BS2W*0mV4rm#aQF@#`j1>6Sl(zsLie)7X4yVGZ%ZmsUpkVWiaOzQsu)US-e<$m zk=%b1Qi;R9@8tc0Xwq9f34YVsN;}D17Z#5*LH*cSMC5%5toE1U7R!2=eX|zqvr~n~ zxAJIx>Pft*mIoW9BXNtM^` zMR$Ee6vN#a?$C6l8VKKwON@hmgW0bPQApBtoUCMy z>6w4HcfX!vqpd5kX7*l~?rQ}?hZ*3=loi;k+K&s`nE^WlXBg#bjI~ZZ0>0U&z^Er0 zSjhf|rnWo7q}98Se1k5uKGA{{v}VG(`5f{~*@=`tJO*!+XQDQ*vl96i&tcT%(-71S zBCpp3$@xDL6_#Da9vf!?^~MQsv#C2akj({0-yThkS@<5YG^J!4sNnqQ|m0alb zGf*fpl(CS0f`RvWAaa>D&?y?j&HH-=yq|a-t{YTlP9awQ+MYe6k=aU2cR z{FcCw5h*bIS-oY!lxa9k$q?)-e}%gg5pWu|2!#K8B2u&ZjXeId;cS^?&>p8ABY$T48^dQGF76cg}6c>C6 zsH90jK$s6KGCTqLJrj}h?D@cD=uz3L>E^qfgQumhfbzC>VEv1Qwgcw4H!mB$9%2YaRaxW6 zry|ODqax18IS)ppWB{9UWnhBETI@1oF*l;;9eTf7AL>Lqfj(I_&u+j97yh}$HSes% zr1=S0DPwo-UGp3yM>=Ac{5BN--5wkH)#Kujz1V0W2efNq;M7SaAgm*fau=__9}g@A zmP6`L-tB1m?E)V-Vr(m{6#Q|2{y3uDX$o8Sn&PSzlQ4Vg0-o+RU&ff&NIULGhL`I# zun_OS|z?IST z*H7g@r?Ce)=wEw_fJsY~C_!M@1Kb16V8WJm$-9UC^;Je*=cv03cET<9) za!;AkBaBi=V9zjmt#>xEQ&~YiA6x+I>^^|rMg^cY={>f#p9RB*&X&A3$VFp|7ZR6{ zBvk+IJx+L>gcUZXpgThYah;(l>f6Kti&iDt_Q_w#$&v&-?~pI($jJtW$JgL-$NO+^ zdmhl7WCk0i&%~N;v$0QAFO@k;1$Fl*lhpr$ab>3mRg$_7hYgOR`$J2xQCd8%*iYPm8z0 zXS?6S3a|6{_l>{M@ZLe0e~uw;5wAe#q*vHw`WcGmyFpxvFI?_YfEh0_e(|sX>-4w4 zwkev_-M^Qgpa!j1UJTJgJF=kgG;~`# zls4_JNBLV4KymVSbTm&M$Ui>_7wQ)R>-V3*S%Y9)eN2RYT+^f<#sW^I_#^ey;{td% z#Dw;kR0k?u`#^2@9%x~h4qSFyplwb;=-t`1$oyL>Hu3@ZvCc63d-q4|X}Awp4*Mec zHYWrO`)Pnr=3uO*=M0ScB=F^vM7UaS8qV+<4NV&JLDeW79BH%`*R+j?-5U#$kINWn z{3iizejW$wCO<{irx##5<1=94mJB4zpitQ^AK?t18>N`2@<{&a5d*YS)RTDQ6EO4w*5-5Uo94fuCaxy^wz;^>^L0t#vV`ePs9%m z3#j)n1~t4gMxIw<(5qv^aJbD8QRR~5RW?1 z{0)cwPwpbyVYS?ukXcY|k`&B%Bt<*X6FjNKT*iacgYlb{P{2k3Yt%=9f+GiT$`Ua( zLiaTIv#ka%NUBHEQoW$(Fn8Q^RZ886osGJlr9n}jHlfN&pi7(xKKT0u*0o=uTn4rR zQlt;N&%ER;)+E7O3zop}hFw(q+nLzI>!rXZbRGdVkRO=#mW9M*m7 z0}h%j9up*op4-}DxtG2&?(~1iV~HmMUktDh;UyDpKgH&eZItQ6K$x6q0Waw$;8|9G zklX!7Xe<32+kd%_r(A9UnYkC?s!DlSKISafq8lRf{zA*m?dJ+`8)^QG26BoR-pz+l`&{$Th==^0;r<@z4;u+<7hCf15)e z)q=@{x*~c=$Ua_aqayPV!lnX zlBiTVz`TO*Bq!|;DXRZUmzA^hgvPt%73m{7yd_>}HlImR`3(Kz)x24H6SFnrx2 zf=spEK^!K=&`oYeq{=Rij-t}>l9D5|y+aj#a?6+zEo%muOMTEpy+ryXabnzFO=Zsa z*N{vTdAPuS4DWx&mzNuS0*ChxqpRbT_?{a{BxJ@QpqOwXe9+}bU#x^N<&Mneckv`> zya!WQ8be=6yFlNwu%RP-l*n#sV^Zk#lC{v-E)ReFB4eRUc1FSTCeW2>H|cZ1 z?(ln|J~RIBE@JvggWvGHpLk$Lcy59gshTcFGQZrz1)&Hk@7H3Khq|xGc;O>+9(AKE|ooYr_q4XtO&BlUCqgV-}I@ zTlqNeF%1uZN3^z+33i*fjd-*uz<|VL*isikl5*2a@9NF3Zv{C9@aauWxkqtZm85H*B19dMx zP%B^da4}emWMuz~*#$!8X!eJCSt8M3X1$3+c+tztm$VOm>^xBoDk*3E891 zYvm=;CA;Ei-O#mk-Gg~Vu6wdXv`dF~3kl=L-X6neQWDq@BG0(KE`jA8BjDUy^`vj- ze%Lt4fh_Kx&StIr$qTnfOv6u%=Px6v^0WjZ3OFbrXHUVgG)sv4Qp-P{ zv0Vr)moULqQbzgE4c<&;r_hq##yAU?1@FR>Om*#1LAx3Yd9*RV>eLKjM$lt+Wb|z| zW*p1P7u^$D8vYaRjtv(Sa$=YmWqql`n;gC?tX@;kPA13)+z7UyQ|_^*N^}q*K9ZYVDtyp(L7d| z<8_3+emh)nRg4rQMoJ8Om}gH`c?b>bUbDY)TKK!#r`Whd@Q$xC6+PP@)(ytXAZi!<4%(VO_cu>*qsBpE+{cp)3${z;g05Qv_0?^bjO>r zi@ioO-|Vk@#4-Ga(BVRq%un|u-ixnTsLCAw5yx)$Y0v8p$rrF%H50aZ zyD<0he7^I1H0^OQf^o=66_={b7EJFb3NGDqm=BxQ3;oBI@Og8GGgL)7`@X%0zmhza zb(}syC}`QsG>tIkn})t*BQ)=@mIkWAxyTX1quK`6bzTtLCRZzn@p0C>_aNK^n- zgfO{>O4*2XEvb3z9_Cw!l=1S*r7K$3@fuF@ba=MRQ}(8itz3MM?L4!UZW;H0p5el= zEpHQ;?rTx3snL37z|U7mn>ta@hjlC*S;!c=j1``DS+R}p+F9kWn@qiC3fY}AR9G^1 zjNt72lYQFpk4Y-T%-IXs%!1Q#g0k-ge(*uCFsgMAUp+}I&CqiZTy$y}$%a8@OMo>j%Pd<0@!m3Vr*(P1`r^hDP65zESb%z<0da@c=;&)FfC zfo%8V;mpLa6yC1!2H(?_C|JimWxYWsom1JuFI*MPmqg03<+K)~v#nH6n{hxe-IPK< zPw!v~+RMnNbt8qYoK0-as|G>t=1LfAda0`dWV_jlrMNomk3?yn$obH zi`k|SH(t?bg1BqXF7f)Ie^{fy`^?=yV?pz0CqL^$BmYsxX+0jXLNKb6wSuf_gqymV z{No@CVa$b62DL0?eXHDfm*474(2*rf%fSzf{E#F@#k){Y@p{cCUx{FD_pE2SM{VMl z+rHz^&-SMc4tFrBtHuk8PBKgUuRVf(_)|foAteJBh6)$knwf;0SU&1|sj#(oFJG6m zgn1n{l$HDQQuMB>SlD51#00(f z1Sbw>8hfv?;m0^8T>U=b8yB+L`u?m{%ql_KnCJUKZP`WRx3Jzdr|E{9WrB9ECf|Ql zo_##ejgKpQMt`a4V5DKK%!0g+yi0x#llbr#9}rSY>o5Dw_rx19#y^S$xqq`zkBt>9 z3DOWA_*4k*x8@3?#5SyV@jaq$oyX=XJ!92u7x7lwuKY5&L+rRFc{bK-4{@IGlUbH< zjLn*5!WUk?A%u0Pu?@}lg^q?Fd{?u+P^U%suwgd3( zv;WW<;ZZPMagGqS{T_d4x2K>qH$|{&y2ad?Sjm{mn2|wyIaaiFq@cg$8VPh7&$u5t z%Q1M`b$py zZ!=QD}jOV|r4AZ-eNg3`+qQB1;d`f@Pw@$S);{wK$f~YC{_JaQy#jN?V zylyl(AU?qNrv@-dNde53xp5@eshSohEM}{og)o)rY4~IE3??$fRd%KiXZuGFFd^hQ zpYu47H>5KdvVR*p4p#6HzpMDlr!M>lS4%c#m_Hkyz~YIlDWlNzk5t{MW4_KZXUlEI z3f;~}*<|`6^W85<7I5t5)6hLO>qR*KIVO+y+wCnZe4NJjvF1#P$esT4iQ@OK>*g0J z*$I8$66yHIds**{rR<&+znSY>hw-oFLxrxS4u0k2Jl!;%IXj5)%}EnUz5)~DIFU#Drw{+Fb1RW6^WSIv~1Dqy0N z`|Z5C;p^>g{>QNf-hcl|Civ$BBHT-3J37C! z151yx4huE;FEai>!m$y2!1^8JK(jU5V)dRR_X*7Xcmq1CQW^gJ&leg!lgHiHOYm%) z$H08VHT2_x1nu2OVKuil)PDUv%n2F;eOrH`Z-3S!N8AK%mV5)<#*N(jHzK?wa2NCk z8_4{Q8}M%K6guFclsl3*1CCld25ZVI!lrOd+Ssfd7@iW)yyfe#ZTM5sP%9NWPkTA) zE-nK11LwoCH(vC$6D(xc%F}16(;zk+4Q$o`w1HUzLye5kK)n{}UuS{a$Q)|R(Q@qc zxd!{fGqCo76nx80z@roEvG)Eq9J4`a2$b z>}#~;ux!ue0zy$gm&4euWOOTBfSueGYGmMllDYPy;7L^_dga#vSm3q+XFmALWx8F* zOR^`D^z=PIyZU>*AzdW*^1Xnd5{d%Xyu!u@w|_6beYR4*uZ&1 zm2YpsEUz;l$2v?_BkqQKeC25O`7)Mjz6B`V{s@twE!@RP@o;d_4A`et2%E|pq4w|h zDDbhYE}NMTZjud(`1TW)|io+m+N zbPx4nUoCU>?km=-%okPKgraV~b z;7a{I`dU`gsernhWmHw`0sJwl3|FrV1{r;Kfzd}5tQ7tqQXUurT#mbPi=B_*{Z^*f z_VZ=#gQ6DJzEuPVO6K6TX*zgEpbt#;!N4f*2V$RA;c{ad>O5D2k6$H$#^(vxh4#Tt z%j40Y;|qeCYW}~m}oN}zyix5@XNDm z$e-u{m87vIlok0Rxv#RGK}bGqYjve^oiAa@Jq~YjUxbaVw19NUU1(L`32HVv zk%Y6)G0SIv)sZCTs7Bj@ArntPGB!6*|+XhjmxG#g4r&V}(C zzkrV#G#0J>#l7V!v8NV8c*~dgYQ+W6XHgETb+UlB`g+O_q+v;=1@-IGXq=ks1wynO zK*|GqJh8?JE?kv?!{+P&O)LSgYSr+&{Z-T#kK<_m%mScN{0wz8YQux~?BK`6L1?c= z7VzAkP7S_0Pi>DJ1^RBEL?@v;`z%n)8)wj3 z>keysec?sftZ8n?an$F0n|nPg4fVcRf%GX`O35Uey4A>wHrQ^*wnNwA*Un=|_Q_SK z>Z&7BUT=suddQquN6bVj_4m+Pg*V)p@I;{U!L205zkdz|ejO2!7VarCY~BhE$1 z&Zt?yXIusd-Uu*0{|;ALi6Hkq9{&)|gSdOgLE7PF{C>(wK*tIcexnJugzSI@XR@i` zH*Me$li@hdz7j@zz5(s-2O(%&fJfM>0?VohXnSJ;wQ{{J4C>g7^eyF4fcbEk_d=CC z4*ZO828%!F907idUGT`1!{BQ3BP6*ZkFp|KK*F-mptZq)JC+axD(6t5cde1A?`s-- z@wEpub#KAB;eU`%VkR7CZw4_*g3n~I;`PXqHDvVc#^S@3?# z5me_8fi}eqhwWqcP*Fb}VUh#_C+Ae~dbbzXx~vtQi~CI-4;qiwo=8Bi9tNRpiMKeH zWE;tK4Fzha_E8UYZdi8dx+0U#%V3_`JlGrIaP0To|-F( z2X=O*@JQ@vkhLL^vMtS)Sa03N)e>DW_RSGc`?(Z+o;n7a#{uMKkcX}zA4cgE&P6f0Mwy?dl6Ajd@Hfj)C(TPA|%KpnJ|lmOQot2pO|#VBgmCy|DW z1}CbxgvM(=K>a~SsO1CQlv>PuxV%UYb!^81=O*pkMmVL3vNxHiZ$<-fWhtF+jlC%hDdN8Ob8-ra`6MjS^iotHR@H^z|<(!l2NsX+Psc;IqiJnFn~j5{S! zz~)BVaiFI;uIkbUN4H)Fwbn6|FVv#u&Z|d8yB7lQE1IY;MT@^Q*#|fI%_MOr+L6`# zM5t7K8PlK4V66alFWvhNNA_ zv8Q86WM~}xX)=ZM>hC1Is=?&UkSy5SUqHY4o{H6`MB`4~-)O`2|H$pt3B>D33Zxz7 zn9~-+Nr#_tEt+kf98KqcO)WEar7vpg`qnY>3 zF~lM}2Xwt(1`{q)Sg+s&oUc9&pQu_-%sS3M-4kVS<1=0Q*CILcxhWsEKc7qXPI1S~ zH;TToaTK|junwq90seGt>tAd6iR{ZoBDm zU)o^yj0@P;zl=WjvINJ+dVq(;=2Yg!E-F~1itg3iM{hB+WE#?L;zP?W;$x%3iSfkc zpz`4g^7c$5p0e*5T-@^&d2FhL!BrY~YU4)w`D|T47hR;>ZG8b~*iUa0WWQBMHNT*olT^moZ+)^WwaB~2vrJSSl1}_lp+XhfDy8#W-)S#SwyJf&@XAs3q zrT^A=(OT!eLvm6Ts=U5IOl;?33*S-1*SU>|Jd5!&aS2SiGn>xz_8?aLFn9ouMk+H# zkPjc1K>ZD}&z_@A>-E)O>5`Xp^NMaTH9D5KbfwT;`?|rSc#K^5A?W$0SfJ;6j1Jv? z3vaA+B@rV}6TjmQxS;0;G>BE8HPhoj{T3HI`tLOIQ8ASGcsJoEwFC~Cc${3+EF_DI z+fY~PAzaxVh1x{H)ayh{+LzCyy-PYQU)_{(yTv`C_Na}}Cqd@F0plbuSB-%M1@%<3 z<479u=kVmF+4Mp75DE1hP2cd&#sN)cXtZK47NWmj?SxN~zrq6BIJ{($u56yKhx1iO6RlCZ2**ia!iW-_a^oC)y0!`S%Dko) zyC<{$Xpq)ibd>SZRpZAjDB`Q*cv&!E0~u&4mAMJ$@Qy3K5$_T;nIC8d^XzydiCKe* z;f^wy@4}90kE_IYSbIKoP89QN6Di=%SvpcW_=z*K_Sq(ulFg0|OA=ik!q2~A0bDpnJKefU=WJ=_Q~bPmvt14F=_Duq zV^}xe{x+Vr9%;xLp4`e8lWFYGmL<$^w+QA><`~8-_$dv?U8c=0M={S{DYIiPG%(Y( zkJEXVmXN&AN9ap`9%J!j8WRyMFjM0@8Mgzb{NpAQ{=dX4G+wAJ^z`~NZ0STgy>J(4 z9`}sT>Su67&R1HkAe(8lFrar>cQgBi*?e>T4}N#o9lpHBfG+ZUOYE04lB!Q>#HIW^ zZ5GwX^yp3$_;r|Z`mm4mtr#UJev{HFK8AF{E^XRx=Mi52L>=9`HkB6Q`mn2Lt)8-<^@b@O(_r*%ycP7gi zo_jzyDE=m@<#%}CXTTsoW9HA{^Yo0pC-|V=Dqe1Tv}FI5SYlPPnr^)Tc+tCLe#XQD z%mn5uAGUfZZ!_#3Id8d)nKNmc;JN7=9rRY2iG5JXEVuqnw?9rM&zA?{Fzqb*y!$c+ zO*zK|tNz7vFWl!>p2z%M^%Z=@(uK6SVP0CRJcEYbNq*x2f@( z(^l}C55zKtYB4z0D4thac$}X%@&lQw_nA*w;K}%Ha$&epkh%P9D6dg-2tFOs!xzk7 zB=}|gru7JEY>dHnV}Ic8&=a_6Vm@uQ?>W4>+yA0qu@YK_R!_;fw3^ z>40YqWUB5y`oQI<^v6j&7>~Q*)fcaDslO9c?#ZLWk4C~yvqDr{txRqmxx(F%BXr|F zL%eqR40x&N9qc)%%vje9rJ0qVXnU6_wCNpnVAGP14jk8^-R2wPA+rey@+!tDqR}Am zgBuxld>u(XYe$d!T?O4!XA`sAe#E^Rm9#$Ef0(qzoGFHc_M zwLx!T%Cao%H}@BGQIADnm>k^}Vui0w&!XkdTS>;&twc{eN7A0z_vkEzT-toDH8C_h z3^v>4k?H1*#73k6EvD>*Is*sEtEVGK_3b6VMqP<4YdJg%@w+?K#deSG|(!Y zA7K9)4SI3THCYyA2ORg0fjW!^-KTe+20FXwZkGix*z75?%}Sv<_gm4Q3-7?A#%{E{ zTO6%XRDt~mALG*_SHknMb?P)vMOriUA?QoEDdX`4lPa@2+?0?cxOSf{eN+7<(27c+ zhaK+1^O9o7xg$G?NaO>oHt)qp?YH5kk0w~*q0C!tmO-ah*ARb^8=dk;0h_HpPkz6T zgx%LqgO0`>V4e45G9+;yJby(Q%8;Ze(jtQdm+V3s{+6U|b}g>hJpos$^H|k#CN8*p z9+dPmbW-VKR8jH`A4tASMXj`k8hbzCiMK7t;u``O+!PG!?$5xpvZL|iQXkN^JO@2F zvy^md#p6oDWKj3m8|Nx|&?kbb5Q%A#10S9RX zjb<41xC0xdEFgZ{KZ0q!AK9HQ?%4T`65 z_{h0N>e|%|O771JusiZJ*LheS9KSlA$`-|<{DO7V%IQkfyd}L<@=RBtGJUgXPpCOM zkQRnUO-uqxm61qiv$JHVzdKhm>Jl|1&H%qKbEp2h6-BAPe8tt>wxl%2r2u8$XCQhx z0cj~Fl3fuJwA43`QkSTLl5Z;9`St~pu~IcKOF>F4d~pSMmmWa@XCg%T*Pc*LJ!`0K zK`*&oUbn%5Yhqa+APB9{Pv8>PIfD%Yh!f4fSvq->4*c3~k2-VjaeYf)Q5C!7x%R4b zs&kDqw{og0lJ@FTa;C2?-&vEwnJBA(@T_A%Me4y3_cAI8UPAWmrCesCIYouZ0d*T2 zF!g9TrTu6I>fTv}RMVz$0jp9~A`9eU>ND^u-a9!tATmwxzk${dcth1P5_>3zRI+tFlz83gGr^7$T~1e<#Va zGe$qNC!mw=ZlW8#s??zCBZ=<7bd*(p0UWB0q%H~DknN~Ks(aUGiLm%A7ZBMl$@sjV z^Yn=VUZ%C&gi;00FVh_akDXL%XCUhdPM?g1E?NyPOlYLiq6;~th+a<}$-Via!Ld#MM5n$FQaf0R%j=o~)<&do@-^c@)$Ux%zuFO1ev7l9 zhu=UA7Uhy4WFU(EAt1GV&ncDQk)Z5fq2;isNRi9sI#K-C6R20w0F_3p5IJe8QP!jH zQuCs+sLa)gCGWh)b9qNQEX$G~QAqBdW#-F8;B!G3mA=}CD+fOCr6cQ zec~K`+DK9ijU^8!Zj+Q{%-}RW*+|Gh6?Yh=P;Dyy)SuycXhG*fY6lFXZ11nKJZrCm z<{h=Bo2Pv0Y5r zxyB%N|4_U^>j&rJ*DCVYwnMom+qj39-ccnnOSv+IJCXp?43V3EElB7-PtBZ}0#3GQ zqTZ30Q2eqK%A@(NJ?Uxycrg0nI=TY?$aa8KEHY(wOEtplM13ph*2KvIR(5$Qf zL^E@YV0|y*+KLiN->6KduE;#+TcfujwD>A`+Y}6}oPLOAI(`u;z(nvwrG>k`<~GV* zH3He{O1NWLBAlb~jWd|=3%I5|rFyF((W;U@ZtWH|sy5#e{2CJmR;<@WcI&(-L$*?+ z+d3P0WUb^L_EiD4Ujc>vm<1+n)j?)WH>gr)*>m~O&ozDdL>1R4p!D`%oc}!${Qmts z0N?!3>bq%NXTB?!{!|4AR_6k=Uk+TE7ll0ki${a&uSj}6(#SAUf;`XEQI8Vdg8HGS zx!CPPVUS)Wl^eJS3_e-{=FjV)-Y6?mlRm{zu~&z|CT|Du#U`1myWb*_V;W0xmO`pG z(*VfpMghUG4k+B*#U0a+Luql5RP#eE+@OM}D)+CVequ@u{#=d1?@X8Up5v)!V=sVR zl_G9}QXVk+mw+t%203UQg0zpSp}x5JqLPEoTtuG^S8(bf^{wVGn5yT3%bzuYve^?v z4zw~#eQ5;to*w}=;ArmWUthGuI-BwqDkN*Hd$@D$m1saHq?A9eMlw|)lK9@IYC|o# zGs~ue^I=}pNAXNB!O)*-d%1{<{9GxKL^w#^jLk>US&rz9Aq2x-W>Sf($DquLUQT<< zH|oG0nyL@4Mk_0ZA(x<~oXNd9bhWtztg}DH^&2NrtzBcl^1DW&s@c!EfcHMg0M!JJzd=&Cl*g&=DW}?iuCpls`mP?sE1DP(UMAP&wLD-v6lpDB$Ys^tXZVn+} z%{g`avN8q~w5$T>HKp8u$|*`?Ya2IUG7fl79?7}f4gaRNP;hPnrrzbyAoeG1Zw6{S>;awtV z-VsB&{Mm$zhOv~|(7&9i)g`I`ZwJk5d?*Jt6Gcv)$Vtwwm0k!EgsQ>22Rb*d8 z%5?*hgyefDWq}7!>k0!#ei_uzeg!=4WgpQ>NtPZb@YR>1Q}Bkz_`e_lw9F1 z3kUHjv`P0k(7&g}bZqITBk-C}W?mB1KnnJ%4_q0G+B2x6_mWNw7t>%}Q@N2M#{Q^f~WPKh&{5_r{n zw0PaE?NYt0TtPV}h^fu95c?Gth}|E5W*Z#hg#O(sR!{DJ<&6(dk{a%~AcTBfA-2ue zq-R#05eM2>3o5&|@h{u6cpa@MKCikN>;Bm(-O%-2C}URfW!d*xyVgwU@prlGfZIoQ z^>kXQc5}9LtHe)Sk!vd+VdK&`>B$e4QnlDL zsj5gMe13CB%EabL%YLf~8(No1$(nsqk8?}dzh+V5y9?5U=#<0amTh;1!{0}<38C)d z@-uVAO=D}B#s$gzfe@*9=gbr0{seU~*0?5&T7N_k%G1T+*Om$X$?;;*o_*q$;$za| zKcb`tnv~GFFj5*gFHrCZh$WK56)gR3rPOukUD`xzhPb@v8v7+}g7{td88I(EMY^$I zl(g6=O_=}tu-M}%;os2LnZOur_SWm+;_k(|;_o$vWni1!V- zEL7xu=l9;tm0Hb<5$Cfrq*k1Y_`Gqlv?*20rsX1Ovi%V0@NHq@TD>)_|CD`FRUnqW zJGVnDmog7!6poT+o|E!fgQtbtPfkhe7s)el|5&N$!e~};Oqy^-rSY^Jca%S+f2 zS|AOWGGDs)Vz^AP@>Iy(ent3ms$Sq1r%6LHt_a$HUD*fK*R3(7`H%SXvXyG?4A`nA?!OVtjJTC8jJ%V=nl4mj zy=xB%0n6LyC#Hd7r8rfYuQ5_Acf|>uk8owVPws4XBNA%scyXWaWkL8DE=F^E1k+jJ zLfZveN^eyY`^cw?SEd(;XWdySt@xoNREeHQH&1yf{Tt>lU7YnzNM%CA(+WSZjh9<_ zmJgJAm}Q9dnlA~%H>HT(SFB-6{tmKTBM%A3PiRVCnd-5^=t};76rG7%4c{NfZ)sCW zC6!7Gl@u*^X3iNTNs@$QD?}&~($|tCv`M9X6G9S_wtHvhoGDQ%6{V7;Y?Y8CNwyGv z_xA_f=ef^3vz*WJe!Y&`Pe2+suc8AA%aFZu2((Mh1M5=lP_CURnj1G2#K{x^mBlt( zb59Y<6!(Ha31nCQ4*{dDU4Stg(x_jS)j+>B2MxYm2;@t`;0HMXp1hifEV^%@(sCze z*XP49-*kvOZ#ot9oyNfRMFTwY_yJ(1iQpLi2QZYWCz~VBal7yQ1iSN^I6ci+3A^hE zO7F{}@(-xs1LG|4r2Ug&P+~L~^LZRz+irmerf%S51TippX$_^)a}%Bapab%KC3s$& zLi9@OB6@k^3iy??9fcaRz;AsN7j%;Y{aha>cPJbR+M*d+!lQ}Z@)Q{Ti-XeV{NQf` zWn8_vlw#HP;tP!zG25UDdK)x>uB|P8`lb>!50RAY9WhGSx(4qjK2ck$;-RtoW3<9P z3r5?Og22dL@Os{HFy`_?aKvLWI6m?Ld`}91{l93qw?q~^dvKi-Nc@Qf)+&(fN&|NS z450&B3GX*a7*2cRky)rQ0QTYdb6XRz3yh`&bKY=Iw=Tf7+G(t^#FgG{FAp1ye5n!> z4>(~}9@?3(2A7Vr#-#B{%5R-BQdXahLc9gYI@18?cx-}pKV$Iri~3M%|5GkVB^>WO zrwQ1B2&&vVky?G_2XZl-4mL(Bg8};`lF7ze+_9A9EDU6EQDq9cvP&De(~XxOUKLxW~S!o?Kvw{v|>J0o087` z$4$V^IyT5U@;vGH`U|HXt_!2|8d0KVC0hG68)&x@K$G`G8(U^#?SWXZJ~R>hnxh5I zZI#BFCN?-fA(Jdt{L0nusid4NQqYCRqbQ;EIXF6D1ztNV08LjV&@nF&c%G4tzmJ^@ zGW7gF@iJqGZmtBjGo+F8mxdaceYyJw0Pc_1#`gj^Bs~*TU>AfD z*GquL%KK=`^GSI2ep&EG>MUq=%SHp&mw}2=3BzF55cq!PEUMi25G*HhxIABXY^*v> za$k(W)+S+GU+z_^=I}Pju2~$)-*W^l)5mDW%@06f=S8+Z@GF{RCWAfvmZA+NF8I&3 z8ZhRx7`Q(^4Pq{Npi*^BD*n_uyxKs7)4W&VM%YZb2U)`LkMHfrHk9X5KT2unA41J;u7esOc zSvxpqVF;z_@}AOulFFJN`^)u?nuDUk4`?eD3H1MT0`I#eq>Lld*s}rP87@@k0^ugEpwN#h#De7eNM#`ta1Q@v%f-c7xQ2TWy zl~wYKwa4L1b)XxV71Bl}S_A^sj~T#pUpHrR;W4*bcQ=(y-$0qWwZTU7YO-ma1=k># zgxq#FGi_-Xr~@14gC`DEq+sM6$OwPU^~^hq@_!waJWn;`uD&!b2*q-arb4dvq&EfL zp9gJjkI^GLKQL2YnPX*nbWLjuW$V~YzPs8))*m2|oyT!%uapCoZs5;q%sz$EcTeW# zr7T1W-cPxWIqSJQR&|_$(IL+HAx$1OSPt@4xg_>gHdp#A?Z^zgBw~fp1ShrIrr=sM28{_ zKz!vXG~+}GH_bns>nM{4uNOR%kd`v3El(~}`s=-cs#+2i_=4b`+vc(%XQopP(`7-@ z1Q(FgcbY9e9gSRyRwGm=i`tJUQ-PIXK>3N}T)J8fHF2BJuXj?^x~(rLSGR7i?`alQ zAk3!{9CenP5SfhnfjSr-F97A$1Js1HYg|l=JUQ5T4w;@1;Jb~P z=+o>;l43ZlNs(+2Crm9V(r57!PRLAlI#$Ks&k|RBc#Hw4ObH2X6OKLs|OB z;Q@oDch}&zAMc}t_CoAF`Wg8xzAa%&ou+zQzoM<#^;AwkH0<*{2)=$y+j%MA5QDjy^+$_8#5a#7#D zE#P`u394Fgm?}yYp(kHnQ72a%#ex(UBG~jiVUYM3ovJv2AB^3KOWPG-;+yl_?C72F z>GgAPTdE2|QtIf@9taPgDF@}_DDIwJ32?jR2G6whaZY3`es;bUWSFMo4Py&Yd{8&~ z+8>T8FW4ig$CJ?Z&|Y*e$Pe$lLSmQaQb?}tGL?h1$!UIy_^VAax?G`$&5f4f0#OQh z^W_BiHs26c7aoR7R2$Hjqmi7)($^Gs!w#lyK0z)&wh+B(9)qJRwsQNAx#RPSIY55S z3RpjB26R-3<*x5p07A!6!2a}4ijL4iZz?_U$vM%m_lFJ+Rcob8EG6e3TXhsX_ZYWD zDS^9i_A_`m(FB1ydGzRn6P1429gchwQCp8nL7lh+V82Nl%vf|B_yHr3EGNV5^p?l9 z3Dwk(qgR1pU?a=B{NXw`qye2EWjM0aoU^bd(FQ*=uvp##?EE>4GmA>0;=YWBe*0#E z)>rYYkLUyC!fIjZs5+4Rw+uMWIE~(#S);0?Rp8P6=}@yJ8u?eop~zzskud5H_#`zG z#>^~Zs{}*T22{g6IGF(U6nzDzm!6>NVOQAseLLuTH51U6ucP^;$*}VxiPX+{Bk%D> zSmW+8ROt1a+IYyABJ5<5VS6ER*r0^-E4-{q0``eNGg@!!MV?BM%xlMFk6d_0LUCP-nq;Opu2|26-Hs9RYY!hFZFM zHK7o4gDC&^PxxoaEY`X_i7=LXERHj;U^-(2tcAJ)TX21t{4=nf(3G$jpM0+shK$=G zzV{=8tk^0q9&qYr)=Dzr_qN%yDZMe|#~m6}^_~`Dwz)Jp)<}!Ja?YK(?&VJ|zwlca zxG6-KK4u>Kyz3gnD%X(w;B020#${sp1a}qkwc*(V%SiE+!pvM}_rgbQm@* zQFtXkl9?VE$*NvoCtO^Ak5SmMlkM@D$i9{fW7buW9{V8MEgV&_k;3Efx?z0{-&b9eO@Pki;bmDf>e^om3Yh@vsT=ZG& z)y9bh*EW-6s|@ump_f$D+rsWi(IoYhl)378iky>9A>;pRkT9$|$+l_qG4o7(gaKRE zus@HVWv^(33-yX#lICBv*tkR4sk7qr5{v)Dx-(m9_ZxP5qg}4{y zPJE9z!8U1oi47(!Bjl#%l4G`=B^>H~$cu){*o#NX*pwN!Snt!C!d=_EnSrY(nET(X z8Sfi6#9QQ8a$D;ow&4{){(WA+4A1(@E|^wD7#jyOsnlQ5+ZckKskel9|LG&KMDwax zn-_4N56%)Vre-setwKgM@`;VB>2W4zxKbQXxe|LK;OBSYD<}{`!24s7ty=Ry_T~ z>{hd2JDjEvFLi4P;m%s7y7wyk*;P!mTYV&|-@Ou<>tfd5yORC>DxE1>B+VfA6NJLV zee6odY3z&xa^zl9AC~!jnh4d8XFgc>5VNb_up!%ZN$ERpi7b!j5}rh(Xs>vfnTBHt z7z9Z_T{Y5njv0A7^fFT$Y{9Ookmf>{eP#^$$1@?dS!BhuT7vrak-1+U&8F1NB$dDZ zB0Bt1nd;joiS#pP2$|QeqUS{>jfw2R-73WUoLS^_Vt`039>;hi z1>%-p9IG>Dl#Sc@n*I9qD3RQMhP0d@B=-MUFFrVBA$#8JIq_cQEMuglg2P*zxc%Y2 zsIst!I+zm$rp%7xtd~1b!iepZ>7NNep3J8XXo4zb0x=*;eX_R0((FumY;B zav*nSXn|6Vr6^#ME^PdE3GEVU;jq@ZT;9L==*L8D5PBz-_0AhcXRR)BK5Of!s`vUJ zcq3-obURV#_Zd{VtdJA65U9L>z)xl_M%|@j@wRRIkltxK_SgJa@_W54I;by0B@8M; zncCNs$2lvmS3U~(T#y%bA`FDw?K)Uq7qP=C=VSC9;A*0Oawzcp`2M=H`u()3~gK^%c(r9p$tD?0zDVy$OVQUc}uUm6wHi*jIl1=rF+fG$c6zMlBAFa$afp?OQBMn;O z=ULnc)(@@bhP)lQk%&&#GjAK%&D`Pw4ou~qjl_{}Z@mC=5wTQm-fmE?F9p)Yn4-It zz$&9V6#X%iePbMgtX-ax?1L#F{iPL~K5~F_JwFLJrX_>q9ye~dbBVxiAFAnMJQ|s54xAOtK-3CLbZnu-#EfoHW6I8fH3cJ_ z?t(6ER77+B%RGSBo&;e1$&B3cbr-cRaXxp@g9hF*-XL@PN~F8=AqXDZN2w>KQQKGQ zq4KH!z=pa=PS`cVh1gz3su$mI$$#vqlpsJox-P{9{HKNFX6;9YaD-_8mH?8O7+|4p z0*a2FEC zbMoM|E5P&Cb&l!Z3X(riWYsHYW?RB@F0n-x{5@Gub&X5`IMxFlo$X7N`v-uzPj`YL zhdwHB&KqF*#|BL^nv8ONnz-iak14mKJ6N}_n?Ore9bS7=3~U!~6nSxQnPxay$YEAH?sze&NW#&FvDS1)zWDhJp3pM|A5 zAFy-XDVkkzlfH2+85T@Yq#a}5fl`}C`1SYGxOry~w2hbJf6cRp6@pYgtkaslH_eis zyfcY!T`-+L2cFY{0bM3MV+>8*-HykfFraU|@`0uE&T|GqS9yJlbX>e;Gp%QHk?uF_ z<>Sw6rC(>;;V15kXa!m6vOqmIO8QzZAC&bJC_TT+J3QBc^qn{Sp*faiF5Y=`hlj)g zkTI68x;=sHn`8mAQkJ6ZC$6|}<2Y!%zMS9fl!aR#wc|H7U*X%MfZy9t07v$c^brpu zUNFm^;NNbBxxFGhMOB@@k>|;`-R{SaqKZ(+`MhlFDrRtKn{T z8gDS>2aepo8dz+$=R*ymuy@i_-Xmc(|0Z+{twU&(HJ!T(3vNX6;Yp5szEKvOJwe1z z2-D*GhLa(GNESO!EXFf+C(wWRb#&{c3-k<|3()Kv3y&&n=8rBOMp;`c;mF}B(7w6_ ztn7h}Z?1dbxnR*f(U4I#5ggya#6@KBchs)`h+23*b^!s4w!)F*tF2y=JC-B2b zv9MKZJYV|h7FBTY7C)TJz{AApva%)y-U^-xcF69gSL>XIPJ86(D+y^>hm_}kT$n@m zEDFQ%k}RiTsRG@8s1J|vRpOnW9KtUDHuKeu8NB_n0B+#rZTO+K1nz$-&$}5d=gkl3 z(gXX8V5d?peW&&izpPP6Ye&a`z}J^0=lTcqZWsq;Xay{`u;s^o8B=DrqX?coV@k6M z&vE+lZzy|+$M-kH&^sTD!a=(UNb6Vx9=o*%HcTDIcNsMCACGf<(=>V7;nZSW%(AjiYZds*zvSqk*h*f|odbL4je{w-8=>XQ$#`U!H_ECtM8AWx_}rAU*w{T0 zq#keMKP-sCGhY7%_Jy`6xwal$hDG!&IZHn8Kq4R5zLxg-EwUe&4()$2*jeoeia)lalM6gBx^Gx!)tzDDP_yh!Qv>2lsHiz5<|SZJMCqv82CL z1_%wiBRKfQ5S40Tj7;|O=*FA7c>dHjRMaTKQ06C6IB=H@%R5i0?f;GZ*WIUzZ^c6U z;$t8io#sC69uK?jSx7c-^>IaUG>Sf}0yl)rfHJSVs8wfUupzv|)yP(Y3FGyUqa#b{ z>lJ~XoQpv7_*Eo##1FJua;U@i1hp|Ap*XF6>hJq-EcmsVP;q`nsP#WZ(Qzkn>y;h2 zphy|^-4JmyNqgbUlw7F!Rvkt6Y9SA`xlmeM1)3%TPRoh`+n23{(tAF0&3h8C@z7(i z>3bGdnkPcVqwmm!-s5Pn!U;WmKN&@+e?*E^d$4x|Go+rP0R$djS~RpV1n8|hr^WW`$*_~f(v$dOW6{RkX)Wdo|9RIH15jdF&@6$ zMh{Os^-mrc@LvmUd21MI63+#%Ukvuv&IWI7q=0dUAyOUZjf-Pqq0?pqTtPmgmZpY7 zyR}*dIB^r=M0FFaD0>Xg`hLy$uc9<9#T)zCujn>dnwqxT5>C7uhZe&m_+sfzs;`A{{f5T*}l!w4$`mi@zAhbxWk zGfL5a$D6^DG#wZvmPOez*(gr!9PmE393|NJqTGPbC^9D-R75>O=Vs?nd-PXA{hVp2 zsecSi=Z;Y_%dT-{H?||+pC`d%^`oHS83xaq2axlo407JNZ@{im1}Z&U3PK!~!2Zx$ zWO|T6w%`o1pR^9BI%se)IqRXKq8MIxUk%l-w{V9ghEgfDI?k`qipz6Wf@ZBnoUrsb zSRSWM=*sE|yAH2pzK_s?)150$?A&GL#W})Vl8ji8$k?V^TH2Nb z#O9}jbJq6FNy3g*7Rt6M2~W%g;zR$%iY^ML3b!PM3qLtt7jhNbgd%SvamJMl@tx6T z@rR?6g$KnEqIXi)MGhk;L`@-y;(W6L8^g6bnTRXtHWTNCiNw!`#X|`(LRI36^(Keu zqL>nYaimO|@WV|daXNfg8dRpmG~E7fEz#SFtUp+ZpO1J6*H`C@y1!j47C6ljdQaws zTPC#G+|;7QXAh>>1i~Vl^LO5fPs>+{Y%hN;4gY!8M*U!g^@V0Fafgq9r{g@E&ftYYjpGVToyIJYbabe2;NCIu+spTC23}W{&UU{i^zvBA zl*2xul%<2PgmWe2%4CE+YoFO{JS;7&I`G!&iW4UsT$mvY6FZa^{G2ErHZx@&8l4nx z7}+A;c|fARv|cO@a?29Ae2x`6SBOf_7;F{loJc9vUnVOwKH(s|xZsk|?7~X%kMSeI zY4-|kp3UnOPwjnBs`?_&Y9P#5_~_atoBV|~!p>LrVzXVhL@Pe0iI*qF2``zXi1+)& zi?|$Xu}aN{(tZ^IbD=*@bfW#F@Vy-;+*S8XJbSoJzI^?V|H6pO^Cuf1gMy;Udo9nWKH*K8m^ zX}6GHKiLqv_M?RMyFSJzDT$EVnL^H6bdYd9)+;s+>t(VQD2Tf*oF(%IA>+dDAP$H0 z6N7U`NdDS%QscFNy7xt&e9>qsd}=Hw;o+*2p>;}3;gb}0;PVnD@WNQ(yz=p^_TWM` zsc;hMaJ7N>-8`37pR|J=GMpt0>k^ZK4q)Bz^#k*GuRmcLCCAA9%x7feo-y}@@kHR| z(@dhlOG2>H$L8tbFGQK|fVf@q8++qoaZJs%(ifRiNMEm0a?MyGT(y|g`YO-v9k@kiXn!M) zyQ`2FuVxXyB)q0jnFGWVw+UoJZ7R9G;wZVdVG1GGG)A1Kqbok}&x2IeZX~K^yO7<2 zI8yV69BbZL!3e%e+#AAZw)XG{VQKnQ*s857UVb@=Eq!Ax{@${O2>EPB29qCzf3Ke) zW2@R3RlO_hR`EV|znTp(Ea%Lq?>)h|-;!f0r2GlrrcCnnC64V|XGfS9zZgy^n+BD&p@%I4&BidL=HV!8MRrs~BC@ysLU%#opk zjNqNOu-S7K`D~RB(>OH9)XJ2K6!#t^_6_q4HgsmckID+;3r-No#FN=EeHC+S4R1qk z?-LVU(^z8-7se-WE>RUVPJC&2KKWDa8?)4F9BZu-NBmMhOUTZWB*E7QvlacAICQs= zaL>~x#J?7^cVC}oCp3+hctHonHvJBS=eI#-f~OLzS}H?Y)OoS_Z=Z@My`RtAU0+AU zP0V4Bp1?$ib|_&uW+Qp?mV`%KXUTYPBZw)N*Am-~JS8gMk)*?@3N!1+QPwNmmyP`1 z#H7pL5w~C6O7coS2$#m0?ESf0*rm)BV!`ipV$i67*}L!}@%~sk5w=U3j9Qt*cn!TK z4o;L~1mPE1^*8H@I{O}Ge^{7!XJ8z0u_ujC9a+L;pKW0jeE%}b1?J>04Rhwrl6vN4 zqz>zJU=I^CcR!2gN|QCCJw(527m%ck^O(w^g{&lsuL)I7T{{D+y_t?U{SC-R@N)_OSC(m*G%Q?XQNC956 zs}8?-yc=Ev5TA*^iQaBXK(>Vxnl(8Q);M6i?XNmK_TUlTQCR@>cjn>aUlVxgCkj}r zs|LGx55k{U6KJQc4J{|)RH z&z1DQ)^Y*W&p~p{3@*_B52Q7kIh{EdXt(;?6r(zecM>}CwPO#_b(g-tX&I|>IqZ6 z_5ORLynP8RIQkzkUfB_ziOa-W-A?1aiTXHerV5uSlAiVTsSlig@;d%`)Q|4<`i)Ly znA2{bwP@v+smSxQ8l8CgJsfBK7H!v&rSIg<#U+O`fwIpm+*adDGjo*r)aBCr@=+!1 zyeSo4%+Tc}2`7ByT?_the+wE;e@ zJdy#);3BRMPoi7h7_u)hi+kPr9&U0fMO9gaI8!`_PCk4J%;?$-o=r=Ih7BLEt+@)E z9F&2pJSDDA<|KVSz6mO%+00UWDvdYR>f)5*-FVx5FMLZ?D4CP3;#U4Ff$NGMpkJ#b z&H>>xOzu#oO$B|RI$Vy94>YGk_7nrR>k$3fwvryx9}0g834Y7YnQ&O^77TVO!#PFY zfJx*}SiVn*Kj5i^1G~4tOsGXag*#x?d{b_mSOli*se<-PL+K8a2-uXO1gC^HLxlhx z>U>Zq$h@A3bK_s)((rxQDfS_((y1i%CMkhwA;qvuEd|9*{7ouKf(apP4Wm^;3hlWN%^ukC&TZ!H!BefkchLp7jv$7>X$W&+&%qTmMehwxIYBAx3#34d>% z0FxJeN36qbeDi^T-W2VIy)SC=!~0j^{&&S_zegzAYMq7s$Zjki>j(1+A;|LBMRnIF zibf_2jRU{y*W zebZKr-dmE07Th_CZ#b|hvvC}5H=jgTHNFRyf6)k2rvd_4_scw0ve6@)?`Clw%LR>;3l`iXx#dhvver<_EFFL-Xp2{{*VOfNq&ryQGe%@FxUypfk{WLOpbA?Zi zn?^6yvA|813|>J3+}n8qFM4jtyA-+5H~tI7U-iGi=f;2V#*U}Z+pQCGG8Zsg`x@5z ztJ8HEOVP4xp8#Wqu<^ud)N7rLf6tG{wjGC2w>pDWABtG-T1|T20a^I^P#@i)EbJicTo$@3tNr5 zcBk>>Z)0$Yt`>4WE>ENDk^JbG1vq+BDt;n;8_NXz#39kXc*=uR{$Tbg{?yFl&_1+> z(r>7T(w7Nr$;R;p@(pl|+Iy&HH3swg$I)@$8kqP@ht3}7jvpUAM~8H)!6|F%K+MxcQ?j1~NZMPqP(hbL_o=#Hj73Bs!{ zOrQlTSt#>C4(ooi;a}kWl8}-O3>#k28Oww!_y>)6nVUkMYul6*Mx4QY2jnVe4*aWD3Dvg=-il63zH(&wlr z>sbATHB<>9)}8o7w%QtU<`OgaZ>>Yz%_T26=liux(Loum*z7GS2nc5rE|hS`#)h%< zEIV>2RhIJDuv2K@R>FPHH6~}~Z)Pu*|70(T714`}8eDPOFsB%5!HsAeFVr9?kO*%vI=)mg`byjGB<9pGkP4Tc};t%k=r4}+@%#<{6;Ny z#Q|yR)3NoecIsc^o8utKU+g8<{P&s-OwJ{5GCx@7lsw`wDd3zI8k2pfhzql6wecQF z7QUC!+Ydobq)WYRgeq(KR=yDsEV)iH(!7kgmn!QnJ$o(_A%>8(Bi0iJW zS)Z0J!jP8|9-$U;%-I$;^w$Qi%P@uOaDPa;iyFxr<2JKBYsFNvK$+8asb;_u1=76W zIMugdKzM3n5-YWO9@os?XO=8XsMWt|R%G0gRf9J*OI|Oxk4(lAW()n7kZ{m0$dvyf|ec<=DKP zxoaNA-W}LNE;l?xYJS|pcu%}R-0N|s&SgiCs#%K}yHR7ZN6Ld+vrmcgnl3|q%6`I{ z8HKTp_cO_m-v_APFO}?!nmRUW{9Lv$XD+qt_kYxohnCn^-+)|mYP>{>@tic&n?V)m zXmiQG5-Go_XUX4R_K}~KjI#X9W~z7~mF?Y-$Jz||akC9#S-lOGqyqgx_$yZOAuAk} zINla=ZX2%?ZQj9@Z{;Rx!NPy!pxy&!OuD0~#UhI86ONyV9MT~6y%d9YPSlg`Cr2P>!_`wrTMM?%-ZLagng2NSwR!JK(z@KoA* z=+{0GYkQm{{cQW7(n3q9R&$Y`7H3GOzs(07Ru_tn&VzDkuP`eghHMYNhvqYl z=>D}kc=auIAo{u-jCth<2QE87+~kHmzHWztpN{MenNjTV<~TGYJfP9lT$kb94y3#9Ia4bt{5f%cM-j{5R}p1Kf@{C zB=2%31zgzO$+=m5#(Vi}G-HW7$l0KdoxxbxcrOMwt}gn5aY^qn9{@AUF)n3{ePbZ;1DSDB@8pN(Qb<-jD~cXl}Jx0nsXJa@qy z?UT@W%70kJSDnszI}W_8b;9ijBY>uy6TkGZ1^-t`wd}mcY3}*H_tejbOjvi(5I71# z!QH3p&mmSZngijO!3fm3%2Qvad}zauv~Y9JiuRvqR_#nbtqc|RfBaS7|dShO^$6q=ZS zfbnTgG;6buTDZpvmZq%Z+nP_pBD-01{@4pZ?ZaspC>nstAfKJr5e^egkMTREZNj6n znh=RKX;p~>S|D%4##oH!b?O4p1NocqS|*gU_Dd1J{pqLi@}kWSjOq>|H+>?6%(tas;RO*u*$ESZf3~ zjOmBKDl-Q;Bu)Z$ zpcaH_35k&SaGbUHJN49g8nQWDflB?FaYp_VH0>ZKX?p)f_Tpx?cIQRvrmFy}e0V_d zo$)YNHWFm7&E}T%sl)xPR&ayX6nwlr7WuJi(EE@zoN;CgrGM!pb{%Zw2Itj)fdd98 z?=PYxQ7fRl|1wxyd>zHN?*<2`GL+B8QFH6cQQ);tRNjdwEb#Imw5RqHs@|PwRaGKZ zcol$EYRAJ>v&39n;z5|Gcm?kLrh(ed>7rjY^I^2{9WXpJi(9l4gCmnRz%AFmbAGYO zINA3ZP>0$0sTn8Xzz!gBa}3)3-34_H8zKjTVYJWW0M4$Oi-UhDAhSp@m0W2-er-_0 zNHt5soHfS737+__;c2ifEEy<0GDB7Gqu_}pZ74q>j#KvOr{uhxq56VT5?+Ekx^zbo zzZrOHSd|1pWon*IT0fTUC%#ggd1c=ml-ba;mvp0j5@EfL|TDV9M_} z(0b7Xs9KKWp50Z!*+1@5@e#!!bkPIWzf>A&Y&j3+j;O;Rn&zf|v_tV9tw2i<2`T~? zaee$LD*2uk1SSv|zC6pm+4hh6DKfwcp{>C6QVlSBauF5np^<9ECg2|1M(A=<8 zWOh^+T@}m1?-MC#Xqm`rNB^RZ`_*!NJ2OCkqZHhx*@H44u7PFt2Y|&O1O=H$;u_3? z=f^ETkq-h;OuZRi`NI=+w#k6eag(S`1>;b|4vbnHC*VHXkJ{`z2MV_8!NbSP!Qk|p zT=yi}yo}#qzm#8P{ zYhnC+3#4#Y4zdB^)JR?-CwjCCDR?G<_~LM|T2KM9O@>iU?itB9{x`^}lZR#r?x0`E z4SH2Hpj+oKT6gmt0u#JJ@Fopzz|k8{Y~x^Rk0)%s{)m&L&hYN3ja>R0A?M?-0{h;H zxXINqARvX~e~jZK`Hf5PjN2(nM=k|lEceAa+# zpHIg#0Kfla!hfT_!C6~%uzDn`g7(3y=<=xR*f63QS5_{B(pAKKNr4Q_~(xQ6npUd`fSV>1gHDegPOwlHw#s$W zaq-9Kcb95u^q-_>w)!2%+UfGMcbd@#X-)Xi>>+e)`&C?PSOQ-=KE^wP7Q%IpCez<5 zCB2L<0=`FSJyKbWQ?1st-ifR8FB^0jXWq&j^Bd9V4#)tG(6lBpOq{4fr$y%0u^ zHfZshU!#Fn&18Dw+-J~du>$hGx(c|y%E9^T&p^!^`t(mV8QdA~iKp!wL}N3Z`25|; ze9WHfSmB`+aGEQN^>TmWzQ_;IxbZ1isW_bvFk>*+H4#@=S;3;$+KB000k;J-;1%yS z@!ACQF`S8>VI$!98&*y z%lRVd1>D9?H!88>%{6@cM(L>i5Krz;pc9Ix!oj~Esny0DdHtz7rJeeK4foo^-HSOw z1}5mRc?b5f(h-W>r)$^PGhO$ofWPuo$=Gbx+VBMXtmHT;A3UC#t(eBlksZ$kmr3fx zw|}^Is_E3JtTBLZ`$vdu45`YAa-9CLbENpxLrTdrlMJog%hnF-ajMH}M5Sa4m3+gA zZ6c17LsnW;CT#+Kbj_sFQq)1d!xE}BP>=9e{ll~lx>ECRO=mIL!}ZCxvOaVF5wyk* zuHHF;lgV9^UqSrgP7bg?AU1K@s`$!iR=x0EVWax6XsiEX5TV1y3+Bh!mwuF0C zu0R#^++u6TYEbsUjZ9JQL@Fk59xFTWn5uGD6VKkdT3n${QfgE$wL7emlG5{Q}$w+1JyDdooS_T-!DcU0FWYffRwZ|ZD{ zDrJyiONGZiCv&oL$=OT8$)_d`RPlmZYLPIDx;uX(S$JNNwV!!g6usG>8r(HZE>?@8 z9;Fshoqj*qoSSdivpY|apBFsh_W7Do$8SF)h9x_t^M2%TtA^i;TMk_%v*kBYANJoQ zvNwsSt}zPSo}f~$_D~Afs`G|euqBVpbUDpBy>(|pKZlX|)5@s5bPwnLGJ-n$%7)FI z^@t1j9YkhTwi2BZK8$F?67J}gljKHKKQg)IGIR2Sh$|eJz)q0a!2Q=Y$iAsL#%30G zvCA&Uu%$b_h)0=QDb-$6_Tb1ku0wA!;iI>f9NqbgjrH*7HW;N6Nv}_n+aAWUXN4(j zaeG zJ{?UixLub#W+lmrZBwOMHc#VL-U^jOlh=`Ma{tKNZ31ri%r(-@qu!Ldf6SA1| zdg#gNsTQ(TORsR-IYY`=VFIOZ_m5obD(Ralg%KN^S^x8>lXLR-s9iedz6TNKY9+{ z^W6*$hbvG-h9=)V)f}734x@3y1$@}z?J(p<8l8Un0DN?O8}D%C2(9V(l=iS(#ZQu$ zZ@$+k)8`wuBaaV9;gW`#SWsO=rT1dVZu31HzsnO|{i0en9B53dhTP%YRc7;xC0X;T zmsb46xI0ks_+EG#7PADRrzgrnPrfPVBF&J0=c7gp_}tw}4ozIiRY zu|Ad0Gc?8gsq-jT(v_SgilHxhUV)04;h4*|;ooG0LX>}k9~!rbeBrT`-f3@yWAuNZ z=;OXH^IZkJW}1WTBg2sJa~$6nR|!|Q-@u9Q8=?Q51X_CcRO}bp0xi$@APqBJDp6xU z9LF5u?K6$2xR;fn&FB=~@*)xYS!Kdg-lzC`l!$+^FphsP?E);^)Q4q~Y+%*tzj*iH z11u+HiM^Xw^OH9fNnGf?@N-fGRxc`}mu+OQTlxU2e$@tp#c{lbQye~2tjud{-b%O5 z%%S_P3{&OlD)5s-5^Z^xhhaz3IrZcrs3{HL@sIQP+5{4XT^>uHTb4i{p7V?!{%XU= zu9C-_!d$UnMg$+WVGpX`^_w4wFos$S*5KPd2XNlFYJS1THh$goz4Y^}0J^XHAyj_! z3n=*g<}=#gzkN8^ zCjs|GKcP3Di{af)90m$eRaj-}75bj@J+$l8BDj-Mr3WV7rIplcp{d3TKKPRu{L$1e z8&cazs~%jAemaEFXI5py#7cF%z-ksBS&_uACw%yvn)L|C+3`o++whR?YkYq6D^9+= z0i<;-;zwfhVbh^vx@_!1dd(ULpDd+lt?(Ii)wMcOL9ZS@vB}}-flGLQtQTC^e;;am zodVYMOyRBP=%TiaVGy*T4}ZC>2k*UD3U!@NK>)Y$nOnP{Ox+|}>e*7dW9%*DBRtC& zQYR_5(A{WzQWXAKuUxjqViQ;8DFDCDL}LYGAzj)b1qrpXuP1}LFpf2F?9|pb|*Py%1+OllPnb=J=nw=z{3XjfPf!%8wVZk07 zzDi>Oh{)*x=^ruF-x|qJ6{f>Q^&5F(c{zIh`?<8-ZO1_6aU`sZ^ANWF~V&6Onm16PlDJMTS&TsVJH$X`tzM?)(1!^IX^Ox&M2v z>)C&twfEZVI(wbHuYH~Md9TlUzYIFcC27Y}>N3(jdH;I%)w$3-EAMih+M@BMd|R`l zwfeV<#drN9tR5d?TlsGOA@OE!;Du%4wH+so`73{)tCf*nX4-N4+M+#~lBoH)b?z5R z_``0!lB&UZ{K1Gis|RV{B`a3Uwo;e9BXRsZ!qZeV;gk9AYV8fj>a_oM)D5DAyni=6 zB!4%&w0b(G#829Dns1fV$qPFeUt6i*VAYjbR(I8Dj%a(2LG4Sg3bD%Sn%bz9GFGmf zGm_-<@wJc58zfF2l=$QF7xT?#m09VI1X$UeYUVH0ldZe$qf;mU^=e((!e@-vCaIyW zY(br5$;MjIIeG4df~wjT^Cs3^Jr`c5Zj@Q)HQTx_zmCtdq89TO#a-kFzdddhET$#Z zgq}DnWklkZn8UyRovKqibC2IT_R-2LdBAFKf@bY!4IcM!Y6m~*k9nQb7dBrs?E(Mk zagDm#vPt~(MU{L>XH@OZ`&RrXP0#DxHq5Ebm>S4`xK|oiky=(k@z%9dKOd+YyU-*_ zoy}NXQX}~Ct?Jg9vv*sG99(L>0%!6aH4FGZQxDeazRIP->t;j94iNYznqlm)skO(qJEOq^g#2vO+TV*ZKn+LW^~kZul`uU zt6b0}w*I$AqPHQETY1nz{3vI?xYKZ=gkw`Kj=$8wdj~4K=|4`3?T;ji)#t`@U)QPe z@}8%Pj^$65ct+0UY5$b1b@`LUJJmX#Z~XT&W0Y*dt7;lAX`g(aTiM^mo4qcZ`&n>6 z{L|l965ix5n0daF_pIMZ{5~v}TQ952^UAa2%i7^Q>DZRf|Gbp9v za;A}F^jIV}<&cKB`-HkAH$y>kYQHMab>}s)%K@oIzI8yP95t1fwqc%_#2@oy0#*tJ zZrBNJzB9b9_V0N2yBc|SCTx?0-%#iJPq-to*`ZkbksHiCu`-Msl6q3o+ion;VjXAJ zhGk+}5Y3x)qlQO0{S@Dv@<9yOYaq;p3iKzLDaK~5~cPnol?@aS$X4QHzPrF`OvP3~Bnd^}*WskjOVn@%5--hIh z7q9me_vIbshMl><(>~uXdGj-hCq=c1r!DG|Y`7iDy_za@*-7}sI7Ba%e5p?2F6{T` z7ME0trn!qG@tsq}8Mxc zz3$FUav3LCFW4#ZkjrMuJ94=jmZgYgW7EY>Qcvh$?oZKELn&KK>IY$G_?Av_@eqft zi{v%pNb={ap;W7q=jj?{ahDWJ#3=!(lDe8V+`GO*+@E+j7mZ&fsqssfs1JA3Z^K-~ z_mLr2y=7QDaf*ke@w7ArVqcY%5q3u$Zj&Vz^=tBQzfs9_gHzm@KG(T-&&2UAsSCM& zo}S`!tHVUqXe0MewHEL8-aww^l?x&h!yJkCvqO@{Hd7@r6AZZqJvlsBrNJxQ3zFf2 za7nV)YHqlZ9M8~NP7>8v&ZYJ@aNh`>d8uQvlIh<`-ilFq@!6az$>8k-uBgsilCrN; zr2b2l`_uaxH-GI1@%GpE#S`?WNsh4Q^N8P_!ut^}l9w-iBte2Q@uBx6lDix;-h%-x zUe^}s8h(>nv2jTNGk|I(6E|qq1|F!9xGliB14ik*B{t^Vj7RB=aOY-;olu=?9`r)2 z{>OCE;P#))eMANT#EiYnfb3%6et)UT`(1djDr zAGc7TkE))h)>{?{a;)c5)e};xe?H6-JgD&ySgAdv{^-mSgoK=>(&p?Hth`u8P5Q-> z@=-pMu{Re`Z6gnBWCqVyS|3|Sw_G)#OZ$%sO5J4zb$;f8(ON|AxM9Gm{O@cL5-jBfNGC3ra$X%GH z(6tz-HQps;;4U_Krz1fiGh$fnd2Jars4zn5%ibn+QncuzY3TxUZkynm`W?aMq>`G- zlZJw5pS?9{Ez*@1M!Tv%tDmNH-A)MyF8-iQlPA}#*e5T%)#6Es?mJQX2dk@Xog@NL zj*tvrD-EXiPZbdJjD&s>+lc(oV}f!xFKFp5B$Fl>31XiZQ!FuuTB!eqk~tAwsd$Gc z&<_kIJ*TSI6ybLTO*#grZO$g)8>3s)$>M0L zFYgXz<>W%zov-1fM2@FY#w@Fkd$v=&9~D&lrawf(+3$j7VG2T?Kp?oP)lGWb)TRS1 zc~s)H*@Ec@e+vE%^ws<;|3Im;Yy@To$4R#B4yyT6Hg$UGO~I;XI&_%BesV*mjPTjI z)++O}djwW0FUX+9bE&h1Ky7u%6DYY=R#%sX30BaxRAhcL8LS>DNLW%Q_@)z3qdd$J z-YSly?qL_GQ!*swrxPjYE~N!g$vVQLg>k~(DKmv%ym{2$;IEYIEt)cu5`UL(=o6U# z;!;oj`GUTheYLI^=SggDbxZCVdGaKD8UDR@<0T%N$y|+7@3`B)C-JH;0Z*ylp*B&F zB*FTp^ITtk=H9WJD%sI`RMNMG%e57z^Hi&^N-P=@`Dy2LYClP$YTsrAi93^vBrPWK zyiL2NN@NCnYmvRKMBPb;ryrWfYk6WJBHY|+w-#LI=A$9;3hxsV(bAII$BNaGlFWqK z^YLAh#I`G<02zPoFT-X@c;-p2NO>23aPDfJgcU8$mL24!9MV1 zMQidc_1w6Rqt?|LKdKQMww&c%()=V2Z4Bq$=4J3U_DA!w=jBSOJ}%)^4rWWH_WE%n z7G_8)jW2Ph?pszXQ~#MpI_C64BY~u;c1!L2L-w`qhX;7UwpW-_osN7xlPG@O(^|3q zhEXxoH;o_Kca~>bX(Z0YPx5~5qWRI2o5i;_ZLBrUuHt2^-&s4lDNQnTQ6jOiUMabs zjU+$jj*8KVMhRuLptk#|R&7wsGqGQ+m>a0?Ao5{5XRt@n}`-lH`* z|H^f3e!JBo@yqELZ|UP1yuM5Kxx^!}I5~o;wYn3@AJb5*t=v|@-B<6*4;ua=4q6s3 zrnc=DZ+d;7r})-FviZP6@u?bR?ge#g{?w_BTot;Hw_)L4-rrTKyzD0-yhmjkyjUf5 zv4rzcav>v%tF$1V_u%x1C@`{JJhDEFH_u#_pS*9oxO8-?WE?^8s-~*&j(7WtjSGUg zvhRNJ=Jnh0!d)f`>o&jSmOLL<`=+*t*Sj^Jm$dYlWYSt~i4tzb%TAxnZ|@0^n6WlV zyb^lF!G2G84SW^;RZLejc5)+8t?PW2O1>veo4p6`&RM-k~Dd*%yJ}+ zvQkZ8rL5%S20Mw{PU*VEzl@~L?>0B`eh@c*{&{giS*nCq7?!vmGvFQ`n#AX9{=+-C zHjj7kiBKG3s9$TQpD6LJIm4UNIm-JU9wUyGkCGHN$MIy}f<)3iTRIQgCb5<~%2Qu` zNfIW_{}8ih@a1k!mONkI%lnDbT;i6l_?5H0}2LJtW%!*0>d z%Vn8Pw^lmn)Trn^r6=lqlt8Zw@TQ|*+Y6gBmW$T-{-WAFESTdauA*T1_slpcry{U; zs<@@~kZ_5Yy=dkIirKy6wD8gCeo_C3M3}LE9BtBM#0(#NMm3r|7geuYN58yzS}60_ zL?l|l6Ssz@h@N?1;`fr(BEQH3 z-5T^1EeahF-jBK@{52dZyq@7Ba#MOD@*X@d(zeSIeoTE&dCY4UBsgS=hMy~nE+5Gh z-M@cDl&(TEZuwv6?|B)*;J`=BGbcyUFlH=FnKYUHv!{W%9ne7?%e^BkABz=vDdNH= z|LdX+M$?%`alOntwHju-ny&E6+za$ln``vBRxVvy+9SNA)g|I~eP-VIrHjT_<2!kV=Wt&E?yB~_uYg}Kr!^_{YerPCMo z(XlF(bYN+cU`1J^Xqj0IeQkm%6P|yuN}zp582D@o<5&>Oob!7kXnA=}m^ASo73!5u z2S&)%q}-ZIM_xP1G@gj2gM4QTuTEW4Q>Kw2I@U2qiu+i`*!9SW?2R4@KmKT?l^Y6} z=(F-7y7H6I%Y!4l@-3BN+q5&@RmTO58ZPuKm+ivLmN`tt;=Rn`+fJejYPHP2$#!(4 z>Ph;wSXadE_|3TNdmy|v@v@LkJ0;R{$q`Okb%H)4TT-n@J{Dd)U?R%=8!M_?wVZaD zki!I3h?z!HGv;OZk{a8k#i9Z;eUZ_P9n6GDIn1OT--Rj74}|AiRhhQc?ZVKBFNM=u zyhYZ=Kj|q;IHI`en)J<$ubF?TdBWb{MNA;8kh#`MQF=KIGontQFB*^*`{LPnONqSsSIYB~a1ot!Q>mEOoKwPkTlA3tRZ z)T0EC&Yu&t>@*PieUV~ZkA^dWpY?_QdgB=PB}?axlaZI1D)T>EsJiNZ_Wtih@qeo2 zkE;LQ8~mrX`afkx-2dLL?mz9!lK=O1|Lev6e{gb~%y^k`|J9HG{`jxL>c4w6PVRpy z{!=aU^1o|kWIq3={C}&LlRlCEIyc$aNcwdCYcrP7QIgR){NMXB(yJ-`_jy@a+5i3u zrT;uZxp9fz8voPAN$x*w|EJje|2X>p`oKE$ADER+L_Z8Bz6cDb|q{oAVp) zepSQl-ke0LH}4~Z^f92NTa9L%S@4QBKij@Lyty@MdlJ>tqD8 zLQcWTlHb6rlwgYuec|FPTNJcu3OruB3_Diz41E|<$CeGBfUr-OAW*Lc^Vx5Ym3WG< zvGtQN?%&7A-|PMgv zw{ckCUKMaIuR$#?rr5683&E|R47@_NgV=onmRkOXHI$$Tr!4Z|UBgY#Yo7@Ll3G^B zB}dR4T>zZ!4%Ww+DG;F11WxZ+&^i1X-Q2$uq>vk=EI1C@pR%E{^atE`zXIJ=W(n{R;0m1#lXNGY=W_X~E;Ho;D0K0+NI zmc!ATy&(5R1KVJn0JB_WA(Pb%ru#O)#kwQtVbp5aAX34SjjzDKJ6kaIxC!HC#3QL$ zFxtF126o)Hhj~ACgU4_q>$_tb#Q!ivesQPJVRJpKr=k(F-Z25|d#{7l&tM~U^>r{s z*f_eS(by! zTMMwt(T8Pgb5ZQG7U(=w0%4P_Ve$5V&^B!eW- zJ1*mY9ONm_t~rYO-#&Pmg^e{)WJc+n%?MA5kml6APiin7tH#wJ5eh`kk zG>IDy6t#V`GO<`tPuw|kmN@F0K#XboklMFQNNnslxi8L?NEl2Z9VH_K$8jg;()|_SeS254sMbs zPOu7y(K0@%{%njh-E1m3D`*a>aonFUIrW^Qcw{*lGVunHNv9KS+;+mh$e)aMwI+h` z6@<641Err8OEzn_5U+iKENE^b7Kidl)|FzyOwW;U?EgWG95f`BWRe8EUPP?k5lvj{ zwIhGb2q#jOOeT}DQ-tMW9rDP^EyM~(SweNsM4}?hm^>txODK0o5lQZO#PEVa!hu`M zv083MjMOb6w|;CR2K%*$A~$#Z_#BeZ6xxwl*V;J4&uqP6^Lek{lL2|*@Wz^6}6B)Nq znRxWxfXrApgH)ZvkXj3`a30q!;w*faNt~%PCL`CnlMR6niN>|3i4|#&iB6>$q6c*o zirYn?$r)pE3-<%ZV2dt!qdt$2OVlU5^F9+((?SUM(mLXD zJ58wHtKsmKPIG((ONpu|njG+(M>uaUCB`Ra5DCN-LaBZW!9TN!xbfVH*bt$?aiFEf zK%N9K>kpfg_{)@hQgnp;8ly(C$hSoHz(j)c*MU5D^9eC0c^1LmHjYSN;7H0=pCzZJ z%;Xr@H*mriM-g?my-4os7-IE@0`i|hFQMD(L<~$0C%t_>6RyK!oUJp&L}!vM`TRl( zVeonl8NGQo@x)>Q`RTej**(ddco$niv?T5#4y}_TH<=|6UOfhchV2A0Z>=10?%iB+ z`Ua9nQ`aS37x4&^)}g)~ZQ$(cxkXIrOeezjdXVSO>JagDM~MD~%|u`ORbtkh^ThtG zmx$SM?}&zTlZbre!ZPe$|mG<+NYhwH8z!E@~kSh@%$xt%`sqXzbvaVoxW^f+6!NdZSMFm|#+9;aDp zF5C060UqOv@x?~ySf|?TBFN( zcjg7|_=n^~9XO6Jc;druXp6yp^=`5s2WR8lxy9@m6I0mxubZ-ejwo}Q{+Y206GZG6 zeG~B`XVx9HaOIj?Y-5dU?8sPS{MG7d_<@)GY{?6I+^f3-(} z6T6thR`g}#E{A5|t>@3PtGJ8ti(lf{n#hA)eV_wh%<5p*ew%|o$24*8%T+jMcO*7v zdn#MmR}+{09)!;vc*ITtMXYbf54OJ5Yxd(W>oA7|9sFj80p56HFFW+bX0}g;1|C%t z!`>5XhUal#utSt`@vkchT=jb?zP%`gT@;bTo|X6(6E82qqt>xGmS3Vc0Vf>sk9LRI zC1tI6{y#C>q{9MNHO#~8N_p&=zSV5+B@9P(bU*v!ob7n5sSJKC>jr*x%O!S2ununG zdxl-rS%h!f8O`R;Sjaxpmxk9lUc^5IN3(_YzuBR}IQ(?dX*~D$4E$*R9`>=bo_LP; zbM}k%ifmiv7F#NE;A7WGT$nn*cE7m}Hw^G)8=qgoZX43acQWJgGwm`s`xy^g?P7>q z#$U#^9$m~nTit}0X076!uDB?ri(bN)PbX~Yhh;D&SYvv`W< zD{M~n7i{fAJ^Xt^7QSrX6g)xx7p{NlEZ(yxlU;^I;7!l1aogDu?7tD?@w5a@{HwJb zzU~XonenZV?K*c0PS0A3ALxF={^GS8cUh%{&#_?PR>dlK!U<>gr_nI{@8nFjcSZp| zN1}#L-Wq|ctEIBNSKh`m-Y;Z-+@XNKiCe?Yp5}p{ue-=@YgvvTJX+8GVq3-b*vDgc zdTznDs9NHMzslKnLO0<2?k+rPS`6EKj~RP+@NT?uh5~*8Uyff6KZcL~XvWR&T)@rQ z?QC|mi2Y_TlAVO*V!PHp#uQ-_ZmFxuer?2X3Vz$OUDFogBQf9br^ZA0*K-M&y#mRB z;$GZv?isd(JrQ4j*Mie=`Y(Ia##Fp`1>j9htMRERh!a;%;*q>OeAoE9Y#kPlD1Y0- z4q7V4g^%0t4?fa{aS>}1N7qmTk6UQQc^lAA7 zyIdb|YW8zDPY%i9U7-e?(+hp^EmsJR*3o(RnY%`~T7Luk*|-8uxacnX_c9OsM%j7% zBQA?aR(->NDk^X~LzdtVPEBI}7PoVfjK1PwOK-6K8{Iex;&e`C28CZY&cUDVwd3e7 zYvtH%*u~i~lEJ}dHL@d_d^}3L5r1pA7H^w!8GklXgR3jY;J>9SL7E&-;c~o_9DB!R zwr<8<{QITr_|jdrc=xR#+!;5)KdFzhf2`fhx#_qU|I+gc|9ZU)cdB;beCyI=XR5Mr z{)#GG{j(b9Y5O7k$BJ_prJ0KFbvc6n9WTRPT3Lhh3<36j6@OfE>+3U>baTZ@_;h1FU5vrkYaP61cxc|-F z9JRqk_+a-nT(J~U&`v>TveKa2PsY9EG$dM-}d-(_Fizt6&Hx{cUNZP z`JwYUF6RvJ%>DuPD4WfhzS)Pvjnv0oArn99Wy<+8eaN(-u z?48D+*@x4%a|&+%bxBU;+7i4@J&iLVcQ$8x4vs5!>T&dDJi(PXQ}FZ3dAMy;1#Xgm0MQZN!e96dzZLkC8BTa1)yyW@Djb)* zTX>t610FVBfm3C4h;!$?9^SU?B73j3Dre-tDSX%BF+4FDIGZl-;=Fvdnj^RshzI|3 z!$Zzb#r4g3Y*-l1zSS?!sl_YVuN0<3%&{4)oS1b;BfA;-xEe$L@w=AoZiWCeYS5y`3B!v5y*DEnm;`kwEM*vov7mNEhUR4PiWbwJL7Uo0k84Py<{=vqo9N;hsp zml`sWpWie{aB+izvMd-9u17oDlVC|u1iEnODQnl>G!(Ghn>Ed31uBXPMl~^y(KQ7# z*s=OGto|-WqQ)TB?GO9VWs-!1iVrN_g%o%lcpd!>y@;%qY=Ide(a;`J0T1leVdo@G zBwcBNnmW%Q7Iz7_8=0bO@5dt*i`T5LcrjQH>LOW=I*K<)K{~OISQp)U(Vl>>XsgO% zbjxjw)hhQBtlyqM6-UmoUU}KW=a>u___!baN;!>8t-ryIy(hpqgbfuMk_<;us$3+i3IbK&;})0G^f=99{FuY3XgPQbB6?d^fLs7UtXyA z=~2WEI>wr%Rsy~E^WnlZHa70UJ>>aqGD>>r37aR(M$7M=f>mXnBBB?x@KJV47{FNCan`lw;vXO`&@3rqsSK<)xUKfk6S z`A=LRw^#$Q{1X}p^+M-|Cc?^MPqb?GQ&vg2H!2E$j;0YDP`Yvq9SYV1->uJCO)^8Q zH9B|E`lblv(zG4Lj=W@ja5#w!UWKxjAE{^U_2xoKK_?J9EWmM7EUc@yK+lplqx^qr z;1XzqUVkrV-RL18|Iq;`;RLf@zJ0>l5_1SS#rVOW#5B|+)dg(dPJr@agd(R#z*7x< zz>i2XawBgbdVVZgd$=53;59-{69ob=dW*&_rBIT#1>8-ML8Ud*;D=cq>syL5I9|Mmey7O8(=Hy` zp(9PH-SURDABNCWm3i=Y7LJZ;zC%6f+u_en4YcdXCl>MjJ-VWH2yN5;f$D;^AnUOQ z+}=-s-hK<@?CF4Xhiy>7PQ-esaf~JNfP@uA^N@<%T2P70Vr4!(jwa61hwh_`fERSv zvT4zJXlw|FBPN>2)5Qtt>SqG!3+PFv5P7cJipKXOpthb>Kpu%fKjkJt$V?e@FL@2d z5Y}kPr)TKQ9vyh0dKKN4_RnHv0(dz*fXZ+F$U0L1UF_3n1NC&JfK$9BN)~58*q-mGe8LJibzBjXRjGi0 zZwlD4u{EH5kU*zCGVu6q33BL;fNuw*klcr5Xrq=MIy>?T2LGxcU72|FRiyzv%i$m& z8iy@4^P$iw8Re}!!fI|-!yZdDuf)6K(95n2=(*MhK1$n=JJX6v$uHV6_IulIs z5{SMv8CkeDqG-F*$l!D{())yf)z*o8AC{qMhSOkP#W1?@z7od98KcZf7l_>_1Fgj= zh~(+QrE4qE@K*+%988BV(sx5Rbt0T8RRC4haOk+2#L}3$6CM7!80O2;@M1|7ia#96 z+IX`7X?8zAVW)SncI1p8R;WCz-!&g?To;D!zUV+N>o%dkHH%?fjVerGdqZH-B-oVe z00(w%Kw|B6$h*Ffb+G&*ggJeLAgetXQknusV@i;uAPKV752MzmesohIgT>inh`v;3 zqMN+eARFL@7OdccButESZykqUSS-@{WC03kRjBZ8JiL*KLObtFMsl^=VCX>>G>qk< zLnoTi*y$LM@ACoU2o@AS+m7sZyTIJt1!&IOfGm1v9uDiRr(gpQQlPXlA1sd7ummR0 z(0;{vzK1+Z$-Xy%F?VMh;tKwj0U2?E;fffZ0_gC|QPtcArn^aJ~TqN6SLc zCr30xDH7^W`y#9?3bNB5p}pJY!&*%j^l*F*1WeRMGCq1>oNb3*#xH}L$)yM_<3iT# zaD>j7mqlu@xy2TZy-3)xIifTEQ&@Sb;oP9|dM z{TPGx7YAUdISZXgNkN*CQ?a5aQE2l;H5kfmMV9+NqwK{s5MDJ7cn#y>Cr6qsB}v4B zoun4Et+Rm$J^9)}Td`KSb9E|b{fUnI6N zR|gxMwFjPkjzK;*mV(hk8ji*PhE;=w$g^z(X)TXNJ#y1AC_INkOViQa?4@ufCKB~i ztDx>u9=v$<6MgbjM56n4*t+M_z|-{z>YCjJ&DjXcb$pL5zZef`5$)K4a5*few+8BT zUxSL(IV3N~g?HzVp_oa7tb04og2N3hs8W7_RO$mkSv$9a`pL;OhjSIEw z&0*#T3viy$f)0IbL0cOHQ1Gq+Z9|r@VUh-?$pAHC7IfpWz??a}ZiD3HlI>b4@ zLKR6YxG3Hm?iXmEc(iOc-#K7wF2>b|BhL`Fbj3qe?Y#%Ocj#I@n zEv|uRG!;Eh3WDTBEAZslgZnHUOwwM2s>ZcJwU0ZnAO1sSF#)iteKMH(#lc{WKg_;y z3Ms6AgxbOqknFq>IP~EsO7<>?rMB7V_2p?;vO_pp*LesIU2j4gUEaVK@-OmnUk=~& zm0%(E3dw)Ggi*fh>j>laU^~@uvW`~V6-zHGI>LwpFH*m(73tGQe^Bq*wljLW1L?Ml z4b-}16MBY%CY?C9f>vNE>4y(r(bsj9s0F8rnF}!_Z9MrBb#Y(b34J$+klJ z!Txk^q0)FJ=9xRaLSo5q^-ofqb;|UW zr=|3==~+z3el>dXkGWF6$5C>JTQPmiKb-bhJb^j|+RPgbZF*@^DYbR@44tU;kox$5 zLlc>sm~Rzz^rNdXbc&)qBW#VJFMczk*LWPK71$(oJ5rZBR&kaN|9qEwjU1p4yO_~A z=`(1D$quyW{aV`mnGqFa{+ODwhf61wKV_hOI=#Urj?vwIk=}KFfcAf|i*}hjo;eYm zL{A#sUeF}`fg$&^GWw4jV+r^KbnOzhHM>1qiu+eg9!Tm&!tRMeJY(@ z{fc^Lw3m86_?UiB63wh^zd_kdXrki`RcYWlaY)skkwJZ_a?Tn=W^mcz%GE8-}s=X)g`Q)0z9L|mpHPRyr7oBbJitz}HznPXH) z*)eMK%iDBs`Y~om*@8CEGUC3kOQP>yOru*&!x;G-b!O616Z(tGWTsQyi}tv?fR0&} z$SBxMrA497>3IKOdXoK7x_~O79SZ+ZnvUa{!tv!&p13YuxRpcKNU@zaZ&WZvu7-5) zr&z{j+5t*;_5~U{szm?wzC#o0(+`@@ZYqJ#?470o_+9OTVaXqpmlxna6=D z4E`{IHcmEULN*jJ*WPqfO$Yx`PmY$-GR_T@e1zgGdnP8_sO zE*g0p&4%e?YtXE|LFD*21sz;1125{&!PW0M=xl~m=J{x59 zHeltgf05k7AFO4c3sF{tA{OJEjs{i~1E+xv`cYfp-;vc=%D?;2vcwKqSJLjr)pyLRd%SdWCDJIoT%ExAy1WzjcQ zZptOtXis4E_6eAcbbPLsRDn+9Hh@624tZM6fw}h-Q0~)Av@tpt-I)-9y*V3(9xd4o zD^7kv&tzv{(xp6T;T9eg@T<|snp2?BT!*}^<|5lk$x!mX3D!_iNG4nbB8<|&7C#Ps z-URHv5r*Ec_JaJD7pSFE7xny^2~wB`_#-b^w*NVL@9zyZOe*Tnijc;32++16q#JDv z?;_(_I~3Tk@%>F!cgKA6Bkm>y>+Qz$XI6p7%O-ebf1fp6tq5*4yTHD|9b|tSNOg|@ zShVFlG#OYStFM#LyAlSz_?(7mUD8=~H@wzLdS3@@I(&o%XfV(2*fxMb`_mTU|CxnyEHJyZdTsS=>vZFT5eng5=E$Q^gaw>MJ3KjeE8#$86WAcxGp{ijsWsxYM z0*hyn@g@dTkN5&PBm69}v#**O1aMm&d9wfe?nXJ9>fr8kVy zD$Stsk}gp5N3N4@PuR3YVHG9H>m&E@cTxkh4%37E=Sf3GhwLlfPHNrGp=94Jqc3>m zkxWY^6|vBty!=r@w#q6~$$g!q!L!uRfuQfmfldV+#4H^1~St^x# z%!z)Gra@Y^h^f3yuGGMci&SY>1bNn1fo{^q=xC>1q|^J!WKPI(N_Kh-y|v~Zx$jaB zwey|>m3ugqD$hPb3+pG+F4HCC@RbN^!SqR#UT`z18F!tUes(eS>g0av<6IePFrxI=g=}MrsI=f9Qg8hQ z%J1|Ca-X*r-L$Bg+!-^0+O|(brYAikw@y=`wzadU{_Co=tEUg8yuh4_`S_N)7#~Nj z9h*yDoV10?vM(j)2U^l0LB_OM#!kw*e-$-v>s@lglrV}ZvZ1`14-kIE14JTEmtLQi zLJk^VqtA2?k_+?K)4QjZ&~_h`nQUSzd24n*{d`d=U6A*kI-zVwy$qekRCAN5J9`6Y zOZ84Flx0qT@NK5UWK`+=xnC&gC#goZm{|hFRHLsH9f()Z(g%e#&nSBDSCGNO}g@A0+SG9Nbj3^kaE+% zPfWY$>;6#{XM5=F zPwJ^Y*NOD<_!5do`ZIHwadakrj0$!3rpwL7(UwYX^zu6+bim{Z^rK&?WB?P+G&pRh z?|)XL%#;n72Z<+`S<7BfH!yR0-fw^I&uxns>e~l;<|cv(`V~R_T}{#5JB8Hb+eK7* zwJbCGZXx}2$cV1-%cYTB0{zNWp9!7mMP)d$nBHk8>9yarX^@{oZ=Kao-B^8ug1c&r zD=p=~P25VmOLLPw-gnaP2KvY)ow=0BkA+Oc`dGT#P@8V|6O&omd^&IF72W;u3Hj#m zeR?E=p&x3VqE>I<)5F_&wCTBh)WhwDjGYEaZ#Ym)S8VmC2g*;Q8z8OU7g-{M473JkEdhKjALd+WKuU!2sOjGldkeNV)lB~Q-fuZ^btEf zM%2?v=S;XntJ}0vLlLF4^(F;+Z`BfM{`PH3>>5vRcAL&jnMYrf`E-#fX?8U7nucKlRIm$0F1BX-ilkVTAdNIx}3sxm!mYG}m`ZPdjb@l3r@ z0d4!RiK6e<)15PR()Y%>(`LRL25Y#xZIay&zAM&gpzZ-=c6j|Lr;2*>5X- zL-PeSamb6l=cZ3Pbl;&R2^#dohGE*(Ad=b@r@>4;9Z!vOK1t7T4X0wG7cr`Ql77!A zr<3E}Q2{Yp^gk0viuspL^R^GtiTF<{@=_iR{npG4p z`)%l7O*IzXTAjn-g*i&F$*~(_S%3c6C6-ugt;r zL^Dfr_6m}{`2+iBsHPVT>qj$37;jgLLi+BJY}>-0w}C%#1q z?KbdyaWWFf?T7C9;UE!oqWj%vS%)7wU}|Rjp!47|v?{$5EVoR?=4lrr*M-xd>82cZ z`PCe3O#J~=tLkChhwYJ)p&s09QimvqNx;!^hFLR%V8T-!7@M~bysI&|>~D-o=Gdb> zDgn@WY$F&CUP0Nt$>3X8f=uN$ql0NbAh7f=GCSi9%U{ieDR!-}aWsLYlr2OLz1`rp z?Gf1Ss|dd`{!V#h0?CkGzDX51ZXRV~E!R(gTTo6~4j$xB$@+l>n9=0lF$ zFe||MII0leK-*joV0zI~-QVyC)ZbHuSt+{Msrste z8BCto0>d$9kVe0sfx1`Yu^QnW zSnFShX6BuNYvLUsdpH@%3n-YCYY(r3F!))u5zD$ffXqHi<0_jJ*w&!}+j62I=sJSJ zARqYm$P8ZaqEUsF7!qT}=;H0Wu)AO$JXvuHk~#`d+TnhHEZk`K*=RxrCuQ`fvIEu~+v%pc`4V{Sjgc{8=(XaM;l_zc%$-uRp>d+hN$Le2!DSbn5xTg?v4y*y7LV3o7@3B^W%szl}BYsYB2MQ zgcT>v7Y*A{frf9}Nbg%Rq&uy`#xHq?w71-4kza}t(^n6{?OTw>!Sir^p(!j;aR)lWK#Q*#CdPHoRNak*587ad&P+QsRmZB>RHkE z<{+D&)krFbVv#4(k-eJq9wog%71lSP=KnBs=210$Q5-L&NrUDQB|~rTb8o$S?o%OC zA(fJdLKOK4Q6fY%X&zLRP-&piT!@k~H6T)`%u^9%9>eec*;;S4-aYT0v(EnR@8`SA zkHOgUJj%2ReLd|$?9s`9(2WzJ;J*~yDyqS9LEFD)CynMxDX6kB9nA!t;lZIOnCP(( zwH@l3u!j9z@>ROUL*bRWZGM}`EtF;T5&A) z{Jtx?+BpKsT5E7o)C{tZDM!1kYGiw^iF~DX@sW!kUdod~3ujZ1UG0mi%L?(uIW@RA zS_Wd2HPLU>VPsX6@Kf(!d>)mAOJ47VM7?yp-#-_>m~DnFQEKSCPZK>a55gxF3{jez z5BJl8QTOP2tR2+@6Ro^4z(*CUY+2knMeyOftO2pv5zOjOhPO4RF!GQ(YBYr6u%)@M zd`2CPtG5MZ<*}%xKM$6F^uf9A4RBd+0fro?g!8S{u>PAZ7%RBrL|r>9vAGPPIa_hl z+&Ua-5d{PO=3o}*f-RFC!w7vZeDYs1#;4U`_UBS;S#=ziA1{Nt1A^b#F;P@E{;#N6 zF$AZZ3j;yNzs1b`Z$xK$AHd6nak%BkLA?9UROG7Ggypl7aa36_gex3_Lhq-zH7XO9 z=P~&6a2wR0`~l-W-@vTXgK_N{z`U+?P&xiH*;J4Z@0$h9hDPBa;XShd*@v1M8l?Z~ z3=-^h0S?FO5%uji;nEih=7)H^CmIl$4(SK8f?k-kB^pao@8J7|7l>T24Jx)s0o|&C z5{vI>{PPg(o%#)53g=o=WCV5>Zzc<`3@4RW){_l?Z=qjezR-lNN6pbXX!N2VdmaBk zoZ~%+TH*~(Pn^i{_Gox{=M7X&=h1USG~7(eM01D3IL`kIJfO8A$0MmE*)krT9tb@V zPc8F;ax5z8*kF>5 z2v6u{VdtPJ_;!yA$;{aa%csSoyl`hw82SSiO^d+vS9jos(Ggg7;T!r+(87R>UHJCn z1e}!l5j{3v7G*|vf`T{(7wkNS?;=NH)9AILFHbCSYmqvhG_MoIU+}~S|EcEqjsPQx0@2weNZ1TV?Iz}JPlu%2nh#a55taQ8>3_5yJ1QYLp({7K=4PSU5A zf<-MCU{aIgA~X#eX1^r`HHhkolZaH!z>FdBx${D4T3<%2G~Dr`NS z3cr^slKYTElrsj9q^S|t;X2Us(EvTp)!;H}ifc-ppz5)3dWXG2g#)8tS>aeXB&^v_ zzYlm*QH+n2or&|!YP@RR26*EQ)^1Ki=UwG6Yo0TXDYwC%S>w?{ZYS}%@(h-~Eyw3p zk=TA#@NtZ-!lS)DIOJFadcAYTuBA!vZ~7^8`O^#|6lICgeRG_3umqdSx}j%4m6%UU zhV$=TaDs9w3=TMjl}`!&xu1%^ZhVA2m;S-;&Uom1osFBb6VY+DJgQGRj5Bo&h~Jr0 z(66x*%zXDC`8OLE`0c~g1NSji%Yc+x_hA6}2}^!_2bY&kFr%+VlyyoQLR?Rw^2sm= z*EA-(#|?-?;R8_aoPcf}NjQ8)wrIlWK0Mo-jn|jdz-n>=&W652+yBQZY%m_kAhv3yC9wG#-k$= zVDOE}WQm$1HX9V8p(KUKD7uj;$#Y1|4Q(PN8wOQr)j07^EC#>p#t!$#p#FRT{uopY z#CJB~&ZI%Z!6$&hg3ftW7NvH6K%17mc=NJ6%Dz&BOnC<)_uB>Mk5~$$wi*+?SQql8 zMFw+ICgP@DJBj6emV~rj!PG=;a`X2kkaHS?TRn#1DtigK8y&)j?i^k<8;d9GQt{dx ze;k#iO;$=3Lgds`j2pKN^K>I|zVQ2;4ZjCtJd)r{dJi_(i1E3T@OzK*$8TR6F-S@t z(o&n@sZuGb_-w;Z1wX*DGemSv-44~}XXC?~R#EHC4d|=rh*P&@z#WYm(BEi^t_!Zi ztD11saW==}KlfndKnd>6k|i1OolqVv!V;|=KtePKXC@|w&jvA8i_-8}NDmlqxQ?f% zhU1XrJdEmU68U^z1S9s;!=l(2LOYwm_gD}9x`X&&iahzTI}i6}p2EO5Gt@#E(()GSc7* zstup%rCq-Uw@h9s$T){qk8bo@>q0eAfa)6(L(;vGD z_1FRQ5PHqtdEI!dHWF8y;PIEiVtiQahS}?8pl#nW;!k@a_u3WYh8{y>1sS}r9)TU_ z#-qHQKaRDSiE<@|nD+T6ZYw_o8fvm+>X8Nbw6g(E^pwGfvub43)@X2*5%%QxEbvWg z#XfgE+&^ansyV9Si=b&J`g$JByN_Y!^lBU*Iu=(tAHdm;2E=5lB32fbLvns8-aa!3 zkDX7(;=)TO*C0(9k>lZg5RnErhbKW~sRw=FAx zt~uOFD?JD3>bphaEf(kanT7wThcMsKo+Xr>T*9k5OX#Dk7wDgvcj?0bPntYThnE&K zzX$FeH0`GXwf?9n88~c1r#;+DzYf&V?Wn+;EZW0c{fgkX_pjvN=?&%&B*yXEZUxiI zQR}#n=4$#ob~7iPF^+0jhS8{}V*dDue{_s@JHIr5&;#N)ZtBa4^my%N{_&m|I=Rw| zx7}V!ucr>;7tTJ%`+hpdJIu`Its1rX6qE0q$4?2r(l30L`Pe@)1;yz?xLCag&j$ElvBYbLkQh*oRPTd|z3zW0fSynDk1l}s1< zlWx@h)M_ekp~brmI!8Ye2i`EKkm9`){AIBd^}9)E&YL#wS;swozTa}*H#=R@*Wk-v zE~oUz`EWkdw1~1bFX@7p4%~{1N4YzPFVhd1sXYDlmRe`uqj#Sd(SZ^#K0u)75+&P?vOf#oXo}2PU$H(z7%#0owR!eh_e5RGIgcrTfqtBacs9uN;U!WFB zSJ)iq{LdKEwUU?ATT71*Gqt8qJBIM?*Y)WEtrAY7C4-KB6i4@UnNjumuf^YNRQbzy z^SM7=3%L-VEPi{ektAc&PX5EMVf=TC{oMD9pXfgA$F%Q4I_=6FLYvP@^Fd{~yw0T) z+==S>wB_MLY978#Fj;v~&tfm$q-HvQ0zBwT86%!7v*S%%XV8+>ggZ+N|gcc7PW=8 z$&KTW5A~=N03X=_awd+azKY4Y!ZR<5osqPH5yEcP9U2%)1c)Id)FLd)BF$Z~vj=_{Yl1#UK zU}@|#p_#GXfU2Hk_)_IquGVQ2uDBN@@^upK;2%s-cYzo`O@Cw-{5}YsjHR%!MH7B4O7MY8pqn=Z-B)GlE2!r+4;6sr& z>D_W06q*lw z49FkTVd!8i4;%jO$Jg==Sav=gjupR#`rs;DW1vFDI32^w3eBjQqAb+KeZc4@Ku6GQ zC=D>cm%rY@e~L}e;AM&*Yun+iqze~~8Uatdhhv4GDqde119s<3(Z_T%Xm8-)l0q5o zoqh<+vl-Og*9sr*C1d`Toub3-;oxXD7+;IrP<~hqR4#TGT^)Z4#y};AD?&w|wSL1p z-w$y8%NW?t`Gc9&U$Br{2nMT1;-MuaU@3`4yJ~H0h!?onwoOnQn*^VJUKX93kc(`w zx={PBB%SIb@T}>4kOqNGo|*y4mlRRIX`5)?5EU4);vlRmP$$ck=0jbi73!V83xO+> z@S1A|tkYJ&b5RGuXks$zn#~0j!HSu#9*RGP9K~H7>tRgIBPjZ_2FKW@pkmozY;0H# z2hHrzY3CMuv?F?p08RCh|%Rq*@pyL`rpQti{9mBP8ltycuzwfy`)ufvC%z{$)R9-Ob2(b^n)!!6R<+1Re1M# z{P)x!XmJi+a}>j;+%6%t4d9UA19WI=gKFT>_FD>Mw5LGHPgTG_9R7_Rf-xhuf!k#s zYge7aine(WaZDYWO(!5@@B$VIUcJ^WJ5cA#A+&MchiM~HAXqC7#&2E#vW7vTiviz6 zX*o7{*;fhT1fSP`Z#zW|_W-Y%ufyTJ$8piFSt1vu23%3J47<+l1BZX7L1u0{79?$i zE3@We+3H5%mbO5G;sunu*A3@8gzwV34vPEh$;kF(a2lA6uI+1u`dc4s9j;(XmJBH} z_9d~ggU~^rC3E)Qf`wJ%p=m0EDrKKUU!fluVGYMD&%o2BwOH1ZNOpVK;+X#7u=v|x zJfU|IQ$2S>rH>x@^~w>IwPWzsOQ z$HE7&JS_q4YXGT`J_LX9AbgmmhY`_7VcbPOJb7&o?sC<|?zk(Wp8Rd()B6DYJI)4L z_B_E}#p&dm@IF~OS>u7jairzG6H$9ELpnng$P}w(VATV-Zc+xcjd?4Y{V*Q)Ez&@{ z-xheyDF*XZ#^9n;BC<{74*E*jC|wkTHv;a%r1?v+LwL@qr_$kh{3BEwE`~M z+<{kz$KueM1bClw2nYGkLb;SOd|Mffb(&fD#<~dtt#87=N!D=qw}>peDj}l z;>VYUm=WEH^%sL6c=9em+semT3suR2@Ln)eL994Zk0Uoc#YCw{47hzCE>|7F-^Zje zeVP~!_?Cjp{dKrEpbd|Xl)=5-aroy*5%6-M@UmqhzT2dMinBYwuGUXf{shr?lpT0J zS`U*~4-o8*k%>Z!bg}2G)b~ z9#ee4$`PMkeIUL%g}|yD42%2-$2Lh3SFdEDZn*%F_vYa1gO<4Xr3Jn)TTY<$GOYb_ z5MQ;(qc)X6CBqWD$4bEuBja8wiFDxAC2k@`(S1NG10;o^T@oC9mvP8fW?|_Ew*_B3)gjvaY&fQ9g2_i_qMgkyY}pcq-cRSC+zwrgyzPra zxM`?;b2vG2YbH#HPDIJ~?Wp^`4%(YzvGUwen9&pro{xXwrW_S~={Otbg&N_r%$um^ zd0dq8^9tDh7mm#O^>{o{9uMS)h{pUd#`;QYESp^wf77JC7Gg2 zMg@$Ci@>jf1}#ZFfd9G!@!yZbIRChyYgrV4snuvW*rY%n}}{nT|g4< zY@V~ju`1`agp4F{@1k*TF7e9ynECs0VgUW9L ze|Gygj`9BhbNDz6Jhu*PQsQ9P?8*4WPaX&RK7<*cb4B@dI?B!%23aF!LiQGE!r3k$ z0h6zyjm9T@U#2Xu1!kCTC)_oTPQxQdCc%fM6qL!T!_#6vP#EI`3kQVO>X4f#b50I> zf|Nc?ed2u3*cP1RTHZFnqFh#udi)$Yq(}?gTHg*!CS<&`raOj%V@RRYm-- zD-*A+0c>tqiLvSw)qVDX_N!4O|I`C`_f06Wx&htpl;gh?JVpr3mYX z$zpNp7To@!2Xv*nZ0|O8BtC) zd)%myNl4UZFGN@|_pcV1|JXKz@&9Pb{un!njT+X=+_R`=9ctRxm$C}xN16&5gDLf_ z_k-Qco_sl`h8e;xZq6c0m5P}x>vK$8hCRD!c{Uq=InsRSvpzpkG;SKF%~bA*)qrL%-j(hYhl1N*^^c8r}x%mSJm|J03o4Nase@_IEWi>r)uXJ!fOyhD+GS=VC_m zsE%E9OV0eor$fxsRmyDU>Jx05@dWdV%^mEFDn;|}f#yuBwI(}b;v?qglxIxzR))1C zW7sc82N*kUHk)~9DBF;&VxAOW$!r=ko*g@zvO&8_8J~OJY|Pj_OrnD~BEP!VQd6DVe1=4-AwR)+RL&|p1sU`EnjkFmI-^} z1IsE5+s)i=+|F#sAI>JIrZV??EZBdZznCw+huPP`6WH8;$JiA%nanq*ROa)8=ftz& z6nmmxWj&SMkiBr{3{4_SlGGmO53W3!9P$nmMO8S9`bM(x!!^Qj(D%;n1M z?3lrF?Bj+mR`pK>Q~zls`*K4mGv-nS>)M#ctp4M|INRs2qShvMdQ&13RI0%08|-Ck z3rgAU$rh|mXasZZkRN+i>jQJXWC*jz;R%zqK8j^8PGj$f{9wq#O|0|2<&5L_MT~wU zu(QXive$+yv#$@^k)}2gn^Razni>`|r4t^oZOUuSi-Ve2j~mVG-A!jn_xr)D!_@8U zyPY4I3*{r2^Ai@bi{9q3yyPEwS2T$EIB7I1-jKu2r6XAX@iOLCp~u+~tFxJJa!Kr} z@>#5LTND!*q{^-vZ_ExpF@&v*nQ9*U?JP5@WCQEmSpQV6lPbFi1FDJ%HHu(Woz7g z*_-1JvdgD+vM*9^u%q){FizFAOs{nUQy5r6YQMcFGY+g{H7bWOnm%IEnWP1wiz4u; zY9cCcZ@_I)_M*AR29fG(Z!mjKFKq5V3pectk=VDHz*^2gy>YehX7p{Sl)8-rep+~S z(N}EVJ{2B~s34o{&qH`=F_uqG!YQp|Fu7OAgZgJfFguTUjZwg`v^=t?cnYo>*beP) zHlh9oCor^8zz}CcJi`>AQk4QxiCI8~s|8_}+A6sIbcn!%e8aCFGhvc>5)p3@JhS7a z$y|#J@?p9Mk@>KRL?rycX_(rP2b4-&0xR}wkmVDj$qH*#JP@}Q-TU8> z5&4EB+~y8OtF`ipRR5&@|9!YI80s9`QkaE)~@-s^F9vtuS@|P5fj6#I)K0pKE1dp!XFt(7Gtv>d^^*wPlIn z?PW*~Nl>=ony5!^8IHG#$GP7%p(-yMqi<}%%I51}IzpN8H*CeqU+9iD0Qx1 zG$>K|Rk5NAI8jdyfkK)zxSsD_SD&2n&mnVGoOAp$L+Hk$XS5%oQhl8h9;P20N$O(7MWArjCA6$g`#e>Q3FMq&T zCR(V;3HG!d0qZUni;FceXzf`19NHmjb{&VUD)K_VCI;RFE09}Tt;kZx^Z40dDhZz* z2m3b)dbCwD4yY_gt6v^CgE|>8q(vqP0|O`G z*7=U)Qcy9Lm7Rvh+5>n{NsI?GcL+7kZW2rXKwg3j=@5D|xqVtFXOfL-7FOukUySz) z!|}?BAoL!zn&@Obf`P&IBz%lBZrCkPsvI(ee$Go=nN$PDv&N8ZNvGk@$nnI(Z7ja) z+lxkLrEy#JBiNaf0eaug;rNR>WYZx%92j~DGe=G$a&3(uC3vV^-k0K$qlkT4kFjX( zFMLt{2=C|}!1SR*@a7<)CM&A~Hu0>;KSl=5^?Hz7jaT8pojIsp>@FJdG8qD&D&wAP zHC%6a%M5gEF?jb}oKLmD$i))2m^DvX0k@5jn4|Lu`tOfMzdn7k z=35TBPX3B3?g~Db|0Iz7TOTb)6MM^|BVeIl$g`2{C6&*KaCX1wrj zCyo*__CkN_2|kuesQcXx+H{n#uA|ZL{U?cN+ACIwFEB$4j0cVE9=NxXfsw$RHic71~8(_oP6qnhwU)jmGxU1PHJ+L4{Xi z;PHeZkR7FfMaqSsKeqtJT(1yG_VmF?hhmXO)-6#*$tJAJ_>N0`-LOSqBhIq#MK2$o zgl!MUpeu6+e1CR{s!b{0xZ;B&Z|lR9zG_j|x+?H|zX+A!BCJZjiceNf$K%6nVU>{| zItqDkHX_+4s_DGBY+{7?>4%5K52 zv5Vp3!7j8}Y6sd|cVcAE6MAWiVQoa3$jH7(bTVoj&Po~sCN)WDAe}2RIFbZE3a#+%;F&mV z>KC&{Nf?Gy{)g=uim-a!8hCyo1_vJ5!qJO8@cech_>Qjv@3&$2R@lc^x7wn1lp$<> zw3}p4n+f}`$zfftkVD|}1su=kqfyQo{I^z$TzVG;j+0Jc=k)|I)l-C`J)a@FBUQxq zr^Ax32jQYTi~V|$c-`BZP{)^0A9`JsBY2>8$JXQ1HSQq2=m4(xtbwPCoiR;;k}bX$ z(PNegDZdwkU+l)ghO|(ep>_dohb7?DOR4ZlW*1mj8UR}-L%iNifbo8pK-BjadW|N4 z&d>RH{L2hfyp;_BBT_|{cY!<_KORexh2FU61hxtu1e>+FkX82`!ZL27e4Qq#!Aikz z*oB5#0J%bKTDrIoyh?_l-Qe+f_MI|L{rd!dEV9IZy9R)@_=k2It>C84G<@}+8Y*b- z1r7M2rZNqu|dkEkqwTtg5;U;#J-v zhnF{iS@IO52SN6_p0cL1wHLRzD~LCFLv}-IxdIZ#eLYj>6qe6)0;H3BLn` zAOnjC{NkL7f4&>wh0YMTtTr3{2W~*|ASF;*QVH@C=i&UDJcj6Bfm0`DVc-4(aLCCX z9tdYjL&#_F7wX@&%K}9)6O{1R{_~=$Gv;9ZuoAWGrx3pvIT#~djZ+HFiiS=WvR0-! zq4z}@WS8nfYsOq`KbMS~ubTmv(=Xz7%i;axU05@FFcv^BUJ-b+=YkIGC-BkDycMpy zuo8AwDxlMfZ%|8VXOAV`pCDXm5?1#{;wSDnUV3^Mg`fnO zvicyLU+4q7-J?bMRyRe}y(@9{M=fxwP~vZIP~_^z@8u@n{YzU6mh;~^TXAuH1%2l{ zl#f0TNtGT}bDy7>@@+y!bVdJ1F6vOF&;Sv7sI9RyUpJP182W?0CiYxLmOHxp!Cd+lS;@nxQuN5n{q(NRE?zO<0&jb@ zgzpQ};Lq!P;Wq8tPO~b*sOi(sG~;6^XYN(QO$f;5B>y$?)&|Bjvs*#~jHI zN`n{o=<-#ivGlitJNIv867T=1i}NL(+|rkt{4BAy3$0sy(7JmEX+->?k;u#I)RVY{anLC)e zl>1s;%E_xGbH)>f^J&A*bFVxSY3LILn$xqBk4^C5@~(yP<}<$21?b18Zpo*4LFc(8 zAz$c)=_~le$!EBw-uvi9ZHDiCvxr*18lbn;6=>t;S@e!}0T=pwFUJJ$=7!IiMaQ>C z@~hXJ=A2vKbGNLfQjI2|&wFJ7EggA;Yic#1MPA4S9%`Wcja{6`+K@Xs-AK(FP}FyI>yDeB=hI%75NZp zX*#J~#Jd)EbDIb5(`+SeewU*!edX{Uuda818~SY%pYkG{?r!0DrF*NmCwHFHOc^_F zsW6)HkotCRjZHfL?Xw*nwx*0eD>tVNJMM6A4YNd#xSK zy=h&@HO_1iA6((b&0cbV^HsP{lloFPQN(&WEU=4+`kO2 z=<5M7qk5fN-#Scub>J^`>Mi7~PiFCo7o)jvabLxcMmccqva;NbVc*5C#~F!xPY)8W zc`C*I%oovdYj|#b-Y)v^wVuFz#&gp$M{|oav$=(@Ot|wWRA}|^Ao0ZhH1V=qYdEF2 z5}F;-CQjb5g&Xd5f~$OWj+>j=C0^rh#(g~dl+&}7p_&Vpi?2OHv96Mc%W&`En!?|S z6{|D2l2*hy5ZA5$kzZH*LHcFJ=>!_Qkxy5q<7ts5^6JnJEz{UeGC-CWMCPmSW7 zLMymm@e{;hiz+yE(_!?de6M&kUm$*THIz1WOrfK@K3P!$?d(sP4|hW4cuqyQYS^@ z$|s2JuO)EORnw`90p*4`Iq)wRcXK`$zR|8KFaDfeGu`l_mA2+u(EK@1#H+p^8damnyK9}A!kA4qT79W_9&b><*&0oI#mfQ9>iqo3Oh$}O1b6uA{ za4l-K;^`4uGTH_uApF0xfzg#8ODWigVv`svUQgSF^`7xL7=^*HBc zQp4$m%o86g+QZkY6w-k%Rmu55iz)A0!ChZBnLhKCa4j~+IN7=!@u9!~PT@sAr}f|) zeUvB5P3~DnTi>7NI%n9?+SqxVYjFwfa5JX&$F8Hd{xjw#T(1>>8Z?LYR9>JO(kE1sgq7-Q)tS~5p-+)EAG3KALV7l5cq~es_%Vu$X!jQv3v;L@RAo}5qWg5N?h?ATO`2akLWyfq zOQpDME*&*`3*8=&E}pGhN7sM9Ca7~}+?c8d;;&LFbi_!Wf4aew`}B1vuU@WBk7_B= z$eAYmwtLmI&QFaijt!yfvdcIl^-9jIteYO6w2vFr`<-iOyTv*81Pb%d6sSl0ac+8l z1l@1Bi}U_EmunEt@u&flTRwYb^Q$;WKDvpb{cHMe+flye)6 z-I32tT{f6bt(z>MB%WNxiPPLJ51!`OoTUp?zjJe>Mbu^3V_K9qgo|jsBQCi5lUvZ0 z#r>1{NY@J48+RnZ)T~ZmfkVT%XMJXL)1N|a?W4Kk3~`#cds!>>{VV3wl=LN0?JKC4 zmoDFtRmA_7@Qq(BP7ql4T;Ax2h9s@)C@mQrNB0&=NeT}~&8`kIbQ@d2 z?+KRhwryv58M)bXo7E;siRE$1{9eyH27B^udCI(E$YehLxT@q#S(zllC5nccpOny{ zL-{i~i|F_7Tlvs6j`ZJZZN5mzrCI&$Gk@&zVSa)50bh6~gct3TqZ`x?(Qf}@{<C0_ulH)&Z`30Yq`3w5l{DtuksZGE&df9y<|LzRs$G+&G zxX_D#)-sF#`OATJ&g`boMp;Xg&6N43q854}FP1x}w2hw`R>EI>V@^Z$kMcXcR`SaP zhO{q0o%dU?ix1gc)$4Alg_+GXb?Y11NcAvQT(3=>NG6*JPi`24(9(CBXPL1lA7{)yhNC}bXUnh z@^V%@H5;KMc{4MaZ;hTTF={mBm)NG!F&FmoYW0I9!(tiU@A)9!b9f`)U2ux8*!GSe zCK<_p+btu>JAIJO|Cd314VP2v^g`Zy_z;N~Q$;^tTg1P4EO-@NYN>ksJNo9;Wm+*@ zlebxDbMOA1~&+q)+pkU7pfg zYeq_{2QiWN@oN(^ChPm=&Lz7d}_yO-tVF&zv00c zNxHDd7j7Odxu0*!v$9Jk(s`+MPZNlcS!gtc!1Mdu{5$(AzZwJxdWi^jd|fN(6UhE`~GCc`&+D32m&lLR@GHg27D~Y`Y&XXH3WT_yd^n zHBXpRQv|yz{)rmOX3$Zzr%Q$ivyf-+$6lVdHl* zT)w9Q&-^%tUw^RZRaFjIhOzjZeGkDFli|mx3NUF~j-OWUz|UtN!?nx)_*Ziq-2LeQ zKf_J&(S)IRb^T8mtmrN>%;s=`SQ;#MJ3yK32duoml;l=k!*h2Y<0HF|B0U3Xj2C8~ zED?+F5i=UHUCMF$iSu}2^kv%cf?9sc;b z;4ZlKTjOnwQTWSo6n8yBG#-ZzWWdEC zGlX2iBd~AmdDIxLjO(|iQ=Pju11IWNfJ4L9E*1nLnZCq*%z}f8!v6aETW2;7yk6}}oU;iZ#KeNS5O?xnzH{Fq#4em!*_eSQe++UQryM?rGzeOwq zO~}0`+6=~xVtS^8lVuwi+^#CaS{~G7erkNg+^gZt=&)1Fu%pY#i~NhkcZ)ysB}$6j zX}6y_D1C<6ru+##m77StPb4XA@+X&4UlGau2PCMsgp6FG#)KZbL>wkuXT*^MxN!at zaz^}tBr@yBn|=-ER;UZHX*42a$X-Tm&^~gzQLh7UMlOMg)$lt_|L^C*>JUY3Y z@s0jNZcJOv=sk8N_8XkZ&po*~$3KvX`7X_VoIQrTu%+I1K61h8``B)Z3ELvWY;5+_gb7CNK_K6J{(xXK- zE?vNwT!~|x(x(xr(sLy0mID)UeLb_(t&hC#-UKm>tsU`S*JnV7r!B#>Qyr8QWcq^B!{uCuZYLUXuOf5LCiH%n0aT0v;QLF znaLQ>954t&nSKCoZysTO>;q+aiX;?>Oe-1DM+t-nYFUK;G+hiHuzJ!>k zQAW}05z$%yom9+kASyo;NO_ep^H^gcnRseF)A6l|EI(|?6mE1Q&+1c{t*AxR-qaJ5 z`Nm{ajRB+gF`hgw)?-%LL=uaH%|zZ_nk=&tF`uk{lIF%B5_sN(nZG)h3Ew(}Z2#Dc zzg{A| zml0oF1(&;e!K-dNN-rveO1UV!Yke7SJyJqdkH@0KZ7IZc{t@gGMS|;^;UswRGE$uM z0sbxa$5`*(Km~vm0=!ZOmYtJsg7rhBk<|rnAL$irULxb5dt{6R~8o*G?kQ907 zpng;=mIpo+bt;C!yZ2+zOcF~T2J{K>24xtybOYM&QzyF5Ib3)n1;6}Jz+-CCBw*zc z0mF=kT>^)x_kks>@O=M@R-o6$mv}W&nsl{AV)pEMXc?c6tE$9U=rRiu#G`SQdo8xR zAH!=dqp*=JK(o|iFz;G9*q8JzWk=^Xs70e-v38pGR~( zfc#jiOnU#*gNw<|7;^3!KGi{d>bVx2q^{#Fi#K?qLJ!op*@NS{jc7eXiTH}Faj)Q! zk8ysBKGxsi+HobavVA{x_nd{VW0vEqpWD!)U_O4Hv7H<{p^xPyN3l*nK=5I@phNXF z)IYTmduk8kqs?w;T2u_Oox%7y>m$^0(j>xv4Bk24g9RJ<1b)Gi9DjWnhC2({%{Q7s zcKIVL+NFS>6Hel0-yzuKs)r_i$m-FZSDyA-3g;;7rkfILm1*81EN+mm1aRWFG-9CJKJ5$QD>IwF7?5KZ~Mw zFCaT{G6r68hDPIBV(k_H|5J3HVL85U9B-F~5=tpaqWe6r=efsqC!5SPkdaX`i;NIS z3GJbUBq^mxp`DEEGSd*UDN2;AjQouJ@Bh2rbR0cB>$=YK`~7_44p`&+Yn~|UuZ~_5 zF5*;e71C*hS2H?7s+eq+aig1Cz0k?0qee9gt%`iF!8A_ zxzcJ!PAN2!_VH3rCF~SzR&B*8Dvu=xfh`IF<&4|l$#7}sYj~eDihRt<0qej6I8(~g zzg<#`Ulu-xzq5AWoPWw_mGA|Vs#72|)ElG?m*${31ze={)hgbM0qI7mI5V>rh1 z6(%rd(6Vy`q{ksv>wiM|A5|=?v>>~#p1@z^JG4*vgmW!7;q09KaN);T{OLLj*%g4U z)-y=vj;p{=K8OSDw&IPgnppNc6?<&8!Tw`CalqK&*mg1*((;esu(o_y_@^FgocrTE zm26b*$bpw*+fd&x6iQSl}%+rTMzf^mqW~j1gyLhg8{EE zz~$5fXw#uhR(v}Mzna}(Y~Fr6@e$BzdLm8_EX6qoy78o|#0@Pi0+YMX;Y#jV@Ju+# z92wOY#;?i4A=(>Zmz|M#eZV8(&6ob-V2hR1R6k6N&2$ii?T19i-a+Dnkl7N)If~Xy zOcf7|IU#uZ%%HO}CR5!&CAuWsQmpEGobvm}Qu{rbg7e#7;ul9X_o zx|53WMq|bHvmxT^I4|mYUD^81%qDud^okH@X(+m-x(VS<--K$zNU9^_#Y_1;MT-qL z#qQRFH19V{$wosOeO+Ii=4VU8N2*%8PdQ2TglzHr##%9XMy6;bv7fKl4H93sr3v{# zUDPwUo!A+k z*K$(eLbR>_@ULh>+gqUu4vSwm+!A*j52i_fUFr7TnbzH7(!^)-VdCU@W5s)IWkTW6 zt(iu1>)^Ia#!*FQ=~4mBcEmG&=m)0P#~F z54u~efJUDT7NYLhWT` zlA@?GX&L=JBVGI;zN7b&9mG6`^EBIgqv+caMs-6j3j=rdq?^a&Qn&0g;$H=8I@jtK zonp{K?2&`?(b_H4dhB#MP!y>Py&`b^!f8ZLA0g~hhv1XqF8)`2TAcKDxVUY6u=wiT zIiZz3O+Eeh(-&{DY2@@T!t>?`(T&Rzt@O$TtBx3T!Q#+nu56h z_A#2$u3){b*-6~1*C@z`|D+))$#lz;7j$aQaWTTZUigp95!W=d(c)FBrQZ2%x^3hE zTJJhU9JEkXJod_l?mx1NMjMT$CI1$Qg}vv~=Wdh5hDIH#Ts>FpxvD=c`m;#1oI8NV zdZdXNUbkt%`#aR*o+$P{uwn|?A;|3Z`>Iy{!I*^8*f(Az;1U3KCjuflOMRwtD)=~CYF1-IE`Cz2Y5Ov<8wZ}=$$0v$^p_I(+ zIlPHelK19{-~Pw%k@e?FGmmi3BNh4CE2eVi%t!P0)Ti@DOfoo=^o49i!a!l8&S<`V zks+tMGL!$@@R~2?qPdA7`gs%sCA@&Sl!_ z@h0h-e8!hLuJC~bOaIu(>9u_2?{yk;)@S3wYcP&mv-To? zV9G`Aqm1LH98u*TmZbCD_RCpOJ%meDQsad`ZhX64CHM5pFS%NKBX`^DHkY<*BD>^< z2CqL|hd+LCIoIqui?ctV#*gpm%Q>3$<+HPHbBkBT@ZYjc_^U++_^k~)IV1N?+|4zW z?E01@eq+i2;pp@Y!sQ^IAG^+z>)&~f-#9;w`*_lT|EUqfZVVa1{r;TJxxFJ9G=XT1yASaysh9b{8-Ng4A1ux() zulvqj&a&nAH-+-b>gBw}z2khz><$X&kHD7WZV;od8aV>eY8aE0ze z*ewO>?BAp#@;w`Oac{?*kWYAE!#W;LU@us|lqa3M$94^BVIQvMS-H-gEuY4&+A)P~ zi95^|#~ft8k6Fn+Wv;N>K1Z+?<`LY2;5_-gsyue@^c=RJj|F=+qL$TNs>x2Yd?3F$ z!kHU)Zx;LU1>Ow0-F@oCik(~$J$KNV6_di*}G;d*xOb{T-odbsbe&Rt4P*iJ>ROc zePs*f8hwXwF#!eKowF+Z=|k69yADN`>2l=OJ&>_skB+e+ohI_TSIXsug>v?C>M72A z#DDT*(H-o)@7vhK9aA}MM0Tb_3fomOkgXtA-2R@}+zAx!r-IxxK4Z*#m0Z zS-FQMSKVs>xAbW?Yj*y#eAS^xY*L0h`z$P6{wl$N9cuoS9cEt2zAazHzI@fh9_sa6 zp5Is}KWlV|J*^zh-k2K9UYvDG=8>At9vVDMu0FR~o~SjAYnk+fJFh>QYj`-CQ>X)Z zXlMv~bVWP6{lQY!dS$A-<#aWxF1ZzxgI3C?p7WKrW*lUn3kICM*~?b-*8g<_`>)!D^&Nw3?ScY%PGmbflFMZ~+>xz5^Om)+o5#&fS7rCOXUJa_ ze`0s!MzGvtAgCmYh}SEI(TNAvEQ&V`2SCXI$IM1+{$tpkwSy5fpDoV6n2-PTlyI1~63Les0JiFjCDtlJ{BIFs37&fHHTZ{dF^KiKE-HD(y^;TgBTPX zL$irD$kYiR;ON?B99L6;9qsebt>*`<*)$q+>kQD|Gl1;55QDF;E0FukbMfc;B-h8qqyO<*X&18$_c*zd zFBfglK0p%#CYYRKY;dww5q9ymq#c%%bKGOJSSMil3Vp(VPQrz@`Ow{e8Ls@H zPD*QEV{>CHRz+BlxCDY1w*G~L;6@admZCw(L7emS7qjGi6*i3B2ARz&Xs#Jfo=)f^ zn{a;{iP{!L)*T4~)tUQnU8@QCqU}x>Yr9pmLO($OWVquy>3iLa998qZ+iF#j# z5lixkLz_MM5I6~6r3@!(6{_UiPYaA^i*Uf5V)XaQ$C9Wf~!`MD#wZ{_F`4vgr)_23d>^xkz zOdX#{eTbP4Qqf<(H%VKu0B0L*!B`JEigT| zHyQrrGF}_2Mdp07BS8&&$S&8d1PVIqTTTWQ1=1j)}4%1Nl@qoD=HvrCVoq#1-W^ilBA$S}(7k;;ULx#=_ z)ZRM}l3W=aIr=GM81G6#Bxh${P$lfId=Fc0CWErD6sNvRl6GztxV3CN43@aY``3Cx zX8k#4+mcK$@s4I{mu`m4*K1(Q=|5nkFZnJGSdi4rENB}O&Xf-ff(A>86&XGTn$|7D z!+~9pz10Ap_EsZle-0xvOp|yOFGSZlMldUT5K6%+cjn_C%$)@TSDlFxSD4X_~lR`uy5cUkGJa{(z@r71Vz! z#fDp-n7UF0eD~}gIQuSzN$Mu}dC6EfH&qQBXgD5~SO# z3v1y;^$F&9QE!;vV=XM1`wfRyG2kOogQ&wna3oy^CLkKMp@y)UXxc?{>Y1&n79-s}p)=>F}*kd?fWRB>8k`dV>(H4CLYAW&EsI`uosNZw_bQ6 zw-DA$(Zh{ijyT6rdap>l==u>G;P_1+aGAx!_^tDpg4$w6Nzn$)etu^D-Q#6rnkvhde5w|gW?J)WNukY~9^)jN`cAscuhLH_J9c3;b*2q@J9*|wv=gEXHcWFOr zK{{ve$M*)QL}>@2?WQrLRdYJ|qWF?@>VeFpPG4Rd98NZ?tip?OY4)4APBxC{6O%?p zRxz!X^o;#Tj;EZH`JLP;`_Jx?%yb1W`+^!ov(`*D#A7)rKq@?L_e63iZJJJ!676KUd#hv#6F179UfVA#dUFGp<{u@0&Tk^qy8OwzUzMcuUA&-tMr;MGmc6- zN=I3JO@EY>(d7KBLc-_wlD+&9N^%2AfZrWMzEp*fAqtu}psbiUC|)B=-x`u$GF{?y zIEUyw7(gtYu9FDISQ2$-gly#Sd*tKv;j);8a#HZhiaZ|>gnot7WQqaRvXq5p@>?C)qf~+S=*aDJgg;~QM;FXx#lCAcFmQX zNhl|?PERBg=1i7d8gE4wWxPShb#mGJs1>rVt^s6o)PAD3cd%?n+IZRT;%lV*z9Fe8 zP?XiZ2qCefQ!sL-4|y}Vx6EeXQ*tmpl$hse%P#74qd{2*YRtY!+?O06!kPUfdTuLB zT6&SRw=BdpN-cONc$Mr!nv#5;^E{bl>I&JY+SzzTVGsHGKu0#ZGm7{cpTYyC-^sB; z8`hWz`cFN+?1n%v%cgTyu+k@5%~k^^#(%r8|=)(~5n z?SveXGNZRl%a|kg;+D($XMdD<*4d=5;(r(y_lLCeTgWWcKP2z_EMjoLiL9F}c>z+@ zWPyQqh+^Vwa>-0f*6ZjFnZ1gc1pL2_HBOqc{P!uuFYq@pWm(x-*Uhr1i_2s)Uu`Bo zOJRlvw)Jz7 z`jzHz*h=zlm&V}MPj+zaT{9$pj)3cZOX1C&I9yzr4L!$L;H2z{C**^{4>fRWRo=x z=^KU%Ub~VyU&)J5b(lHzx&+cD-oW197r_Z>&q`X2F>LF2!~!F7|9TDf9zTqX*4T|J zudD?vzZGcpt{x`V?7`vZW8v|%4KU_ALazWV;@*w$uBa3qZ&1bHvkvfg?OgPoF%#SG z9)YH}XPHygLkZJhjPK0#U_`??d@;QZ8`d8NH$Tad&|Hc(+WN#};t4$7_67AH%He!U zHwRb9Ptg7ueU*0KLuPm>^+q=Y>o1$V!SU_86Sz%9cNH{Eu{ow+aJbH)^AwDkSxcSh=x ze#>HNc}@J$G8jF*cEPaDU@&Fdz@GJm-M$QV)+?c1b0m%}<1yMl8v_=kzzC_|IqdO6 z#^lB^)UPliF03C3;6~!c5%F+j*(IFXm;nW`Cb+fr7!!BZ5nK)&fNdKn*}r8K#3jwe zK)si6H{=oaIC2rlN(R41mxA`hOq@J89!9KZU{_8Iu2m?<(OKKU+DyuywQa}WK8JB` z^p*I{8SR)iaA8Xr-upQQZCq|ct=B44|1QGbI1yBOn4s4Z$sZr0 zfmbTrn3?l?V>kbZ391_mv4;*}Gnqk@-IFkKV+G1|ZZm38_d!>04X(?31NZuBz|tRc z(8w_x&FB7Q+BfQe>a?Grm6m{U4nweTYb(Y^BqHY@3tRr|#SoXNSh8ya1mtR<+8Jeh z;qeQUwu~UBj~oTRQycKYG8c?7e*n$PJ@Gu-6A#9iW9A$UG|Sxz3i~tgzd%3e6Lbj2 z=j-E9B{zv%76x}D7FX>93I`4i#N)Xl?AqjpEw7}0X`dPR-~2pqDLertn`L1B-Cp7} zjKwhr3!tWRt;Dpwg&Z7@n8TxdBh=;cK}m$n6di@UVl{0cu!v(iEL-8{u{T zG`t|~qZhvZge4^b@b``6*((c%8#;>cO#T}#tx08k-=sq8l??d!XBb`x2*sm0+eu~F z9T*>4$y`032YTyHqJDxSL>`X9*dyj>GIKJHw=gGj`d`A9*ZoL<@g}Ayf=43XHW|VjN8>R~$))T#6V6(k zMVGj8u>2?DmIzhMSeu3JPC-ne;K;7}Vcr398W|uC3 zh6(oAVD}L6nmd>adoIKJ9!qfiDocD?dmG-sW*pXgvcx5nn1LtFa880U)|kG9mfjng z=QoTor0xRqMIXRgp$NNIFC?uYg*aKa1kY(-VoYsX;772V#1(x3zWa0`)6NO&Ht)gZ zOTRLGaz8LL|7hUpfzjC8MiYakyuw@Eao7?T0$Qts(R<=LdP@klSK1nm-;V=ihdZ7hQ*G$F1>(d~rD+iW*v<3B>)A4fVFuZuW z0OB{=VdSVPbb7NILU&q0;VV1LGE%{z%O@fpjK#r|AE2Xi8UCXuq3hF8_$K!Um|DVA zEO@|d(VLFL%*;Ul!XQ4^iDlD6hI4uTjoibYkGVso{&K6q19|eYiaXUD&ng^M;O6%+ zaUHrr^3(BJA7I}VR>O10(OyF077 z=&d99Q5R1+vy55&y1`sYg$)OYh#r&GBl`kh;tLBu&1n%9l1b*)MGWN9p8LsO~F&7Ym zT)ECu?vqzu}GVm+?!uQ5|*Mweg3z(d$R@dWNd(wa9+l!Hz>*{u4$1rH?0P zdOuM3$nx|SROCly8E{t~_2g22tY9}=b9~~Ha(=}C9bvk7SK2pea8c0<`6yz;*^Mja(uWOZ zO?F&oi#LqqinK2C#vhcql$2lG-%sJ(YPmCiIeQq#du4Gx|1q4;P=OEi*XB0q*0Ya% zO?Vq>$3OPg;a=rOa6^iF^TW%n_&Z94oYua-Y**kL&f>&6ZuG)9Hu1weNj$H>8!WoW ztvb4un-%bh)BX02ZRq)&m3ilICO6_Z@8)Q(xbG#ot!oZfd1o9uqUbpruj0Z_U+|7^ zT0V_W%A3ZI8!xiazoWVK2S2$5pI32yibvW0>|<{D-og9~w~egs<6zc$`%%vPvl-vR zKb2b+6w2#_6JDG%fZJ54#YZ$><2G$p<_6ctaFIh7kT`8E9> zvAkmfw{cSkYd!J>mwsd%cVR~}$1R$`v7@Xx?cy`+ys5vqupuQ}T8_Yd`2CgJ;o`xU zT-V{we9d8lWeU93hTWXgvS#j@Vt;VJsI4nw(#sp{(C@FLwLf z&s^M|G`2d|goM2|hJOc!V(CVSf$Q0UYVHAye4Z&uPzN%7nAAD=qKCJS4Ipbge}LtV ztvGS030j_;g=Ewa^86>@2P-o&e@3yCsglWtI6eZq>3gxy0k`cvui< zhpCHWiH!s&^)MYp)Zd>$_Ty{JXly2>C`NrA;9g_- zhFng@cFU)@n&x9hWC}^pya;oCzr(iTQy7260?WFz$vH=JoK)}xDm~qarrZ_(H8vt% zO+uHYHpFAMHbe*Y#0M5vaG1g`Jm(aNz87kkVRr+hjC>IGv^Ip%5?^a>;ZIyyx(ZK9 zo~ix5yD{du6mENZ2LG(CMC%XcWdFoRc;oj_@~Xrb$2s-H^To4Z#&>6l6Ly2#^VX9E zUVnlsh$E)z%_rSemRL3K8g99=73i(r_;?(HhO~+74V8KdW*xYscLWAW_rzR}v3Ojs z8ZW51;iHkm$;TUZsJizyXb&DL=}s1r(^cv?%{2lS-|kQ99IZ)B+XamDR>SZ=Ur;q_ zJ$epE1})f+Hs57ruGof;EHX)N$`FF)jm=1 ztKtxP$&pN$R)eK+JIR70lSxPb;C%HFWc$e`>W)aSvp8hlbrZv>_E`Ny zgIqgcO~j2`u-|e6a%M&@&RtZ7yZi3J(Z$+mqnJhF-&x`O&m+mU$5oiBsX?|~*Tg30 zDWtyU8Z?nJs9Aa)(#mv+Z%q*9w0_2p8PV1?@adT`H*3M_u&kGNjp783-dBuz$rHfe8YQ_ z>dU9$PrpFAW@`GXrwO@#Bk1~mbA^%= zWxCmLrSK}NUfBC;I1OnVM33LCp`kOB1P@dZdqyo14(t9B0+SEYG4oFdU4v5SOrsv+ z%;hMqE=&`Cuh=UFc_~oa;$!?SV>N0xEkfu#%hR9xD}~@m`m}P{JlZ+ekJgrV2+8$1 zd`oGG@OoA&9sXm6aOZWE7+oDLjM22AeOI}PthbrCM_eKvUwN0N)}#q$3prZY*M^2o zh@>~4P7*Y_{RC>A&-e6^`gE2ql#zP;W+!t5uc(v4{gLzO*j2T(>hTYu-=KGV=l83$ zUb?IP-gyxB7{%#Vyn!X7mcDh(c{RpIeE_Mk*yn|@IZ4X~vnJgT=zLH+f zKSsOEOvM1>A=F|OOC4^_r$#Xabk_F@Ds(sUGYSWZqaNGRn8go-`t|E+hMTXjzh2@s z9CM*{1{q7HFA>GG!C!UT&ZA;rK~5STu~DF5EVqQJMp-#4n_K&iLc;Ocwfg=(_caW+)=`tmjXt1_4_pQB9q#mB_x z@Ie&TCJ6f4&*&kmQ$m^Z4}p1XCpvXa7Cc(y;=Y5oX}xKMKo8Z>=BUd;{QPyaO)Hiv z{+dW9`ppqX)rSfdb{gU}b3zwRyg?np9fj@tM^dF#s)G9fV{uokq0si#Q|x{FtWed~ zAv_&-T!`%*D;(_j%|G7Kj~02%5Z8N-70QlXp`(sAQz2rL@bu>(;r4(oK^C!1u--YC zChqs3JNjABzOR*N#h#_Y=Wa6^_%B#+x3J}H7Ul4!*H(-3~ zdBT4EO1dMfr(ipF1l=}&5WVq0L40(fi@r=L6aUz+rl#ftgs+b@>2||t%GtdU+zqqE zrC;*sv+q7qu5g0r$)t$!ww?4uNh%%rbDvPPu9kZIo=<&isW|$TDgC##RY?9J^}?Ty z6s;sD@|t9zI}7&EOZII-^}kZO@p2)3G5M09G~^{eZ%?M!b*YFhaaturCX`d(kG;g` zDeAOrl?xT~Laa}5`^DORX5#L_|7bFIRVXUTqVrxF&>_Kx_!WgVVtAJ^b-5;aUSF0| zo$U$q$r5X^s_B@p#xh!*x~H9HhI|l?D!Njw$1-~1OtK(a*ogL@0_mYATWHXSqttWB z08u%ki+9*GiRzYY7JL7`PyhYrK~HMN^Uc-^=)Qj*R3}PNP@mvQXG!l5uYkQm+n5k~ zs*9x;66N${-2%~XP^)m+?Kl1OFqqcWnuu?(Y#9rQb|( zqN^fp@2f}C*X0T}|E%f21JZQ&{ct*oZ=yb_3u&y=L!lv>r+yvV>A{5S5=W$oPd1CD z3p^(ao<{LP^*m+qQeM8eXN633zevSp9a_TtUUO(mK`NcG<*u+oc3d$1Xe1uH&5O5h z1Pg@Kq+N^C={hG%vG>JK0-HZpG%Km3?GF~v!6)oQ=K4x8ApDh3hT3BI{loNg*9+Q5 zZ>Go}O`w*Fuc*@bVEX-@6Sba~N$WhzX_AAfnCP^dR+t|U4s~`5krS$f?Nji5Px2Wiom z(=_K@g3#mAF8cT77V&Ds`(f9^Csrz2%kcHMOE~ML z2BbTiK)%F3UDV$U+B&nL>iIH&i%GC%jg)V22n6-YDqJz<3zPZUgUFBcf`g;4f0sWRw44ygZ#Dfjictdy+Mb z*OjAL)-Fh`bw%}CF0kmc8yFYr!0#8oaluP{_4CLluy#Hc2dd(1Y z3X<{d{d72#riQw$_h92te>@Nz!90$01$(a^*x$(z`#4Fn{kE};OY(Uj`T1~T{AMPo z_zkQZz8+g7uiRm~Ns#^NHdM#$1I3$)INW>&KCzvQ(<2CuTr?Lin$Lva^3_n8Uc|Jg zW#OZntr(FylW0Ws!S<%dka!~q(}XB^Go=fP1OG5@Ca#7V$DLt@uOc~bF&^GbGDmi0 zIqW;CLT1d}1>2S@;Sm3Qu)cl^mhO}8OWm4aui=JQ0}iAA0f~KQbqhQs|3Kxjl{oo( z7jWNf!Fe)++qUk8>4WYvuS2sT%X1=*OqL=HDT!cpdjOgor|=_N1_4jM!^;CF;4wK1 z`%WEVoJJ_2-`;G-aIGRZecO*;-FgzeC!6r6N<1ELFJv;UZouyM0!m*mxcbLK=D{a9 z=Dl5tu4BVt;>qhwlUpq`sCi(sG|%k9Ld-Sx$Fe9->5RG*drHpcD<4@YN6-VU``3W^ z*qcyQ*)MwLS0JQW<-RSyq)2g0z~Gs%(*()?;!2+oU^ z+|YscX!KfgWDkwO-I{vPPg4`mW~jji2k9teRt4=z=6L8yD$H5y3!XdLnZsxL;j2A8 zu(DS!D5a%h*wbTJ^=}JIf7rovw@$!I<%KXOS{rrM7NW)QSUmEtW=$Nc`D<02FjQfuCA?!Aac{R)6rqVRsLK&#hFTcN>}M)wV>oW)944)4^5W6fkXX z9b7G6fc(-T)Hl?Wx?j&>f{rd(Ce8MXcD!ZQ_xTETUZ0slg8)#fjDkODCOCFaFdmtp zPL8}$#n8eN%z1JMtQx%0;l3Q2O7+OCuPUhC6^~(`o6%chD9?SQM4Sf)|6z|ZV{ABO4=dIjhK%Xfusv`P>NgVn)LsMyZF`vv zts%r=q5=+;b`RDb!8osv0@;n1;kCzOFg933ntq?h2L~1)*HVOf_j|w;(=#yIXfgcS zFdB?jx?%nT$${|u7);GK#?Z+eHhjL0_J3QL+l?F1Y?FW|xGNAq`l7z{JUSCk(0CV& zcM=s)`?mrPUiJc7GUnr(bEBA+MRD+CMKV4d)eB#=zJz(1r7-ms{3$-XR*3mhBKPC<14qlut?eyt*J2p$AwrMUvObdIdPRd*Xk-Q7|W~5q^K!!AvRCgP^E25OU@ZRy1vc;4q05;C>G_ z& zn9O+%aCBQdb9)7C>XqRAcoZruzW~jxgVEl<4Sd7WAtXoQS|_3S7;ToKD_%+M8ccE-?Hd9lQmD;IRN z`ia^ezQSQu2b#UNT==}ZMp)%oML!T3?SE-3t!>*Y)E>+c|FK5}!=GjJLeL62X1OYL z+O?KO9-k^MQc4q}SKbybM>&WiK3dSNcQ*^CgIs7M>E`dYSW)kip;RStJB?prBt~3x z6~~$#qFo!736t6e(58d6^zDWMq5Vv(sP=0&4H~E@Ms|zhf#YG~Ax}@y!%|ypF7gp_ z0!6xU_b6H%&x&&_A_VoUV?yQUGU4~~b}^dMpJh+8yw{Y+{s^-FTRkJCq) zy{NV4Md6B0HcbyK7UCstT6FVlYU6Q|jyiRoUo*a2*gdePxGQcP)gJ6jGXgUBxre9H zl-EP(bw70hjn2^i$2I6@|0v;WxJV~k$!XQz0zp0PAAS0M8O{5!m9Fc4OtsSP&_v%y z!iG^p=q4L4Va=uG;*LI4RUoRZmb6AiV=d><%yr>zX zO=;3%8sFMX_x`D*H^2X+!%9r3b7Up$Yc!Sqy&ff){5dAv?cPr#8kNKz8tT-1b|U@c zI)_d+JTH9pFr!=K8uWTQ&{E+eKfa(J_4kMph8|B7;6oa{a&C->O?9-abA>p$dbzOq zdEoNd=|q<~wCGx__^S?SBK=G|VwTc?#nR7PgXx>qx^&&+ zM0$VaPC95+h45*35>@CZ7IFiYiEG@|XiB)YczXOG;Z266XlPU^gqDTT6C_Lc`h2Xo zIa8pK?a4H_yC40XzDjuDaZqTJI&L>FcS?+`f%G4Hk=_|OTin=kNmzV0SeTQzx-r_3&VPjl_DFoV-1> zV34f_)*78)QUi-&>&z<>f8GYy?n^}fpy_0wOc}3sK4I$TorCm@Qe2SW11TRaV+hOR zREHUubhjJjLMy)Q!H}J+f-!4)BzS)b!smt0VcN(H>=%^?kJ}T#x@0W8aL^&k0)xSM zaXz%u9$0_g6&7!qfEUA8Vn}ul^bA#mGfT&kIp?OL*UdqYzq$}n^1Jqsy0~>+dN@I@ zB5{FC$ecOH@I|R2dAn{hY^l-1ScgKeo)-bttqaklrzM6eD&wbg5!>T?B6;`}3$3TZ z)D<(a@8bpd$o3Vy%3;y*mBevRat9BIDSz&F9i({=#fl3$7++C{wwS|MeaMk~d?V1K z!2`XjIv~R>pBeQ0DO_yq08RNV=0k)ro=Z2v)3ay5tZ#>bzomj5-9fOKcf{U@p8(7} zfcJD|sOuVoihGX1yW%|fHC+oL%^%>bvw*oIN-T}M02WURC1k8#}ar3?$ z#?V*lg;!?6tsE1gE-_u2Hn?MSY!{RS<>3*JTDX!w4Ih5{2G4KgVRP;-uqdAh<&yhZ zZE_9nafycs&PtfxwGSm54dU^U=wFZw3pcOFu;N?r@j^dP`&tS)Mow5^?Sv7JU&DN_ zKn#326+FM#LS!3{?g4GkxT^*}^|;DBVvW&u>3v4$tpWI1RO7Q>PUPUXbW{p_fbakG z2ib4Q3+dsHJCyIinMh+WKktS54^H8%-EWxfPlrR{22H%N_b~pFb%2qJ0(rCD2Q%Lv zfI~lW@mkk%oO?b3rh^&U-_*h1-P$MuMB z+>BE%orA?s&O(R76sVu;jQh8_p~c{07|D8Iz=pNd%9=E0>ax#Ftx5pSUa=H(9eMN_&obz?0O~h918tX| zFg`KG>Rf*t)cgDZ=G8PXotKp%j+)`Fsz%1*;~oe(BC*n6Izw-^AHE-laB}b^aM*UA znfStr*!ccs^1VyocIHJ$xA%q8zoW6$!voJvPsZPUh5;J-V6Tx@aA{%$^Jr2c)U}v1 z#zPUzq`R8wx0mol-3&+W>Oq+Gp^)8gHglAYhi8(Dute4imc&fKTB-MJJh=^itjv5bx^abnKA8>T+45xFwi6YACmA0EcPEVffcbSp4c9eEfb0p1qRJKLvM~(KDN2 z>znIf@W&mt6~2XM&IWLkD8mA6FT84z2;&AnhwSBrP|-RG4>}t#=wCTejx)IBVPRPQdPbAbU2?Ip3nHw^{)s{t%)gCWHlaI61g zu<==sZVp4>&NyS(YZ}S~P#5f6RD_S`BJup!2F7cQATxi33a~{Q^Auig)r0N5-@}@;4WKbPjTvCE7+S0~aeMP?$holzwjEKI z<_ymnYSPTuOWEmmgK*Hl9|MYQYK+eEB8bWHVjSN6kD~LAr}BN{xRs2oQpl(fp6hzf zeLv4Zwjw1YT3?i?6zxfi${raZQb}e;L%T!~A<@(hp`B8RhUV}2{mtvVUgverxu5I4 zuFv&;cQJ)K<_TVnr+C`Z8LPONXnAuT(-TnuHDiPf+|fWtTU*T>^!o>E!(DKP-vMUG zT7lpK%NZj$OAA4PmViomGPLP6;og~g zaB=1^Tq7_Ujs_$OK3YXAyLk?}3m(8|l|5jPp$#MT^sqc_99+N7qs+uCNK%o<8S7Mp zK8Y7T{P~^n-Chno*3wWvQ3c8@$L2s8h0spz-$@f9pONv$h3n?;_kkC53&7 zk!W&cEX**!#5lhnhClv9f)(En^qDrElXu4xpQm8RS4U7g>;|Qq$HBcomKk;`j!`)` z9BWq9FfU#$#EFajn8Erzz%IH6OIzhJVDOpA$B}k8?&b?vT-3uvwd+HBhZkDGX!ULZ^w_6>b!7+ha?Td^ksv2%ZtVco-)})?e=f`vdI;HV;TRQh z5eHq}!6)MY?yh%$+rJ8!okvcAADP7*xA%k#AA-Sgu@Y9A*a;*4iR`wTj|I;dhE9n7BxEJAnPn&RbtP@H+Hir5KdiY>bGKAlrhCbqT za7c9xxX=2+m?Q~1D2_jwe`>Q~`K(hgm^K~`XDQ;ZqZ;_JJ`&!%+|A_e`-8Dt6mhNL zOU7^f2CR)K#nHbv!aT?G@cyCTi&uPuZf6*;?yU-K<4%LS{LkFPy zMG0(Mn*?8%3+HrIId~?$6&A*Zf=%Z?c%jz?$6s!N6s;!^lR5(;?rVc*+&T>RErD@U zxPNH|AE)B#dz+fJJj7?0vU5^nE<`5sC?iretKld zF8VErxoMhk)*}W_I>*99vjGr*0nFy!8fHdBD0H|s;>vC_(C^j4Am=J*)-}bxhgop3 z>mzu2MuOMd09-l*VD=pX{PKyoTRRG$A9jR0>8C*Rq77~qo-3D<9z$WguprI!;}t4wBR5;mC)l@btzd;Akk^Kqcnd<6Cgx;eO`3 zrPl&F@dRvk7dRxZg=b^-N#vBLf?v2E z?)Y#Uo~}y)Lt{0(r*;S4-;%(k5rWsl&Ip>OeuMWG_HcEhsHxzLHXbo*qAT`=04X#rFaQE&P)@|g<ebs9o8_CsQs+Ygn4X+O%v*ceWNE#pX^9rif!;`u_6pl&xF;E zw%}j50Pe3d#@E@lf`4oicueYIZmV0f9^0hBYtKcv|4DF#*6oJu)z0YqY#sJ_oyN{I z9y)q9;r2#^7faHZrpf|X`f&;)C+y^WJ2DS~y1HPfk5D^aR$^U;AA*S)e#}~@Ww2Ml z9m^N!!mZL{{)5tSCQRd!4s>&nKnQxlBv%P9BU;91;#H?dOq1zBaC_NPxiQV4wA zB%B#OhB;O-3udc6fZaqD`@f|EYx35_Hn{fON!U_p*C zcuil8V;8Q5n;lgkH*GQ#y7emKR^tKM8P~AOQVwi=N21%r1JLw$7EV7i1;+TdKwq05 z9MyG3i5=0x=q)-agfUS}GFYtELchxC@b}6!=4qicnxAz+uhIyncxF0N<6I0I z5}dHpGZUsH=3~fwb9^hsL3Rp{P38UITB8lK!j8e|4MlKEv=`3ax{CGN?7-}sGRB@i z1^Pj|;rEzPm=i2`PP}e|=BIqPG50+)Z^%Q~d|eEcdh>9#LILmDF33O3xNkcIhUr7mVT2=YXKtHl*lb2-tvt35s=zgQYdBcD3GEvRyv;rb)f%f{ zZbLG>99V-B{zkx?kafWKzhfHy1hFC6Rss*S3wB;pLv}?uXs!>$4e@E{bFv*9pKgS? zc9pm!JRZV3&ofeOPoZYwerCQ_7O1@44c(u0(B?oeMr4XvIi-5IRhGl}zDb2s^&61w zFolop`*5_7Bd_@&K3?DlPoYxr3C^yBQfvH4#;ww3vuUF zVBwq>IA-T~c%QuzYS?yI*GFM`l?kq%XpOED5@2ZQ7A7S}huxtdh543>5MiE~bNm%?k? z!`-Y2cqXJ6vW)!Edy5nuMQSN?dn0sw{;g} z4%0yCX2AR170@L&5p`zs;8x)R?aJTa*FYTt0TL1U;TN|OKJ&XRPr|HwdUuRK1o zoDDiIE?7XzKv=QFj^V;hf(gILQYD5Pr)_#J7qzNf(Qm;3I*ppm5{=#L#b-%} zNeQ6vWC{Klt_4jyRPffn33$V<9P_9AM0=MS)_l+(!wR>;>>O2m&x~R<-?YFx3}8P` zOG7)K65J9L!+tW^#l9}s%f3G<#TL9OhQQK#e4u26e?BR)U(zIS(y!52n{W^=CJU^} zxNOj{RKqCM0Nk(o2I9xm;A^WlSmf=BwjVw)`<@k3mac4mFe5NT8y>-xeU|K|^Zr=x zxt1NN*pDtVM`F@RBli4=ay(QfjVpf6M!mN6_{Go%E5GEi`d6i}M)529|0u)C?#Z|` z?jA0lH4lxu&fqHll^C|H8@^U_;8=qW$aI!t&Hwsf-JKrXW_7X;9j(tA`RrotKAb|I)0rU7pNw90IxOsMgA*>r zY~9dvIB1cL5u;YHr&MFuf}%23Dqf1sTyqm7E!*)hw;k1w&SO0vp9RTo5#Cul0UeFg zS(5=5)RFoC`eh5SMZ*g_tuCNRf+P#;laYK@g4*AASxcW?cyd)Nq|eY}T~x2JXO75X z_lZ=2TW=(Z*5H0JT7R6&jz6q{1)(bJbgy$L`^}kE z96JbEDp!Emf5F>oo7l8b!?7&v11x1Ur^YXI+j6 zywOuT+0@k!uzr&@Dm+VLZ*Kd6>&aC7>Dh-KBSZ03^95WzTSnx!(i(5K>$BF4y#)}p^CBKDj4w?hMa4F z9@38NFEKuT)qy`+B-v5Mn(X+@Kd3mUj=n=#{4%oxBCZk$e!mo6XPL3;UR@AwV2|+) zJk!+rALKpj0HX#8^cUxu9DHhwv9c%N`^)RhG`Zn$_bP|a(&QlUqfiSxvk`Ln3n4jb z9R6Cm0)B@Pc%og!IL&O--rm=DFyblz?@J|^Jl~kOJVBvDQHqQ0;Z_j z;YQ(gmlnQ*v5%5aMlKr3*>k8rSsyQ5QG|d&39Np+68=nZ!1?iRusTc)^cLS>{=^=@ zf_G1tU{`>-SF&NnZy9i!eg)zazY4YQEQl?!V)#whP$#ViD%0wi%|ia-idj7V4vqv* zx5L1_+=&}3YVpaOwfMm(91V9gFk0S;&^urNMVs$10tp!;Le7Jma|*PSb-?%LL&P+~f5tzWIz@^U;glRYYnr;Yhh3D*xf&Z{DU^e8=Z-=$y1gy2^(e4{E9y|45 zit-)sw^zo@84(a%6wd71n+#Uz8z5~zVcOi!!0ms@p#4M|uB{#i%N)vKsiFZSI^Gk! z$Wb7&V9?0^2JHSh2c?bm;N@s9nDSr=)AUF1$PV7Xy~3`^-I3Q|m98FGjhlST*tRABe>@!z13{^ohf+CVp06z6T~0Xgn1_q!?23|;34#3{Qq6Voyr7GmH!3l;&hM?+XYLL<A|RTzM_LRw$m*(SyXmb|&?o1X=_Y!(zcd zdvgK7paa`6%Vq{noE8LOGqwPZ83%tKhcShNv5fB(Nlf2+rk3B>iVTn$vqWk8TVgoMGuCD$}n`C%9A*<<3J~qCq3E zD0ZW-78lW$Uw=qKR4+AHC(Yftd3u#Vn8Jgb?AV7C@IjM$URKD&K;J};;V-}r_1N6(mR{i zaN(uSbW2eUJz*{)<$rFGlU8nY{g@lvs7Wex(zT)7uB&OZkekoVUFl4x%{)mT>s!$t zM+dI?+en(3|D4pEX1E7w-dw|NEjmplosM2JmfIX*$=w}UO~=P5(2a)&>7t}?di>CS zlH0PFF4C3d@*cI&lGm{`@rV@HFzXL-)c!y;&YYvyHXNYMGt%jM@eR>n(^>j@k0+^X z>m}zpg1G+AKRF4vdEBxu^EkLLndnwz(4$SV+|HrF^g#D1;-l6>lkCNupSfV=qRFH$ z{1i2NEaEh?ifE0(Zf>}y6{qWn)Mc{UFueflJN zc#I4uliooKmc`Jo6-t~`;xXEMr<#(3IdsYOCuHLYS(Mpa4M)#31kY52yTWUdo0Gvoy%s*KVjy|45jtEQg@gIApt5c+Q|TeWhGz}I zKZkxXy$ajV)2|k#EF!?ls2*lX-o-oXo6sj@CJvk{NAXH^ICta(_)8rD@4gEVnKK;A z!#hFxa{+uw7>b$myP@RMd3;zP3kP3}MSI`(u&Zkiycc=}1?QH)TSFCyxEzIXn{wfi z>MPJZ^cI4H7vrpVfebbDfgb|H!FEs;Qy%9-^XAFSJd<-!aI^%TZd}Kt-fM$-S?>h@ zw=*O=20`0kDJ)nr2W}eaqpt9O)yhH+c7^b(WXcM$VV)?w-K z+3Xlr0l)rphiz|HVXI*h3_gAZ22ROL`79MEb)O}0AbK$QHV-X1hPZWRIViQKYlZpn91+frrnqo+0(^H-#m_Qs;5yuNYt+^g7~|j5zcTxXX+> z-N=+`-htD*(s1Rt3!psbG6uU_<4phc@U}e+V`gZg#wQ1m9r+gO_TPfxW;bA6!ViIO zwgGa5nW*G#c9`Tez6eQ_GxG>ye|=4Zg-FTsi5 z?BQDPW^^6Ug3qdgZ|VCmu!x(B2ObI;jfE=sJtqnVE~W@M)jsBLfhN9oF~ECUcSFJy z6a2e98KX~o!AIwzAlKo9KNT_|BuO57JZGSeRtR1hJ_k!Wwt#HwSs46g2P>bgVS0Av zF`JhAqo{EhTwQ02TZ`v1_omN-H*^>(h$PW;?iG_<8C$$iYl6?5A2LIx>4VP!Gd#Lj z4gSa!f;E{9Ro?4irf`R74cQ29AHITqv(aE6ILsw~4F~q+b=WgW$dI~c!kwq{(J(Cr z<9-$3n(NbqJkBOuZ8jNpYe1g}l7I<}mDm(LMDx}A! zF~2AIKwMoSUN;8N**QbFb3cU64kh$5{DC{Rr=#Vm9;{yNis2;&;8<;nr(f-WGUutd z?X@3#y*>$=dIlMDqcUNpCk4w_CqZ23d61i|14};WVshvx{8hODT5ru}igiDs=ks2e z>-CnoRT_=Y{t7M?^n|4&ssOi#qep)e_L>La^}<7V^W6)^U33J@&z^)kHyU6^&^Ksv zdkDMxkAh?HCs4a~7PzJRv02EnL{@%O8a>j)MMs!ft57M(FWr zhZE%&V5x*Zn&{4ET4mkf^P$_Y_>VTG`U%QwuOu{H7uvYU2`^myPw@`(Nl_T-!&Am{(HyuaItpV4H zhw#~KJ=muROv2$FFmaUx*zPgG;GA$gVde;N!tb|C@Il#%P-0r|`DJQ+SSfu;eoH zrsOExkG96{_UkaGKL-_UD4J+ZhPr7Mn7v5~uSpABzl;m8t)~@^PdWm-u1KlvpHr7F^z~dXod%#MI zb=W`uFO#{e4%SpD!`AANIP~g1h-nb!Fdkk)J|_Tn$^T}KxhP;z|0`$+&xO=shG;b+ z8h7OMbwXFj+7 zf(5Vr_bJ!DMu`uze8Ml9(8VQApUg8h;T*a5Rt$5JxR5)6e7H^&pD8n*SE`m0=gu51 zHu9e&HVJ>p6)DS$*WJItRj;(+=2cDR^BbPfB84~H@c{{bbA1wD`>uo6n^h^kYi-Qy z;z&;C?O$#{JVH#otGFYFZ}X8((fpblIsA_Ae&Xt4Lvi`0UysT{zXYZ2DCv=zbowm~aSle@S z{k~|izeYCSUb2;&FFizD;AbP&w|&mVUUlTxwSD17jE@rUYS0o_dD)4TbA!3I-|qZg zz2W?o_lo>tt2O+|mL>e*rN}3y@84-KXXn2`*`u0 zTU`H=98TU`M?9rUhv(DM_?|z${J48k;_H%Cbhq6@uI%^%{*}XdUM6rHUs>cq_o-U( z3fIQ-KAQQov|thcLUB1i?)W9{viouFO1>X|Frb->dL6=BFEHYDdtdRZTqF3E_kQyS z)bDZm{!Lt));R8&_jf+?ccl2EbEEi-fwMr&gC{g`o9l+`kfFy;>{`UvQ$2wmSw~*shr9=#*E_E-aO6EJsHh=9VL9; z!xDb7QxRwDdVq6Uzk)xu!I?K~n#B8ljHZ*Gtl+;T%X0052e^G?lsNrZf%wlxC9%Ap zlK8OUA9}3Kfsaou=ZmBb_-}!M+{?l&zA^JPU(#dDMem%z{Wu-SUux;%O&)sl&POc8 zb=&*+jFr#0Sh;$>`$qz=Grxj6w{r@AKYszAKEa9C$%_=X*8b$A-H-6GU3>TmZY-ah zaDn%}w17{#xQTz5=Eh(9lfunhU%{*AcX67_zVKS1bNKpMm-&^;?sJ~S!^PbaSzP$z zY5aTdVopOpo3CgZ!dI5$^53V+@t;%vashY3x!PAJ_#oYFy#2>PZZPBszq)CxxMgS~ zx9qUMW-mO$xAeL4mn(Al2L(^~@*P^@+s?zpYb14ev!Sv)bEB5~cI6%25@*0^?J4CK zJ)X}kU-}rM4!vN$-+l@&rspH|O~uSTW=zP3i}>}LG}|j=-WEK{f(;<}bX?LP@AVi| zs%VCX$KF8Gi0ioG))SDCeU6{c3z_1F1MIQ)0f$i!nQMP5{ zo>xNSIYri9@+K_KUJPgbMYw#y3x*4M2|Fggfo`GKr#Gn{ci5d|r{rtlk3|Zw$VLi} z%9^ll11CYWp%>pc1>)K8a=g3zEUT@l&El{mHvRi^Jn1O-c$OW-22KUNJD#Fvd!n_ka9?r7BP|Z~MnRE$nug}EV@dKb9p$PkDMYDky!iDV0axmgY zuyUNhV5oWm2CbfWQjuq?8&|P$VcM+MDkE0EW(AD@(&x95d2q_+b+PN z{Anmr_6T|%BCyI}7v7zG50AV^N0SlF_{$CLfHK( za0JT+4Lo+E3FnN;#Xoi$sF|6Le*6W{e|-o(Ci-Euu?70DLJxR*E%VlY4QjlXf?1v^ zP$DJIzVc3Erzw6%)yiS)sWK8Y0)PjP2dHk1k>(vX`x zYJ2yhXY(|is%Xj9-EGGn^A<=`dx6n2Qqg~UE*KYkW8r2`9MWlpgN6s$Z)V>i!=e<$^CgEijFTV)Z~O&fYi#OKk*~?b}%BYRtv?L78~7nL&&GM?$@*!y1(~ zL7vMjxLPB)%i7$~@4thnYt@1#+m+c%Yo*wm>&D`SRsCS@dm4tGddE!Is{rN~uVawG zGVqtp!P~P6nAqSP$T#;wmGl`H*z?|`PPlXKZ%#%XXHD==*$V$e2e8|J1#B1QNtIby zP<7}mRLx1k{TW5zAh8+uw2cRc{v+)3JO4r9v@!TAf?)62eu$|kL+3F!(D(2VwtaFe zX#co^=4-Ox-liq4cczoh4*};*}I!QfnwxMW};&iTu6S2 z-n&B~d{dU-)uXs`x(_b<=*>=Xd4Q3YwyfQge7xQk0*hOBq0_wEa3gm=e!MU2SL&ug zt%CuG?`yEHS7Qi-1I+*9jFSqraoeI&a7$Q%v(*m4=d&w>uHyv^``QhWA}3VzQN$Ux zhtc@)KIU`$ei#v|iw;SNX!N`b3Y$}zhm&5xolB2ln{pweylpgA7S6Y0j|y&kEerrGAnScjhJnc3S;L!oQpfH zPQkhd&#`9vF?jV`7xx==GFEefpwF@bTELRMdOH%vI;}&G@lv=f?G5@1tmAJA#>n}V z!P}{2_+V@~j8*oA9kUPM%jR0dfn9JsTN-y;BxCYs;e7e1jXz3a1TUf|*1qV5>qHjD zT0DhU9-*lA%>kFjc0s~UVV3q~3!Ie;gpeW=teGN*(!mnA_jx4q`L;3MuDQiT2Tp-! z5iRKQa4B0DQ-RwYo3L!oHRkg4@1XNxJr4Pyjt_6@z?KnyXtXaEyF<*toytM`Pg#5& zosM;*w9xL{FElt&imo?OK%+hmLt~wB-K}^y9XlL9L@DENJ6Q}@bz|**6hURq0%5;6 z6@v#pz@5Y$7<`Sxr-I_@0S?2BLt{Yy%5QuswFedql;A}Rz~6f!(QIZm9K3%GbFWW< z%Np9KE1nI$yB1(b;47GsF$;a-&O-OKDrmas0%pd`uzJuE7dYJovM2`UdUW9otwS(M zn+J=NKA4xRf+PO(z`m7xajZorS|&DQ?!Fe7P<9TwTI0dSwVG)j-p6zf+lF%{=!41w zd-_w(LzMH+n>18QQHv9QN!C@ted%jUHHLpCfB90;i%<=+a)Fp4Ka?!~c!0#+uprBK zt|nIJ&1rVLEh)$-BMFX=L?ikgxRki}A}y6#vb492_>JC0jvM>Z$mS5bVn-hR-Z+uG zvRg`BRso3*I4CkcRzw1bxk%*fNXlirN!x|@l>2f4$`Q1!6O^jvcS{oK?|Pu{Yj9kRp7xLL;3M{6}XciDz6%JU?$$dIc! zEuxy>~^Zq8P_p+p)r>&%(bw;E(>=4nOBcfroQ)$$Zn?#&Gl5Fpk zrFBM$WMEdYs4pXw1nnJ34=Z#M`3-4Ad#w`PS|Ufj1xXO+X$_=!dofA8ok!kTbh9#d z8c6f$MWXk@-%1{YQL&#KcaN^33*W4w&pl>~N&^eX_U~%6ir+(AQq#N=+@S$)PhE*3yfI|_9 zx-5LYsWV9gQK6MlzsXg#G;*a#i^?@sl7g4FiDdN=k`T}*5>=0-vs-Klm2{&TW6zM7 z;bW+ikC@DT8BF`8{uaGaDkT;=3S_;S6g6G9nDn*|p&3V(khqq)#HjnRXyeA=lpT4O z{2DWxn0!>B!FjQ?>WUGmFl-cgd>KVAtSu!qc|&MTuQ}CD38z1!R?v)q2(qGZA<<3J zCt-3(!2Kvxlyc4gY~YFnKg~{u>N0B_1eEA@$+}$l(Uwc zHXlX7ZaR6lUWZ(_&Zd*UA0(l}RH@9j$K+C51Wns%Ey|rUmn5gO6Wgoibdgd%2~NAk zn#f)tho%&fV=u;v%1?EYL;i2bl4uL!{DdVIvK?eanKSukFhJ}S50jWVOR4!p3A$Hd zD;>6O7ICa`A=;PoL^kaqbfT6d_iXeOZr@`ys!(7{h7Rnb75{~kofEzi`LxBN2WMo7 z)7YA3|TJSCZE7-86DvIGI}YoLFpFO%ktcq0T=i6Wfn!WP9Q~>Rp;h z_Z@R0W9MHYvX(QbLe?s(k=;-F!^OmR#aQ~QqKFs;*NfO|>11LMq0|0K(XQrW z_>w7llj(0po`xk`lG22FG9mdXX_l`eb7o3%mpwO=uVa8NX;h>AD~=MkvI+E_K!W=@ zFhKOen~CyVWx@=fK-bIolltjvX^r_^V*SLL&P$p_8pfy5^?4)7^qaz*a;yPKpFWz# z=*E#HNA##cSS&f%5JswpNRabiMYO@;2O;L0$g!^iLA)uKeqZlIG>`X)ip|Az-_9no zRa=kRCwb8`WFJkF*+ujJ>?P{sVn{~lB;uwJC^{cgAW|pB^!V|oq6fmhZGTlb(|RKZ z=2ferpUX=0B#O*fjqUhkp(@(6nnA(2dC=;WgAND%VMuTX3@9hVkf~YlOdNubW(yhK zdpBTo?r6B4m&*Qq;0jlTT;HDgBXR5WyAXde0lURz=n*F5Nv=ge@s69gmF|Vjg_5AG z`~~VWPczGh2z=b00+5|SaY0)M_Q%d;Qy2Y(E%(ndqdJSg$ap_K9<=}x6sobiPY*>k zV~{C$iSt|9vGa=x`{{!)6PQl{nir$T>f5k+Xgt=ONr3h@YvI~(Q+RacE8cfyVCnqb z(C+;jqz_ww(^pemdD;ohJukxC!zIjV8J4|is*j%*>cP6*IapjF#cKEMh11$^VACco z_MnL@D_@X-{%!RbG++&`W#1uId_c%3BnWq8S9~e-4&c!!Qhw7a;E&HE=WrLvOGHTzAPs&xz&0wT(w=Ah2fMC*Z;ZS(5${O z9oG!M4@V|MF#fJDVWVdYbhe*kG)D}>Yqe4s%9%lK^&Y4g*$Jmuceqt(h2p3yP^S`w zKZSi>qm*#$`4A14pT|JDPc5@W`aYH(9L7%jl+JpnQ%v2u39KKV#3iQ-V0*?8TyP+g zDK1rl%i|8ivSCW>hA$hy!`BSm|Gj~-r)l`zwiqr79ApEbcd_+bHoC;b!^8)~4-=$DK=iFd@G2jP7> zce66G20|;{1@A&S{7hAa;-ZzfwJH|_c06NVHGXAG#@&IbKlb5#_mA-3{qOiRYAue7 zNQI6252EaH58TH2L#Bo@I&&{z^eK6~yjzRyWz*sFlXWjxogbnBtLh_9*Wk0RcUZxPN{vnp*|H_eUIjjJHRl4Z^-@C?XTR z7USL*;Xds&obGT0gfkfI!neSij$~$F&O@e9b|7sC^ww)lFtK(s0A7zxpIr|Ygv zp-Yc^VD%Pf(2YCoXyHX!5?;TG`2J0#s*-aFY5GbQs-}>6UoMbL-(>n+bsus6PlkpB zFy!;U3~pztE%~COMTPh{T_XF43^tb1|9q~{UT;Zm#Gec@tGAM_T@g>tF~3CDm87WD z)ihDy<1E7bIY!o9v86_#X>?xXYR;pgni7LB9T)M?n`gF4asc<<-_g?)@S9E5P@ZAzr+Ag0C zaWdv~U)52+#&2}etnp;edKtRJr;g+mT_#IYbZOlab(&e*Nj^5&(wExOR9r2=MV$e1 z{+|i`@X~-joL)#`lBdzjWBKS&Qe?-EHK{3JTkIEp^Y&Y%X5 zlxgR!L8{rBO-NnGbF4IdV5CZ8G9>7i(JVL2tdQ)v6-cE6r&8|= zU1YxG8rpMOnO-a$M<18V)82X~BD-=6Ee%W~$&!V1-fRWh9u`XbF2<2+!x|bV?@U(Z z4yBi(=8}!dv+3HFDw26}CT)LphHT6%CgUPSr0)7sD*exxHf|^-Gw=G-Jfl`>y(yB| zZ`C7IE#zK)DWj@M!@0W~9q5V96Z{{WIkZ)gaJ$^5a=g_b)$nfMoGRM6hA=hW zLj4#`op_rI4?jR1&6ViCwh`PF>mu@7$P_t#ucPYKbGQ`E5^nabB;I!1ANuEY7qOP8 zrFUmME#*rQo+^{z`jN_Elw$ShcD>y65aPH)r20Cm~Jejg)8h_)= za&E7xE&aw^=aRjY_}aNgY09VJ+^^6J+&bB*eE97*oc5qHpVDhdNx3#>v#^bJ2HmBj z70ozh8|C0zx{tQY^%JUE z#qq6E_=Q(9`I2Y8+>(ghv}*2Ku5fuBl{;f2%-)WXrSm+fTXzGsxaY!KoJyqH1JT?= zMwz>Ntc@#tP)q-t%W@8z&(c}Cm$|mfQ>4eJGZT+CPoE)FRD=4D8^h#cif@otIIG6Fj$V z|0qsju^PAM{WP*o%yaImT1dX1z$)MKoQt2ii8o1n!0pq0$eGQmA(>azIORW4+>@gN zbZoMSu2Ejf`LX337y6rQ$dIT1ofUDH)5^HI4g+pSjv`+gex6%$qlDgNGdLN!nVfY^ zBF$$;a*ysAaSysja3%|;@SbBX(}#z`ImP}3oHCW-3VL>N_|2Fb;cU%Gp3~wEEcK#{ z(JszpSsA_flqluMb^W0ja5T@c4T{j14&j9AZgh7@t> zwQo2#oBN#7w;r0lwV68XOs8I}PLdaG-^s$z9o)LnMl|uyQZu{9UHrSeGO^qRX;Y(B zd1gcZDv1quIGZ_HYMLp}tTAV!zm5ccy?N4i|?>+n7E(8*4g# zil^z`n1$jqdose$_SHJsXc6ny3 zsotj@;xps7m~Nc<(aiA?F>N*VFqO=&HZM8zKZ?%7pR4bWusbp8OD!W3mDiIBtmqbw&>4{9G~)kEuuR$@B)Y*K_3(HbDU|617EGgnAmy{RDmbdum$ zxH;RNJV-`;l?BWrcY$!nY_`X`gltS#7A(G;!%lBFD{u>rXJ@b2&;C2yMhu@yvuEo) zhh(d28af*qh(zydjr--yFl%zN{4NvDPBp zoi^;rO9Sl2<0nbvyr)E8a|1i4t(9D}a%Sgp8*R}8(*=*VC$eHoQ&@GmLbl(HWz~-! z#Wp-cQa|gypy`Yw%N7_y(GHroxZ4KAek%nEdqy}|cao{L5DjIu3P4dp7jI7F6aX}5 z!N3`Rcv(-QKy+Zzv#q+Eg5@1B6Ulr5yP*TMe(9`VNG6TvkZ zArLyYn)e{26`Tx@2X|w40_o}9U`F*pFx_l5RIa+sLmI>2zttrmz+yJ2@hJl4D-?mx z=m*{#J!`1#?gjpiG=OW53c;Rf+EDk}Jf3PC4_v?consI6f>U!ggDK;(ypoJf;ONY4 z;7%{a^V@n3%z5-5n0n(ruawJOQ4X~P}gHNRgl*K{J5;uj@Pp|-lsG8yr2|F85;1k?JIcUs}U&WI+}~x z6~M;LV_^I0c%bq^2Eyi- z=)w9-2ssY`uoIpJuJ!kV1NF;*{74Pfo3f>+(2ky_UgzG#k;EW&kP;pr-FY-eI7>yK% zv(6cU9Fa4;(Ou%u{R0KXU(M#Nt2)VRH_8OgH3ZIl>k+Fy#i1b{E4TWF9&myJiwBV9pG9Q z28n6L!2aq}UQ}T(7<%3Y4A#qoV2!)rbX5Qx82Ze+m0HEiNO=SPz-{11+bhsZF(fScd*fx%BpaLYpp#2(}r4wb5d&v2j>XMdohoW^O5 zp?IpBn>}uO(L={3p5zaR$8W2JP))Cbd}Bkqj!UR`>^DVe|3IE$`6 z0QiQH0{X{3NBWIlFD)a_Wz4-4(3zhH==}j3`Gye=^pdk{n4y^p^y~Bb%!?Bb=q+z1 z=;#;cn53+IOu+qzOw&rpyl51m(>%18v>IQUR%MuA@kz+M|xfQ4gSXvH>R*Bm6@i9X|KX` zdX%zao(n=b!g`DK7RP{JccZ|%jC3apcMu~boMesF%qt`ncfwRbWDXT?Z-7OUBV-2 zartb1!{&ALh8(VQvH1bLAUuv%uoh$LjQ;UgydUSE604;@e$A$Tx~9?YlWmme$xC#- z+fsgQ$0+}SWf0SU=ocd=;my2h@L}|K*z+V0~|%8N2ed(QEfZgvt(tC>M8P0ZQ5*L7KWn8O;J2*Rc5MeN;NPj=mK zK3S*sker+Im`#6WM)Le8N#_1Q65vOZ$hu^Ooe?>NuIUKZMcr+cK2dUpzT>(Iy+RXkL)u=s`Z4QU93zmiwID+`UY&dAhW~ zU{wVxHFpMaj=4%c``faI%=v;JuQbW+Hd|t{*q1z9G0e77&7|nBGMOCpC(a*S$o^v+ z*ott9?L4o`rX0VGFU>zLxM6Nfo_gC8&$aDrZ5kGM6)3Qa^_Q^ap;?0aYV+Bq+5q))4fQ+0y{F0qRejVJWfbhIhlOW%O<86v%U-xKp6CPY_!2~mD$&K@e;$qG3yV3(J! z6lApNkcL$Y*jmx6?8%v<#5Z#j$zCKUct2&3Jujn5N@tAV+!f|*$Zc(bQ1eqF1^^XvN9P4`O)un1=_T1W^?9|aQsz&PT% z@eP@^>;Tzo_?Yb+5feP}N@Qh(f0DzWK9kB#T5Q>}L6UHhkB=1=;oUtlf_9@U(r~U3 z294-@p}6 zLJHu>$>$*Zlof2Y3j&#bDHLP8A58BJf_wUx!OIU-;Q7gFShGx+`kib-Jutorx=LlJ z%b#C>$GddE*G?7=w0z|C=X8M4XKlbkct8Be@zFCj`ceCMI&gcaEcjU01b&s=fm+oC zV60t~s;qK@w!#Te&6lO7aJkC(0c+~M?nP+j77Bz0kHUK?GBC30HssxC01bDlz`adj z;AOrxRkbn=EN$)v_U0<^xa|?(x+xmQIw!*9WkS#fweY^4^`ufvIp-to2Bv&|2fa@f4 z_}RS#7;Q*{J2-Cp9r-L+m*Nkz1`FZ3wgxb_y$R%>(c?PsGpL!d8r0?B4ocA=4hEfU z0c}6Kp}N8+aAb^yFE2FnhPTcG%gJ5vRo9IAy#E^bW^f$xSL?zvT{qzj{Sk2CMkHL< zB?RMCxa_B98Cd^yFSz7-lH>XPf;U!O27Y6ja2u?H4ptR#C~G_XsM8C?ERR4lcOmGz z%N97FISr`tg>e4NbFdRr;|&1zgzt0;=DOgsXZ^fVEa`&_thsj}jmpc9~24;MVla zCpECUBn)c#OoO^f$Kc6TG&JL_f*Tx`K;WDKavqmK7v-D4%B~&S4amXGq1WN$yHh~R zV*na@?f@qSR>JMc8^FH)61aHyFIdcZHFy`>!5!Hy0P8n_%!CBEU|t-wE#(-Z-N_t3 zRg_X@^TDgwFcA4Kf$M?@!%xdIVV-3Xj9Tyt_GFboSB`fknmP<#Zmt2xrSI}=w(!8I zyt8oh^AdoM^$;wRg^qqTBM+pmw#?u^w6S`1UJg&=o+oTT5XD^?W>S*D+jp%#s`#oJ&%-uP4La?t~=R z;6K%>I5m3=`@BWCX*$d9kC?<(6)T7#_Y8H6(O^#=nN7TF-;rXwVWjW$5}R3Sk-7a# z$puk>CDgCuJrWAoVg5C;HgO0Sopi#jQBBzOd^*1SYa20L`whEDKgGib?x4L7(2Ko5|k{(KK8zk=Uv{3eVrQF^X;bO?T%7hUL{QK=hqxfcoD7o9@ht_J{!lPR=iAu;Oyp@f@4coL(#ozB(Qu{l$yO)iIUYU?D z4e_|}XFqzq`!t^U-w!nQO&l*c{2z%3K8AN+_P}Nf^@w?%6bUy!fUjF+;p zRra$b8Vi52ocfNq?_GhD(vIN4S>ois$OddQnSgvb|7S0s%l$u$VhjGZV3qkNNVV8? z%rqO4TMfJMw$MW2WGh7~9vmU%EW*QP7x9>^H0gK~NdDYU#6PCy;#YU)knSDHBwc(1 z8LfVUpJ=<1$gX-kJZ_7z#%dHSnTzjyxk!xESK*sY9ry_S0t=5B;J=gW@Z&Ol>@!av zv-@VF)G2-Von<+4Qp!PV)<3{r1&^@R3MmqNC6nmvv%#0gGRfrcTCBOp2|u2_8%sRB zO};(WV?A10(5R~pUYj9AD#P?y%gslzVWJ4@)+9_W)@9+n7kkL9DIVlN_g`#i2FdfQ zS1?w8g;DewVijbCh3t=zBQDCst0$0ne7}I@?-}As*9|0UNgqCC-HMf`C=!#5sd&ni zR$_C+2TL7iNkeW2(v*!P8Tk^}W#S~!;DzF+w@b*1K2LnM@)kZ*e*pLPr{RCH2eHON z4YDla66ub`_-D&ET>kJA@i;*6*QPZ%Lh=z#uNTJa-vP43NQ!v8dyi3K5PmJ3hvyFw z@{}sVWwiiZ?ixlnRt%An^DI6ZIS;N4zs}pfbR~$k8V0AxV^ zC#3aX`%m7xK_JD<{-+<(+B48OB3(w_@@Y=PMVaeG_aQp9KXEGm1myo2CmLkhUx9E!KdweL6@OD@8-ui zpf{EQ7Rhes-4axRIGsa)9{SB&_{1I99Zv@>HLBpBg(^&v%m$IWr@(6wSAp8VQrMPj z1G0LPLCp1HUfQD+&YhAD7YVsh8Y3S$W}7C6Etm^iwyx(mWVgZk)eLX!rUZDz_W-MF z2I1cY&LHF2C$J};>r8WOv^$G9cZiiRY^CBrX{Qx5sM7%#nsh*@Gkzef`43E;L&O3(8MSV4o1ZB%zLN8 zNJD8zRds-tKYw{Or;K3u!6Q(=@Hp?Y_$8iA*;%k@brkGxJP9_1oq?%gDsboYec+&# zI}8wrLe4P+QhOReF_%|~+FJyUr{0Fb@dB{w9|hs%Vo)l40Q@NyhAkhCf(ymH;J?OZ zuxh^{aN2kl{FTrG>6~ZCyFCuvQBZ|J!E!)!hBsVyLk9TrJAn>k47RBmLp$m#I7CeV zqvo|><#sb*yp;#^Y=*#8fgH47b{veJc@BhUY=j9vmB5$YU%W44pMberEb!@{4s+GH zUazGy+;Cd}6`sZe#dk@d#E=11Ga26DH>tdUzbv%8^O^UfX*ph7<;R>}8G?3YDPna- z4y&e|rsFb~U}tMl{P1r*qiJr6Z1&jUVtrKkX#0X#Ju!S=Cn3MMl4Ww${_lg zlZ{wMcdRk+5oyfcggvttAhX^%D5~{16RGWwSN`~nPiM>`|4p5O4N?*E`jmu4_HRXx zvWF3Txt!^K`;RG!-Hrl>zhgf;3I#qjz~_Z7AfbeK{GJL%6Z1MzkM1gDGCdHV>Yj;= zk4!N}dU*IS7QdoK zJPt?W*EgfFe9I=L|7{g=?a;>-!|6!%aTl{#P7cdCg7=xU zqDLRk;)}g&@YeE0Xjb7&T-GUse|~}Jbx|$){q_M`BYz385ub6)r9fowt%EIxrr>ok zc}Q6k;*zw7DEq`4bW^hdRS1it#w!5#jx0v?HfyoT&O7KtF@q0<+o3$~1bih>7R|g+ zkM2&HjzYI6;PF-5dW%=a(fqw=-2MeT|I(Yc5g(-B6V=h%j4MW@+@>O z{uwiXP4KzOs|a%?arY!AEL)a@uXILXS~V57 zH4vD!^N!g)17(S;A@A>QXuV&X=Xt0QR^46;_c<&FW|I5Be6KU`U&S^6lSJX$(hl# zejA2Tb`@aCVr3A~qy{Na!CN@B3HUbN19g*j@Yv~cX#2^V`_+p$sKs<3J@!pM+LlL%^jIad7Rb_Z&m(8tmqH=NcPR zz>_nMU~E#AI#Rm?eDQ4tV;e-F#6N!^*S;4@I3I#_qTfO5(k9;Mz4_E9-NkV2lQ}@( z{{WJ0dQ{2aeNbdP9rAzkDc>!oRJK<)99Z$$MMiEFW?B zFhvC3xW(}k&nQCNCQg;<*>Ei1J@Bs7Oeng%13Xu>fgv#^;PKFA5ZK-fABu~@Tk&S_ zm%9Nhmam0*F$KI+)t7;x_=G03)i30Ic5nmYZk#*P(2#2FiU(^#)8WuPDLAZL1xtF` zz?MC$-~s6gpsLUcb2UzY171tOr{SY;9>=QpY|aNdKI-r;=WiK~Du(&WE8vNt9FRD7 zJ4}5##`R67gM_FoV0X(EO3ELAdv^{1SJ531Dh|v4SONz8Cj#HJ9pkxP zgitc=J&!+W2YQ2^!A{5dROkIFxaV>Q6bt^v>!~({ebaK_kc9@^_Y(o{kYpIubq)S& zgP?Ov6~~v%%F%RqJ$nM|=;2r-ST8tq{#D z1Gy*Sp_$MRn5~fp0&3=h^V$cX#pb_Yc25-a);-0Yjh}EF%Cj(S;xuTw-UFmAr-Rw9 zM|qzoKJu#O9D_b9x&7DYBQWY|D$lDc5&Z44h5VYGaHH8&UJW`9BTP-;{bK?!(Y^xM zfjk)V#1)JO{RDqsrh=`v%fXA0NSN@n2KZNL!iHDUK!{1A?*FDi>Cy?X*dM}Y`pv*m zB#rB4orAsJs+4o?De%BWn7ZY58l2CN1Ytvy;OhJPydQz5fS6V>h%WVnK9k8X_Wg3| zN7hGBxvPbD?nN%1& z*_M|ekI8}JpO14{C7yc6!sU2a;$d&&9S~y9H_Ci5>#LFd3YrLCA4Mc1JxU1FsHH@ zT)bEVsCGMO?fDyQT-*(6L@ePBArbh{OPnhHqz)cv2EeyHgyVxWg8Gv)pwIeLkhXde zC|!FAu6nl!#^@Qr+v{{;%EjYw`TQfi7Ts8IBhmq?yjuvp0-plasujHVKP6#m$ zK9(nF(}3xB{(xacKM>p$3r>Vf!u}aS;QQl6u(19$5EkAEvj#NajP?Xra(^#){=5tf z8>)bRp|9XhEk){xe+gw=V+Kc0Cx8&o68MyRA4y3Jyf!_8_n?jjr=FF9>@-d4^aR(} zB+KFG-tR!hA`1p5bprKTC%9g;ALPJ7D5viO?q6`=*zV!5qP-f5Z3+jucZPtLXC(9$ zIRX>41GqCxB#_m#h7RI)Kvt$2w@=Lh?%SN;i;jKp>(h3y(%%v`eu?IIJ+5Go^H7AT zzXz{{-hudS9=x}zQ((ULMP6s16L`JoI@D7#rxwiTev_Q4VfKZmyk~bK;L|xiFq^wy z{^EWN{A*5yy$eU+Y(EKbutF4A9oK`huFqhp?sG5{_X3)3*bPsnz54r1g|Bu0a5FC+Wz^2i*PK$}fl+QR&Sen>7OaIsgA%awqBZoLGZhZH6#=`) zu`u9y3SbZ1gy9a~z_DT<=#=LTE*e+CvGaDIoHrl(8?OYDA}65pzaKzF*%7|?$Oewn z>VY}12kjHKP~FiVu9-Lk*caCDVSf{(#S?&k5e@EtSPLB^C86Q7*|1|v9Nade3@U$5 zgEU$OdPx z*zP{)_@uRd;e^HTYHvBv>ivH`JNr8D$ux#FTs(4=%-}0w1^@p+M2Wh>dvKplLxvx9; z?4=a`{hkl}O)D4h(Pu5HEzXM1T#Teb&pPu5)i+R|#%ELZC!fJV|3<#+rq?iCGnBGY zyh6F}QKYUp%JLZ(P5yS_4U{Qm07on*`GR_BzG;6S+_Qfle|OPY{)3;3D86(h72m#= zUsn2oue2qF-?r&2|Af^G=)dI#6)-)TsyGuzSzGs06^2dJf0ZYwWJ;7TsH>)QqiXmO z>^N-O`Ib@`?4zQqJSf{yF@6F!$A03hNcBHR;A?+7OnK-1qqe5kQJ3~?;lI_S;ZN3{ zk`TR1S+zob4$PoBjqZT!_fAm{)s9g)t2y^ZNGnyH*H7txm`>#_)u*mC-lkS(5~_FN zB^7+*1a-69iytw4jB>xQlz;c9Ew!P+hN|c01oXxA{BhTDK094NYweNZ@1DU@B4w%k z?9o7KUrQ&otZXs-edPn3AGe*_?l;O`M@%WL5^a7_dMU*>iQ-?r&oN@<9#i8=97p)G zA7B1~6_w#9N=ZL*;up-}?p!U*s8Hn#RFmI4{%p}ze6#L8ik?qVeWS{Jp3yOCUvW9? zSsy_qo>k?CH-4lv6f&tCFMYmvw-Ti?CQb#p^iul2tEoBqg%npj0v4B_P>T=jg!vqQ zcCEu9{`ZJ!^vmx3{9lDJ{1r#Hz;p72ly?6N{(_RD)YXamP%B)DuOHyTA2ZK`FZD}c z$B$dosZEajzMq%4?tUqMVc0T$-t{@&3}I63iYnW zkRMv+L@iK^<%@bqQhtwWs7;{?ly>w~{;5x~l&hu+KV`!fD#mgf<(2pzmaNs}>t+m5 zM}_^UbQ2A}?YmTdYym^rFnw?b*5psUbcs^zl;bZ7apJGjOy=V?;e4N?;Z)+{E!59+ zOuZ_1f?j9S;XYk;e$TXraIT^O`Q=c-WiKD&9TO6!H@iFH3twkm4dq@{MmU8pTI91|t zPoC`cI7OmIs)*D&6S6YwIsPoWk^KEuhs<3H(2|f!d^Pk16PjRxO}5!!F2+q@v-(JTcjQE z&0cR(`5oYznD==7SSyzBQo-f{`-XPCK0=&AtBHikLCm|?jt5PB*vE!`>>T4h@@9D!k=q%B3Lj_? zy`TiFNe44%AtFV8YH$G^i34RO@QBeroZa$-d@P)eX4I`B`q#IR!`44g$69gXg!nkk zcsf4pc$2&nuE(l7mypFGQepatl7eGM=%F$MjkZy)E&Z zmJ3YieqC}<_!eHvL?WumAOATINKEo>+-lAv1%0OYa_uFu{YEF|PYAKFZ51w3Rlqy1 zGw9>eHd21YnN{6Vz^?95A=w?rkxRq?sS(0YgFCxw`X+4JM?+YPv`q}`A_?wPP z-x-h?j^U#8!;Cx{lqGWV$8oThE&eB*NrG<7M%QM_W6331q{cFzyqh@<=W)!JJG`|- zUnrhfEgZ(xh0@sVf*LVi)`_F&5!CCv1Mka~B-D9rBIGJUR>_2rAd#8aw5K1Pt@wy@ zPfjC^-+Zxy@*&3j!(D9SY=9Kqta03fQ{=dGF#BfdKjN;jh@>2sMh=N>sQXtXPA=EQ z+xN#Jvu6~!6C6hV-H=2@mF74(>I+^NN0V)I3NDG;MgmtC5&s}rEU&kV-0kouVyoxj z&L?d zt22wS|D|Glq9OtBN)01Xk#Tr5gG)@cy+UbgX5r9d zXukDv@o&*v*5yk{>j6~hp@=WqkHKe?S zhm2-kMxnZj_|CO2*zUYHS~+CP++1mbT-)d2y6<0@!j)4n3OmM)8I=A~Z+;XH5 z5KnIo*oKIW7rMQylh!dkhFY&?q9NuRbNJ8zV~~@Iu%#HfXrGTR^m?KIo*Mqb^*IKr zjBs<6G}0dzMJGF#F%m%>@O|VgUi(a#1Z6g&3%WlTx9o*@oemE*YMe%Pzf_oIcdD4d zc8G4xx`5*@PcU=xhtT3FJJH*$xww3zDO#Rz9A&=NLW;VE*y_0uYD~D!U`9;eU!2Gc#Hyzz0mumQOxRl3lJUl78%HwqliI2^iZ@9 z(IHQmkiomme2r}6TOWls{@jDQQ_Ja_ud-0&cf<@|Y-K#t7U1t$U0ASaHvW+}8>ed< zGrolpNaFV(5;!bJvrIA=yQ$4+&rUV0=j+WlehX%<-b+W9=TE~~bCM8Uwhd2Rrh~;B z6p>l75RSI5K|e1{Fx96Hpt9Z+w0d_Ws#ZUX+l35K^Y@oX^6(AhD!LB6YW#?1b*G}u z@A6SeK`e^ha)nvi^ARbHD4_y*UF-@DBmK*hXo0^B3U-`_-P-RkS%;!IW>*h$`{O+% z^AaI%@(ArcLC`I86SUs2lo8_%A>)bDsLsOxc__a`TY1ayVF?jbES1B^YmT9hA7apD zu}A3H33)uEyAXd>pM_;RozcKK1|=H(Wvc(GGcv92j3nKM?%Sj=D@FnZ11DFLW$%mG zoU7;AHmldH*1ke)GS^Fxk-LM{PWenSPQD?BiaZ4&+e%2go(rqASDMXO&Sxc(#09+% zy;;{0H8v$OfjmF+T7c1QaxtcaJ=;>mj&b*Im$yD+pQkSu_+Pvu7s@YQP~QZZ_*>`_Bj zdwi83dvqErQ8_}s@iN#A#<^r*O%7`pCM`&K@5Y)WIumm7lOQH>2itpBhOIE61tqs) z1wY=-W1obkv*Eq6W)J&91Wn#E1bWs`R{#fpmZJklpbVX-WL*lXO!8j6OOE``Ck1yC%1CE)75l(YL9k?t4XZe#h%|sj z0*73A!5%qVVp+I@D8^;5Q}yfxKbn`Zq1SE;O!D5aZ@0K{N3K!=Tbr{2pvL|u zl_r>MF=Ti3DhfXB*i7nilmJcqBs-U$VbzB_IX`=h;MFQO_DAzO_T*=OR&m!5ahTUn zu4qpYxKHW{ew1PML+L$sj_5{#Z}nTEaFWYXX~nbE+vl-0e-s6UVU~jQ+*yLS%b!{I z6P~Ox!R&NJuD3Gv3vPQho6x5W1uB;BNo3X<_{M58Z}x$GAbffuTrYy5lzFqMqD~~| z(N>|vV`YF{v@^Jdw?JGs15Cy?fCG3pD4*H@wku`A811bl9|2_S09?O79#+_FgL6GEP>$=$;WlOu z^k9cZm7&{uFOapr z2--Or!?T^4ptYIt`Jh9)aF0JSAwzazhVc{#i;x$98vkRo-uHGl$-XTqpj8JKq|2Zk6%fqs7-IP~6*;~%tu ztE&RRKvxLW;_CxuRye|Psb+AleH|s#k^t-;NW+^4B0;NNGOX(sh70<2K*##MaK`jT z*yY6nL+>7NUVJ4CoIC*EK9qz_;V$5d+Z^~-w-!((Z+X^>=fbOxzQM>he(>n-LU1ZT zAHK-;2M=_&gUld~Ej^ZP{OV2U%)dae(BjSQiURW~qMmPz>va~Y}4X0Y$14yAm*7QElQ3_e@k z4{S=6;KR1JAgR3q$QBe(RyoH&rql*lrT8E0Yl(pm7On(~jL*P?G9_?g>Rc%HSp!7K z*+6H_b`St4IB=&CWbZx-MIFZQJm%cw9Rj#(;yIi%uLVl~D+ZDNQ-Gk+62^@- zfa>LjFwZ{>9(759jceb))zT13tv>=5Zw&yiS6$?Nb?N7cevOCO!oPV}U!B1Tco9<@ zI2G?PC`7AMj$(!zNcI?7kUlFvygx_^Z=U$bI6wY@=ZB=A;sgt9suqR3Km9?z4ob+R z&Jm^V+KlZf7xd0^HMuEhKu!wN@aGmGj0RpH?Z*<>V$BhxHDN}6R9mC7VF$=7<-_=$ zA3{p&D4Ux$XIlShJIll1yCbnJy@br#@c*o|?C|Y2RRt(7_olI+d8W}P@T?|QB z6^lgfo8k+?Hh7=19EmXNLuY6?bR|%iIkEKv8n)hq<^4Y5-OHw-b%w_K@ZA?0 z_{f!39DP?FzZNUS&t8upIn#XXxXBOsjFh1XDjx~TPM~}RIehwE0UB}i!Z}BaQB=)h zRB$T*-SzLmM@PhQQ%f9L5J@ppi{er8ok@IYbS1+7EyCNbZbRP^YZ;THL#R4&ka@dq zDYN%aBcAN*WMoy&pb(;rzuFt)?1-zVjzptx^@{lQ4@im+?Z(UU&Xd%yKk@lZThJUc zJ$$w52>#=jk9DNKGE)v2GYUI*A~~y>xU<|F%T9KpfLmSYZ15A5?OuxPlJ8@&1S@>! z@*x~!;*9>8l%jtdI+5hg?`W2z4pJTGVa+#5Xyn@gd~McOEGDCdlV2P|LP!GzE{#Kd zI=;-*cTwn)?h7om`4YPSO$_lI7UA7&KKk`u2W?UKin^ONp%#T~CgArpJn=Rc{pPzd z8cDwBug7z=wJ-xcduNBAw4FjPbZ+DAOR`ZxRw+s*qFA=$6F$!RkPm0yGFu&tQQ*%( zq*i7_Y`3y}dSbcKK|y?wc$# zm*ddwTQ-+*+YrWFuD3)c=WUtMFU8Edn=fgXyUzHw@mKoQi56zb;Xx)xH-&kZ?1y$O z+KVK|xV5fl&pf#sj7)!FMwC8HyVjO5R!^*Gi3vyMG_{7&miWp9In6`EiU#;Z8ppg^ z9z`G8vx=G1updpks?Wsc3D8wC#Dq*tL0>&?qW(T^t-N}Rt}EE0d0Q2^GZ2k_ehXvJ z@&!odwI_2ljbUs*bkMVls!*tKKiyfskqJI`nK}7Mo;mSK0-0W!hRCY*%sw}5+FE@W zxpVK|PVXsQbRhuExL$xZNZT>N!zD}sScY=t-f&&>IJ6_65Iq;~qQ7fYGfyt;VXm5n zFc;>vF&a~vm}6g#F>3~YGLPKKnM}0`B(Qx!FFW{>@lEexEb^8xGe$+x+e()4v6o_k zd*adM@dUK{g8e4)sa4QR0`7R-MQ*BR4lUF4XN$jm)n#aFG%V>NbvY$u?te^%H1dF?xih^Y^*Jcl)cI9L{R#3(ugnLbL#2P15V z@-IZDF6w7AcPA60c!pe29zri~_~B8lePrz&XME$(JG|v>0`Bs-jAu-ZChq^jaE6E& zA&ZT%;ml*~!({-&R7uk1pi7K)w`0ewGIC?-d9vbEH%XXC!ZrW0h+okzY`N+=+8px^ zx5Vy8XYM59MmhsKbn?mA!o9>odNV7TT7~C_*CNU<4O>0CN>+Ue!g~_^$mBX5@-B-e z@15k>;>qjeTA?93M=qYQqb~TdTNEiSE5LR~Bgo#XdH71#VLV$x1>e5=hxk2`#j8#= z;MwZ3B;IBX?*C*%q?O&tw-;&nf^QI#Kdr((eeFp4BnftPJVEwncN6~GNNgd-@z9$O zk*U{=+3TKHh*<6z+0mnkTQ*H0F_!nRxlSV<-y%;^PfR6|ho4|aD~jw`^c5fJ|3|dC zOtEN}Dlsq9CY>Y$&o8zncjPx=w@gb+rZLmK4UuT6OJ)*O84wItUu+Kp!qNsx6F zH}DLTqulFOAs6|1BtT~$_x$t2a*uk@-k`%I+QW#w?YEJoSUd80AQaoX-6VTK1H=BH~fMaGdog{PdUpn4X5YMkX4cHYW(OO|cJ)Q< zs}C25CCnxki8-is#{|A3a3)rM5App{Mf^qq5V5TXN#a?~@pOI|$=WNDOO^+S{2NK4 zu+Zw*wtAC5TT?Q1PZ+LS_65&-sYuRS4rBXuTI|*SQ`pAGp8SuY^YF{5 z4dZwz?M)<#hU&Sm`<(lXr$QwqDpwoO)UUc=0^yZZWqtm z{0`@pmKxS^$y69SB%#cH>-Xm7h5cbOd^qmTgdi^O?q%*jgY#VI zwkmeXv^3VaWi$Kz&r#-lOEYu&x)rzl>~ChZYd#b2e1XoHca1oS+?iefTp6xLLMA_Fl#pSJB-w@;%#353iO1kbCX>x3J%&xBc1jl0tzH@~HooQv9a16OxnZi6@IfD^o%1nf_KC9T; z$K1-bV{fE`3Y}2ksKn)ig8e?_{RJ?hm2VmoS@I4aVV)2CJ~wg190} zX60>DrXcPd(UM=oNEf9L`%q8P@vWO_UHqD)_b+Ak4NPQ6Mm013R4jeYJCj(x*JCPM zqL^aqPvnCCSbC$p4D&$dJK<+q&I!+!{Y1|&jM2F+$CL&>W`0;ylGW12%-x|9l6mtI0r_p_^=k2 zn;8AO%}i$P75ZaUp6ux{~Cx+=@qib!IDTN?PXjv%$eQ6mq^EjK;}2y%gEXu zAqvMaY1G(@iXeoLdZA4EYhr?&kkMHEtj(6IqwmCDHmr;GxrU$k3h~Q58r0fAYv(%YLw(TNm ziMhnKXC{5te+y|>C$!PUH0oww9=&U)ImO|*wDJexOr-aP-dr?|WVDWB2G%CfN{@r6 z&1KH?>ghowE=QN1ZO;>#gWdEtEh%!jv4R{`i6?)%dPsby6>%z6p^sV^k?GHUg}*zU z+|gP{=k_D|e)dDkC$~g!BtD}?3h>hI$a4C6mLff~TbgKGRwLUMtfe>CjiVlo?<9?L zB*@;{7D_vM1KE(6O?10#Y0tg+^!iVW$tA&!Xzsm>>^N|eK*A%+YIZR#whpA%wrr#a zT<_6&`q$|}>!Y;m<8O54&}lm8TRsVKdqst)wbRLUPw2TH7SRE+Bgh>!LU%lnp%=7A z5UUAMbk~w!bf;c9J-&Vw>0u10F_z}^=e#Pq)LdZM&WNKEg>1nWk4)NoTRdGC)4wl=6VJcSbi$X%w5-UMGE;p^z0VSO(BC`B3rStt^s^=@ zyL^J4dpm&Ku3ABF_*O^%9b7;gDmW3@!^ZSx@oyokGL__S_7zO?CUjQhNqT4{Aq6WJ z5c$9dwAtqIwCPAi(sU=D{|z?^Z%&b%q~*XF2{^>*+f!q?jXg^u2g=&NqURYSaMEn zKfT(thI+hMlBCa`Lr(e}pwR71>e#aDwBk8yQnBt5eKPzw(J+`tOy5kU1^pK}dEzs@ zX7nVw+_;dwQhbH>xO0j&GkQV3jCG>zOVo(wgP(NR`$YQ2ULEq?`znp^H`D6J&d_h8 z`zfO|ZBnOVMQex6CqFID(|o)x!HA=+&ij%N8;7VplZ$93LWZucl_v4Y-gN0W8FHh; zlYUpSf;Jh~PRYS&vfr$g9xdxg&)FdS|KsCG&l3^NmENJ=j2}w^seC$LPnJx0GlisX z4Iviyy@^I&2;JN7POoV)qIG`TP=%ilQU58Z5*__()T!#*(AIKWl>GQ5TKv8Mv@DZB z(8Y*UmNkQ3^?4YIbVL3XxoCX!1Ncy%io6CULi&UUNaLFVd@E^#%8qVSWqJU9%<(`9 z{%zR%+J5w+a0Y1j`@yyw8c-R~1NsNmu}nXMWnSMz^&L`p%ZqDhVEHVh6T`r9r)H6V z(0e5K5JB`T3e*ehU`x#@-0{W$*r`%z%ZK0S{TppuF64DD7Cr!tMcd$JSS-BB+KvyB zG5GR?I2;Jip*cGf4Y(9SXX{9~Rn-KNvtA)Jrwiz6u@8#+;fTLsS2SngIGCL502Y}U zXj@)BI1Z$M(u+Y?C5rW7C5{w9K{`ohMvAv zFidr#z-6alkNh2U$2LjGPs?M^*~+kaPZVfJ&wzv_Jy1BQR@7+Qgr0w1Bjle?LGOo& zFmGX;$i)u9tIARE-|aF{wa|f*x*ZMKV?UtsZCBCrCpMtdS%W^y`Ge2a1rU1X5ljn- zfafdQK{dYtc|_hp+UqpXO9@G=7vPVV6kNqhHzGkrPVnU%5PaO~A5h4e4G=s+7X4k2 zg@g_{+W#S1_^$Gir|l_tqJUvk0*yI&NqBCvS;)r^qayuY_|wphjDX<@9?$Z{?oPGqpH;sd70YzY{ z>5qPzC8AHk{=(it1WRvOz}(PmQOgN0@QNG~mD)rhX=Vieo|BHBj{gl`pGo6S{<0_# z=|Zv0SwLA1puJ}<`u#Hj)(MW_!dvsuuS^aVDb9zkUH8E6s5{(UiSWqe=P+gNP1GOL z1a7TK;Ium*Ssj`S#}_VyIbY3TwccU8qih5uHx|MKavqd#8i0Oa5%?ZNArc=x2F|?6&Z)&=FmOp z3zoxtjw-g2)P^>xuV|FuaZr0Kz>EGEAiGcbaDLS`lyk_B%CwJ!D`k;*b?`*W*-W3R zTv?93?%qUMk5Hx#+bkE~XwB)*hm*ZT)3+1^xY+V^JaUy^LWq=#?)zX<;jM zNktV)%ga&4KcuKU{ZPEnU_8}R=Zdp`0lpHNLlu9|$A4`nP|vJh;BwuA)ODwYkm0)t z({&&57g#_^jxWcKm*1jkLRK^IK{1ZXo(lPQzu@)j{=>#)EUuB8fo+W5<3&;q82U$2 zlWou7kp6H=`=2b8wLO9|-{OsHcdo(Jd1qjr)_!V@f-*fgW*IGt)}vf6&%_U1OQ`SO z(U{sIN$sxpf*d%aAg4pXVPbnpkBH7Nq$-w;h1 ztXqMTF6rQ)MLQ_Trc{cRSb;N+H{rpE^_0ude(Kp-DT<1phhKX$)cV15xHLrY`CLrH zYuh>MSEv$o$Fu_HgxFGxwE$BSb+Kis6ooE7!IWbyZhN8%5!?RZQAvp~G*cU=+{~sb zEIIl}ObTTmpFy2eH~_TYb-eH3bn0Pu7Pff(9saJ=r`+D`pt22fL1tkcoIBl%Z!Y(y zCOzoFvt~C^JtIRY)yEt0X36E$+hA?#&hbHgdGuWh((nGN;fhYvoNok1R0fNGCQ#w>$>j10H@I^66RH}+prdt0$bPOfH0J7}!wyf; zlO^tG`iL+z!qpL+Kkr3}5r@&b^jW8N8j2qa^=O(Wo!dIJNpST4ypK zYG_CSWL*oVcCSW911iy!vrj-W_$icM^M}H+Q((PI24%755V7`0R}xu7%L^WO$0n3> zG#!b4D?mZfO_XMu2IdDfkkeNUxN<-Wwk?c7pd$l|{pX?qRV#Gjel+}5i$_5VzN5aC zcTntcFL>YOEb3`?K#!)Yz^&dK>?`nTBf1deQq;t3>l%9*h1g@I_DZzeDXCa}?)o1SOBop(&B!aOZ;u ziae|a7lx0ZGp%9Js%nB-?Br0Af)xzp9DyT}3(#1(^GLa89@MCKflQVX^xLjN>$;6$ z&C `23D2*3=i}J=cSwbP+rkx-^wVBG@m*qMnn==wjm|L~i7v%UwBWz6>K;zTz4B z?$R&v5mW2>aaU-5sF>ZivF}TqI$zCXryWv zY;snE5UxrF7Rnt3U?!Sp|-4KG#zFl^H1wU ziFBFBC(90`$9)pL+;y7_Xtz@h0<$YRYah`%8AXC0Yg3vr^<>H(fnWWIq3P5t+C;sQ zTy{7}PwLYrpUza%?)CljlMB~K&a|8Ktnx|3zIrWP5_6jgI2uSF_O~Z1H9X1tMl}+n z^oE#!9VF+=MU3p(n{-plH!^D51zK~u9?jptWO95pwNCmDefn89tsJ$J95lH>dT*R$ z#)Xd}URR`OiKDOR$&de#{r6AOB{i4G`aw^!C?SR@#Z71W#cIrJ#f?lw>kTsNa{|3I zyo4yt{!Ke8-6Ty$?exgwW%QhqWpq;)$N1Z?qi<0?^oqGt3157K4$jz5#)KRtb3VVJ zZwF;kE0=F%qDDlMor|66C$aBH;9Ucz&!dr^zg|R|E!i<5TSOvm*pZmh(Io2NZgQ`aA~h{Eb7s+cdbnW?aW-%!u@R5yuH_NL z(C;FxP#Z@pA~~k+qdc)|-9sjPnodr;zaf4udDN=aRkW{}Em6IbO|NecncuRy^BALguY!3VMne)9GPk^v6?l8ptrCLtfMT7bhaEQ%8+jxsi4%dPDzP z?8zMdaFYJ{JB`TxF(jSZ1B7V5rW3ZzC1V0x=y9ZtmK z1xH?K1<@@j$H=nWS~_jo6Jp_NN-o&uk||><>8X~(WG)p&QzAl+s~(}RS;i2Tj?Z+s z&H?he>JzFG5u5k=R0gC0547~nGdopL}gPo0(#(Y)!L}3z_V19=oeMBpr3J0! zJJGm43XRL{!1dFwp#4c<;A7(j>!$)>#rx2f@e4FUqwyudSy-{c3tOyti^5!UQBMR1 zJ7mVAsZP%kmoD5z$_Byp$tR!=C1Zv0Ye2?k5<2<22i?y&4a>IYAm7SB9PYLhv?Lb8 zkB<_#JZJ^xjjV91QW}iO4n}J??g0OHG>mPQ#V6;rq2T|XpqcZE&{4gG*o03((q75v z*WsyPAmxP~^&W<)Q>{X>9ti%*J{b}t6pF^uMV4T|jM&4NAc3h*+Jptb$&$VOxgpH7@ZV}*B&s{dcq zvpx+Pe2;+9=-UuFT@rqKry##C2;EY5#s3aj;9iCClrq`_H*Q6tXO=S998!aC%_7@CWkoN)|KdPeXfpr{&Y#2tZ{W0+S8Vz%e zw}FwuJ1}khg1#D=Lm7Vv?X|YXB&195!I!{9`A2AmzYN|o`Y@__9|;>~m7xz$EO4LT zhdsbufLrC?kYmS3^zhp@6gVjhGV~4UX???a1rO~jvV zRk5bQQS8(yi%h!b;(6(_aF>v+JGaRg+{};Q1`h-a@0UT9#5VYxUq| z;9pP;>NIeGeY72XN*CdgunD)M_Thm^k6`kVQnW?#2td$WeB}IOp|jVCqw<9Q?Y%fW z;q?h@q}PRQbM9cn*OAy+G=!)d<8gRlKFqa_!ahnK5L7S$9)dZn`+N^CnDr74v9Hm~ zBgbLZQ9XEB_zfavO~%VKav)}b8@iEeMfHCF3tu|#qSnY;Y_C7>D<7yN6^xpMXC|Yc7W{U_HEk6JcuD55O;hDPeOw4er~j=kM<2wxnk^9O zZi_SLeuUqbq+q?bG!*wF!1buZIOgXv$i2K7=WJGlEA1h8W1uFid-EE0SIEM6J_6sB zIs^-QV{m1pKeTit!t@*eP`t7RE=$+IJ4`1-f`&ZK$VkQS1uoG$uXpHi!B_a^dI-X{ zEWzGGON8!f2tHj5I8%QKyqhE34I-8UEVDwYBZ^Q=gD^)C52A?^FY>X^qWH;*8sbf& zV7_(jQE~RO?d<-COT_sO*uHR%oV&ld4VESRD@&fAU4NI4OZFF=i`01WKSR@1le>AJ zfEaGjV66BMJIoH$9_Q_YT=+ZcnY=^BL~%}^hB)s)2Y=DCksa=-1GFiz{Uk#5VcM_ygmHSw*?a z+?Df+;-@XQ`Q?X}a!W&Ex!g(1xSDg(e72uDFZp{kKPF6%JHgB|b+&5c(#Gd;A41B+ z8lFz#HwDLe;|&)4=Zfd1#aT7H@v>I_W_&t7WOt2=&5z=mT4cERNB7vL4a>#U-%@!ztp@!p&y@BU^3uk3V&SI!OKKf5XNPGNGq z&Aui4=E5s{?%iihe^4p!wcNj(4612FKyj0pB*7?^vfiEj#ny}#=$C|Gc2BxkW%h_8rALTiV-}xz;1icyxt;r%VZ`?pcW|BVwqn;Wj(iH8 z&Ltgk;ez3bJyu~K4WtYJLkY!etgakZotk`{8rAHUz;2u-ugh3zd5Is zzvXAlef%QgOz)TSDkG=z<4jJ9kIPDn4SyN%vj&~Sd-RWS!>xMU{QORCpSl{q$oHan zI67B6w=b7>yy(qO+mXcgZ&ek?M3(S!Dbv{n<@edW^|9iyH8y;p#%+kYX^I>Zl*@H?waxDt2@Ek9d~7HpEnRwXHDPS9L1`~4M#td@okf1ZGS)ib0< zX2BGF52RI7fj2+RL05JM!Q`7hkS0ZeMc_*~9{vZO&X|wqX7-@bZ(Xpw28Nq`Vie%F z4DOuQL_IaCpxP$`BU*~#&9gd?)jx`j^ zKm+3)!Pn_3dgZbY{_~I($v!alZ|@OZUUB zGpSIMtqGoAkBVrqC0M`DhmP&if~!6XqW!I5W#ukpJwq4F8!)iWRcO}|Vg9nm08UaD z;O5MYpxjdjsZCvI_}>-O^^Qe{-!8{(n{BX8ng%s$L^&Pc32M;WrI zR48n^fl?owL2A}^Q2vELwvjrt6x52CCk_ItNgYj}<&HF``~V5bZTL*eTUh2k8W+QC zBx>IcUOL&ZRAVj7TXzoax>F7N%_y9X8C1DC0{zw73hr->ao0ml=nFH%`%6y4I42bd zlF-BBE(!DL57$tEOEg?Pyc)PQ(I8Pf6}L%uBW~tpcx*HSr(D#A{Kh0;SQr;ue?1e&-k37+mSfEueh*naLM zbSe&kyVng!EA2#!1;*05V{&k_t4!2eI~mzEKZDxS0)OSdDyU`aL^IsRfllvUD7J_J zw{N3GxAJa6l&Bu|{aS_2W*$Xz_gBI4r+(<{pc+VvE~D_TO{n5^0Tc_28kco>uw~&A zG<$CverL2Dxk^t3!el{-E%PYr%EpF};=UZTM-Kj3s;CX&AP6MiPmgwh#laKhbB zVDzhDccra3#<2{}x%;3iWA?+=bO{)*Ru3<=%8`V51LCIcKtlxKCtd5%gpnGMIDG;P zEsaEz{)>kU^C`w1n!xGM4uUy0MJmq6E=#c1ijAFzlw!p!V)vz8+!s z@z>#YtR}wSy9QDA<3T*j7M3!RFlSFN?3;>VinTUOU9bquADP31aU-$uF*j6yIuZiE zE``P&Z_y^7eXz2+7zHohkGAMM2kp)Qv~{Hw_*-d1;m6A$x4K?5`A8L7vT6t1&hiHX zC4ucSv{MwZ^AAdRuMV+rK?HIh&=$G}yj(A#MZq;_<_J}g`mYqJM(zTIOD;t9Gr(o%;i|BXADfIW@Xf!A-h2@ub}6qW3=0N5o3XC6s|_vQ1Vr>Tp8(|9J5ixDH7+W}WcFUA9h1h#bHFPIoA zi?TGv!MZWWp@gykf6J+;DmoRCHs6N5hc}@KP7~0vPik;%%?&t^I2x|+(#0Alv!Uw3 zHDt>+!GHcf@P0!Ia(`e2F`LZbMTjt`p*CT)F{Q{V_!t~ixdYcSWx(^$A*lZ}3Fe%z z2ko~spokPS`-CBmkG+C&E#E`vKNdz7p9aaTsmOzGf#W`Y=<2V9;5@txJyW;sIQU$v!Q*! zZodGk?r-33Q58h&c!=iYwxA!gN>I;=iy~K786@LU4&^83qXopCs%mzC?kFF8>AV!R zyg-f$K6wl+t+t~^CH=xnBCdn{PJO&N-J05Isf-_gFTh$BcGyfg2;UcWUx~TPaeZ|e z?oI3vd_J@2VecW>uHB56FkkTX_X&7f`a0@YUle6sS3o%iuflIVgQ$QoF}|@O4gQ4{ zEp47esuPS!O#oq?7%OXoEB3Xx)t4YUMemfy;hBqD@@}r6)4Fp!qbSlO5BVKY# zma;ovM~VMCLY<9%Pr-2;%6#W2ynY^`t}BG$wi&aiS(VOM=fzaK)9)FqK69Ch_v(bN ziktAJ?#p;~zba07r9e$)HL0)|A3XcrL|9?>ky;uylG+p42A0QmP)8T#Q#p4XF>7Cn z&C=FWvHG3Vm}6m-({MgDazi^@E4z&4OLt?HyZ%^mxE=pz(|~ggvvBr@KUjM~8SeU1 zOg&V82h~RJ@ZQ6p@G2Kqd_hv0O5HgfnwxNvK+)w)|c_()$WwSVSw%{ zHaJJE3I7e6MEQIb_I{0ZXw3MNnASanYaBH}W$SI+=F)`C-N)jaQzqlt;u@UthsSO? z-8f-lI$pWRo{F9I5m!xIMp-r6;-8D{@a~)hSW&o+TGji4@~jfmTk_?oiy9c)w?$La z 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

|623@m*oW}OcDvyVf+!o>!w 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 dE|c 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