From 152d67ab8660d7c74dfbfb888f8a0d6118cb206c Mon Sep 17 00:00:00 2001 From: tzhouam Date: Thu, 24 Sep 2026 06:48:14 +0800 Subject: [PATCH] Audit Qualcomm Qwen3-TTS vocoder parity and profile --- .../audit_qwen_tts_vocoder_qualcomm.py | 157 + ...omponent.py => collect_aihub_component.py} | 5 +- .../spark_rb3_full_attention/README.md | 2 +- .../spark_sa8775_full_attention/README.md | 2 +- .../spark_xelite_full_attention/README.md | 2 +- .../results/e2e_expansion_20260924/README.md | 3 + .../qwen_tts_vocoder_qualcomm/README.md | 13 + .../artifact_manifest.json | 79 + .../rb3/compile_report.json | 31 + .../rb3/historical_profile_report.json | 5361 +++++++++++++++++ .../rb3/inference_submission.json | 14 + .../rb3/profile_submission.json | 14 + .../s25_cpu_comparison.json | 16 + .../s25_reference_inference.json | 32 + .../s25_reference_output.npz | Bin 0 -> 115235 bytes .../sa8775p/audit_report.json | 86 + .../sa8775p/compile_report.json | 31 + .../cpu_control/inference_submission.json | 14 + .../sa8775p/device_output.npz | Bin 0 -> 10189 bytes .../gpu_fp32/inference_submission.json | 14 + .../sa8775p/historical_profile_report.json | 5361 +++++++++++++++++ .../sa8775p/inference_report.json | 32 + .../sa8775p/inference_submission.json | 14 + .../sa8775p/profile_report.json | 5361 +++++++++++++++++ .../sa8775p/profile_submission.json | 14 + .../xelite/compile_report.json | 31 + .../xelite/compile_submission.json | 11 + .../xelite/cpu/inference_submission.json | 14 + .../xelite/cpu/profile_submission.json | 14 + .../xelite/gpu/inference_submission.json | 14 + .../xelite/gpu/profile_submission.json | 14 + .../evidence/summary/README.md | 8 +- docs/design/omni_edge_e2e_roadmap.md | 2 + 33 files changed, 16758 insertions(+), 8 deletions(-) create mode 100644 benchmarks/edge_harness/experiments/audit_qwen_tts_vocoder_qualcomm.py rename benchmarks/edge_harness/experiments/{collect_spark_aihub_component.py => collect_aihub_component.py} (93%) create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/README.md create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/artifact_manifest.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/compile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/historical_profile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/inference_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_cpu_comparison.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_inference.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_output.npz create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/audit_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/compile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/device_output.npz create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/gpu_fp32/inference_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/historical_profile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/inference_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/inference_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/profile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/profile_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/compile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/compile_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/cpu/inference_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/cpu/profile_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/gpu/inference_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/gpu/profile_submission.json diff --git a/benchmarks/edge_harness/experiments/audit_qwen_tts_vocoder_qualcomm.py b/benchmarks/edge_harness/experiments/audit_qwen_tts_vocoder_qualcomm.py new file mode 100644 index 000000000..046d50a0c --- /dev/null +++ b/benchmarks/edge_harness/experiments/audit_qwen_tts_vocoder_qualcomm.py @@ -0,0 +1,157 @@ +#!/usr/bin/env python3 +"""Audit a hosted Qwen3-TTS vocoder component against a pinned ONNX CPU run.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import math +from collections import Counter +from pathlib import Path + +import numpy as np + + +SOURCE_SHA256 = "7c07666229c6d404894132e22f784525e3212a49efad55ddd532eda5286c2b2b" +FIXTURE_SHA256 = "dfca9e8d2a724a568a31b6cd18ff6a52fdc205fd34e13cbf1cd75f0f7937e82d" +CPU_OUTPUT_SHA256 = "8de78b94b59f01e49852f7706adbd2508a9976b8e2705cfd3b94d07bb3606cb1" + + +def sha256(path: Path) -> str: + with path.open("rb") as source: + return hashlib.file_digest(source, "sha256").hexdigest() + + +def read_output(path: Path, name: str) -> np.ndarray: + with np.load(path, allow_pickle=False) as data: + if data.files != [name]: + raise ValueError(f"{path}: expected only {name}, got {data.files}") + output = np.asarray(data[name]) + if output.shape != (1, 48000) or output.dtype != np.float32 or not np.isfinite(output).all(): + raise ValueError(f"{path}: violates finite FP32 48,000-sample WAV contract") + return output + + +def compare(reference: np.ndarray, output: np.ndarray) -> dict: + a = reference.astype(np.float64).ravel() + b = output.astype(np.float64).ravel() + error_norm = float(np.linalg.norm(a - b)) + reference_norm = float(np.linalg.norm(a)) + output_norm = float(np.linalg.norm(b)) + if reference_norm == 0 or output_norm == 0: + raise ValueError("silent reference/output cannot define waveform similarity") + return { + "relative_l2": error_norm / reference_norm, + "snr_db": 20 * math.log10(reference_norm / error_norm) if error_norm else None, + "max_abs": float(np.max(np.abs(a - b))), + "cosine": float(np.dot(a, b) / (reference_norm * output_norm)), + "reference_rms": float(np.sqrt(np.mean(a * a))), + "output_rms": float(np.sqrt(np.mean(b * b))), + "output_saturated_fraction_abs_ge_0_999": float(np.mean(np.abs(b) >= 0.999)), + } + + +def nearest_rank(values: list[int], fraction: float) -> int: + ordered = sorted(values) + return ordered[math.ceil(fraction * len(ordered)) - 1] + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--device-name", required=True) + parser.add_argument("--compile-options", required=True) + parser.add_argument("--run-options", required=True) + for name in ( + "source-onnx", "fixture", "cpu-output", "s25-output", "s25-inference-report", "compile-report", + "inference-report", "profile-report", "device-output", "output-report", + ): + parser.add_argument(f"--{name}", type=Path, required=True) + args = parser.parse_args() + compile_report = json.loads(args.compile_report.read_text(encoding="utf-8")) + inference = json.loads(args.inference_report.read_text(encoding="utf-8")) + profile = json.loads(args.profile_report.read_text(encoding="utf-8")) + s25_inference = json.loads(args.s25_inference_report.read_text(encoding="utf-8")) + if any(report.get("status") != "SUCCESS" for report in (compile_report, inference, profile)): + raise RuntimeError("compile, inference and profile must all succeed") + if compile_report.get("source_model_id") != "mqyer339n" or compile_report.get("options") != args.compile_options: + raise RuntimeError("compile did not use pinned Qwen3-TTS vocoder source/options") + target_id = compile_report["target_model_id"] + if inference.get("model_id") != target_id or profile.get("model_id") != target_id: + raise RuntimeError("inference/profile used a different target artifact") + if inference.get("input_dataset_id") != "d7m80jl32": + raise RuntimeError("inference did not use the retained vocoder fixture") + if (s25_inference.get("status") != "SUCCESS" or s25_inference.get("model_id") != "mng7kwxon" + or s25_inference.get("input_dataset_id") != inference["input_dataset_id"] + or s25_inference.get("device", {}).get("name") != "Samsung Galaxy S25"): + raise RuntimeError("historical S25 output lacks matching model/device/dataset provenance") + for report in (compile_report, inference, profile): + if report.get("device", {}).get("name") != args.device_name: + raise RuntimeError("job did not use the exact requested device") + if inference.get("options") != args.run_options or profile.get("options") != args.run_options: + raise RuntimeError("inference/profile requested different compute options") + files = { + name: {"bytes": path.stat().st_size, "sha256": sha256(path)} + for name, path in { + "source_onnx": args.source_onnx, + "fixture": args.fixture, + "cpu_output": args.cpu_output, + "s25_output": args.s25_output, + "device_output": args.device_output, + }.items() + } + for name, expected in { + "source_onnx": SOURCE_SHA256, + "fixture": FIXTURE_SHA256, + "cpu_output": CPU_OUTPUT_SHA256, + }.items(): + if files[name]["sha256"] != expected: + raise RuntimeError(f"{name} differs from the pinned source/fixture/reference") + with np.load(args.fixture, allow_pickle=False) as data: + if data.files != ["quantized"] or data["quantized"].shape != (1, 512, 97): + raise RuntimeError("fixture input contract differs") + cpu = read_output(args.cpu_output, "wav") + s25 = read_output(args.s25_output, "output_0__0") + output = read_output(args.device_output, "output_0__0") + execution = profile["profile"] + times_us = execution["execution_summary"]["all_inference_times"] + if not times_us or any(not isinstance(value, int) or value <= 0 for value in times_us): + raise RuntimeError("missing or invalid device samples") + units = Counter(row.get("compute_unit") for row in execution["execution_detail"]) + if not units: + raise RuntimeError("no compute-unit placement detail") + report = { + "scope": "one Qwen3-TTS code2wav 48,000-sample component on one retained fixture; no complete TTS stream", + "status": "component_executed_quality_unqualified", + "device": profile["device"], + "compile_job_id": compile_report["job_id"], + "inference_job_id": inference["job_id"], + "profile_job_id": profile["job_id"], + "target_model_id": target_id, + "input_dataset_id": inference["input_dataset_id"], + "s25_prior_inference_job_id": s25_inference["job_id"], + "requested_run_options": args.run_options, + "files": files, + "cpu_source_vs_device": compare(cpu, output), + "s25_gpu_vs_device": compare(s25, output), + "profile": { + "sample_count": len(times_us), + "sample_min_us": min(times_us), + "nearest_rank_p50_us": nearest_rank(times_us, 0.50), + "nearest_rank_p95_us": nearest_rank(times_us, 0.95), + "reported_estimated_inference_time_us": execution["execution_summary"]["estimated_inference_time"], + "reported_peak_memory_bytes": execution["execution_summary"]["estimated_inference_peak_memory"], + "compute_unit_row_counts": dict(units), + }, + "limits": [ + "Historical source export does not attest its exact checkpoint revision.", + "This fixed component waveform has no listening or task-quality tolerance.", + "Hosted component profiling excludes talker, predictor, stage handoff, streaming, admission and sustained power/thermal behavior.", + ], + } + args.output_report.write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + print(json.dumps({"status": report["status"], "profile": report["profile"]}, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/edge_harness/experiments/collect_spark_aihub_component.py b/benchmarks/edge_harness/experiments/collect_aihub_component.py similarity index 93% rename from benchmarks/edge_harness/experiments/collect_spark_aihub_component.py rename to benchmarks/edge_harness/experiments/collect_aihub_component.py index dd0147ad7..85eb1819d 100644 --- a/benchmarks/edge_harness/experiments/collect_spark_aihub_component.py +++ b/benchmarks/edge_harness/experiments/collect_aihub_component.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Preserve raw Workbench Spark-layer jobs submitted in an evidence directory. +"""Preserve raw Workbench component jobs submitted in an evidence directory. Requires qai-hub authentication through the local client configuration. The submission JSON files identify existing jobs; this script never resubmits them. @@ -70,10 +70,11 @@ def collect(evidence_dir: Path, kind: str, client: hub.Client) -> str: def main() -> None: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("evidence_dirs", nargs="+", type=Path) + parser.add_argument("--kinds", nargs="+", choices=("inference", "profile"), default=("inference", "profile")) args = parser.parse_args() client = hub.Client() for directory in args.evidence_dirs: - for kind in ("inference", "profile"): + for kind in args.kinds: print(f"{directory.name}: {collect(directory, kind, client)}") diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_rb3_full_attention/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_rb3_full_attention/README.md index eea900b3a..30db639a2 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_rb3_full_attention/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_rb3_full_attention/README.md @@ -11,7 +11,7 @@ Four routes were tested on exact device **Dragonwing RB3 Gen 2 Vision Kit**, usi | Compile original FP32 source to ONNX `mmxj02ljq`, request CPU | [Compile](compile_cpu_report.json) `jglyxowj5`, [inference](cpu/inference_report.json) `jgolrodqg` and [profile](cpu/profile_report.json) `jpvldemk5` passed. All 56 execution-detail rows were CPU. | [Output](cpu/device_output.npz) hidden/K/V relative L2 versus original ONNX Runtime 1.29 CPU was 8.73e-7/2.98e-7/3.37e-7. [Audit](cpu/audit_report.json): 100 samples, nearest-rank p50/p95 19.304/21.113 ms (minimum 19.104 ms). This is explicitly CPU, not NPU fallback masquerading as acceleration. | | Compile original source with calibration dataset `d7x8e3d59` using `--quantize_full_type int8 --quantize_io` to QNN DLC `mqkp10ezm`, request NPU | [Compile](compile_w8a8_report.json) `jpyoxq885`, [inference](w8a8/inference_report.json) `jgzlm8yo5` and [profile](w8a8/profile_report.json) `j5wl78z3p` passed. All 61 execution-detail rows were NPU. | [Output](w8a8/device_output.npz) hidden/K/V relative L2 versus FP32 CPU was **20.914%/1.702%/4.413%**. [Audit](w8a8/audit_report.json): 100 samples, p50/p95 5.610/5.761 ms (minimum 5.089 ms). This precision is **numerically unqualified**; no next-token/task tolerance is established. | -All successful jobs used the same fixture dataset `d7m83gjy2` and returned finite FP32 hidden/new-key/new-value tensors. The service `estimated_inference_time` equals each sample minimum, not the median. The [CPU](cpu/audit_report.json) and [W8A8 NPU](w8a8/audit_report.json) audits pin source and fixture hashes, exact job/device/model IDs, output hashes, placement rows and full precision differences. [Submission records](compile_w8a8_submission.json), [initial failed submissions](inference_submission.json), [RB3 W8A16 compile submission](compile_rb3_submission.json), and [CPU compile submission](compile_cpu_submission.json) preserve attempted settings. The scripts [collect existing jobs](../../../../experiments/collect_spark_aihub_component.py) and [audit fallback variants](../../../../experiments/audit_spark_qualcomm_fallback.py) without embedded credentials. +All successful jobs used the same fixture dataset `d7m83gjy2` and returned finite FP32 hidden/new-key/new-value tensors. The service `estimated_inference_time` equals each sample minimum, not the median. The [CPU](cpu/audit_report.json) and [W8A8 NPU](w8a8/audit_report.json) audits pin source and fixture hashes, exact job/device/model IDs, output hashes, placement rows and full precision differences. [Submission records](compile_w8a8_submission.json), [initial failed submissions](inference_submission.json), [RB3 W8A16 compile submission](compile_rb3_submission.json), and [CPU compile submission](compile_cpu_submission.json) preserve attempted settings. The scripts [collect existing jobs](../../../../experiments/collect_aihub_component.py) and [audit fallback variants](../../../../experiments/audit_spark_qualcomm_fallback.py) without embedded credentials. The CPU and NPU numbers are different precisions and outputs, not a qualified speedup comparison. Neither job includes 27 other decoder layers, prefill, continuous decode, KV/ring, sampling, a resident Omni controller, complete-request timing or sustained power/thermal behavior. Workbench is a test facility, not a deployment dependency. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_sa8775_full_attention/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_sa8775_full_attention/README.md index 37cb5a345..822e5d843 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_sa8775_full_attention/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_sa8775_full_attention/README.md @@ -8,6 +8,6 @@ The [three outputs](device_output.npz) were finite FP32 hidden/new-key/new-value All 73 execution-detail rows in the profile were attributed to NPU. The 100 component samples had nearest-rank p50/p95 **1.837/2.079 ms** (minimum 1.749 ms); the service's `estimated_inference_time` was that minimum, not the median. Reported component inference peak memory was 90,877,952 bytes. These hosted component measurements exclude prefill, 27 other decoder layers, sampling, handoff, loading and a resident KV/ring/controller. They are not paired speed comparisons with other devices or OS builds. -The [audit script](../../../../experiments/audit_spark_qualcomm_attention.py) reproduces the provenance and numerical checks using pinned source artifact paths in the S24 record. The [collector](../../../../experiments/collect_spark_aihub_component.py) retrieves these existing jobs via the local client configuration; neither script contains credentials. +The [audit script](../../../../experiments/audit_spark_qualcomm_attention.py) reproduces the provenance and numerical checks using pinned source artifact paths in the S24 record. The [collector](../../../../experiments/collect_aihub_component.py) retrieves these existing jobs via the local client configuration; neither script contains credentials. **Matrix status: component NPU inference/profiled; NOT E2E.** Full qualification needs a complete device-resident Spark artifact and Omni backend with prefill/decode/KV-ring/sampling, state, token quality, cancellation and memory admission, followed by sustained power and thermal measurement. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_xelite_full_attention/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_xelite_full_attention/README.md index becc0709b..0fb81242b 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_xelite_full_attention/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_xelite_full_attention/README.md @@ -8,6 +8,6 @@ The [three outputs](device_output.npz) were finite FP32 hidden/new-key/new-value All 73 execution-detail rows in the device profile were attributed to NPU. The 100 component inference-time samples had nearest-rank p50/p95 **1.433/1.606 ms** (minimum 1.346 ms). The service's `estimated_inference_time` was 1.346 ms, matching the minimum rather than the median. The reported component inference peak memory was 18,423,808 bytes. These are hosted component-job measurements; they exclude prefill, 27 other decoder layers, sampling, transfer, loading and a resident KV/ring/controller. Hardware, OS and hosted power state differ from the mobile runs, so these are not paired speed comparisons. -Re-audit with `benchmarks/edge_harness/experiments/audit_spark_qualcomm_attention.py` and the [pinned source artifact paths](../spark_s24_full_attention/README.md). `benchmarks/edge_harness/experiments/collect_spark_aihub_component.py` retrieves the existing jobs using the local AI Hub client configuration. Neither script contains credentials. +Re-audit with `benchmarks/edge_harness/experiments/audit_spark_qualcomm_attention.py` and the [pinned source artifact paths](../spark_s24_full_attention/README.md). `benchmarks/edge_harness/experiments/collect_aihub_component.py` retrieves the existing jobs using the local AI Hub client configuration. Neither script contains credentials. **Matrix status: component NPU inference/profiled; NOT E2E.** Full qualification still needs an X Elite machine running the complete 28-layer Spark model through a resident Omni backend with prefill/decode/KV-ring/sampling, state and cancellation, token-quality checks, memory admission and sustained power/thermal measurements. Workbench is a test facility, not that deployment runtime. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md new file mode 100644 index 000000000..c01e1322f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md @@ -0,0 +1,3 @@ +# 2026-09-24 Qualcomm component expansion + +The [Qwen3-TTS vocoder study](evidence/qwen_tts_vocoder_qualcomm/README.md) reuses a retained fixed-shape Code2Wav export and historical Workbench input to test numerical behavior on SA8775P and other Qualcomm settings. The fresh SA8775P GPU inference produces a saturated waveform, so its historical profile must not be interpreted as a usable TTS path. Workbench jobs for RB3, X Elite and SA8775P controls were still pending when this snapshot was written; their submission IDs are retained for completion. No complete on-device TTS stream or model-quality qualification is claimed. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md new file mode 100644 index 000000000..2efdcc16f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md @@ -0,0 +1,13 @@ +# Qwen3-TTS Code2Wav component across Qualcomm devices + +**The retained Qwen3-TTS Code2Wav export does not yet have a numerically qualified SA8775P GPU path.** A fresh inference on the exact hosted SA8775P ADP returned a severely saturated waveform on the same input for which original ONNX Runtime CPU and prior S25 GPU outputs remained unsaturated. Other submitted device jobs were pending at this evidence snapshot; they are not counted as passes. + +The historical Workbench source model `mqyer339n` is a 423,655,047-byte ONNX graph with one FP32 input `[1,512,97]` and one 48,000-sample output. The [manifest](artifact_manifest.json) pins its SHA256, the retained Workbench fixture dataset `d7m80jl32`, a local ONNX Runtime 1.29 CPU output, compiled target downloads, and the prior [S25 GPU output](s25_reference_output.npz). The source export script identifies the Qwen3-TTS 0.6B CustomVoice model family, but did not attest the exact checkpoint revision; these results must not be promoted to a revision-qualified release claim. Large source/target artifacts and the fixture remain outside Git under `/home/zhout/project/edge_infer/models/`. + +The [S25 historical inference](s25_reference_inference.json) on the same fixture differed from local FP32 ONNX CPU by **4.24% relative L2 / 27.46 dB SNR** ([comparison](s25_cpu_comparison.json)); that waveform has no listening-quality tolerance. A fresh [SA8775P inference](sa8775p/inference_report.json) used historical compiled TFLite model `mnze95don` and requested GPU. Its [output](sa8775p/device_output.npz) had **96.63%** of samples at absolute amplitude at least 0.999, RMS **0.989** versus CPU **0.0837**, relative L2 **11.832**, and SNR **−21.46 dB**. The fresh [profile](sa8775p/profile_report.json) attributed 403 execution-detail rows to CPU and 335 to GPU; 100 component samples had nearest-rank p50/p95 **1.776/1.880 s** (minimum 1.675 s). The [audit](sa8775p/audit_report.json) pins all output hashes, waveform differences and placement. This is measured execution of a **numerically failed** output, not a usable TTS performance result. The [SA8775P compile record](sa8775p/compile_report.json) pins the artifact and source IDs. + +The re-fetched *historical* [SA8775P profile](sa8775p/historical_profile_report.json) has 100 component samples, nearest-rank p50/p95 **1.751/1.874 s**, and 403 CPU plus 335 GPU execution-detail rows. The *historical* [RB3 profile](rb3/historical_profile_report.json) has 100 samples, p50/p95 **3.143/3.189 s**, also with 403 CPU plus 335 GPU rows. Their previously quoted 1.701/3.107 s estimated-time fields are sample minima, not medians. Both profiles exclude talker/predictor, stage handoff, streaming and full-request time. The SA and RB3 TFLite target downloads are bitwise identical, but that does not establish matching runtime outputs or quality. + +Current [RB3](rb3/inference_submission.json) fresh job submissions, [SA CPU](sa8775p/cpu_control/inference_submission.json) and [FP32-preserving GPU](sa8775p/gpu_fp32/inference_submission.json) controls, and X Elite [DirectML GPU](xelite/gpu/inference_submission.json) and [CPU](xelite/cpu/inference_submission.json) submissions remain pending in this snapshot. The [X Elite ONNX compile](xelite/compile_report.json) passed after the older TFLite target was rejected on Windows ARM. Pending jobs have no numerical or latency conclusion. The [collector](../../../../experiments/collect_aihub_component.py) retrieves their terminal reports without resubmitting jobs, and the [audit script](../../../../experiments/audit_qwen_tts_vocoder_qualcomm.py) checks source/fixture hashes, device and model IDs, actual placement, waveform error, saturation and sample percentiles. + +This is one fixed vocoder component with a retained input, not complete Qwen3-TTS. The next gates are a quality-passing SA/RB3/X Elite target, talker and code predictor numerical checks, device-resident handoff/co-residency, playable streaming, cancellation, memory admission and sustained power/thermal profiling. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/artifact_manifest.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/artifact_manifest.json new file mode 100644 index 000000000..ef009dee0 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/artifact_manifest.json @@ -0,0 +1,79 @@ +{ + "facility": "Qualcomm AI Hub Workbench", + "source_model_ids": { + "talker": "mq3xre4rq", + "vocoder": "mqyer339n" + }, + "fixture_dataset_id": "d7m80jl32", + "reference_inference_job_id": "jpx428ojg", + "checkpoint_revision": "not attested by historical export; component provenance only", + "onnxruntime_cpu_version": "1.29.0", + "files": { + "talker_source_onnx": { + "path": "/home/zhout/project/edge_infer/models/qwen3tts_talker_step2_L256_20260924.onnx", + "bytes": 1776377476, + "sha256": "41feb08517678e94d9301e992d0df610fc60e7c9faba5600703298c86554fd22" + }, + "vocoder_source_onnx": { + "path": "/home/zhout/project/edge_infer/models/qwen3tts_code2wav_c25_20260924.onnx", + "bytes": 423655047, + "sha256": "7c07666229c6d404894132e22f784525e3212a49efad55ddd532eda5286c2b2b" + }, + "vocoder_fixture": { + "path": "/home/zhout/project/edge_infer/models/qwen3tts_vocoder_fixture_20260924.npz", + "bytes": 129721, + "sha256": "dfca9e8d2a724a568a31b6cd18ff6a52fdc205fd34e13cbf1cd75f0f7937e82d" + }, + "vocoder_ort_cpu_output": { + "path": "/home/zhout/project/edge_infer/models/qwen3tts_vocoder_ort_cpu_output_20260924.npz", + "bytes": 179942, + "sha256": "8de78b94b59f01e49852f7706adbd2508a9976b8e2705cfd3b94d07bb3606cb1" + }, + "s25_historical_gpu_output": { + "path": "/home/zhout/project/edge_infer/vllm-omni-edge/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_output.npz", + "bytes": 115235, + "sha256": "4a26486d5e84a6e22d16f9b26f995b8fe645c29bbd70b103615ec35a0fcb10a0" + }, + "sa8775p_tflite": { + "path": "/home/zhout/project/edge_infer/models/qwen3tts_vocoder_sa8775p_20260924.tflite", + "bytes": 421658132, + "sha256": "29826da6ecc1ec2efc0e3589c3cebb42b20d7e20c0975a037d9f51625d6638cd", + "model_id": "mnze95don", + "compile_job_id": "jp410o3vp" + }, + "rb3_tflite": { + "path": "/home/zhout/project/edge_infer/models/qwen3tts_vocoder_rb3_20260924.tflite", + "bytes": 421658132, + "sha256": "29826da6ecc1ec2efc0e3589c3cebb42b20d7e20c0975a037d9f51625d6638cd", + "model_id": "mn0wyzd3q", + "compile_job_id": "j5mmy28w5" + }, + "xelite_onnx": { + "path": "/home/zhout/project/edge_infer/models/qwen3tts_vocoder_xelite_20260924.onnx.onnx.zip", + "bytes": 394632184, + "sha256": "e8f80a85d6f36248ad015edf63e553514011ae621d234a1e3d88ea71f93568f0", + "model_id": "mnz079ezm", + "compile_job_id": "j5qlyz8op" + } + }, + "fixture": { + "shape": [ + 1, + 512, + 97 + ], + "dtype": "float32", + "min": -90.89772033691406, + "max": 65.62191772460938, + "mean": 0.0705118179321289, + "std": 11.206748962402344 + }, + "cpu_reference": { + "shape": [ + 1, + 48000 + ], + "dtype": "float32", + "rms": 0.08373439311981201 + } +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/compile_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/compile_report.json new file mode 100644 index 000000000..3ced67bbf --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/compile_report.json @@ -0,0 +1,31 @@ +{ + "retrieved_utc": "2026-09-23T22:21:24.623865+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "j5mmy28w5", + "url": "https://workbench.aihub.qualcomm.com/jobs/j5mmy28w5/", + "status": "SUCCESS", + "status_message": "", + "source_model_id": "mqyer339n", + "target_model_id": "mn0wyzd3q", + "device": { + "name": "Dragonwing RB3 Gen 2 Vision Kit", + "os": "1.6", + "attributes": [ + "os:qc_linux", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-oe-linux-gcc11", + "format:iot", + "chipset:qualcomm-qcs6490", + "chipset:qcs6490", + "chipset:qualcomm-dragonwing-qcs6490", + "hexagon:v68", + "soc-model:93", + "framework:qnn" + ] + }, + "options": "--target_runtime tflite", + "hub_version": "aihub-2026.08.28.1" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/historical_profile_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/historical_profile_report.json new file mode 100644 index 000000000..065af173f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/historical_profile_report.json @@ -0,0 +1,5361 @@ +{ + "retrieved_utc": "2026-09-23T22:42:00.985485+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jgnn8ynrg", + "url": "https://workbench.aihub.qualcomm.com/jobs/jgnn8ynrg/", + "status": "SUCCESS", + "status_message": "", + "options": "--compute_unit gpu", + "hub_version": "aihub-2026.08.28.1", + "device": { + "name": "Dragonwing RB3 Gen 2 Vision Kit", + "os": "1.6", + "attributes": [ + "os:qc_linux", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-oe-linux-gcc11", + "format:iot", + "chipset:qualcomm-qcs6490", + "chipset:qcs6490", + "chipset:qualcomm-dragonwing-qcs6490", + "hexagon:v68", + "soc-model:93", + "framework:qnn" + ] + }, + "model_id": "mn0wyzd3q", + "shapes": { + "quantized": [ + [ + 1, + 512, + 97 + ], + "float32" + ] + }, + "profile": { + "execution_summary": { + "estimated_inference_time": 3107047, + "estimated_inference_peak_memory": 326467584, + "first_load_time": 362148768, + "first_load_peak_memory": 853000192, + "warm_load_time": 613880, + "warm_load_peak_memory": 724815872, + "compile_time": 0, + "compile_peak_memory": 0, + "compile_memory_increase_range": [ + 0, + 0 + ], + "compile_memory_peak_range": [ + 0, + 0 + ], + "first_load_memory_increase_range": [ + 292646672, + 293447152 + ], + "first_load_memory_peak_range": [ + 850108416, + 850908896 + ], + "warm_load_memory_increase_range": [ + 290236560, + 291284112 + ], + "warm_load_memory_peak_range": [ + 721649664, + 722697216 + ], + "inference_memory_increase_range": [ + 0, + 0 + ], + "inference_memory_peak_range": [ + 4096, + 30776960 + ], + "all_compile_times": [], + "all_first_load_times": [ + 362148768 + ], + "all_warm_load_times": [ + 613880 + ], + "all_inference_times": [ + 3168836, + 3136459, + 3193461, + 3182310, + 3128086, + 3126759, + 3134716, + 3130726, + 3119672, + 3140434, + 3175111, + 3197642, + 3158533, + 3152371, + 3134727, + 3124040, + 3133318, + 3199542, + 3120793, + 3165785, + 3155564, + 3116039, + 3128231, + 3157719, + 3155019, + 3151524, + 3156020, + 3149471, + 3153522, + 3148211, + 3175902, + 3123439, + 3179625, + 3189244, + 3182995, + 3148867, + 3152373, + 3180883, + 3151112, + 3119988, + 3127442, + 3171985, + 3170447, + 3127481, + 3129392, + 3159411, + 3115195, + 3127663, + 3129020, + 3153254, + 3127477, + 3121492, + 3149565, + 3115466, + 3109029, + 3150730, + 3121825, + 3132025, + 3208400, + 3136900, + 3145602, + 3139222, + 3114681, + 3147196, + 3146603, + 3167071, + 3148524, + 3123500, + 3168931, + 3160454, + 3141264, + 3107047, + 3135410, + 3131646, + 3117477, + 3163254, + 3215143, + 3120564, + 3150380, + 3111667, + 3118592, + 3154835, + 3153288, + 3149393, + 3130609, + 3122399, + 3126626, + 3116390, + 3168016, + 3153205, + 3134286, + 3145118, + 3139339, + 3126955, + 3127935, + 3139403, + 3151512, + 3146868, + 3116367, + 3142822 + ] + }, + "execution_detail": [ + { + "name": "model/tf.compat.v1.transpose/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 53, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad/Pad", + "type": "PAD", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "CPU", + "execution_time": 6302, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_1/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 1406, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 2, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_2/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_1/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 3521, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_1/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 44, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_1/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_3/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 53, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_3/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_4/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat/node_cat_3", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_4/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_3/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 47, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_1/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_1/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_2/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_5/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_5/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 47, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_6/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_1/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_1/node_cat_4", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_6/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_4/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 478, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_4/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_7/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_5/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 158, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_2/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_2/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 94, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_3/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 314, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_3/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_5/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_3/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 2236, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_8/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_6/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_9/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_1/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_7/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_1/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_1/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 1686, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_10/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 80, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_5/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 1728, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_12/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 33, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_6/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 2147, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_13/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_14/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_8/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_15/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_2/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_9/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_2/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 5062, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_2/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_16/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_8/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_7/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_4/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 45, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_6/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_18/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_10/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_11/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_2/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_2/node_cat_5", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 42, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_19/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_10/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_8/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_5/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_7/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_20/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_12/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_13/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_3/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_3/node_cat_6", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 337, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_21/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_11/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_11/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 100, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_22/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_12/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_1/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 98, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_9/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 329, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_6/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_8/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_10/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 2215, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_10/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_7/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_23/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_13/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_24/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_3/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_14/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1909, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_3/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 87, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_3/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_25/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 1905, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_12/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 40, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_1/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 2549, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_27/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_13/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_28/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_29/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_15/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_30/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_4/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 4817, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_16/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 48, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_4/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_4/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_31/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_15/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_14/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 36, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_8/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_11/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_33/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_17/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_18/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_4/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_4/node_cat_7", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_34/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_17/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_15/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 36, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_9/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_12/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_35/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_19/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_20/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 397, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_5/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_5/node_cat_8", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_36/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 143, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_18/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_18/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_37/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 79, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_19/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 311, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_2/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_16/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_10/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 1933, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_13/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 33, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_17/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_15/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_11/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_38/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_20/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_39/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 1563, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_5/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 71, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_21/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_5/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 1474, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_5/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_40/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 1913, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_19/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_2/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_42/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_20/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_43/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_44/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_22/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 4566, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_45/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 36, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_6/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_23/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_6/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_6/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_46/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_22/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_21/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_12/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_16/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_48/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 40, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_24/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_25/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_6/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_6/node_cat_9", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_49/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_24/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_22/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_13/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_17/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_50/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 261, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_26/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_27/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_7/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 69, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_7/node_cat_10", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 33, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_51/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_25/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_25/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 239, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_52/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_26/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_3/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 1232, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_23/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_14/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_18/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_24/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_20/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_15/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_53/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 1434, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_27/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 70, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_54/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_7/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 1212, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_28/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_7/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 1550, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_7/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_55/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_26/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_3/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_57/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_27/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_58/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 4172, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_59/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_29/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_60/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_8/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_30/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 19, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_8/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_8/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_61/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_29/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_28/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_16/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_21/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_63/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_31/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_32/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_8/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_8/node_cat_11", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_64/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_31/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_29/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_17/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 281, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_22/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_65/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_33/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 78, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_34/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_9/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_9/node_cat_12", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_66/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 248, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_32/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_32/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_67/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 1259, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_33/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_4/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_30/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_18/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_23/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_31/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_25/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 1441, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_19/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 69, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_68/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_34/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1410, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_69/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_9/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 1211, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_35/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_9/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_9/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_70/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_33/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_4/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_72/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 3528, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_34/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_73/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_74/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_36/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_75/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_10/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_37/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 3, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_10/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_10/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_76/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_36/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 36, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_35/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_20/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_26/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_78/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 19, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_38/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_39/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 4, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_10/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_10/node_cat_13", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_79/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 19, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_38/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 264, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_36/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_21/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_27/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 73, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_80/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_40/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_41/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_11/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 240, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_11/node_cat_14", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_81/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_39/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1202, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_39/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_82/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_40/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_5/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_37/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_22/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_28/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 1168, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_38/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 55, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_30/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_23/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 1181, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_83/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_41/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1173, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_84/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_11/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_42/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_11/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_11/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_85/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_40/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 3494, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_5/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_87/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_41/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_88/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_89/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_43/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_90/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 4, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_12/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_44/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_12/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_12/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_91/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_43/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_42/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_24/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_31/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_93/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 3, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_45/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_46/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_12/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_12/node_cat_15", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 264, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_94/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_45/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 19, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_43/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 70, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_25/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_32/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_95/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_47/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 240, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_48/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_13/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_13/node_cat_16", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 1229, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_96/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_46/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_46/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_97/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_47/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_6/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_44/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 1169, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_26/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 54, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_33/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_45/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 1164, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_35/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_27/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 1181, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_98/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_48/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_99/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_13/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_49/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_13/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_13/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 3474, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_100/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_47/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_6/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_102/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_48/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_103/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_104/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 3, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_50/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_105/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_14/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_51/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_14/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_14/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_106/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_50/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_49/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_28/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_36/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_108/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_52/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_53/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 263, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_14/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_14/node_cat_17", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_109/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 78, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_52/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_50/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_29/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_37/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_110/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_54/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_55/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_15/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_15/node_cat_18", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_111/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_53/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_53/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_112/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_54/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_7/Softmax", + "type": "SOFTMAX", + "compute_unit": "GPU", + "execution_time": 92, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_51/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_30/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_38/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_52/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "GPU", + "execution_time": 116, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_40/transpose", + "type": "TRANSPOSE", + "compute_unit": "GPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_31/Reshape", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_113/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 538, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_55/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_114/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_15/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 49, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_56/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_15/Sqrt", + "type": "SQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_15/Reciprocal", + "type": "DIV", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_115/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_54/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 513, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_7/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "GPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_117/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_55/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 521, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_118/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_119/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 529, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_57/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_120/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_16/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 49, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_58/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_16/Sqrt", + "type": "SQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_16/Reciprocal", + "type": "DIV", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_121/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_59/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 509, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 1944, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_1/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 44, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_1/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_1/depthwise", + "type": "DEPTHWISE_CONV_2D", + "compute_unit": "GPU", + "execution_time": 61, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_1/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_17/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.squared_difference/SquaredDifference", + "type": "SQUARED_DIFFERENCE", + "compute_unit": "GPU", + "execution_time": 40, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_18/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.rsqrt/Rsqrt", + "type": "RSQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_123/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_124/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 94, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_125/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 93, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.subtract/Sub", + "type": "SUB", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add_1/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_62/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 8255, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.gelu/Gelu/Erfc", + "type": "GELU", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_63/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 9218, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_64/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_1/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_1/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 3825, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_1/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_2/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 97, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_2/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_2/depthwise", + "type": "DEPTHWISE_CONV_2D", + "compute_unit": "GPU", + "execution_time": 139, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_2/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_19/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 83, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.squared_difference_1/SquaredDifference", + "type": "SQUARED_DIFFERENCE", + "compute_unit": "GPU", + "execution_time": 90, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_20/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 85, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add_2/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.rsqrt_1/Rsqrt", + "type": "RSQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_126/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_127/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 198, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_128/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 164, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.subtract_1/Sub", + "type": "SUB", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add_3/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_67/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 15366, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.gelu_1/Gelu/Erfc", + "type": "GELU", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_68/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 17182, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_69/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_3/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 88, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_1/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_1/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 45539, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_1/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_129/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 141, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_130/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_131/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_71/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_2/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_2/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 437731, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_2/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_56/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 647, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_132/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 674, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_1/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_133/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_134/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_73/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_4/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 681, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_2/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_2/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 106977, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_2/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_135/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 649, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_2/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_136/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_137/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_75/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_3/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_3/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 15502, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_3/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_77/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_138/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 649, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_3/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_139/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_140/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_78/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_5/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 679, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_4/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_4/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 106849, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_4/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_141/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 644, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_4/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_142/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_143/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_80/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_5/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_5/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 15545, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_5/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_82/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_144/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 652, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_5/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_145/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_146/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_83/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_6/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 738, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_6/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_6/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 106946, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_6/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_147/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 649, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_6/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_148/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_149/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_85/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_7/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_7/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 15569, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_7/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_87/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_150/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 648, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_7/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_151/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_152/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_88/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_3/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_3/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 298568, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_3/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_57/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 1657, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_153/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1682, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_8/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_154/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_155/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_90/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_7/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 1726, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_8/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_8/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 133195, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_8/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_156/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1665, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_9/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_157/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_158/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_92/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_9/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_9/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 19572, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_9/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_94/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_159/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1659, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_10/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_160/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_161/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_95/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_8/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 1688, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_10/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_10/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 132690, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_10/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_162/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1650, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_11/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_163/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_164/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_97/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_11/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_11/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 19664, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_11/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_99/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_165/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1678, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_12/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_166/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_167/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_100/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_9/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 1722, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_12/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_12/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 133524, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_12/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_168/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1662, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_13/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_169/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_170/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_102/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_13/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_13/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 19562, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_13/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_104/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_171/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1660, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_14/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_172/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_173/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_105/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_4/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_4/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 147899, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_4/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_58/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 3345, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_174/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3414, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_15/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_175/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_176/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_107/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_10/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 3389, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_14/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_14/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 149240, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_14/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_177/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3351, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_16/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_178/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_179/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_109/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_15/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_15/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 20873, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_15/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_111/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_180/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3342, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_17/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_181/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_182/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_112/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_11/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 3371, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_16/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_16/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 149325, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_16/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_183/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3378, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_18/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_184/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_185/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_114/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_17/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_17/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 21070, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_17/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_116/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_186/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3354, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_19/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_187/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_188/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_117/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_12/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 3380, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_18/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_18/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 149779, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_18/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_189/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3348, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_20/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_190/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_191/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_119/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_19/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_19/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 20854, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_19/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_121/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_192/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3344, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_21/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_193/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_194/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_122/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_5/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_5/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 77897, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_5/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_59/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 5024, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_195/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5026, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_22/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_196/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_197/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_124/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_13/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5042, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_20/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_20/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 110806, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_20/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_198/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5029, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_23/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_199/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_200/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_126/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_21/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_21/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 16828, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_21/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_128/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_201/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5038, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_24/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_202/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_203/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_129/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_14/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5099, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_22/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_22/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 111232, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_22/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_204/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5025, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_25/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_205/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_206/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_131/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_23/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_23/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 16813, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_23/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_133/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_207/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5011, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_26/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_208/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_209/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_134/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_15/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5065, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_24/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_24/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 110635, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_24/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_210/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5026, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_27/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_211/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_212/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_136/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_25/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_25/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 16848, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_25/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_138/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_213/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5032, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_28/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_214/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_215/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_139/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_16/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5032, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_26/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_26/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 2517, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_41/transpose", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 140, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_60/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 93, + "execution_cycles": 0 + }, + { + "name": "output_0", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 190, + "execution_cycles": 0 + } + ] + } +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/inference_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/inference_submission.json new file mode 100644 index 000000000..810a22d26 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/inference_submission.json @@ -0,0 +1,14 @@ +{ + "timestamp_utc": "2026-09-23T22:21:06.218268+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_compile_job_id": "j5mmy28w5", + "target_model_id": "mn0wyzd3q", + "input_dataset_id": "d7m80jl32", + "device": "Dragonwing RB3 Gen 2 Vision Kit", + "options": "--compute_unit gpu", + "kind": "inference", + "status": "SUBMITTED", + "job_id": "jg9zmkv8p", + "url": "https://workbench.aihub.qualcomm.com/jobs/jg9zmkv8p/" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_submission.json new file mode 100644 index 000000000..bb8f191f8 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_submission.json @@ -0,0 +1,14 @@ +{ + "timestamp_utc": "2026-09-23T22:21:07.854394+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_compile_job_id": "j5mmy28w5", + "target_model_id": "mn0wyzd3q", + "input_dataset_id": null, + "device": "Dragonwing RB3 Gen 2 Vision Kit", + "options": "--compute_unit gpu", + "kind": "profile", + "status": "SUBMITTED", + "job_id": "jp1nj707g", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp1nj707g/" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_cpu_comparison.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_cpu_comparison.json new file mode 100644 index 000000000..4ffa7c61f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_cpu_comparison.json @@ -0,0 +1,16 @@ +{ + "scope": "historical S25 TFLite GPU inference on same retained vocoder fixture; component comparison only", + "source_model_id": "mqyer339n", + "source_cpu_onnxruntime_version": "1.29.0", + "s25_inference_job_id": "jpx428ojg", + "input_dataset_id": "d7m80jl32", + "status": "component_waveform_quality_unqualified", + "cpu_source_vs_s25_gpu": { + "relative_l2": 0.04238531411741596, + "snr_db": 27.455691878796923, + "max_abs": 0.10591871291399002, + "cosine": 0.9991021814913129, + "reference_rms": 0.08373439205485074, + "output_rms": 0.08376787228276501 + } +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_inference.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_inference.json new file mode 100644 index 000000000..c9c1efb53 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_inference.json @@ -0,0 +1,32 @@ +{ + "retrieved_utc": "2026-09-23T22:23:04.763805+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jpx428ojg", + "url": "https://workbench.aihub.qualcomm.com/jobs/jpx428ojg/", + "status": "SUCCESS", + "status_message": "", + "model_id": "mng7kwxon", + "input_dataset_id": "d7m80jl32", + "device": { + "name": "Samsung Galaxy S25", + "os": "15", + "attributes": [ + "os:android", + "framework:tflite", + "framework:onnx", + "abi:aarch64-android", + "vendor:samsung", + "format:phone", + "chipset:qualcomm-snapdragon-8-elite-for-galaxy", + "chipset:sm8750-ac", + "hexagon:v79", + "soc-model:69", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "options": "--compute_unit gpu", + "hub_version": "aihub-2026.08.28.1" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_output.npz b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/s25_reference_output.npz new file mode 100644 index 0000000000000000000000000000000000000000..c739e54593f7924ff713bc24a9b4a1f4fbf3dd7d GIT binary patch literal 115235 zcmXV%byO4X_s8jm2}mdFBmMsYkliHn^!M}f z_X9lyfgVbEcme}w-E+2};WV=VK znLcqa-hG=j8;Yh*{7CmvOl^6(QqEq^p@m0}$@ZKOTpXO0iIzYo{ zcY)9E;C^f>WGI!kAcz|kM(h59sd~w+epGR}j2lECU0U_dE;sfiQm z+VJ}}3k?0Ws(%3abY2duzZVpRcEl=R7vN>^N4cVhszWLLO)2NM;Tlh#5PR_?W51G`JrJw;&?+?f<=gQ)Z>C;rind_NF|tD zdB{JEL49kU*1PE&3i!*B~9(yClzscVNxQk9D zK-f0>SSO2~klZM>1colHi!T2=y?ZSxZ~OUF0eAGoVy#;3_;XyKP&I0XYUWGApXDe% zTmiu&Ob5eY6I(9x3G|S^GQEkv;r)QS%4$czQE06ohIt(;8|*n~H&NKY5fRu$Y5M@^ z#DsE6fC>WEK@XRE{rd8b0ZM6#v1nIZVRrvAJKzK#qZyw^S0ggcT4px$$Glfx%e7h* zXo}<5)w}_D!tdpU`Po6COvlZTP=2U@bEmSaxoyuK@dR$ZWnaDn z=EJcD<)N;v+}bVP4kdHttqt~;6SCA@rDPn1Cg&+Mva+8^$W&9Vwi+e~wD;VMdJKi_ z<7|t5iK8~;!Uj>v?Uk$^?LD)`_>P#MX!RxXJ*LYrZkJEVA}}s|z-lO635@oIxu?#a z)BukjxqY}h*Z>WU|nqA1t|SnZCzBI{EHmL4(kM z?-3h&%}VoJ6q4dZ3@VH=XN89=uT)UVg~w&6rDC_ApWnb*(^+RsjovStunjihs0e!^ zr5YP#_$Mz60MhB}=mP%eQoQ@+tpZ;^u96)V!xu_PK%$*^CXhQWl?@ zuzk_{8DTQ!r^N0fFtWI)q*t`-1QR^lb#jubnAr=FXP%3xp18Xy{p7ab`w$*| zo5+voOnh~C|7dwI45y!+UL?0YpE{G;(1-=sk5u>sL!hxO1L~4ME4PE#jYA#25$W#s z2dxv1PT@Yn_|f?dCy3>i4K7Zlg8@!7z@x;PGlH+F{GU0IeS$u*iff-{b*_0G86BrTzttR~t#0vt)Bk-N^Pp>($Z}K^-rdpZ z-T(!_N6B}ZAJb58B!(8E$V4p@?rCBNB}FzC1nUnR9HzQ5T8c30Zw%M6g!WDD02#8$ zj5b2KH~Wtl-jkvFZe%hhlEQJ?ox|}7yQ)fBt~LrA1Ob{XluNg*PQ8pjDhkKM&+2joiq1{90cXHuop|kvs5*Wc?lCG(n z_N7#(BSA4uwv>(s;W_&RmKg-nAtu3&uds<44&y13kMPKFGMps0++{1}u?xb*bNALR zVCUk-vCPV~%xZV1*$PAyrS@E(xv>W*m@#qHrr@BAB_VkD_6?`YMk6KpguN@IEf*J1MtTgNx#O;WyiUHl1o-_yecF6vtjU<1WwX0S z2!2L8Rx)C=r^RyXY?Ee^Wvz`z@OQKo*?i;5VQT%6*&dG48dOqPVQ^K5?ym>SQo|#i zzQZ)0}g-x(v>U2)MQ(Q~fMQR|0a=4dQ*5;zX{(T{sl*+D#(Z1FU`v&=CU zL-5NT9*7g;xh){RnEOso%Oq&)Csg^$In{^!)=kvgBU$LW{amxS>S{W{n4chfq7jS{ z8de;^*9nMe(q48#}VVAtM|{tL+(D*hqa zsz)ZDD<`TiKY&zfC*6uc;E-_R2w6zA5grq3gOJZP?fDZTawp&pxE>3pP&Ngf^_9>hd^D z?&f}4)8q26;-j?IPyWud`G-&h8}a6`a3aCL?@OD+RlMV<(G(pd;1-dyW+~4<1t)=T zx9koF@wRX6#s`h*(uxv;eYbSuk9;fNExs)Bb1XJyM8C#q0`&{}5nH$B_#dw4gci`5 z|JYmd%tmTXmm%Er=hdQ?A{uj`8*$y(OM}Z%!z}EAQzt_Yt+{`}cq@XSMQ|_XI)RsN z0CtCwA{y_?B3VSo{U#}n^;0!Zc)uzQJXddkJ1u1ykB)8!}y zxkJ>LZxdfA;k4P95Ms@1=_yRCD*@fP=ERf7LJyAf*0FP(iXbz+kQ5YQoRB2RUmM#! zyrEh1o&?b%?tIfiF@^L!arzJsl4RPp0 zI>UK-9J`0_pF@ONIM0h{n|grCaANSpA5#o&%>~i1^qbtOlE{ zGKWqFiGfTZmEf@;%2nge0+nR&8`IzuC~&p?y(;7ll?3n`yp>_9u1J*h5Z_h*L-~1= z`u(d3Y~1FFuz;J-`5__yM-jxL+G=xyviw}c5&lcLj2M9)yu#=^NADXbx5Ur)gq$s#nnfEXeTC+;o6l@)3zd-i4rL^Cxd z1uTfqiZ-Sy6cTq|3gFlBL9oW}ljg1rn>eG3wVeYYE?mDI?H^SPB4mhe^4MvV9E>&& zp?ueTcR3zK^KN-6BneB68#^?#lDcZE&XljBJS$t&i^3&WL(idKi{sGVW^hV`QM9dI%ZrIs$le#7tjpGk*F? z#Fs;D;!gb#el9kV%h3vPm-cPwN=@%~fF1D%T;i6@oePaSrb9Jiu>~%4d_-xuu)|Ts z_1&TmU^_RBEB7YqrS+Fqe7EPJzDtF$%kFR6xf13ZPCRaFYa*ByV~EV|?9>+7(0^nb z)rToz08KhAky~zd$v@?$!nsnv66=$nJ>?vRFMmb_4&z6q1{MlZSNGXbcNS`{Urt&g z$k*w3!bg8eDrFo#&pYfpLnxTuIAU_6QvX2rd(;$`T>%Nkc%4HXo{70otH~$9SQLv$()-O)UbyIF%#vvI<{YK!_;^>;_JR z9?u$uE&oX0L0|gSxUybaa;)(e024#tt2mJ zXdG>V0`CDu);E}sQDP)DJZ60zzj63{$yGTCg&KA3+xFL{4!M$)zeT-sdm3-`N~&hJHa3$#lRxCz8k8gP}_569s7I?-i71)pu2O z$EA7LL2(yvw|ntz#-GhQm?e10$6QqT|}OnW;Jc8u3-s#S;2H1@$=O9?|3unK`*>>iO26k;?IuiZJ^x zsVd|I)3PP}3MSZ?e_O}iD!uO|!A(_Sh_IC7B{WIHUZ^963aaYO5tR~kmm`B5W6=&5 zOU=T&R*ts#cvNvT!G*nPWS{TzygERhA5;5%bYD9F($`=36qmLIXvkrPm~Sfx$^oZ( z8z|+G^5_cr^2QtE?FOeUxtH_IgZuCG->xqWqe(YN_D?MH(luTCh7^S%X8xl`FIN09 zKS$NKP?Tdds8>mG$Jc8*FW27>w6`C zshWb@o!!7>BKgalSq{?^g6B`q#tZNfgT=#i_$K*iKKAT zL0`p&Tq9+vtD*U1i5fvTj-Cg#)^BkDjz@_K6n9?KV^ubxEAW_RgMQIt>|f04M#X2w zZ>HCBzq!~y4x4|wbixWWz_+f)fK`NM(up)L#Jr5ZlKA^&z4SZyII#6Ea8ERYD0X%J z95#sVITm09|6mjNnUeh1-T6;5p;i$OT&>&#O2CT$UKgB)9QUhVC-*n|QaV@YpD(0K zRGQ!tAb42Sv0$nQ3?q0rLUHS=>b)@YkD%!OpG7OLQZ{x;sTzszxVMY#J zpo;&5wZ9k%ZRZzg?c`#zsq^HaIcYnW!)xRhUO-H*tM@YYuq9rLs6K?Sr?U8li+6buX zaM5q=MFvMT548hO}1?nJO`_eFT!wyz!`M!7ki=g8d z+7QaH#q!|8FFnmkl)f6;em4qSkj&%3(UIrLz3gATDg}F_1FxP{m+X-)Dmq5x+$r5H z`bu{4`|l@`+i$way|*D(KfL{yxR$H_YQ7n;zXjw%v>;|ZjF)RW?`RPKiR!-hbPOwq z=ZE+8`S|m{oL7|uT5Fut?6FjCYWPRjy7!?zN{mnk+(9a$9?x%Nt@YRNSb(Bf?RV?N_B zwQ|6wMuW{S)G{5+og-}_nYS&uW;MMfCo)TS?Tigi-fa_`E8JpRVa9?Dg5qZsIXC@> zT6UVCuGrR&g9R>x@CEZ=$X0r8gEU*4Q-MdyoL)fWjB4Xiu+(OMsgg%U(%@WqgZp=T zCe^JNy>$$;5y;Od^pA1Gpam^H8#%iEH5?}06;PCcTzD7gvV>HBvK$>X?vMw>GsokZ z^E!eOy~yDw?hP}=XIGWs6?L9#HKNA*2N}{e!s?l-dl6N2#-2}3=B05Q`Lr92{_&#% z`eaU+D>0p_ukFwOp4sDx%6nxVS8Ru_qiY2}G*1=WouOWwcw7MCh`*fB796%T)Zf`0 z2gQW(?c!9UFYgo??+dQjXaPi*5|WyH=>VYonFQWL7l4-Q=9c)W4`59|LFB3zmDS&O zz`*1-a&?a+?-;rXaHE@OFPPaf;K{h49ofwR2K2YqY$}+ zZ1+#$QWDL&<63ZvtFfxrHuZW(YIFIMv6fsU$s&$=X~(t^T{Swlp(|`|(|Pzyy={U+ z8}8DL(uHX{sqayfgJqT|wEY1()R|fBy(awv@{2yhTxx>peKii7+X5r!CC--Wpgg~L zl{S%yd-$Yoe4kT89#Vv)h{t0C3-!+1qty|r=lz&NQQbO$79O8s+gpDHgQfZTb{k{s9nT22+nralUWDRD;$Oh}SXXM< zg81u{ht&qtem^XdOd-aTZe3I!IaR%mJk$ye%jCW|S!-B+S)DR&;Br{?h}H#QcAcE3 z9Yh=U8?Z%$gw(OERx{%C-&}QN&`z&o`M}(AqPi^C)xhV zpPA>`<;zQ0`q)klXTD>dh22-!^tZrfb7f|K8BS|}zXOw zy^cNlVHg^9O^Gke2ulLGYZXj|Q##YCkB9~*&NSQz5Oo(h?$5f%cdH1LHa;!`IY+2& z(fXsv7s;%xoIW`@U%Z lQ9n5-N>onwzcoUSU@6ElwsdIj-i6RzIB+UOBrJY+l)~ zRP7`+Eoa(!Y_aEIw`lw2pRys8oLl=@EL6Y#IEx&asu`;cSN6K_+L$ngpzpmm zJ+&&5JFhHO3?`2%1mff1gPy~Ux9hztk9DmQm*9VU(m#Tx-+!vNyfyyHtXeP3Jkq{~ z0cPBL)BeGZ>RQ$-qs5N5>bQBnZ#8Q8=C23JdwEYZ%wO~$SK-d1te*9YVce)pFS((` z0+i)MuhG8+sj~8;xfh1kANqZJJvj=0G zE&$GfpJ!h-S&%Ck4eP{Y$~QCYDb|E9c+K19oF1*gM?4|2C{!w1e_ojX)rX26-^%BX ztjDNgYTsdI>Wi_mrC7IOmU_TpzV>fsyQ@t3nxWX7h4uUO(hcFsLpFmXnoXWgf3qD~ zirut4k9!Hj1=~_TQ3Q99y4n+pS!R)UC049WX+O zI}2wyiu}NY^@#n5n%+o5W3kNJ@C2D$2Gc+hqTR+Q7W1KERA6;;tlJ1zh-SoHrzx6$ zEnH3z@GSu|zJ`3SMPrQdzwX-;=-`3j+LEeF(&@G)gRKs26wlq`@5CTEMCK>!N3A)lH+zw>zh@!mnIcn5vfc z5I?V81f^hnAXc&MaNUJOF{q%IkbfBYVU|FQ@e`scvZD3w$>6g7wJ_o;bS=ToTN5?# z;6e!;N^ei1Z13RtEd!D`6}S3+;jsfGvkoXuI_shgHg9J!)}%H)wOjl^C@A?$Hou%L zYx*bBsdIahCw}F`X@FFEO6}h9Sou~6fjTUOC*Z+D9#8d)sikzy-P>aEK zKhf2^R6F6le=Smg-^g37?RNI0+?gBVuF-{>lJiHvHKT2bD`)NzXIWoFpJWlB562sQ zeCNS*uPJkD$P(^e3pMpR57`>dZ5N}S8X7M;f0sdN2bx}f#;{#VAdnc_ut^(7<4cHU zgFf*Zv>&Q#@B_L8%km%&`CUvsWmEm&i<*8e)MQ?1+{8W;Il zQB9rT3BsC2c^K#DC)~=!-D}q(@b2N`uJd)Tgij}em&Ov%3M0MJt0m~~R}$FKk^-ym z>mknLL36t*qxnylY$AM1zVCD}p9Nh8a36Ds#TzN?@HR8Nn|OJSh`FbB7@8p0zMI!s zt8uzSu4?niEyw6JTz+?)&EiJtS60Y5X!2Uj3rM@8$OH-xd5{5Tx&-U+@jO(DF&pPc zgh&qQ#``d|&+G1=uS`i@$o;9L_UYy`ZV9{xpi4Div2ZvdtGP82$3Jaj7%F*+)^H|B zc{?AP!~!dIk*w2UeD4Ix7pF4pfkWlqR}+2l8=*xQrJ(?7qT>ca$*#Yh zZs7VVuQo?3h~n4nAi+>@@uC7E3%DRIR$2?pZD4*GsJj*s4pYK_Z=y@%tNxX~A;apQ z#;Qc7i-$2gkK>QzM@U#tujtrA56rRAj(Q|Qdw;x>&kEs39eX@|a@(DSYMXw=8c+Zz z4Ri4D7V!sD6_|fbS~fIRiNSLG$ukHoY&m&I5Vbm$4GN+6Lwy$u<3B|Tteu8FyCh%tWp$G7lfg0%#q$hK5GE8J(OcxoA7In6dioJlN~iw9UWD`; z5HEyE^;5cQSasS)jjm^Z^h!8Of_N%K+Am@(spSn9#mG_}tL1V=aLc1=?!GxD@|ARi z(1IA`UT{AJSZ()J-=CkB2Ir3n{CIEb(;RL1GMVO%{do+`TsJScr@uR^pd`nw`=6QJ zs=BDh7g>B5ykaFcGW$;(8t2Vg)Ly>&yRv@!4b-`vZ?mTS2%b&4cxbXPRkOa*%~wYN zfXKH`u9`E_ZHaLK9+a0U0yaln2KNfR2ziqS5XIPh`ua%t>3Qu=>Ffw8IB;XsN+2IrPxz=RcdsxK!Ed)GM z#*Nm-vRIb~=i$3S;U`IPnnM=0qKy|620n{3N@enozf~mJ)uMT5SaI>;y1r7@n|g1j zm)rfRh7}t$zpi7onP=6)!9ZOg*A5*k{mm1o8l!R)no=aYskz}EZ32?XtWQZsc6C#x z4k|hD`|Br65I}#W)zB__q3s4dEX0RbBSAj^+Xj#D?)TP1SXz2VxfbpMkI7 zTIlD6F7t71tBFf`NI#22>KW%88?cP|w9HZK#0v_;MNb7kIL9N8=8FW+dgWx z#$YLBTLb*bN1;l}rnj{K*rCOUc9wrMh_dxhAmlbd=`#+9;Dq=^?sj`!0>iJ5Ov6^# zkb_u>WqN_6ub`>k3dCSBNJAv>H9DLjX3f*E%{4@I5AyWB3L-gu)E(iAcBhU`I zxEY!k^2?OBRqAFBQnW|EJ}*KXs5Q|fxO+d4nh2!`cOu-p3>ET0OE@PG-(bG~F`PZo zuuQMcKsj~wLyYn$zqy{cnf4a`1=`zla5aeV-7<+Xt>s%suc=K!%92c`;pdYZdCI3w zGIy`Cdo$Wu?p)pD{fVcCIQeJz_2@cgr^7@TLdZ%9Ixc!9a5zOpqp2ee_&0A66{h zXzedQ8IZeTC!(LA5Oy>?U9O26DnVTE#{|37{&P;}Gm+qxLAJuvuuKsR^PwayWHhp5 z95UUQb#P?Kjf{7ex_!RmBs7Q`(tWyqus0T#chP?utc<#3L9WpKT{Yj?PZtK7; z^Fw&mCGgpsT-f^Wv^hJ=6tE#!Ot9e916!C*ja%$vFokFlH)`@)uPu?RN$U};4Y(tM zNlvrdVN=S2EosA(KE&uo_)l2OYH{Wbtg3z9f8Jm9`PAl#iAf1yTm}#r0ker#L*WdC z!B!7z2$WH{TC5}!%yX7O^-Ja214NyDX4ckS2(oo#{Uzy<>upbV{fquQ93%(hi^(&Z zZBxMe)>;YU;SseGEGwbcxjlCXm z&6F1tg3OxQtL0SuNNiBOo6A9nPGs2ID0bNg zf6O*7PFV}%DKkYDMppH6NU0EgTjYbsJUGb})ZF+F80Bdr0`Uf!3n0V&Mbjjo{|%uC zvm9u5gz4k$2N231Rl>t|Q$rzU&J9BHY7Ds#vnYKR3^}!x0Pd1LlW)vE@1O9f?n81HA9;u-MMI`m?GFC@ z`qg^mujaorX6>eHQ6=rBr+RJjs7P%q;JX6~c$J}TUKnzg>5!8QL^k`#o7ewO z5v2F4LDp5{H+Ism*X-)qaDI}?Lnk4yDEvEt6AY=khu>j|jp?VviFkNz4VL--B5E`} z4`vApECK9beD>Q#p1n1{?RNgcb*EBswMfnuF$Q5O#Oadf)jiVBTlf($E^?~fH0qPk z=#^FIHgui{N>U%`{pIOeH$KGd!UdTkoNqJelkt>Md0r`>cAL;AH{EM%eT2Hn_Z46O zV!Ui8=bz1vIDRNp!ndC72A!X}ZQGLIGp;SIn~U?M!_SZ-)w<{}=g?x}Q1)d&=yUX^ z6mBUM>e|Z?iyz7S3nWsLoNbv!$89q7mpL$@ zDd;9z_ri&^Q?C?2IO>^1X0lP<{;SE``aj7P|JnlT7#0@Z7j5KhH8ekWhQPD7zYwA@ zB3Q0DM<_MmH0f{zjd`b%?VS#dk-WXUqBN&IB_^k{FWb;|(-K^&KvD$|-2-c-m zfuhMS&i(aD7T2t&u<~3L)-r#AhR}E&M|fZ=DBb$sRiZ~_dnPx~-NaSRG8v=q0IzKS zmNqkAI@4cE%LMz-_5re5G3(x`?HYu84Y6_<<_PX+52DPO;kTkeNpm*TC}QhwvBCYkuWV=M#j<-)I@^hrOMmbes}UY zH4f*d;LN-xQPgbeD_65|r>hB*fphzblC-Vr?k#E6@cL6KtchZcL)+sfi;a+4C705= zrB^zdLItwvL8fa1V5q!$yW$C}#@YtsT43nG`wK>&K#of@T|S=4tV3r2sduHGQxZ|m zuDbQ#jyUSfr|(20$ohJymh6;y_Kr3oPTKw`TEA%JA{c>o+vRv;zm{90wBfHlc;iA% z@%uTm#~qUKTJqD$UTow$K(>>Ml{%dg05n)TAYBwa;gvuId;K-f2HdQCf4;a|5b0JZ- zIM?C}W?m*a@{Waz%s${;C-@1~*b^O4iGq3yiZyU8kX*ItXx9R$^D+6(GP~yM zO)-d_+7h}JDs+eGr;JXx?qI|JKJ zzMXK*-^zy8w>5|ev^@+)FMO#SV(x0w)m_%jV;Z;7BD}>Naq0w(LjXtfHKjF>ti9{f zODPg4^jn@2>2DYn$uBl@DALw%k;0>!*3UVUHX=G?$i*t zg5g=bv-4FBfRIgE4>VO)_y#irf9%Q1jD2-s@2lxv)J2thp;wv0>Nh zq=l?m3AN9<{J{;m6up^anEXZGUr+xWd5jt5IHksKHjYK1Hq~eHonScwe<~k03q!wGuj*r1MDkX->A(!>S?~?P#C&fgm&Ji+?oBOJa$k0 zKPRWo!y*wkyA1@{<~AFDZ1qp_OkEKhs%6@@paZ5AwU)<--!_J6RjLG(%%xj76@+q9WmpM@2K2xa;L@Eqv3+vhvW7r`ZwI;RKe0HNe-cy~2ri_nyk{+^v zo*$_=-vx%Y3l``<@Y{;2l@+BpV|FP*{M1nc-4#H(KXGz2g3epVfdR!rB_;bbw#|3O z{l^={8!SudflmCRKf04EyRZ8%+BkvSW%UE2BE=P-94||KHN?Bb_jT*5c0^Ae=IbfT zP0g&)au%_I$aCK$?-;$zP>(Wsm)s5$3Udl|((q8aml$MOGkr_2>TD&s|8a0t6}RDR zVTh+zz;ZM}n^bn9SurK;@Df}iIQJhXzeKM&;-PGjpjjQT&ty3UYRLF8B3ZU}vH2_g?up>XuA79)@40 zS}XzKQhf%#2FbizAh$1G5=iKOgnJ`{3oILD?lib$fQgZWiL61Pv>Upb^RY8_Y@7U% zO|$gZTz^nF#fHCem;TE}PLkx!tcb|ts8{^F-LZ&x*{$HUgi^CP{mxkLQ!SZfG+)Ha ztQAqj7T@WW${!AFu;N6|O051t&|&QBo%fjJ4>N|s+kTwSe6!S7N5CR-1uC6-3EeyT zp^kmx1rXg;!>M21E zhi2K^)ep1UF_KY4gsgz&8*+z&Mq^MKzZl$6MdP!5g9x6&V>wxL8&Z~^y6J6;h`R>^ zQ~8o$RG71UBiMFY-4JqEkUu&r*R!D-d)qDhrIv?aAVhcMmN#M|n^ za>g>SSE%U=S-+51+c_oUl`RmW$gL7WOz_V8dJW4XqaCtC`bo#G=82pq*eKhVbI0VH zR>dgb3Z8e}i>g75R*e>>XH8Y8K!2n{hCU zZD<6_9lx04!g$StfJ^RHUQ$8(x<3{@g^r0Pu}GyDI#S?&<*ffB>zR1dFP@Hcl?gGb zKRZg_G>@uyhYH;kK&6e1*3?>ED{7Y#n3{6IXGC#g@TfrI$#9lu{jCaB}SvDSUgKR#psJ^*YXmCqS4-DLtmN@YnUH@h$2Is? zPMt#gV0*xTT{od#HBUU$N9{6%%6r0(1|?X;cYniv1=^P7C!(aAv6Phf&yoh$`4)d~ z`7A$3PDu6Pb{SxZ9Z^7xnQ9j%(n|Y9>(k7YsP0qeQ+2Wnt8?`V&EAKY{6nX$|5zaO zT&CneoEYapf^@H@5M9a37TEc@W!kdXqxkLO(L;ni#d<^RSPiQ_AY<}5@&=q%%QQ-9 zfJ6_6(%*p_Zs_32y#3lgo7`q5FfQ-NlV+Z+gJJ^~CbRZSijHm+>woh1(~AZo$#apk z|0LhZHMRGLb?p)h!!8}`530Vh4?){LobIZadJE!BhV})?TU9n(Yk80L9QvO(#Jbym z6%}6zU=5%5#xcAA`fipsrNMQoEzHYOI+(#3;BK3Y|U-gHke9zvp-}VdE4sqZm zoLiW4&l#e0ibP%F1J(o^8Y#SwC+~LnQc5%1LB{%NY$9rjY>T%~Y|@m!OBLM@VzYd_ z1h7t9rjX1OLIeH#6ppXp^A%3OLwb@8)uMrb0OhjKwYVTLGwHtCX4|cj@EVLHm;}xe zoZHj==t-Wah`fB(MEeCp1na|723{o9MkjM@x9xVujJb5W@Y{}k4Y zJ{|wQT?_W;P%peRk1WiZf`l$9Me$d5>$b_joOJqcVKTp* z24}>uHMpaO?ask<3_?Hj-5G+3=RO0*%q^_x`6qHbuXoB(ObovYPbS4|g?B92^v=)N zFtCvNZ+arzQN3&xZ-WnGR~R`?TQidQwjy;~ePz*2jXJ2hGxI?TwAW~|`rfn#1vWZP z#Zx^-m1XVf&06eC#g(2n@4xn97r10_2UR`|O7Y~|OX;{*NFz{x>sf!G2C9y=B&_FL zzLE`^+u}_@(EQI+XJ<*;`Qo)1P#31!U>OhbU}6%qO&3ILzvU%n7Q`g8tq6}w`ns{v4J7sxwo4a@Fyr#78VobDuFdBeL|w{auhXxEjZ+=<1lu^J ziN1uA0d8kyR*><z84$b>en2Oh3L|$vsJ#ad#K$aihjYtEsJ$=1&MM2@fRLKkcC1*Y?`Mkej5`ehq}Nfn#g);Awf7> zR#k0)p>t-e6m()ane6!OJLh5R``P_0t&evOb50;Pjs-WW9DZROd5haT(}w*AO~v*8 zehvNO{n$BBt-+a6663oF!OVZR0Q3$&(e>!Fu$aja$L2=aEvxPld7WwBw7ERS5CTTdkh-qZg6T)*E|O1WoS#reGL;pL~b&uaiS6h>3V40#R6{UinSw z;*QNvEG^lj%+PR`fiXX%v&9A0dYel3!K~dr$sjC3h;DnO$*i|qNqcOGI!Zf}jJMs$ zjmgXzjbpH*>P;92t$@t%g?q7f_SpEs%40Qx_0LDkpswAQeVgQa)0fAs{=2|m!~la< z&>PJU`ZF<7h(DeBZE_zeC2m&E z{EKGOc967v=d?Fq@@g?z2g!nX4|NWcA=;}`gh?XH#|Jcpf@@5!>uCclPY0r1DjarG_~hd>AQ3pJtyrN)k|L)1OpJw))dV@dzbn& zK1|NIedflaA{zsNQh(l^!N3;gWB)j)HZ&(M!1IqkIS~-MJRN529@6~;J&FsL;HB9) z0*6A7q`+`ah;qYhQd3E7wCR$6)VNtc@(cS}puL2%&}l`7YM;TSC;L+KJ=l9+Rb4Lr z5+>Q->Zw?4w}`a7_sdJ=v}+)RMp3xws|cX06JE5?cL$`D=6M=(RFDzM3NHgL{bl4z z3!syqUXt`{KYGOxwV7mr8dMa==#I7q|NNuYT3_%kC)VSf{qp2KYM`C$y7%Q|$0;pH zak)1Liprn4u{Js@>$^X7nKD)wWhLIXTgU^0&(-{WR7I~*8kTnHr#Q8i>?-+Sz_hP< z3RdM7u;l$xsUJq|arkf7 z@%{Ne23|*c+J2Gt*As#ipqWC!*@MtEFHhBX^KT9Ng2aAR$-vdMe{5)!z$hWP zSDUvO;M#`*PP&cQLw!ak2U2UT3 z{rdc0+D5`NXy>JtyS;)W=M{J~!`U9kBn4-{&0TB%m(g!4fi}s$QkR1C4IVV@LXW#2x>9&1B1XY4CZ!U-VuH=^k;!6bRyk9y*0q8?4I{8(EgicR^9dq*x!U=dqX zKtSyIf@pCNRg-3k?lq;Drjo)j-jrM;E(pKJq^GEDdMxW=eYY$OCga7qT%WBz^a2jHR%YXk^Qu920F@62Lwt@$zzR(){l1fV$z49J znVQhNjmHVQS}u~r{^0!Vnu4m*Y{eR1@XCNjKcSKh^mKh}d2K*olJ^PVF37HSv@%3VE(^4UxsW8aw){mbn*`EZ5b5HB^GrSN3Nl_u>ynXpfl zrB|Ab=}JmrQkb6*$c1T1rz32@}@)=RbJRIo|*nR(Lp-RbCf%3zdVsTy5sk`49>o zv@x0Sq}Q}d52)R%+)CI-uMC~UgAJ&6f3YFkdxq<;t*_s0_+0-}tNT)APL2ModzRYI z$sJ^!3buH#j(^#(!dDyJrvrEWjsK;2zjr8zZ7H)NV6s$~kdXCvi*{kk>{`fm-7zXk zV?tDwWmBzs+AOH2w6+=nwRZmmeo;C)omp0xH#1f)_~IGezjPx+fz1HRZq*;VFWw{* zG~KOHDRx+4FS^$P5pMW!m|I1(#Oz$3_@5QKTQ78UnuA%{mW3=+#eFC>@j4%6>!E*~ z*)Z@|WpcbCZnT$)!mPLUpQvG3&X6@Ra`Suu4hcfsHxtNM-5TYe$=717Npo$m7B+Wj$O_RLCW9k z1Ljq{*>K$a6)2dA4TQh3a$Fb8`3kKE=|7RR!r;Un6rVQl%C z#*miQz+1spGC5Ur1R8u#C~tab&#jm&tpk$te`GVuCp2DoPI^#OdIG5@X99PZw($+e=-zG{riC*Jjf7T zp8l{;$aQI$fr|hf1j+p*xxE$1{qd|;P$gj zKHxhqC_B$2Av9ptvQ$IXLn<=rx|pKqRI}e0sc0j7>G+(}uI9%L9ra{teZyB8D0LfY zNnM0J+qVdo@9=fh%Y=pR>Y5IQCYuX z&?@QKTb)PB864MgXUxP^R+sKMhhblH$ghb6@)6sc0A@=31e@t{P3-ER3gn$-!>%u+xqH@sl-JHl)Wvl(~ysrh_8QV+px@0@ZCqm zjJRXg}{ZTg*oNPMb)vT))#^TtecM8@+IiHXc%CCwtAU!U& z$IA$XnDXup-}R5X0Wa6csUEIb4Qsbf>4!FSkz36%;BK9U;*9|W!URwQB+nqrdr8_hv8QuVfKCv3gIMgDYtSL2~=EbuG6LIqZjNsV=9GV1r3U z**Lcl`8iyXdEM{owzW%!zl@?}DMPB9x;kWY4olrxg5h(-m@Z`vLk*W3+&$ltdv#d7 zSZup0NAs9hI%mNLg6(;}Z3@O;BjaZN0@fo!k?~O!8Elqnu9jWafFYWiMu6_f3YcWDP{xD3#yK;NOwdXE9J&{aA1S> z5$v84gS$6}S@$}G;NxOfg+`F#lVjehV9hum!7jQ?w_I>lU}*0~6Ubb44DD(}yU<~N zp}p$%1T*^}rS9RCI_aR?y)dKq2(W?Xr;RWso1wt&O6nNTvBy!c1ZuQCom3Pj^FjJy z?(oD*4{3y-)ogBwCBOZ;JxFz=(ziHw8N2B-W~|2+CzT72J*8vd%k9z}1&uBug`9D&}e z_~>V3K~HE>-X4p;hqH0H>*&6G+Vg!VeN?B)D<9@Le!1EcW)-8q`f^oHx*=4{Zsq3Z9~Zhi2Yj z9b(46pWIzIypeDf^;hLEb}@J`MCi?*!oB5b{03$jtJ$FqOFq6r`Jeo-9nCVZ8}fyw zbQj4&wxwqJb1KdhW>}+=A5-Z%O)ZJRy4LWtpXBeoF3amgeCWKyvQ3tE<$*Q)9{*s< z*iREtykd4EqN3YyBuE01@4Y6hI zUG@h>StV{10hyf*+fFJBrBsKhhWBO~4o@8Ca?~G=k%lFNc8to#o-esWcQJqqCmKNIqq;Fn$n+gr2Vm#6nj(3DRg8^ z9kUt|493^|K+2uujryIwgjUwo9F7XE;J`am7v`UZqqjZ=hjavU;UQy!vCj?g3~uxH zt>kN*?~^MDA2>GntAzAV$X0_B&zH>#fvS7a=TR6$vJsqcx3r4&N5dsi=0Jm-;aiGB zsU%w@btz^8|Hqu7H7MNyUl;^GM=<`n5jwbcjc}yQt2X}0UYQ%J*KDyg*PD6fPEE5b zD7%@CFVohofqQo7fRgMQH$R@+np1J3Iu7B%F0w*{sU$ba5YZD0ceL>vw0r%~s!})Y zv<3fdOldP=WA}vB@QY6gsB(hk)@Uq2Jvi{5(_{DV$wN%58E$Q{w1_3tF`CG+92a_E zUcW=#jUKnyR24`|tjn)?)pPw3QWIh96Qz$Z7a_$jX9F8BBEBbm0GM-otrp`Bh}Ymz`p8`6gOn7MG|?#GS`v-juRA2kp&TU7fC z1pNlFo~}!v9O)T`YMmmUBe$+Z&A}_Qw^$emEitCu`B2~3mI+UEEYv$a{3ijd<`J}f zpzoj2#5J|cUFB2t`UpnJFr#tz1>@PtRuNBU@-qgSB&cAojy6ugBv!|$BBZ0lZ6D}vuG$<83oPLV4$f7gtjQ<{Yr z&v!l@nz>aR>3Vg4|^I>vpZNrAv@+AiPZQ@rPy^rK0E>U8of$1D_p7o*A6_V3<<+ z2iHFvuaAH?6?1qhvHB$wUG_XnN;WO>Rs{E=n|#su8CK8=D!w_abb*mxZz|w#4zttV z7HRrY&$vLmT@m%okitJhts>UsGPVg2^w1O9ji>nJ5hY?2_W*W_#kCOr@Tbn@ow3)E z?`3{)+Z0w^SavVgNhnuAJTkxo8?Re+5Jvf}vcN-WXX^o1W9&0Xlj)=tpHerj9O=XI zEyE=x3#$EcU-fJ$(gH#D(I*&NHiGqNJV&ZagMgD|PC=#j(yQE@AB1l5{-X6u6kUAO z2Ac_Zc@!+Vk3v@;sBVnnWE z#|nYZh|{RLTs1smer#1bb%SZc$>B#cr-xD>hpfL^Mu+*89-qNCAe$n`QZbJ{?||TnBP!`nn|@Jv2g)aJtO=pJ?P$&jWFKs zsvlQ~4&n5l&(y8He>iWuPtpE4@DNhMjJ7Weoz^>yx(T|X5;iUU7dI|CbvB2jcl@9$ z?Y7$Ai$}W-2K9_WRE;0}Vu%U!eM4Fmk==7LmS!?YhU!y^VH;m;4UurYrvtfbGD{1{ z$9cvT8o6Z5=>Pme5NCE(F89x@M){YrhP*8sY50}17Su6MmRL6YVnX}hip}MvYx`M! zy4o=;nSEDxnGXlyY)W0w@6T8h5j*8vw@Hu9mO1{+omqJc+9R3N!w3)?1mGzRcp%*G za_M0$Z?Mce>2PU7==ODJWiDI?<9H2q5!xwale&;hO5oC+EA8zJz>z-G&`0vTY|e~2*CO!Y~H^o z8r%?kI-V7&4r>iytzU%qH#&Az_dj`<`bhc9?$)on1g^7)s}K&&ILt|ATwtdjy^24H zbgmMj(B{>NPTEK8QX)t=>9O2Xj?F%fUxvF7L`d6lNkr&PyYq8}j(j=vh~1~@TH!5w zT&fxp={p24-Ea~-wWMX_PmZ4U(AeOPb8n&LUM;I2~D0`dYREe z&v@Ij|ERg793l44XoRXB>{!OWYxadCGMr{(OFQbK3;wUS;c;Z)H*JxvisbP zCel+pOee05U*$}3nOuo_?P`wmG%5yJ&0HN}{%`%pJcEtN^`5@TzL)Dh<*{?l&phF> zb4ClP|M5d!!@x_*Sc4F26@ zD&jj9a~`rZpW!6n@=hV3a!73%3m!~+xHU35Oxsj%%!KpYb#JTARgpk`Ut;In%-?Wt z?J5tJLrfuscL%5B4nSH^hh>`wYts0N>;30j&IGB?g&GVsxaIV^X40IJ!T3{eEto2M zCgX~m&Dz>%BU_2u31T%HhURHKG0~&Rz9A&U4LH0ln-#V6`%bcEjn%bt%yrtT*Co%CnT_fD<~&reiAq1ga8L-Vt~(v%wi1|BH6<&xhI19{p*42(C(jaE?46_vTKg z?lRqQ;-(CrJHFKXGbA6hn=DkET_axkbUr6$DSjg}Z%^x>=@EBSc#w2g=3BgN`m@Qa zm;vW(pmRgV<9}(})z*jEYD>!~iFLejySwAxD>G9azLwkC&|kdxRmX4I8cgz;^lBDd z@kP2AhwY`dD?)4<2QwY;fi(H=rKEvDMwDP7&8??%KZ(?|TOXE3cmx3Q2>@8AVueuB za?gU7)M3whh}HJ#bidW*WyI-I^ha{BFkbN<@_T>d7}9eyLi@zZv1G*R#=hUyO{Z9x zo$3G5tf6%b+B1G5wQ$EHi(tZAXfbeenkuy{b!p~Iw@dJYLyfb?zju3uVX`YT7d*7H zfGJxVMI_7@!-wZ?t+Cpy$VWZQ6F4F$b6b5IQ{U-Z@f38-CHW`}Up4Ec5xbJFo+flh z%9hrjz$?~5ymx17E(9u0eOy%Ed=F0_1>D+XAN@hN;qzG2A(k>zC$(%icb{=~>iH_S z7R_Y8dq0~*9kINM{{ZNJ-XvS5uR;agvht_MNM_pX>%u7!!7GaLx3A%su?$u>KHxofPp|v zneOMIC2DdpYiF3`*rY~Vuf5SrZcg3XQY(@G-}Z0eXHObiAY2gYp;sA}CD`G2$72x| zKw_L;`?vdi*)=bg%|khI;MY$9FQ7v38EfV#@rAHMf=aa|MRgH z*!kZJr8`&kg>}~7-+3WSN7+!VtA%00mr?>=$lujYcuDA^B5-{)dK-ETwm;!Qqt}w$ zi|JOS=G}cRN592xk5($-Y6}v1m$yYevDJtzGNheQ%3Uk0j3)Krxq<1BJ>jtSF(~C0 zC3w(ASCiXEqPgNJ`BJcloPIjQV2A|g5NRFo8Cd)3Gg|0oZ@w)EuGXT8mz_4da_8BS zU#%WY+3{NFQpO^dtu$tjms@Jz-20f)4T5@5amqgNpNRiwUGomUx(`JS2ot{R0 zT66f1(0|}ZTgmL0jrbw+?_}RTHO8+N>;;se22KuKi;jpm5t6$ft|IM~xdzp5aKg(T zFIHBp4;8oLd!^dqYF$s-zS{XWg=}iJB4E0pQS=nIuIZ2R?@AK@%(d;-!glB=r|^;YHW*g;G>B(JZ!mgW0ev-`Nm6GxG*&I?`88K1=&d-(A)0^XGa7YW}^8MFm`G%SmAJb;32AT9n)uG2elbcq;Un z#%XaB&U5}6vrN&}Kr&5_lmj3iE@tG_?(n2>X<|^9R8rpo|DH5Di#kce?xVt$4sPON z7BGTV5)BDkAseS579(?uiIv9n;qINU>#jHVe$@*RYL~-OhoE*0fn=Y@g<{((Yp$a& z_a4aIUQOE;GFWKJ3Na_orF7%3F|>jU%`D0N&a~&OMwQhGycI{jdo?$aQw;LaKfxOS@5sLipWHqqN$L=`iv&CzMHTtg$5#mB~`RtpXREe24ZD5EWx1T;hDqe770nSxn4P>QYVx&ibPPGxePZ^LPXw%cw?+jH)vuh&U2x zK&PJ$vP+izVJdl)a@yo+CMspxsJ0q0&PTVvi1+;YS_y$+%jDozp<+v_zML>$)3#?$ zRk$6%uV}2rz|uv^_-}2jTnG>q**h&yPuu&U<_-x`r(KIYX+<}$@{Av!FYo3(=(p7D zy(ME5H9kx^C#l%Ycn0NSK^7w;k%WR^s&Wdo!5k=9hYkeI5v-VxLgo%+=%}yqpXhEF za$gT1Yb|df$P|}GR~j@_IepfMjq`b_K$JKX811Uo4zg{H@$Abp{AsZG$<-2>8o4cG zlW8a|6S``x_@L=HtCnu+8Y9lx39(*!ejsk+X_nzGjRqo=sPL<8yA@bjr^janPf zJ)j0Gl)%b8V zR|(8KyPSZSk~^yBk#AKUY5%;>!~D6pD;VK!{z>p|>$EBJX9fHE2X@zFiRG@yL(EM7 z8SetWYaj29u4*lXAt_|ct5IT+%tP$MZMD&q(j0rw z0#J+EbeoMNZO7k!>Nd2%eOvuONEej)Uu&Xr>%HyiWLTKLc}mK(@dz;R2-7a+M*Ql3 ze(bBs^wdyuB;`QUVX+;u_NJe)zQHejGPlCxf5%L;FE1Pqj5S*g zSQ`d?kysXwhAz7RoUP}&@=wPC394rhUjBpaPzm@|`B%{u_L|XCh~I$!)^u!)1q{}q zKlsaMtSc{ReEZV$acfY}n6YG#6t4|FQf#}t-U;jE2@eHAY<}||b~(NQby!@PTG+Dn zKAT|R0(dST{Wo>%6V{9VS9M3~d9m>&&Zw2^D@!h}^Q)NWn#|U8SJ1s`%LvkaHmkk+0UGs|gED;k9c z$J<%NjVZu;B9y-L$8ymvyHblo%0f02c;zbJZj%jj^Y;?J|4Bm8fRy_S)yVDS;HTBq zY%pA%VkdQ~O+k9DG>A}U1QC3XD+?e=XP}lw6cdu=2Juf*XdNehbq$ly?M8ria71-d z&O&P=(p3f+>{z)M} zbdNfI$B)^6baOE!0Vt?>8T3X$pf6qj=yG%CDP&{SO7K;$=wVCc&~(~wvj@95rW8NR z)-NR_!R42$^f2I4e4%3AGfWR()34} z@x}E}j1;_=nT6BhtVi_Nz5ZI$WY^5s!SSkrry2(O32tVQ&#egx;+^&uEiZ5{FBuH> z=T*M%TTm(Guu!5$Ik_$SU{wwC3eb#B3XB|q-eUAFlCDp~FtpBpD-%mIVXn!DFeX3)5{$=;s^Z9Xtg_DBJy}Yy~&Af8v)l#6OWo zJt_Ul;DF`K-(P)!bS*4kk(C+oRNX`1kjst~Wyj-snoNvc5zbzzkOnC^)!1)4TI-N*8Yg?A#Sh_3YheJt02yymzynQB$d{5P2$FGv#>{nqrN{^|dD-9eX6# zV4{v-jci!O+TWb~tQ&~=j5nFg&Y&Bu^7BUIn61n9-mHLY4!`LCSP{;_qIT+ya;OQv zvGfopxRp7x|LsMZM+O}-4g3P?v?!y%D))@t!ovCBM@rMwn@HQDV86qo?KKt|NXP1P zc~&DnZ;R^UH)BbH+q{y|X?(nGzN()Za0@}P@YeBRcHMxqotM$Ef{cmMu6h$xOvSvt zT6D-l)j0Z#!(*d7d-0Qoe7QgPPZFQ1%-8(Z_CEW(AP&bcl~5w0y7=F&5ODMZCfR(& zV9n*UWZPb?x6)kBg~S-6u-kZKtg(9n77jN=-Al`JhZz)~Gz-%eY6Y>u+nBLoyPwwu zoNqi(rcGmZ^c2G8v*Kg|^7CVP7IWJHdv=F5Uz=LzZkdkM_jw)jt3p&kJO4{?p?p0% zHCY?>)Z-{Di05C5AXw%a|229>*8W<(cCAa8?Eyz~*jO|-7vTo$?$fz&l;1$V+Cn$;V!OWxJA4SGfEF4 zNh_LB`(?B=t&j})gRgA+m;%;8zL4hi^eEe2l$yMgEEWvhP*`uNApTJ(yEw_*(aa*K z%V%YM;A93cGWOM@1d*CZUx@rMg`}X+|&$MWs7N zfANj#ZkjvEwl=UyZYwzS-eXZ|{gxt9n$p2EUd&k~q9@vv0SY(N7mKaAwlCu!Pf!Gx z{f^o}+I(o$B-OfkOjVuT6*OcqaKuq?ysB!jFM6HdM+8Ty+W=vE)n?`cVg~RJDY{kb zvIhkX7k7WKiDzxKwubhj6WxpIM!M(@r6dhEhj;p@-l?eLy;h}f{9PmF_u0(m7!Nxi z5V^({QEQl;M_d;#yNQMFZ`9 z`pX!3qnAdF8zKttw7YBh=k+eF@jCp799d>>ed>FfTGpTb%je)_b8I{CwY8fBt@$Ax z&%47W(nU1F(K>2hpHvsoM~<4>SB+@9_Sj3kz}0LBru_PbqMD{4tY+J2H)@vb1MoN; zI7wmr5~2^toUZ8{KVz=ic}uKx=_eSL%p9q9Zu4}0@)89ah_~*7nF10%uSg-QyLxx{ zXON!{RmWbommxA6A%iwUF<*(ksSIc4PpD& zAFZI$sKHO`>iNfBj>2K~><+T0v7S%n-`=_D6W&-Oq&Zyklv&ihw0QV>`W=!xhu)>V zq@I|^J(WkmQE#Q)F`iAZ;^LQ zl7Nbkx=D26>?>zO*Dn!A*D*U%r0-ITygGT%U8&-)^Su0YIm}_*pTP4cJ6}3}#=P13 zk8C`FkwYS{D7%h4k@*MMN4yA${2_{S#4ls8nfx%SAE=dkPy>7 z?y&flAnV}#rf#>pEKcl;CYP;}U+%m5t}N%{Sa8H@(!Yb} zwR@uGZPtqhNc^jIa6b}HR4|L*9s1jNhGe_6++J9ClZI_;@E=x#?U!y1yls+s%g;ANabY*0H}ow*xv*7e$|8HR)Y-=g)GkiX`baAO}{2WWaZa;iOZ+caoK z=4VZu+?OF(5hUo*=vX8bQKrc@+E$P6Ud123>`i_Ik(&Bax^b*7-9_fSGlowGl`dwo z{iGyrs09PtG}{e%)cGs!Sv0YQ<_)y$1kqC_NRmeBm(^d-53KM+jb&kHfMh8;zS_j+ zssl5rqx-yLqtKE5nn8N%PPCO{hTgBgw(&Q0aRz()##@%4f`fx`-xh&*71G4sIh%gwyj5@ZPJUZ! zQ+peSwIOVCse+TgYA{*{_{qYwtc*Alsm`sk{ARvpIxG=3XwkvNCBjvT2$6{?*6Wmj z&>E^Ojk6q%Zr|_3=J&umN@=OM3R}IIJO+fJ=0(n5&RC>asa^h?MZ4 zQso!KTMfkp`Lv1jl$~vp8{6O|2JvGxR%MVH)gnix-an#t+8wM<0$U)d&zGqQ?gZNd z^I^pYew!v4voe(0eLr@(pzOAACjZMKhM@1`-fxovCO+_=B8#jXr>WI#chsr1=`PdO zY4gQR)H_C+#IebD+mGD2__&U@)~0?`x$N28GWIZPuoj(LZtrspZe%pJz6{RTxoVnO zT9wdp0AT_?9QdX=L$te&?z27<$rIekviiX2c2fyjpw`(;f3V%;I4@SE`D6#wa-bTk z8Z##?r*FEmD|;~AjMj6f9KY(awEnt&@38+dIuhkXB6nbF((d=c8ePzywdiPYlJ=g@ zNyY2v<>DyOAx`VGEGG|;f{?tt?_QZ9Mk*Sw;!u%J-mt5W!Fvc*EdFVl1@XA3MuhJc z+cuxOrTw1~mDmm3S&FwtbD3`3Xr|?$%1#R*!Z;UB7KYggbWd&_Jcc?98mtJL1-fQD zLZ|8OgiFE}et2~k%06XYVXhAw5E~BbMOU%Nw;P@j!cFzp(VQr4SoGZabe^_;v&j!j ztc#2IUxwmi9fZWxtYQ^s7i7aX^5;_1eFfi!cF+5e>aU#?omcC!$|a8>LpA8&q`!$< zPwX4;xFa%9_c8er1HVgIssNC7VwY0Cj`nf!@ ztM*jJ$5w2$nevd&xZftt0b{kJ0_Y>e^d8)DxPWO<5^5H>?9qe}nMCT6VA+iIM)y9u z?w5c0?ZE z{U2~?T_jnDoa#cik~vsu?s5Yq(=V_ypGnZe)C>qaspw)%ls`ac!^P2US*UnFp5Rkg zhp8K;*nAQTEs`B)1jI*Qq1_%(2i~9G~GAshJ94xPWH7SueC9R&von<(E#i0?NexYdP{RvsHMR99Dzm>>Gop}(;B5wbB~HM3^`|op z$fpdPL-~~&vYy!28OziPHb*_T|Dvuc#BkSBKNFPM6O;*EQ~>5RrB5a8iOwnPcQXq& z_zxne-aTIxk1AAvT`WO$7_twMsOapdGg@$p(e*;1TzZ?{R4=nZ0^O}64=p!noeIv@ ziE?_|9a#-ucg*=fcj&nYdFDF$`NGGp5R-aRCiP!gq>d}Amvu1n*afG^6jpo`Y@Wty z{MjUmuNE(UOaN;l$DWTBNZnV1nRFN5N~@C{i_v@-qBeKuU(88aOgdiAvF@EV{S4hb zy6wHyJX&Nd*tC(Ifhl%2>a4d11tvIPUkggnyZnomOZ6w*rHdJlYv>|IBf(|Y@Djoe zm>8oCJxy)MXPLZ>`}@ai`Lq#-{3G|I;zhGY@Y-*Pqh#vrC0p!vX~tM&4U1mzx`(rgEEM)iD-Llh!M!3iMz> zT3OO3s>%1l5$dP&AFvW!oxF=Fok*7L>hoxJYG>n-f-mT1ZyU{dBCFT>RF;;h$VSO} zq{Ks+XdwEXE5}r2+se+DWgAD<=m-))LSHv}1i~=F%E&7g`TJ>yGIF#4fv0QUQk-WT zN?*1;0=*%~7Vx9YCX$DZF(2bp#*1)c{nrjhglp7%I*lBKyzWzC58d(oDg0CtXTr>3 zyXpkWKbwjIF}!zgya!<2DZF_aN1<*HK*5_$1yI|kpa|g;ow6R6W)hgm;@7h%&lMJU zuq~WV?+Dq*u)Zedd*WeW(fjL)?1p=qHHa<|^&&brAL=|2XT-+}bj5?nr!j21TUyPR zx>PKKk@B_Y3OEp!PaYHqo+&XkvJTbmOmKHzk=RR8j|-fiAaHb_TI4Mldf zP3>RKQCq>Ka>?NgywCkTvc}#g!hb|V_JZ~8po@$11!g%m#xB$CGW)lgx`1{miwduY zlp!3}^J}|Xm91~|3WRS&Ww$nPQ_U$+>(1{L4Pyahp16EpQ@^ueh3lQSg`5~ zwZ7U=Y8B-(ocBE0Nh9wDxL*;n;k2cdfNP~#8qX(i&HdD54oqkF-CB#?)B*h#u8umk zw@28q)U+3UtaFh>YXHdr-WUzckp?EM@CQv-oQ-+k%mI-W<|Dq3*^-=0J3_KMFj|~m zA15vWw}-pbEQ8bQjrvadA7jcPgJ$D)ivj98L8Cb%u0tY$fF0rlGMkt=UyGZ!z9f0e z^U6-5c^}z*MWp((9H^y1gdctLbU;b{T+nyWwqffZ9d)|%5iR4`GWc8_{|d@dtR&?^ zhG1Fw;-W-%TYQ!?*L*TBBzxre?3=9%#LWSxex? zrLc{}?+dyQ#5K|^I=3%5jc4-s#70>p+w0aPKNLPOm)XzhT#b6Qem?nyD0QIkK$7yU z*40-m^6$ee9*fMJgYKREvn*97C1?+l0uA%>dzzWOEzyYF!}~!Ne<@Ye zXsh7*R^sk3FWtqcak1Wz(h3+K@SMq8;fI8=_ z$)6S}X$Usq3F0yaoV%G)Yen&lTy^>Pn^zC-?PZsLtxBbnd&bK&60sWwo zk-W=i#|oKpPB);*K4YH_;Sx@Q3$^zd`Lp!VBij-h;)=R|k6YO6%^|pnOxl)6gElXl z@6&v8r|51G@1F#xtDR9s79Ai_=p_1R@jl4^x`HXPj7hmb*YmPOb5|73!MuAidR?N+ zDe$c)Rmg?c@qnGy?ydi33^ce>GA3W$GZDR)Hhr1=o#1OrkeSM{pXUkxj}*^(6}*sY zZ7qKRQ@hWmqFeWfs7K{^msUCvuQVQu_)atn`99OEmjpeRl4v$Jp=SJFa@nl0EBc{O zU4E1@W7N{R3*Ht6u}0HYE^+#`%uRL&-QPFcx)tsp2$AuYN&A5OEtAJ-e>G<6LNagHYDs+=!5tVWz*mvQEX=vb0;q0CkOw_WX+fO;78AL+u;2b9 zN%CZoh7CySWfH3&egNkc0$)RVED}d%_}U2R9Tg?t45>Px^sw#DtHP(;{twdA$XOot zIO|?2_=V0}Uz#LS1{zt-=4vC{qdmrCWVn3XFPDEUFJiNoN^Z}2 z0;rZzW?g4nd8cWEZG{E!atY9Vab*b`z1DA9^Wglx0>2s-XPNq=Rf_{gzMl1PN!;pG z@M)i8Ghrmgo7_|f;6|AW8(1wkHe6yVLZhWTAgPy)hT|A&4v@a9U4{gS$#v7p5q5=s z`hgJ>^C5OfdwOKnJV1IzUPxg4sv1E&{Gf4KBHViKQ0sM;*}v6#nBYguRrgnzfEAlJ zYOA`hoIAPhE75?%<68x5m)bKYBqk2EMS{GHSaE`Wq%bCLt{; zD&UT*KUL@+`V%4D!XZVlSoqOFz@;lEtL{Y;C@$7QhP{*u*5=+EWHq|vXhn&ze1P~jklJ~ zUD>PXwOEr=TW~up?C2JiOZIGn@BM^Eg%`^RL79{%-bOqiD&L&{#xT3>z;37GYwORY zHbT!;mgs)>_KqI<|6=9lnnbnU#Am&fc|o?9uAU43?w$*@hV|>XiOu^q#oPr9svcnv zJbjpy%2m&4nY_F6<=oo*$dVk6cM4p5e6>>vHYLs~ZiNkX`=UoM|09Qqh(NQ5<58&f zFiGb8nHC7vD6vE6rco*)g-=TMFFI_N@%^5+ zToaLDr{Qt(Uuo|*Zhtf}=~FO@uKIa}5rjp1*F}I#0ctl1m{F#$&+U`P{E_ps4SbMg zXgaNXvE+;BOdGE;X5<$3vATf@ci5P{LaQ|Fg+|3S+KaT%IvI+MOLVcOtj~J$&nn2# z+F!V^!yQlZ+fU}2YlIX&$+dr zmeG^Af!}*4^7Fa`?GuKDEDIXK{~KTqYh;`zFEpt;T(Pj&*qiWj^YKWHU-bUY(Gv8> zS#JrL^ED&H8Dk5~K)oIpTI8s(Uys={du~5gsMh*UBIoF_%&KRD!hQ`UWFzHAxToS} zP{c`rFKXkE$En5ZdXsDfBf9$;ITPUAIi(~t{S;d-@B6c#Dn%;(8sobrow`?PMR1uk zBx=9dmMwogk*b_ye`m!>qIgQnjf)!7T`#s6jTlqrK^2*l^jEGvcO>Eu>v^6Zm%4qQDB;r@Jcyx}})F5^4ey3iE zZ2{Tlgmiv+XwlV$?p^9E-4%k78flch=^lTOpE$1Gimu(C49AV-e!Wm)=VLoGvhiV4 z$Zu-<>Cy6mEoC>bg6F`v!+-tK$<7be2lUSs57^}Et?G@0#Cm=4DG)W}6;*99-Ag;! zb!NzHp5OGP7l@9P%) z3$y()Ss9Cs>pvGGsmM?yq>HozEah@M4HI-d_PSPZe?PE{KSSDNR`yOT`)t4Y_7 z9T7#O_+~N(9DAEGg|@}=a0B;XJ(oD)C?XcUDLMmO)WDFR3cUsW_s>K=vc|;`3Bzl( zUOqmQr8cj`n1MpbvW{u;Vsd$r+$s*Z2r-SH1Kh7`jb6(^5_v#~reD6pjw#PYp!Iry}%$fvk zw5RpnZoF&K#OD}7!UOMGWf0anc6~mxD)xV^g;5_(2PzfWzljo*M_YA>1geCrDF@cu zC0&;BZk1@geLQhTnk~6@&g8xDN~fZTyrTB-YU84BcV|kkF@%{8-=Ug0Px(MA;e5=y zG)U(UDp7U1>X-WT)37TcP00If^{}S*-2i4Y{CVk9G|_<^k`gUXZpjkVv`#(RnYZXG z&x$;~#Qb9p9>P1>#UG?tdRE#2^klsZoo59`KGVZkHt_E@&`N2|z1z-rm{woP%j-$q z_(Ve_#}u0?QQURE_1{7UCgDJ*&!OM`sZOAVBuY}-KfKkS9_yenEY`MYA)`ys)OQ zIN0(}^Z0}EVoF^Xre?fhv*!-)56&w=bwqEZI;0lhj?It$D()=lep7sP1Az>8u`YE6pFQLT%In zrv@WN{-`4>Dxs$S?Ue+&$l<OkzZI<|GCkF_-X8Kz754tt5@P9+m)ZOcVJ9Y5_BYS^+7wg-fN2!Rb zGT?4v)ZCNBvsU)KNv$~3Lp#zYL? zx*@k!66cf)fkmq{-Mh{xAGI4)#n$rpq^edL-OJ*ah5zkclGear^CO&y>4DiOOb>o$pfl-PdC9d%=(CfF|n#NA9EPHxH7tJ$ybNoY0X+v)$WM zG4s^&#ziL&H$+&krCCShHAIDU5icY79R%^3-eZ;#(@e^paso-b)Dhndft#Oh2&N(l zmhU=SGsLL|9$f~NvY%z1YGt=3eod4v1@9Z^TPPCp@U+FdFCX^7GPnb5k^bXq%#y!f@j8ZBNc%f=Ig$d4J2wf zcJm;A_OivG*NrY-(%b%ZDAm_WG#WgrO zaBxPaI}mx1Rb7lJJ#`#Ydw%&^uUPMYk^SeAcl?6aB|)h`E2HL;=>Nzj!|jliw=g@y z!B+TH>)+Ob?+=6wls|2e*s0s@58u1po)rJRCxhSweY*?D#l_f*zX;BRCi=ns#{59YU( z>x2Sl`dY6BANZjp%|&5_Y8M5T_8eVV$vF33EyRPpvb1xe^cUAeTB0{yqhiR>Xr9~^ z-OK2-*3IW(_9LwaBjP0`SPf7jr6jsmiA;-z$R1}k%tGqK6&Q!yI&o0*e0=lwW6z^9 zm(~Z^#{h~a@#{^v8Seg}?RFki1D6wgMXy~yv}kW;l5uVRBB#ay-BQyq1p*EVg({Lh zBUyzpy{Xlc3274H~938j(yOB7iX-WBtov+1u68@$l$8 zf}{r~{+PTT|I2U2eBY&GW5y?TNI97Nys}P?WTdE>MX+96GN1E4fRpRITCxv}u;e)u zaQJwZ4^&yVW3skGK@_WQP~Wo}`eI(QG7!s4iA+~&`QX=?+~}o@C=m}qUgkc#-a&(& z?@@{)WejR>8h7}caHcquhI zio)~d(&Roqmn!MxSF2a&Y` zA-dOZ?R@o_XRaS}nb&&TGQcidA(wob$+%C*nO`ozm8;FhGPM6$4WLu_big5<5!I-w zi;3;K>w0_54;=a-({;&!`HD@6Thp@H%~+|>Z!I5!J9}r{@eRN)0n(VA_+=sM!w^nM z{OIp_;)?DvWpb+q;O|E#KnTcXazSaY4-;ks5Z9WCiZY=^Ca+x~;&%LIn~@8R5d_@V z?W-AX;w-v^=VUN|+glG%B7i(r?7{=pa5&gBYS4$B1ekUC;nSi+Fg5?Cz=(Uf> zIt=u1h+waRvybZLq)BIjpd+fK@QzHU{t0bS`SBhfi10$|#LO!Gb-~SfO-ba7ak3K{dfI3WNBS8k?NGfy96F&>NU8vsomunS-|$zkNCp!K6D7!6gFoRjohC( z4`(ay;_9CPXzGC9m_l<78tB#@pP4wSFM5g@2srWkO@GU_k5w;_(OhC=TaQnKzHvfS)lujBBmgs}@3TKx3Uglfub^vjaRQXidceQ;-%mcR8HR0lgvFCDf-@&y`^ z?WJiz?>`lvu=BQcXHt#$4mxhRh60EDE#7M(b-t#2mYpmyO7J%a8>6UjXF@(*Um0}aZQOVHxUafn;9dR$)qtv zy#m+{OAWywLTg=@92A?B5#`pw%Y}w&Q%{WEX|c{XVkat*DN`8}(t}{$VBKz{v${z_ z$AJBOF0+?qOZge1>S1R^sj#0&mVtGqb35LGOuE9>pXGJa-uTZNYlG|C@(Cj=ODige zq4QpT|FqX)4ke>{F55%Z z^OQb<4S@4>a0YP%$mgWd8KP(fdbv?t4?W1tHcVta)nXDpMWY`UWUV7aMuiFa=fK5= z|JClk+8ev!v(0Rx|HYc_E4=opzstX8wQP^Vfr&hp9(Z^p&C6$`rXl z_NQK=#*!v?Vo5%CSs(oUn1t_cy54h2YV9JfG)p=$qKB@wwEuX%&ReD66`py9QiziA z?_}9v9&^LOXFtU2ms-SH+7xC+%gSN?$eFlXFn_h#=T$)ZKhvlKeXbLTD@HER>$u(S z+k2Bz_q6>1@H_oW{*E~-4hrn_Mm*+zQQE$Us+Jk_i(X2uiS(|lV{JS;5nz8wHCTZE z-~rGFK+{fmfw6w@vu~B_ZR(su(=D*JPgoc>oTcdHkX94aQ*B#m`cc|@NoR=hqQH=` zn@w+bcFLhpsZ1SOICn7GkG?z`3kSYs-Efr(J*l}qIJkaT%O`1v>_5|L;#O8?hl^{9 zd$0YqL%B*@)!+Zgv>Nu6@T1Fv^O@9R^`k=LJ4V12lfEA;&AqClw)1PDS|b~OVZIr% z!AR?X-0{e&AM8Mz-3-Ys|4AkU#d`=Hvzr)iw(?tR%L*^ARo(UtGjjz_%t>!F%BpbKH&M;!jZ4<6`=o7h5_}%0o#b!qR?|-)53jaC=*^iXTKs<) zya4a>DR}T|4YU01z^H^Jm@WZAc3Bmu=sWU4W^HUNhBBW-5Q11yzKQ``FLakK_cF}C zGGr%H!hRUZzyudZGUg2bx2wodRs&i8!)`p3yBWJL$!T;C`ck1>f_e!>6R*!q`{?dUMSgpfOZ;ck3&smSh_K%SP6m2?6=dRp_ zgb9gsXwvY~D6zvf2nJG_K03|*(4Ac2y}^GYJXR;mBmz8OZ88;g@@lLWnc8)1jDZ15 z)Mka^b*jY37sG8lcFH(+I2IfcfuvPPN0H^4R?FAprumB)Y0%KPtL~M~v6)1NjNO{K zk5q9#&FHvub`h6pKli5i)x?1zd^3fg;3?qawC&DfE=A@8LNi+;yj{1$d$QAJAz;mcKdO-K2A=NnCns_(^*lpQgxH#}CntfT?- z6bT-o*|fdQaPkvjXh-;p1DI;*p=6xO zs2#i)L3xZ+2bZgF@>NAFj0Kg-0pPpuIg@?8o@#4X03x-2^KZbM5iyaAql3<~y+r%i zb&K|8JLRO`iHr5s@>rFRI8lC0I5Bp~|LpPpW~Ma3CEnk>r|2YQix{qRC}-c;M=z zoH7;h?betdg8s7W&A=T#^`>TfQVnOw+CS(O^fK17a4s>YVZ^Y-6y)r=@3r(6h8D){ z2QE@bkd1q&PUuB

VE*=dpTzpC4bsDPABennq5EBs=+v<02I6BC?dmx-%Ammfnm zHk&Ivd+I*|Y17ScTHVLNX}C~O`sTj>R%UD$=E-qDj)p8I97cG$#nlk3oIHS_NWdf3 z4bc8zFOn*qk~6;dtkB;u4S*3J6=9Q|0|3cV%w9VpJNytMUP`$iGdr_UiyY}4-raouhW|Vc&of9gqa^-k6#(f5 zpwW~FYQk)Y;IFxNCr~(%`EM)La(}U^Sl9>P)7!0cQb%RvE}9;dlW#*drd&{-Zof@T z)d(i3H}Mc_T_N5h-)E;bm)xFDuwO*VjAr$nLhn;0~WaHAU*DvxyHYsZNpA3O8p&t}NYxK7qfcARy>&js^BVHm2@& z)bETuyXVLug-N#y)ZNW(XlZ`*3#n0ZZ-{aDnS#LUNAB~o94mv*y1D!#Jlro6YQT`B zZn5d!(~wN!Pj;{gxVb$Qyfm-)wc93IOludruR=kSsdQ&VHtUmk9a)2aI6mFtumiqq zl*_MF75x0Se#lkV*%8ii@(Z+AG9FL}c%uGXusx}qrOWX>&f;3b9QVG!kTpibR1)0W zI16NPQ5{ggNiuNX)tkAo%`)7&ewx!D?JheeJhkU+ciPbGgf`ippb1Mo&~qhh z@K@few!%V{#By`<_?3beM7T-+Aa)Qv4X##Ny`R&OD^^`+qvggNG%~?-85)jk(R~>v(?Q zB^Y%0`|$WFWKu?07CnHiM-~-#uV@Kw1N4p|!Hnr7?KuG1u*8~viuWWsIrP7Mhe=XZ z_m9KvhW?|UyL`xf^-(-3GZJb#ikF6$y9VJ_#&kilm=^laI+zHctwwJB1bbQSW@F}U#(`P@B#Z2 zOk-&g&G^4?z1Ng%BGV-?hNsMBsCx|dyu11Az0W}D!RFAHf3h-;FbD1f)|VlUn&xK7 zx}ovw+jY$cezIF|^_H!a$=gkK(!SgGITcYY__nCR+COk!ONwj5L+FnwPT=&O^Y4|d z0{-V!!Au(z`pKA+sPc5)Qf{}ma~8l5eMt$qP6eK4bIw%S`Xvpq<)1yZFxtj}AG*FR zYEoEdVsqtGTt+y_GVDKPMx{xSA}rRefp*PUiAXAlt3YX1A7r|d_Lp7#&=@nlNW%zg zi|ST_m*I7}9*Sdt_ser;om$hFyz@o>E(tDR^cJ2OuBs~40*qGAtKAe7287&l3SD41 z?!;I0ngZ|RUIr|P$Zj3fAbl?DmNZB1CT%3k$*zY*Uf60n#ZggAls>;2Cwm8|HL@MN z534Oj`kQDYX$_I@d@9Eh@uW!QfuZA|QpkH{JK+b-vzR|Gm<}D$RQ<@%@4&2r|IN7! z+$$qU6j&eM-shfyo(Asn+l9Efs&0RjfV_(BcC>>b_f?ItTj}Qzj|Xtj{u@oDBu|QS z74mWP?~*@q%B{A23O(5D(emwvb;%P`ohBnO_?p>!y`O#itdqv902ag7n4u8rveIwZ>(iA_avLPp+-*7(a!0<)G#{wVv zmByCywRfy`yTK#SRy`QT`LU0v`IV-w79&D(2m#lJeDa$}=vmiw{s?q09zC zN_|Nb)bPd+V#bRN#vQmxbuF=HF7(Y?s@xJ!LMH**7R7jd>ht_N{XlFO^+UZb@wdjM zfi9rWkUrDMeZ)Y_YR_E7bw$>j0CU`G*u8Ya)sfZe;x7?iwtsuqy*)1b8k*uYBnlpC zEHZTetBt_2KCN!+uhy3Hd1BM18AqHjurp+}754vbKTgR+16P?qT=OKTb&!TH)Dbhp zyPq3i*nBFB+jYK7Et`UpgY^;>6AET7g1IrS$+m_~avKL&gNVt-;s$ME zC3l>kL;urVWk+R>tyPmtftUR9_bj13vd;r`gv+#rPq1-dXTlbrVo8%>Wp+h0t#9(h zg?Xg0F4q;lXBIs$h52*PKQE$7^+4@1E}v5)>|`=%kXj_8A0t7)dWtt%dLwU!{KE9L zo&=!7SEV!8AC@(`jEP8Bx6A3UgZ2QJnh%Mceq68TWziA9Q zYv?J&dQmGF22}U>G1&QdptZqcdLi8(-;$eRc}x(?#pi4<34%sqa#Gz3zEvgq-%#G3 zPLr$RS~V|(#k%Q+6Sn#2DTbth6}o@By+F@=`h{9JvW9D%f*y$+WP&{!qVgGuna@@9 zXr}6AvL8m|a5?Im@1!A)`LRC8Bd-gucqJWUsDGPB(@7y!^)uhA5`-ia8G^5?t~OQm zVAGX1`i8zdognU`ce!T^CEU3)&x z7!`W${kS;P%NGl1$N@Y?oGoxcod$Eomf<0TGQ5LYl}z+y1@{=PzwA@Yye%(KA}1Mx zhgMurv__4;hN{ne&3Ws`K8ftMceQ4nExTWksB^-&keqwguI>>y;Ih0tWU+VxLQ;CYL{5%@;yZmfhs$rCg%k<{hW zjA$6~ce$)iw8vUjh4;7or~iDv%I*2cOec|9_6yAuel7p)>9avOi~;GxUzM@itS-C7 z@(SZ5!AHTpBa^+8FDQH31N~{#dujsJswAJ>0V+^!aQW=fR3BH|TB!YtMpZ)OB>&-S z`Q}fslcI{D-8yl468!QZ-O=RCb|TBC+J-JuUl()KRsg@sc*yhIQ>CSCpKP1E+Sti~ zX2PHhk??WJe_U7#fN*~!GpwgX`UD)yao^%?x@|0g))L~+QO13WTzDeuP0@w}9~VXg zlidrAJvx%1f$e=@3Nn9YKwrDECrXI==G#5L z1x_hLNwM{&B2#~9-*s@2PWd$rFJFs~_Edu=iK=zx!V$Z0g(2v0f6tv}O9Zph#sMzcV4u{%2loFxA}SolS6r0Q-C;*sKh z3olskIi)xgbAURtcWb{~;4t>^#|=GedBsPqjvWc7N@v8{DDrb$;UHr#xf(pJ)A1hg zPmXt?xYsqk>%?blhU;=gJsULYbHMBa{@p}z-|e51S39futo$A)Pdm~h1{o}|P=UV= zej%WBnmZvN{RQ*|=`sF^kt=085yVF=mBHyfsW^BaVvk5?liqPQFX_EIQ=Qz=_lon6 zU8$ifD6LNJBX5jv;z=DQ)-3X)v-j!_Pl0W8s`Dvl>jpSl!E`UNJu7I3FYCccC2=D1 z_t1%F1~b|#18rvWV(Z7#t0n-~z-|{%)IT8~4i^V{6{`M6y|d>FYu)1Crcb;mr#wjDAq5 zD20~kioJ=-nh_0A&MbAOO(l!YTqRm`qi*6JO4Z&0UI3RGOrhSm{kjluCl(P15j-W= zlpzOJ!~Pt%>4IHvbV*bxtyUCh{QEuGJDDJGK8frR;F3XLEZ}QBoe%<+s-7Fn&c2qpwU#J$J!!=nC|64r5om?s8Lc z%A2sq0rKdXp|0RVSp7vDUS+$npxG4}?|qNU8yh=13tk^}C2BV*j;jU-8Pud`KNcMS z5oF*l(H2r4-Iqe;s2QL9>LNCBOk@K835GJ|=C^RDU}C54%U}#mH%)HqQ0hRCaR~#@ z(%KTnu5h3Pg@FWBd2hGdoqx0FIdZgOD6+28=h$(2s#c_IYGf1#ds*4q)OgkZJw9#9 zEm{ZhP{v7CeJ1lE^$1*`X;*c@pid`98D}?hos+$now1JT|2=Hy-%c&`VP|@7aQbN4iWS9eS82-A13Gd3?^)lBkAD3= zrXa+MvyaCZGixOt`LPX+i4uZFf5?14-g4p?j}#aDYPvL9@M&Io#31|6(fyTT=$a4q9UTv zGN%b4Q98T(XDLiAf5OFf-|X}3PdCYpGq`5Jl>HLk2Q;l z@BY4EQ~qzr+yj6WU3yN{oTObh8Q!>?D))tnQr}`r%(YRy=3G^?XetcJsaVXBx@#Xh z<*L`$;cl(qr%rg(F1SYa@=~@T=D@eXJ!)RMh3{>Y55#;}de7a3&(8Z#%1RLB7%DQrgQBqOMb?B?oDjGq&xVAvkmC zuxXp>M1z@>saj#j!2;TxivPDocD16{UVYR4eUvUXy}6l>cfXQ)@SBDX>BnQ<-j4Eo z={@1iY>@Sr<_2+;ySq%H^_Sqw@fBA`NG0GA|JoPWKguHI=af_Eo83RyR+X(oQX2Co z5f!j2bfG{~(6IAPTjYM|sP$oY=z6QRr21XdA&6Z4G>PhhzoxO5^&I|DDnS*G?`vXB zMC>RhR@tch45M7ghQ1vuJob+UD&RzEL+@yf2A|Nd=>e&Q2ZB#Lzei+V4V=0*q7Ha~R3BSEla9kiHi*$=>e<;|vWD$` zyL+H|#-h8Afmsjt6PIr5W^jCg169H8uYPzOb@_r6^c`W<7?3(y&wZ{IpdMQ3C|K7K z{)gs<)=(pVsX#-b{h5APfzZ1yz{E#t*jDHN=W4Y4E~r>WX~;=c`;h))3-4Yxu4cZa z9?Ug3rg*?$o$WvVj(5J_Jl4a?c^>G4-z11%&>GX7QpL-s)a9u1F5WeU8Sw6I(WO%) zgs6)>4ykf|+7+K=`KVvDPCuV2w;9}37O&k7HI=gkZRV6z8Sfss8H+;ly89`-b%!nZ zynGqCzUEPJb#k6onX9vUHo+F(&1t1}n)aT8^hJ}l#`=-3h9ecS+qWHik6svCE>!d~ zl4>iR6_T~T<~P*mz|@6bn^vPf3-$bNG!A3kcCJe5CnUjN2Cs(+!y@*s8Uz&!#SB`i zy-JNW#z9-T8#0Xjq0DB=+Pd!koU}5y58&n&v>8B+YC0yh)`uH+1k(@71p-8D=TK(iKWVFcsMR5+BSt zMR1Vs`Bg<4xhFP|@&vBLv$lM-_k09>@pQ8L^&>SPb6Oho;MWMf;WqXxWoRY8U?4E+ z)g0=u-}vW>-WZ(a+c421eZ8mBL1)|WDl6nF_QdC(V;M|;oqo6A780`@g4btDr-vvg zdOBIRf6~h%xR}yN?q$trmD4d2w`eyDsee-Eb7ZR1o_(ogi`+49XurPy&{exJL*K)+ z$y}aZa*XWqyAzdh@Q>PVN6)3TRu9CKRB675W~I*VV`H4pI=GAyQ0?}7DuLfA4h`$` zMV{D*_v!A2NU6xy-zoqU(Rqv8ikE4XNIFLC-xj)%WzxW zvK)*|i^yQPO?A@JzxvO+?nT8>lo0_Wcw8iw+)P$>&`qo^Ny0{c46ZsC3n!&LJiz|B z7RRKCdM3e+CFg?%Z!d4%6!!rJ2RgZqobA0p)UegsJHu-% zioC(Ud(pXV0%Y=(^_bS!#2?qO#|^)h)qO$hiCfUS<~=#tyYTROKGITPDm5P?P1=!u z4;csK9$u~jAori%;Jr9Zo7YfCW~@4xCE%`)ysTD3OZvQmur}R(L0d$o-PwGM|0L=a zsrc^LF6FVfnNHG;U$q8|GQ!0_JG^c7N9s4x4|`8ZO|-jJhsLBoPijLGjZ@%uFvDGi zxyDrA?BwtV?nj9N9dK6&<+pY6jMDpV;{b6yY&0Kv&E~o-uLhzZd#1G&R)Y2ewkjgacN9@Rd6J->hy8q=_*p%SQb!QKPzbQ(xv?F zzUC<7iuY|)Zpx;X7P>8)8Z`Y;Eh?_!hNH5{4Z*!r<~YlYlyUbTaxhE{_V&bXXF|9N^G zF`j^KyH9_s-|-Vt&J@_qP+gis$o{o2}pIeLvF(yf14(?uN;}1Vr}`zgJ(RR zXpel5&zx?fMmFcv+B)=Ap(6a@ueA>g#XhM#xwSUjB@Y)) z_*sc1miS2|NlZG)?Xb(!a_5CS;p4F`$WvaISf`YfeP13}+aRD>bY$WTp07LC$pJeT zRpbXYlL0JJ>Fwny?byeKhzW8laevg$)H%(gD(T}n!hORV0E0Y%TGRxu2=P?rduI33 zC9!#pev8J3bmalnvk@GYYtL`I*Rw{)jHMm^QZ<~1tARZ?zF2oYe^eyw#nSe5OyRud z_P4FC1u)o8r4C1xM3>=v&ru^7377xs5owQ|PpmH4!mll^{;I8x+V-#Myr%aaY28+U zn?+!HZcwoj7f7;sP1dvWuOyYLa$)=1w_mPi%qD^8#RfHmC&u^(!V^a39q;%~e-xOW zRnDZ^$UI_}wzI$Nocf=kQdoaxt@CK_MZ@@mCxYy*YqR))Fvf38wca+AdwsOl-kgki zYk#*9I{b#_%iEqSE73aB4sy$}wXT~jB)E0$gRD-hejoUKk9?83f3*bquGR3|;A~JC zx#{2u>|ua*Zx24^2jKdsuK$*j8C)4LzA(wL-D1z*pc@Tb0k23dxNHHBq!?rC?gN7* z6W^*3uL+%|3m!g+w-q|?`{R+-sUVGtpXA81N7bAEBO7?R6%KGbQ63<5Sgs0Vev#e9 zxn%uh=P%#@!vrK@tuV7~!aB!4^UJ77GkAzqw4JgIDS~72Y+weIkWk2DUUpr)ITb2m zj3^eLE!|zO>mJ9~(mb(j9W%O7yFKIz{O|ly=r{5G**z!Ql6V9*;&=jyWL`!m>HMYt zoIPeZLe#mB6Y+JKWbH<0V+tYzF~I$earHz-r+$#zm(1M1f8Ymy?%m@q z(LLUgvG!=5Fxs#;Hptf#ojquQXxX1+sl9K>VkzoB`7%PYo?lUv3~oGsVd1=JeB=G*y*G^%1v(mE+qSjo>Id;AXcsk{JNiBDsU6bNUfVD_QNjHygwni(h z(IgUO*`HTYmld~dOUx}_Ui1D^4MiFNsN+;loLze2Gp^TK9da>MzBH@TRBp?Uwaq>! zl_^U+R@`eY)M|NB56{ZRy2av514a!LpFmxw`|%~|>JxY*4k_ zuAz8f2hkJxYL9>-ONcC%iczM*L>-iLpD}$ny-1_v_u=V9n*9{6`TXxE8S0qrneOFx zGtZFik2)uUuoh1deg2RTco0>LX>VxwzrC1sh?jrs&TQ&2|ch4?Y~5WmW&x zZ2t+^uwLU!!Ce#(tcY{TNun*#FnU!p5oK9NP zr;jG_w;=`19d+_GwgK$}(i*$oy8sxXygE~FcYD1aAgMT8 z2znZ4oUh{r161#wR;<`}sIyq(&QYBS|Ao)T>9nh`#}C)UCJtO-6;|CXHbecCa^-ce zrr@(+dara}57Cvb+P(bc8x1UND5)O_TD)WZm6ruOT+ziWJ(LpqV@5r)xHmR>JOa7S&mCAuL-1z4mG&!y3` z_JKE^8F*A64OmvwS80#|&X~&mD2|t==a*wu>_TRGc_KvQ4%QaC`PTx+J*FUkg-eh7`FQOrQ_rEvOlX1t(Dj`XuF@9Wc_7on?`ZC=)7mN zLO641d2E*$;IY%-Vsey9I&F=gxui^TFCWvIka7TS5&6t@>J(23kgCmG8?fnv{iVY1 zQ1=z-AS)up`%NHW7t_AQ+<3tfa{>f1hIJZHYAmqR4Buhk+Q1ORKk!souQtf|5rlJt z@u~xOLP@(DbW!=T-QFjgkMhO-e(HPM9fSLM;ff56@CAStrLL_&MnBKc<%@SC)F?`ISAsgEAMhJvb&-*7(PdP5(=jDs z%>hjrXh3mm&Ks3L|RymY44@8uZO-y1olVOMjb0~q8T`sIn$kt9CG_ysbjdW)3J z1_W*WK7YW(2ZNv&*De?OyGah80w@gPSJPZ~OzaL;E3}8A*EiBYzkQjA%~hnM%1ul7 z{M5-T17|H)38Ply7iR%?htJoIZPvYQ8%p$nua6rg2{oa$zowNzUrGD>?cKvj=(>J$ zjg;UL=n&RkQ^)?(9+v?(g6dR?eb?*y?_W%YN!Jle0wZMuv<2o!WDpXiQy((5-f3od zea*5Xw0WnMF>W@{o3X~o7xLAeMn7Tie}oeiruyFX^*$fcA0hoj!tcPvQudi?aN-ro z6UEAQ)?Sy~^bZ3;%nD5kScsUjP1b&^BF6F)fNTz@=U~b~)$MgHkR?WQ{O}!R-=Lc2OmBaXOBLba1rsNbrFk zwK>Ns>fu@=Mz0X(;V8WO6FPDNwFYMO#g5F55WG0oS@HY9$G*&aT#tbLZ*xJqg+HV_ z6PQnqT{@pmtCFzVCN-|Xe@N;S4m1waiVCDnu}?Y1IL-svF(wt2VOkYMLH6ZdYbZ9N zlOlkH6Qujyaf>RhA=apt!wbjaMo)QfrBmy7H*>q*kNwDc;H)L4fk4T64JyG)2&gP}>-r2Cq;Gr&i6?2yD zm&Fmro3;v`6}$R$CX(?^LlQr};p!LOuwpPjZkRJ|FY5Vt*WNamh5t9jM6#WjKNJXk zj8y)y9yoH7a+53^&T4!1K`3RQCG<#M795dBB4@s zd%D2ze~Y!Zv%d}hMbPLKEwj$+l#h)H;X~WuG#FDs$3e%RqyH7~>dXcIMA^`49t5dX zv&W*OE#|wYsw4*OYJ{7t#-?S$!yOH(R5S6bwX73d4*U+L#Wk>3FJrKfE}RSu_=weU zF(j{wQGNwL%f^7pOEzVLgnsZ?_7JWr7}sLocycN2Z;1A@{JjO?wv)Nvj+VhihuP2( z>d_qshttT~9yfU5cId0hKxDRY!XJyRHwd1WvG0v(=FQ=^8cx#xC3k|qVba~&{Uvd` z&!QnRcldqBY8{Dh@UM&;P2qV6*VbpdKgSMap}TmBxz*Lfn7ZkI8=Jh&Hfw^?w^IaN zV@xbhqb-Rb4YO_XS8WK0gK`ET~+G1Av+sHi{11Gd{HYLp1(^#8^pnO zUNfih8ga**&#o+vic`{{f6pHg&Dj8h`dE6gDjBy8do}Efgul;UXuvCw=e1{#RKstx z0o)Xh>nFyHfY$=SdGH-PO|hlJ-_TuRFj>cAcWcO^8iq?P8i3{Jo=Z7Gpho@ZN_&Mm zJ7Rs{PR|0}*gH@kd^x_4@1SlW-9v%#)o0U&8*XwCYJm;6Xl>YfGKA=@_AfNPKy@NT zSNTq4g;m@!p25Bs1|3JYK5lRlpr$No@M7rEE>^#>I2LQAPD9aGL;V=jlTOGr4Kdb9 z_v_}!7o)?67YPvup5?HLkU!UfIoXH-lSUcQyCC`eTwW_*NV&F^6PZxmC zp&G|V>GiB>-8vh^B9{fPqXH&jRBA z_0AHZB(|AaeOOgi1W&a_03Gv3pqR zhqnj9qZ7@&- z+g8w0pU&$ZWm<$O!XR?X_DQ^)?011ctrUy-_9Y$i`;GJ$jnZa&NyfOW28slZwvKPa zKkb<;=}pUZH_6d@ZgtV4OBxO4TqD%Cu^{w*0DOYgFv3_OXCi%d?QT;VIDqC&|#ACb`q^?zP^Z z{%ih=UWcKev_JT&DR(Es>mKtrj^R`X%{&2;^P;0`K~m{9 zIjSqyhTAR&SXs0>9%<8!9ftkZ3ye(B`>ij{&tc|8?u9fS$enJ{s7q`f=O}MG6jXjOuW!ag#*xc!wO$sv zNaY`Ey~wt5!sOh-hN~9;RI^#>6}ChK^bHsdWuAT|IUe7CC5WdsN5QN7YcSTZNiH&K z81(JzcioW}?R)JlCmg6s256e&1!3R%{pE@R9eVL1aZOiydr44^MHQL(DQNVQPiO^n zZS7o4Wx=D)hp_6~^QzJ_TguW`DMl&_Q|^kkCZAOV1T}$;&c6m9@9~6w+NlcXR&NUF zyw}j`&&i3}kn&*83^H$##_LkpmszVxTDKX&f%%fnoT8+TK8ne(asKGa^x&)}W&|+v zO~>xP5GpS&lF~F+x&<@1bg$*+x7k;|a!=(pED6b&n>n^*L$2k%O^!K+PR4kJXF=x@HyEl|9&*7{NRA^C7W0Mqei`81RG3+8CLX~&qLd8ZguWV?m#PquP0 z#+5?pB0Ohm&qp}CZ~TL5*GY|X1T4+jwyyxCgWo#?*4zw5sjM-TrGuzRR3V`}UP$X$ z70{v~8dE2Ab*4f1z8?1{?naYb$7GA9$24vqkH<%UO>3=n25?9KG<+_hU|*>C;jbx8 z)$(`Gu-1PZq8$|3-r+868thjhXbw7ayx~ZZ-&Nov)CsmCvdYk^(K??ffiVz(88(znBFguyRW*& z6aN_-B2Eth|5nu#!wY1zmYQ+_sPmAV^BURp;wS`&kfarAzR*KCP-^#wt-n|)M$q+<;2MpE165ArvNMY$i&Zj z4f|l&$eU63V8>?FTtI*4#{-g3afGbd+l{#f-m`4&p9^jn$Ytn`iMD=ok=c3) z&gzHOv!Sik5Rb&7GKjkP9b#wyh`ss|?QQhd(U^QLFLr$GXy7>YpuFe&!FxC;dCAI~ z?jZeYzG*hG3y?B#7cxrcBS+6GahWefm+kAQZuIT_q51V&`9^_n_M*)$1fUuYgAk!> z9t2#j+TIBNruPQ1eTPlaU$rz~!n~kCC2i-Qy@iu)pG5j|3IYtjWum$C_sD6N`j4Q* zJp*4v@Q*ei3fhTb?v{^)Zf8mt(XUv8og9h%QH4b2bhom7n$&yYM%D@KiCd?yCI zS0+`;rlyBrJ35=$Nh}m{H4mNgcA~aDj=AbE=Ikw-1zhVvzxMyEi-`3EO8;TrC8JMT z$^R9#X02fv1F>h}Mzbf_zwm&q7t)QD5buYczX@j_P zg#yi^@)WPRuZKh{*z^oKokvtZ3XpX^k4{xi>(lrmjD1U={s2iaDuH#kOx@b5B%4ij zAE->l$F=+q)cTw)-*m~2BKwBh9weX{)F8QOG$5+YsP}oQCYF&V|OO z#0Z(e#TEdtY8SON5QTj>J(n51ldMFZ-ufbj*hjeSwf`(k%dPd%}D2m2r0dE1-3R+%JN|(mCFV=tuGy;01xqZ9uC6Lx-}nHM6m`&P`!< z37>A>kGfI`HX?^Gz`A;gimnQjA+SDm0#KR)CH>899(8}|IyEnZMl_yic|Ers?cLC52|*U zs9;&N@Tw+X+I68XS$#~iF4h|2fQQ}4x#$Uta?o*_K^;0;i5#Iiw<);8f&ZvLy02bF zXIp4kMrp4+62~T~d(iYz^l<1jq3agP&6~h=jpXY+?J{E7WV!XDJ+Wr5G7-(Eg@V#O zh@mVOT?RYBA)oa(!$i!shXW!#vn54R4C&Ifn^-4$H*A@k!LkqQH2fD)YpdS-O$bmR z{mmcKJkoOs5P@7yu&SS5RUB0KhP@-&)+mJBdcfi93}U|wwTE{!DQ^pO!{E08?TbdJour2KF#(poLCjigDV<@%6312;q$m(JK z*n2YO%i6nk7zgoI`dz46rBa9*S%KjsuO}OYSsdeATu!J1rEt*AwTr7W=N!?$Ptt@9 zoU4yfB_V9kxwA4aK<|m$;E46Iy8--Oh{YYi9GzS`R6Db(H^>6ufdmkcY4MAvCNcpS05b0x%N& zUZ~~+!UcB&NugdBtI#Y|VU@XUu3n{|@skAX+Yc_SRRLcf_W$OB+6woa6EbrGLiK=i z)-%ItJ&POax&V!x`b!Ls>@w8Y{MXQhQ^YkZi+i!>L_T$xUtb!9exEF1D$`w9wN5pX zEs>#TnX?S9y*b+f!qREzI`T|VG9ISfQT#-iY4+L!ry|Oc_U?^C>OsSEj?ebaXZP!r z)7U1O-=08D)C1jm<*vz^&gL8f_Hog|Z?uBtz!I`Yb!n^E*Yh7vV&^26`YB4K;g{U2 z0o$Mr*WEuhU552Ud#$daytGt(wXd+Ax*X{Nrbzf{n2Zz< zzYv*+-940uf}3t{1}u4QOzfwHqsK0tdb-oXD~*MZv2LT7zu&=Y4aJB=<T%zlO$F?p&UT&0HcIbO;dYgI`wvZJ${W=B_5kq< zH~rR9U8Zho+zZb`gtWYKWdH2<%<4fSF|(M>%IdTFqqR=R8gYpyyOt$~EYdO@M5)dg zt?4Tc)?4QHEw=Q&g6TvQpEMFjQs$@+p85LLZ1I@@0$joN*&(-x$KUZ5;a3>{McV`v z?0_M_X~Ho7)b=BHm~7)h^C0RM2A^3YM(Xi z#TaV?+=l#ai460rl&5>aBD;d|uuTg~bRbD6-dAPZ8~%AxZRJC+po=o{@|z1w8^GK* zJ^rg9(k_ce%0|*bxTf56fvXlApRsCzP2)vBV`ce7wad zwGyP%;1F?~5dsr3DlAhpQ=JW3WuLc{AIf0dw*iBL7ajdN|^b=Hn`sRmZ^>l1$TI7BMR{<*L z14dnBY3M#tcI9H_@5n8h2Jry$dM^)A0e`NemM93w51Kjy&98qhoSt@F3Pc22RNNdv z>06NqRqwf*Gb(;lgP!&VD<;u?es`;3qg3OkUJrDSNa_0K2e*fs?@v!f+2T?#D&+S$ z()z4X{xpfBQl|+2g)fKu!3>;})SGvP1$b@RiF8f4he>Ey7yMu-7GTKKVyoVsQUv_diz(fcQGiiJaMQi_ytw(NAk30(X zQ<+Y?b03LgNB9&zFDH)P`Ppf)S5Z&(usPE)j`2EnNTrMOzrRi#3m(Oo^7UCe{oZ~^ zJK8q(o6=tTdd5oT-AZ%{^Uw@eVWziT1XeXlOi$#JV5_q&UGuMdI3cF}G3fAUXy#bb zx_ff?-FM9g@*_O3)jS@(<O5(u3!HpU&$O zT4RUY?hjSHZncQ^c;n$)AXao8Aq?Wkm*_4!hocT`HS`Lrf82uWB)NKMwAvD zD$627PqS{)TXd#RWe4>%qFPWSIf2XmB%9;l9H<-I(j$^vT;LZ z14ZDd;p(Ry`NV-2&quvI>W8cr?{F%1JR_In1ZA!sSgMPT#|TC`_y_GA4LZr_sRVIjs0`n0zyU{5Xcmv352I) zQ{En2KRE8=I=|Pi{^sO=EoV=XUevSoS4&U9Zn%;jORH7pF#nS8K2U4gQ5jHFpSGev zUH)e!G=R*YOH~dQ=iDK?W-gWs3SnhH)fH#-rf_dz9!UN&S@Vj}8?@y@eF*n`DU)Ff z)(wMg{bg_H8(|fAYUI2bkJgGQ?c{SkXCLMDL?G7`sha4(nnXZm1DTi0*@J~m^sH=$ zbY~GqlQxneX(|fS|0C@5$Hm&0onfUq+MV@&#?Z#UVEs?r7UUDrZt{RuF)DW+J`LV0 zRr;w-gEl%k=bTsh&0x_K<&MtG2>uhoRn!lXm&P0_b4-9}w874r^OOgQ+Da_*A2O)+*l zgalr`kQn~LAK3yEAN+gCTmF%sAG&2ECW_yFR73+FfnqzE2yZXZV8KpT8&D=E2pi9+ zjPk_`nf-cT=c?WawVGicu(;S$ROjK#K}F9P#WFuE2SW$e<%10K(|CSZBxI58?59h0z-dLVvGXh<9-|LhHC0GP(%NQ<9>5-x0y` zTB{j-?Tm`IbwJ)ry85C&^!!x=aw2urqcX~uo65bRtwbm(yculWmQ&tvqn zt#@xd9t}Co!=fL#URB!?;+o;ug z^THAzS?DyMIf0^1anh*&sotUt*1fw*wkpn z0ezPBIpEZrV@n6+IHCelBeN^Y!k-H!-ShHO4O*>)`yxAN(`qbwSy5q*gmbANgru^1kpETuhBwR(@;(bm` zX0#~)nYDCnck2guRF{&h3i!slJOs)J^>s{UuKUgk&P@_+C1(1?w>?4>h3A_#4kp?6Vs!{SFA7c`-zKKw(ezc z*|*N&?r(6{EkqRG++*Qfg~j6i#m>2oV-BMZF)I0CDI0)xM`8)OerYSNyzfo_sQCa%ViqkT8 zE!JoJ3DvHe&w)|6*eibC1Q+T(eXOE{QkRELd}xi+8BMaPQ$Z#QDdkL>jBovXRgCP? z#M;l2RA)))n;Jm@SWbHz>G@(^+{WOe-E%!AzoVShCXA(Z_VA*o$TOfog5x{cz>gbLR>v=E<*@S)>Prey$P>*vV|GXg<qPYuC0ZLG|@Pv7=;dxI!@Nx(}|ZKam%!OGyNMop)k*dnUDDU;eCT$G=Dnt#6QgY9_Y zZ=2L&8@c7L3l`dSaCwL0Iu|<f{9Ouy zo-_5yZ32RGxDO>T3)JYgGb}EcI z24wlbuJuFRyMtr6e0cNI;D1%v_B-qm{Bg&6hv_O_jw=HDR1u>plRJfzo`QNHf}}g# zQRr@CS=hJnds)B~H`yfIH|D)@$D?`Sk?m>x{51vZ!5b%hLMH}*pt3r6;TAHCk~`x*I05~)yU};M8FGb=UBd<6a z@2>NznX;q3ca$K74VI#2NI866j%}kbv2ju+tPs(@9^m(8g`18H`!7cJsaRh3^SM6d zzN_6#foMtJhu}o~%vHy-Ym|!!?CDqCF|aG5Z)l`$!cZBpB5qBu-DLLnJm9utWJ(P7)g z4eG};rcwXWjD9)FDk`mr~@fzasXVM(2DRYd`O}@+^GzW?)@} zUzhU>(ued`H@QQvU(rv*kUt@I6h;7T@W6LI0qg|f%K?l(8zU#&J6p3S*dW}xzF5>` zUiL@~lLj^k9+l7M(Y?VhH!3~=%CHe5>ebdL!dL&NI>w0VQFAqgy$fVTNYm+k_iyNQ zC=T4Fm#4@B7G1vBI4}N384qap6gW^PD>=CH3Rs}P8uq%MP(Uc#jqiX)|cHe3X@E3erNLs8vm=LzGPLq{GJ3aWZR)X&riC? z^G=u@_OuSO3p6Y*8bUuDEfNJL8n92a%Z*N)IC6*Ze06CBBe>p(oM-<2oA$x~MyH+C zzvh4csTC}6&<;GCs@oFQnkbbCo1CTet4s1&^E$pzUIckr6$qYiktfUjAVC8kcy#eOJoB2S{r+gSL5Fk{BWW5aD#TYnyL_hU|;!W}+J%qu4C3nju1#BF6;UDyq z$bl!ep-7=WFvtk&Gq*Kdv!+$+&=ovZ+yy`c4W#7S_A7(kmlq!3%I(8!hH|oxH|}q| zA-uTOWYIPm(!GD-$w0zR0XKI#|MNC6*ph&A?qU0(w@QcUS5kV2=O3#)t2>1k8S)|M z*~>KPygdvFZE+#GN)wC^NJXLt_de;rwrZLva~W+YMiD2>uUkDL?apCBD(LDC=lu$< zgB-T6(oNu5UD|I?R;8qFFy^7Jl$s8B^Ydx74IoLztgiB4)ce)$7+VQ`pEy)Nqo{$O zSGYz{2ncfbUB{RNcV1)!eSY6Kv0)^q+W`4w{+d!zbcjH>&^Xna+hWlM-KSBCtT-9G z88*C<_%Zo0v+euK_Y(cH2!0J_){=#~SBhQRWvDdOl$2vvPd+ecPd(r`;(VKYR?FA6 zp8uJ}6R{1S)!M7S=e@gfi~rI=^qVSwKgGmw)=S!n+|pMnc<_eNgAm80h7)x(GH+it z=&|sZk5XMl!8TjmuY2Ba)Ay&iSpbw}6fbmedV?I5sIeYp6Os_Wc5pC|(0XUJNW-_F zEq-x<7PWhJW^+x!GnxJ4VbfN(6hRvLQCF9@tagK+^l zbB;Vxlg~0$HkTn$>$ZDD{PXpC3gJOp#FaL9iNN<3~Fh5Xxj^qz#CxW>B28zNhrk8;Dq#2O|O*-*jUiuJ^u1eW!7k%4F z&Z*X^n?AFIU2d*GU%?a4WL`V9F0oaSCj}O3MVnrP3+1+g=&w#Q{T6hk`|YR>)iS5H z%aER_x|D{-rc$xSAtq08wS48EO@oVqVf0CH}|q@*-ijd z&D{eon1!BW@(YFBlUwAp{c*QMZV#>-jrzp_$Il?#hF8%_3Zr@Nw(oCKD`UT2-~_yz zY}n0S6T?nv%MP~lw}*-|k)+H%h(8kdER(0e z-JF9C2HZxkCrtpMt;h9pt9cro-&=;##C8AEPCbZc?;yCf8+Z>6cO3C;1-8hbZ~QHt ziM6A+Rlv-EH)X$6Uc&}M(_o4&eRgg_AluQd@s!osAA9p3HP{$J^oFOc$z?g8s-R1X8x@4KTmY@?U|=hg z>2qXS^FNaV9x&Sgl{d}O*-Y5`O&vUXn{Ywh?Mm|}TBZ-9b~0x7mHmi4q9U67L@Zk( zNc70oS7T>o`N>&PpLteyJa*pW`Z2jc7t;_H0+t;YW_Q7ySR4%RcVYzrfrBB)fysK! zI^l45s+s%)M%ln6;q2$wK<6Eib(p($4C!B&S<~jEWtok!6>MQp&kYVbP7%$k(;lvj zn<%U!oA*CmB6iLmMZT%q-btBgN;758PO$5Ua~h((9~194nD+aOaDE>>M7D_il`7#i z+wv2-7nRC+Hkm|zbAOfUv?fAMNtBd=w+U;{{6SIzo&2xl-+$Syo}XDW`NH2C5;frV zzRXhF%6Drq>CwXd$bc?GpM6h|Wzr+sO@g?0mT7CB!-#`_FYy$|^iOHx9LX+jzo%P7 z?Ub^{%`0zR3%(M3O{4Y)dyAmo`hJI?Y^4Pfe|6veHG5LG0WLe`(K7p8wVa6+#EWd% z!)NV-QQ3JqZH}^x*#_2~EHTE-cV=!nB-pzc1CROieC1uUyvv_ik8%UHT2;Eb{`W)5 z4c1`ehkdzC{!46R;sNgo#|N0VX)fp|aa^fP3%ruT>05w>`@a;3o##z)k>B1{zMf@4tb6 zMc8Fx+8zR*BwAE*k3>+IDeKEuo|9dr`Dn^3yEJ8J>LwrY@jUPZR!m}Lo%{vF9(48h zXX}X{Tsi5-j|Bh_Tu9G@P+FvP;Z+Se)mTN6A?k-3yz>ae1z_1?K{~q_Z3@+}198g+ zuA8#`Ji1KubHGylzE?uo7$CidmB0_k3TbXk!IbDUmP|^<6o1n2+jict#l3sEi@YZ@c`K`955(s#){6O}WN+ZAo$@-Wpj5X;2);s*(7c zc5HN8)wT?SHICdAfuKVph@7LxW7h)VzHr)0IAT65NBCCIMd4>7>|gax$QkP~=U-PA z9Dc@@rIjEpQhJ#79)ni>sW5Y+ImduPYJzTdnkkn8=3Iy{yNy%0@y1o!SW4#v`DUWD zq~7JA@A(4m)&p-fRL8Z2jIOt0hP;+_WerF7@kYA?^>MyrJ=H^;I@|PTa`zfq$$UUt zX4zmNyf~U>b;oPPXs!M-*9w-}>(seuTbF!zr*OS)zuk#rT3{TDAl;1auzhC<0(?Uv zbC@biE+uwpumxp}F@T^UJOXXu(}h2b_M$C0fU?F_ZB#_Ci;r=*;}Y^~pW<(w$9m){ z#nN3ZLUgSEi)33={zTgCLK=B$bf`rK(k^7hogYcIU-jCJomG35%goxOEVz6R;TIc@ zAng8qmSw}`MWlwWa~_%mY9*|M&*0fqx__K@?+qJn;ESwaEc@wPa$6GrBuXnmy^)R$ z>QIl6l#*>U9}S`4uCxv?lG=wgrT58wJ-X2m~X#w|0_slcy-tLLiULCZYw#8Lg!I)7I~%{&-7g$ z#`Y(tS+G-$cVt4YG(Hi32hSHnnvjetxZDPpD(?u5vX&i!=8q~;CAg|gRnz*Q4F;tN z-iuBL^xc3KFcVf>@(l{#kh44BR$i&R@e*ZzD05ZRp z@q54NRDSIt@S@seX{M9Kra^~e^1S%F>@Y|2#06xW?$;8Y){!XVolhyL$=yOZ1$u)g zfMhu|Y3!I+^>vLDrLWm&;8a!q=Yg~GARxG-`X9VShxuK+ejw~uS1o*dt9-TZFU$Og ztQ+VVSwEwR1}5i0!=RJMQpMm*a92^&{;u#xgoK!CSUzyn2&- zniz#jm)d#Fm{`C{voht4fR!ChWCF3WQnyKF>?C#*OlMzofh&bBItG1w`|cUBgjI8M^LD+DQIgaBy_D7ukuV zwj-CzlJ&gHkkt!5xuEXa&vN?`=(9$iiWN$*Q*;;&eFx zA(Gt~MF=Ik^1@XkV?nTKFN6^Tv;d7b8cCOdp)T9WsreVXaQy)LzjODD3)fqV^NV{| zJ74f~0cN+#(+s#qf2KpPh*TM};4KC_a4u0J`AEo%4c^R#M%ZsPTFGjz(DBHDSa*!~ zFFU#tjNCFq9RILkWf{`v<=bA1u^+p)WEJ~;%?j{3H=Aso*C%eaftDW39E=#zqp{K8_Vcb@>!kN61L<%;Y0! zKtOq+xLW*ya9IrweMh%fWYiK(}3LS4<|RMZ03mU*&A^iMN_ zuIBAIq%@*Z43X7_aYbiJ6dRzn2w z<}o`#r2-Y-02f4*J`D9Ij2+KBIn0@80(H?NAeWXESo-AHp1-64XZjE?AaCCK0{ROx zGpEkMDiYSE2^5#wqYh;udYoKBtGKrPzUuhd2bcVtb`!wMQS17AAX(pLCd{#V&Xt^M>}P{*n+h|Z550KnT4qHxHac;WGCf_nCryJN zKw~qCuV&Lu?z>A{aPx2vg^iKh07<$`2lCD9?4@w4*P&R5uzD65$xC((5&@Gx8%Ei0 zURN9+TFU4a=NbK3WrBg9i)JMh~T3PMS$E46er+^ooIP+e<1B4;- z!Cv(!W-WW+(G`=b&uJ))#zr&TO!P)C1|YkKcvU+H@JHCRH8R5COGZVqe`9aEdpLh> zez1b@;ytKcPy6O#F7|CwuVd>~n?wI^y+8STW(M*F7>Een79%q;ljY^|BO>WhVE?+& z)#OsZeTqo&;Tbn8_!?DX!)Mt|(I{l%(SCM~mZBK`^!nwt2f7D8)Q|g?wI}RvVlqI~v#e5Lvv1+c6fN{y>VFh_LE;x+5 zxuuxkkp59)*zZUCFfsEi5gDkR;U&<2$<&%bC(mkjjV}Z*W;w9SaY<1L=!>Kj?bW6d z-J&fyQP6-u2x9P=w&%_&-m%SR5pgZn$0gbwiG6DpdYj1bA7`8hq8kURU7*)bo)>7$ zAWDU)4XXsOOZ1CapMhn~^c$|rh4d;7&M^r{?RGl$Tcv$^nxRV`ELEZkc&ZQ-|I4gb ztCozrPyOX|CL|27@d9eSB1?9_YH`N^d_Vrf=NW0^rC) zbD;tJRrZ`xa}x-bLDa>7d<&A33Bb9VQm4K>7!I0ai~TM@5v*9eS#=N&_xh!aZykuQ=&@hclP8r+(+q=&;bRWDg412PXf* zyWPo9tdL@}sd)u-`MKv>31kghFATk0{2}~UtAKfOjsammf@(2Xn5cJLbCs&h?}hg~ z!P163;Z77^xHJTcPK>_851|jbjSe*|Dz&It)>fQG2WkP<*8s>H~ zV^NgNb@!V1Z#+gZR?jVFyzD>Dkhf1* zYBXJ3NG6T{LN2;y0%LpDZ*%=?eHrbij16nnGZFLZ=F z*|wAY26xgn6w5nefM}7qP70Z)Q(A!mYyXUo_XhiL)@dk{1Kx~(e{i~uj{W21&GQn- zleAQs@+3<|bi!g*xTbwzuL?zFle`x0+=L1L+TcYWE zGZyy|c9#j#-7yUTbG3VQn(ydZ@e@6VwM#k-5`ch_@Ve0W1n*E;iCAR2=TvtzJ@Q(DDV__G9mNAc99h0>b$N?B%VCMzfxJfQqFIHcT zEA-XTN^TDpys*Zh`+^+4*44bVtOCU3=mu}lHBKI6W&6MM)(=aav(%=wy=1}o z2%EsQ>qy}zB43*SS~QwIl7!AXcZC%a>6#OM#P$rY8o-TCx9wz#l&48uCu)HzGp{Qf znAb0Iwbj`vo}3Oz0uJOF0BXzRm7h&DUhFPlvveOh1zw3hAP=p7P0z@#1t6%KeG$!| z>p6Y|%h*4U)({yM<;Nm8<O;Rt`C;yhqPB}i74gl|qH2QY#~;fU79EU` z5IoJUoDp_uqA&70)SY^uwcS~y-!7RaWw*(X-GmuAiEY=*>~+>hF&%eCq42|8Ow3hz zb4WSTHouE=SSkozF5rWgMF$!3w-=zf^5#r@oMvaACjScC&=8X zpRQ&e2l&S8WeNL*9!R^vPSw|eXzrp14z8h1ITpCI9-F^ZgkSQz3chO}N)GRB{ieMx zpD(C!o4nNE>$V>Wzp zq~3)3yYXK}-GiKipRneUjr@D06NRR;mPDP@lb=xm)ZfRqk52#BoqVm+INy0mC#ZVE zBpX-sr2CHjc><=KnxG}wn5eGJ9b2>xxcb~%mxFx z66F#n?80v51FHO|O$w?MBz+gKY=4E-HU(Tv&TI|u-nSfGOmopHM?1P-X~U6u{!ZJv zmMHNXdymg787e;b-(-KLN>Critt@ZmIB3t{- zBh?PAtzTQ9{etZ~+gl34VoO+mlY$=TW7uO>dwI|A4FdKF%Ugbx))cgbXr8DGQn)hl zV*4YI`6%$*K5@CwE^$hd6-O6uwDFU#slokq#7ZC4K{Rw*iVY=MdJG^1Uc)BPojPY+ z&)!0v5`b2)?OuO{5xXVjE}x}@?M=-n*X4WJC#VhOaV~okadfFt`CQx~c)atcb}=0p zve4xn8cH@!RP;}ItoIk)>ugjCK1WP2U4OsTAh5Y{3;19yvNb&%(({GSB_#kN3J`rI zdi*&Zl>ekvhW?Ee1dkIiUi7ll8j+!px*;|Ewt9=Zt6 z`d$V1)gXH(4X)F{XQ=;eDuWmL4y5<^Binc<4mx?9Zb0&$Hc>VzU;mJ)h}4NRSz#Nt(KRqM^8#`TI3PG%+LKw)7itQ zKUi&!3hZcLF3Rlo-Jn!eW{#9P-CH%pGPJ7W^MN2)DE>N^uS8us<5?~f-d18WI6XN z1x>wQJ=uxwoIFIu530c2dY9f|1fmotF~E!D+j{@|ynjJNu1FsZFzE zq*sn5+jP^r!g`G*JzZLd)uZMJE!s;Br>xj|vEfOvq%*53gMKR2Z88$-sbke3%JQx% zkC+&nWv3Kj)w)|+b09{gP?x;;h#i?lV_wyS)6zM-!uY+95lK7Sy8+|u9&KjZX)k6q zz}G6r)T1*ru;fpWv;p>G26$b$oVdggOuTBJNV*;0eZ*!-xy|n#nA-axM&u6K^3Uci zGy>7QeWQ4xghEJ}RbNeDetcJRr)hN_Z=?eEudLHB0Os{w#aL`;jd?qnhzUeiO@1yA zo;{=KdgiN;kPrDpW4OL4T%H<>(uEE!?(l*7Iq$Ut*AvqKC*>}GvMpU_FQA98v*#%| z+($3Q-R@Qlu2mhV_olx)XwJT4rMSSq{{_phBWhi@k{R*nK1E=*HkH&x1I2rlM`nFtaZ8DP1jI8_+|5z|K zS~5Ehdl>}Sx18t-gejVvPT|sG`(9Qx`LBXUUzJlDiC*$?lh-z~iioDwkQG|_udN$3 zZrnM%!WXyhCXPszl{Cb5so@(kVp|^oPOvHMwu`xPIjUcy1^mSJ#PQ|jX}uVEv1fGf z@}RhV+T3Z#bxrp_P>>MxNt@}LvIehDksPogXT zaLC>t+vGX>%^~>hOBq-ysMws8CLG&^d~0PVbnuEI?pdd|qYZRVNINvxrdlk09g(f4 zhzS`%UEH^pCDSq0RQ26Lt-Z5pu*71tB@|q26I3;{%r;>p!B3b=8B<`7F?)e9V*R;) z9FWvt#ZAdD3DS4xPWbCC+PuMKx==S8{0y{-pQWyvva3F+Ga$#Wmr>%EzFRgL&O{J^ z(&OFx*K04(mp_z$4X>mMUU>JYE;(dhosynIt*jkXr_CrGzVyXUwn?mHIB^8MDwj^6 zmYco6im!g%$vW%-yIR{(CVU^1y|(GkPgy8*Q{W{|*fh_Nfx^4qdTp)vsaDDGmquJ@ z@s`XQV_%aPk82j%70h!Ss#8r8BhSyw<%U0^MK!?obs9Imq4q*71_w+5G1y3VX3R+3 z_M}DXi0wUQscuRcyCu#In{XmUGo&?@;;iRXea{Ei9T6`LZUblV_$<)S>8)4hJM!=} zMcDjj7&11UE8Z8h(35H#r77|<3wRrffv>VvwgEoNYLX_ zLQaPMLt#oK3n1J~j#6N&$Oo%pv<~>A@2vt^<(95*t;IwP=Uyx)516)|Wz54w$MqAd z&d&WBboIcQ)0r4IFnec-1z`z zVW5>Sj&E!h_Og$-cHax9lM*-B@2bF+V`v#0!(v;wST@@-@-{ozL_PvvIc z<=;$B7nr_Oep#^9@4e+>B0n`Bk-xe-pd`fz(a`NkZFYkj|9MWI?V=MGbtlyjBk@0% zZe|m>QqD)d71+9<=^T9BJ@8YDEU{i6Si%9t4VYEoicr9n zaKj*4aB`WBjXRYe-c!FiB!(Z_lamj~pk?Th?#R_yJ)#wb-8z2pWP{;(A-)M*)I-JmY-We< zs=X=7ivAc7+yD;TK6_DH&Yaas{)<{$+{NEjhtyo#{k`P&`@zQ)2a0zk!;qz{DxxY% zykncM;a+m`po(X;V#itWe*?cGbp7hN+8ZC@)@las`lc>E9(2>QUEMRC{FmT{X%u?X z`IzynDnn{3&cEH#m6A{g+(HVZldlOS%MkwdM5ilQ%lG}CqVw=)dwt*d_ne;A>7q+* z+N!E5irOQm1E*CSrS>R_5~HF<1UWrgYDH0-q^eepG>9##_KX^d9hHTMAc!QA{QUlg z&+GHt&vV_^^}fEBzTlaT{l|8~amETDp(W6NtE)CAZMz0qIYBTMymLKVC3y_eTnMx zRbDDUz8F5r|I$p+++XhsGoeq4w04A!z;r)34IzJx(Yo&t_UH2;B=*o;AibejhBUqTdk9 z{bt@A2RXs2o;q7d3AEwV-}-Q^P}E%Tpx%qr!ada$czCd^kgCPha&gYx)sS9T$}iQD z3I#3Xgw};9ft6;XYJz{u)Aeh(jQn|gT`WmIa96BxRZnOfG2^v(YEAyO@lc0nLV@Pf z#gY2xMD&)4aa%si@Ii#>&|PpSX-%2@QzPwr^OCHR8n^R{nzC-f?8TJrVPBwdo$fX- z4YV}i?(G`!uH&lMb9Q|QDQu7Ozrc^cFF#HMz=)D_ono)r-_l$jX~G6`r?^&!cl*Al z$7$);YBZcjNVDf;3sIkcP}v&T_|e7aIHvnABd;lhW+EdwF$kWe&72s}Z0u{CGz2I^B^m~~d1m75NVRV-_W&5M&dX=KS zc6H9OHu(Nx#JR%WcabLxz8JZED;uV@VCOYDi#rp1mmQOw*@s_0_IfrR0hvaxHiVnI ztcjG0AdA$TZy74qv!G%9|g4=7nLdw;*-e$`KC< zHvN&W@gYY_Ld03BD#b|=dltUyBsfE>zQC{uPyzlNK}141VEw)?ZE@N;Tnr*S7?y0D z&KX(oB}oO4!1~H`+ZGA3C7pc!vQQ5%S5Hhg88?|L*5KVI7*<5B*=ei3IeX>u0D$s5 z;mOYb;=%5m)AAzwXCljExo zdydGn@*;K5WSNFC%<5bU-%Q%C6f86F-}=r1qpD*<+m=;L(!yCCF(mGUjg+S@OwlG7 z_ReD0aHku;u^)iW+q>sJ@81{%ZkMEVEovskm`UH&QNsKv8Q0<)J&9~ z{N89R>&SlA6uc?v6Ua>6c;-8DGFtb@YP%=K?a&dNJ4$uy1K;#4o(huO|C9C?^;1$yzN=ieL1lH?Ve&+uQnXhycPys* zLm8BJv9|&*_m|p2mkjAkoSZx>_aOnRF)y8Z)iM)e2CSjq_k*sQ>Bx=8evIhHcWwJg zAK74hDKVFJRD!eGwjP@lbCoYS-Qu4qhEFbdW9ME2 z)B_Q9axvQQPq*!-g6Zj&_-jYr3Z$O>Om~-ifZOj_$8Q*?{n(ZU;AV%RJaOZw$_0#U z9KU%eVAUpKZnU&Hl#L`*dRk|^Rmk5tST7$V&3oRwEVb@V0aTlD{$zz3&~+M2 z6!jID{rb-WmpwZNC7YJ8`Z6pVnsoJVQlDyL$>2!k$OG*-wlqbkAf88pj?O+OoBLE*}A;O~A(k^U>U! zUMvGQwI1lF`mpL2827{Q(~Th7m0LWrr>oPkPTZYW9zdE+57kIL#;NAOe@wz_)BeTA zV(Z+H{=>f8>rK^7b!Gdm-4*7yk0twvM=yG2+cydS5OWDsG`-4tr3Bn5&`ge1*lhDM zRvBf|zcZx^v}98cvUbJ^*cQ3%YR`wA11&jbZ#tHE^6DDDt2sWIAxu!Q%-Q;qis{;( zEPjY*%^!j$%zA%KqMS)k{6P{OaKm9ZIqlf7fw`XVBVK@WRehZ6>e7(yjay_7j6LSP zw`+jD@WvDH`eRCNv*;16CK*;zYu)*1Q1H-lM5HC*=gn__v@*@QGM@$x(A=3D$yQ=? zZuy5}DORH{AFP~Yk8x_@%gs5Shya~47{X)2C0@cCs@uSCO0ilDb6^BZ+BC&^jDS1n z$b~tdDXDGTlU(Vas79m4W~HqOW~0C6n=u+s7nT&_yClY03&Sp(YmzWUP@%WQ@qWFL zXPYfhkdJjoUdQ?uJrf>6&*X@E9YMJ?+Sf3wqn00xeQxOce16e+w|v3*fzf^6ZpfC3+CI%@aDK0?aY6a; zqTSqo=+U}@EcpKhg@euw$XLHOQwES;p40tV%DOGb329)xIvbKlEl!LJxrA-Kq(Q#) zVkB4`3&s9b_ESh?jAWcAbT)k7BAVJiLi`V?;!!hpCG@B$Q4?rXL`>f1siZrOaKk^K zDmmJcw317~(Z5{G-pJM8qs-ZFQmX+#71snzQ)BVM-J@UcM?5x=9P<3(dljTyt;>_5 zL~P1rfxL>`cY^5}L(qFO(%XF7*_o0XcC1aaZ#87kzGl*sk9kAQGk1=Uty)cpyNGNp z33lf0w{K7fO3quk2xl$oF(P#Gmq#&S=X4bpqoRY8;$5$oo9^Y^TgKbvfGqmT)pdH+ zUr0;#J!-e2=}Pw1w5#`zw>!|vNYg6S_L^qv=85(W8gTN(IFe9I;5ojB`r2sCIVtzT z4!e}sc#N(^d+naHliJIgZK?Ql_nF-KXu=i$KYO40?Xm#hodhz#!j4K?yX1E;Bb&lN z;eYl$1TvhnvqyO_49^M|mXlH{U5P^q$+dF7pdEo_mSWL5DTv(lp$Qn;k=bgCRVUC? zh~JM)SH1XVRnWX{IVyAKDQs0zf%`nr@ct8H@}E(U1QDA*7Z%v2gWxalAF*?{g2`6- zgTbVyHc!NG|%8Ddr`!@Ljf1 zmdUwKVPR({?LG;X9uZ=aV%t*sWSs$is_ZN3K6amx_+Rf2>Ag#$tbZ1sZ0}FSkrY0e z6wwnD!M|_^^4#8FF?XkpwIAD_g{h8cVxb5Rb%>`NVxbOcRFInerzWF+U5w)(*?3d_ zP!n^3QHBuy9q_cw60Ghp&oyD4_Xm-g z6)4%&I8i&9N$|CR28UY*_l2c{>HqCY&_3&BY~ROM_c}z#8ukm+WkI5?{p&U&?lrnY ztB*T?S$i(kf&2;Gtt>KL#SY%{BPV}@umc;g7nt{v6DU!s7dnf;&(>nj|-?Ea-%Dt=-r0vihJqNod0@HH7r$v))%m#9Y*l^TU zVb7d7z2AGG#Z|7G7URe8cKI+rUDmMobQ4{*?G!zv19I^{XXsdi&R)qcvDd*)mScA~ zetlc^4PtAA&Ywui)NK{m%$4Szkx}5ZK;)NXzs3HC$qC##R{RgsAmz*R{C2bO-5qOG z{Jc~%#oeL1342nyIbI#Pq<)IuNLjE3t)bkcXtlBFTqhzwzWS1)?uz*7FGlp4%He}0 z{owx31&ZXax;)BKOLhd$!y$-+`fpqC}Ct4Y<=T^=FKQ&*+m=_U{SnvlK@)YKkpWklKY#pW9gwOJed zA5%c*eK%k>S*G@9>fA}i?1MOvR_Jv&FURuZjkz8am2hWtL+o#y zweH>XTpQmM8}3<%=@WBqJ!j}TKh1LX>H~v)Y&>SOEYta(CnFb&fQfhx*v%??Pfx^VgdCxp`S$l=L%KTAWF<#h;BR?sMbe)h{5i)sqIJ> zHOJ=emyqoIW4pJ#Yq8Kq0a;7ntn%2)BCA$y_e-oftnKV)pPJsjKZDeFKie59?-o#i zDanT~K!4sbKED4x+Cjm~?!6Awk&-hgca0U+*1l6HFobh;eSEg28pN*2BTT|o^@ip~ zSzlrnp`Z)CAVKSuy`=B^y)d=f;iCtR_a$`sG(DQ1wV>Dwztss3tH|2Jv@;lgFMN#; z*_^pJ&ou4oxNi1f+ik2~Bs|$!YGh{NM~8F|=VuV%vg<|gVv#9;&~LnD=(T?ViTJd5 ze?A%08ER^66s|@qXlaxna!`6E;O~Xs%Yi{XW&R&nZCll8TZ=lHK9EVmz@eLq>-L6t z0ta3BU2ekXe3Pw<4I6T6zjVOpA|#WoQkLfu--UeD^>E++!8l$4QW|{)S2&%LfFfqw zY1{w}3SqOV6-h4fcJ=%PKu#8K;CT!z_L{hO?+eKjw>3OuUOIzLRQ|mUA3u^>*^Qvft@#j(y5v zk>UKwl~@qNCIvfY$f`>b+7Akmr*qr+OxuCmMEG0?&M|BCbSaJecc`1tU|M82=YKsC zeycQpPlkQd7ui)5+j9tgDyHMUkkZ(rPKV@Jhmel{(Bg+l1K&*Nx#c67$ZNx6L}TNT z5Scy-V1f9jM9AHK(GP?5zTe<4bAra;A;H!~I&ClEg`>vrm$qWzYtk=zbSQTixpAkr z+p7}0#>D9s+)G$hpE>f~J~UrHl;xaqmD%iJoHOwCzZODb8ae8@>!s?nptBq-s)6zh z@*lruHesFkQjshfYOzlx8$WZ+tua*FGvei!?*HgN${kgQ=S^*TAR79fj)&07*;bq7 zJN%_V-eD@$p@8ZTcul_Pi<+gFBFy+RqNnR-wt1VgduZEfv)8v;LM7Q-V}A?c4~yyV zGSSy_D!i8Sw+vQKaB$`%kMd5Zv9qre!|%BX-Uv9dq5m1xwSCIBjn0#e=bZm#gc!d%fg|aUpgn&h{ZFHqqfZ3u_YYCM451i3 zZNoa5JidfN;hgX-evtg9uAA@$n2sa{9SyJVp|al~-xpU*gPeyhhj zw8yDz3|PBd5nvH|1Ha-Ds?m?#DoA5W8ddnDklSbk3omIPvi~5=rPCe8xP8CCzR1_d z+I=__yV8R91PBy(ug=HpnBjiq?@kIiS|Q3kCbjA%kY;NS_CKru?!NHuc)>vo>8P6q zTOv%k6zTpbw)IqAzr)s|-I#uV9h==;vdmJCwIkFuE6H`|$2OZu-&_`HHW9;Jx z40W%DtNK5G*G%F(+%FOPsg5H%3Ky=P0eQtH%X1=XV&tjkS|gHW?RjwgjJ_xb%)Wx< zX}JOW>vE>$NC(<5C^_H#vq<>`S@iwu8<^-D^USzIN~ETPTuoKQ+aDaOs(bBByGhv+O@& z{XKynW56!v9kY<;eDvy}E`)~suYdGHRYh}#z&J5XCv%(A(kdDg@dxp>dQ5~+3|nRi zpedt1{DbfQ{1UC&w!GdFW~Y`Odvh;0>etlORyK%tcVL_&H#w;I%Xko-)bB^2XzfEn z&(advKR2~xn5Ezpu0t}LsqnhfU~QP(Vg(kusWJN^L zXat~}Vcf-)*KPF;>fWYDH)>Otx*&ZR?j`(kzNmg+%~_N%yWH6q}DFV*KoV+&U9NJVbz4DjH?VyF&OPkX_j; zX-RmtvU7MhZ3wxOu%_w9wuAz_ep(2@Jl5Poeb;sRbe&%pU6`Gd!|L&%jAfSj_$F20 zixMfqfUTuRGzD^Wl?8_C0`=rd3G)elawaE#b|;=G&0>xWsow}GfEvN7|4>p`r2J;%uuJ$|oTq0){h>e=FF7It`2#I`)g?k(EvWQZv38l?B>^#L} zl-hWb$*l5GUiFc49>i520E82{)m@zO)j!SaR2k(pT{F@@1kZhKjfDh@Dx)!XEPGA+ z0$T796j^%|f4v4|gd4y_-NP^^rHMYSFo>pAr(WA?+Ala}5K2>1U7OF7j`;On)g?BA zZ<=;VjauCI{|$%2<654nQ=|GSF(YAC7m>u%EtdDQ#j$_&O+mJz zC@);x`nRnqS2Zwm{fB4Vg8x0U_>PyyXK0r((w1kjpIk>fj_xZ9y)D7p{NG?Ab#Mmp zWxy|>bY~g8uO*aCSJWM%p>>gr7lmW3I72KXf457bhAEv3na|w9Gx-x*uUR^76oJP=_p?w>WL0dhQAb~giqefc%#Fa28VkK6l=6HC3~Y-D*1yxC z@050^!W!bW&c&64X;O^OM0Q+7Ak}5+%mCgx07elNntxHeW--k#ZO2^}u~Nt#U`&?J zcfbg@hk~<^yVr=kfoWDwW*RB-wSzI--KZ z*Bv$y>&H0Pknp7Dm>&JH6`oS1`E+dyb6)i^#E_M;snS48PbYX9*QbRkGM|hT zz_(X_deENj%qEZ4P0#PdCK>0NI483j!qZ*mM<);C(Y8eesGLpIY_$~}DodHLOaY8W znuSUQDs6gnOcCdlZQ`Guu4t>bOoPLk9|mun0^de9ZRdjc9@c>OFeNLP0{|DSasxMT zQ`Z|3@Hn(RDljRI4U^uG63(=-6n>#TkRk)UMf=_}7s#+GXuu)EM|=9Kmn!LC33}C9 z$;~uUi#s`QY?7d-$@`OHg!q8UaDuIdIZQTLnn-s!1gjmnkTn{|WeYGC^qi-KGnofZ zpwu66%bG7yjCqs#8}(h3oXmzy+F!C`coEcDHlKR}6)Z-%1uxK3^ZvvY@drd zXLxVu8F86%*Wb&`ElK-|_6x`j=5%fzdWh?tQjS|1FaPYyxsoPL;h5%FQ4Qd_dDp=?R5*E|po|FR%Y9+SpPDQp%Peo@;2^sWD# zZY?N#aN_j~=i1}C%3iU@N`E5t2r{U zCA&o$^@NV2VEhaJ(bAY2bBQCR{@86ue|Z`80od~zh_23%l`6d#(TIk$l zm8jaokzn;q=m=PS!X6=Y@O1i%PsxYiT51~(lPIO{j_YxRO!CtRR&GwHp5EV`GkgMj zB#6sYb+Kw_&&=AEfGTp4_(ZzTKXv4dGTEuse*(KA!Ye3ofwbrNR&;{Jb(d=lzaqEV zprA{~oKzoyt!2t#M0~;^y7%BcLTV4Tva$4cTT$qWWl;vmBDz1{uJD6aItX$C@ljfA zc!C7D1f|z>FQ41!p+Al9(EjswaV+)TdOsJ{85l1;hwwFg!wZldtNCu|ax>JAWM~I} zU%u3shm{5OwnP6P2>E~>DXRaS=6aVSBcvpZ&1useKfW3T9_7VVFL z_|O2oqzI&8CLoEgM)v-Ic(XVD4Sq{K%zl_R=<=~k2nqG- zYd9Sfi(Lf{M@H@4+VOXVLqD`EWVQ6*%g$T~t`}(0y*aDXAycU7mEYAbuAeY( zIRX5Uk5Z|__9|Ap4@%~Jf9#kY;-n1Z^_ZN({6;E7Gbn~RX5Ks>MSMJMLRz1`$OZ-e zp}3Q9W4r7$xVF~@W?y{_^%+Qe?jW`o!1=Cc4hUaS9x+h9^LiA4q?Ql9Q!g7l&v{jw zNs;UR&diFNk)-&9!yddV%wXO=5;7m88-x~W+-@!+U(4#hw;8~6)x*mp^J72^`|P3L zDpV<$CH{MinOPNF@(&7#>($rOOqRFlT68*$`KUhvEcsrgQf7l~qBvuu)oFo6;=^hr zr#~e$)Ag*=)UvB0-zxj^o=(LjUsTQh6ES@6cF=o=TPx*Bqc_6qcZNDlVlT1fKc=nZ zIK+7^zRNvc#2#RV58S3` z{)?mEWnjVfxpGTK?O!0j*s)+iA4L6V_4kpxT0GLkSTtMcEZ3_Gx`mn7SKUxhY5lMH zYFCpNUDgZVLO^8dJ8g;NE21qa8A6@=J9$;X{I7@79q5B~$G)ab6Ggn>Fmvs_*`@h< zq?CP=snZx>w`}>6nAc#`9bm|66(w)M>=Z6(4>%+XwC{O&a%7ZDIRQiGrWNUSl3y5- zRM}Wve=TKJ?laJa=Lo5%T@m=slkq`rb+ejqTfEAxc0_AbWm%6RXDaLiP}3%ZC>m$t z>}$n3w+Am6M?r3liqBeFcEvwmJ~Itf5gu+6*h1hwU!lFbL3i3LPPH0{J!a zt5&#MVBzQcK{3ZVcp)&Ia)RxlbLiV!+ioPUbNFBRQ|VE9!CnkSI$V(Gd(YV z)<*;^j`r|&y8mL2A(}tEXWKj$3lMJi-F9!)s*4?L^=^4dDpLjIaa)*I`I&pO!zVG< zs5!ZhmkjipMiPzX3^>HeH+qx9v}lt}kGwiPh>V@;sMNAUkc)#AIa9A}y`vQPSM@b0Gt)&AhZF-nkw>0Fg^!J~=u{iIOsP^^ zu^IW$>3qT@tB*0t)E4@vp6*+DXpH@KyDq>ZfZ07`v!r#5tu^Y@*N4gSHTet>r@+5X-}1$#ceuxnmV(x$%e}K$}Cy+y$PHSD2y~1HK^B~;*}qSY~Jhg zR@h7?{y3OU@dnCB>zj0ARNdnD&10Z$$cI8mxU5NRT^P6nNI3kOa8#Ms3!C8U-=Tt- z8FdB3dL`c;>PG~=qx}Hc5>x-X{L_)&$wgWz`$#V*fp;$2X-Kc-3ZiILWazs374k_= zr!==u^3^uZIFIAbTAJ!4J>7zMjsk~Y>I|hlQ|V9du(r(hVU2WYDcTYq6EL)L4|C6Nw#(n9&lxECWeb~fd}-=?p>RUQ0}wDhp-$dEDhTdPQ7=Xkl>`NMk*X(6kxS}%c2o~$i&U{)iIP3%e65Fm9Cac1gp77A+dzr9T>(!Pyf%_y5=8<1T!cA){vhosZ`%Cme)2bHzE_Wp>t-Q1ox)}s3p0Bj%lR6s z$l04tG`x86V0TbFv0TvC)1cfd9_s2KH83-1=6sXUQ{n7yw>+9`6hMFey!2;U*B;FB zwkmk<@m%ia9`2l|K+Yyu7K(M@3#^j<&fb8?S4L;Jw!0%k?_M$Unto&h|UQ&Q;%ODRQX<< zm!xCuOe=P72YR`;KXAEMBRjMI5I!|2#SozC0 z+jY5pt#;ta>3?rciFN_fOGd^2dKZHmeAIalmm-FfC3f2a3jc_3hybK*T5|;c=7ZA^ zdz|~wZxgQimYvxhmKHADk+4QC;U4bMof}oy@(#y-H<3X?kLoNg+%9>B3}P;VNC6XFkYs5t7h>ZN81Tj#agUda-5OR zcpvxs7+U*Jr9=$iEaOpX^>%X(@Dh}}qlA0UCfv?eAKuhka?a&naF4jn`@z#e6t0Bt z%bKZ}Up3p2QY@CAE>u5Rdp&0Oz6Copvd3~g1#$a>aSGE^VC@FlOIr{l1)W`jqcb9q z9{@y&u@)RO-w00=WFS^V-IK%gWW$T;~sZ>H}op28tP!x;d5a@Ufv8lvlqd4OhBd>~4 ztX|LUz>MZz9}${`WB(XDRexb;BV_7Jyy=L6L^=1#eMW0<4rij$vEBE?B&qp*m~jcuS%H7 z>Pf>Kh&g2P^`WzYAac{p8d@t*QY@FI)jo1>ECOSlR^(GewxkW3*^^fqX8eKhMru6{ z>G}xzKJ3>``&=(!jU2b-P>~Q9?Z0E(fCsXk#)k#l6&8mIxEiBvuMxpvE|X?;UurQj z7gD1xu0=)Xr4A1JD)eXUXSrm;_UvHlUbiDi+&;|0uruYc5ozXnOs*51O)KYrc2YY1 z;!GKnyZcCQ1wwKAc6M4^1p~0O3`FabjAAEmH{$QSR*Rb_^xI6D-WntG$yW}-HdR3F z+RCVS6)kdsxA7%`_z6HrkH?g)LqPqvq9Wx|=5a*b7wCWThr(l6E4jaU{W~^>f|vVo zs8}xp6`)Ot8|&Jb``pr@0`rG1hHJ82e{VTC$$1uAvmNE6IyhTR{5B>7sq=OFgOJ$n z+xPpd{b`zLuEA);Dq{L&@LoxI$jT3%eQlMwhNS`{H@2kRc=M!aV~u`faZw`Oxjtx+ zMv(Az)MI0~shXF^Cxp6wDnU>2&1>Y8g7L{~*eRVSpM_`gliZ$sb0`+8gSAHsJvkgH?{lrSMrK! zvtGqH4Bx~IJ2`K^m4QSm5GFMmYQj)Z39}B@Zb|FrCQKav!|)Tg0_ICKJwk2%TkU`t z+V#VvCEZinIfVn8SP<&+%ny*OR<-j^PsQ=s;1AJ@bJ*HPMzLjFli*tNZ?fbkpc)N6 z@&qC(E-h4r8{*Qhg?Q}#T>f&?velx|pTdOoWQnT4JQ05>DWO^vl)Uwi&6iJdPPnf@ zBfK8Yp3m8?9gVNi;2YF@bdO&z6ND36+oi9ikB)Shu0OV%3oHyb?oJ9 z)!A@o^gpRcF#NlmkwD>@Rz{#6zqjz4&o->*QN(f9_DR$u{G}qTuQLu=hKj%ttbhLy zS4rqiSjY~%dW0=P*7sg;DL}X8AAvRR$PE!F4%x~5JeS4B_nkz;EZby5QR=6qTEO+*N$v|)NY?k7~v2*x}@fx4@ zeNf`hpm)ac{FeO8_4ngT#VS8SwG@jK_pM(U3~%3tvWEuuoW7M!k0o5=Nwkzd4)AON zq%3~iI6uwr9w%hFm)jXkcen(Vk)1vaq>HduwhW{K8rQGEWDbmJ-eIV)Z!=<) zZ`%3F{_LL7^ukO&2ms&jo%SpE`kN~2d8(D$vX^ZN8}?xFcUFiNG-@A~&-cTP@|;zy zT1?Q1UI54E_3r_aZ92x6xlA*STJi0#HK0KM1{CV(%&0W(M)U5{{+J7$ElIm5g>7Xf zw0!RLkTwj(k?pEc3Nb$kIxzhSrzdZuQ#izV%M2@%>aLCJyE&<8!{_JgVfeX+fTFkX zVwzdMlbdSc;n(8818G9(BDv0{zS7OmYpbRZF|3%@q}R7BJca$17JEecC#s*P`O5j5 z3p1Ok*Huf69S&0+UT?BqZL*qOl1YmvRX=hUloNh2Dv$XuEQXmvrkk_4D0TOi@2OdL zclbnK+vwViOkgqTH+yW^bZx7F*G*9JP#bXR&hA&TTb80(ha8$QB64^MK_3La2}CYw zN@-P-p$?jOul84qy`nDMMPh~2-H4?-l+)nzQy;uUKFnkLGs4U^lP_?;EyP@qyu({t z%N$gz)DES!j$-D%#lLOb(a00|$h-+^Z>$P^W4t!4d3P+?o!)vqqJ`Gc8rxN3QjoK; zT`bcxlat&S+r+*Hua`rE(lObM<%`N%_h!VV&2@a7w%QHtxkb#hvkx-yF*>^+8=kpm zLjFbVgV?*|DTay*caL^?DEIGRRsSwhur{M=w5mgakQMTM{BFM~9sMqxBA8N#o@F>P zZV2;BH`>hWDGov$xF5{#U9}$rQp-!KF0LSJcLBbVkMQ|leDWjT^_J1qbY5$nq`yL) z-dV7lQQUKFu@pbO0UwLZh_>D=uiaLNb=_-wL}4fS87{WRFIXqPsIB~)%WLc_*%c&m0XKB3f|@&V-rAy(b?oyf!gbQq)*m9+J})^xxpYXqYdYqjg68I6 z&Cn%Np!Z=h(+f7IiI#n~Y_}SWcDSVyv_StE#a@llbRgFGsqc_B zPq>?$T7YgFZH=ptsD&3PJK-L-FkPC40kAkc8Y)jbQBcnx)jg=_#-uARV+%9m`q8D7 z!hBJ&^0cof+VZ1%gUf)e(tew%8%U6q6yvl?K**_`rCNCVOPJr@?;|?TY+w)BA@Y_X zoV$oyY74O4UuKG3zu96ES>!C&4>W^?R{J zL=NZAtOHZ#MSbKif03JJbjfl&wo8ax2$IQp%{k37$VUFA;nI;w>dXw2xI8dXi_9*O zA=&8#T+po>SIy--UO$On9~n^Lz1}P@+AfZJSx}&1KeecR68iO$kk)jx8fUk+0aB=_ zMby)6otFDtLq3{~j0FE0PQ;Lt z1(esR&t-1P4ee{g?7Vz;51w|7Zt4Tz4`F@#ILn_Aw;Dp+a{pMmvT}0QF;(rhSQFoR zHLI$e^;Rn;bGh*JV*0eAwLDNIrcFBVsmL+Ftc=kaSmU}W%wWPYL}isRptZnLJA_lg zwrTIEeFbgy*R8&>*T+YvF1NhLCUgB`@7UXRFqQ}iNd%oz&Pm(dX>NTLi&24>{DxE@6BD>#(MhExt zAnY69B>)`tk_jZ6Yu5S*m)|XCm!>2p;V1d4qw}4*?|H@6$&Nwa=<#m=s_x=n%7{;^ zC0MZgr$0G`NlWUeKs?_eXE*eOmu5MKBai&;r{z|*+e(%VPqpt=O;A7DBL(4}RR%m^ zaO8gO+w6Z03*H&u+;<`o(Z|RSb+D1w(yDd*kAHMWJXCG&My`G9mfs&)Qi7uN%$YjH z_X34?!y33t(PDDVJjKBE*2V)}c5@I_(kZ&tO5NU7nS3v!YUwbW-9KN?n}S`I#{oX@ z+t}`4HK`U`$NuRzjNTXTk6ly@7o(a*_c{D1KUlDyL_x056D<}6Ugr$QR)Xg2r3!wr zr~CeU$xTbMF&85IME$J8i$Y6{u(FEKey~Jmg`as#)%tv7t!i5Mff8}qNr~Lx*`5;t zi#t88_vys@_SdDY56vbm*G=4VLRKt|U*J5pqv&gsM$g&1$w?0)1$Dbb8qy*I>l6g+ z1J`VJ(2mE*Yd_^LN14lxdZ2`cpg%Q*rmw7RB|~V2y}vXN!)iX!CL2ge$wrUujXQ@w zJl_P+zTQ^6Ak@Lz+kW(&JxI{ASjem z*vlRh#9)ar*6iT0+^=8~BvTvUi;H_I^&mFf%bkI^Zht*+AsWtzPA8m~f6c$X`(*K0 zYPw(l>z&SgKrEE=bp2Df{ri&$`zac%eu;8c5C7S?Lh8kmYXR#=3Oz|gWlvrJ2j1`8 zn)30H)>*Mc45DP4uf&MXxk$BY;30xLukX{+gyn@C=f)sskIAWpquO4da~kaJOYzeC zAHy>+JM%%{KOq*Izzsjxu<7A!AzHPiv%*7O?A5l@=IH{pgM+Eltv6_%Bwrxex-WQR z_|e?09r(fkWIZ(ruP!!SiuI5-k9Mt+J0Om{%Q-ZCR;G5%4y8^=I(xy%h%ngvD%j<1 z$2S92-gVZpaHrkkMXlU4!MMl# zRWr>-TK?xESH66VG@Y`f^={AbPM7B|OLBV1Z6Svm{stymxS)30ihXcJw~=GxM^s}T zM#>(MI{V=_5U4<>l5O6}c*e@9)cLjI#jOi?v+Ufecu+x7v%JJooFcJo1n7@ywO&%$ZUlJ9~5 zNBgfaHxf|>*}&$@ZMLcJj=N$bT?!x>jK7R=Dhbx*SFA7A}b-EXEb>a1IYK! zUfA!O2wO?qwUEXyLj3?69s561zz#N7797>ZKvm)RP*@e(#U?f2H7R) zH1ykoI!ifC7+8%_&`MYj(b)iwN)$p>nG^2{*QL=jzoFM1+@0`dV1S%N0xqJa>@05r zna+Fw?eHvYRP=#$PG$e|z{#TBVA6LA1{{^~6KPc)tb|7QW&7jBaOvaL3jiK(AZ=K5 z2~?q_mHXB%Z0|m0DUPr#Us7?kYAo-x+tg*Q<%ms<-PoncS-+~v?Q17&0;`W}@?UJ& z8aN&L4j%;f%)SqV`1^~j(^f?+>8(zI99QrWbPu)GI(jf-6Ib2T_AzWjj5$*!Aq2rL z=Zq-;(z(~@Ec>d0TTw2at4s* zM(36S3mX&Ien6jHW`3Jyd@*4nCXZlC8%NVBL$)YMy_e+9MTM|P9BJ`~ysNeHufw+P z^-k#Hyix*gHogT%U8i01`s(sRyZOv;rceEef#y2#zwn+sQMB-k+&r@k+^k9$4!glo z;?L@$L+`l;9T^|A_n!4sKAVdG-CaL6RHTgD)ab70s;@b%2T94h+`u*SEy1|MYgcwh zM5aX2GOPY6cpb3`;Z@2p>lf5gf9-1J3Pg9Fl=yxrht1VDeyu z1+wrD&bCU>wod+c?|wjFlV+!)RZAmEy-JZik~f&+W&G)9r(G4cx!K8deW8-50H_WB zuoubUAKcO6J{)Y%6lr>O_G4y>x@~8&K+Isr4LF;NJ*|-7R8ltL)V+KdOpbFaFaug? z|GGo{%txuWG@aGd8ERRP@x$xI_F6U|rF<6ub%xk5R8L{e#L<5%)ZA3)zYDoH+)i6{4jJCD$vJTA z=zR8Kq?qT;0j&Iy6rt-5j=hNanN*Di-E%5$)efv&sz(nnMp{=qMPNokT@ki2fkoIgI1DMjgsarh3^p)-GE`u_v?_w(sfDxs3x)JKJcq`8j|KGB7w+$`jrxt4RbeM*tL zlKWVaD;t(`uH`;wa%{{oHb;yx!!Wk5|Ka_^`}KT2o{z__;1K{|sDXzyUX*)8`Rr)E zJnuP}mo;s>X1yG?-mETPoTJrkWN>ygxBPShD7kd z<*KBJD7XQ={c+&wz6@og76RX5jmwT=piO`QWHPYF&yT%ct!K_ z(ea+S)g5Q2zNrh!4nMla>q7KiWoVrqVyZ6vg2g}*3m;ar+4#rqPxud(xR2eC?rC1N z=QV+SBtg#zcBMpDmGkcu}*&FgLtH^H+RPW`U)l=rU zC?U6NDp6fEH|o7A`t-q0H5p2?LClQKvn$r=6v9qzTFC`ogKGC{@tdO3ClU7*H#+l! zx3_+`DBnIUIP8*_Nbtb*$}dScxy~W;2F8~!QWOYPxaWF0r}ZaexM$#h`fV9U z-30|9=vNwA7DrKn)ECJEatcB(43&7u=?~K^l|o*M=Gyt>oFA5Jvit7NCz7K3I{c*C zBfXYmp_#1G>FXRL7dS`WEhM)*F~W_%H|0y7jU-=$$I{DHAA=h;qfGY${Spqv{jfyp zwQNsi(_b8~WXvmmQW#G`yVc9IZE?ho=BLMKs+r%wsuG2#Dr-ZZqaP$^W2SNUW#2zY zFSI|ZPKzn16$Xv`uyzc4w*uYTEH`PGzP)-Iw2X%w?nWODsro>cMb?$QYFH&-fT%R| z*nJOpmfSHD0^L>OXBTH$k%z-yI$Bvn2)Uo| zH_{!nM1B)7t9^D5zxwys(ABk@O#15Yv~CloS?7Ne$N<3w?be7Qv~F%4t4^=caDQKY zG{!$kL^_Y_f_+v2^4;4VOqrdK-;I*rSaKeWv#v@C_-2{Ce@`yaC^NGek3D7&2SOhLc|8k5@kS;I{#0=b4L%8{+i^bSH#&bueVi^2} zefrM&txFm%3HM4Wb-_BcFt=g!udhf+%$e&cL>-&~`|pS^Xn{-e&bLJ$0(m!=U8{Gl zygIkqH3_m^XyxgjWds5gYpOwz+TX2NU znQef4JYelm@HrOlU)b-3#Z1kE_oH3MZry`hO;ea1KRH>cis8<`_+HcPUWhf1E#g)v z?4fI6TwQG4b8pdzzC~e!r|?*#IqyeUVT@v9hgY-^+GSGe3JLyR>c8kY?5z#)YhGvQ z1ya*HF41$JlvHw3z&`^VCW-Vw^VXVgb(XzoIu09t2;tf8I!hS zr=N@(4cTfBE?!VvG;dQy@wCxXJu<#bWn<0-oV|YUP;=eH4_mL9e2J)?oAyX2$&_^4 zh4uZJ&AyDs;0B@tPEx*2?&wPuj51dOTIZ*bfQFB z1FWn<5F=Df#~$m+Q-`Bgs+3Vh<;SnZ8n2}1l<(ad6&U0KGHlu=%vl&7f_7U4Vk5ir#>AC@x!*K41Jo@_j^8cvd$HTRHQR`{(oI5MPNUhVt&3#i=}(8}!#tX` zt0KxRFp^7kq~#zPaI^NZrN)#%A^3MDI_pGa~z-Thdt&*9|oKQ4_IQ4fh&I%V=U5!$xIeX%+ z;pP{d;puhc>S?k)KHC=JFOWRPl{hIH=56m<_)g!;eCl~B>c}~*cA{=3w{FHK9#?(J zVz6yL3j`RlD$7!oA%t`{t|K8Wi5CDrla$5T>hi<(k0Lma$H;ey7h12WiBs1dXj!8= zCozcz@gbL3&sFjc^134R1hvc@*^&^hfIY|au|t%(cV~Iow~FWx%cXx7^SXDR^A$bO zoZo!#Vq9{U`;aS5((5*Y5w8W`Uq@$^3n?4J_Jx?bTYYdMM*Dt6DLA$OSfa0*{{yO- zGNJs=;VM;lO#b|%;`GkvsF~oz0c)(an?W|obLunoH8T4eU#CvZ3bCxx8U8_IRt|Jg zsyY}dM$*hDY3DD(8W0!7h>ZL2o=D%>%JJmOC2yU@9R8C1st@mTy#*;l4fs4Hf2{Kx zBf}lt9yaYD zPrE97G4~v4v{f`rfpk_)p6o!a9ebD2adXRXX?jdf~k*kLQFE1xxREQUPnIR=xl4ppgn|RZetr3lm zZ*~skQ#+GfIX#O^C`Hy6kP>ir3Kl;qO$q#)N!CL z6hNGV0Y<4n=@xfb;`;h6Vq0XakKZHQq+Pt)Q9$rau<5MsX_bp_Fj*_fmx+gvR{$t#BjN8+qM%{^5djtzn=nMe}~WWh(%89tN~4cyq`1MBXFe5CDNHZv!9z+N}x6#GipYn^Jt zdBfU*s^|PnIeCFXe}`kguQ9VW;@9kJes{Pn$D@KQb>AJon3}rKa#8moR8y8FVfd&? zL(edV)f5C5b*UcOCT3Ko?m{47^6l3_;YV8G{_#F|6Q+;*Daglabz8D{f+(k5W}=Y? z&Ld;i)uehxmVEmV*$@t-6zjxv&<*HXkpD;)bA++wJnlrDJO==WmCfjp{b+^<5^*MTcb zbZnKFn$UY2`lP3@vE0g?^Kl!0mVRO}4{p0Oo-=btek2}>m4jW@R>_WV5`wxfN*F^m z6PXOHS)b<6Os9b8XxUx(DR)s%Hi99cGD z12?8(L!Uu1LsblOBnG;yq+}NkWfH-pSM)A>O9xQ)VEORuYZEVhFy2zFPL2yo>e~0! zPwZd>DhnDYVj-QP)X`o3mrYHVyIr=81hX3nnt(>aNr8)9gMf-5Wd& zb_Nb&A;nssH-t{;DxPw>6&!Rag>@%GxH)l8Um04zhk6Ru4*GLKG;PAmuh|9ma_s}$ zlDsV^CBNwaW~XW=Q?;R9U1S$bH=7(Ycm@O>+qF5KM2OXf8jo^@v19xPSJ$tI4rxcA zTfqJTOwfpb#qL-AlrMP0p`g3V$;-@Csojo0nsNN#mOsGYmc)?TOTwzuC)UrEG4f&w zqHz)V^Bl;96cEz~o%B2TA@n&zogP-0K9AXkEZ+P8xqd8$eKYaMq~w{@AZI_1BJed` zPpcB8?Iks!XzSEQ(_$Cq*WMdaR{KnS$qzC~n&-XS$QE_Zp^pKzcbI+`vzm zq!@jSeNLTcZW!OU8{ue~J;i2&e70ao%khu858KUpwnv3z;e*J8zC3E)*IYyDn^{qu z-3$9(UxpVRU&^occDOmS+gIc@7k+NYXUJ?obDIi= zf$2d0vaG0+{L8XdOi}HITenGcWB;_%N~7!J`7dPx3Jl}K{-PC4_S!vkW&ztmO$u=* zIVKNt671!7FJCRlk6YP%H*AYSOou$%!)%@W7ag7H2k|7<5%Ayqf2oba4go8a(r9NN zbr$bk?E|*?Q^Uw2kTq$lmUC3IUZQ2t0U~B5*B0x%51mbb1Rz)ABr6-i639CS{uWMo zcUZ;L_sL>0{&hQHOE2(dg*BdgGQ%JtKGYnl1pkG5j z5Rp_CY+9%vE5N>Q_3!!UWn*hG{ZC-Y3prwU_Toa9ryuu$qjwJP7ACwU(t}-+g0^%s zK-Vs@=~3yh8mKHy1a~)ldjY5yAr=+CM4M6yRu$kDTgSAeeLDq82pGE*J$&O+WqW4n zj%#-V2=;Gx z-|}vsQF%gJ=n^<2glv7PMg(Y|vnV;9yt$M#zhPl5)DlUo$Xr_Sp5ih?#uQw(SG1dE z&GULEwM?A%*|1BwptXtMxp<;Rq5^A4$?fU20sdAn6{=p9{y9>)*~7`)a&1jSc59~t_Phj!(C411)!GN6FV1rQU1s|1a@y5*Bs^ejHccpxco5G44y{=&cWp%qGVoo3;xJnR9r7}wQ@ky!?09@ zvtjf*F6I;}7aS~E-OVTeUc!aGImuV08rs7rs#@6HB!N=$lzE=};6=di6dA{!1J|Io zt>c)3aJ~C2tBNuPv1|r}uMGK2b%H4y{@%BiwRFJ*SiGUvbyFB<>x+ak!C6hbK(aBX zM1`-Q$i+!#aSQff3FsGnY-yTK(Ppa}u>M5CvN;W*9~?YL9)i^^Nt~#d4u_GVVCkFF ze4ecLTIky191s8YOt6xQFKw-)U90(EFo3$#oS4TK`sU~<_Y5vzy1wJaMpqQWu$J^4U4d)2lV${Yx&mfTW z{FF^S5e5X#kqvG5Kc&u}Es0F71p_GP6ID)}kPQu`PlV`=E?o!DW`?yJt}eW-^CTSb z?UK*(o*A6b7DQEwvYp*VZJGq4b4n>M#dKDN#MLOlk43hG66~>xkg2XDYyZQ=uF5&p zTOGMhHnX7>8^zefUs0bxh95v_$SJb>222=c#aMrte0}-d25Kp=S`)mfy7NBV={><2 zu;_yL+~c?`Iy1|vqHJc23q@>PIet~_@6|13%ZQ!KfUmQMKC2oAeJKF=C|{=AxF_vj zOr7B4P)3vK<`?CCXQQNtTC&`=^80czzhHL zPbtFash*rErcLJ)m7tpzc0g6U)RKx6)IvhtQC4SxsmA5};1 zSrnOOXTBTdD}a!WyD=Mc`+1|yyGr|l(1%LwRg1wCBe#3s9lbO7_zK2topmJ1U(pi$ zlqHAp`3U}vvK;7^0#)=~$eV;fX~eUPc(ogz)P%yZaZgnL^I4ZSEeH{uD}$X~W-0;A z-Ftnx>FY;UR|{3PI<8(PeS@KS2Bt`-NwF3m7S2g3wRW<*(qQc&!5YC!TcWkes@R|7 z51iB?wq*64CiQ&hqbR9^I5i;*UyhQeaqQPaX^QS!%5>nRD5md?MwwmP#{l|}NXBi+ zpvo8?NKkS?i}Lc4b};ti!i7)eE_#+B`+znfm!l*Nz>UV!8)}TMjL*Ptgh{W3o+nCQ zbr2tRw#`_3JLOn*#J&9;Bk#O;$uf)_>ZI@3ThW{pXXy!TjIi&mx$4Wl3$ysWps3t- z7^?d?wDNjp=6zmxkJfh5cUvK2lYh`>S!b2k$J~)5#B+$(jpHldoHMB0h^?OkFA67j z+eTTTRYZt^nJ_TtCubWP5PXdXgG2`6y^N;uJYRrC%K+}2;?K}gX&}bvDMdQ;8&9h zcP+*p%B1AlEcN?xKam|P(pJxn;L;lFP=MNlaTGsQuxsrZDXU`vF(m#?fRKN=H9ouD zx8PU$dO)6T>R=pFO%T2p%A6doQ&<)-maXNUC9x!247>IYHvC?QJgN;@L^j$EGW_PG z>9M9(k{;Z0i0TvCScr@MZZgj;>2#|ZF*9`EXhG2z&^xX&7BlKU=^-UX9j=mLPlChs$*8l5xyyxpjL@on3H*1({c5IDWP` zB~p!=af66%4%VnKhXQ_9MV|#=J7Wfy4HrM|X|n4Ta3M2(V=JXcBt+)2ZHgRlga^9B zdFp|m392qAm<4z2n`1LT6O~^3%7Fip9=)hOdFm1B3Z!7lL&MLP-p4uKZe;`?38!)# zh*yapw|Z#9@qUK4lO14{ScCix-Pmc9@$mCX2TY@}l!22rK`p@;N1)4Wo7lmy7X3-X z@@{oa6LdOOzD;QqchB!{_tBsN!M~tLjaG*-U!C3V(PRle`BxJTv5C=ilce`U;bI!r zh-n4i|CNh$zuqsk{Ib58rZa_E(CMVSpRs1I;1k1o-tJ!y^7j>TQ%&_NnVMlOrUA6$n_Mfb`MTpc^QxpS{;UxT`Ck#~)kvtzgPZc)6ROAS1@*D?=0 zELG?#$_42TneyyU*cz4><8OoDUG2SC%&6Ad9K zQ|g%!yU!ua77cm2IeR|qz5Dn^7JnY&`!Z{Sd$P`Ue^23V&_nm{Ho)8ZR7wO^e;Bxr5Ap8THKIkKNMjpqT)`8RxRyOS3&(zbe|;a}>}>x5}cd z=zPNmGtaN4dbbmUuiJUSIajJyL<}C3$@)L1h(nDO`^rqP;0c+c$ee#uXsf_0z2@o*C z91_cLO`NE6d>4!}Jj-eJMEarwLKyz(4YaMR#3`?yf;Q_oMeX;z#=!I8-aFKR1U@TS zM_4w2ndcz0lX53u+=p|M6p450E`twBz^}prhGwOZ7}XHyB>g6+XVyTFaT6rspuOuG z^1b`D*K_r<3$g=YH)-d6Enh%G-LmT?-sYDz$T2Bf^$BJv4nJf0E?CyxaG8FIJA+f+ zSe%?zcXu4Zt%4a34twB(sRLcN690@P<_$HB7K`xWHwtY`J6cKAr^YGma0hjgqT2U& zA@PaF%9e9c?}zUn?I>(7MAMe;!-2}Z&qqwXXN_c0y+Kc!&fE4-l`^I5sCIjIP_&cJ+CZcFUwME}$vQTZguzw|BEeoKl~hhZ$sM6c!V zsF7bYFH6j={!{@;Zp|WhNIh+4SM#+un^qO(-M=?|*S87e6$}nI z%mW?C(q7Six_^${0+K@!(kE@&4}MrUadK{8`3!n=UL&2n4PE}3GSJHiolc?+pSLzM zy#>b~g0{y|w9mFv4px5q!ATD~13ItwtBFgfBqEc8=Je8V_&qBRsY^L_aP~vxd$9AE zsezyX=(#^1QMsa09TU*5`DucZX9pr({i~?;o)URTN5uUVN{M)9)vT9gg$TRhev=q4 z>Hb6IU5i;$OM&cnc|LL3pQk=8*L$VhtPJ!|`CE0uK{(FPDa!A&#B#;r-sPk9sC4XP zDa=`oVVBWqSwFCqSKZyl@3a1i`v$-$I&#O0(Y>LoT3X}AUS3lVUaUUc-Il-=s&*zP zo0K%}H0}Pe`=I&{5@@DrXQndu?UFUCu@jV*Ao$hOZm7?u;@$pXx2!P8+D&OPW&EYa zs(Ghs#=-ycuwX6(K<*}MsD*8N)shunIZn9?*E^_N;xB}O?#zyjbO?fZ@jS?Hzdeib zqr?INUgVuqD`yKj;r4E~W3q5e%>IK~AK5Nt$qhk73c-|^QKG9kLT@sPE=K#U?baA| z+GN)@v`U|Pt$Q9=Bv^w93ZZ6K4qF7@{hsjdh|)T!A5VwBQt=xc!FG$SB06@eNVSR4 z)CYc=#CjXqc5UW4B;pfX_d`n;*|9bak&&I>m9qS92qUq)#ea7q6b%)G1_d2n@hhKg zL;}>8Mwu>ya=RDZO_gcig7pq#KoK#V>8D_F4IgMZRn2O71UTlpq&ZO-4|I)H?cI3a z1F2Xk_cznku~pH?f6T#Th?)iE)nG_p%}1R8$=akD0(9Gos>2AHcQ_b zVcNt&!Y-VHGpb8N{`McHq8q1j1dmLe02LEbkdQkAO0 zjO%-`ma-yeDbO-ZP@7x+(3a8t-`7%jZo5D^(N)|5&ASc#5^YmH&< zPnOCbKV0D6Dr!DqcX0Xh4z_cM+yF$T?Ojy0ZxacztRqUzwlnFvK$@@>F^E3+HY3j3 z4ZxxE)LAJczz0$mxoP}DTGPKG6IfSuhoD@es@9I2e=et#~&im*v}yb>aW)o zJ8QWAX;2b0nz~yYWs}(A(C+Y~^(7^i`>o4fn=^>5mXN(^l3k%i5qi9tyXxdEN8&hi z_~HV&Nrl7z{B9*cgWIXJbW-wHBKANZJTN=$ptP57wVC>F-aD)rsU@AG9hD1>CixD^ zAWCrWK!La;*@HKLM@a|Cln?SKt$ZFZ4dfg{DT3vAEs4%JVqJQs4{{y-G`7s7q4yF0 zTRyH?usC!OOYoCYh*iZRHET1@FE%EE{L2ha-_wW94Vbx}xP)AQhYlTm$H>6U;a;v> z9&mMWOPjN%X8^+Y0!<4FM!1Rey??qlmDZTMFDeMx_q#os{^}|JEz9YXFoFHSXgUzX z@#I}b!|}T=6P*wJPg2OFU_0-zD?a0RA;_=ee9HsAz9x}r$1H0-lmrGnb*cKCB?4arE+`P9Qssb0XINtBm% zD^vg$dV>|>3J>P}H0XXf$|pJxxz)$!#ny4vQ-EGW%`f4b@}C1J2SBySEOq zWfvk7uu`(BB?30{2${u0<3r-F!wpuAhqkEBBym-wnX-kAJeGL{5Z(&7a>9<=1FMF( zICkhfQ*o9C|E|h{;;1sXwt!pul9A)Jp(Acb613u-_Xe#BrRY6d;@wUh z5QAmu6n#ME+(~yC*x5<6U3%&Rt!CJ{TYpal`%~3O1&aQiA=Yp?VgN`jdp&Vdzzul| zHPszkHfC&{asr60%6}DYW!W5EXtO2)v2^4S;IDoL;*R{qY~xB z4X5hLtZH9bT6n0Gwi`%ju`Eu)BI11dP?Vc8GJfJ3q|XhR2&zn-P}IKBZ*L%148=bP z6!39R2aZ@SOH8Pq-AK@{8BO^i_=I~Z;)LZRRJPNDRiXH!ttYWIgYQBNmnI(pu8Yc; zR(zRC*ewL>5Xapl8GrCxTw z0lH&dCG}UfB{p;1R3yW5DDkMZ_A-M*z7SoSv!N;Z4M~XfGr(~aXb)h1SU&OkG|Z0~ zY`RcNwENd|+G<_}6G7Wzb|DlN=6wP*X519IOM ze`vM|o=Lz|$vpCx-C19_y1oc=4!J1hcmx%fT#_F&kL#*2{r#!4SVV}qCrh?TBz?^h z>2m9Hyajy0`PXe??8+MaXQ32$>mR*N7%w>}a!A2f4C?2EO&&C>rCwTy{|t20`_X(F zdjpce(u-FH-#qT(ng1y?D{X@!JsxW3$56*Lf(d*WlvX_Pw1h*-UG8l5y&^#0il4VqqDU5d*K% z_~}sav{i$~<1_zc`@rS1vwWLA87H?vAPm@+9)Gqw4}5>TZ%H>yQJH?rX<-*3{Ol1}WN)rr;?5`0`c-kaCw%x_%{3FY!Ql zXJ#S7XYqMjlV$EV(u|-9UrlNX(E0LVLS*^moZhRMV6Ijx2ot^A))djQaZOuW4AG?$ z(Nb4JPt7gL)3dZj$H#|!r>Lmq67T75bWRZ|^B=MD8Ci{|+hW5ZLoH8T7N>;yyb;}; zRa5AY&Ik5&Zo34jJ(nX`)2GuhEb&3z2JL{|9KUkQrQY6(KnptIQkfc(;7{=fq=z5sd`2Yy`c0vNY+?(!On zJ4X`6v1t^ZA}9S2oRJO9qWXm`SnkNb$W!z97(i`Cp?^PK zwccYsmwSRP9IMs0loUO8`-~sOy5ncf_be~-XPjb`tfHm|7o4fJF+BM380LE_kSh}N zk-lcnQ;K*i<|RTm=H)!t9N`15$X4@oLaNrRLulwJhg&& zNU^8I5|sE-CN$`CN`P6Ek#J?H4duC>L$ng^*rRc8OV7rwaIrhp#9F0?KeixbQtI|# zt_;c9&g53*4+j;;;JhZwH;zBG-QgAFR}K_KMB77JRoYl=YHGIwcQ;vYd(=1LKW>Kh zYfJlq3@_)23x_dUVf0b>-7^-IPx0|3H>~O>xq8blP#=kcGoS3HhgGn_I(#d18>ioh zz1)ziEUZiqJdLKL<+k~{i6j&q+YsTi8f{0n7W$2w@lMe9NnNj2As!foI2#wD@wL@a z!5Vk{pxU(yBkqHx_-kI!-(2NPhb3b1HnoN@)GCM$X9MVeQH&j@HH9+?TO&pb1023n z1(jD~>Uh_dk&^$e7w>6eUzo^$08EpQrPklET$iM+cO~xY&&!nOX4ef|xPf94q#cb8 zG2tV=6``HbT4g)>fU4yi(XR)@YjI^pQ`4+Vg8aP!Ww1T6u50UhuM!^ZSRp8rv&SdIbAAgGhXQcJH z?Pqv>3@|AxGHXnse4$b6q*bq}9?K|O1 z`j2MeBDL>`6n80hNs;n%TrSUw{(@Q7jg1;gMqA$~5SZ=@`rE?DUs5|`umF*&5uTN8 z;gq1a6IQJ`kKCQO)HNTqYb+xq^>!%KM_|DeDRXPTde9H$3u;(h=;k<)u zgs_KF-=gkP&!I|)F4g(ZW?s9X7}M8QcO-~%JLpL53*c%R>w`RoW4sIN3$f>j?VKSz zej{60Bveic8Z0ynYrd?T0eR#i34jng>{BK(fvLyx{&;2Y=oz1ctLs%tW*wPay&ie* z)Ud6{8K0KS=}$e7ql7Ar7Tum#fuk5=#_IR-g6?U*8UAri9Yv6N=f+)KR-R#weC9xS zLZ;6eueWJ_U~Ee&Q}?q_Ncn@Y(sbf@o?)`x_o%j({cw6Q>XC~+d($n3p0jvRxA2QR zB=E`1r5Rq>n$eKEnB|BYf?qoE%jF~M-y}QmetXDpqZOp9>6+)m!|$9x*Q553M4;ca zi+-8E82KvoI22Y-Kldl$>uyAS&$XJlvtV)TdE7@x&%uC=e`;6}dMXG(d>SXOQrFA% z?&>M8{Cndkf9kNaRYvQ?e;PAyXo!^_@Csq(caL+#Q4ACiJ*^-A#5S`Or(Gkb}z?n+ktv9ID`$r;i8{w!aL6 z(?ZJw^HAb=K_`lZ6NR|nIPrFwxHv*tmtuP`(zTuayNe3{_~fOoVe{bYID0d}0v>^OP$APZ`@Q1d7U(WWNoA1t z8EBEH)ta%d6S2BI&~@olEJ~*YXo;|L{vQbta&`RQdQYWSUo?BMKGKMip*+Bs0P6l0 z=@g}GS`hzs#~eSGCKgRR{NB|rg*N=B$RUeNiu5xv0FS&%Od2kRPN4H(!IPf$X~kYsp09!yJ6J4Y+BjaY+uc2B2OF zlYUoM4fuBO8XYy~A_R@R2dqoP`re?Io1{DyJcNpeQI;V~FkF9>Zg$Aj!PoISOTU!U zz^n6n-`N-3qXk%TMso-4B&!@LXg$R(^Y95m=GrmT+Ch}kB%JJN(XfmNBBw3dFJZL8 zjHm~VgkPqX!AF(Se1gDf%eg9`_L=;}pN+oOykK~+1yY1=9`4t`5|ap z@v$zKXyrIHq*tdg9-{wB_iJls<9DO6hkd`EmaPB=9lla`Mvox$v8~l(6gb9|C#;K0 zwcOPqgC2F$*;Q(-x;=K({Lc5iJ)TkTvED;J)DV%AT3YGbvQuR#(mK@@+G{6?HwXBY zz5b=i(DXbg>#{{Ki)`C5H@W1&@F!m8+s5{?8?E*hbO#zq3o*|?Oe`RwN;~qm8Q{CeJi2tW1Hd3@~Mx@n3xF%>XJO_ImN>N zHCLOwb!9Ey8I{##i+#WyaX3v=^3eR=UJ-XY#J^R=znZ z2i~Q3JAisz`dCG&B_-Jgp{usvMQiL?*;3X(yZ+qGx?6|&Mw`vszGO!Cp>1la2AzrPmo_VC8lpkl?Me(KNEepg@R2<46F#{U8H{^BzNpL@rAaKRm#9bxgCkoH(fskI#uv% z>d5_k!<(gcBjVk)erAl(CfEj71Y|FAUHV&sfIC7fBq7h);*T5s*=f?@e%^e<6=SqE z(G~P6e$q#ZIx#&^Xz;LQ82EC{%+Ogty|#3`|0zgsyN;`KW~OV{6_cJ_>#&aXEKo$? zJH&-+%$sU&SY=!>^Y$J`njtZ>r+7j~(<(VTeR%3hEV0JkBc}`q(Euk%KkXmIewjeJ z&WTAvMu8&kx~E-wlUo(gQ(W4WD)}Pq{p)*!*uu?w<7%JH%4Sq6ANhZ@aHI{c0l}VA z#)3T4W|F3G^>;>dZ88AT@R8ny^@IJ8lJRZ2jay7f9k4yhbvf7GbyzuF?1tO!;Hsb2 z18%-8mxbCL=oWZ*2rQoQp_nFp$b|$i1`NpU1}YZ=lY-sjml*YVNrz7R=1c2JSR2Ue z`jqI7htsv09oevl$+r6eZ-f$BTGHxG^Px0MeK4h>2iHI0A}`9(7Z0oAqPs*_$A_Ag z+%@JYv#HEjyPol~oSbCQ-CdjHFa*)ILLsJ(RgIZyW2-ZI0WooX6A2{WGq*RU2KZiIzvZ7P$_Zk# zf&w4elAX6E9lScl?vf~Z_c<{C3I(AY*$EZ;*~0W#ZQE%AWXY+^$#3EO(Z($UefsO{BI1W$xYzsV(q7Ga2_RSWDU?j+_(yx8(=)n=<{tAps3OU&K_1;PvWnNG($ zH(b1B`_g=1vtU|j8_E*jSUfw;pgOU{v!JUyQN(83!Z`&Bpl9y|T>pn6JUarOJmC4p z3@a7So|{$uB8}z~F+{a?iT4NxN*nKc+5=5M z#*Z~15AqVYu{D*)X(@>$$?0y6?PjaiKiWvm1po`TcLDkZs|(`m{1XW zP1cuwK87}7GO&ZCBuuhXX!*!Yftl^6+-~JlZ9+EQsqs6Pa`uP)Ht}Tx!)hf7E&D?b zM44ZwwjNRLN{0IB#-f8~{5H>#2tkaXA?MEJv3atSo?;I`{azEzX->E?CP! zby?yDZ9a&5x3T!VC-kXOVXC8ZbMa0+vAe(TCa<0e+WDEDbItPi$UZqc?xC~9Y(`iQ z*^;H~=KLr`eqpP@faSK%aI^1{3WgEAtJrC>lAQ)~)2jZme-+oXt1`G2hW)AojgAgs z^E!X;4wL`biBC#$u=P{^p#`ERqcQ;S8s_a+>L}dWnB??_<$zpDK9NU~G`AsgvUf?- z;b^C7c+3Py`?w!^P_r$)V6PfB2gB?Syf-Y?@A^AUPes%EGa`@woF)4&Qgy%9-FxL> z_IzJ}f5Sg4FCWL?FrNLq--WgDNq{qMhqZW%Ud)s$FTq|_YoWz|A(FePb+?nM^#&4a zNq~JItm|5+3}gk(Wyg>2RTk|J4%~6EQAe&)epy&vw>9Ft(ULU4-9|cp;vvShw0sohi+t@uM zeBEx7Tqy@1m)U*`2lY*)NgL#ev8d_WJ8#N2`a1u*i@*n=hKy7#50K$1@-=n8^P=aD z7~eM<{`J_tSp1YfJ^( zr9MWa#Rf^G!HQfSdmT;xl9HXTg_RH@{|9Rl+9;Fz**Y>uNT)-pdO{OeWF6CerH#vl z<~eyiJQ(;ACT8{RbbUOnA(@c)=hT?@0PHFg;O5oomQ4wO&*jcJ<-k8giL6^{u|czl zOh{tvQqgEDFa}fuPXs*?ezfjid&hzP(gjaDyPp+|*_KoSw{lEfC7+R)IjntU5N5_p z+z>r2X3Ltb&29R~Yt4t`)%`)JP3Z)vwz1+{Y#)<|)p3<>Exs8=h8kZDL#6&2!tQyK z-;jH{nY#2VxOOOTNUn;uHGNE%%L{%zb-xMVOSb4Ui%8bRCOaoA81J7$el%gVM3oD`0S_G*v@=Nr~g*kVJE}Lh_lqeKvMOvSEXg>;}i)cuuUp6XuXV6?Pqhii#oa z7Uceq9XK0_M_%83AZt{yolN;HyQqzG9z7BE8WCRSe|VyhldSl{qD}CDR@)1 zzWP1V4t&Vjwr!>?>pbImTq5tfJu@lkt^E(q=;TV6;4&y*RO2Bd43yxK?uk}8Li3Jm ztQsZkg}=-IWPfJE!pTM1Kg5eJ98q)Q5M|}tj-lL5R#)2$zU`-d*3XU!XoV7*=c-f< z6=b*ksCA-WDX4*5>Awt*mHrmOkuw3K56cozlmE(xIVJM~L6-l5BbfzuBRn;%Ch;8>yX0AO;ow__9~ zG;9b`;g||R^t4`p?x*a(E?M)>IU{hJ^xJcJa_j$X@8|~~}o)|6ClI#g1PAqCO zsH~FejP+v=yZUZGkbuVG;a8eNQ++VL$vp@5PogZTRWgM?Q13Nm&lfwh1F~dmx7LkvAyS8L=x*meCr5ikwCIr_>Xo9^F(2wYa>tbH*?Ex1f<)uB z)e$|4$0d$MZ5F(K!h`kMI`<{stMg(1WW2x#LitD5USa5<`l@0YNI*$5pk9 zDi;d<)@^Yz?CW*j^6n?QPdRr?(7El)i$Cn5)dH`Pcu(P8jM`>%sfg|RT5v@Pde^&!=$nLC+yz1GgAA3Jhv zW~=*EJT1BlJ!agFY?5V1D3rO#8}_kdRfc^gB`u@nuEvJMZjS%5!=zBoPDAVlv(&Tq zMZEY@ev?RWo^YjOu2Ig5(J|RtqQAynTu$^}IjHgZ|oPB{?HXXF zF_CtnAw>yGKm=F$k8OKtt72+juX`{u_Ui8G3h#K1FQbottjA8^-bG-pl6(Zx4mATL zV_RM{*A3Uz#JuDMjonON>r2{^AS0T#9HBpw594~m2r(@aSQ$P1hN?nL#&M~_wj?;o za9N$Sb*M&W#7+~`qc)Te4e7REurHpqu_eAc?DorOj=~Z47VUocXv((aj?hr;ti6+b zCE|{##zW}HHo_DE`5XU6_GBXqm(H5c%7h~)d(;+1#oKpM>AWh5@6Y7#-w!FLs8g| zzt_K*_e0kU$?s@$17(!IV>s>Acl7=g{-Ah`0 zXMTDHUjoNh5@3d%0j;ql*)K3ke+#Zxd(Ege6ZJsEmi!+7A>dxlAJE%XnC{QBfYWI7 z?!ALJfSE;pH+Fz)>-)&SQ~I~xf)9Vt9`S;MEJl`)k)L!B?U@IP@0ZvN8QrZ+#`k>U zRsIHoG$m+a!~zw-`-bP(6Sxwa{Ty$8CVjASm5Qz5tIE?|_w+jz;ffMKE!=GRRCl-X zM)H)@W{Xt)OQ*u48Lh3%t#8}Bp~JvUepGe@epnSA(#kmi;BV*>7sN9g4ECbz~J^nJR47jAseQ<&I;9ND0 zW8kQqG#*QmT@I0-94}~c6<@#5PjbqSXFSEk_e5Vd2zt}vvQyZj9oF$~L(|h9pC=md z68f!va|@~ITxOLu0RZ0sdGGk`9Cj-iU~B%1@if z*l{edaMPFX8COKAgn4$Yvbbl>?$=r%3Yl_NroQlt>wfoh_L&D>=gVGq-+&M9=hN&r zgB>!ri*^GfhV`yxBm^Ux$yp*lT8XIsB_rdY+Sxy|%^QVFjWb5OibAC{UAMmMXQfbt^g`Hixr*sQ zJR&U(&4FLljH^1l_mVOeyW07I^ZIkU3TL`LS;0&FkD)DJYL#ebY9E=N-FZGHoih89 z@J_ooKHAk_xYqQx*YH+6w3ykT4zmacusE=vmIUIlp-otft=G^veokh12MBrMSvT(P53_GH;g)|Tk!B-L>#dk}FUlNf-jwWO z50S2jShVh((3t&CObJ7ok26Rf;a_M8#*p~iYOC1Ri# zvWxXD+!mPc!ZT3rM$6sesGDxf`bzh`qjw*ramBX$tlPZ?89N>d438?sdWH9=e}J(C zS=hys4ql-9_sVwK)7SWo8Eq}MrYv%%s}PcK8NO-AmuYj_@Po*oay;Z$?*B*v%%=e- zF`b+~_}NuGS_F0cBpiTH}^?nn1FbJ@FDlumo@$@LxCaWWesG_$|z1&!70Yhl%0 z!vnohdQ}l3<^L@5%`W2mV&vl)<(6IY#QN1DLnp8E-PoiC+t3?#?33b>y6cr-5#2n&!uE)@uE_G1UmH~g^~~~Y%kv*xH&MU|pHiiPPAz94L0*xaN+c zD`4qacQfp}4XnIYbiI{bpv%n44MiwSLyR*YsGQC;M-t3;gHCxbaHOY=?!HdJ-W;>w z){{K7U{}*BNmhKGG5Tn_wEhORI6*s4=8kj?bZ99Y|3f5~heTXV4vvtY8cEJn01cvS z?jP>OmFVch2gsB)Lm^=I5#ILH;p(&r3en|t58uV#K-O#ij7M3F^%Ro#5H{X~`jnJ}a9zUT8HX;K@$#k! z#cNjnvWgQ;JK(lxMIc6SvzH=CSQZsCJ(DJur%O8-y;_u|$vbgDXNqprD%D4-o8&3+b}Jdkhxbm|D(|p#e*l=%F9B2}#v)8J@d@>Ivf&9w$cG zCI{CS?Q{^#s+yF%Hl})yqzk6W`RAd9e{fhff7xB{lr_=2^Wd%zl9UE-#wbh_X<3<9 zm;Q6#bEvvA+?51JEtw4tV?Bnv zR_k3~QSZZF(IvZI!l(su-ErNaV-GV$oZCXgkKP4)*~MiBMNC)2ukAINjgKE)uhI_| zCO8r(A$AHz34;{FslrxUnZ+IFhP5Ko0khx_GIEbV6>L*@x!RD&kfvExSMh+osdOnW z1Agn{AH*Xyo0pvtb!E_#kZKrYs!8_pCL`dtIW@iCtZuBx-yF>5z9{JartItCEt`a`iLY-)I!Xj3o;a@dX;`y9EWk` zOQ@B4%(*1o3Mz&^piLbXZs=hb=ZBN^bTZnHF1EXlXSutDg1V@p3HdY2Yn?K28D9@q zi+1-fA9}Z!upz{!r|LB*ww>-DutpQ{>po`W+?MFHSTEH9GCxtsTLYqu?fFGP2i)&2 zR?P6GHXI#cITH;3(ZrT?Ay{_%Iz0Fuv(-6>kWpQPdmZ~86`edBDxFl> z%)r%{=m=sO;{o+p`0>HhY7JZoBvFnUA2Qe|3?P_Ibp#|Jrmez+YE@|VnSi6{np(Us z-;VIK`_68sAZC`F$Da_dhSk#L2R~S;eKOb1{f%$)xbxB<;$ymw&Qkzm*N;9XxU!iI zXD>~x)lU;jV_u%cm7Kf;er@11f49)n>sc1zQnBF^H|^-$vvuZm4$|#u5fuS1a2H9$ zypAZD>Dd1R7x=8=9?tPt!sFn&U~;DDI$L2y5vV)&g;nupC>xOfTL>?A|1YX4^m>id zkRgac%QK>GCEsG>@L?A@TB3~pYvQl2&I=bSLV=k)hTYhPw){9rmTG%E$0;?6F(`sP zfJ3mn9m_5My1iA38A~$*Ob(ebe$K#tun@0ynUmLYOy702cV=9T>>+;lT4MxEdTWA~ zESw*g>bcTi&$u5*wmh@pKxITBd*M|~bbHZZ5^>VIOTLfAo27N-*u;$+`S0*LJhNM1 zS-x~qcv(({KGH9H&zPheeMfYsqmvGrqwGcd#`sSz>ZQ^)Zw*3f@g)Z7lk~bQJWI6H z6AE}jmQV7%*RG=5vP;k%?+)kN_4sZjsLieHM0qdj!~LJIj-NmTTKsAeLI$Hb7I-gU zXL!i~xVLTrjmfraRY%P)Me}T~Vd*@OrOQKWF+c0OeD+Ev4&+L~($r%~eS}ViZb(`+{crG`ejy&D_xw3qv z`6+RQ^d`1|f8j86U9NA^%<8+RK+n4lD0;x-i7X#dtfnFL{`Ik&CYK4SOYjdapY0pG znSsB}MI0X~?+C?^~Kz5p?!h8v38tJ=%nX<)g*8HhK(?+4nVTs?Wfb(I4T zD(dDBnW|?mZ4bVjfca9&v?vJ5q#SE{geR-w%iSoAv1%qPX4=G#0lvZ`gxp&q9aeQ@ z70(4a>nXE!3Bc1mF9pyP11?mIe`Q!23XZQZ#QS=fFNA{!JMb{2NltRLMrQFEMYO>xz>kF}Zj$hl z(vS4ppV-L(1Z0r*#a+jRaAW#le3#_->Eyt~RSbO!@Y3 zyHpuWBq1!n`B#x+!Q^~Cx-c13k96b>PZ~qj`ef&yGKxG=K?iC9EKFqis0V*(GfOZ7 z=?Bp#Q$(#nZ9?*d&tbzg@+R)jY$<_@~!R+g8kaleyv( zY~D2AZg7mIY=n!F{>CBiLH4-z5Sa3Jic*RQm%9@VxlpPvSnc)E`rqOopqpz3xW?mqC z@hz0I0e|KV_?B%i_)NExm9Jy1)AZy=2d+Zo*=#N~4m_I_9HzKqK_65mr-d<^h?&S+ z!!)YJ&9k0^g9S6W_T!A`Vv^FbaW)WX4)XDxLrZN!s!~6Pf5(ju(Jg&8?gI=(Yo{o- zLbeWdGZQSXRRrX2u)!?5nUz}9w}uEWtr~c@G;+73j=a7E?`7NH5?pGVH>n$ol|P*` z*yxh1gGIk3WCU1b$VwdQoz}`FlGga@3!5MkskY^BjmLQvdM2ZTNv>6)<0Z4HtuS%l zI^ykpe`opsC>(ygua4_}1^pK?B4#gah1mSi0!y}?X#@);=j+g9p{kt0aFl3@gw0gk zj1(=dNkK&P@PV^c3e?%f7<-hdIl;xb=fWSqIpY;?G3=a8N;e}uJtstv5T;VP$qjuiK%plU&)`T@1bq`MM`Dk z*oKzY*t@E42WW*D+R*W7ApXh&gC;|sj%QSB$Y{oL>Y7IX0y?|v)L$S{J8TTO-CC9k zsB=5P6Cbpz&hX1|0ZihK+wlG9Smo5Yo=DfYhDFi3-D4}6_(ruQJLMpMv{c2#FI&W0 z!C3yhhT{D0TtrbzVC%Zea*6W>ZVPCE?aAm+@)Pgz{ciW zy)|!0$*rzo_DEHOCrB=e^Y1eULbYZ@2oN;$Yv+u-HW^WC(m%NH^N~m<+Z79L)GEr8l3)jt@NH z@57)QD!REL>mhdv^Eq*UktqT;TGv}I z8T|;-b#`s-1(Ww9!hX~CZBb4$|C3}J21iR&jxxS?w`C+Rzl7BldQu7Bzyje z6;jHprI-623Uyd&ODv-9!}O}-d)jFnSZJf?1Kl|4vkLq5rQ|Fb#I@jdK!c$dkY?v% zsaz*bkUhf%3_GBcjkO)!!1x??4r6L=@lCgF#u3LPS3EKt$LiX2zU7Yd-()mxfkm~n z3L-h2-11rwfl6CgmS4yZBOZ@qaG{|oDoBS)F4!X$e2~E=mxuaEb$?AGBD@F#Xpu`y zZhePU$pbe#gkM~4T{E>?%Aes{;Y_31S=l|YDOMmt+DZm^li63x#1bIP;5R34T=61U z$lLsD7gXErg%NrN=JC5=r8K3&cc4uo{R9Dd)VFLF?Pc-Z)l=)F_*eRGKyn9e&77M-FkB);z! zwfHwFcs}N>j~(Vm*iyC$y$r*PJ$vX|marX-IO^#O6$Z)xAY*_3$EsPdLXXsstZS&% zz&9EjWjZe{!W)r?LO$%6U!02MZ5ihG@Zk@xtL{I<_C$wXXa|MT;DH6f?%UQH7!l_X zY3SVvKg^3=_f~9H{oZfe_775Vxnn*p-e6S^W_Jr-;JwYTC0dSDB$6|7t}Ts}8S@84YEU_NmB&O3CvUZyIzHFokuWs{qe^7Uk{MDMKh zAYHp9ZUXv3Kz@lKPVfMDIjdS~uZglZ!|e6sSxe7^c&1tf-Ej(6B;>|D)!p6wvNg$U ztl7jk-nxK^Vy<3TEd<=mVIMu z8IEvDV}b)%*G6i&pRhtLD7?Q0Mco}UC9IV6A3mA5&vrC^Eh&J?d%!W#zOBcqm=MRI zHZ1YYUG;b6#d-ZYOpZ3QZX%{EbXdm!2-3iQru23V?(q>EaTLbsn@{Ev{nb z+8NH2AMCxBQc8825&UF%ePnC) zQo8FiR_F+Ts}_C|nZTx#c2PxPvV8v~TLb$pZZ|)swc4~JEZ{|1Yz9xQyeDT3Lq+`s zk?V~Eju)I-^*nBe2K@+mQ&!xnOd8&vHAr|lct7lmyanN>z{DWduY`-)+$Rw?|LGrC zey#m7R#jhheB-StLME4R9{3B>_JTIUDT~E@tL1SBSZ9t>$CqTdyD?*F66Q587}x*wBcFA!WFB}F zqjb|9bqaM>67FM^4oe5U{)I!&(L(O#dEEI*Xol=4-TV|;3GsLyb52DQ z1Up@M5~ z=JmL*L~<5K_(rW2WYZ(8rOvQ6xkNZ2{f~sZV7lVDEq0HuUvNLC9|c_UU}ms9psC}< zUzj^Suli8euOx;>zV>-Fdb`W*u1uHzz9T4W#OJkBGrNt&iA`GKcEv&yy{7WkdH&+d zt|dK>>)zM9_XirG&v0OuAm>gxKMftWu3F8VOGFI&ZVkGA-FiP!UV|~$6Lc*j%eh@EFBmU1Dps`cc`kodVbFo+JTZiuC$p7T7< zPoXwk#LR?aX7u)l(3|1IF~>|YXPVyZQ9shCPeia0)hRn_h)y%#L$4>vN3bwIkbHbrCGAPz(FN5`KUGiDGA7=X#x*C@`A>dlyA^s-$L+L30^*_O9|u8 zXTwuif_8NRhqSiYq-jy16?Lbk!+}j(w572-L)K+!4QXmb@k^eV-vlGZx=TtAIs+g@ zJ9IOALEc4`_Jf3o-sHWk6LlHrLoZfA!Q0aD3-@^1jC&&`Ibx34K9si84Vp znk@-Wx?h|95t|E};4eEGpWyLPWt0o?@sA$O4e(<3Zmrf02y=*-V4+`a8D@cP_MF$5 z*D^bD4CU`qEC@+ufETK+9Byp)$bZPOw+gxvNa+?3iww!%322{aBmoJ&_riW!;tXUW}b6s&O2Vty&u5BNL?Rl zl!$w@Z*z9i?b|jQ74b5SvU2(*rJu&chhWd(Y{5v(fzRJwvQT^;ul60}f7XkA6;3d< z{31+NN}J`ia0Zd!UuUi+cC#@-ir(QOurF3z%~tEsfnRuo4fkk-?VPF8FA1N6AEoguC-!DK0VQS8T}y+m-l1DeGscU?9zB~`o2m8C z72ab8h$SipZ(*sIO)1q*R~3Qi5AV4o+g^5#TqwcFg>3)rB$*SyOeW&OH=zeDy~C3HWcJhmZ3<00dlor$D@9dDbj=%}mt4{N#2 zh541foj7-IXr@OB9`__o8hveAKXNA^&r6cF@#lN^muBUMS=_#vl@`me7lD*M*?ouU z4b24OD%YZV#<_gsx%R5&p~OKprD?=b{wxbbqyDQyGJa&WRb>V8XQilJlvSlq!7B~g z`J&B563(){Qz@Aa{E7c9=Jt>OPFAEi$BvjsThO2E`50w{H2!Bw+`;lkQ4y+2Tp#@r zEHS}>?_01~ibXwHt%NpTY6r|Wz66nj70__*6{$haZ`;}QLHQvNIr|4HAqSs{0&UBU z?oos`zb>SS?S@jo>7{y|nf&fIA=NINl_igD z|19hS+&L?BgEjm)e(7h!pV_hq6&xkI@Np<)6H@mMZO^6%@O-T26 zmR)|G^=bcNqrDJu(DoG@XtHT}x`U2*P%AG%f@x0Z9ab~dz{#tz zlQ|St)GLj=gH_qczTJ89Jx$GeK+p;JMiJ-;lLY^4(KF0H{j^LgLUl$S-l#}k>acZCZEuSRM6-8^GVQ}MhyJu6j{N7UZZqwuG z4Dyz;$uo}=w48-3C-wrAwPnjO({B?4ATQg@`)DUhc`6;uTD!H4-bb<3w+>#bQl{&J zhHmaZpO0Cl^TrVw%ET-!wCppo@wKfuWTKE?LmT$5v2w^4J%Kfg8pNAei z6b3ob^2e&&@_z3@0^-#&7h(5N;+f=e>yWRmiliR4BN?#6a+T`u6W%lXSTpkX+^Xq} zEP^-NFcs+2{DMpwO`TXDT@Qk3trq3WE4!#vB|EurR6cU9e?3}*X*m}m?(!CI5kY0~ z$uFy`fWkxE;)U!Wo?iElYVez-qv+qKr9&o9Y!Wo-7El+bIr(de$a(;tNeNW7&`ajr z8W+s6I55~w*XO**J`wQa)Do8kz>?c1!Wy}x+p809`MvMXZ?^^XX6Zy$;}_v1_%taT zE?X{gpTwSOwR-<7&SJ|hhp&R>e}hijx+gmznp zClpg2wEQ7`=lV9xu5k^=jqziW_+)h_kPrR%nqIImq3ImoOM;y4oZ|D-{8^?Wjap7Q zoxR_DlRuWvddZ?udi`0pCv{uvOj7c~HUy1gprEsWpQF7Ke~V|+VLdqH0YG!YmPx^g zLq|T@?f9w1qq_H2t)np)^n^xkB*l%m*L>M1GQjwZ&ql%1YK-@IQapm`hZz{N4g=R) z)xH|#SImk)9#_nV%I-L<%2u+p31U|_7lrhDCW_y~#i{SIo!H#bw>&1> z#!&n+f|(|V9W2$qjJn12-Tzs0{!&N|ZtmnR9AY-7-ma+#Zl0BCZYioMHL;-W+b5GD z9$Vj&6BE$$q%A{xD?g9t*8b!6mp1`5Me<)q#E$zu+g{S7tKvMZn@2cb#EA8)+?R07 z^mTc1aM~raZ|rPKi3EJDEk%;p9qaQbac*-Ro&FT1?R)`A8R`IicJ4j?w}h2Tm75e` zXhS~ECGVgh1X0{zI(NHux6X_}OY1jN5i&aMvwvf4Hlb$BXP%()$yhCYv9^M^efMDN zPS3pvu^xDds9?YUZ!2O5o0V%{KUisjNA6uQAAE2|aN%?Cn^RFrCb&>dABy%+4d)QW zSuAPB#-Dg_DXa3+_y03HJ!IKMirAm)7N5OLupx3oo*VBZ80H?7&AN}9HNig(?6E4( z3B$nin#lyBv*|GW>bdThZ>z9PCF#`i|6mLdOI3)6nB3hp3{2OjVYI1PkIv zR%u?q?p%qEon<7nYQp@qwYdL~LsW;yT)$O*<%GZN+S1eBAsug@=7UK;*yy{)D5`*> z2&?Y3X%;Zs{D8&TdqFs{!z8_E+AFRg+`?IY2k+NDBYuKZOF=E0Ux8Er>nZJTLw8u4 z^ipH)ZX(WTuFnW^HE;@?6MskOV{*FGjz3lL>HEV?jlCvy0y9@0m~VpdvxNG(`s+A;AriJ3?98}LyKW)0KeGKU%&8&xBY%H+#!wXu zw{081ZWj3ti-5)sS*OeJwCp8ER4?y&EM(vqzTXo{>(yxOUNtaZ-_08Ek4;G%a zB|neZH-)_*bs+u)AHH>(ds5b^9NYZsmSU;p!bVW=1KlfyOZGL27A>pLYZ}2`f9p4W zB5}+v7g9VY#ks~{RAeD(J*z$SCXQplp42|utMUd58tSOfMTzh0mtR>fS!jEa&7!*3 zap*Gs$eY)?i3|PsSSQ;xI@2JPqdfOl7-ePs`+pMlc1jI8EjkHqg^tVe`RM`2FNzgtz1c9?}ixpJ$F zYI~Tt1*&5fQVQGz&m!yGj$L$Do)Ek7gNjHFP%x>#E)uzJGE>7vgVOO#6W1 zrtOV0)oO!JV&qd#GY*Qtp%X{?Yo@n~Ii&6XUT*AO&m{U7gnk+)j4iHSL2{>To`%}a$>xAGw8=j0@ysrg279Ujq|S0w}m2_qXdrr-m zr-_fQ0s0Gd)-HNPl*%V$whVJH8jI2LqX3c01n3W196(|z2Iw$ZOv2~QtX2#sT6We+;K znj0}zFnO&KwwOwuF;QWJ7<}i44m!uMuCup6*=FnHSZq*W7K(bQMZ6WBZ z6@GVrHL`!|Kcyun!_1|fX^E3OVZznF>1IOgVwO#Y`W=BYy&!uDJ_foCJZ|k-(C~71?Ja2eyiA5HSbU^(c2Qedvi%RbE>ScwM5E4Us@=cxQ2InGB{3f z7xNhWQdwdP8& zMon|d&x-zQ&d2ix3DvS?+^H0aX8vsE`dFw!WX{ve$-H8;xkB)*l-iTaA?xZY0PY*> zV;47)(iLnST&GZxeulL7h680m=YxXFAmpy^2Tj5|z{$|A=uGSlFLuYUylCF+B$URn zz>NHQ5Lk?QLE7@`_aSqKphp?ZRja|uCUFJgP#Y2^D4RY)^Ee<@o%T}K@X>% zie*&79fK{r>B;LwWNx7(;+uJivK6k-A}Pq{6j_VwB;w!Y&)%axkh0Yyci5{5#Ar%87n7pa^FA+*%W@kVExOt zcDOSQH|I!Sw(7U8h3plX5zhwIYmoy*P_IGd9b6CiZ1?>gRLk$&(o{aT8Rpv%Tv&gh z7CsBo0~!5_+e^Ywe!Q?1fhpQG)%3WDxb5?+SQ3%V2e#Ql4O@Qx?k;@SQL5FZD6tl2 zkicax<}$Kp3?}1Q$I8AvjOeuVma{t|Pu_HRVED(#xo;fn3T~6mmuKt7@Sk5oOj{4$ zQ5}-4=D9zz0TqdoHCkLHnZp?HM~!wJ+!}qACgS66`7Zaj| zA44qM2zl3<8?ha^>Zole7!Xn?AJ@XqWBkdU>TxsevG+?3BTtbK=2PpI!}qmskUH2F zD{M%55L(JTm(XZz`%(FXP3W}8XO>L(yug2=7o^krYv^eH{DIE;5g7f;xP&dsD2PAq zWHimYDniOJ8^g;1uqdl!x#HT z_vNr#9hgyow8TOZhcn?k`}4T2S0Q}+Ra#o!mHep71w<~*O-G#A^=y=%UA1W zyC|jHa-LUj`So%~u54VqhuGBR!7mlO=%4vqQB?kVK4<=slO}`|_AGp!0DV5MjpSr% zh6JX28=qmGR5wUu>4w zL#(!Cln{^(8w#Ska{E_ySS&Fz>P?pfE*?-F4Y?*B2M(njEA70nF+GI4ZZl3|DYWLp z*{`-VNq(iyx^@wcdAnQb(plFaJbQviFKDl_J_laeE%sagrmP8LQQ?Eg9(-KSE-t;4 zrZIuu$83W`VP}Y`mL&Q^%Tu)Yl0&(0$%+Du3^D&!bb<3LmDPd`0md_MXJLunneyel z&5>AEmuG41t3F}LdI)0BvdwJQ@anXP<4oIq&XUrQ+Dd!769xgHf8HmFRs@}hytH?~ zu$9um1*3U_p{TBs;8teLUTe@EQg#ijro1HNCGHwkaH8e>0R}BSy40BPTv;&!?K8cd|bp`D1co&uk{sr<$ zP9AIK#EM*uiMY`ij219-@4pk2s63JpVH`i$GXo-(5^5U?6D_VReNqyG%$5aTl@*;x zUI71);LLJC&3s~0Y?JabA(%ZVUt4{vAd`^ASFichtaVJjmtxAW#dAuy>w7f{+)*=m2H%CjU&sn-76aOWzk@Xzine$5kfcBavicgp} z@B3+UD~5~9P3yv&TdD`BOEvP$Z|8DPb^PE14zahkpCHFfwK!big0SYe>Ij|n2_x4| zVz+6c`$$0B&3hgq8blu2xYSlQKqrQUa?E9yIkxR+XZ3ttAZirrQJbjI==1=y``y4Q zy{)SI%#R~9Sk&x8se{`SIlqhDJ#&o~Rdp^zBriEuC1Lf;#hN;t|2bhsUq(R|xr^;i z`mKJP4M8Vy?0BAE9ioG#> zsqUjyz(PplyA$t*!_CLd5XF|a)_+^!VTpWjh&hGLm z*dTf5dw;;U;^uouisQEXDj8f z96MkXElH&Di-`B|(p>nZxwEoo7x9AgVo1by5x30b7>6}}kCC?nJ9f=b7+47f_Q95l zwSBjm;gL-&1}VS>km(L!o=6ygL&w*{8}*F0j&EJ1E?s7;%0Tu0p%%F$tH5}J5r3Wc zS$c^pTIA%!8IiqSZ_?v8u1BU!%2Ha#DXbp4Anlytiw@QZij*7N`>zBwhmKLvg*p(Rf9)YM$&jw5>{ED>V*9tLm|DfTjhtpN6h%! zeR6f0O&wV8dft+bWp+;F_g<@%5v}L}_|O@_C}HX35r*tiW6Jm^b(qV!jjOx=oiOh; zc`MGjHyRL_MB&PX8hYoS9Eyx6>UI3Li8R2w632lUV-bv6 z`V0&bpnKw#JPSHu!4-Watx@rZ9US?XfM&$~YAPtkVdo)&RZ>vXXmENJq?BmC)wK8rU%n(#a@Euuby8-}aYn z?X;4Op!T^jRg*@eh6c}%f?>R{QB6zZpm!q*CN95e>8p*77Y2THh>+>$PT^SyQ$_Fc zzpd+yqbq1Zk8Fbkc2zh=$|sU#sN%;E*w`-P8g~j^B+WsqI3$aa2yYb$EE0H)YFUR`rc1g<(EXzS&DXi`39|&G`}6f#FIu+i1aTK zn%ta2oGqfsmO?+eOKT2`2bJ4T|7EI)gaFCP|PGMfHBRSA`vn)j1d5%cK5HXGJ&XnOE-wS*b3M6S4gu{qJM4>QmG>S*~ z6#5V>wrQt{xTeD@$CWVF-XgBb824_we?xO2+ebyNKpagzF7%o)K-0~UZ17w!Wx0r^No6~_0waAY0?i$BO zbK`=^4#@f2K-o62Fpj%I^~oIS%FbaTDQ4kD!+UR6z{$u)d6gBu>*>~rm*Gegktv^Q zzt$I9rBR4dhaC3b4%txa2Qr<3(a`(m!dnFnGa4t2;q1ympQbG6+QQ~}n5^-=z-ApX zQN3mXps*K!_UA}gO-1YO3^d~JD_|4Ax~Ni*cq>2S>^|lwXTx>Pd5|8h^rV{k#s<@= zWkbZXV#|&omNM1%P~G9fuXH0JrtXzIXYBjRLTXOK&FVr5$-WF42PYl*w5AzN~4cRL?vlRQ{|BA#`NxStX z=2ku7gO6BYt=0ZyN5D!r(R1i4N>BS0%6f(eV@}#{tiA_{9LvW?cE}eiv#{%9Tlpu_ zXbcdcMSncyLPxn5kq|Dy7L*9;;i8yN-oWR}wMt`hLwnx)n!nB7Ll5@pK9tt@Du%YN zY$tNy{nwwPx`oKRsYbojRIEJ3fz6ooXAExlN~mepbQoNaMHX?+22otn)WWHS_ofiD zpnv{rK3aqj82t}CAT)jeZESYB*or^Op+9KzLj_*M#06GouT66pqKT$-?uQ??6|CM2L<->|JkjYfK8@Wu9X zm=TC=pKNH8_UOi;j4wwX{%^2pNwyAv3dMR6>BuV^^)R&Wdurl&nJ>qW$U<$UP5pzo zdV_eO@oh{;Ym9OwaLs>kI}^!4nOLbLJ5S=94@E*C|7y4x=#MAGP}dqUsR~15p0z_k zKUKyiidVQkBYf~R`M2Eai~CJHPkgP}w+vGgYg2elRSO~$KYZs;=KC1QHOP0S7VOer zu`QhAlC&`M;CrieS#PaCDrl~dv+`!t+Uo4KrJbm{%aK9+$$|)*W3{{T2mVx|YjFT8 zkL_rVpPIl0awu=E6xnQ=|4BMi$W-EPMmUgD2xB(0U7^p}tQr4Z8kabt;y9tYP>TGp zk!DH$DK%H)R-iMkyPjX4igS!PZJm8Bmk_-JOFOEVdxe*4t8 zHK^AL%S*S&l(JpVqeQe`^^EA!H)-GS?&k_dJv<5@MOm}Q03T%w>%6AFpZxjcu(q6` zmjhwUO2Ts{HN=iU^L`B@PkH^=g68kaLv9!ut2#|{;Arc>Qp=Lb&t!+JEXt1|ijv1z zVh`^xzAs_CDhEKc!u5O?8Eh$4k}Bhz-rkjH?!~4$Azl4>VJA`|c&!2}?61JLK58oT z3+?_39c-rBbDPBmR2Dri@IcYq)FhI_>c6ei%KqAG7W-XV%Y5d6)oLGe+IQ!x=A*>-FEo@Hg}Oc z+Y)jgTLD7jDf1&ItZA~_dhC9+wapQU?FK&h=JPDZsyX!Wtl3iyE6yXpUK5+o@GfF8 zWb!murO5tChw*937Lkq8=Vi^HWcNeQ6piM}71iE1@9bhSa#nXm1$ArR_v1ZB|IVmL3xD0c4Lxl3ouopb-?_)jLZGo1Uhb^aX3S=X-2VY-yw7_8 literal 0 HcmV?d00001 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/audit_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/audit_report.json new file mode 100644 index 000000000..130336c65 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/audit_report.json @@ -0,0 +1,86 @@ +{ + "scope": "one Qwen3-TTS code2wav 48,000-sample component on one retained fixture; no complete TTS stream", + "status": "component_executed_quality_unqualified", + "device": { + "name": "SA8775P ADP", + "os": "14", + "attributes": [ + "os:android", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-android", + "format:auto", + "chipset:qualcomm-sa8775p", + "hexagon:v73", + "soc-model:52", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "compile_job_id": "jp410o3vp", + "inference_job_id": "jgzlm8ex5", + "profile_job_id": "j5wl78omp", + "target_model_id": "mnze95don", + "input_dataset_id": "d7m80jl32", + "s25_prior_inference_job_id": "jpx428ojg", + "requested_run_options": "--compute_unit gpu", + "files": { + "source_onnx": { + "bytes": 423655047, + "sha256": "7c07666229c6d404894132e22f784525e3212a49efad55ddd532eda5286c2b2b" + }, + "fixture": { + "bytes": 129721, + "sha256": "dfca9e8d2a724a568a31b6cd18ff6a52fdc205fd34e13cbf1cd75f0f7937e82d" + }, + "cpu_output": { + "bytes": 179942, + "sha256": "8de78b94b59f01e49852f7706adbd2508a9976b8e2705cfd3b94d07bb3606cb1" + }, + "s25_output": { + "bytes": 115235, + "sha256": "4a26486d5e84a6e22d16f9b26f995b8fe645c29bbd70b103615ec35a0fcb10a0" + }, + "device_output": { + "bytes": 10189, + "sha256": "770c9c1f5a8dcaf9d8054cd2617bb8cd47d0c005c6858836452882ff3d7353d5" + } + }, + "cpu_source_vs_device": { + "relative_l2": 11.832417281859046, + "snr_db": -21.461469541638177, + "max_abs": 1.4882186353206635, + "cosine": 0.017841868329608154, + "reference_rms": 0.08373439205485074, + "output_rms": 0.988730688363501, + "output_saturated_fraction_abs_ge_0_999": 0.9663333333333334 + }, + "s25_gpu_vs_device": { + "relative_l2": 11.82796496222066, + "snr_db": -21.458200587056638, + "max_abs": 1.488037109375, + "cosine": 0.01759117063047259, + "reference_rms": 0.08376787228276501, + "output_rms": 0.988730688363501, + "output_saturated_fraction_abs_ge_0_999": 0.9663333333333334 + }, + "profile": { + "sample_count": 100, + "sample_min_us": 1674704, + "nearest_rank_p50_us": 1775673, + "nearest_rank_p95_us": 1880119, + "reported_estimated_inference_time_us": 1674704, + "reported_peak_memory_bytes": 361168896, + "compute_unit_row_counts": { + "CPU": 403, + "GPU": 335 + } + }, + "limits": [ + "Historical source export does not attest its exact checkpoint revision.", + "This fixed component waveform has no listening or task-quality tolerance.", + "Hosted component profiling excludes talker, predictor, stage handoff, streaming, admission and sustained power/thermal behavior." + ] +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/compile_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/compile_report.json new file mode 100644 index 000000000..3ae9556c9 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/compile_report.json @@ -0,0 +1,31 @@ +{ + "retrieved_utc": "2026-09-23T22:21:23.511773+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jp410o3vp", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp410o3vp/", + "status": "SUCCESS", + "status_message": "", + "source_model_id": "mqyer339n", + "target_model_id": "mnze95don", + "device": { + "name": "SA8775P ADP", + "os": "14", + "attributes": [ + "os:android", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-android", + "format:auto", + "chipset:qualcomm-sa8775p", + "hexagon:v73", + "soc-model:52", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "options": "--target_runtime tflite", + "hub_version": "aihub-2026.08.28.1" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_submission.json new file mode 100644 index 000000000..f37986b2c --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_submission.json @@ -0,0 +1,14 @@ +{ + "timestamp_utc": "2026-09-23T22:34:29.858166+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_compile_job_id": "jp410o3vp", + "target_model_id": "mnze95don", + "input_dataset_id": "d7m80jl32", + "device": "SA8775P ADP", + "options": "--compute_unit cpu", + "kind": "inference", + "status": "SUBMITTED", + "job_id": "jp1nj7x7g", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp1nj7x7g/" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/device_output.npz b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/device_output.npz new file mode 100644 index 0000000000000000000000000000000000000000..83991c0e6fc031b3598984a4650b082f961b7dad GIT binary patch literal 10189 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